You are on page 1of 44

MATLAB and its Control

Toolbox

MATLAB 11/15/2017 1
Outline
MATLAB
MATLAB and Toolboxes
MATLAB and Control
Control System Toolbox
Simulink

MATLAB Control Toolbox 11/15/2017 2


MATLAB
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

MATLAB Control Toolbox 11/15/2017 3


The MathWorks Product Family

MATLAB Control Toolbox 11/15/2017 4


MATLAB Toolboxes
MATLAB

Math and Signal Processing Simulink .. Control System Design


optimization and communications Product Family and Analysis

Toolboxes Toolboxes Simulink Toolboxes


Signal Processing Simulink Accelerator
Optimization Communications Simulink Report Simulink Control Design
Symbolic Math Filter Design Generator Simulink Response
Partial Diff. Eq. Filter Design HDL Simulink Parameter
Coder

MATLAB Control Toolbox 11/15/2017 5


MATLAB and Control
MATLAB-Toolboxes for Control

Linear Control Nonlinear Control Identification

Control System Toolbox Nonlinear Control Toolbox Identification Toolbox


Simulink Fuzzy Toolbox Frequency-Domain ID Toolbox
Mu Toolbox Simulink Simulink

MATLAB Control Toolbox 11/15/2017 6


MATLAB and Control
Control Design Process

MATLAB Control Toolbox 11/15/2017 7


MATLAB and Control
Modeling Tools

MATLAB Control Toolbox 11/15/2017 8


MATLAB and Control
Design and Analysis

MATLAB Control Toolbox 11/15/2017 9


Control System Toolbox
Core Features
Tools to manipulate LTI models

Classical analysis and design


o Bode, Nyquist, Nichols diagrams
o Step and impulse response
o Gain/phase margins
o Root locus design

Modern state-space techniques


o Pole placement
o LQG regulation

MATLAB Control Toolbox 11/15/2017 10


Control System Toolbox
LTI Objects (Linear Time Invariant)

4 basic types of LTI models


o Transfer Function (TF)
o Zero-pole-gain model (ZPK)
o State-Space models (SS)
o Frequency response data model (FRD)

Conversion between models

Model properties (dynamics)

MATLAB Control Toolbox 11/15/2017 11


Control System Toolbox
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

MATLAB Control Toolbox 11/15/2017 12


Control System Toolbox
Transfer Function

Consider a linear time invariant (LTI) single-


input/single-output system
y '' 6 y ' 5 y 4u ' 3u

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 11/15/2017 13


Control System Toolbox
Transfer Function

>> num = [4 3]; >> [num,den] =


>> den = [1 6 5]; tfdata(sys,'v')
>> sys = tf(num,den) num =
Transfer function: 0 4 3
4s+3 den =
----------------- 1 6 5
s^2 + 6 s + 5

MATLAB Control Toolbox 11/15/2017 14


Control System Toolbox
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)

MATLAB Control Toolbox 11/15/2017 15


Control System Toolbox
Zero-pole-gain model (ZPK)

Consider a Linear time invariant (LTI) single-


input/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)
MATLAB Control Toolbox 11/15/2017 16
Control System Toolbox
Zero-pole-gain model (ZPK)

>> [ze,po,k] = zpkdata(sys1,'v')


>> sys1 =
ze =
zpk(-0.75,[-1 -5],4)
-0.7500
po =
Zero/pole/gain:
4 (s+0.75) -1
----------- -5
(s+1) (s+5) k=
4

MATLAB Control Toolbox 11/15/2017 17


Control System Toolbox
State-Space Model (SS)
.
x A x B u
y C x D u

where
x state vector
u and y input and output vectors
A , B ,C and D state-space matrices

MATLAB Control Toolbox 11/15/2017 18


Control System Toolbox
State-Space Models
Consider a Linear time invariant (LTI) single-
input/single-output system
y '' 6 y ' 5 y 4u ' 3u
State-space model for this system is

x1 ' 0 1 x1 0 x1 (0) 0
x ' 5 6 x 1 u x (0) 0
2
2 2

x1
y 3 4
x2

MATLAB Control Toolbox 11/15/2017 19


Control System Toolbox
State-Space Models
>> sys = ss([0 1; -5 -6],[0;1],[3,4],0)
a= c=
x1 x2 x1 x2
x1 0 1 y1 3 4
x2 -5 -6

d=
b=
u1
u1
y1 0
x1 0
x2 1

MATLAB Control Toolbox 11/15/2017 20


Control System Toolbox
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.

MATLAB Control Toolbox 11/15/2017 21


Conversion
between different models
tf2ss

Transfer function State Space

ss2tf

zp2tf ss2zp
tf2zp zp2ss

Zero-pole-gain

MATLAB Control Toolbox 11/15/2017 22


Model Dynamics
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.
MATLAB Control Toolbox 11/15/2017 23
Control System Toolbox
Time Response of Systems
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 11/15/2017 24


Control System Toolbox
Time Response of Systems

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.

MATLAB Control Toolbox 11/15/2017 25


Control System Toolbox
Time Response of Systems
3s 2
G( s )
2 s 3 4s 2 5 s 1
Problem Given the LTI system

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.5 t ) calculated using


both the lsim commands

MATLAB Control Toolbox 11/15/2017 26


Control System Toolbox
Time Response of Systems

MATLAB Control Toolbox 11/15/2017 27


Frequency Domain Analysis and Design

Root locus analysis


Frequency response plots
Bode
Phase Margin
Gain Margin
Nyquist

MATLAB Control Toolbox 11/15/2017 28


Frequency Domain Analysis and Design
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 controllers parameters,
and can infer the performance of the controlled
closed-loop system.

MATLAB Control Toolbox 11/15/2017 29


Frequency Domain Analysis and Design
Root Locus
Plot the root locus of the following system
K ( s 8)
G ( s)
s ( s 2)( s 2 8s 32)

MATLAB Control Toolbox 11/15/2017 30


Frequency Domain Analysis and Design
Root Locus
>> rlocus(tf([1 8], conv(conv([1 0],[1 2]),[1 8 32])))

MATLAB Control Toolbox 11/15/2017 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).

MATLAB Control Toolbox 11/15/2017 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 interval10 1 10 .

MATLAB Control Toolbox 11/15/2017 33


Control System Toolbox
Frequency Response: Bode Plot
>>bode(tf(1, [1 1 0]), logspace(-1,1,100));

MATLAB Control Toolbox 11/15/2017 34


Control System Toolbox
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

MATLAB Control Toolbox 11/15/2017 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 104 103 . In addition, find the gain and phase
margins.
1280s 640
G( s )
s4 24.2s3 1604.81s2 320.24s 16

MATLAB Control Toolbox 11/15/2017 36


Control System Toolbox
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)

MATLAB Control Toolbox 11/15/2017 37


Control System Toolbox
Frequency Response: Nyquist Plot

The values of gain and phase margin and corresponding frequencies are

Gm = 29.8637 Pm = 72.8960 Wcg = 39.9099 Wcp = 0.9036

MATLAB Control Toolbox 11/15/2017 38


Control System Toolbox
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.

MATLAB Control Toolbox 11/15/2017 39


Control System Toolbox
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.

MATLAB Control Toolbox 11/15/2017 40


Control System Toolbox
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.

MATLAB Control Toolbox 11/15/2017 41


Control System Toolbox
Analysis Tool: ltiview

File->Import to import system from Matlab workspace

MATLAB Control Toolbox 11/15/2017 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.

MATLAB Control Toolbox 11/15/2017 43


M-File Example
%find the bandwidth of the new system %Define the transfer function of a plant
wb=bandwidth(T) G=tf([4 3],[1 6 5])

%plot the step response %Get data from the transfer function
step(T) [n,d]=tfdata(G,'v')

%plot the rootlocus [p,z,k]=zpkdata(G,'v')


rlocus(T)
[a,b,c,d]=ssdata(G)
%obtain the bode plots
bode(T) %Check the controllability and observability of the
margin(T) system
ro=rank(obsv(a,c))
rc=rank(ctrb(a,b))
%use the LTI viewer
ltiview({'step';'bode';'nyquist'},T) %find the eigenvalues of the system
damp(a)
%start the SISO tool
sisotool(T) %multiply the transfer function with another transfer
function
T=series(G,zpk([-1],[-10 -2j +2j],5))

%plot the poles and zeros of the new system


iopzmap(T)

MATLAB Control Toolbox 11/15/2017 44

You might also like