- fit_doppio_esponenziale.py: modello T∞ + A1·exp + A2·exp con TRF, pesi nulli su [115.9–117.2 s], R²=0.9991 - plot_confronto_fit.py: sovrapposizione dei fit singoli sui dati raw, motivazione visiva per la combinazione lineare - report.md: sezione 2.4 con motivazione, equazione, parametri stimati e grafici
195 lines
6.8 KiB
Markdown
195 lines
6.8 KiB
Markdown
# Analisi termica — Scatola su linea di forno
|
||
|
||
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).
|
||
|
||
---
|
||
|
||
## 1. Dati e analisi preliminare
|
||
|
||
### 1.1 Dati grezzi
|
||
|
||
Il grafico seguente riporta il profilo termico completo acquisito dal sensore IR, a partire da t = 105 s.
|
||
Sono mostrate le due curve: temperatura ambiente e temperatura della scatola.
|
||
|
||

|
||
|
||
*Temperatura ambiente (blu) e temperatura scatola (arancione).*
|
||
|
||
---
|
||
|
||
### 1.2 Temperatura ambiente T∞
|
||
|
||
#### Metodologia
|
||
|
||
`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}}$$
|
||
|
||
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 |
|
||
|---|---|---|
|
||
| $A$ | Sovratemperatura iniziale | **185.18 ± 0.27 °C** |
|
||
| $\tau$ | Costante di tempo | **16.27 ± 0.05 s** |
|
||
|
||
#### Curva stimata
|
||
|
||
$$T(t) = 22.99 + 185.18 \cdot e^{-\frac{t - 115.0}{16.27}} \quad [°C]$$
|
||
|
||
#### Bontà del fit
|
||
|
||
| Metrica | Valore | Nota |
|
||
|---|---|---|
|
||
| $R^2$ | **0.9938** | Calcolato solo sui punti con peso pieno |
|
||
|
||
#### Grafico
|
||
|
||

|
||
|
||
*Dati raw (blu), zona di transizione esclusa (arancione), curva di fit TRF (rosso tratteggiato).*
|
||
|
||
---
|
||
|
||
### 2.2 Raffreddamento 1° tratto
|
||
|
||
Fit sul primo sotto-tratto di raffreddamento **[115.0, 115.9 s]**, la finestra precedente alla zona di transizione. Pesi uniformi (w = 1 su tutti i punti). Parametri liberi: $A$, $\tau$.
|
||
|
||
**Finestra:** t₀ = 115.0 s → 115.9 s.
|
||
|
||
#### Parametri stimati
|
||
|
||
| Parametro | Descrizione | Valore |
|
||
|---|---|---|
|
||
| $A$ | Sovratemperatura iniziale | **194.51 °C** |
|
||
| $\tau$ | Costante di tempo | **13.17 s** |
|
||
|
||
#### Curva stimata
|
||
|
||
$$T(t) = 22.99 + 194.51 \cdot e^{-\frac{t - 115.0}{13.17}} \quad [°C]$$
|
||
|
||
#### Bontà del fit
|
||
|
||
| Metrica | Valore |
|
||
|---|---|
|
||
| $R^2$ | **0.9998** |
|
||
|
||
#### Grafico
|
||
|
||

|
||
|
||
*Dati raw `temp_obj IR [C]` (blu) e curva di fit (rosso tratteggiato) nella finestra [115.0–115.9 s].*
|
||
|
||
---
|
||
|
||
### 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** |
|
||
|
||
$R^2 = 0.9981$: il modello spiega il **99.81 %** della varianza — fit eccellente sul tratto di puro raffreddamento.
|
||
|
||
#### Grafico
|
||
|
||

|
||
|
||
*Dati raw `temp_obj IR [C]` (blu) e curva di fit (rosso tratteggiato) a partire da t = 115 s.*
|
||
|
||
---
|
||
|
||
### 2.4 Raffreddamento doppio esponenziale
|
||
|
||
#### Motivazione
|
||
|
||
Osservando i fit singoli sovrapposti ai dati raw, si nota che nessuno dei due esponenziali riesce a descrivere l'intera curva: il fit del 1° tratto (τ₁ ≈ 13 s) decade troppo rapidamente nella fase finale, mentre il fit del 2° tratto (τ₂ ≈ 17 s) non coglie la dinamica iniziale più ripida. Questo suggerisce la presenza di **due contributi termici sovrapposti** con costanti di tempo diverse.
|
||
|
||

|
||
|
||
*Confronto tra il fit del 1° tratto (rosso) e del 2° tratto (verde) sovrapposti ai dati raw: nessuno dei due descrive correttamente l'intera curva.*
|
||
|
||
Il raffreddamento di un corpo che ha subito un processo termico complesso può essere descritto dalla **combinazione lineare di due esponenziali**: il primo termine cattura una componente rapida (raffreddamento superficiale immediato), il secondo una componente lenta (dissipazione termica del nucleo della scatola). Il modello adottato è:
|
||
|
||
$$T(t) = T_{\infty} + A_1 \cdot e^{-\frac{t - t_1}{\tau_1}} + A_2 \cdot e^{-\frac{t - t_2}{\tau_2}}$$
|
||
|
||
con $T_{\infty} = 22.99\ °C$, $t_1 = 115.0\ s$ e $t_2 = 117.5\ s$ fissi. La zona [115.9, 117.2 s] è esclusa con pesi nulli (σ = 10¹⁰), come nei fit precedenti.
|
||
|
||
#### Parametri stimati
|
||
|
||
| Parametro | Descrizione | Valore |
|
||
|---|---|---|
|
||
| $A_1$ | Ampiezza componente rapida | **20.73 ± 0.93 °C** |
|
||
| $\tau_1$ | Costante di tempo rapida | **1.80 ± 0.17 s** |
|
||
| $A_2$ | Ampiezza componente lenta | **152.44 ± 0.65 °C** |
|
||
| $\tau_2$ | Costante di tempo lenta | **17.60 ± 0.13 s** |
|
||
|
||
#### Curva stimata
|
||
|
||
$$T(t) = 22.99 + 20.73 \cdot e^{-\frac{t - 115.0}{1.80}} + 152.44 \cdot e^{-\frac{t - 117.5}{17.60}} \quad [°C]$$
|
||
|
||
#### Bontà del fit
|
||
|
||
| Metrica | Valore | Nota |
|
||
|---|---|---|
|
||
| $R^2$ | **0.9991** | Calcolato solo sui punti con peso pieno |
|
||
|
||
Rispetto al singolo esponenziale (R² = 0.9938 nel fit intero), il doppio esponenziale migliora significativamente la bontà del fit catturando la dinamica iniziale rapida ($\tau_1 \approx 1.8\ s$) che il modello a un solo termine non riusciva a descrivere.
|
||
|
||
#### Grafico
|
||
|
||

|
||
|
||
*Dati raw (blu), contributo rapido (rosso punteggiato), contributo lento (verde punteggiato), somma totale (viola tratteggiato), zona esclusa (arancione).*
|