J'essaie d'écrire un programme de microcontrôleur pour contrôler la température dans un système avec les caractéristiques suivantes:
- la sortie peut uniquement être activée ou désactivée, avec des fréquences de cycle fixes (~ 2-10 par heure)
- La plante réagit lentement (les changements de température mesurables prennent beaucoup de temps> 10 minutes).
- La plante perd de la température en fonction des conditions environnementales.
- le point de consigne peut varier par grandes étapes en fonction de la demande des utilisateurs.
J'écris un contrôleur qui vise à minimiser les erreurs, ainsi qu'à respecter le taux de cycle fourni en entrée.
Cela pourrait facilement être fait avec un contrôleur PI et sa sortie est convertie en rapport cyclique. Le problème est que le programme doit s'auto-régler et choisir les constantes Kp, Ki correctes et s'adapter aux différentes conditions environnementales et aux changements de la capacité de chauffage. Par conséquent, le réglage du contrôleur PI à l'avance n'est pas trop utile.
L'utilisation d'un PI ou PID réel n'est pas une exigence. Je suis ouvert à l'utilisation de Fuzzy-Logic si cela aide, j'ai également un algorithme d'apprentissage automatique sur la puce qui modélise la réponse du système et la perte de chaleur (linéaire environ) qui suggère des informations sur la réponse mesurée par étape . Je ne sais pas quoi faire de ces informations.
Quelques articles suggèrent que je pourrais utiliser les données de modélisation pour régler le PI en ligne, ainsi que le manuel de laboratoire qui suggère que je pourrais utiliser Fuzzy-Logic pour régler le PI.
Ma question est, quelle est la meilleure approche pour ce type de scénario (par exemple PID, flou-pid, convolution, etc.) et comment pourrais-je réellement l'implémenter dans le logiciel / la pratique.
Je ne suis pas un EE donc toute contribution serait grandement appréciée.