6.4 KiB
Output
Ogni analisi scrive in output/<nome del csv>/ (la cartella output/ è ignorata da git). Ogni passo ha la sua sottocartella, numerata
nell'ordine di esecuzione. Chi produce cosa: moduli.md (uscita.py).
output/gen_7/
├── 01_domini/ passo 1 — suddivisione dei dati
│ ├── domini.png dati grezzi con i domini (colore per tipo, numerati) + zoom sui gradini
│ └── domini.toml domini usati, modificabili a mano ([uso.md](uso.md))
├── 02_sovrapposizione/ passo 2 — dati grezzi contro le equazioni trovate
│ ├── sovrapposizione_<serie>.png serie intera con le equazioni a tratti, residui e zoom
│ └── dominio<k>_<serie>.png un dominio: dati, modello scelto, altri modelli validi, residui
└── 03_report/ passo 3
├── report.md report completo, immagini incorporate, formule in LaTeX
└── risultati.json tutti i fit con tutte le metriche (schema in moduli.md)
fitseg domini scrive solo 01_domini/; fitseg analizza scrive tutto.
Colori
| Dominio | Colore |
|---|---|
| riposo | grigio |
| riscaldamento | rosso (i suoi campioni sono evidenziati con pallini, perché la fascia è sottile) |
| raffreddamento | un colore diverso per ognuno, in ordine: blu, verde, viola, arancio, ciano (poi si ricomincia) |
Le fasce sono numerate come nelle tabelle (il numero compare solo se la fascia è abbastanza larga per il grafico). Il raffreddamento k-esimo ha lo stesso colore in tutti i grafici.
01_domini/domini.png
Una riga per serie. A sinistra l'intero segnale con le fasce dei domini; a destra lo zoom sulla zona dei gradini (da 2 s prima del primo
riscaldamento a 8 s dopo l'ultimo), dove 7 domini in pochi secondi si distinguono. Serve a controllare la suddivisione prima di fidarsi
delle equazioni: se è sbagliata si corregge domini.toml e si rilancia (uso.md §3).
02_sovrapposizione/sovrapposizione_<serie>.png
Sopra: dati grezzi (punti grigi), fasce dei domini e curva dell'equazione scelta per ogni dominio nel colore del dominio. Sotto: residui
y - \hat y dei soli campioni usati nel fit (i campioni esclusi all'inizio dei raffreddamenti non compaiono, per non schiacciare la scala).
A destra lo stesso con lo zoom. Il riscaldamento non ha curva (non si fitta) e i suoi campioni sono i pallini rossi.
Come leggere i residui: attorno a zero e senza struttura = modello adeguato; ondulazioni o code verso il basso = scarti casuali del sensore non descritti dal modello (A14), non un errore del fit.
02_sovrapposizione/dominio<k>_<serie>.png
- Riposo e raffreddamento: punti neri = campioni usati nel fit; punti grigi = campioni esclusi (solo se
scarta_dopo_salto_n> 0); linea continua = modello scelto (nel colore del dominio, con\mathrm{RMSE}in legenda); tratteggiate = gli altri modelli validi (confronto); sotto i residui del modello scelto. - Riscaldamento: la salita (pallini rossi) con 8 campioni di contesto prima e dopo, e nel titolo
\Delta, numero di campioni e durata. Nessuna curva. - Dominio indeterminato: solo i dati (un pannello, senza residui), con «indeterminato» nel titolo.
03_report/report.md
Le immagini sono link relativi (../01_domini/domini.png); le grandezze matematiche sono in LaTeX ($…$ nel testo, $$…$$ per l'equazione scelta
con i valori sostituiti): servono un visualizzatore Markdown con supporto matematico (GitHub, VS Code, Obsidian). Struttura:
| Sezione | Contenuto |
|---|---|
| intestazione | nome del CSV, data, serie, definizione t' = t - t_0, livello degli intervalli (95 %) |
| 1. Suddivisione in domini | domini.png e tabella (#, tipo, t_0, t_1, campioni) |
| 2. Equazioni trovate | criterio di scelta con le soglie correnti; tabella (dominio, tipo, serie, modello, equazione e parametri ± IC) con una riga per dominio e serie; i riscaldamenti hanno il salto |
| 3. Sovrapposizione dati–equazioni | un grafico per serie |
| 4. Dettaglio per dominio | per ogni dominio e serie: grafico, modello scelto, equazione con i valori (…), parametri ± IC, \sigma_\text{rumore} (se stimabile), \hat\sigma_\text{res} (scala robusta dei residui), \mathrm{RMSE}, R^2 (non per costante, per cui non ha senso), \rho_1, motivo, tabella di tutti i modelli provati (k, RMSE, \hat\sigma_\text{res}, AICc, BIC, \rho_1, valido); il titolo riporta l'intervallo t_0 \le t \le t_1 (primo e ultimo campione del dominio) |
Come leggere i messaggi
| Messaggio | Significato | Cosa fare |
|---|---|---|
| salto (riscaldamento) | salita rapida descritta, non fittata (A23): \Delta stimato dai modelli adiacenti (misura accanto); «misura riportata all'istante del gradino con c e \tau del raffreddamento finale» se manca un modello vicino; «misurato sui campioni» se manca anche quello |
niente: la misura sui campioni è per difetto (fino a ≈ 10–20 %), le altre due stime no (errore tipico < 1 %, massimo ≈ 3 % su 60 seed) |
| (fisso) accanto a un parametro | tenuto costante al valore del raffreddamento finale (A8); l'IC di A è condizionato (A18) |
niente; per disattivarlo vedi configurazione.md |
modello non adeguato (\hat\sigma_\text{res} > 1.5\,\sigma) |
anche la scala robusta dei residui (1.4826\,\mathrm{MAD}, che ignora gli scarti casuali) supera il rumore: il modello scelto non spiega i dati |
verifica la suddivisione dei domini e i residui: con modello e domini giusti non succede (0 su 120 raffreddamenti finali in validazione) |
| Indeterminato | nessun modello valido, oppure meno di n_min_punti campioni (n_min_punti_parametri_fissi nei raffreddamenti con c e \tau fissi): il motivo indica quale |
verifica la suddivisione: tra gradini a meno di ≈ 1.2 s restano meno di 4 campioni |
| «valido: no» in tabella | fit non convergente, \tau al limite o non identificabile (algoritmi.md §5.6) |
un modello più semplice può essere preferito |
03_report/risultati.json
Lista di domini con tutti i fit e tutte le metriche, anche dei modelli scartati. Schema dei campi: moduli.md, «Strutture dati comuni».
È JSON valido anche in presenza di NaN (i campi non applicabili o non calcolabili, come sigma del riscaldamento o con meno di 8 campioni, sono null), adatto a elaborazioni successive (confronti tra
analisi, tabelle).