Estoy intentando escribir un programa de microcontrolador para controlar la temperatura en un sistema con las siguientes características:
- la salida solo puede estar activada o desactivada, con frecuencias de ciclo fijas (~ 2-10 por hora)
- La planta responde con lentitud (los cambios mensurables en la temperatura llevan mucho tiempo > 10 minutos).
- La planta pierde temperatura según las condiciones ambientales.
- el punto de ajuste puede variar en grandes pasos según la demanda del usuario.
Estoy escribiendo un controlador que apunta a minimizar el error, así como a cumplir con la tasa de ciclos proporcionada como entrada.
Esto podría hacerse fácilmente con un controlador PI y su salida se convierte al ciclo de trabajo. El problema es que el programa debe ajustarse automáticamente y elegir Kp, Ki constantes correctas y adaptarse a las diferentes condiciones ambientales y cambios en la capacidad de calefacción. Por lo tanto, ajustar el controlador PI por adelantado no es muy útil.
El uso de un PI o PID real no es un requisito. Estoy abierto al uso de Fuzzy-Logic si ayuda, también tengo un algoritmo de aprendizaje automático en el chip que modela la respuesta del sistema y la pérdida de calor (aproximadamente lineal) que sugiere información sobre respuesta de pasos medida . Simplemente no sé qué hacer con esa información.
Un par de publicaciones sugieren que podría utilizar los datos de modelado para sintonizar el PI en línea, así como el laboratorio -vista manual que sugiere que podría usar Fuzzy-Logic para sintonizar el PI.
Mi pregunta es: ¿cuál es el mejor enfoque para este tipo de escenario (por ejemplo, PID, fuzzy-pid, convolution, etc.) y cómo podría implementarlo en el software / práctica?
No soy un EE, por lo que cualquier entrada sería muy apreciada.