Matlab Robust Control Toolbox - PowerPoint PPT Presentation

1 / 168
About This Presentation
Title:

Matlab Robust Control Toolbox

Description:

Matlab Robust Control Toolbox Purpose Increase Enthusiasm for Robust Controls Learn how to simulate control algorithms with uncertainty Increase your knowledge in ... – PowerPoint PPT presentation

Number of Views:2131
Avg rating:3.0/5.0
Slides: 169
Provided by: Engineerin95
Category:

less

Transcript and Presenter's Notes

Title: Matlab Robust Control Toolbox


1
Matlab Robust Control Toolbox
2
Purpose
  • Increase Enthusiasm for Robust Controls
  • Learn how to simulate control algorithms with
    uncertainty
  • Increase your knowledge in Robust Controls

3
Outline
  • What is the Robust Control Toolbox
  • Uncertainty
  • Uncertain Elements
  • Uncertain Matricies and Systems
  • Manipulation of Uncertain Models
  • Interconnection of Uncertain Models
  • Model Order Reduction
  • Robustness
  • Robustness and Worst Case Analysis
  • Parameter-Dependent Systems
  • MIMO Control
  • Controller Synthesis
  • µ-synthesis
  • Sampled Data Systems
  • Gain Scheduling
  • Supporting Utilities
  • LMI
  • Specification of Systems of LMIs
  • LMI Characteristics

4
What is the Robust Control Toolbox
  • A collection of functions and tools that help you
    to analyze and design MIMO control systems with
    uncertain elements
  • Ability to build uncertain LTI system models
    containing uncertain parameters and uncertain
    dynamics
  • You get tools to analyze MIMO system stability
    margins and worst case performance
  • Ability to simplify and reduce the order of
    complex models with model reduction tools that
    minimize additive and multiplicative error bounds
  • It provides tools for implementing advanced
    robust control methods like H , H2, linear matrix
    inequalities (LMI), and µ-synthesis robust
    control
  • You can shape MIMO system frequency responses and
    design uncertainty tolerant controllers

5
Modeling Uncertainty
  • Arises when system gains or other parameters are
    not precisely known, or can vary over a given
    range
  • Examples of real parameter uncertainties include
    uncertain pole and zero locations and uncertain
    gains
  • With the Robust Control Toolbox you can create
    uncertain LTI models as objects specifically
    designed for robust control applications

6
Sources of Uncertainty
Uncertainty in an system can occur in various
forms and from various sources.
Additive Uncertainty
Multiplicative Uncertainty
Feedback Uncertainty
7
Uncertain Elements
  1. UComplex() is a function to define complex
    uncertain parameters
  2. Ucomplexm() is a function for the creation of
    complex valued uncertain matricies.
  3. Udyn() creates an unstructured uncertain dynamic
    system class, with input/output dimension
    specified by iosize.
  4. Ultidyn() is a function to create an uncertain
    linear time inveriant object where only bounds on
    the frequency response are known.
  5. Ureal() is a function to define real uncertain
    parameters used in various analysis and design
    functions in the robust control toolbox.

8
UComplex(Name,nominal value)
UComplex() is a function to define complex
uncertain parameters
  • Name Variable name for the uncertain parameter
  • Nominal Value center nominal value for the
    parameter
  • radius paramter name to specify a radius of
    uncertainty around the nominal. Radius value
    should follow the parameter specification.
  • percentage parameter specifying an
    uncertainty percentage of the nominal for the
    radius. Value should follow the parameter
    specificaiton

EX A ucomplex('A',43j) Uncertain Complex
Parameter Name A, Nominal Value 43i, Radius 1
9
Ucomplexm(Name, nominal value)
Ucomplexm() is a function for the creation of
complex valued uncertain matricies.
  • Name Variable name for the uncertain parameter
  • Nominal Value center nominal value for the
    parameter
  • WL,WR WL and WR are square, invertible, and
    weighting matrices that quantify the size and
    shape of the ball of matrices represented by this
    object. Each parameter name is to be followed by
    the respective matrix. (Assumed to be the
    identity if left out.)
  • AutoSimplify parameter to set the type of
    simplification to be done on outputs from the
    uncertain matrix. Setting values are off,
    basic, and full.

EX F ucomplexm('F',1 2 34 5
6,'WL',diag(.1 .3),... 'WR',diag(.4 .8
1.2)) Uncertain Complex Matrix Name F, 2x3
10
n udyn('name',iosize)
Udyn() creates an unstructured uncertain dynamic
system class, with input/output dimension
specified by iosize.
  • Input
  • Name Variable name for output
  • Iosize - input/output dimension specification.
    Input,Output
  • Output
  • N - an unstructured uncertain dynamic system class

EX N udyn('N',2 3) Uncertain Dynamic
System Name N, size 2x3 size(N) ans 2
3 get(N) Name 'N' NominalValue
2x3 double AutoSimplify 'basic'
11
ultidyn('Name',iosize)
Ultidyn() is a function to create an uncertain
linear time inveriant object where only bounds on
the frequency response are known.
  • Parameters Include
  • Name variable name
  • Iosize the size of input, output
  • GainBounded upper bound on the magnitude of
    the response.
  • PositiveReal lower bound on the real part
  • Bound Specifies the actual bound for the
    frequency response.
  • SampleStateDim Specifies the state dimension
    to be used by usample().
  • AutoSimplify specifies the amount of result
    simplification.

EX B ultidyn('B',1 1,'Type','PositiveReal','B
ound',2.5) B.SampleStateDim 3
nyquist(usample(B,30)) Uncertain PositiveReal
LTI Dynamics Name B, 1x1, MM' gt 2(2.5)
12
Ureal(Name,Nominal Value)
Ureal() is a function to define real uncertain
parameters used in various analysis and design
functions in the robust control toolbox.
  • Parameters Include
  • Name variable name
  • Nominal Value
  • Mode Choose uncertainty type amongst
  • Percentage percentage area around the
    nominal.
  • Range a given interval with the nominal
    inside.
  • PlusMinus add and subtract from nominal
  • Autosimplify choose amount of simplification
    for result.

EX c ureal('c',4,'Mode','Range','Percentage',25
) Name 'c' NominalValue 4 Mode
'Range' Range 3 5 PlusMinus -1 1
Percentage -25 25 AutoSimplify
'basic'
13
Uncertain Matricies and Systems
  1. Umat() Uncertain matrices
  2. Uss() creates uncertain state space objects given
    the uncertain state space system matricies
    a,b,c,d.
  3. Ufrd() is a function to create an uncertain
    frequency response model which often arises when
    converting uncertain state space objects to
    frequency response objects.
  4. Randatom() generates a 1-by-1 type uncertain
    object.
  5. Randumat() Generate random uncertain umat objects
  6. Randuss() Generate stable, random uss objects

14
h umat(m)
  • Uncertain matrices are usually created by
    manipulation of uncertain atoms (ureal, ucomplex,
    ultidyn, etc.), double matrices, and other
    uncertain matrices
  • The command umat is rarely used
  • There are two situations where it may be useful
  • If M is a double, then H umat(M) recasts M as
    an uncertain matrix (umat object) without any
    uncertainties
  • In both cases, simplify(H,'class') is the same as
    M

15
uss(a,b,c,d)
Uss() creates uncertain state space objects given
the uncertain state space system matricies
a,b,c,d.
  • Parameters Include
  • A,B,C,D umat or other uncertain state space
    parameters to describe the system.
  • Ts sample time for a discrete time state space
    object.
  • RefSys if a refrence uss is given, the
    parameters of that object are included.
  • Note if only one matrix is include, the function
    assumes that it represents D and a static gain
    matrix.

EX p1 ureal('p1',5,'Range',2 6) p2
ureal('p2',3,'Plusminus',0.4) A -p1 0p2
-p1 B 0p2 C 1 1 usys
uss(A,B,C,0)
16
ufrd(usys,frequency)
Ufrd() is a function to create an uncertain
frequency response model which often arises when
converting uncertain state space objects to
frequency response objects.
  • Parameters Include
  • Name uncertain system
  • Frequency Range of frequencies for ufrd model.
  • Units specify units
  • rad/s default
  • hz

EX p1 ureal('p1',5,'Range',2 6) p2
ureal('p2',3,'Plusminus',0.4) p3
ultidyn('p3',1 1) Wt makeweight(.15,30,10)
A -p1 0p2 -p1 B 0p2 C 1 1
usys uss(A,B,C,0)(1Wtp3) usysfrd
ufrd(usys,logspace(-2,2,60)) bode(usysfrd,'r',us
ysfrd.NominalValue,'b')
17
A randatom(Type)
  • Generate random uncertain atom objects
  • generates a 1-by-1 type uncertain object
  • Valid values for Type include 'ureal', 'ultidyn',
    'ucomplex', and 'ucomplexm'

Example xr randatom('ureal') Uncertain Real
Parameter Name BMSJA, NominalValue -6.75, Range
-7.70893 -1.89278
18
um randumat(ny,nu)
  • Generate random uncertain umat objects
  • generates an uncertain matrix of size ny-by-nu
  • andumat randomly selects from uncertain atoms of
    type 'ureal', 'ultidyn', and 'ucomplex

Example The following statement creates the umat
uncertain object x1 of size 2-by-3. Note that
your result can differ because a random seed is
used x1 randumat(2,3) UMAT 2 Rows, 3 Columns
ROQAW complex, nominal 9.924.84i, radius
0.568, 1 occurrence UEPDY real,
nominal -5.81, variability -1.98681
0.133993, 3 occurrences VVNHL complex,
nominal 5.64-6.13i, radius 1.99, 2
occurrences
19
usys randuss(n,p,m)
  • Generate stable, random uss objects
  • generates an nth order uncertain continuous-time
    system with p outputs and m inputs

Example The statement creates a fifth order,
continuous-time uncertain system s1 of size
2-by-3. Note your display can differ because a
random seed is used. s1 randuss(5,2,3) USS
5 States, 2 Outputs, 3 Inputs, Continuous System
CTPQV 1x1 LTI, max. gain 2.2, 1 occurrence
IGDHN real,
nominal -4.03, variability -3.74667
22.7816, 1 occurrence MLGCD complex, nominal
8.363.09i, /- 7.07, 1 occurrence
OEDJK complex, nominal -0.346-0.296i,
radius 0.895, 1 occurrence
20
Manipulation of Uncertain Models
  1. isuncertain() Checks whether argument is an
    uncertain class type
  2. simplify() performs model-reduction-like
    techniques to detect and eliminate redundant
    copies of uncertain elements
  3. usample() substitutes N random samples of the
    uncertain objects in A, returning a certain array
    of size size(A) N
  4. usubs() used to substitute a specific value for
    an uncertain element of an uncertain object.
  5. gridureal() Grid ureal parameters uniformly over
    their range
  6. lftdata() Decompose uncertain objects into fixed
    normalized and fixed uncertain parts
  7. Ssbal() yields a system whose input/output and
    uncertain properties are the same as usys, a uss
    object.

21
B isuncertain(A)
  • Checks whether argument is an uncertain class
    type (checks the class)
  • does not actually verify that the input argument
    is truly uncertain
  • Returns true if input argument is uncertain,
    false otherwise
  • Uncertain classes are umat, ufrd, uss, ureal,
    ultidyn, ucomplex, ucomplexm, and udyn

Example isuncertain(rand(3,4)) ans 0
isuncertain(ureal('p',4)) ans 1
isuncertain(rss(4,3,2)) ans 0
isuncertain(rss(4,3,2)ureal('p1',4) 60 1)
ans 1
22
B simplify(A)
  • Simplify representations of uncertain objects
  • performs model-reduction-like techniques to
    detect and eliminate redundant copies of
    uncertain elements
  • After reduction, any uncertain element which does
    not actually affect the result is deleted from
    the representation

Example Create a simple umat with a single
uncertain real parameter. Select specific
elements, note that result remains in class umat.
Simplify those same elements, and note that class
changes. p1 ureal('p1',3,'Range',2 5) L
2 p1 L(1) UMAT 1 Rows, 1 Columns L(2)
UMAT 1 Rows, 1 Columns p1 real, nominal
3, range 2 5, 1 occurrence simplify(L(1))
ans 2 simplify(L(2)) Uncertain Real
Parameter Name p1, NominalValue 3, Range 2 5
23
B usample(A,N)
  • substitutes N random samples of the uncertain
    objects in A, returning a certain array of size
    size(A) N

Example A ureal('A',5) Asample
usample(A,500) size(A) ans 1 1
size(Asample) ans 1 1 500
class(Asample) ans double hist(Asample())
24
B usubs(M,StrucArray)
  • Substitute given values for uncertain elements of
    uncertain objects

Example p ureal('p',5) m 1 pp2 4
size(m) ans 2 2 m1
usubs(m,'p',5) m1 1 5 25 4
NamesValues.p 5 m2 usubs(m,NamesValues)
m2 1 5 25 4 m1 - m2 ans
0 0 0 0
25
B gridreal(A,N)
  • Grid ureal parameters uniformly over their range
  • substitutes N uniformly spaced samples of the
    uncertain real parameters in A
  • The N samples are generated by uniformly
    gridding each ureal in A across its range

Example gamma ureal('gamma',4) tau
ureal('tau',.5,'Percentage',30) p
tf(gamma,tau 1) KI 1/(2tau.Nominalgamma.No
minal) c tf(KI,1 0) clp
feedback(pc,1) subplot(2,1,1)
step(gridureal(p,20),6) title('Open-loop plant
step responses') subplot(2,1,2)
step(gridureal(clp,20),6)
26
M,Delta lftdata(A)
  • Decompose uncertain objects into fixed normalized
    and fixed uncertain parts
  • partially decompose an uncertain object into an
    uncertain part and a normalized uncertain part
  • Uncertain objects (umat, ufrd, uss) are
    represented as certain objects in feedback with
    block-diagonal concatenations of uncertain
    elements
  • separates the uncertain object A into a certain
    object M and a normalized uncertain matrix Delta
    such that A is equal to lft(Delta,M), as shown
    below

Example p1 ureal('p1',-3,'perc',40) p2
ucomplex('p2',2) A p1 p1p21 p2
M,Delta lftdata(A) simplify(A-lft(Delta,M))
ans 0 0 0 0 M M
0 0 1.0954 1.0954 0
0 0 1.0000 1.0954 1.0000
-3.0000 -1.0000 0 1.0000
1.0000 2.0000
27
usysout ssbal(usys,Wc)
Ssbal() yields a system whose input/output and
uncertain properties are the same as usys, a uss
object.
  • Input
  • Usys - a continuous-time uncertain system
  • Wc - the critical frequency for the bilinear
    prewarp transformation from continuous time to
    discrete time. (Default is 1)
  • Output
  • Usysout - a system whose input/output and
    uncertain properties are the same as usys, a uss
    object. (The numerical conditioning of usysout is
    usually better than that of usys.)

EX p2ureal('p2',-17,'Range',-19 -11)
p1ureal('p1',3.2,'Percentage',0.43) A -12
p1.001 p2 B 120 -809503 24 C .034
.0076 .00019 2 usys ss(A,B,C,zeros(2,2)) US
S 2 States, 2 Outputs, 2 Inputs, Continuous
System p1 real, nominal 3.2, variability
-0.43 0.43, 1 occurrence p2 real, nominal
-17, range -19 -11, 1 occurrence usysout
ssbal(usys) USS 2 States, 2 Outputs, 2
Inputs, Continuous System p1 real, nominal
3.2, variability -0.43 0.43, 1 occurrence
p2 real, nominal -17, range -19 -11, 1
occurrence
28
ndist actual2normalized(A,V)
  • the normalized distance between the nominal
    value of the uncertain atom A and the given value
    V
  • If V is an array of values, then ndist is an
    array of normalized distances

29
avalue normalizedactual2(A,NV)
  • Convert the value for an atom in normalized
    coordinates to the corresponding actual value
  • converts the value for atom in normalized
    coordinates, NV, to the corresponding actual value

Example a ureal('a',3,'range',1 5)
actual2normalized(a,1 3 5) ans -1.0000
-0.0000 1.0000 normalized2actual(a,-1 1)
ans 1.0000 5.0000 normalized2actual(a,
-1.5 1.5) ans 0.0000 6.0000
30
umatout stack(arraydim,umat1,umat2,...)
  • Construct an array by stacking uncertain
    matrices, models, or arrays along array
    dimensions of an uncertain array
  • All models must have the same number of columns
    and rows

Example Consider usys1 and usys2, two
single-input/single-output uss models zeta
ureal('zeta',1,'Range',0.4 4) wn
ureal('wn',0.5,'Range',0.3 0.7) P1 tf(1,1
2zetawn wn2) P2 tf(zeta,1 10) You
can stack along the first dimension to produce a
2-by-1 uss array. stack(1,P1,P1) USS 2
States, 1 Output, 1 Input, Continuous System
array, 2 x 1 wn real, nominal 0.5,
range 0.3 0.7, 3 occurrences zeta real,
nominal 1, range 0.4 4, 1 occurrence
31
B squeeze(A)
  • Remove singleton dimensions for umat objects
  • returns an array B with the same elements as A
    but with all the singleton dimensions removed
  • A singleton is a dimension such that
    size(A,dim)1
  • 2-D arrays are unaffected by squeeze so that row
    vectors remain rows

32
Interconnection of Uncertain Models
  1. Imp2exp() transforms a linear constraint between
    variables into an explicit input/output
    relationship
  2. Sysic Builds interconnections of certain and
    uncertain matrices and systems
  3. Iconnect Builds complex interconnections of
    uncertain matrices and systems
  4. Icsignal Specifies signal constraints described
    by the interconnection of components

33
B imp2exp(A,yidx,uidx)
  • transforms a linear constraint between variables
    Y and U of the form A(,yidxuidx)YU 0
    into an explicit input/output relationship Y
    BU
  • The vectors yidx and uidx refer to the columns
    (inputs) of A as referenced by the explicit
    relationship for B
  • The constraint matrix A can be a double, ss, tf,
    zpk and frd object as well as an uncertain
    object, including umat, uss and ufrd
  • The result B will be of the same class

34
sysout sysic
  • Build interconnections of certain and uncertain
    matrices and systems
  • requires that 3 variables with fixed names be
    present in the calling workspace systemnames,
    inputvar and outputvar
  • systemnames is a char containing the names of the
    subsystems that make up the interconnection
  • nputvar is a char, defining the names of the
    external inputs to the interconnection
  • outputvar is a char, describing the outputs of
    the interconnection
  • Also requires that for every subsystem name
    listed in systemnames, a corresponding variable,
    input_to_ListedSubSystemName must exist in the
    calling workspace
  • This variable is similar to outputvar - it
    defines the input signals to this particular
    subsystem as linear combinations of individual
    subsystem's outputs and external inputs

35
H iconnect
  • Create empty iconnect (interconnection) objects
  • Interconnection objects (class iconnect) are an
    alternative to sysic, and are used to build
    complex interconnections of uncertain matrices
    and systems
  • An iconnect object has 3 fields to be set by the
    user, Input, Output and Equation
  • Input and Output are icsignal objects, while
    Equation is a cell-array of equality constraints
    (using equate) on icsignal objects
  • the System property is the input/output model,
    implied by the constraints in Equation relating
    the variables defined in Input and Output

36
v icsignal(n,'name')
  • Create an icsignal object
  • creates an icsignal object of length n, which is
    a symbolic column vector
  • used with iconnect objects to specify signal
    constraints described by the interconnection of
    components
  • internal name identifiers given by the character
    string argument name

37
Model Order Reduction and Application
  • Complex models are not always required for good
    control
  • Optimization methods generally tend to produce
    controllers with at least as many states as the
    plant model
  • The Robust Control Toolbox offers you an
    assortment of model-order reduction commands
  • Less complex low-order approximations to plant
    and controller models

38
Model Order Reduction Tools
The Robust Control Toolbox has various controller
synthesis tools outlined below
  1. reduce() returns a reduced order model
  2. balancmr() Balanced model truncation via square
    root method
  3. bstmr() Balanced stochastic model truncation
    (BST) via Schur method
  4. hankelmr() Hankel Minimum Degree Approximation
    (MDA) without balancing
  5. hankelsv() Computes Hankel singular values for
    stable/unstable or continuous/discrete system

39
Model Order Reduction Tools cont
  1. modreal() returns a set of state-space LTI
    objects in modal form
  2. ncfmr() Balanced model truncation for normalized
    coprime factors.
  3. shurmr() Balanced model truncation via Schur
    method
  4. slowfast() computes the slow and fast modes
    decompositions of a system
  5. stabproj() computes the stable and antistable
    projections of a minimal realization
  6. imp2ss() produces an approximate state-space
    realization of a given impulse response

40
GRED reduce(G,order)
  • Returns a reduced order model of G
  • Groups all the Hankel SV based model reduction
    routines
  • Hankel singular values of a stable system
    indicate the respective state energy of the
    system.
  • In many cases, the additive error method
    GREDreduce(G,ORDER) is adequate to provide a
    good reduced order model.
  • for systems with lightly damped poles and/or
    zeros, a multiplicative error method (namely,
    GREDreduce(G,ORDER,'ErrorType','mult')) that
    minimizes the relative error between G and GRED
    tends to produce a better fit.

41
GRED balancmr(G,order)
  • balanced truncation model reduction for
    continuous/discrete stable/unstable plant.
  • With only one input argument G, the function will
    show a Hankel singular value plot of the original
    model and prompt for model order number to reduce.

42
GRED bstmr(G,order)
  • Balanced stochastic truncation (BST) model
    reduction for continuous/discrete
    stable/unstable plant.
  • bstmr returns a reduced order model GRED of G
  • With only one input argument G, the function will
    show a Hankel singular value plot of the phase
    matrix of G and prompt for model order number to
    reduce
  • This method guarantees an error bound on the
    infinity norm of the multiplicative
    GRED-1(G-GRED) or relative error
    G-1(G-GRED) for well-conditioned model
    reduction problems

43
GRED hankelmr(G,order)
  • Optimal Hankel norm approximation for
    continuous/discrete stable/unstable plant
  • hankelmr returns a reduced order model GRED of G
  • With only one input argument G, the function will
    show a Hankel singular value plot of the original
    model and prompt for model order number to reduce
  • This method guarantees an error bound on the
    infinity norm of the additive error G-GRED
    for well-conditioned model reduced problems

44
hankelsv(G)
  • Compute Hankel singular values for
    stable/unstable or continuous/discrete system
  • draws a bar graph of the Hankel singular values
    such as the following

45
G1,G2 modreal(G,cut)
  • State-space modal truncation/realization
  • returns a set of state-space LTI objects G1 and
    G2 in modal form given a state-space G and the
    model size of G1, cut
  • The modal form realization has its A matrix in
    block diagonal form with either 1x1 or 2x2
    blocks. The real eigenvalues will be put in 1x1
    blocks and complex eigenvalues will be put in 2x2
    blocks. These diagonal blocks are ordered in
    ascending order based on eigenvalue magnitudes
  • G can be stable or unstable

46
GRED ncfmr(G,order)
  • balanced truncation model reduction for
    normalized coprime factors of continuous/discrete
    stable/unstable G
  • ncfmr returns a reduced order model GRED formed
    by a set of balanced normalized coprime factors
  • With only one input argument G, the function will
    show a Hankel singular value plot of the original
    model and prompt for model order number to reduce
  • The left and right normalized coprime factors are
    defined as

47
GRED schurmr(G,order)
  • Schur balanced truncation model reduction for
    continuous/discrete stable/unstable plant
  • schurmr returns a reduced order model GRED of G
  • With only one input argument G, the function will
    show a Hankel singular value plot of the original
    model and prompt for model order number to reduce
  • This method guarantees an error bound on the
    infinity norm of the additive error G-GRED
    for well-conditioned model reduced problems

48
G1,G2 slowfast(G,cut)
  • State-space slow-fast decomposition
  • computes the slow and fast modes decompositions
    of a system G(s) such that

49
G1,G2,m stabproj(G)
  • State-space stable/anti-stable decomposition
  • stabproj computes the stable and antistable
    projections of a minimal realization G(s) such
    that

50
a,b,c,d,totbnd,hsv imp2ss(y,ts,nu,ny,tol)
  • System identification via impulse response
  • The function imp2ss produces an approximate
    state-space realization of a given impulse
    response impmksys(y,t,nu,ny,'imp')
  • A continuous-time realization is computed via the
    inverse Tustin transform if t is positive
    otherwise a discrete-time realization is returned
  • In the SISO case the variable y is the impulse
    response vector in the MIMO case y is an
    N1-column matrix containing N 1 time samples
    of the matrix-valued impulse response H0, ..., HN
    of an nu-input, ny-output system stored row-wise.
  • The variable tol bounds the H norm of the error
    between the approximate realization (a, b, c, d)
    and an exact realization of y
  • The inputs ts, nu, ny, tol are optional if not
    present they default to the values ts 0, nu
    1, ny (number of rows of y)/nu, tol
    1.01sigmabar1

51
Robustness and Worst Case Analysis
  • To be robust, your control system should meet
    your stability and performance requirements for
    all possible values of uncertain parameters
  • Monte Carlo parameter sampling via usample can be
    used for this purpose, but Monte Carlo methods
    are inherently hit or miss
  • The Robust Control Toolbox gives you a powerful
    assortment of robustness analysis commands that
    let you directly calculate upper and lower bounds
    on worst-case performance without random
    sampling

52
Performance Analysis
The hyperbola is used to define the performance
margin. Systems whose performance degradation
curve intersects high on the hyperbola curve
represent "non-robustly-performing systems" in
that very small deviations of the uncertain
elements from their nominal values can result in
very large system gains. Conversely, an
intersection low on the hyperbola represent
"robustly-performing systems."
53
Small Gain Theorem
When the plant modeling uncertainty is not too
big, you can design high-gain, high-performance
feedback controllers. High loop gains
significantly larger than 1 in magnitude can
attenuate the effects of plant model uncertainty
and reduce the overall sensitivity of the system
to plant noise. But if your plant model
uncertainty is so large that you do not even know
the sign of your plant gain, then you cannot use
large feedback gains without the risk that the
system will become unstable. Thus, plant model
uncertainty can be a fundamental limiting factor
in determining what can be achieved with
feedback. The Small Gain Theorem asserts that the
overall system gain must therefore be kept below
1 to assure stability.
54
Robustness and Worst Case Performance Tools
The Robust Control Toolbox has various controller
synthesis tools outlined below
  1. cpmargin() calculates the normalized coprime
    factor/gap metric robust stability of the
    multivariable feedback loop consisting of C in
    negative feedback with P.
  2. Gapmetric() calculates upper bounds on the gap
    and nugap metric between systems
  3. loopmargin() analyzes the multivariable feedback
    loop consisting of the loop transfer matrix.
  4. loopsens() Creates a Struct, loops, whose fields
    contain the multivariable sensitivity,
    complementary and open-loop transfer functions.
  5. mussv() calculates upper and lower bounds on the
    structured singular value, or µ, for a given
    block structure.
  6. Mussvextract() is used to extract the compressed
    information within muinfo into a readable form.

55
Robustness and Worst Case Performance Tools cont
  • ncfmargin() Calculates the normalized coprime
    stability margin of the plant-controller feedback
    loop
  • popov() uses the Popov criterion to test the
    robust stability of dynamical systems with
    possibly nonlinear and/or time-varying
    uncertainty.
  • robustperf() Calculates the robust performance
    margin of an uncertain multivariable system.
  • robuststab() Calculate robust stability margins
    of an uncertain multivariable system.
  • robopt() Creates an options object for use with
    robuststab and robustperf
  • wcnorm() Calculate the worst-case norm of an
    uncertain matrix

56
Robustness and Worst Case Performance Tools cont
  1. wcgain() Calculates bounds on the worst-case gain
    of an uncertain system
  2. wcgopt() creates a wcgain, wcsens and wcmargin
    options object called options in which specified
    properties have specific values.
  3. wcmargin() calculates the combined worst-case
    input and output loop-at-a-time gain/phase
    margins of the feedback loop
  4. wcsens() Calculate the worst-case sensitivity and
    complementary sensitivity functions of a
    plant-controller feedback loop

57
MARG,FREQ cpmargin(P,C,TOL)
Cpmargin() calculates the normalized coprime
factor/gap metric robust stability of the
multivariable feedback loop consisting of C in
negative feedback with P.
  • Input Parameters
  • P LTI plant
  • C only feedback controller
  • Tol - specifies a relative accuracy for
    calculating the normalized coprime factor/gap
    metric robust stability margin
  • Output Parameters
  • Marg - contains upperand lower bound for the
    normalized coprime factor/gap metric robust
    stability margin
  • Freq - the frequency associated with the upper
    bound

58
gap,nugap gapmetric(p0,p1,tol)
Gapmetric() calculates upper bounds on the gap
and nugap metric between systems p0 and p1.
EX p1 tf(1,1 -0.001) p2 tf(1,1 0.001)
g,ng gapmetric(p1,p2) K 1 H1
loopsens(p1,K) H2 loopsens(p2,K)
subplot(2,2,1) bode(H1.Si,'-',H2.Si,'--')
subplot(2,2,2) bode(H1.Ti,'-',H2.Ti,'--')
subplot(2,2,3) bode(H1.PSi,'-',H2.PSi,'--')
subplot(2,2,4) bode(H1.CSo,'-',H2.CSo,'--') g
0.0029 ng 0.0020
Output Gap gap metric value Nugap nugap
metric value (For gap or nugap, a value close to
0 means the plants are far apart and a value
close to 1 means they are close together.)
  • Input
  • P0,P1 plants of the same size
  • Tol tolerance for the gap metric (default is
    .001)

59
loopmargin(L)
  • SM, DM, MM Loopmargin() is a tool to
    determine the closed loop margins for an
    uncertain system.
  • Outputs include
  • SM A structure containing the nominal system
    margins.
  • DM also called disk margin. Describes the
    disk of deviations from the nominal system.
  • MM establishes guaranteed bounds on the system
    with variations from all input channels.

60
loopsens(P,C)
Loopsens() creates a structure which contains the
multivariable sensitivity, complementary and
open-loop transfer functions.
  • Structure Output Fields
  • Poles - Closed-loop poles. NaN for frd/ufrd
    objects.
  • Stable - 1 if nominal closed loop is stable, 0
    otherwise. NaN for frd/ufrd objects.
  • Si - Input-to-plant sensitivity function
  • Ti - Input-to-plant complementary sensitivity
    function
  • Li - Input-to-plant loop transfer function
  • So - Output-to-plant sensitivity function
  • To - Output-to-plant complementary sensitivity
    function
  • Lo - Output-to-plant loop transfer function
  • PSi - Plant times input-to-plant sensitivity
    function
  • CSo - Compensator times output-to-plant
    sensitivity function

EX int tf(1,1 0) addunc
ultidyn('addunc',1 1,'Bound',0.2) uncint
int addunc int3 blkdiag(int,uncint,int) p
1 .2 .5-.5 0 11 0 00 1 0int3 gain
ureal('gain',0.9, 'Range',-3 1.5) c .02 .3
0 01 -.3 .32 gain 0 1 -.2 .1 loops
loopsens(p,c)
61
bounds,muinfo mussv(M,BlockStructure)
Mussv() calculates upper and lower bounds on the
structured singular value, or µ, for a given
block structure.
EX M randn(5,5) sqrt(-1)randn(5,5) F
randn(2,5) sqrt(-1)randn(2,5) BlockStructure
-1 0-1 01 12 0 ubound,Q
mussv(M,F,BlockStructure) points completed (of
1) ... 1 bounds mussv(M,BlockStructure)
optbounds mussv(MQF,BlockStructure,'C5') o
ptbounds(1) ubound 1.5917 1.5925
bounds(1) bounds(2) 3.8184 3.7135
  • Input
  • M - is a double or a frd object
  • BlockStructure - a matrix specifying the
    perturbation block structure consisting of 2 rows
    and as many columns as uncertainty blocks.
  • Output
  • Bounds upper and lower bounds on the mu value
    of the system.
  • Muinfo a structure containing additional
    information

62
VDelta,VSigma,VLmi mussvextract(muinfo)
Mussvextract() is used to extract the compressed
information within muinfo into a readable form.
  • Input
  • Muinfo a variable returned by mussv() with
    information
  • Ouput
  • VDelta used to verify the lower bound
  • VSigma a structure of information used to
    verify the Newlin/Young upper bound
  • VLmi a structure of information used to verify
    the LMI upper bound

EX M randn(4,4) sqrt(-1)randn(4,4)
BlockStructure 1 11 12 2 bounds,muinfo
mussv(M,BlockStructure) VDelta,VSigma,VLmi
mussvextract(muinfo)
63
marg,freq ncfmargin(P,C,tol)
Ncfmargin() calculates the normalized coprime
factor/gap metric robust stability margin b(P,
C), marg, of the multivariable feedback loop
consisting of C in negative feedback with P.
  • Input
  • P LTI plant model
  • C Compensator in the feedback path
  • Tol tolerance for the ncfmargin must be
    between .00001 and .01
  • Output
  • Marg - the normalized coprime factor/gap metric
    robust stability margin b(P, C)
  • Freq destabilizing frequency

EX x tf(4,1 0.001) clp1
feedback(x,1) clp2 feedback(x,10) marg1,freq1
ncfmargin(x,1) marg2,freq2
ncfmargin(x,10) marg1 0.7071 freq1
Inf marg2 0.0995 freq2 Inf
64
t,P,S,N popov(sys,delta,flag)
  • Perform the Popov robust stability test
  • uses the Popov criterion to test the robust
    stability of dynamical systems with possibly
    nonlinear and/or time-varying uncertainty
  • The uncertain system must be described as the
    interconnection of a nominal LTI system sys and
    some uncertainty delta

65
perfmarg,perfmargunc,Report robustperf(sys)
Robustperf() is a tool to determine the robust
performance margin which sets bounds on the
robustness of a nominally stable system to given
uncertainty.
EX P tf(1,1 0) ultidyn('delta',1
1,'bound',0.4) BW 0.8 K tf(BW,1/(25BW)
1) S feedback(1,PK) perfmargin,punc
robustperf(S) perfmargin
UpperBound 7.4305e-001 LowerBound
7.4305e-001 CriticalFrequency 5.3096e000
  • Structure Output Fields
  • Perfmarg performance margin lower bound, upper
    bound, and critical frequency.
  • Perfmargunc structure of values of critical
    uncertain elements of the system.
  • Report A text description of the robustness
    analysis.

Note Output may not contain true critical
frequency because of the assigned frequency range
over which the function operates. For
limitations, see the function definition in the
matlab help.
66
stabmarg,destabunc,Report robuststab(sys)
Robuststab() is used to determine the robust
stability margin for a nominally stable uncertain
system up to the closest instability from the
stable nominal.
EX P tf(4,1 .8 4) delta
ultidyn('delta',1 1,'SampleStateDim',5) Pu
P 0.25tf(1,.15 1)delta C tf(1 1,.1
1) tf(2,1 0) S feedback(1,PuC)
stabmarg,destabunc,report,info
robuststab(S) report Uncertain System is NOT
robustly stable to modeled uncertainty.
-- It can tolerate up to 81.8 of
modeled uncertainty.
-- A destabilizing combination of 81.8 the
modeled uncertainty exists, causing an
instability at 9.13 rad/s.
-- Sensitivity with respect
to uncertain element ...
'delta' is 100. Increasing 'delta' by
25 leads to a 25 decrease in the margin.
  • Structure Output Fields
  • Stabmarg robust stability margin lower bound,
    upper bound, destabilizing frequency.
  • Destabunc structure of uncertain values closest
    to the nominal that cause instability.
  • Report text description of the stability
    analysis

Note Output may not contain all unstable
frequencies because of the assigned frequency
range over which the function operates. For
limitations, see the function definition in the
matlab help.
67
opts robopt('name1',value1,'name2',value2,...)
Robopt() creates an options object for use with
robuststab and robustperf.
EX opt robopt Property Object Values
Display 'off' Sensitivity 'on'
VaryUncertainty 25 Mussv 'sm9'
Default 1x1 struct
Meaning 1x1 struct
68
maxnorm,wcu wcnorm(m)
Wcnorm() determines the maximum norm over all
allowable values of the uncertain elements and is
referred to as a worst-case norm analysis.
EX aureal('a',5,'Range',4 6)
bureal('b',2,'Range',1 3) bureal('b',3,'Ran
ge',2 10) cureal('c',9,'Range',8 11)
dureal('d',1,'Range',0 2) M a bc d
Mi inv(M) maxnormM wcnorm(M) maxnormM
LowerBound 14.7199 UpperBound
14.7327 maxnormMi wcnorm(Mi) maxnormMi
LowerBound 2.5963 UpperBound 2.5979
  • Input
  • M - a umat or a uss
  • Output
  • Maxnorm a structure with fields
  • Wcu - a structure that includes values of
    uncertain elements and maximizes the matrix norm

69
maxgain,maxgainunc wcgain(sys)
Wcgain() calculates the worst case gain frequency
response of a given system due to uncertain
elements. Pointwise-in-frequency analysis
creates a response curve for the system.
EX P tf(1,1 0) ultidyn('delta',1
1,'bound',0.4) BW1 0.8 K1
tf(BW1,1/(25BW1) 1) S1 feedback(1,PK1)
BW2 2.0 K2 tf(BW2,1/(25BW2) 1) S2
feedback(1,PK2) maxgain1,wcunc1
wcgain(S1) maxgain1 LowerBound
1.5070e000 UpperBound 1.5080e000
CriticalFrequency 5.3096e000
  • Structure Output Fields
  • Maxgain maximum gain lower bound, upper bound,
    critical frequency.
  • Maxgainunc structure containing uncertain
    elements that maximize the gain.
  • Options set in wcopt()
  • Pointwise-in-frequency- creates a response
    curve for the system.
  • Peak-over-frequency computes the largest gain
    over all freqencies.

Note Output may not contain all unstable
frequencies because of the assigned frequency
range over which the function operates. For
limitations, see the function definition in the
matlab help.
70
options wcgopt('name1',value1,'name2',value2,...
)
Wcgopt() creates a wcgain, wcsens and wcmargin
options object called options in which specified
properties have specific values.
EX opt wcgopt('MaxTime',10000,'Sensitivity','of
f') Property Object Values Sensitivity
'off' LowerBoundOnly 'off'
FreqPtWise 0 ArrayDimPtWise
VaryUncertainty 25 Default 1x1
struct Meaning 1x1 struct
AbsTol 0.0200 RelTol 0.0500
MGoodThreshold 1.0400 AGoodThreshold
0.0500 MBadThreshold 20
ABadThreshold 5 NTimes 2
MaxCnt 3 MaxTime 10000
71
wcmargi,wcmargo wcmargin(L)
Wcmargin() describes a disk within with the
nominal gain margin and phase margin are stable
for an uncertain system.
EX a 0 10-10 0 b eye(2) c 1 8-10
1 d zeros(2,2) G ss(a,b,c,d) K 1
-20 1 ingain1 ureal('ingain1',1,'Range',0.97
1.06) b ingain1 00 1 Gunc
ss(a,b,c,d) unmod ultidyn('unmod',2
2,'Bound',0.08) Gmod (eye(2)unmod)Gunc
Gmodg ufrd(Gmod,logspace(-1,3,60)) wcmi,wcmo
wcmargin(Gmodg,K) wcmi(1)
GainMargin 0.3613 2.7681 PhaseMargin
-50.2745 50.2745 Frequency 0.1000
Sensitivity 1x1 struct
  • Output Structure Fields
  • Wcmargi contains gain margin bound, phase
    margin in degrees, frequency associate with worst
    case, and a structure containing the sensitivity
    to all uncertain elements.
  • Wcmargo same structure as wcmargi but gives
    single loop values for each.

72
wcst wcsens(L)
Wcsens() determines the worst case sensitivity of
a system to various input and disturbance
parameters in an uncertain system L.
  • Output Structure Fields
  • Si - Worst-case input-to-plant sensitivity
    function
  • Ti - Worst-case input-to-plant complementary
    sensitivity function
  • So - Worst-case output-to-plant sensitivity
    function
  • To - Worst-case output-to-plant complementary
    sensitivity function
  • PSi - Worst-case plant times input-to-plant
    sensitivity function
  • CSo - Worst-case compensator times
    output-to-plant sensitivity function
  • Stable - 1 if nominal closed loop is stable, 0
    otherwise. NaN for frd/ufrd objects.

EX delta ultidyn('delta',1 1) tau
ureal('tau',5,'range',4 6) P tf(1,tau
1)(10.25delta) Ctf(4 4,1 0)
looptransfer loopsens(P,C) Snom
looptransfer.Si.NominalValue wcst wcsens(P,C)
Swc wcst.Si.BadSystem omega
logspace(-1,1,50) bodemag(Snom,'-',Swc,'-.',omeg
a) legend('Nominal Sensitivity','Worst-Case
Sensitivity',... 'Location','SouthEast')
73
Robust Analysis for Parameter Dependent Systems
  1. psys() specifies state-space models where the
    state-space matrices can be uncertain,
    time-varying, or parameter-dependent.
  2. psinfo() a multi-usage function for queries about
    a polytopic or parameter-dependent system
  3. ispsys() returns 1 if sys is a polytopic or
    parameter-dependent system
  4. pvec() used in conjunction with psys to specify
    parameter-dependent systems.
  5. pvinfo() retrieves information about a vector of
    real parameters declared with pvec and stored in
    pv
  6. polydec() takes an uncertain parameter vector PV
    taking values ranging in a box, and returns the
    corners or vertices of the box as columns of the
    matrix vertx

74
Robust Analysis for Parameter Dependent Systems
cont.
  1. aff2pol() Derives a polytopic representation
    polsys of the affine parameter- dependent system.
  2. quadstab() seeks a fixed Lyapunov function that
    establishes quadratic stability
  3. quadperf() Compute the quadratic H-inf
    performance of a polytopic or parameter-dependent
    system
  4. pdlstab() uses parameter-dependent Lyapunov
    functions to establish the stability of uncertain
    state-space models over some parameter range or
    polytope of systems.
  5. decay() returns the quadratic decay rate drate
  6. pdsimul() simulates the time response of an
    affine parameter-dependent system

75
pols psys(syslist) affs psys(pv,syslist)
  • Specify a parameter-dependent system
  • psys specifies state-space models where the
    state-space matrices can be uncertain,
    time-varying, or parameter-dependent.
  • a polytopic model with vertex systems S1, . . .,
    S4 is created by pols psys(s1,s2,s3,s4)
    while an affine parameter-dependent model with 4
    real parameters is defined by
    affs psys(pv,s0,s1,s2,s3,s4)
  • The output is a structured matrix storing all the
    relevant information

76
type,k,ns,ni,no psinfo(ps)
  • Query characteristics of a P-system
  • displays the type of system (affine or polytopic)
  • the number k of SYSTEM matrices involved in its
    definition
  • the numbers of ns, ni, no of states, inputs, and
    outputs of the system

77
bool ispsys(sys)
  • True for parameter-dependent systems
  • returns 1 if sys is a polytopic or
    parameter-dependent system

78
pv pvec('box',range,rates) pv
pvec('pol',vertices)
  • Specify a vector of uncertain or time-varying
    parameters used in conjunction with psys to
    specify parameter-dependent systems
  • The type 'box' corresponds to independent
    parameters ranging in intervals

    (extremal values)
  • The parameter vector p then takes values in a
    hyperrectangle of Rn called the parameter box
  • range is an n-by-2 matrix that stacks up the
    extremal values
  • type 'pol' corresponds to parameter vectors p
    ranging in a polytope of the parameter space Rn
  • efined by a set of vertices V1, . . ., Vn
    corresponding to "extremal" values of the vector
    p
  • second argument is the concatenation of the
    vectors v1,...,vn

79
typ,k,nv pvinfo(pv)
  • pvinfo(pv) displays the type of parameter vector
    ('box' or 'pol'), the number n of scalar
    parameters, and for the type 'pol', the number of
    vertices used to specify the parameter range

80
vertx polydec(PV)
  • Compute polytopic coordinates wrt. box corners
  • takes an uncertain parameter vector PV taking
    values ranging in a box, and returns the corners
    or vertices of the box as columns of the matrix
    vertx

81
polsys aff2pol(affsys)
  • Convert affine P-systems to polytopic
    representation
  • derives a polytopic representation polsys of the
    affine parameter- dependent system
  • Where p (p1, . . ., pn) is a vector of
    uncertain or time- varying real parameters
    taking values in a box or a polytope. The
    description affsys of this system should be
    specified with psys

82
tau,P quadstab(ps,options)
  • Assess quadratic stability of parameter-dependent
    system
  • Quadratic stability of polytopic or affine
    parameter-dependent systems

83
perf,P quadperf(ps,g,options)
  • Assess quadratic Hinf performance of P-systems

84
tau,Q0,Q1,... pdlstab(pds,options)
  • Assess the robust stability of a polytopic or
    parameter-dependent system
  • uses parameter-dependent Lyapunov functions to
    establish the stability of uncertain state-space
    models over some parameter range or polytope of
    systems

85
drate,P decay(ps,options)
  • Compute quadratic decay rate

86
pdsimul(pds,'traj',tf,'ut',xi,options)
  • Time response of a parameter-dependent system
    along a given parameter trajectory along a
    parameter trajectory p(t) and for an input signal
    u(t)
  • The parameter trajectory and input signals are
    specified by two time functions ptraj(t) and
    uut(t)
  • The affine system pds is specified with psys but
    can also use the polytopic representation of such
    systems as returned by aff2pol(pds) or hinfgs
  • The final time and initial state vector can be
    reset through tf and xi
  • options gives access to the parameters
    controlling the ODE integration

87
Robust Controller Synthesis Tools
The Robust Control Toolbox has various controller
synthesis tools outlined below
  1. Augw() computes a state-space model of an
    augmented LTI plant with weighting functions
  2. Hinfmix() creates a suboptimal controller K(s)
    based on the optimization of a mixed H2/ H8
    criterion.
  3. H2syn() computes a stabilizing LTI/SS controller
    K for a partitioned plant P(s).
  4. Hinfsyn() creates an optimal H-inifinity
    controller for a partitioned plant matrix P.
  5. Sdhinfsyn() synthesizes a sampled data H-infinity
    controller.
  6. Loopsyn() is an H infinity optimal way for
    loopshaping controller synthisis.

88
Robust Controller Synthesis Tools cont
  1. Ltrsyn() computes a reconstructed-state
    output-feedback controller K for LTI plant G
    using Kalman filtering to asymptotically recover
    the lost states.
  2. Mixsyn() is H-infinity mixed-sensitivity
    synthesis method for robust control loopshaping
    design.
  3. Ncfsyn() is a normalized coprime factorization
    based parameterized controller synthesis using
    the Glover-McFarlane method for loopshaping.
  4. Mkfilter() returns a single-input, single-output
    analog low pass filter sys as an ss object.

89
P AUGW(G,W1,W2,W3)
Augw() computes a state-space model of an
augmented LTI plant P(s) with weighting functions
W1(s), W2(s), and W3(s) penalizing the error
signal, control signal and output signal
respectively.
  • Input
  • G Nominal Plant Model
  • W1 weight for the error signal
  • W2 weight for the control signal
  • W3 weight for the output signal
  • Output
  • P augmented plant model

EX szpk('s') G(s-1)/(s1) W10.1(s100)/(100
s1) W20.1 W3 Paugw(G,W1,W2,W3) K,CL,GA
Mhinfsyn(P) K2,CL2,GAM2h2syn(P) LGK
Sinv(1L) T1-S sigma(S,'k',GAM/W1,'k-.',T,'r'
,GAMG/W2,'r-.')
90
gopt,h2opt,K,R,S hinfmix(P,r,obj,region,dkbnd,
tol)
Hinfmix() creates a suboptimal controller K(s)
based on the optimization of a mixed H2/ H8
criterion that optimizes the following function
subject to T lt
gamma, T22 lt v. The closed-loop poles lie in
some prescribed LMI region D.
  • Input Parameters
  • P lmi object such as ss or tf.
  • R z2, y, u
  • Obj gamma, v, alpha, beta
  • Region identifies the pole placement region.
    Default is the open LHP.
  • Dkbnd set bound on norm of controller feed
    through matrix DK.
  • Tol tolerance for the trade-off parameter
  • Output Parameters
  • Gopt - guaranteed Hinf performance
  • H2opt guaranteed H2 performance
  • K Controller K(s) coefficients
  • R,S optimal values of the LMI objects.

91
K,CL,GAM,INFOH2SYN(P,NMEAS,NCON)
H2syn() computes a stabilizing LTI/SS controller
K for a partitioned plant P(s).
  • Input Parameters
  • P LTI/SS plant model
  • Nmeas B2 column size
  • Ncon C2 row size
  • Output Parameters
  • K vector of Feedback Controller Coefficients
  • CL Closed loop system matrix
  • Gam the H2 norm of the closed loop system
  • Info structure containing additional
    information.
  • Plant Partitioning (if done by mktito(), nmeas
    and ncon can be omitted)
  • B1 Inputs are disturbances
  • B2 Inputs are control signals
  • C1 Outputs are errors to be minimized
  • C2 Outputs are inputs to control K

92
K,CL,GAM,INFO hinfsyn(P,NMEAS,NCON)
Hinfsyn() creates an optimal h-inifinity
controller for a partitioned plant matrix P.
  • Input Parameters
  • P Partitioned plant matrix
  • Nmeas row size of the C2 matrix
  • Ncon column size of the B2 matrix
  • Output Parameters
  • K controller coefficient vector
  • CL closed loop system matrix
  • Gam H-inifinity norm for the closed loop system
  • Info - structure containing additional information

Plant Partitioning (if done by mktito(), nmeas
and ncon can be omitted) B1 Inputs are
disturbances B2 Inputs are control signals C1
Outputs are errors to be minimized C2 Outputs
are inputs to control K
93
K,GAMsdhinfsyn(P,NMEAS,NCON)
Sdhinfsyn() synthesizes a sampled data H-infinity
controller.
  • Input Parameters
  • P partitioned system matrix
  • Nmeas row size of C2
  • NCon column size of B2
  • Output parameters
  • K H infinity controller coefficients
  • Gam H infinity norm cost for the system

Where
  • Plant Partitioning
  • B1 Inputs are disturbances
  • B2 Inputs are control signals
  • C1 Outputs are errors to be minimized
  • C2 Outputs are inputs to control K

94
K,CL,GAM,INFOloopsyn(G,Gd,RANGE)
Loopsyn() is an H infinity optimal way for
loopshaping controller synthisis.
  • Input Parameters
  • G LTI plant
  • Gd desired loop shape
  • Range Wmin,Wmax desired loop shaping
    frequency range. (10Wmin lt Wmax)
  • Output Parameters
  • K Controller Coefficient vector
  • CL Closed Loop System Matrix
  • Gam H infinity norm for the closed loop
    system
  • Info structure containing additional
    information.

EX rand('seed',0)randn('seed',0) stf('s')
w05 Gd5/s G((s-10)/(s100))rss(3,4,5)
K,CL,GAM,INFOloopsyn(G,Gd)
sigma(GK,'r',GdGAM,'k-.',Gd/GAM,'k-.',.1,100)
95
K,SVL,W1 ltrsyn(G,F,XI,THETA,RHO)
Ltrsyn() computes a reconstructed-state
output-feedback controller K for LTI plant G
using Kalman filtering to asymptotically recover
the lost states.
  • Input Parameters
  • G LTI System matrix
  • F - LQ full-state-feedback gain matrix
  • XI plant noise intensity
  • Theta sensor noise intensity
  • Rho vector containing a set of recovery gains
  • Output Parameters
  • K controller coefficient vector
  • Svl sigma plot data for recovered system
  • W1 - frequencies for SVL plots

EX stf('s')Gss(1e4/((s1)(s10)(s100)))A,
B,C,Dssdata(G) Flqr(A,B,C'C,eye(size(B,2)))
Lss(A,B,F,0FB) XI100C'C
THETAeye(size(C,1)) RHO1e3,1e6,1e9,1e12Wlo
gspace(-2,2) nyquist(L,'k-.')hold K,SVL,W1lt
rsyn(G,F,XI,THETA,RHO,W)
96
K,CL,GAM,INFOmixsyn(G,W1,W2,W3)
Mixsyn() is H-infinity mixed-sensitivity
synthesis method for robust control loopshaping
design.
  • Input Parameters
  • G LTI system
  • W1,W2,W3 Weighting matricies associated with
    S(s), R(s) and T(s)
  • Output Parameters
  • K Controller Coefficient vector
  • CL Closed Loop System Matrix
  • Gam H infinity norm for the closed loop
    system
  • Info structure containing additional
    information.

Mixsyn() creates the h-infinity controller based
on the sensitivity function S(s) and the
complimentatry sensitivitiy T(s) function
according to the weighting matricies W1, W2, W3.
97
K,CL,GAM,INFOncfsyn(G,W1,W2)
Ncfsyn() is a normalized coprime factorization
based parameterized controller synthisis using
the Glover-McFarlane method for loopshaping.
  • Input Parameters
  • G LTI plant model
  • W1,W2 Pre and Post compensator to give Gd
    W1GW2 a good high frequency and low frequency
    response
  • Output Parameters
  • K controller coefficient vector
  • CL closed loop system matrix
  • Gam H infinity optimal cost
  • Info structure containing additional information

EX szpk('s') G(s-1)/(s1)2 W10.5/s
K,CL,GAMncfsyn(G,W1) sigma(GK,'r',GW1,'r-.'
,GW1GAM,'k-.',GW1/GAM,'k-.')
98
sys mkfilter(fc,ord,type,psbndr)
Mkfilter() returns a single-input, single-output
analog low pass filter sys as an ss object.
  • Input
  • Fc cutoff frequency of the filter
  • Ord order of the filter
  • Type type of the filter.
  • 'butterw- Butterworth filter
  • cheby - Chebyshev filter
  • 'bessel - Bessel filter
  • 'rc - Series of resistor/ capacitor filters
  • Psbndr - the magnitude of the passband
  • Output
  • Sys Designed filter

EX butw mkfilter(2,4,'butterw') cheb
mkfilter(4,4,'cheby',0.5) rc
mkfilter(1,4,'rc') bode(butw,'-',cheb,'--',rc,'-
.')
99
Mu-synthesis
Mu-synthesis functions enable the synthesis of
robust optimal controllers. Approximation tools
for this type of design are shown below
  1. Cmsclsyn() approximately solves the
    constant-matrix, upper bound µ-synthesis problem.
  2. Dksyn() synthesizes a robust controller via D-K
    iteration which is an approximation to
    µ-synthesis control design.
  3. Dkitopt() creates a dkitopt object called options
    with specific values assigned to certain
    properties.
  4. Drawmag() interactively uses the mouse in the
    plot window to create pts and sysout, which
    approximately fits the frequency response
    (magnitude) in pts.
  5. Fitfrd() fits D-scaling frequency response data
    with state-space model.
  6. Fitmagfrd() fits frequency response magnitude
    data with a stable, minimum-phase state-space
    model.

100
qopt,bnd cmsclsyn(R,U,V,BlockStructure)
Cmsclsyn() approximately solves the
constant-matrix, upper bound µ-synthesis problem
by minimization, for given matrices
and
. This applies to constant matrix
data in R, U, and V.
  • Input
  • R,U,V Constant matrices of appropriate
    structure
  • BlockStructure a matrix specifying the
    perturbation blockstructure as defined for mussv.
  • Output
  • Qopt - the optimum value of Q
  • Bnd - the upper bound of mussv(RUQV,BLK)

101
k,clp,bnd dksyn(p,nmeas,ncont)
Dksyn() synthesizes a robust controller via D-K
iteration which is an approximation to
µ-synthesis control design.
  • Input
  • P Partitioned plant matrix
Write a Comment
User Comments (0)
About PowerShow.com