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

조회 수: 6 (최근 30일)
HZ
HZ 2020년 7월 23일
댓글: Mykyta Zabolotniy 2020년 8월 7일
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.

채택된 답변

HZ
HZ 2020년 7월 23일
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
HZ
HZ 2020년 7월 31일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Dynamic System Models에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by