Files

6.3 KiB
Raw Permalink Blame History

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):

[[dominio]]
tipo = "raffreddamento"   # riposo | riscaldamento | raffreddamento
t0_s = 16.1000            # primo campione del dominio (incluso)
t1_s = 17.9100            # primo campione del dominio successivo (escluso); per l'ultimo: ultimo campione

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