controladores PID opuestos

4

Tengo un sistema donde se puede establecer una temperatura de punto de ajuste. Un calentador y un enfriador están conectados al objeto. En este momento, tanto el calentador como el enfriador regulan la temperatura por separado con controladores PID separados. Este curso, por supuesto, los hace "luchar", y también me imagino que podrían quedar atrapados en una posición en la que funcionen tanto el calentador como el refrigerador.

¿Cuál es el enfoque general de este tipo de problemas?

    
pregunta Rolle

4 respuestas

7

Hay tres soluciones comunes para esto:

  1. Establezca los puntos de ajuste un poco separados. Haga que el punto de ajuste del calentador sea un poco más bajo que el punto de ajuste del enfriador. Estos deben estar lo suficientemente separados para que el rebasamiento de uno no active al otro. Si puede tolerar el rango de temperatura resultante, esto es lo más fácil de hacer si ya tiene sistemas de calefacción y refrigeración separados.

  2. Incluya un interruptor para que solo uno de los calentadores o enfriadores pueda estar encendido a la vez. Algunos termostatos caseros son así. Por lo general, sabe si necesita enfriarse o calentarse, por lo que depende de usted lanzar el interruptor de manera adecuada cuando desee cambiar.

  3. Utilice un solo controlador. Esta es la mejor manera de hacerlo, arquitectónicamente obvia, si puede diseñar el sistema en general. Un solo controlador intenta mantener la temperatura, y cambia automáticamente entre el calentador y el enfriador, según corresponda. Este tipo de controlador puede incluso implementar un tiempo de espera antes de hacer una pausa antes de la conmutación y otras cosas de lujo.

respondido por el Olin Lathrop
3

Hay algunas cosas que puedes hacer:

  1. Use un sistema de control MIMO (es decir, observe cómo controlar dos procesos con un controlador)
  2. Introduce el bucle de histéresis
  3. solo uno puede estar encendido a la vez

La histéresis reduce la sensibilidad del sistema a cambiar.

La forma en que se hace esto:

  • Cree un umbral para encender / apagar el calentador
  • Cuando el calentador está encendido
  • baje la temperatura requerida para apagar el calentador / enfriador

Lo que esto significa es: Si el calentador está apagado, tiene un umbral de encendido para encenderlo Si el calentador está encendido, tenga un umbral más bajo para apagarlo

NO DEBE permitir que ambos sistemas (calentador, enfriador) funcionen simultáneamente. así que si la casa es

    
respondido por el CyberMen
2

La salida de su controlador PID debe ser un valor firmado. Un valor positivo significa "calentamiento" y un valor negativo significa "enfriamiento". entonces tu código sería así:

output = PID_Calculation();

if (output > 0)
{
    Set_Heater_Power(output);
    Set_Cooler_Power(0);
}
else
{
    Set_Heater_Power(0);
    Set_Cooler_Power(-output);
}
    
respondido por el Rocketmagnet
1

El enfoque general es implementar deadbanding .

  

Una banda muerta (a veces llamada zona neutral) es un área de una señal   rango o banda donde no se produce ninguna acción (el sistema está muerto). Deadband es   Utilizado en reguladores de voltaje y otros controladores. El proposito es   Común, para evitar oscilaciones o repetidas activaciones-desactivaciones.   ciclos (llamados 'caza' en sistemas de control proporcional).

También puede estar tratando con histéresis .

  

La histéresis es la dependencia de un sistema no solo de su corriente   medio ambiente, sino también en su entorno pasado. Surge esta dependencia.   Porque el sistema puede estar en más de un estado interno. Para predecir   su desarrollo futuro, ya sea su estado interno o su historia debe   ser conocido. 1 Si una entrada determinada aumenta y disminuye alternativamente, el   la salida tiende a formar un bucle

En términos sencillos, se puede pensar en la histéresis como un rebasamiento. En otras palabras, cuando uno enciende un calentador y luego lo apaga a una cierta temperatura, la temperatura puede continuar subiendo un poco, incluso después de apagar el calentador. Por supuesto, un controlador PID debería manejar esto, pero tienes dos controladores independientes que pueden estar luchando entre sí.

    
respondido por el JonnyBoats

Lea otras preguntas en las etiquetas