Configurazione
Tutti i valori sono in config.toml: nessun default nel codice, una chiave mancante è un errore (exit 3). Suffissi nei nomi: _s
secondi, _c gradi, _rel frazione della durata del dominio, _sigma multiplo di \sigma, _n / _campioni numero di campioni. Per aggiungere una chiave:
config.toml, CHIAVI in config.py, questo documento. Il modulo che la legge è indicato a destra.
Si usa un altro file con fitseg --config altro.toml ….
[dati] — formato del CSV (dati.py)
| Chiave |
Valore |
Significato |
colonna_tempo |
"t_ms" |
nome della colonna del tempo |
unita_tempo |
"ms" | "s" |
unità del tempo nel CSV; internamente tutto è in secondi (A3) |
serie |
["T_C", "dT_C"] |
colonne da approssimare; ognuna ha le sue equazioni, tutte condividono i domini (A4) |
separatore |
"," |
separatore dei campi |
[domini] — riconoscimento dei domini (domini.py, analisi.py)
| Chiave |
Default |
Significato |
Effetto se alzata / abbassata |
serie_riferimento |
"T_C" |
serie in cui si cercano i gradini; deve essere in serie |
— |
soglia_gradino_c |
20.0 |
salita complessiva minima (somma dei salti dei campioni consecutivi in salita, in °C) per essere un gradino |
alta: gradini piccoli non rilevati; bassa: scarti scambiati per gradini (A5) |
soglia_bordo_sigma |
6.0 |
un campione è «in salita» se il salto verso il successivo supera \theta_b\,\sigma_d, con \theta_b questa soglia e \sigma_d = 1.4826\,\mathrm{MAD} dei salti (algoritmi.md §3) |
alta: i campioni di una salita distribuita non sono riconosciuti tutti; bassa: il rumore genera falsi campioni in salita |
distanza_min_salti_campioni |
3 |
campioni in salita a meno di questa distanza (in indici) appartengono alla stessa salita |
alta: gradini ravvicinati fusi; bassa: una salita con un campione piatto in mezzo viene spezzata |
n_min_punti |
6 |
campioni minimi per fittare un dominio con parametri liberi; sotto → indeterminato |
alta: più domini non fittati |
n_min_punti_parametri_fissi |
4 |
campioni minimi quando c e \tau sono fissi e si stima solo A (raffreddamenti intermedi corti); sotto → indeterminato. Con 4–7 campioni \sigma non è stimabile (servono 8, A13): il fit si fa comunque, l'adeguatezza no |
3: ancora fittabile ma con 1 grado di libertà; alta: tratti corti tra gradini ravvicinati restano indeterminati |
scarta_dopo_salto_n |
0 |
campioni esclusi dal fit all'inizio di ogni raffreddamento. 0 perché la salita è già nel dominio di riscaldamento: su 45 seed con 0 gli errori su A, \tau e salti sono i migliori e i tratti indeterminati i meno numerosi; con 2 peggiorano molto |
alta: perde campioni del decadimento (e rende indeterminati i tratti corti) |
[fit] — regressione e scelta (fit.py, analisi.py)
| Chiave |
Default |
Significato |
raffreddamento_intermedio_fissa_da_finale |
["c", "tau"] |
parametri che i raffreddamenti intermedi prendono dal raffreddamento finale (algoritmi.md §5b). [] = tutti liberi. Nomi ammessi: quelli del modello (c, A, tau) |
perdita |
"soft_l1" |
funzione di perdita di least_squares: "linear" (minimi quadrati), "soft_l1", "huber" (robuste agli scarti, A14) |
scala_perdita_sigma |
3.0 |
scala s della perdita robusta, in multipli di \sigma: sotto s come i minimi quadrati, sopra cresce linearmente |
tau_min_rel, tau_max_rel |
0.05, 50.0 |
limiti di \tau come frazione della durata del dominio L: \tau \in [0.05L,\ 50L]; un \tau al bordo rende il fit non valido |
n_griglia_tau |
40 |
punti della griglia logaritmica su \tau per la partenza dell'esponenziale |
soglia_condizione |
10^8 |
numero di condizione dello jacobiano normalizzato oltre cui i parametri sono «non identificabili» |
correggi_autocorrelazione |
true |
allarga gli intervalli di \sqrt{(1+\rho_1)/(1-\rho_1)} se \rho_1 supera soglia_acf (A17) |
soglia_acf |
0.3 |
soglia di \rho_1 per la correzione |
soglia_delta_aicc |
2.0 |
tra i modelli entro questo \Delta\mathrm{AICc} dal migliore vince quello con meno parametri |
scala_residui_vs_rumore_max |
1.5 |
un modello è «adeguato» se \hat\sigma_\text{res} \le questo valore \cdot\ \sigma, con \hat\sigma_\text{res} = 1.4826\,\mathrm{MAD}(r) la scala robusta dei residui (algoritmi.md §5.5, §6). Osservato per il modello giusto: 0.97–1.40; per modelli sbagliati: 11–100 |
[fit.modelli_per_tipo] — modelli provati per tipo di dominio
| Chiave |
Default |
Significato |
riposo |
["costante", "lineare", "esp_decad"] |
modelli provati sul riposo (A10) |
raffreddamento |
["esp_decad"] |
modelli provati sui raffreddamenti (A7) |
Entrambe le liste sono obbligatorie e non vuote. Non esiste la voce riscaldamento: quel dominio non si fitta (A23). Modelli ammessi: i nomi in
modelli.MODELLI.
[output] (cli.py)
| Chiave |
Default |
Significato |
cartella_output |
"output" |
cartella madre; ogni analisi scrive in <cartella_output>/<nome del csv senza estensione>/. --output DIR la sostituisce |
domini.toml — domini modificabili (domini.py)
Scritto in output/<csv>/01_domini/domini.toml, rilegibile con fitseg analizza CSV --domini FILE (uso.md):
I domini devono essere contigui (t_1 di uno uguale a t_0 del successivo): altrimenti exit 6.
Esempi
| Voglio… |
Cambio |
| gradini più piccoli (es. 8 °C) |
[domini] soglia_gradino_c = 8.0 e verifica che gli scarti restino sotto la soglia (A5) |
| tutti i raffreddamenti con parametri liberi |
[fit] raffreddamento_intermedio_fissa_da_finale = [] |
| fissare solo la costante di tempo |
["tau"] |
| fit ai minimi quadrati puri |
perdita = "linear" |
| un'altra colonna del CSV |
[dati] serie = [...] e, se serve, [domini] serie_riferimento |
| tempo in secondi |
[dati] unita_tempo = "s" e colonna_tempo |