Sto cercando di scrivere un programma di microcontrollore per il controllo della temperatura in un sistema con le seguenti caratteristiche:
- l'uscita può essere solo On o Off, con frequenze di ciclo fisse (~ 2-10 all'ora)
- L'impianto risponde lentamente (i cambiamenti misurabili della temperatura richiedono molto tempo> 10 minuti).
- L'impianto perde temperatura in base alle condizioni ambientali.
- il set-point può variare a grandi passi in base alla domanda dell'utente.
Sto scrivendo un controller che mira a minimizzare l'errore, oltre ad aderire alla frequenza di ciclo fornita come input.
Questo potrebbe essere fatto facilmente con un controller PI e la sua uscita viene convertita nel duty-cycle. Il problema è che il programma deve sintonizzarsi automaticamente e scegliere le costanti Kp, Ki corrette e adattarsi alle diverse condizioni ambientali e ai cambiamenti nella capacità di riscaldamento. Pertanto, la regolazione anticipata del controller PI non è troppo utile.
L'uso di un PI o PID effettivo non è un requisito. Sono aperto all'uso di Fuzzy-Logic se aiuta, ho anche un algoritmo di apprendimento automatico sul chip che modella la risposta del sistema e la perdita di calore (lineare circa) che suggerisce informazioni sulla risposta del passo misurata . Non so cosa fare con queste informazioni.
Un paio di post suggeriscono che potrei usare i dati di modellazione per mettere a punto il PI online, così come il manuale di laboratorio che suggerisce che potrei usare Fuzzy-Logic per mettere a punto il PI.
La mia domanda è: qual è l'approccio migliore per questo tipo di scenario (ad esempio PID, fuzzy-pid, convoluzione, ecc.) E come potrei implementarlo effettivamente nel software / nella pratica.
Non sono un EE, quindi qualsiasi input sarebbe molto apprezzato.