Clear Filters
Clear Filters

How to convert PIDF to discrete transfer function?

1 view (last 30 days)
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 Comment
Daniel Gelman
Daniel Gelman on 1 Aug 2017
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.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!