How to convert PIDF to discrete transfer function?

2 次查看(过去 30 天)
Hello,
I have discrete-time PIDF controller in parallel form with integrator and derivative filter methods are trapezoidal. The controller was designed in Discrete PID(z) Controller block in Simulink.
I want to convert the PIDF controller to a discrete transfer function - I am not sure how to do this. There are several examples online that show how to do it with standard forms of the PID controller, however I do need the trapezoidal filtering, which is often omitted in these examples.
I would greatly appreciate any advice, either how to do it on MATLAB or by hand.
Regards,
  1 个评论
Daniel Gelman
Daniel Gelman 2017-8-1
Nvm, this was easier than I originally thought. I ended up expanding the characteristic PIDF equation illustrated in the picture attached in the original post.
For anyone that is interested here is the solution:
CPz = tf([P],[1],Ts);
CIz = tf([I*Ts I*Ts],[2 -2],Ts);
CDz = tf([2*D*N -2*D*N],[2+N*Ts N*Ts-2],Ts);
CPIDz = CPz+CIz+CDz;
I verified the discrete transfer function with the original PIDF block in Simulink. The model differences were in the factor of 10^-10.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 PID Controller Tuning 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by