Estoy implementando un controlador PID para el control de velocidad del motor. Terminé de implementar el control PI y funciona perfectamente bien para mí. En la especificación me dijeron que implementara una técnica de filtrado usando la siguiente ecuación para la parte D:
Ahora, lo que entiendo hasta ahora es que s
representa "dx/dt"
generalmente 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 los 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 tengo la libertad de cambiar el recalculo de kp, ti, td ya que proviene directamente del VFD.
Tengo 3 puntos para compartir:
1-Le diré por qué la gente se mete con el término D en términos de signo, PID= P + I + D pero, D = kd* (error -olderror), y en el control de posición si se está acercando al punto de ajuste, siempre es olderror < error, por lo que el término D será negativo y, por lo tanto, disminuirá la salida y evitará el sobreimpulso.
2-Respecto al tiempo, no dividir ni utilizar el tiempo. ya 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 del temporizador para generar una constante de tiempo de 1 ms y llame a su función interna.
3-Por qué está usando PID para control de velocidad, el 90% del tiempo PI es suficiente en control de velocidad, ya que D aquí es más como control de aceleración.
Espero que ayude
scott seidman
Marko Bursic
Greg de Eon
Lundin
sp
Ben B
sp