Effects
Tips

Extras: Discrete Pole Locations and Transient Response

Contents

In this page we are going to explain in more detail how the pole locations of a discrete-time transfer function relate to the corresponding time response.

Small damping

First let's consider the following discrete transfer function with $\zeta = 0.1$, and $\omega_n = 0.8\pi/T$.

(1)$$ \frac{Y(z)}{F(z)} = \frac{1}{z^2 + 1.2z + 0.57} $$

The following commands will determine and plot the poles of this transfer function. Enter the following commands to a new m-file and run it in the MATLAB command window. You should see the pole-zero map shown below.

T = .05;
z = tf('z',T);
sys = 1/(z^2+1.2*z+0.57);
[poles,zeros] = pzmap(sys)
pzmap(sys)

axis([-1 1 -1 1])
zgrid
poles =
  -0.6000 + 0.4583i
  -0.6000 - 0.4583i
zeros =
  0×1 empty double column vector

From this figure, we see that poles are located such that they have a natural frequency of $0.8\pi/T$ rad/sample (where $T$ is the sampling period in sample/sec) and a damping ratio of approximately 0.1. Assuming that we have a sampling period of 1/20 sec/sample and using the three equations shown below,

(2)$$ T_s = \frac{4}{\zeta\omega_{n}} $$

(3)$$ T_r =\frac{1.8}{\omega_{n}}$$

(4)$$ Mp = e^{\frac{-\zeta\pi}{\sqrt{1-\zeta^2}}} $$

we can determine that this system should approximately have a rise time of 0.035 sec, a settling time of 0.8 sec, and a maximum percent overshoot of 70%. When you use these equations, you must convert the natural frequency ($\omega_n$) from rad/sample to rad/sec. Also, these relationships are most valid for underdamped 2nd order systems with no zeros. Let's confirm these results by obtaining the system's step response. Add the following commands to the above m-file and rerun it in the MATLAB command window. You should see the following step response.

[x,t] = step(sys,2.5);
stairs(t,x)

The plot shows that the rise time, the settling time, and the overshoot are approximately as expected.

Medium damping

Now consider the next discrete transfer function with $\zeta = 0.4$ and $\omega_n = (11\pi)/(20T)$.

(5)$$\frac{Y(z)}{F(z)} = \frac{1}{z^2 +0.25}$$

Let's follow the same steps as what we did above. Create a new m-file and enter the following commands. Running this m-file in the command window gives you the following pole map.

T = .05;
z = tf('z',T);
sys = 1/(z^2 + 0.25);
[poles,zeros] = pzmap(sys)
pzmap(sys)

axis([-1 1 -1 1])
zgrid
poles =
   0.0000 + 0.5000i
   0.0000 - 0.5000i
zeros =
  0×1 empty double column vector

From this pole map, we see that poles are located at a natural frequency of $(11\pi)/(20T)$ rad/sample and a damping ratio of approximately 0.4. Assuming a sampling period of 1/20 sec as before and using the above three equations, we can determine that the step response should approximately have a rise time of 0.05 sec, a settling time of 0.3 sec, and a maximum percent overshoot of 25%. Let's obtain the step response and see if these are correct. Add the following commands to the above m-file and rerun it. You should see the following step response.

[x,t] = step(sys,2.5);
stairs(t,x)

Once again, this step response shows the rise time, settling time and overshoot that we approximately expected.

Large damping

For the last example, let's consider the following discrete-time transfer function with $\zeta = 0.8$ and $\omega_n = \pi/(4T)$.

(6)$$\frac{Y(z)}{F(z)} = \frac{1}{z^2 -0.98z + 0.3}$$

Just as before, enter the following commands to a new m-file and run it in the MATLAB command window. You should see the following pole-zero map.

T = .05;
z = tf('z',T);
sys = 1/(z^2 - 0.98*z + 0.3);
[poles,zeros] = pzmap(sys)
pzmap(sys)

axis([-1 1 -1 1])
zgrid
poles =
   0.4900 + 0.2447i
   0.4900 - 0.2447i
zeros =
  0×1 empty double column vector

From this plot, we see that the poles are located at a natural frequency of $\pi/(4T)$ rad/sample and a damping ratio of approximately 0.8. Once again assuming a sampling period of 1/20 sec, we can determine that this system should approximately have a rise time of 0.1 sec, a settling time of 0.3 sec and an overshoot of 1%. Let's confirm this by adding the following commands to the above m-file and rerunning it. You should see the following step response.

[x,t] = step(sys,2.5);
stairs(t,x)

The resulting step response again has roughly the shape predicted.

Using these three examples, we proved that the pole locations can be used to get a rough estimate of the transient response of a system. This analysis is particularly useful in the root-locus design method where you attempt to place the closed-loop poles to obtain a satisfactory response.