Estoy tratando de 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 tarda en responder (los cambios medibles en la temperatura tardan mucho más de 10 minutos).
- La planta pierde temperatura en función de las condiciones ambientales.
- El punto de ajuste puede variar en grandes pasos en función de la demanda del usuario.
Estoy escribiendo un controlador que tiene como objetivo minimizar el error, así como cumplir con la tasa de ciclo 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 necesita autoajustar y elegir las constantes Kp, Ki correctas y adaptarse a las condiciones ambientales variables y los cambios en la capacidad de calefacción. Por lo tanto, sintonizar el controlador PI por adelantado no es demasiado ú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 (lineal aprox.) Que sugiere información sobre la respuesta de paso medida . Simplemente no sé qué hacer con esa información.
Un par de publicaciones sugieren que podría usar los datos de modelado para ajustar el PI en línea, así como el manual de vista de laboratorio que sugiere que podría usar Fuzzy-Logic para ajustar el PI.
Mi pregunta es, ¿cuál es el mejor enfoque para este tipo de escenario (por ejemplo, PID, fuzzy-pid, convolución, etc.) y cómo lo haría para implementarlo realmente en software / práctica.
No soy un EE, por lo que cualquier aportación sería muy apreciada.