The corresponding discrete poles for Ts=0.001 are:
>> exp(.001*pole(Hc))
9.9998e-001
9.9999e-001
1.0000e+000
which is very close to a triple pole at z=1. Using the transfer function representation for discrete systems with multiple poles near z=1 will typically result in significant loss of accuracy at low frequencies.
The Control System Toolbox documentation includes the following examples that explain this in detail:
- Control System Toolbox, Using the Right Model Representation
- Control System Toolbox, Sensitivity of Multiple Roots
Such problems go away when using the state-space representation. Try the following code:
Hz = c2d(ss(Hc),.001,'t');
figure, step(Hc,Hz,1000)
figure, bode(Hc,Hz)
Note that there is a limit to how small Ts can get before all useful information about the dynamics gets vanished by the round off noise. Given the time constant of the continuous system, a sampling time of Ts = 1 or Ts = 0.1 is enough to get an accurate discretization.
Best Answer