MATLAB: Function c2d output unstable system as Ts decrease (frequency increase)

c2ddiscretizeMATLABmimosimulink

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.

Best Answer

Just found an old post. This issue could be solved by converting the transfer function by state space format and redo the discretization. thanks