Il Laboratorio di Controllo della Temperatura

Questo notebook Jupyter mira a fornire un’esplorazione dettagliata del Temperature Control Lab (TCLab) come strumento pratico per comprendere i concetti di ingegneria del controllo.

Il Laboratorio di controllo della temperatura fornisce un ambiente di apprendimento pratico per i corsi tradizionali sul controllo di processo. Il dispositivo basato su Arduino è costituito da un sistema di riscaldatori e sensori a due ingressi e due uscite.

Questa parte del corso mira a colmare il divario tra teoria e applicazione pratica, una sfida che molti ingegneri devono affrontare quando passano dalla formazione accademica alla risoluzione dei problemi nel mondo reale.

Applicare le conoscenze teoriche alle applicazioni pratiche non è semplice. Questo notebook affronterà queste sfide, concentrandosi sulla natura iterativa della risoluzione dei problemi ingegneristici e sull’importanza di comprendere che spesso esiste più di una risposta giusta a un problema.

Sistemi di controllo termico per veicoli spaziali

Abbiamo il compito di sviluppare un sistema di controllo termico per un satellite in orbita terrestre. Questo sistema deve mantenere i componenti interni, in particolare le batterie, entro un intervallo di temperatura specifico nonostante le condizioni difficili e variabili dello spazio.

Rosetta_spacecraft_pillars

Figura: Rosetta Thermal Control

Bella panoramica del problema disponibile sulla pagina web della NASA State-of-the-Art of Small Spacecraft Technology

Introduzione al controllo termico nello spazio

Il controllo del livello di temperatura di apparecchiature, carichi utili, satelliti e lanciatori è un aspetto critico in tutte le fasi di una missione spaziale. Questo capitolo approfondisce le complessità del controllo termico nello spazio, sottolineandone l’importanza per la protezione dell’hardware di volo e il successo della missione.

Il concetto di controllo termico

Il controllo termico nello spazio si riferisce alla tecnologia e ai metodi utilizzati per mantenere la temperatura di un veicolo spaziale entro parametri specifici per tutta la sua vita. Ciò comprende un’ampia gamma di temperature, dai livelli criogenici (fino a -270°C) ai sistemi di protezione termica ad alta temperatura (oltre 2000°C).

Importanza della gestione della temperatura

  • Sicurezza dell’attrezzatura: il surriscaldamento può danneggiare o compromettere gravemente le prestazioni dell’attrezzatura di bordo. Nello spazio, correggere tali problemi è quasi impossibile, evidenziando la necessità di sistemi di controllo termico efficienti e affidabili.
  • Ottimizzazione delle prestazioni: per componenti sensibili come strumenti elettronici o ottici, il mantenimento della stabilità della temperatura specificata è fondamentale per un funzionamento ottimale.

Aspetti visivi del controllo termico

Il sottosistema di controllo termico è uno degli elementi visivamente più distintivi di un veicolo spaziale. Spesso include: - Coperte isolanti: si tratta di materiali simili a fogli, noti come coperte isolanti multistrato (MLI), utilizzati per bloccare una parte significativa del flusso di calore solare. - Radiatori: sono superfici verniciate di bianco o a specchio utilizzate per respingere il calore dal satellite allo spazio, che è estremamente freddo (intorno a -270°C).

Perché il controllo termico è importante?

Il controllo termico è fondamentale sia per l’integrità strutturale che per il funzionamento efficiente di un satellite.

Fattori che influenzano la temperatura del satellite

  1. Fonti di calore esterne: includono i flussi di calore solare, dell’albedo (luce solare riflessa) e del pianeta.
  2. Produzione interna di calore: calore generato da apparecchiature elettroniche e altri sistemi di bordo.
  3. Rifiuto del calore: il processo di dissipazione del calore nella fredda distesa dello spazio.

Impatti delle variazioni di temperatura

  • Intervallo di prestazioni ottimali: le apparecchiature elettroniche solitamente funzionano in modo efficiente entro un intervallo di temperature specifico.
  • Sensibilità dello strumento: alcuni carichi utili, come i rilevatori a infrarossi, richiedono temperature estremamente basse.
  • Riduzione della durata: le alte temperature possono ridurre significativamente la durata di vari componenti.
  • Integrità strutturale: grandi differenze di temperatura possono causare espansione o contrazione termica, distorcendo potenzialmente la struttura del satellite.

Bilanciamento del calore nei veicoli spaziali

Il livello della temperatura di un veicolo spaziale è un equilibrio tra il calore che riceve e il calore che respinge. Gli elementi chiave di questo equilibrio includono:

  • Coperte isolanti multistrato (MLI): questi dispositivi isolanti aiutano a bloccare una parte sostanziale del flusso di calore solare.
  • Radiatori: questi componenti facilitano il rifiuto del calore verso il vuoto freddo dello spazio.

Obiettivi del sistema di controllo termico

Gli obiettivi primari del sottosistema di controllo termico sono:

  1. Mantenimento della temperatura generale: garantire che la temperatura del veicolo spaziale rimanga entro limiti accettabili.
  2. Gestione della distribuzione della temperatura: raggiungimento di una distribuzione ottimale della temperatura all’interno del satellite per soddisfare le diverse fasi della missione (lancio, trasferimento in orbita, funzionamento in orbita).

Ulteriori letture

  • “Controllo termico dei veicoli spaziali” di José Meseguer, Isabel Pérez-Grande e Angel Sanz-Andrés: una guida completa ai principi e alle pratiche del controllo termico dei veicoli spaziali.
  • “Spacecraft Thermal Control Handbook” di David G. Gilmore: un’esplorazione approfondita di varie tecnologie di controllo termico e delle loro applicazioni nelle missioni spaziali.

Comprendere il problema

La sfida principale è mantenere la temperatura della batteria entro i limiti operativi (circa da 0 a 20 gradi Celsius) nonostante la temperatura interna media sia intorno a -5 gradi Celsius. Ciò implica la necessità di un meccanismo di riscaldamento anziché di raffreddamento.

Il corretto funzionamento delle batterie satellitari è fondamentale per il successo della missione. Temperature fuori dall’intervallo operativo possono portare al fallimento, mettendo a rischio l’intera missione.

Esplorare soluzioni

Vengono prese in considerazione diverse soluzioni, tra cui il controllo termico passivo e l’uso di cinghie termiche. Tuttavia, è stata presa la decisione di utilizzare un riscaldatore a striscia dedicato, che offre maggiore controllo e robustezza, soprattutto data la disponibilità di energia.


Il Laboratorio di Controllo della Temperatura

La risorsa principale per TCLab è disponibile su apmonitor.com.

Nelle sezioni successive esploreremo le complessità della modellazione dinamica, comprendendo le risposte del sistema e l’implementazione di varie strategie di controllo.

Il nostro approccio comporterà l’utilizzo della programmazione Python per interagire con l’hardware TCLab, condurre analisi dei dati e visualizzare in modo efficace i comportamenti del sistema.

1.1 Cos’è TCLab?

  • Descrizione: TCLab è una configurazione da laboratorio compatta che include un microcontrollore Arduino, riscaldatori, sensori di temperatura e un LED. È progettato per apprendere e applicare i principi dell’ingegneria di controllo in modo pratico.

  • Componenti:

    • Microcontrollore Arduino: funge da cervello della configurazione.
    • Riscaldatori: forniscono energia termica al sistema.
    • Sensori di temperatura: misura la temperatura del sistema.
    • LED: indicatore visivo per determinate azioni o stati.
  • Scopo: comprendere e applicare i principi del controllo del feedback in una configurazione tangibile.

tclab_transparent

Comprendere il kit TCLab

I componenti principali di TCLab

Il Temperature Control Lab (TCLab) è un sistema integrato composto da diversi componenti chiave, ciascuno dei quali contribuisce in modo significativo alla sua funzionalità:

  1. Microcontrollore Arduino:
    • Scopo: Serve come unità di elaborazione centrale per TCLab.
    • Funzionalità: elabora i dati di input dai sensori di temperatura e gestisce il funzionamento dei riscaldatori.
    • Connettività: utilizza una connessione USB per il trasferimento dei dati e consente il controllo in tempo reale tramite script Python.
  2. Riscaldatori:
    • Descrizione: TCLab è dotato di due riscaldatori, ciascuno in grado di generare energia termica regolabile.
    • Ruolo: Agire come principale fonte di calore per gli esperimenti, replicando scenari che richiedono la regolazione della temperatura. Funzionano come gli attuatori del sistema.
  3. Sensori di temperatura:
    • Tipo: questi sensori sono termistori, un tipo di resistore la cui resistenza varia con le variazioni di temperatura.
    • Intervallo di misurazione: in grado di misurare temperature comprese tra $ -40^$C e \(150^\circ\)C.
    • Funzionalità: posizionato vicino a ciascun riscaldatore per misurare con precisione la temperatura, fornendo un feedback essenziale per il controllo della temperatura.
  4. Dissipatori di calore:
    • Tipo: Composto da dissipatori di calore a transistor.
    • Scopo: impiegato per dissipare in modo efficiente il calore lontano dai transistor.
  5. LED (diodo a emissione luminosa):
  • Scopo: Serve come indicatore visivo per vari stati o azioni, come segnalare l’attivazione di un riscaldatore.

Configurazioni operative di TCLab

TCLab può essere configurato in varie modalità a seconda degli obiettivi formativi:

  1. Ingresso singolo Uscita singola (SISO):
    • Utilizza solo un riscaldatore e un sensore. Ideale per semplici esperimenti di controllo e per apprendere le basi del controllo della temperatura.
  2. Ingresso singolo Uscita singola (SISO) con disturbo:
    • Utilizza un riscaldatore/sensore come sistema di controllo primario e il secondo riscaldatore come fonte di disturbo esterno. Questa configurazione è utile per comprendere come i fattori esterni influenzano i sistemi di controllo.
  3. Ingressi multipli Uscite multiple (MIMO):
    • Implica l’utilizzo simultaneo di riscaldatori e sensori. Questa configurazione più avanzata non è trattata qui ma è utile per studi di sistemi di controllo complessi.

Ogni componente del TCLab svolge un ruolo specifico, rendendolo uno strumento versatile per insegnare e sperimentare vari aspetti dell’ingegneria di controllo. Sia per l’apprendimento fondamentale che per l’esplorazione avanzata, TCLab offre una piattaforma pratica per comprendere la dinamica e il controllo dei sistemi basati sulla temperatura.

tclab_heater tclab_temperature_sensor
tclab_temperature_sensor

Come funziona TCLab

  • Flusso operativo:
    1. Segnale di ingresso: uno script Python invia un comando ad Arduino, impostando il livello di potenza desiderato per i riscaldatori.
    2. Azione di riscaldamento: i riscaldatori generano calore corrispondente ai comandi del livello di potenza ricevuti.
    3. Misurazione della temperatura: i termistori misurano le temperature risultanti vicino ai riscaldatori.
    4. Ciclo di feedback: queste letture della temperatura vengono inviate al computer.
    5. Regolazioni: l’algoritmo di controllo nello script Python regola la potenza del riscaldatore in base al feedback della temperatura, cercando di raggiungere e mantenere una temperatura target.

[Inserisci qui il diagramma di flusso o il diagramma che mostra il ciclo di feedback]


Sezione 2: Uno sguardo approfondito ai componenti TCLab

2.1 Microcontrollore Arduino

  • Descrizione dettagliata: Fornisci dettagli sul modello Arduino utilizzato in TCLab, le sue capacità e i suoi limiti
tclab_heater tclab_radiator
tclab_temperature_sensor

Obiettivi:

  • Modellazione dinamica con equazioni di bilancio
  • La differenza tra controllo manuale e automatico
  • Test di passaggio per generare dati dinamici
  • Adattamento dei dati dinamici a un modello First Order Plus Dead Time (FOPDT).
  • Ottenimento dei parametri per il controllo PID dalle regole di ottimizzazione standard
  • Ottimizzazione del controller PID per migliorare le prestazioni

Descrizione dell’hardware TCLab

Includere uno schema a blocchi


Configurazione di TCLab

Questa guida fornisce istruzioni passo passo per configurare il Laboratorio di Controllo della Temperatura (TCLab), partendo dall’installazione di Python su diversi sistemi operativi fino alla conduzione dei test iniziali con TCLab e il suo simulatore.

Sezione 1: Installazione di Python utilizzando Conda

Installazione di Python su Mac

Passaggio 1: installa Anaconda

  • Scarica Anaconda: visita la Pagina di download di Anaconda e scarica il programma di installazione per Mac.
  • Esegui il programma di installazione: apri il file scaricato e segui le istruzioni visualizzate sullo schermo.
  • Verifica installazione:
    • Apri Terminale.
    • Digita “conda –version” e premi Invio. Se Anaconda è stato installato correttamente, vedrai il numero di versione.

Passaggio 2: configurazione dell’ambiente (facoltativo)

  • Crea un nuovo ambiente: nel Terminale, digita conda create -n tclab_env python=3.8 e premi Invio.
  • Attiva ambiente: digita “conda activate tclab_env” e premi Invio.

Installazione di Python su Windows

Passaggio 1: installa Anaconda

  • Scarica Anaconda: visita la Pagina di download di Anaconda e scarica il programma di installazione per Windows.
  • Esegui il programma di installazione: apri il file scaricato e segui le istruzioni visualizzate sullo schermo.
  • Verifica installazione:
    • Apri il prompt di Anaconda.
    • Digita “conda –version” e premi Invio.

Passaggio 2: configurazione dell’ambiente (facoltativo)

  • Crea un nuovo ambiente: nel prompt di Anaconda, digita “conda create -n tclab_env python=3.8” e premi Invio.
  • Attiva ambiente: digita “conda activate tclab_env” e premi Invio.

1.3 Installazione di Python su Linux

Passaggio 1: installa Anaconda

  • Scarica Anaconda: visita la Pagina di download di Anaconda e scarica il programma di installazione per Linux.
  • Esegui programma di installazione: apri Terminale, vai alla directory contenente il file scaricato ed esegui lo script utilizzando bash Anaconda3-XXXX.sh.
  • Verifica installazione:
    • Nel Terminale, digita “conda –version”.

Passaggio 2: configurazione dell’ambiente (facoltativo)

  • Crea un nuovo ambiente: nel Terminale, digita conda create -n tclab_env python=3.8 e premi Invio.
  • Attiva ambiente: digita “conda activate tclab_env” e premi Invio.

Sezione 2: Configurazione di TCLab

Configurazione dell’ambiente Conda

Per configurare l’ambiente Conda per questo corso, attenersi alla seguente procedura:

  1. Scarica il file tclab_environment.yml da questo repository.
  2. Apri il terminale o il prompt di Anaconda e vai alla directory in cui si trova il file.

Il file tclab_environment.yml assomiglia a questo:

nome: tclab_env
canali:
  - valori predefiniti
dipendenze:
  - pitone=3.10
  - pip
  - insensato
  - matplotlib
  - scipito
  - panda
  - pip:
    -tclab
  1. Crea l’ambiente dal file tclab_environment.yml:

    conda env create -f tclab_environment.yml

  2. Attiva il nuovo ambiente:

    conda attiva tclab

  3. Per verificare che l’ambiente sia stato installato correttamente, è possibile utilizzare:

    conda env list

Installazione del pacchetto TCLab

  1. Attivazione dell’ambiente:
    • Assicurati che il tuo ambiente Anaconda sia attivo. Apri il tuo Terminale (o il prompt di Anaconda su Windows) e attiva il tuo ambiente:

      conda attiva tclab_env
  2. Installazione di TCLab:
    • La libreria tclab è fondamentale per l’interfacciamento con l’hardware del Laboratorio di controllo della temperatura. Installalo inserendo il seguente comando:

      pip installa tclab
    • Premi Invio per eseguire il comando e completare l’installazione.

Installazione di librerie utili aggiuntive

Per un’esperienza completa con TCLab e per supportare vari aspetti dell’ingegneria di controllo e dell’analisi dei dati, verranno installate anche le seguenti librerie:

  1. insensibile:
    • Significato: una libreria fondamentale per i calcoli numerici in Python.

    • Comando di installazione:

      pip installa numpy
  2. matplotlib:
    • Significato: fondamentale per creare rappresentazioni visive dei dati, in particolare per l’analisi degli esperimenti TCLab.

    • Comando di installazione:

      pip installa matplotlib
  3. scipy:
    • Significato: fornisce un’ampia gamma di strumenti per il calcolo scientifico, compresi metodi per risolvere equazioni differenziali ordinarie, utili nella modellizzazione dei sistemi.

    • Comando di installazione:

      pip installa scipy
  4. panda:
    • Significato: offre funzionalità estese per la manipolazione e l’analisi dei dati, ideali per la gestione di set di dati complessi.

    • Comando di installazione:

      pip installa panda
  5. geco:
    • Significatività: pacchetto avanzato per l’ottimizzazione e il controllo, adatto all’implementazione di strategie di controllo predittivo del modello.

    • Comando di installazione:

      pip installa gekko

Schemi TCLab

tclab_schematic

Test iniziali con TCLab

Passaggio 1: collega TCLab

  • Connetti TCLab: collega il dispositivo TCLab al computer utilizzando un cavo USB.

Passaggio 2: testare la connessione TCLab

  • Scrivi script di prova:
    • Apri il tuo IDE Python o Jupyter Notebook.
    • Scrivi il seguente codice Python ed esegui lo script. Se stampa la temperatura, TCLab è collegato correttamente.
import tclab
with tclab.TCLab() as lab:
    print(f"Connected! Heater 1 is at {lab.T1}°C")
TCLab version 1.0.0
--- Serial Ports ---
/dev/cu.BLTH n/a n/a
/dev/cu.BlueBeatsStudio n/a n/a
/dev/cu.Bluetooth-Incoming-Port n/a n/a
RuntimeError: No Arduino device found.

Utilizzo del simulatore TCLab

  • Perché utilizzare un simulatore: il simulatore TCLab è utile quando non si dispone dell’hardware fisico.
  • Installa simulatore: nel terminale o nel prompt di Anaconda, digita nuovamente pip install tclab (include il simulatore).
  • Script di prova con simulatore:
from tclab import setup, clock
TCLab = setup(connected=False, speedup=5)

with TCLab() as lab:
    for t in clock(200, 2):
        print(f"Time {t} seconds. T1: {lab.T1}°C")
TCLab version 1.0.0
Simulated TCLab
Time 0 seconds. T1: 20.949499999999997°C
Time 2.01 seconds. T1: 20.949499999999997°C
Time 4.04 seconds. T1: 20.949499999999997°C
Time 6.03 seconds. T1: 20.949499999999997°C
Time 8.06 seconds. T1: 20.949499999999997°C
Time 10.07 seconds. T1: 20.949499999999997°C
Time 12.02 seconds. T1: 20.949499999999997°C
Time 14.03 seconds. T1: 20.949499999999997°C
Time 16.15 seconds. T1: 20.949499999999997°C
Time 18.04 seconds. T1: 20.949499999999997°C
Time 20.2 seconds. T1: 20.949499999999997°C
Time 22.01 seconds. T1: 20.949499999999997°C
Time 24.19 seconds. T1: 20.949499999999997°C
Time 26.24 seconds. T1: 20.949499999999997°C
Time 28.16 seconds. T1: 20.949499999999997°C
Time 30.03 seconds. T1: 20.949499999999997°C
Time 32.12 seconds. T1: 20.949499999999997°C
Time 34.2 seconds. T1: 20.6272°C
Time 36.04 seconds. T1: 20.949499999999997°C
Time 38.02 seconds. T1: 20.6272°C
Time 40.21 seconds. T1: 20.949499999999997°C
Time 42.14 seconds. T1: 20.949499999999997°C
Time 44.01 seconds. T1: 20.6272°C
Time 46.3 seconds. T1: 20.949499999999997°C
Time 48.22 seconds. T1: 20.949499999999997°C
Time 50.07 seconds. T1: 20.949499999999997°C
Time 52.27 seconds. T1: 20.949499999999997°C
Time 54.09 seconds. T1: 20.949499999999997°C
Time 56.28 seconds. T1: 20.949499999999997°C
Time 58.19 seconds. T1: 20.949499999999997°C
Time 60.04 seconds. T1: 20.949499999999997°C
Time 62.2 seconds. T1: 20.949499999999997°C
Time 64.11 seconds. T1: 20.949499999999997°C
Time 66.08 seconds. T1: 20.949499999999997°C
Time 68.23 seconds. T1: 20.6272°C
Time 70.13 seconds. T1: 20.949499999999997°C
Time 72.07 seconds. T1: 20.949499999999997°C
Time 74.05 seconds. T1: 20.949499999999997°C
Time 76.1 seconds. T1: 20.6272°C
Time 78.1 seconds. T1: 20.6272°C
Time 80.22 seconds. T1: 20.949499999999997°C
Time 82.28 seconds. T1: 20.949499999999997°C
Time 84.22 seconds. T1: 20.949499999999997°C
Time 86.16 seconds. T1: 20.949499999999997°C
Time 88.23 seconds. T1: 20.949499999999997°C
Time 90.0 seconds. T1: 20.949499999999997°C
Time 92.27 seconds. T1: 20.949499999999997°C
Time 94.0 seconds. T1: 20.949499999999997°C
Time 96.16 seconds. T1: 20.949499999999997°C
Time 98.02 seconds. T1: 20.949499999999997°C
Time 100.1 seconds. T1: 20.949499999999997°C
Time 102.24 seconds. T1: 20.949499999999997°C
Time 104.0 seconds. T1: 20.6272°C
Time 106.18 seconds. T1: 20.949499999999997°C
Time 108.27 seconds. T1: 20.949499999999997°C
Time 110.27 seconds. T1: 20.949499999999997°C
Time 112.1 seconds. T1: 20.949499999999997°C
Time 114.22 seconds. T1: 20.949499999999997°C
Time 116.24 seconds. T1: 20.949499999999997°C
Time 118.18 seconds. T1: 20.949499999999997°C
Time 120.19 seconds. T1: 20.949499999999997°C
Time 122.06 seconds. T1: 20.949499999999997°C
Time 124.22 seconds. T1: 20.6272°C
Time 126.19 seconds. T1: 20.949499999999997°C
Time 128.18 seconds. T1: 20.949499999999997°C
Time 130.25 seconds. T1: 20.949499999999997°C
Time 132.02 seconds. T1: 20.6272°C
Time 134.2 seconds. T1: 20.949499999999997°C
Time 136.27 seconds. T1: 20.949499999999997°C
Time 138.01 seconds. T1: 20.6272°C
Time 140.2 seconds. T1: 20.949499999999997°C
Time 142.18 seconds. T1: 20.949499999999997°C
Time 144.2 seconds. T1: 20.949499999999997°C
Time 146.23 seconds. T1: 20.949499999999997°C
Time 148.24 seconds. T1: 20.949499999999997°C
Time 150.19 seconds. T1: 20.949499999999997°C
Time 152.28 seconds. T1: 20.949499999999997°C
Time 154.25 seconds. T1: 20.949499999999997°C
Time 156.23 seconds. T1: 20.6272°C
Time 158.04 seconds. T1: 20.949499999999997°C
Time 160.11 seconds. T1: 20.949499999999997°C
Time 162.04 seconds. T1: 20.949499999999997°C
Time 164.05 seconds. T1: 20.949499999999997°C
Time 166.01 seconds. T1: 20.949499999999997°C
Time 168.23 seconds. T1: 20.6272°C
Time 170.08 seconds. T1: 20.949499999999997°C
Time 172.01 seconds. T1: 20.949499999999997°C
Time 174.14 seconds. T1: 20.949499999999997°C
Time 176.01 seconds. T1: 20.949499999999997°C
Time 178.22 seconds. T1: 20.949499999999997°C
Time 180.2 seconds. T1: 20.949499999999997°C
Time 182.2 seconds. T1: 20.949499999999997°C
Time 184.21 seconds. T1: 20.949499999999997°C
Time 186.08 seconds. T1: 20.949499999999997°C
Time 188.29 seconds. T1: 20.949499999999997°C
Time 190.24 seconds. T1: 20.949499999999997°C
Time 192.18 seconds. T1: 20.949499999999997°C
Time 194.09 seconds. T1: 20.949499999999997°C
Time 196.22 seconds. T1: 20.949499999999997°C
Time 198.26 seconds. T1: 20.949499999999997°C
Time 200.02 seconds. T1: 20.6272°C
TCLab Model disconnected successfully.