Estoy implementando un controlador PID para el control de velocidad del motor. Ya terminé de implementar el control PI y funciona perfectamente bien para mí. En la especificación me han dicho que implemente una técnica de filtrado utilizando la siguiente ecuación para la parte D:
Ahora, lo que entiendo hasta ahora, es que generalmente s
representa "dx/dt"
lo que corresponde a la tasa de cambio de error, pero aquí puedo relacionarlo con la tasa de cambio de retroalimentación. Td/N
es para limitar la salida de ganancia general (espero haberlo hecho bien). Ahora para representar esto en términos de código C, probé de la siguiente manera:
s = (CurrentFeedback()-Old_Feedback)*100/(MaxFeedback()); //to calculate the % change in feedback
s = s*1000/sampleTime; //1000 is multiplied because sampleTime is in milliseconds
D = (Td*s)/(1+(s*Td/N));
D = D*KP; //Kp is multiplied as per the standard pid equation.
Old_Feedback = CurrentFeedback();
PID = P+I-D;
Bueno, los resultados al agregar D no son lo que he predicho. Solo quiero saber si implementé la ecuación de la porción D correctamente. ¿Estoy cometiendo algún error en mi comprensión de las matemáticas básicas de diferenciación?
NOTA: No estoy en libertad de cambiar el recalculado de kp, ti, td ya que proviene directamente del VFD.
fuente
Respuestas:
Tengo 3 puntos para compartir:
1-Te diré por qué las personas se meten con términos de signo D, PID = P + I + D pero, D = kd * (error-error), y en control de posición si te estás acercando al punto establecido, siempre es mayor <error, entonces el término D será negativo y, por lo tanto, disminuye la salida y evita el sobreimpulso.
2-Con respecto al tiempo, no dividas ni uses el tiempo. dado que está utilizando un microcontrolador incorporado, simplemente haga una constante de tiempo y cancélela de todas las ecuaciones: por ejemplo, use una interrupción de temporizador para generar una constante de tiempo de 1 ms y llame a su función dentro.
3-Por qué está utilizando PID para el control de velocidad, el 90% del tiempo PI es suficiente en el control de velocidad, ya que D aquí se parece más al control de aceleración.
Espero que ayude
fuente