MATLAB and its Control Toolbox

7/29/2017
MATLAB
1





7/29/2017
MATLAB
MATLAB and Toolboxes
MATLAB and Control
Control System Toolbox
Simulink
MATLAB Control Toolbox
2












Aerospace and Defense
Automotive
Biotech, Medical, and
Pharmaceutical
Chemical and Petroleum
Communications
Computers and Office
Equipment
Education
Electronics and
Semiconductor
Financial Services
Industrial Equipment and
Machinery
Instrumentation
Utilities and Energy
7/29/2017
MATLAB Control Toolbox
3
The MathWorks Product Family
7/29/2017
MATLAB Control Toolbox
4
MATLAB
Math and
optimization
Signal Processing
and communications
Simulink
Product Family
Toolboxes
Toolboxes
Signal Processing
Communications
Filter Design
Filter Design HDL
Coder …
Simulink®
Simulink Accelerator
Simulink Report
Generator
Optimization
Symbolic Math
Partial Diff. Eq.
…
7/29/2017
…
MATLAB Control Toolbox
…..
Control System Design
and Analysis
Toolboxes
Simulink Control Design
Simulink Response
Simulink Parameter
…
5
MATLAB-Toolboxes for Control
Linear Control
Nonlinear Control
Control System Toolbox
Simulink®
Mu Toolbox
Nonlinear Control Toolbox
Fuzzy Toolbox
Simulink®
7/29/2017
MATLAB Control Toolbox
Identification
Identification Toolbox
Frequency-Domain ID Toolbox
Simulink®
6

Control Design Process
7/29/2017
MATLAB Control Toolbox
7

Modeling Tools
7/29/2017
MATLAB Control Toolbox
8

Design and Analysis
7/29/2017
MATLAB Control Toolbox
9
Core Features

Tools to manipulate LTI models

Classical analysis and design





Bode, Nyquist, Nichols diagrams
Step and impulse response
Gain/phase margins
Root locus design
Modern state-space techniques


7/29/2017
Pole placement
LQG regulation
MATLAB Control Toolbox
10
LTI Objects (Linear Time Invariant)

4 basic types of LTI models




Transfer Function (TF)
Zero-pole-gain model (ZPK)
State-Space models (SS)
Frequency response data model (FRD)

Conversion between models

Model properties (dynamics)
7/29/2017
MATLAB Control Toolbox
11
Transfer Function
p1 s n  p 2 s n 1  ...  p n 1
H (s ) 
q1 s m  q1 s m 1  ...  q m 1
where
p1 , p 2 ... p n 1
numerator coefficients
q1 , q1 ... q m 1
denominator coefficients
7/29/2017
MATLAB Control Toolbox
12
Transfer Function

Consider a linear time invariant (LTI) singleinput/single-output system
y '' 6 y ' 5 y  4u ' 3u

7/29/2017
Applying Laplace Transform to both sides with
zero initial conditions
Y (s)
4s  3
G(s) 
 2
U ( s) s  6s  5
MATLAB Control Toolbox
13
Transfer Function
>> num = [4 3];
>> den = [1 6 5];
>> sys = tf(num,den)
Transfer function:
4s+3
----------------s^2 + 6 s + 5
7/29/2017
>> [num,den] =
tfdata(sys,'v')
num =
0 4 3
den =
1 6 5
MATLAB Control Toolbox
14
Zero-pole-gain model (ZPK)
(s  p1 )(s  p 2 )  ...  (s  p n )
H (s )  K
(s  q1 )(s  q 2 )  ...  (s  q m )
where
p1 , p 2 ... p n 1
the zeros of H(s)
q1 ,q1 ... q m 1
the poles of H(s)
7/29/2017
MATLAB Control Toolbox
15
Zero-pole-gain model (ZPK)

Consider a Linear time invariant (LTI) singleinput/single-output system
y '' 6 y ' 5 y  4u ' 3u

Applying Laplace Transform to both sides with
zero initial conditions
Y ( s)
4s  3
4( s  0.75)
G(s) 
 2

U ( s) s  6s  5 ( s  1)( s  5)
7/29/2017
MATLAB Control Toolbox
16
Zero-pole-gain model (ZPK)
>> sys1 =
zpk(-0.75,[-1 -5],4)
Zero/pole/gain:
4 (s+0.75)
----------(s+1) (s+5)
7/29/2017
>> [ze,po,k] = zpkdata(sys1,'v')
ze =
-0.7500
po =
-1
-5
k=
4
MATLAB Control Toolbox
17
State-Space Model (SS)
.
x  A x B u
y C x D u
where
x
u and y
state vector
input and output vectors
A , B ,C and D
state-space matrices
7/29/2017
MATLAB Control Toolbox
18
Control System Toolbox

Consider a Linear time invariant (LTI) singleinput/single-output system
y '' 6 y ' 5 y  4u '' 3u

State-space model for this system is
 x1 '   0 1   x1  0
 x '   5 6  x   1  u
 2  
 2  
 x1 (0)  0
 x (0)   0
 2   
 x1 
y   3 4  
 x2 
7/29/2017
MATLAB Control Toolbox
19
State-Space Models
>> sys = ss([0 1; -5 -6],[0;1],[3,4],0)
a=
x1 x2
x1 0 1
x2 -5 -6
b=
u1
x1 0
x2 1
7/29/2017
c=
x1 x2
y1 3 4
d=
u1
y1 0
MATLAB Control Toolbox
20
State Space Models











rss, drss - Random stable state-space models.
ss2ss - State coordinate transformation.
canon - State-space canonical forms.
ctrb - Controllability matrix.
obsv - Observability matrix.
gram - Controllability and observability gramians.
ssbal - Diagonal balancing of state-space realizations.
balreal - Gramian-based input/output balancing.
modred - Model state reduction.
minreal - Minimal realization and pole/zero cancellation.
sminreal - Structurally minimal realization.
7/29/2017
MATLAB Control Toolbox
21
tf2ss
State Space
Transfer function
ss2tf
zp2tf
ss2zp
zp2ss
tf2zp
Zero-pole-gain
7/29/2017
MATLAB Control Toolbox
22










pzmap: Pole-zero map of LTI models.
pole, eig - System poles
zero - System (transmission) zeros.
dcgain: DC gain of LTI models.
bandwidth - System bandwidth.
iopzmap - Input/Output Pole-zero map.
damp - Natural frequency and damping of
system
esort - Sort continuous poles by real part.
dsort - Sort discrete poles by magnitude.
covar - Covariance of response to white noise.
7/29/2017
MATLAB Control Toolbox
23
Control System Toolbox







7/29/2017
Impulse Response (impulse)
Step Response (step)
General Time Response (lsim)
Polynomial multiplication (conv)
Polynomial division (deconv)
Partial Fraction Expansion (residue)
gensig - Generate input signal for lsim.
MATLAB Control Toolbox
24
Control System Toolbox



The impulse response of a system is its
output when the input is a unit impulse.
The step response of a system is its output
when the input is a unit step.
The general response of a system to any
input can be computed using the lsim
command.
7/29/2017
MATLAB Control Toolbox
25
Time Response of Systems
Problem Given the LTI system
3s  2
G( s )  3
2s  4s2  5 s  1
Plot the following responses for:
 The impulse response using the impulse command.
 The step response using the step command.

The response to the input u( t )  sin( 0.5t ) calculated using
both the lsim commands
7/29/2017
MATLAB Control Toolbox
26
Time Response of Systems
7/29/2017
MATLAB Control Toolbox
27


Root locus analysis
Frequency response plots

Bode
 Phase Margin
 Gain Margin

7/29/2017
Nyquist
MATLAB Control Toolbox
28
Root Locus

The root locus is a plot in the s-plane of all
possible locations of the poles of a closed-loop
system, as one parameter, usually the gain, is
varied from 0 to .

By examining that plot, the designer can make
choices of values of the controller’s parameters,
and can infer the performance of the controlled
closed-loop system.
7/29/2017
MATLAB Control Toolbox
29
Root Locus

Plot the root locus of the following system
K ( s  8)
G (s) 
s ( s  2)( s 2  8s  32)
7/29/2017
MATLAB Control Toolbox
30
Root Locus
>> rlocus(tf([1 8], conv(conv([1 0],[1 2]),[1 8 32])))
7/29/2017
MATLAB Control Toolbox
31
Frequency Response: Bode and Nyquist Plots


Typically, the analysis and design of a control
system requires an examination of its frequency
response over a range of frequencies of interest.
The MATLAB Control System Toolbox provides
functions to generate two of the most common
frequency response plots: Bode Plot (bode
command) and Nyquist Plot (nyquist command).
7/29/2017
MATLAB Control Toolbox
32
Control System Toolbox
Frequency Response: Bode Plot
Problem
 Given the LTI system
1
G(s ) 
s(s  1)
Draw the Bode diagram for 100 values of
frequency in the interval 10 1 10
. 
7/29/2017
MATLAB Control Toolbox
33
Frequency Response: Bode Plot
>>bode(tf(1, [1 1 0]), logspace(-1,1,100));
7/29/2017
MATLAB Control Toolbox
34
Frequency Response: Nyquist Plot



The loop gain Transfer function G(s)
The gain margin is defined as the multiplicative
amount that the magnitude of G(s) can be increased
before the closed loop system goes unstable
Phase margin is defined as the amount of additional
phase lag that can be associated with G(s) before the
closed-loop system goes unstable
7/29/2017
MATLAB Control Toolbox
35
Control System Toolbox
Frequency Response: Nyquist Plot
Problem
Given the LTI system
Draw the bode and nyquist plots for 100 values of frequencies
in the interval 104 103 .In addition, find the gain and phase
margins.
G( s ) 
7/29/2017
1280s  640
s4  24.2s3  1604.81s2  320.24s  16
MATLAB Control Toolbox
36
Frequency Response: Nyquist Plot
w=logspace(-4,3,100);
sys=tf([1280 640], [1 24.2 1604.81 320.24 16]);
bode(sys,w)
[Gm,Pm,Wcg,Wcp]=margin(sys)
%Nyquist plot
figure
nyquist(sys,w)
7/29/2017
MATLAB Control Toolbox
37
Frequency Response: Nyquist Plot
The values of gain and phase margin and corresponding frequencies are
Gm =
7/29/2017
29.8637 Pm =
72.8960 Wcg = 39.9099 Wcp = 0.9036
MATLAB Control Toolbox
38
Frequency Response Plots
bode - Bode diagrams of the frequency response.
bodemag - Bode magnitude diagram only.
sigma - Singular value frequency plot.
Nyquist - Nyquist plot.
nichols - Nichols plot.
margin - Gain and phase margins.
allmargin - All crossover frequencies and related gain/phase
margins.
freqresp - Frequency response over a frequency grid.
evalfr - Evaluate frequency response at given frequency.
interp - Interpolates frequency response data.
7/29/2017
MATLAB Control Toolbox
39
Design: Pole Placement




place - MIMO pole placement.
acker - SISO pole placement.
estim - Form estimator given estimator gain.
reg - Form regulator given state-feedback and
estimator gains.
7/29/2017
MATLAB Control Toolbox
40
Design : LQR/LQG design








lqr, dlqr - Linear-quadratic (LQ) state-feedback
regulator.
lqry - LQ regulator with output weighting.
lqrd - Discrete LQ regulator for continuous plant.
kalman - Kalman estimator.
kalmd - Discrete Kalman estimator for continuous
plant.
lqgreg - Form LQG regulator given LQ gain and
Kalman estimator.
augstate - Augment output by appending states.
7/29/2017
MATLAB Control Toolbox
41
Analysis Tool: ltiview
File->Import to import system from Matlab workspace
7/29/2017
MATLAB Control Toolbox
42
Control System Toolbox
Design Tool: sisotool
Design with root locus, Bode, and Nichols plots of
the open-loop system.
Cannot handle continuous models with time delay.
7/29/2017
MATLAB Control Toolbox
43
M-File Example
%Define the transfer function of a plant
G=tf([4 3],[1 6 5])
%find the bandwidth of the new system
wb=bandwidth(T)
%Get data from the transfer function
[n,d]=tfdata(G,'v')
%plot the step response
step(T)
[p,z,k]=zpkdata(G,'v')
%plot the rootlocus
rlocus(T)
[a,b,c,d]=ssdata(G)
%Check the controllability and observability of the system
ro=rank(obsv(a,c))
rc=rank(ctrb(a,b))
%obtain the bode plots
bode(T)
margin(T)
%find the eigenvalues of the system
damp(a)
%use the LTI viewer
ltiview({'step';'bode';'nyquist'},T)
%multiply the transfer function with another transfer
function
T=series(G,zpk([-1],[-10 -2j +2j],5))
%start the SISO tool
sisotool(T)
%plot the poles and zeros of the new system
iopzmap(T)
7/29/2017
MATLAB Control Toolbox
44