function c2d output unstable system as Ts decrease (frequency increase)

6 views (last 30 days)
I use the Matlab(2018b) c2d function to discretize a transfer function. The transfer function is 15th order, with two poles and two zeros very close to imaginary axis.
I tried with Ts of 0.001s, 0.01s, 0.02s, and with 'tustin' and 'zoh' method. The 0.02s Ts still gives me stable discretized tf, but 0.01Ts starts to give me some unstable poles outside 1, and 0.001Ts gives me more unstable poles outside 1. I put the transfer function in LTI block in Simulink, run a step test, and the result shows below.
It made me confused. I am under the impression that the higher sampling frequency will gives you better reconstruction of the original system. But the result of the c2d function show reversed: the higher sampling frequency, the more unstable. I also make up a system with zero/poles very closed to imaginary axis, but it is only a 5th order SISO system. The c2d function seems working fine on the SISO 5th order system without problem.
The conclusion is that the c2d has some issues discretizing my 15th order transfer function. Please help me to understand what happen, and how could I discretized my original system with higher sampling frequency. Thanks a lot.

Accepted Answer

HZ
HZ on 23 Jul 2020
Just found an old post. This issue could be solved by converting the transfer function by state space format and redo the discretization. thanks
  3 Comments
HZ
HZ on 31 Jul 2020
It is the limit of numerical calculation by c2d function. c2d will have more accurate result in state space format. If you have a transfer function, you could derive the state space by manual or convert it to state space format by the ss function in Matlab.

Sign in to comment.

More Answers (0)

Categories

Find more on Dynamic System Models in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!