Control Tutorials For MATLAB and Simulink - Introduction - Digital Controller Design
Control Tutorials For MATLAB and Simulink - Introduction - Digital Controller Design
SYSTEM
Related
SIMULINK
Tutorial
MODELING Links
Sampling
CONTROL
Effects
Activity
Difference
Equations
Info
Discrete
Pole
Locations
Related
External
Links
Control
Implementation
Video
Contents
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 1/12
9/2/2017 Control Tutorials for MATLAB and Simulink - Introduction: Digital Controller Design
Introduction
Zero-Hold Equivalence
Example: Mass-Spring-Damper
Introduction
The figure below shows the typical continuous feedback system that we
have been considering so far in this tutorial. Almost all of the continuous
by a digital controller, shown below, that performs same control task as the
the digital system operates on discrete signals (or samples of the sensed
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 2/12
9/2/2017 Control Tutorials for MATLAB and Simulink - Introduction: Digital Controller Design
The purpose of this Digital Control Tutorial is to show you how to use
Zero-Hold Equivalence
In the above schematic of the digital control system, we see that the digital
control system contains both discrete and the continuous portions. When
the continuous portion so that we only need to deal with discrete functions.
For this technique, we will consider the following portion of the digital control
The clock connected to the D/A and A/D converters supplies a pulse
every T seconds and each D/A and A/D sends a signal only when the pulse
arrives. The purpose of having this pulse is to require that Hzoh(z) have
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 3/12
9/2/2017 Control Tutorials for MATLAB and Simulink - Introduction: Digital Controller Design
only samples u(k) to work on and produce only samples of output y(k); thus,
system H(s), the sampled output of the continuous system equals the
discrete output. Suppose the signal u(k) represents a sample of the input
signal. There are techniques for taking this sample u(k) and holding it to
produce a continuous signal uhat(t). The sketch below shows that the
uhat(t) is held constant at u(k) over the interval kT to (k+1)T. This operation
of holding uhat(t) constant over the sampling time is called zero-order hold.
The zero-order held signal uhat(t) goes through H2(s) and A/D to produce
the output y(k) that will be the piecewise same signal as if the discrete
signal u(k) goes through Hzoh(z) to produce the discrete output y(k).
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 4/12
9/2/2017 Control Tutorials for MATLAB and Simulink - Introduction: Digital Controller Design
By placing Hzoh(z), we can design digital control systems dealing with only
discrete functions.
Note: There are certain cases where the discrete response does not match
the continuous response due to a hold circuit implemented in digital control
systems. For information, see Lagging effect associated with the hold.
using the zero-order hold operation explained above. The basic command
for this in MATLAB is sys_d = c2d(sys,Ts,'zoh')
Example: Mass-Spring-Damper
Transfer Function
(1)
we will choose the sampling time (Ts) equal to 1/100 sec. Now, create an
new m-file and enter the following commands.
M = 1;
b = 10;
k = 20;
s = tf('s');
sys = 1/(M*s^2+b*s+k);
Ts = 1/100;
sys_d = c2d(sys,Ts,'zoh')
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 5/12
9/2/2017 Control Tutorials for MATLAB and Simulink - Introduction: Digital Controller Design
sys_d =
4.837e-05 z + 4.678e-05
-----------------------
z^2 - 1.903 z + 0.9048
State-Space
(2)
(3)
All constants are the same as before. The following m-file converts the
A = [0 1;
-k/M -b/M];
B = [ 0;
1/M];
C = [1 0];
D = [0];
Ts = 1/100;
sys = ss(A,B,C,D);
sys_d = c2d(sys,Ts,'zoh')
sys_d =
a =
x1 x2
x1 0.999 0.009513
x2 -0.1903 0.9039
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 6/12
9/2/2017 Control Tutorials for MATLAB and Simulink - Introduction: Digital Controller Design
b =
u1
x1 4.837e-05
x2 0.009513
c =
x1 x2
y1 1 0
d =
u1
y1 0
(4)
(5)
when any pole is located to the right of the imaginary axis. For discrete
systems, we can analyze the system behaviors from different pole locations
in the z-plane. The characteristics in the z-plane can be related to those in
(6)
The figure below shows the mapping of lines of constant damping ratio
(zeta) and natural frequency (Wn) from the s-plane to the z-plane using the
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 7/12
9/2/2017 Control Tutorials for MATLAB and Simulink - Introduction: Digital Controller Design
axis, but is the unit circle z=1. The system is stable when all poles are
located inside the unit circle and unstable when any pole is located outside.
For analyzing the transient response from pole locations in the z-plane, the
(7)
(8)
(9)
where,
Ts = Settling time
Tr = Rise time
Mp = Maximum overshoot
Important: The natural frequency (Wn) in z-plane has the unit of rad/sample,
but when you use the equations shown above, the Wn must be in the unit of
rad/sec.
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 8/12
9/2/2017 Control Tutorials for MATLAB and Simulink - Introduction: Digital Controller Design
(10)
Create an new m-file and enter the following commands. Running this m-file
in the command window gives you the following plot with the lines of
constant damping ratio and natural frequency.
numDz = 1;
pzmap(sys)
axis([-1 1 -1 1])
zgrid
From this plot, we see poles are located approximately at the natural
frequency of 9pi/20T (rad/sample) and the damping ratio of 0.25. Assuming
rad/sec) and using three equations shown above, we can determine that
this system should have the rise time of 0.06 sec, a settling time of 0.65 sec
and a maximum overshoot of 45% (0.45 more than the steady-state value).
Let's obtain the step response and see if these are correct. Add the
sys = tf(numDz,denDz,1/20);
step(sys,2.5);
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 9/12
9/2/2017 Control Tutorials for MATLAB and Simulink - Introduction: Digital Controller Design
As you can see from the plot, the rise time, settling time and overshoot
came out to be what we expected. This shows how you can use the
locations of poles and the above three equations to analyze the transient
(11)
The mechanics of drawing the root-loci are exactly the same in the z-plane
as in the s-plane. Recall from the continuous Root-Locus Tutorial, we used
the MATLAB function called sgrid to find the root-locus region that gives an
acceptable gain (K). For the discrete root-locus analysis, we will use the
function zgrid that has the same characteristics as sgrid. The command
zgrid(zeta, Wn) draws lines of constant damping ratio (zeta) and natural
frequency (Wn).
(12)
and the requirements are a damping ratio greater than 0.6 and a natural
frequency greater than 0.4 rad/sample (these can be found from design
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 10/12
9/2/2017 Control Tutorials for MATLAB and Simulink - Introduction: Digital Controller Design
previous section). The following commands draw the root-locus with the
lines of constant damping ratio and natural frequency. Create an new m-file
and enter the following commands. Running this m-file should give you the
numDz = [1 -0.3];
rlocus(sys)
axis([-1 1 -1 1])
zeta = 0.4;
Wn = 0.3;
zgrid(zeta,Wn)
From this plot, you should realize that the system is stable because all
poles are located inside the unit circle. Also, you see two dotted lines of
greater than 0.4 inside the constant-zeta line. In this example, we do have
the root-locus drawn in the desired region. Therefore, a gain (K) chosen
from one of the loci in the desired region should give you the response that
All contents licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 11/12
9/2/2017 Control Tutorials for MATLAB and Simulink - Introduction: Digital Controller Design
http://ctms.engin.umich.edu/CTMS/index.php?example=Introduction§ion=ControlDigital 12/12