You are on page 1of 5

NDSU

Root Locus in the z-Domain

ECE 461

Root Locus in the z-Domain


Objectives:
Sketch a root locus in the z-plane

Discussion:
Relative to the microcontroller, a feedback system looks like it's a discrete-time system. It looks like is's in the
z-domain. The goal is to find the compensator, K(z), which gives a 'good' response.

E
_

Sample
& Hold

K(z)

G(s)

Mathematically, the open-loop transfer function is

Y = H(z)G(z)K(z)E
where H(z) is the transfer function of the sample and hold. This is approximately a 1/2 sample delay which is
ofen ignored or lumped into G():

H() = e sT/2
If you ignore H, the closed-loop transfer function is
GK
Y = 1+GK
R

If GK has zeros and poles:

GK = k pz
the closed-loop transfer function becomes
kz
Y = p+kz
E

The roots of the closed-loop system are then just as they were in the s-plane:

p(z) + kz(z) = 0
Mathematically, the roots to this polynomial don't care if the variable is 's', 'z', or anything else. The roots (and
hence root locus plot) behave just the same in the s-plans as they do in the z-plane.
The only difference in the z-plans is how you interprit the meaning of the pole locations.
Recall the relationship between the s-pland and the z-plane is
JSG

rev December 29, 2009

NDSU

Root Locus in the z-Domain

ECE 461

z = e sT
This causes the damping lines in the s-plane to spiral in the z-plane as follows:

90

Unstable
Stable

0.8
75

0.6
60

0.4
45

30

0.2

15

-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

The point you want to pick in the z-plane for a good response is then:
The dominant pole is the pole closest to s=0. In the z-plane, it's the pole closest to z=1.
Pick 'k' so that you are stable. All poles are inside the unit circle.
Better yet, pick 'k' so that the dominant pole has a desired damping ratio.
Example: A microcontroller is used to control a system with the following dynamics
100
U
Y = (s+10)(s+20)

Assume a sampling rate of 10ms. Find the maximum 'k' for stability and 'k' for a damping ratio of 0.5.
Solution: First, convert G(s) to G(z).

s = 10 z = e sT = 0.9048
s = 20 z = e sT = 0.8187
Define G(z) to have poles at {0.9048, 0.8187}. Add a gain to make the DC gain match G(s)
0.0173z

G(z) = (z0.9048)(z0.8187)

Next, sketch the root locus. Include in the root-locus plot the 60 degree damping ratio line
JSG

rev December 29, 2009

NDSU

Root Locus in the z-Domain

ECE 461

90

Unstable

Stable

0.8
75

0.6
60

0.4
45

30

0.2

z=0.8183+j0.2212

15

-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

For a damping ratio of 0.5, search along the line

s = 120 0
z = e sT
until the angles add up to 180 degrees:

z = 0.8318 + j0.2212
G(z) = 0.2886 \
Pick k to make the gain equal to -1 at this point on the z-plane

k = 3.46
Verifying that this does result in a damping ratio of 0.5 (meaning you should have 16.3% overshoot), simulate
this in VisSim. The plant is in the s-domain (it's a continuous time system.) The contrller sees the error, sampled
every 10ms:

JSG

rev December 29, 2009

NDSU

Root Locus in the z-Domain

ECE 461

Note that the overshoot is a little off due to ignoring the 1/2 sample delay from the sample and hold.
As a sidelight, VisSim is a pretty friendly package. To include the 10ms sampling rate,
Right click on the gain block, K(z) (the 3.46 block above)
Click on Discrete (this tells VisSim that this block is in the z-domain)
Set the sampling rate to 0.01 (10ms)

VisSim allows you to mix analog (s-domain) and discrete (z-domain) systems. You can see this with the red line
above being continuous while the blue line has a sampling rate of 10ms. If you mix systems like this, you have a
more accurate model for how the actual system will behave:
The controller, K, is implemented with a microcontroller and hence has a discrete sampling rate
The plant, G, is probably an analog system, such as a mass spring system, room temerature, etc.
JSG

rev December 29, 2009

NDSU

Root Locus in the z-Domain

ECE 461

Setting the Samping Rate:


For this system, the sampling rate was given as 10ms. What sampling rate should you pick if it wasn't given?
If you sample too slowly, you miss the dynamics. G(s) has a dominant pole at -10. If you sample at T = 1
second, these poles in the z-plane are
s = -10

z = e sT = e 10 0

If you sample too fast, you get numerical problems. If you sample at 1us, for example,
s = -10

z = e sT = 0.99999

In one sample, the output changes by 0.001%. Noise in the system will probably be more than the signal.
Furthermore, you're asking the controller to make 300,000 adjustments before you reach steady-state.

A 'good' sampling rate places the dominant pole in the z-plane around 0.7 to 0.95.
A dominant pole at z = 0.7 results in a 2% settling time of 10 samples. The controller adjusts the input 10
times before reaching steady-state, which is pretty reasonable.
If you're going to add a gain compensator, picking the sampling rate so that the dominant pole is around 0.7
to 0.8.
If you're going to add a lead compensator to speed up the system, the open-loop poles will be slower (since
you're going to speed up the system), meaning you want them to be around 0.9 to 0.95.
Pick T so that

e sT 0.7 to 0.95
For this system, you could have used a sampling rate of 35ms (resulting in the dominant pole being at z = 0.7)
rather than 10ms. That wouldn't change the resulting systems performance very much - but would allow the
microcontroller to run 3.5x slower.

JSG

rev December 29, 2009

You might also like