aggiunti script di fit esponenziale e report di analisi termica

- fit_raffreddamento_intero.py: fit TRF su finestra completa [115s–fine] con pesi nulli sulla zona di transizione [115.9–117.2s]
- fit_raffreddamento_2tratto.py: fit TRF sul solo tratto di raffreddamento [117.5s–fine], pesi uniformi
- report.md: analisi strutturata con calcolo T∞, parametri stimati e grafici per entrambi gli approcci
This commit is contained in:
2026-04-01 10:38:37 +02:00
parent 47d66406bc
commit 3ac42966b1
7 changed files with 309 additions and 36 deletions

118
report.md
View File

@@ -1,59 +1,105 @@
# Report: Temperatura Ambiente Media
# Analisi termica — Scatola su linea di forno
## Metodologia
La media è calcolata come **media ponderata sul tempo** (regola dei trapezi):
$$T_{avg} = \frac{\int T(t)\, dt}{t_{fine} - t_{inizio}}$$
Questo approccio tiene conto del campionamento non uniforme: ogni campione pesa proporzionalmente all'intervallo di tempo che copre.
## Risultati
| Parametro | Valore |
|---|---|
| Inizio osservazione | 0.2 s |
| Fine osservazione | 133.7 s |
| Durata totale | 133.5 s |
| Numero campioni | 888 |
| T ambiente minima | 22.60 °C |
| T ambiente massima | 23.80 °C |
| **T ambiente media ponderata** | **22.99 °C** |
Campionamento IR della temperatura di una scatola che attraversa un forno su linea di produzione.
Finestra di osservazione: **0.2 s → 133.7 s** (133.5 s totali, 888 campioni).
---
## Fit esponenziale del raffreddamento
## 1. Temperatura ambiente T∞
### Contesto
### Metodologia
Dopo il picco termico, la scatola raffredda verso la temperatura ambiente seguendo un andamento esponenziale. A partire da **t₀ = 117.5 s** (inizio della fase di raffreddamento) è stato eseguito un fit con il modello di Newton per il raffreddamento:
`T_inf` è usata come temperatura di equilibrio nel modello di raffreddamento.
È calcolata come **media ponderata sul tempo** sull'intera finestra di osservazione, con la regola dei trapezi:
$$T_{\infty} = \frac{\int_{t_i}^{t_f} T_{amb}(t)\, dt}{t_f - t_i}$$
Questo approccio è corretto con campionamento non uniforme: ogni campione pesa proporzionalmente all'intervallo di tempo che copre.
### Risultati
| Parametro | Valore |
|---|---|
| T ambiente minima | 22.60 °C |
| T ambiente massima | 23.80 °C |
| **T∞ (media ponderata)** | **22.99 °C** |
---
## 2. Raffreddamento
Il profilo di raffreddamento è modellato con la legge di Newton:
$$T(t) = T_{\infty} + A \cdot e^{-\frac{t - t_0}{\tau}}$$
### Parametri del modello
con $T_{\infty} = 22.99\ °C$ fisso. Il metodo di stima è in tutti i casi **Nonlinear Least Squares con Trust Region Reflective (TRF)**`scipy.optimize.curve_fit(..., method="trf")`.
### 2.1 Raffreddamento intero
Fit sulla finestra completa **t₀ = 115.0 s → fine osservazione**, con pesi espliciti per escludere la zona di transizione in uscita dal forno.
**Schema dei pesi:**
| Intervallo | Peso | Motivazione |
|---|---|---|
| [115.0, 115.9) s | w = 1 | Raffreddamento regolare |
| [115.9, 117.2] s | w = 0 (σ = 10¹⁰) | ERRORE DI MISURA |
| (117.2, fine] s | w = 1 | Raffreddamento regolare |
I punti nella zona arancione ricevono peso nullo: assegnando σ = 10¹⁰ il termine (residuo/σ)² → 0, rendendoli ininfluenti sul costo del fit. Entrambi i parametri $A$ e $\tau$ sono liberi.
#### Parametri stimati
| Parametro | Descrizione | Valore |
|---|---|---|
| $T_{\infty}$ | Temperatura di equilibrio (fissata) | 22.99 °C |
| $t_0$ | Inizio finestra di fit (fisso) | 117.5 s |
| $A$ | Sovratem­peratura iniziale rispetto all'ambiente | **154.94 °C** |
| $\tau$ | Costante di tempo del raffreddamento | **17.12 s** |
| $A$ | Sovratemperatura iniziale | **185.18 ± 0.27 °C** |
| $\tau$ | Costante di tempo | **16.27 ± 0.05 s** |
### Metodo
#### Curva stimata
Nonlinear Least Squares con metodo **Trust Region Reflective (TRF)** (`scipy.optimize.curve_fit`).
Vincoli imposti: $A > 0$, $\tau > 0$.
$$T(t) = 22.99 + 185.18 \cdot e^{-\frac{t - 115.0}{16.27}} \quad [°C]$$
### Bontà del fit
#### Bontà del fit
| Metrica | Valore | Nota |
|---|---|---|
| $R^2$ | **0.9938** | Calcolato solo sui punti con peso pieno |
#### Grafico
![Fit raffreddamento intero](fit_raffreddamento_intero.png)
*Dati raw (blu), zona di transizione esclusa (arancione), curva di fit TRF (rosso tratteggiato).*
---
### 2.3 Raffreddamento 2° tratto
Fit sul solo tratto di raffreddamento stazionario, a partire dall'istante in cui la scatola ha completato l'uscita dal forno. In questa finestra i dati seguono il modello esponenziale senza discontinuità, quindi non sono necessari pesi espliciti.
**Finestra:** t₀ = 117.5 s → fine osservazione. Pesi uniformi (w = 1 su tutti i punti). Parametri liberi: $A$, $\tau$.
#### Parametri stimati
| Parametro | Descrizione | Valore |
|---|---|---|
| $A$ | Sovratemperatura iniziale | **154.94 °C** |
| $\tau$ | Costante di tempo | **17.12 s** |
#### Curva stimata
$$T(t) = 22.99 + 154.94 \cdot e^{-\frac{t - 117.5}{17.12}} \quad [°C]$$
#### Bontà del fit
| Metrica | Valore |
|---|---|
| $R^2$ | **0.9981** |
Il coefficiente di determinazione $R^2 = 0.9981$ indica che il modello esponenziale spiega il **99.81 %** della varianza dei dati di raffreddamento: il fit è eccellente.
$R^2 = 0.9981$: il modello spiega il **99.81 %** della varianza — fit eccellente sul tratto di puro raffreddamento.
### Grafico
#### Grafico
![Fit raffreddamento esponenziale](fit_raffreddamento.png)
![Fit raffreddamento 2° tratto](fit_raffreddamento_2tratto.png)
*Dati raw `temp_obj IR [C]` (blu) e curva di fit esponenziale (rosso tratteggiato) a partire da t = 115 s.*
*Dati raw `temp_obj IR [C]` (blu) e curva di fit (rosso tratteggiato) a partire da t = 115 s.*