Title: Matlab Robust Control Toolbox
1Matlab Robust Control Toolbox
2Purpose
- Increase Enthusiasm for Robust Controls
- Learn how to simulate control algorithms with
uncertainty - Increase your knowledge in Robust Controls
3Outline
- 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
4What 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
5Modeling 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
6Sources of Uncertainty
Uncertainty in an system can occur in various
forms and from various sources.
Additive Uncertainty
Multiplicative Uncertainty
Feedback Uncertainty
7Uncertain Elements
- UComplex() is a function to define complex
uncertain parameters - Ucomplexm() is a function for the creation of
complex valued uncertain matricies. - Udyn() creates an unstructured uncertain dynamic
system class, with input/output dimension
specified by iosize. - Ultidyn() is a function to create an uncertain
linear time inveriant object where only bounds on
the frequency response are known. - Ureal() is a function to define real uncertain
parameters used in various analysis and design
functions in the robust control toolbox.
8UComplex(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
9Ucomplexm(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
10n 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)
12Ureal(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'
13Uncertain Matricies and Systems
- Umat() Uncertain matrices
- Uss() creates uncertain state space objects given
the uncertain state space system matricies
a,b,c,d. - Ufrd() is a function to create an uncertain
frequency response model which often arises when
converting uncertain state space objects to
frequency response objects. - Randatom() generates a 1-by-1 type uncertain
object. - Randumat() Generate random uncertain umat objects
- Randuss() Generate stable, random uss objects
14h 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
15uss(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)
16ufrd(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')
17A 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
18um 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
19usys 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
20Manipulation of Uncertain Models
- isuncertain() Checks whether argument is an
uncertain class type - simplify() performs model-reduction-like
techniques to detect and eliminate redundant
copies of uncertain elements - usample() substitutes N random samples of the
uncertain objects in A, returning a certain array
of size size(A) N - usubs() used to substitute a specific value for
an uncertain element of an uncertain object. - gridureal() Grid ureal parameters uniformly over
their range - lftdata() Decompose uncertain objects into fixed
normalized and fixed uncertain parts - Ssbal() yields a system whose input/output and
uncertain properties are the same as usys, a uss
object.
21B 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
22B 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
23B 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())
24B 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
25B 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)
26M,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
27usysout 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
28ndist 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
29avalue 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
30umatout 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
31B 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
32Interconnection of Uncertain Models
- Imp2exp() transforms a linear constraint between
variables into an explicit input/output
relationship - Sysic Builds interconnections of certain and
uncertain matrices and systems - Iconnect Builds complex interconnections of
uncertain matrices and systems - Icsignal Specifies signal constraints described
by the interconnection of components
33B 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
34sysout 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
35H 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
36v 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
37Model 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
38Model Order Reduction Tools
The Robust Control Toolbox has various controller
synthesis tools outlined below
- reduce() returns a reduced order model
- balancmr() Balanced model truncation via square
root method - bstmr() Balanced stochastic model truncation
(BST) via Schur method - hankelmr() Hankel Minimum Degree Approximation
(MDA) without balancing - hankelsv() Computes Hankel singular values for
stable/unstable or continuous/discrete system
39Model Order Reduction Tools cont
- modreal() returns a set of state-space LTI
objects in modal form - ncfmr() Balanced model truncation for normalized
coprime factors. - shurmr() Balanced model truncation via Schur
method - slowfast() computes the slow and fast modes
decompositions of a system - stabproj() computes the stable and antistable
projections of a minimal realization - imp2ss() produces an approximate state-space
realization of a given impulse response
40GRED 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.
41GRED 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.
42GRED 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
43GRED 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
44hankelsv(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
45G1,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
46GRED 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
47GRED 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
48G1,G2 slowfast(G,cut)
- State-space slow-fast decomposition
- computes the slow and fast modes decompositions
of a system G(s) such that
49G1,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
50a,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
51Robustness 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
52Performance 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."
53Small 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.
54Robustness and Worst Case Performance Tools
The Robust Control Toolbox has various controller
synthesis tools outlined below
- cpmargin() calculates the normalized coprime
factor/gap metric robust stability of the
multivariable feedback loop consisting of C in
negative feedback with P. - Gapmetric() calculates upper bounds on the gap
and nugap metric between systems - loopmargin() analyzes the multivariable feedback
loop consisting of the loop transfer matrix. - loopsens() Creates a Struct, loops, whose fields
contain the multivariable sensitivity,
complementary and open-loop transfer functions. - mussv() calculates upper and lower bounds on the
structured singular value, or µ, for a given
block structure. - Mussvextract() is used to extract the compressed
information within muinfo into a readable form.
55Robustness 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
56Robustness and Worst Case Performance Tools cont
- wcgain() Calculates bounds on the worst-case gain
of an uncertain system - wcgopt() creates a wcgain, wcsens and wcmargin
options object called options in which specified
properties have specific values. - wcmargin() calculates the combined worst-case
input and output loop-at-a-time gain/phase
margins of the feedback loop - wcsens() Calculate the worst-case sensitivity and
complementary sensitivity functions of a
plant-controller feedback loop
57MARG,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
58gap,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)
59loopmargin(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.
60loopsens(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)
61bounds,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
62VDelta,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)
63marg,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
64t,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
65perfmarg,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.
66stabmarg,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.
67opts 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
68maxnorm,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
69maxgain,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.
70options 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
71wcmargi,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.
72wcst 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')
73Robust Analysis for Parameter Dependent Systems
- psys() specifies state-space models where the
state-space matrices can be uncertain,
time-varying, or parameter-dependent. - psinfo() a multi-usage function for queries about
a polytopic or parameter-dependent system - ispsys() returns 1 if sys is a polytopic or
parameter-dependent system - pvec() used in conjunction with psys to specify
parameter-dependent systems. - pvinfo() retrieves information about a vector of
real parameters declared with pvec and stored in
pv - 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
74Robust Analysis for Parameter Dependent Systems
cont.
- aff2pol() Derives a polytopic representation
polsys of the affine parameter- dependent system.
- quadstab() seeks a fixed Lyapunov function that
establishes quadratic stability - quadperf() Compute the quadratic H-inf
performance of a polytopic or parameter-dependent
system - pdlstab() uses parameter-dependent Lyapunov
functions to establish the stability of uncertain
state-space models over some parameter range or
polytope of systems. - decay() returns the quadratic decay rate drate
- pdsimul() simulates the time response of an
affine parameter-dependent system
75pols 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
76type,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
77bool ispsys(sys)
- True for parameter-dependent systems
- returns 1 if sys is a polytopic or
parameter-dependent system
78pv 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
79typ,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
80vertx 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
81polsys 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
82tau,P quadstab(ps,options)
- Assess quadratic stability of parameter-dependent
system - Quadratic stability of polytopic or affine
parameter-dependent systems
83perf,P quadperf(ps,g,options)
- Assess quadratic Hinf performance of P-systems
84tau,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
85drate,P decay(ps,options)
- Compute quadratic decay rate
86pdsimul(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
87Robust Controller Synthesis Tools
The Robust Control Toolbox has various controller
synthesis tools outlined below
- Augw() computes a state-space model of an
augmented LTI plant with weighting functions - Hinfmix() creates a suboptimal controller K(s)
based on the optimization of a mixed H2/ H8
criterion. - H2syn() computes a stabilizing LTI/SS controller
K for a partitioned plant P(s). - Hinfsyn() creates an optimal H-inifinity
controller for a partitioned plant matrix P. - Sdhinfsyn() synthesizes a sampled data H-infinity
controller. - Loopsyn() is an H infinity optimal way for
loopshaping controller synthisis.
88Robust Controller Synthesis Tools cont
- Ltrsyn() computes a reconstructed-state
output-feedback controller K for LTI plant G
using Kalman filtering to asymptotically recover
the lost states. - Mixsyn() is H-infinity mixed-sensitivity
synthesis method for robust control loopshaping
design. - Ncfsyn() is a normalized coprime factorization
based parameterized controller synthesis using
the Glover-McFarlane method for loopshaping. - Mkfilter() returns a single-input, single-output
analog low pass filter sys as an ss object.
89P 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-.')
90gopt,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.
91K,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
92K,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
93K,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
94K,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)
95K,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)
96K,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.
97K,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-.')
98sys 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,'-
.')
99Mu-synthesis
Mu-synthesis functions enable the synthesis of
robust optimal controllers. Approximation tools
for this type of design are shown below
- Cmsclsyn() approximately solves the
constant-matrix, upper bound µ-synthesis problem. - Dksyn() synthesizes a robust controller via D-K
iteration which is an approximation to
µ-synthesis control design. - Dkitopt() creates a dkitopt object called options
with specific values assigned to certain
properties. - Drawmag() interactively uses the mouse in the
plot window to create pts and sysout, which
approximately fits the frequency response
(magnitude) in pts. - Fitfrd() fits D-scaling frequency response data
with state-space model. - Fitmagfrd() fits frequency response magnitude
data with a stable, minimum-phase state-space
model.
100qopt,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)
101k,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