Filter coefficient (N) in PID block?
Mostrar comentarios más antiguos
Good evening folks!
While tuning my quadrotor model in Matlab I found that the Matlab PID function had a Filter coefficient (N) term in the PID equation. However I have not encountered such a term in my typical PID programs. How would one implement this term into the PID equation and what would be some simple C code to add this term into the derivative? I tried generating C code from my model but got a lot of header and C program files with nothing close to simple.
My current PID code line in C is:
U2 = KP * phi_error + KI * phi_errorsum + KD * (PHI_RATE_desired-PHI_RATE);
Many Thanks, Robert
Respuesta aceptada
Más respuestas (4)
Shashank Prasanna
el 17 de Feb. de 2013
2 votos
Hi Robert, this link should give you a better idea of what N means:
If you have Simulink Control Design toolbox, then you can use the built in pidtune functionality to tune the PID.
1 comentario
Brian Candiloro
el 13 de En. de 2023
Can this filter term be realized in a physical opamp differentiator circuit or only in code?
Robert
el 17 de Feb. de 2013
0 votos
Robert
el 21 de Feb. de 2013
0 votos
1 comentario
Seng Tak Goh
el 11 de Mzo. de 2019
Hi Robert,
In essence, the filtered derivative is doing a first order filtering on the change of the inputs, scaled by D gain.
The 1/s integrates the previous output scaled by N term, then adding the input change scaled by D * N to produce the output.
If you multiply the D term of the continuous form by s, you will see it better how the filtering comes into play.
In discrete form:
y[n] = D*N*(u[n]-u[n-1]) + (1-N*Ts)*y[n-1];
Categorías
Más información sobre PID Controller Tuning en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!