248 lines
9.4 KiB
TeX
248 lines
9.4 KiB
TeX
\documentclass[12pt,a4paper]{article}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage[italian]{babel}
|
|
\usepackage{amsmath}
|
|
\usepackage{graphicx}
|
|
\usepackage{booktabs}
|
|
\usepackage{geometry}
|
|
\usepackage{caption}
|
|
\usepackage{hyperref}
|
|
|
|
\geometry{margin=2.5cm}
|
|
|
|
\title{\textbf{Analisi termica} \\ \large Scatola su linea di forno}
|
|
\author{Davide Grilli}
|
|
\date{Aprile 2026}
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
Campionamento IR della temperatura di una scatola che attraversa un forno su linea di produzione.
|
|
Finestra di osservazione: \textbf{0.2\,s $\rightarrow$ 133.7\,s} (133.5\,s totali, 888 campioni).
|
|
|
|
% ─────────────────────────────────────────────
|
|
\section{Dati e analisi preliminare}
|
|
|
|
\subsection{Dati grezzi}
|
|
|
|
Il grafico seguente riporta il profilo termico completo acquisito dal sensore IR, a partire da $t = 105\,\mathrm{s}$.
|
|
Sono mostrate le due curve: temperatura ambiente ($T_{\mathrm{amb}}$) e temperatura della scatola ($T_{\mathrm{obj}}$).
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics[width=\textwidth]{plot_temperatura.png}
|
|
\caption{Profilo termico grezzo: temperatura ambiente (blu) e temperatura scatola (arancione).}
|
|
\end{figure}
|
|
|
|
% ─────────────────────────────────────────────
|
|
\subsection{Temperatura ambiente $T_\infty$}
|
|
|
|
\subsubsection*{Metodologia}
|
|
|
|
$T_\infty$ è usata come temperatura di equilibrio nel modello di raffreddamento.
|
|
È calcolata come \textbf{media ponderata sul tempo} sull'intera finestra di osservazione, con la regola dei trapezi:
|
|
|
|
\begin{equation}
|
|
T_{\infty} = \frac{\int_{t_i}^{t_f} T_{\mathrm{amb}}(t)\,dt}{t_f - t_i}
|
|
\end{equation}
|
|
|
|
Questo approccio è corretto con campionamento non uniforme: ogni campione pesa proporzionalmente all'intervallo di tempo che copre.
|
|
|
|
\subsubsection*{Risultati}
|
|
|
|
\begin{table}[h!]
|
|
\centering
|
|
\begin{tabular}{ll}
|
|
\toprule
|
|
Parametro & Valore \\
|
|
\midrule
|
|
$T_{\mathrm{amb}}$ minima & 22.60\,°C \\
|
|
$T_{\mathrm{amb}}$ massima & 23.80\,°C \\
|
|
\textbf{$T_\infty$ (media ponderata)} & \textbf{22.99\,°C} \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
|
|
% ─────────────────────────────────────────────
|
|
\section{Raffreddamento}
|
|
|
|
Il profilo di raffreddamento è modellato con la legge di raffreddamento di Newton:
|
|
|
|
\begin{equation}
|
|
T(t) = T_{\infty} + A \cdot e^{-\frac{t - t_0}{\tau}}
|
|
\end{equation}
|
|
|
|
con $T_{\infty} = 22.99\,°C$ fisso. Il metodo di stima è in tutti i casi \textbf{Nonlinear Least Squares con Trust Region Reflective (TRF)} (\texttt{scipy.optimize.curve\_fit(..., method="trf")}).
|
|
|
|
% ─────────────────────────────────────────────
|
|
\subsection{Raffreddamento intero}
|
|
|
|
Fit sulla finestra completa $t_0 = 115.0\,\mathrm{s} \rightarrow$ fine osservazione, con pesi espliciti per escludere la zona di transizione in uscita dal forno.
|
|
|
|
\begin{table}[h!]
|
|
\centering
|
|
\caption{Schema dei pesi}
|
|
\begin{tabular}{lll}
|
|
\toprule
|
|
Intervallo & Peso & Motivazione \\
|
|
\midrule
|
|
$[115.0,\ 115.9)$\,s & $w = 1$ & Raffreddamento regolare \\
|
|
$[115.9,\ 117.2]$\,s & $w = 0\ (\sigma = 10^{10})$ & Errore di misura \\
|
|
$(117.2,\ \mathrm{fine}]$\,s & $w = 1$ & Raffreddamento regolare \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
|
|
I punti nella zona esclusa ricevono peso nullo: assegnando $\sigma = 10^{10}$ il termine $(\mathrm{residuo}/\sigma)^2 \rightarrow 0$, rendendoli ininfluenti sul costo del fit. Entrambi i parametri $A$ e $\tau$ sono liberi.
|
|
|
|
\begin{table}[h!]
|
|
\centering
|
|
\caption{Parametri stimati — Raffreddamento intero}
|
|
\begin{tabular}{lll}
|
|
\toprule
|
|
Parametro & Descrizione & Valore \\
|
|
\midrule
|
|
$A$ & Sovratemperatura iniziale & $185.18 \pm 0.27\,°C$ \\
|
|
$\tau$ & Costante di tempo & $16.27 \pm 0.05\,\mathrm{s}$ \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
|
|
\textbf{Curva stimata:}
|
|
\begin{equation}
|
|
T(t) = 22.99 + 185.18 \cdot e^{-\frac{t - 115.0}{16.27}} \quad [°C]
|
|
\end{equation}
|
|
|
|
\textbf{Bontà del fit:} $R^2 = 0.9938$ (calcolato solo sui punti con peso pieno).
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics[width=\textwidth]{fit_raffreddamento_intero.png}
|
|
\caption{Raffreddamento intero: dati raw (blu), zona esclusa (arancione), curva di fit TRF (rosso tratteggiato).}
|
|
\end{figure}
|
|
|
|
\clearpage
|
|
|
|
% ─────────────────────────────────────────────
|
|
\subsection{Raffreddamento 1° tratto}
|
|
|
|
Fit sul primo sotto-tratto $[115.0,\ 115.9\,\mathrm{s}]$, la finestra precedente alla zona di transizione. Pesi uniformi ($w = 1$ su tutti i punti). Parametri liberi: $A$, $\tau$.
|
|
|
|
\begin{table}[h!]
|
|
\centering
|
|
\caption{Parametri stimati — 1° tratto}
|
|
\begin{tabular}{lll}
|
|
\toprule
|
|
Parametro & Descrizione & Valore \\
|
|
\midrule
|
|
$A$ & Sovratemperatura iniziale & $194.51\,°C$ \\
|
|
$\tau$ & Costante di tempo & $13.17\,\mathrm{s}$ \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
|
|
\textbf{Curva stimata:}
|
|
\begin{equation}
|
|
T(t) = 22.99 + 194.51 \cdot e^{-\frac{t - 115.0}{13.17}} \quad [°C]
|
|
\end{equation}
|
|
|
|
\textbf{Bontà del fit:} $R^2 = 0.9998$.
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics[width=\textwidth]{fit_raffreddamento_1tratto.png}
|
|
\caption{1° tratto $[115.0\text{--}115.9\,\mathrm{s}]$: dati raw (blu) e curva di fit (rosso tratteggiato).}
|
|
\end{figure}
|
|
|
|
\clearpage
|
|
|
|
% ─────────────────────────────────────────────
|
|
\subsection{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_0 = 117.5\,\mathrm{s} \rightarrow$ fine osservazione. Pesi uniformi ($w = 1$). Parametri liberi: $A$, $\tau$.
|
|
|
|
\begin{table}[h!]
|
|
\centering
|
|
\caption{Parametri stimati — 2° tratto}
|
|
\begin{tabular}{lll}
|
|
\toprule
|
|
Parametro & Descrizione & Valore \\
|
|
\midrule
|
|
$A$ & Sovratemperatura iniziale & $154.94\,°C$ \\
|
|
$\tau$ & Costante di tempo & $17.12\,\mathrm{s}$ \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
|
|
\textbf{Curva stimata:}
|
|
\begin{equation}
|
|
T(t) = 22.99 + 154.94 \cdot e^{-\frac{t - 117.5}{17.12}} \quad [°C]
|
|
\end{equation}
|
|
|
|
\textbf{Bontà del fit:} $R^2 = 0.9981$ — il modello spiega il 99.81\% della varianza, fit eccellente.
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics[width=\textwidth]{fit_raffreddamento_2tratto.png}
|
|
\caption{2° tratto $[117.5\,\mathrm{s}\text{--fine}]$: dati raw (blu) e curva di fit (rosso tratteggiato).}
|
|
\end{figure}
|
|
|
|
\clearpage
|
|
|
|
% ─────────────────────────────────────────────
|
|
\subsection{Raffreddamento doppio esponenziale}
|
|
|
|
\subsubsection*{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 ($\tau_1 \approx 13\,\mathrm{s}$) decade troppo rapidamente nella fase finale, mentre il fit del 2° tratto ($\tau_2 \approx 17\,\mathrm{s}$) non coglie la dinamica iniziale più ripida. Questo suggerisce la presenza di due contributi termici sovrapposti con costanti di tempo diverse.
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics[width=\textwidth]{plot_confronto_fit.png}
|
|
\caption{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.}
|
|
\end{figure}
|
|
|
|
Il raffreddamento viene quindi modellato come \textbf{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):
|
|
|
|
\begin{equation}
|
|
T(t) = T_{\infty} + A_1 \cdot e^{-\frac{t - t_1}{\tau_1}} + A_2 \cdot e^{-\frac{t - t_2}{\tau_2}}
|
|
\end{equation}
|
|
|
|
con $T_{\infty} = 22.99\,°C$, $t_1 = 115.0\,\mathrm{s}$ e $t_2 = 117.5\,\mathrm{s}$ fissi. La zona $[115.9,\ 117.2\,\mathrm{s}]$ è esclusa con pesi nulli ($\sigma = 10^{10}$).
|
|
|
|
\subsubsection*{Parametri stimati}
|
|
|
|
\begin{table}[h!]
|
|
\centering
|
|
\caption{Parametri stimati — doppio esponenziale}
|
|
\begin{tabular}{lll}
|
|
\toprule
|
|
Parametro & Descrizione & Valore \\
|
|
\midrule
|
|
$A_1$ & Ampiezza componente rapida & $20.73 \pm 0.93\,°C$ \\
|
|
$\tau_1$ & Costante di tempo rapida & $1.80 \pm 0.17\,\mathrm{s}$ \\
|
|
$A_2$ & Ampiezza componente lenta & $152.44 \pm 0.65\,°C$ \\
|
|
$\tau_2$ & Costante di tempo lenta & $17.60 \pm 0.13\,\mathrm{s}$ \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{table}
|
|
|
|
\textbf{Curva stimata:}
|
|
\begin{equation}
|
|
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]
|
|
\end{equation}
|
|
|
|
\textbf{Bontà del fit:} $R^2 = 0.9991$ (punti con peso pieno). Rispetto al singolo esponenziale ($R^2 = 0.9938$), il doppio esponenziale migliora significativamente il fit catturando la dinamica iniziale rapida ($\tau_1 \approx 1.8\,\mathrm{s}$).
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics[width=\textwidth]{fit_doppio_esponenziale.png}
|
|
\caption{Fit doppio esponenziale: dati raw (blu), componente rapida (rosso punteggiato), componente lenta (verde punteggiato), somma totale (viola tratteggiato), zona esclusa (arancione).}
|
|
\end{figure}
|
|
|
|
\end{document}
|