I have trasfer functions of a plant and a controller in laplace domain. I checked for the closed loop response by applying a step response. The system is found to be stable.

I checked the response of the system for the same step reference in discrete domain. I can see that the closed loop response of the discrete system is unstable. The transfer function is converted to discrete form by c2d option in matlab with a sampling time of 1ms.

Shouldnt the response of the system be same in both continuous and discrete domain (atleast for high sampling frequency)?

  • 3
    $\begingroup$ With zero-order hold it should be stable. Did you check the closed-loop poles? What if you use the first-order hold or zero-pole mapping methods? $\endgroup$ Commented Apr 13, 2016 at 13:48
  • $\begingroup$ Do you mean using zoh or foh methods while transforming from continuous to discrete? I did include. $\endgroup$ Commented Apr 13, 2016 at 14:33
  • 1
    $\begingroup$ If 'zoh', 'foh', and 'matched' are giving an unstable approximation of a stable system there is something wrong in what you are doing. Did you look at the poles of the continuous-time and discrete-time systems. $\endgroup$ Commented Apr 13, 2016 at 14:39
  • $\begingroup$ i checked the closed loop poles and open loop poles. Both are stable but to my surprise I can observe from nyquist that it is not stable. From time domain analysis, the system is stable. For a given step response the system is stable with good steady state and transient response. Here is the plant model, $\frac{4700 s^2 + 4393 s + 3.245e08}{ s^4 + 7.574 s^3 + 1.202e05 s^2}$ and the controller is $Ctrl = pid(0.287, 0.5, 0.008)$. I am not sure what is going wrong. Can you please help me sort it out. $\endgroup$ Commented Apr 14, 2016 at 8:52
  • $\begingroup$ I did the calculations using Mathematica. Things work as expected. As I initially suspected, there is something wrong with your calculations. You can now compare your results with mine. $\endgroup$ Commented Apr 14, 2016 at 13:29

1 Answer 1


The plant and controller: $$\text{sys}=\frac{4700 s^2+4393 s+3.245\times 10^8}{s^4+7.574 s^3+120200. s^2}$$

$$pid=0.287\, +0.008 s+\frac{0.5}{s}$$

The closed-loop system obtained as $\frac{pid*sys}{1+pid*sys}$:

$$csys=\frac{37.6 s^4+1384.04 s^3+2.59961\times 10^6 s^2+9.31337\times 10^7 s+1.6225\times 10^8}{1. s^5+45.174 s^4+121584. s^3+2.59961\times 10^6 s^2+9.31337\times 10^7 s+1.6225\times 10^8}$$

The poles are all in the left-hand plane:

$$ \{-11.8643\pm \, 346.642 i,-9.80897\pm \, 25.3345 i,-1.82737\}$$

Thus as expected, the response to a unit-step is stable:

enter image description here

The zero-order hold approximation for a sampling period of 1 ms: $$ \frac{-0.0371234 z^4+0.144584 z^3-0.213662 z^2+0.141976 z-0.0357747}{-1. z^5+4.83687 z^4-9.46905 z^3+9.38322 z^2-4.70688 z+0.955831}$$

The poles are all within the unit-circle:

$$ \{0.929426\pm \, 0.335734 i,0.989921\pm \, 0.0250846 i,0.998174\}$$

Again, as expected, the response to a unit-step is stable (and the plot is essentially the same):

enter image description here

  • $\begingroup$ Thank you very much. :) I was converting the open loop of the system in to discrete and then calculated closed loop. The step response of this was unstable. So never wen tone step ahead and convert closed loop directly. Logically it should give same result. Anyway thnx again. $\endgroup$ Commented Apr 14, 2016 at 14:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.