Matlab Robust Control Toolbox (1)

  • Upload
    kastolo

  • View
    256

  • Download
    1

Embed Size (px)

Citation preview

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    1/168

    April 2006 Nathan Sorensen Kedrick Black 1

    Matlab Robust Control

    Toolbox

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    2/168

    April 2006 Nathan Sorensen Kedrick Black 2

    Purpose

    Increase Enthusiasm for Robust Controls

    Learn how to simulate control algorithms

    with uncertainty

    Increase your knowledge in Robust

    Controls

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    3/168

    April 2006 Nathan Sorensen Kedrick Black 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

    LMI Slovers

    Validation of Results

    Modification of Systems of LMIs

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    4/168

    April 2006 Nathan Sorensen Kedrick Black 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 uncertaintytolerant controllers

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    5/168

    April 2006 Nathan Sorensen Kedrick Black 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 LTImodels as objects specifically designed for robust control

    applications

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    6/168

    April 2006 Nathan Sorensen Kedrick Black 6

    Sources of Uncertainty

    Uncertainty in an system can occur in various forms and from

    various sources.

    Additive Uncertainty Multiplicative Uncertainty Feedback Uncertainty

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    7/168

    April 2006 Nathan Sorensen Kedrick Black 7

    Uncertain Elements

    1) UComplex() is a function to define complex uncertainparameters

    2) Ucomplexm() is a function for the creation of complex valueduncertain matricies.

    3) Udyn() creates an unstructured uncertain dynamic systemclass, with input/output dimension specified by iosize.

    4) Ultidyn() is a function to create an uncertain linear timeinveriant object where only bounds on the frequencyresponse are known.

    5) Ureal() is a function to define real uncertain parameters used

    in various analysis and design functions in the robust controltoolbox.

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    8/168

    April 2006 Nathan Sorensen Kedrick Black 8

    UComplex(Name,nominal value)

    NameVariable name for the

    uncertain parameter

    Nominal Valuecenter nominal

    value for the parameter

    radiusparamter name to specify

    a radius of uncertainty around the

    nominal. Radius value should follow

    the parameter specification.

    percentageparameter

    specifying an uncertainty percentageof the nominal for the radius. Value

    should follow the parameter

    specificaiton

    2.5 3 3.5 4 4.5 5 5.51.5

    2

    2.5

    3

    3.5

    4

    4.5Sampled Complex Uncertain Parameter A

    EX:A = ucomplex('A',4+3*j)

    Uncertain Complex Parameter: Name

    A,

    Nominal Value 4+3i,

    Radius 1

    UComplex() is a function to define complex uncertain parameters

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    9/168

    April 2006 Nathan Sorensen Kedrick Black 9

    Ucomplexm(Name, nominal value)

    NameVariable name for the

    uncertain parameter

    Nominal Valuecenter 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.

    0 0.05 0.1 0.15 0.2 0.250

    2

    4

    6

    8Sampled F(1,1) - F(1,1).NominalValue

    0 0.05 0.1 0.15 0.2 0.250

    5

    10Sampled F(2,3) - F(2,3).NominalValue

    EX:

    F = ucomplexm('F',[1 2 3;4 5 6],'WL',diag([.1 .3]),...

    'WR',diag([.4 .8 1.2]))

    Uncertain Complex Matrix: Name F, 2x3

    Ucomplexm() is a function for the creation of complex valueduncertain matricies.

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    10/168

    April 2006 Nathan Sorensen Kedrick Black 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'

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    11/168

    April 2006 Nathan Sorensen Kedrick Black 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:

    Namevariable name

    Iosizethe size of [input, output]

    GainBounded upper bound on themagnitude 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','Bound',2.5)

    B.SampleStateDim = 3;

    nyquist(usample(B,30))

    Uncertain PositiveReal LTI Dynamics: Name B, 1x1, M+M' >=

    2*(2.5)

    -10 0 10 20 30 40 50 60 70 80-40

    -30

    -20

    -10

    0

    10

    20

    30

    40Nyquist Diagram

    Real Axis

    ImaginaryA

    xis

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    12/168

    April 2006 Nathan Sorensen Kedrick Black 12

    Ureal(Name,Nominal Value)

    Ureal() is a function to define real uncertain parameters used in variousanalysis and design functions in the robust control toolbox.

    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'

    Parameters Include:

    Namevariable 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.

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    13/168

    April 2006 Nathan Sorensen Kedrick Black 13

    Uncertain Matricies and Systems

    1. Umat() Uncertain matrices2. 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 convertinguncertain state space objects to frequency response

    objects.

    4. Randatom() generates a 1-by-1 type uncertain object.

    5. Randumat() Generate random uncertain umat objects6. Randuss() Generate stable, random uss objects

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    14/168

    April 2006 Nathan Sorensen Kedrick Black 14

    h = umat(m)

    Uncertain matrices are usually created bymanipulation of uncertain atoms (ureal,ucomplex, ultidyn, etc.), double matrices, andother 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 asan uncertain matrix (umat object) without any

    uncertainties In both cases, simplify(H,'class') is the same as

    M

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    15/168

    April 2006 Nathan Sorensen Kedrick Black 15

    uss(a,b,c,d)

    Uss() creates uncertain state space objects given the uncertain statespace system matricies a,b,c,d.

    Parameters Include:

    A,B,C,Dumat or other uncertain state

    space parameters to describe thesystem.

    Tssample time for a discrete time

    state space object.

    RefSysif 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 0;p2 -p1];

    B = [0;p2];

    C = [1 1];

    usys = uss(A,B,C,0);

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    16/168

    April 2006 Nathan Sorensen Kedrick Black 16

    ufrd(usys,frequency)

    Ufrd() is a function to create an uncertain frequency responsemodel which often arises when converting uncertain state space

    objects to frequency response objects.

    -40

    -30

    -20

    -10

    0

    Magnitude(dB)

    10-2

    10-1

    100

    101

    102

    -180

    -135

    -90

    -45

    0

    45

    Phase(deg)

    Bode Diagram

    Frequency (rad/sec)

    Parameters Include:

    Nameuncertain system

    FrequencyRange of frequencies for ufrd

    model.

    Units specify units:

    rad/s defaulthz

    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 0;p2 -p1];

    B = [0;p2];

    C = [1 1];

    usys = uss(A,B,C,0)*(1+Wt*p3);

    usysfrd = ufrd(usys,logspace(-2,2,60));

    bode(usysfrd,'r',usysfrd.NominalValue,'b+')

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    17/168

    April 2006 Nathan Sorensen Kedrick Black 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'

    Examplexr = randatom('ureal')

    Uncertain Real Parameter: Name BMSJA, NominalValue -6.75,

    Range [-7.70893 -1.89278]

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    18/168

    April 2006 Nathan Sorensen Kedrick Black 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.92+4.84i, radius = 0.568, 1

    occurrence

    UEPDY: real, nominal = -5.81, variability = [-1.986810.133993], 3 occurrences

    VVNHL: complex, nominal = 5.64-6.13i, radius = 1.99, 2

    occurrences

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    19/168

    April 2006 Nathan Sorensen Kedrick Black 19

    usys = randuss(n,p,m) Generate stable, random uss objects

    generates an nth order uncertain continuous-time system with poutputs and m inputs

    ExampleThe 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.36+3.09i, +/- 7.07%, 1 occurrence

    OEDJK: complex, nominal = -0.346-0.296i, radius = 0.895, 1 occurrence

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    20/168

    April 2006 Nathan Sorensen Kedrick Black 20

    Manipulation of Uncertain Models

    1. isuncertain() Checks whether argument is an uncertainclass type

    2. simplify() performs model-reduction-like techniques todetect and eliminate redundant copies of uncertainelements

    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 parts7. Ssbal() yields a system whose input/output and uncertain

    properties are the same as usys, a uss object.

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    21/168

    April 2006 Nathan Sorensen Kedrick Black 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

    Exampleisuncertain(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) 6;0 1])

    ans =

    1

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    22/168

    April 2006 Nathan Sorensen Kedrick Black 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

    ExampleCreate 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]

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    23/168

    April 2006 Nathan Sorensen Kedrick Black 23

    B = usample(A,N) substitutes N random samples of the uncertain objects in A,

    returning a certain array of size [size(A) N]

    ExampleA = ureal('A',5);

    Asample = usample(A,500);

    size(A)

    ans =

    1 1size(Asample)

    ans =

    1 1 500

    class(Asample)

    ans =

    double

    hist(Asample(:))

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    24/168

    April 2006 Nathan Sorensen Kedrick Black 24

    B = usubs(M,StrucArray)

    Substitute given values for uncertainelements of uncertain objectsExamplep = ureal('p',5);

    m = [1 p;p^2 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 525 4

    m1 - m2

    ans =

    0 0

    0 0

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    25/168

    April 2006 Nathan Sorensen Kedrick Black 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

    Examplegamma = ureal('gamma',4);

    tau = ureal('tau',.5,'Percentage',30);

    p = tf(gamma,[tau 1]);

    KI =

    1/(2*tau.Nominal*gamma.Nominal);

    c = tf(KI,[1 0]);

    clp = feedback(p*c,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)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    26/168

    April 2006 Nathan Sorensen Kedrick Black 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 normalizeduncertain part

    Uncertain objects (umat, ufrd, uss) are represented as certain objects infeedback with block-diagonal concatenations of uncertain elements

    separates the uncertain object A into a certain object M and a normalizeduncertain matrix Delta such that A is equal to lft(Delta,M), as shown below

    Examplep1 = ureal('p1',-3,'perc',40);p2 = ucomplex('p2',2);

    A = [p1 p1+p2;1 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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    27/168

    April 2006 Nathan Sorensen Kedrick Black 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 thebilinear prewarp transformation

    from continuous time to discrete

    time. (Default is 1)

    Output:

    Usysout - a system whose

    input/output and uncertainproperties are the same as usys,

    a uss object. (The numerical

    conditioning of usysout is usually

    better than that of usys.)

    EX:

    p2=ureal('p2',-17,'Range',[-19 -11]);

    p1=ureal('p1',3.2,'Percentage',0.43);

    A = [-12 p1;.001 p2];

    B = [120 -809;503 24];C = [.034 .0076; .00019 2];

    usys = ss(A,B,C,zeros(2,2))

    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

    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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    28/168

    April 2006 Nathan Sorensen Kedrick Black 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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    29/168

    April 2006 Nathan Sorensen Kedrick Black 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

    Examplea = 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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    30/168

    April 2006 Nathan Sorensen Kedrick Black 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 ussmodels:

    zeta = ureal('zeta',1,'Range',[0.4 4]);

    wn = ureal('wn',0.5,'Range',[0.3 0.7]);

    P1 = tf(1,[1 2*zeta*wn wn^2]);

    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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    31/168

    April 2006 Nathan Sorensen Kedrick Black 31

    B = squeeze(A)

    Remove singleton dimensions for umatobjects

    returns an array B with the same elements

    as A but with all the singleton dimensionsremoved

    A singleton is a dimension such that

    size(A,dim)==1 2-D arrays are unaffected by squeeze sothat row vectors remain rows

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    32/168

    April 2006 Nathan Sorensen Kedrick Black 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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    33/168

    April 2006 Nathan Sorensen Kedrick Black 33

    B = imp2exp(A,yidx,uidx)

    transforms a linear constraint between variables Y and Uof the form A(:,[yidx;uidx])*[Y;U] = 0 into an explicitinput/output relationship Y = B*U

    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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    34/168

    April 2006 Nathan Sorensen Kedrick Black 34

    sysout = sysic Build interconnections of certain and uncertain

    matrices and systems

    requires that 3 variables with fixed names bepresent in the calling workspace:systemnames, inputvarand outputvar

    systemnamesis a char containing the namesof the subsystems that make up theinterconnection

    nputvaris a char, defining the names of the

    external inputs to the interconnection outputvaris a char, describing the outputs ofthe interconnection

    Also requires that for every subsystem namelisted in systemnames, a correspondingvariable, input_to_ListedSubSystemNamemust exist in the calling workspace

    This variable is similar to outputvar - it definesthe input signals to this particular subsystem aslinear combinations of individual subsystem'soutputs and external inputs

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    35/168

    April 2006 Nathan Sorensen Kedrick Black 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 uncertainmatrices and systems

    An iconnect object has 3 fields to be set by the user, Input, Outputand Equation

    Input and Output are icsignal objects, while Equation is a cell-arrayof equality constraints (using equate) on icsignal objects

    the System property is the input/output model, implied by theconstraints in Equation relating the variables defined in Input andOutput

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    36/168

    April 2006 Nathan Sorensen Kedrick Black 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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    37/168

    April 2006 Nathan Sorensen Kedrick Black 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 theplant model

    The Robust Control Toolbox offers you an

    assortment of model-order reduction commands

    Less complex low-order approximations to plant

    and controller models

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    38/168

    April 2006 Nathan Sorensen Kedrick Black 38

    Model Order Reduction Tools

    The Robust Control Toolbox has various controller synthesistools 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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    39/168

    April 2006 Nathan Sorensen Kedrick Black 39

    Model Order Reduction Tools cont:

    6. modreal() returns a set of state-space LTI objects in modal form

    7. ncfmr() Balanced model truncation for normalized coprime factors.

    8. shurmr() Balanced model truncation via Schur method

    9. slowfast() computes the slow and fast modes decompositions of a

    system

    10. stabproj() computes the stable and antistable projections of a minimalrealization

    11. imp2ss()produces an approximate state-space realization of a given

    impulse response

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    40/168

    April 2006 Nathan Sorensen Kedrick Black 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 therespective state energy of the system.

    In many cases, the additive error methodGRED=reduce(G,ORDER) is adequate to provide agood reduced order model.

    for systems with lightly damped poles and/or zeros, amultiplicative error method (namely,GRED=reduce(G,ORDER,'ErrorType','mult')) thatminimizes the relative error between G and GRED tendsto produce a better fit.

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    41/168

    April 2006 Nathan Sorensen Kedrick Black 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.

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    42/168

    April 2006 Nathan Sorensen Kedrick Black 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-conditionedmodel reduction problems

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    43/168

    April 2006 Nathan Sorensen Kedrick Black 43

    GRED = hankelmr(G,order)

    Optimal Hankel norm approximation forcontinuous/discrete & stable/unstable plant

    hankelmr returns a reduced order model GRED of G

    With only one input argument G, the function will show aHankel singular value plot of the original model andprompt for model order number to reduce

    This method guarantees an error bound on the infinitynorm of the additive error || G-GRED || for well-conditioned model reduced problems

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    44/168

    April 2006 Nathan Sorensen Kedrick Black 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:

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    45/168

    April 2006 Nathan Sorensen Kedrick Black 45

    [G1,G2] = modreal(G,cut) State-space modal truncation/realization

    returns a set of state-space LTI objects G1 and G2 inmodal form given a state-space G and the model size ofG1, cut

    The modal form realization has its A matrix in blockdiagonal form with either 1x1 or 2x2 blocks. The realeigenvalues will be put in 1x1 blocks and complexeigenvalues will be put in 2x2 blocks. These diagonalblocks are ordered in ascending order based oneigenvalue magnitudes

    G can be stable or unstable

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    46/168

    April 2006 Nathan Sorensen Kedrick Black 46

    GRED = ncfmr(G,order)

    balanced truncation model reduction for normalizedcoprime factors of continuous/discrete & stable/unstableG

    ncfmr returns a reduced order model GRED formed by aset of balanced normalized coprime factors

    With only one input argument G, the function will show aHankel singular value plot of the original model andprompt for model order number to reduce

    The left and right normalized coprime factors are definedas:

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    47/168

    April 2006 Nathan Sorensen Kedrick Black 47

    GRED = schurmr(G,order)

    Schur balanced truncation model reduction forcontinuous/discrete & stable/unstable plant

    schurmr returns a reduced order model GRED ofG

    With only one input argument G, the function willshow a Hankel singular value plot of the originalmodel and prompt for model order number toreduce

    This method guarantees an error bound on theinfinity norm of the additive error || G-GRED || forwell-conditioned model reduced problems

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    48/168

    April 2006 Nathan Sorensen Kedrick Black 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: fs sGsGsG

    )

    ,

    ,

    ,

    (: 11111 DCBAsG s )

    ,

    ,

    ,

    (: 22222 DCBAsG f

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    49/168

    April 2006 Nathan Sorensen Kedrick Black 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:

    [ b d t tb d h ]

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    50/168

    April 2006 Nathan Sorensen Kedrick Black 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-spacerealization of a given impulse response imp=mksys(y,t,nu,ny,'imp');

    A continuous-time realization is computed via the inverse Tustintransform 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 N+1-column matrix containing N + 1 timesamples 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 theapproximate 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 thevalues ts = 0, nu = 1, ny = (number of rows of y)/nu, tol =1.01sigmabar1

    R b t d W t C

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    51/168

    April 2006 Nathan Sorensen Kedrick Black 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 usamplecan 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:

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    52/168

    April 2006 Nathan Sorensen Kedrick Black 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 uncertainelements from their nominal values can result in very large system gains.

    Conversely, an intersection low on the hyperbola represent "robustly-performing systems."

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    53/168

    April 2006 Nathan Sorensen Kedrick Black 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 afundamental 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.

    R b t d W t C

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    54/168

    April 2006 Nathan Sorensen Kedrick Black 54

    Robustness and Worst Case

    Performance ToolsThe Robust Control Toolbox has various controller synthesistools 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.

    R b t d W t C

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    55/168

    April 2006 Nathan Sorensen Kedrick Black 55

    Robustness and Worst Case

    Performance Tools cont:

    7. ncfmargin() Calculates the normalized coprime stability margin of the

    plant-controller feedback loop

    8. popov() uses the Popov criterion to test the robust stability of dynamical

    systems with possibly nonlinear and/or time-varying uncertainty.

    9. robustperf() Calculates the robust performance margin of an uncertainmultivariable system.

    10. robuststab() Calculate robust stability margins of an uncertain

    multivariable system.

    11. robopt() Creates an options object for use with robuststab and robustperf

    12.wcnorm() Calculate the worst-case norm of an uncertain matrix

    Rob stness and Worst Case

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    56/168

    April 2006 Nathan Sorensen Kedrick Black 56

    Robustness and Worst Case

    Performance Tools cont:13. wcgain() Calculates bounds on the worst-case gain of an uncertain system

    14. wcgopt() creates a wcgain, wcsens and wcmargin options object called options in

    which specified properties have specific values.

    15. wcmargin() calculates the combined worst-case input and output loop-at-a-time

    gain/phase margins of the feedback loop

    16. wcsens() Calculate the worst-case sensitivity and complementary sensitivity

    functions of a plant-controller feedback loop

    [MARG FREQ]

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    57/168

    April 2006 Nathan Sorensen Kedrick Black 57

    [MARG,FREQ] =

    cpmargin(P,C,TOL)Cpmargin() calculates the normalized coprime factor/gap metric robust stability ofthe multivariable feedback loop consisting of C in negative feedback with P.

    Input Parameters:PLTI 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 withthe upper bound

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    58/168

    April 2006 Nathan Sorensen Kedrick Black 58

    [gap,nugap] = gapmetric(p0,p1,tol)

    Gapmetric() calculates upper bounds on the gap and nugap metric

    between systems p0 and p1.

    Input:

    P0,P1plants of the same size

    Toltolerance for the gap metric (default

    is .001)

    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

    -100

    -50

    0

    Magnitude(dB)

    10-5

    100

    0

    90

    180

    Phase(deg)

    Bode Diagram

    Frequency (rad/sec)

    -50

    0

    50

    Magnitude(dB)

    10-2

    100

    102

    -90

    -45

    0

    Phase(deg)

    Bode Diagram

    Frequency (rad/sec)

    -50

    0

    50

    Magnitude(dB)

    10-2

    100

    102

    -90

    -45

    0

    Phase(deg)

    Bode Diagram

    Frequency (rad/sec)

    -100

    -50

    0

    Magnitude(dB)

    10-5

    100

    0

    90

    180

    Phase(deg)

    Bode Diagram

    Frequency (rad/sec)

    Output:

    Gapgap metric valueNugapnugap 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.)

    loopmargin(L)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    59/168

    April 2006 Nathan Sorensen Kedrick Black 59

    loopmargin(L)

    [SM, DM, MM] = Loopmargin() is a tool to

    determine the closed loop margins for an

    uncertain system.

    Outputs include:

    SMA structure containing the nominal

    system margins.

    DMalso called disk margin. Describes

    the disk of deviations from the nominalsystem.

    MMestablishes guaranteed bounds on

    the system with variations from all input

    channels.

    loopsens(P C)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    60/168

    April 2006 Nathan Sorensen Kedrick Black 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 functionTi - 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 1;1 0 0;0 1 0]*int3;

    gain = ureal('gain',0.9, 'Range',[-3 1.5]);

    c = [.02 .3 0 0;1 -.3 .32 gain; 0 1 -.2 .1];

    loops = loopsens(p,c)

    [bounds muinfo] =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    61/168

    April 2006 Nathan Sorensen Kedrick Black 61

    [bounds,muinfo] =

    mussv(M,BlockStructure)Mussv() calculates upper and lower bounds on the structured singular value, or ,for a given block structure.

    Input:

    M - is a double or a frd object

    BlockStructure - a matrix specifying the

    perturbation block structure consistingof 2 rows and as many columns as

    uncertainty blocks.

    Output:

    Boundsupper and lower bounds on

    the mu value of the system.

    Muinfoa structure containing

    additional information

    EX:

    M = randn(5,5) + sqrt(-1)*randn(5,5);

    F = randn(2,5) + sqrt(-1)*randn(2,5);

    BlockStructure = [-1 0;-1 0;1 1;2 0];

    [ubound,Q] =

    mussv(M,F,BlockStructure);

    points completed (of 1) ... 1

    bounds = mussv(M,BlockStructure);

    optbounds =

    mussv(M+Q*F,BlockStructure,'C5');

    [optbounds(1) ubound]1.5917 1.5925

    [bounds(1) bounds(2)]

    3.8184 3.7135

    [VDelta VSigma VLmi] =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    62/168

    April 2006 Nathan Sorensen Kedrick Black 62

    [VDelta,VSigma,VLmi] =

    mussvextract(muinfo)Mussvextract() is used to extract the compressed information withinmuinfo into a readable form.

    Input:

    Muinfoa variable returned by

    mussv() with information

    Ouput:

    VDeltaused to verify the lower

    bound

    VSigma a structure of

    information used to verify the

    Newlin/Young upper bound

    VLmia structure of information

    used to verify the LMI upper

    bound

    EX:M = randn(4,4) + sqrt(-1)*randn(4,4);

    BlockStructure = [1 1;1 1;2 2];

    [bounds,muinfo] = mussv(M,BlockStructure);

    [VDelta,VSigma,VLmi] = mussvextract(muinfo);

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    63/168

    April 2006 Nathan Sorensen Kedrick Black 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:

    PLTI plant model

    CCompensator in the feedback path

    Toltolerance for the ncfmargin must

    be between .00001 and .01

    Output:

    Marg - the normalized coprime

    factor/gap metric robust stability marginb(P, C)

    Freqdestabilizing 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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    64/168

    April 2006 Nathan Sorensen Kedrick Black 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-varyinguncertainty

    The uncertain system must be described

    as the interconnection of a nominal LTIsystem sys and some uncertainty delta

    [perfmarg perfmargunc Report] =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    65/168

    April 2006 Nathan Sorensen Kedrick Black 65

    [perfmarg,perfmargunc,Report] =

    robustperf(sys)Robustperf() is a tool to determine the robust performance marginwhich sets bounds on the robustness of a nominally stable system

    to given uncertainty.

    Structure Output Fields:

    Perfmargperformance margin: lower

    bound, upper bound, and critical

    frequency.

    Perfmarguncstructure of values of

    critical uncertain elements of the

    system.

    ReportA text description of therobustness analysis.

    EX:

    P = tf(1,[1 0]) + ultidyn('delta',[1 1],'bound',0.4);

    BW = 0.8;

    K = tf(BW,[1/(25*BW) 1]);

    S = feedback(1,P*K);

    [perfmargin,punc] = robustperf(S);

    perfmargin =

    UpperBound: 7.4305e-001

    LowerBound: 7.4305e-001

    CriticalFrequency: 5.3096e+000

    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.

    [stabmarg destabunc Report] =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    66/168

    April 2006 Nathan Sorensen Kedrick Black 66

    [stabmarg,destabunc,Report] =

    robuststab(sys)Robuststab() is used to determine the robust stability margin for anominally stable uncertain system up to the closest instability from the

    stable nominal.

    Structure Output Fields:

    Stabmargrobust stability margin: lower

    bound, upper bound, destabilizing frequency.Destabuncstructure of uncertain values

    closest to the nominal that cause instability.

    Reporttext description of the stability

    analysis

    EX:

    P = tf(4,[1 .8 4]);

    delta = ultidyn('delta',[1 1],'SampleStateDim',5);

    Pu = P + 0.25*tf([1],[.15 1])*delta;

    C = tf([1 1],[.1 1]) + tf(2,[1 0]);

    S = feedback(1,Pu*C);

    [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.

    Note: Output may not contain all unstablefrequencies because of the assigned frequency

    range over which the function operates. For

    limitations, see the function definition in the matlab

    help.

    opts =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    67/168

    April 2006 Nathan Sorensen Kedrick Black 67

    opts =

    robopt('name1',value1,'name2',value2,...)

    Robopt() creates an options object for use with robuststab androbustperf.

    EX:

    opt = robopt

    Property Object Values:

    Display: 'off'

    Sensitivity: 'on'

    VaryUncertainty: 25

    Mussv: 'sm9'

    Default: [1x1 struct]

    Meaning: [1x1 struct]

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    68/168

    April 2006 Nathan Sorensen Kedrick Black 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.

    Input:

    M - a umat or a uss

    Output:

    Maxnorma structure with fields:

    Wcu - a structure that includes values of

    uncertain elements and maximizes the

    matrix norm

    EX:

    a=ureal('a',5,'Range',[4 6]);

    b=ureal('b',2,'Range',[1 3]);

    b=ureal('b',3,'Range',[2 10]);

    c=ureal('c',9,'Range',[8 11]);

    d=ureal('d',1,'Range',[0 2]);M = [a b;c d];

    Mi = inv(M);

    [maxnormM] = wcnorm(M)

    maxnormM =

    LowerBound: 14.7199

    UpperBound: 14.7327

    [maxnormMi] = wcnorm(Mi)

    maxnormMi =

    LowerBound: 2.5963

    UpperBound: 2.5979

    [maxgain maxgainunc] =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    69/168

    April 2006 Nathan Sorensen Kedrick Black 69

    [maxgain,maxgainunc] =

    wcgain(sys)Wcgain() calculates the worst case gain frequency response of agiven system due to uncertain elements. Pointwise-in-frequency

    analysis creates a response curve for the system.

    Structure Output Fields:

    Maxgainmaximum gain: lower

    bound, upper bound, critical frequency.Maxgainuncstructure 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.

    EX:

    P = tf(1,[1 0]) + ultidyn('delta',[1 1],'bound',0.4);

    BW1 = 0.8;

    K1 = tf(BW1,[1/(25*BW1) 1]);S1 = feedback(1,P*K1);

    BW2 = 2.0;

    K2 = tf(BW2,[1/(25*BW2) 1]);

    S2 = feedback(1,P*K2);

    [maxgain1,wcunc1] = wcgain(S1);

    maxgain1 =

    LowerBound: 1.5070e+000

    UpperBound: 1.5080e+000CriticalFrequency: 5.3096e+000

    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.

    options =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    70/168

    April 2006 Nathan Sorensen Kedrick Black 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','off')

    Property Object Values:

    Sensitivity: 'off'

    LowerBoundOnly: 'off'

    FreqPtWise: 0ArrayDimPtWise: []

    VaryUncertainty: 25

    Default: [1x1 struct]

    Meaning: [1x1 struct]

    AbsTol: 0.0200

    RelTol: 0.0500

    MGoodThreshold: 1.0400

    AGoodThreshold: 0.0500

    MBadThreshold: 20ABadThreshold: 5

    NTimes: 2

    MaxCnt: 3

    MaxTime: 10000

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    71/168

    April 2006 Nathan Sorensen Kedrick Black 71

    [wcmargi,wcmargo] = wcmargin(L)

    Wcmargin() describes a disk within with the nominal gain margin and phase

    margin are stable for an uncertain system.

    Output Structure Fields:

    Wcmargicontains gain margin

    bound, phase margin in degrees,

    frequency associate with worst case,

    and a structure containing the

    sensitivity to all uncertain elements.Wcmargosame structure as

    wcmargi but gives single loop values

    for each.

    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 -2;0 1]; ingain1 = ureal('ingain1',1,'Range',[0.97 1.06]);

    b = [ingain1 0;0 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]

    t (L)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    72/168

    April 2006 Nathan Sorensen Kedrick Black 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 sensitivityfunction

    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])*(1+0.25*delta);

    C=tf([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,'-.',omega);

    legend('Nominal Sensitivity','Worst-Case Sensitivity',...

    'Location','SouthEast')

    10-1

    100

    101

    -35

    -30

    -25

    -20

    -15

    -10

    -5

    0

    5

    Magnitude(dB)

    Bode Diagram

    Frequency (rad/sec)

    Nominal Sensitivity

    Worst-Case Sensitivity

    Robust Analysis for Parameter

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    73/168

    April 2006 Nathan Sorensen Kedrick Black 73

    Robust Analysis for Parameter

    Dependent Systems

    1. psys() specifies state-space models where the state-spacematrices can be uncertain, time-varying, or parameter-dependent.

    2. psinfo() a multi-usage function for queries about a polytopic orparameter-dependent system

    3. ispsys() returns 1 if sys is a polytopic or parameter-dependent

    system4. pvec() used in conjunction with psys to specify parameter-

    dependent systems.

    5. pvinfo() retrieves information about a vector of real parametersdeclared with pvec and stored in pv

    6. polydec() takes an uncertain parameter vector PV taking valuesranging in a box, and returns the corners or vertices of the box ascolumns of the matrix vertx

    Robust Analysis for Parameter

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    74/168

    April 2006 Nathan Sorensen Kedrick Black 74

    Robust Analysis for Parameter

    Dependent Systems cont.

    6. aff2pol() Derives a polytopic representation polsys of the affineparameter- dependent system.

    7. quadstab() seeks a fixed Lyapunov function that establishesquadratic stability

    8. quadperf() Compute the quadratic H-inf performance of a

    polytopic or parameter-dependent system9. pdlstab() uses parameter-dependent Lyapunov functions to

    establish the stability of uncertain state-space models over someparameter range or polytope of systems.

    10. decay() returns the quadratic decay rate drate

    11. pdsimul() simulates the time response of an affine parameter-dependent system

    pols = psys(syslist)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    75/168

    April 2006 Nathan Sorensen Kedrick Black 75

    affs = psys(pv,syslist) Specify a parameter-dependent system

    psys specifies state-space models where the state-space matricescan 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-dependentmodel 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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    76/168

    April 2006 Nathan Sorensen Kedrick Black 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

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    77/168

    April 2006 Nathan Sorensen Kedrick Black 77

    bool = ispsys(sys)

    True for parameter-dependent systems

    returns 1 if sys is a polytopic or parameter-

    dependent system

    pv = pvec('box' range rates)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    78/168

    April 2006 Nathan Sorensen Kedrick Black 78

    pv pvec( box ,range,rates)

    pv = pvec('pol',vertices)

    Specify a vector of uncertain or time-varying parameters used inconjunction 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" valuesof the vector p

    second argument is the concatenation of the vectors v1,...,vn

    [ k ] i f ( )

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    79/168

    April 2006 Nathan Sorensen Kedrick Black 79

    [typ,k,nv] = pvinfo(pv)

    pvinfo(pv) displays the type of parametervector ('box' or 'pol'), the number n of

    scalar parameters, and for the type 'pol',

    the number of vertices used to specify theparameter range

    t l d (PV)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    80/168

    April 2006 Nathan Sorensen Kedrick Black 80

    vertx = polydec(PV)

    Compute polytopic coordinates wrt. boxcorners

    takes an uncertain parameter vector PV

    taking values ranging in a box, and returnsthe corners or vertices of the box as

    columns of the matrix vertx

    l ff2 l( ff )

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    81/168

    April 2006 Nathan Sorensen Kedrick Black 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

    [t P] d t b( ti )

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    82/168

    April 2006 Nathan Sorensen Kedrick Black 82

    [tau,P] = quadstab(ps,options) Assess quadratic stability of parameter-dependent system

    Quadratic stability of polytopic or affine parameter-dependent systems

    [ f P] d f( ti )

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    83/168

    April 2006 Nathan Sorensen Kedrick Black 83

    [perf,P] = quadperf(ps,g,options)

    Assess quadratic Hinf performance of P-systems

    [tau Q0 Q1 ] = pdlstab(pds options)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    84/168

    April 2006 Nathan Sorensen Kedrick Black 84

    [tau,Q0,Q1,...] pdlstab(pds,options)

    Assess the robust stability of a polytopic or parameter-dependentsystem

    uses parameter-dependent Lyapunov functions to establish thestability of uncertain state-space models over some parameterrange or polytope of systems

    [d t P] d ( ti )

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    85/168

    April 2006 Nathan Sorensen Kedrick Black 85

    [drate,P] = decay(ps,options)

    Compute quadratic decay rate

    pdsimul(pds 'traj' tf 'ut' xi options)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    86/168

    April 2006 Nathan Sorensen Kedrick Black 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 p=traj(t) and u=ut(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

    R b t C t ll S th i T l

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    87/168

    April 2006 Nathan Sorensen Kedrick Black 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/ H 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 Hinfinity optimal way for loopshaping controller synthisis.

    Robust Controller Synthesis Tools

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    88/168

    April 2006 Nathan Sorensen Kedrick Black 88

    y

    cont:

    7. Ltrsyn() computes a reconstructed-state output-feedback

    controller K for LTI plant G using Kalman filtering to

    asymptotically recover the lost states.

    8. Mixsyn() is H-infinity mixed-sensitivity synthesis method for robustcontrol loopshaping design.

    9. Ncfsyn() is a normalized coprime factorization based

    parameterized controller synthesis using the Glover-McFarlane

    method for loopshaping.

    10.Mkfilter() returns a single-input, single-output analog low pass

    filter sys as an ss object.

    P AUGW(G W1 W2 W3)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    89/168

    April 2006 Nathan Sorensen Kedrick Black 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 errorsignal, control signal and output signal respectively.

    Input:

    GNominal Plant Model

    W1weight for the error signal

    W2weight for the control signal

    W3weight for the output signal

    Output:

    Paugmented plant model

    10-4

    10-2

    100

    102

    104

    106

    -80

    -60

    -40

    -20

    0

    20

    40

    60

    Singular Values

    Frequency ( rad/sec)

    SingularVa

    lues(dB)

    S = 1/(1+L)

    GAM/W1

    T=L/(1+L)

    GAM*G/W2

    EX:

    s=zpk('s'); G=(s-1)/(s+1);W1=0.1*(s+100)/(100*s+1); W2=0.1; W3=[];

    P=augw(G,W1,W2,W3);

    [K,CL,GAM]=hinfsyn(P); [K2,CL2,GAM2]=h2syn(P);

    L=G*K; S=inv(1+L); T=1-S;

    sigma(S,'k',GAM/W1,'k-.',T,'r',GAM*G/W2,'r-.')

    [gopt,h2opt,K,R,S] =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    90/168

    April 2006 Nathan Sorensen Kedrick Black 90

    hinfmix(P,r,obj,region,dkbnd,tol)

    Hinfmix() creates a suboptimal controller K(s) based on theoptimization of a mixed H2/ Hcriterion that optimizes the

    following function: subject to ||T || < gamma,||T2||2 < v. The closed-loop poles lie in some prescribed LMI region D.

    Input Parameters:

    Plmi object such as ss or tf.

    R[z2, y, u]

    Obj[gamma, v, alpha, beta]

    Regionidentifies the pole placement

    region. Default is the open LHP.

    Dkbndset bound on norm of controller

    feed through matrix DK.

    Toltolerance for the trade-off parameter

    Output Parameters:Gopt - guaranteed Hinf performance

    H2optguaranteed H2 performance

    KController K(s) coefficients

    R,Soptimal values of the LMI objects.

    [K,CL,GAM,INFO]=

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    91/168

    April 2006 Nathan Sorensen Kedrick Black 91

    [ , , , ]

    H2SYN(P,NMEAS,NCON)

    H2syn() computes a stabilizing LTI/SS controller K for a partitionedplant P(s).

    Input Parameters:

    PLTI/SS plant model

    NmeasB2 column size

    NconC2 row size

    Output Parameters:

    Kvector of Feedback Controller

    Coefficients

    CLClosed loop system matrix

    Gamthe H2 norm of the closed loop

    system

    Infostructure containing additional

    information.

    Plant Partitioning (if done by mktito(),

    nmeas and ncon can be omitted):

    B1Inputs are disturbances

    B2Inputs are control signals

    C1Outputs are errors to be minimized

    C2Outputs are inputs to control K

    [K,CL,GAM,INFO] =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    92/168

    April 2006 Nathan Sorensen Kedrick Black 92

    [ , , , ]

    hinfsyn(P,NMEAS,NCON)

    Hinfsyn() creates an optimal h-inifinity controller for a partitioned plantmatrix P.

    Input Parameters:

    PPartitioned plant matrix

    Nmeasrow size of the C2 matrix

    Nconcolumn size of the B2 matrix

    Output Parameters:

    Kcontroller coefficient vector

    CLclosed loop system matrix

    GamH-inifinity norm for the closedloop system

    Info - structure containing additional

    information

    Plant Partitioning (if done by mktito(), nmeas

    and ncon can be omitted):B1Inputs are disturbances

    B2Inputs are control signals

    C1Outputs are errors to be minimized

    C2Outputs are inputs to control K

    [K GAM]=sdhinfsyn(P NMEAS NCON)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    93/168

    April 2006 Nathan Sorensen Kedrick Black 93

    [K,GAM]=sdhinfsyn(P,NMEAS,NCON)Sdhinfsyn() synthesizes a sampled data H-infinity controller.

    Input Parameters:

    Ppartitioned system matrix

    Nmeasrow size of C2

    NConcolumn size of B2

    Output parameters:

    KH infinity controller coefficients

    GamH infinity norm cost for the system

    Plant Partitioning:B1Inputs are disturbances

    B2Inputs are control signals

    C1Outputs are errors to be minimized

    C2Outputs are inputs to control K

    Where:

    [K,CL,GAM,INFO]=

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    94/168

    April 2006 Nathan Sorensen Kedrick Black 94

    loopsyn(G,Gd,RANGE)

    Loopsyn() is an Hinfinity optimal way for loopshaping controllersynthisis.Input Parameters:

    GLTI plant

    Gddesired loop shape

    Range[Wmin,Wmax] desired loop

    shaping frequency range. (10*Wmin

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    95/168

    April 2006 Nathan Sorensen Kedrick Black 95

    [ , , ]

    ltrsyn(G,F,XI,THETA,RHO)

    Ltrsyn() computes a reconstructed-state output-feedback controller K for LTIplant G using Kalman filtering to asymptotically recover the lost states.

    Input Parameters:

    GLTI System matrix

    F - LQ full-state-feedback gain matrix

    XIplant noise intensity

    Thetasensor noise intensity

    Rhovector containing a set of recovery

    gains

    Output Parameters:Kcontroller coefficient vector

    Svlsigma plot data for recovered system

    W1 - frequencies for SVL plots

    EX:s=tf('s');G=ss(1e4/((s+1)*(s+10)*(s+100)));[A,B,C,

    D]=ssdata(G);

    F=lqr(A,B,C'*C,eye(size(B,2)));

    L=ss(A,B,F,0*F*B);

    XI=100*C'*C; THETA=eye(size(C,1));

    RHO=[1e3,1e6,1e9,1e12];W=logspace(-2,2);

    nyquist(L,'k-.');hold;

    [K,SVL,W1]=ltrsyn(G,F,XI,THETA,RHO,W);

    [K,CL,GAM,INFO]=

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    96/168

    April 2006 Nathan Sorensen Kedrick Black 96

    [ ]

    mixsyn(G,W1,W2,W3)

    Mixsyn() is H-infinity mixed-sensitivity synthesis method for robustcontrol loopshaping design.

    Input Parameters:

    GLTI system

    W1,W2,W3Weighting matricies

    associated with S(s), R(s) and T(s)

    Output Parameters:KController Coefficient vectorCLClosed Loop System Matrix

    GamHinfinity norm for the closed

    loop system

    Infostructure containing additional

    information.

    Mixsyn() creates the h-infinity controllerbased on the sensitivity function S(s)

    and the complimentatry sensitivitiy T(s)

    function according to the weighting

    matricies W1, W2, W3.;

    [K,CL,GAM,INFO]=ncfsyn(G W1 W2)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    97/168

    April 2006 Nathan Sorensen Kedrick Black 97

    ncfsyn(G,W1,W2)Ncfsyn() is a normalized coprime factorization based parameterized

    controller synthisis using the Glover-McFarlane method for loopshaping.

    Input Parameters:

    GLTI plant model

    W1,W2Pre and Post compensator

    to give Gd= W1GW2a good highfrequency and low frequency response

    Output Parameters:

    Kcontroller coefficient vector

    CLclosed loop system matrix

    GamHinfinity optimal cost

    Infostructure containing additional

    information

    10-2

    10-1

    100

    101

    102

    -100

    -80

    -60

    -40

    -20

    0

    20

    40

    60Singular Values

    Frequency ( rad/sec)

    SingularValues(dB)

    EX:

    s=zpk('s');G=(s-1)/(s+1)^2;

    W1=0.5/s;

    [K,CL,GAM]=ncfsyn(G,W1);

    sigma(G*K,'r',G*W1,'r-.',G*W1*GAM,'k-

    .',G*W1/GAM,'k-.')

    sys = mkfilter(fc ord type psbndr)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    98/168

    April 2006 Nathan Sorensen Kedrick Black 98

    sys = mkfilter(fc,ord,type,psbndr)

    Mkfilter() returns a single-input, single-output analog low pass filter

    sys as an ss object.

    Input:

    Fccutoff frequency of the filter

    Ordorder of the filter

    Typetype 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:

    SysDesigned filter

    EX:butw = mkfilter(2,4,'butterw');

    cheb = mkfilter(4,4,'cheby',0.5);

    rc = mkfilter(1,4,'rc');

    bode(butw,'-',cheb,'--',rc,'-.')

    -100

    -50

    0

    Magnitude(dB)

    10-5

    100

    0

    90

    180

    Phase(deg)

    Bode Diagram

    Frequency (rad/sec)

    -50

    0

    50

    Magnitude(dB)

    10-2

    100

    102

    -90

    -45

    0

    Phase(deg)

    Bode Diagram

    Frequency (rad/sec)

    -50

    0

    50

    Magnitude(dB)

    10-2

    100

    102

    -90

    -45

    0

    Phase(deg)

    Bode Diagram

    Frequency (rad/sec)

    -200

    -100

    0

    Magnitude(dB)

    100

    102

    -360

    -180

    0

    Phase(deg)

    Bode Diagram

    Frequency (rad/sec)

    ButterworthChebyshev

    RC filter

    Mu synthesis

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    99/168

    April 2006 Nathan Sorensen Kedrick Black 99

    Mu-synthesisMu-synthesis functions enable the synthesis of robust optimal

    controllers. Approximation tools for this type of design are shownbelow:

    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.

    [qopt,bnd] =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    100/168

    April 2006 Nathan Sorensen Kedrick Black 100

    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,VConstant 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(R+U*Q*V,BLK)

    [k clp bnd] = dksyn(p nmeas ncont)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    101/168

    April 2006 Nathan Sorensen Kedrick Black 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:

    PPartitioned plant matrix

    Nmeasrow size of the C2 matrix

    Nconcolumn size of the B2 matrix

    Output:Ksynthesized controller coefficients

    ClpClosed loop system

    Bndrobust performance bounds on

    the closed loop system

    EX:

    G = tf(1,[1 -1]);

    Wu = 0.25*tf([1/2 1],[1/32 1]);

    InputUnc = ultidyn('InputUnc',[1 1]);

    Gpert = G*(1+InputUnc*Wu);Wp = tf([1/4 0.6],[1 0.006]);

    P = [Wp; 1 ]*[1 Gpert];

    [K,clp,bnd1] = dksyn(P,1,1);

    P = [Wp; 1 ]*[1 Gpert];

    [K,clp,bnd2] = dksyn(P,1,1);

    bnd1 =0.6768

    bnd2 =0.6768

    options =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    102/168

    April 2006 Nathan Sorensen Kedrick Black 102

    p

    dkitopt('name1',value1,'name2',value2,...)

    Dkitopt() creates a dkitopt object called options with specific valuesassigned to certain properties.

    [sysout,pts] = drawmag(data)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    103/168

    April 2006 Nathan Sorensen Kedrick Black 103

    [ y p ] g( ) interactively uses the mouse in the plot window to create pts and sysout, which

    approximately fits the frequency response (magnitude) in pts

    data:Either a frequency response object that is plotted as a reference, or aconstant matrix of the form [xmin xmax ymin ymax] specifying the plot window onthe data.

    sysoutStable:minimum-phase ss object that approximately fits, in magnitude,the pts data

    ptsFrequency:response of points

    While drawmag is running, all interaction with the program is through the mouse

    and/or the keyboard

    Examples of commands

    Clicking the mouse

    Typing r

    Typing integers 09

    Typing w

    Typing p

    Typing k

    See help file for more info

    B = fitfrd(A,N)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    104/168

    April 2006 Nathan Sorensen Kedrick Black 104

    Fit D-scaling frequency response data with state-space model

    state-space object with state dimension N, where A is an frd object and N is

    a nonnegative integer The frequency response of B closely matches the D-scale frequency

    response data in A

    A must have either 1 row or 1 column, although it need not be 1-by-1

    Examplesys = tf([1 2 2],[1 2.5 1.5])*tf(1,[1 0.1]);sys = sys*tf([1 3.75 3.5],[1 2.5 13]);

    omeg = logspace(-1,1);

    sysg = frd(sys,omeg);

    bode(sysg,'r-');

    b1 = fitfrd(sysg,1);

    b3 = fitfrd(sysg,3);

    b1g = frd(b1,omeg);

    b3g = frd(b3,omeg);

    bode(sysg,'r-',b1g,'k:',b3g,'b-.')

    B = fitmagfrd(A,N)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    105/168

    April 2006 Nathan Sorensen Kedrick Black 105

    g ( ) Fit frequency response magnitude data with a stable, minimum-phase

    state-space model

    a stable, minimum-phase ss object, with state-dimension N, whosefrequency response magnitude closely matches the magnitude data in A

    A is a 1-by-1 frd object, and N is a nonnegative integer

    Examplesys = tf([1 2 2],[1 2.5 1.5])*tf(1,[1 0.1]);

    sys = sys*tf([1 3.75 3.5],[1 2.5 13]);

    omeg = logspace(-1,1);sysg = abs(frd(sys,omeg));

    bodemag(sysg,'r');

    ord = 3;

    b1 = fitmagfrd(sysg,ord);

    b1g = frd(b1,omeg);

    bodemag(sysg,'r',b1g,'k:');

    Sampled Data Systems

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    106/168

    April 2006 Nathan Sorensen Kedrick Black 106

    Sampled Data Systems

    The synthesis of robust optimal controllers with sampled data

    systems can be analyzed using the following functions.

    1. Sdhinfnorm() computes the L2 induced norm of a continuous-time LTI plant,

    sdsys, in feedback with a discrete-time controller, k, connected through an

    ideal sampler and a zero-order hold.

    2. Sdlsim() plots the time response of the hybrid feedback system. lft(p,k), is

    forced by the continuous input signal described by w and t.

    [gaml,gamu] =

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    107/168

    April 2006 Nathan Sorensen Kedrick Black 107

    sdhinfnorm(sdsys,k,delay)

    Sdhinfnorm() computes the L2 induced norm of a continuous-timeLTI plant, sdsys, in feedback with a discrete-time controller, k,

    connected through an ideal sampler and a zero-order hold.

    Input:

    Sdsysa strictly proper partitionedplant model, such that the constant

    feedback gain is be zero

    Kfeedback controller gain matrix

    Delaycontroller computational delay

    time

    Output:

    Gamu - upper bound on theinduced L2 norm of the sampled-

    data closed-loop system

    Gaml - lower bound on the

    induced L2 norm of the sampled-

    data closed-loop system

    Sdhinfnorm() Example

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    108/168

    April 2006 Nathan Sorensen Kedrick Black 108

    Sdhinfnorm() Example

    p = ss(tf(30,[1 30])*tf([1],[1 0]));k = ss(tf(4,[1 4]));

    cl = feedback(p,k);

    norm(cl,'inf')

    ans = 1

    kd = c2d(k,0.75,'zoh');

    [gu,gl] = sdhinfnorm([1; 1]*p*[1 1],-kd);

    [gu gl]

    ans = 3.7908 3.7929

    kd = c2d(k,0.2,'zoh');

    [gu,gl] = sdhinfnorm([1; 1]*p*[1 1],-kd);

    [gu gl]

    ans = 1.0044 1.0049

    sdlsim(p k w t tf x0 z0 int)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    109/168

    April 2006 Nathan Sorensen Kedrick Black 109

    sdlsim(p,k,w,t,tf,x0,z0,int)Sdlsim() plots the time response of the hybrid feedback system.

    lft(p,k), is forced by the continuous input signal described by w and t.

    Input:

    P - a continuous-time LTI system

    Ka discrete-time LTI system with aspecified sampling time

    W,Tinput forcing functions

    Tfsimulation end time

    X0 - initial state vector of p, at time t(1)

    Z0 - initial state vector of k, at time t(1)

    Int - the continuous-time integration

    step size

    Sdlsim() example cont:

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    110/168

    April 2006 Nathan Sorensen Kedrick Black 110

    Sdlsim() example cont:

    EX cont:

    M2 = [0,1,1;1,0,0;0,1,1]*blkdiag(1,1,P);

    t = [0:.001:1]';

    dist = 0.1*sin(41*t);

    u = ones(size(t));

    [y3,meas,act] = sdlsim(M2,C,[u dist],t,1);plot(y3{:},'-',t,dist,'b--',t,u,'g-.')

    xlabel('Time: seconds')

    title('Step response: disturbance (dashed) & output

    (solid)')

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    1.4

    Time: seconds

    Step response: disturbance (dashed) & output (solid)

    EX:

    P = tf(1,[1, 1e-5,0]);

    T = 1.0/20;

    C = ss([-1.5 T/4; -2/T -.5],[ .5 2;1/T

    1/T],...

    [-1/T^2 -1.5/T], [1/T^2 0],T);Pd = c2d(P,T,'zoh');

    systemnames = 'Pd C';

    inputvar = '[ref]';

    outputvar = '[Pd]';

    input_to_Pd = '[C]';

    input_to_C = '[ref ; Pd]';

    sysoutname = 'dclp';

    cleanupsysic = 'yes';

    sysic;

    Gain Scheduling

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    111/168

    April 2006 Nathan Sorensen Kedrick Black 111

    Gain Scheduling

    Gain scheduling is a useful tool for controller design. The RobustControl Toolbox offers one function to optimally achieve this.

    1. Hinfigs() synthesizes gain-scheduled H controllers.

    [gopt,pdK,R,S] =

    hinfgs(pdP r gmin tol tolred)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    112/168

    April 2006 Nathan Sorensen Kedrick Black 112

    hinfgs(pdP,r,gmin,tol,tolred)

    Synthesis of gain-scheduled Hcontrollers returns the optimal closed-loop quadratic

    performance gopt and a polytopic description ofthe gain-scheduled controller pdK

    To test if a closed-loop quadratic performance is achievable, set the third input gmin to

    The arguments tol and tolred control therequired relative accuracy on gopt and thethreshold for order reduction

    also returns solutions R, S of the characteristicLMI system

    Synthesis Supporting Utilities

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    113/168

    April 2006 Nathan Sorensen Kedrick Black 113

    Synthesis Supporting Utilities

    The following functions are useful in setting up systems forcontroller synthesis:

    1. Bilin() gives the multivariable bilinear transform of frequency (s or z).2. Mktito() adds TITO (two-input-two-output) partitioning to LTI system SYS,

    assigning OutputGroup and InputGroup properties.

    3. Sectf() gives the state-space sector bilinear transformation.

    4. Skewdec() forms an m-by-m skew-symmetric matrix.

    5. Symdec() forms an m-by-m symmetric matrix.

    GT = bilin(G,VERS,METHOD,AUG)M lti i bl bili t f f f ( )

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    114/168

    April 2006 Nathan Sorensen Kedrick Black 114

    Multivariable bilinear transform of frequency (s or z)

    bilin computes the effect on a system of the frequency-variable substitution

    The variable VERS denotes the transformation direction: VERS= 1, forwardtransform or VERS=-1, reverse transform

    computes several state-space bilinear transformations such as backward

    rectangular, etc., based on the METHOD you select

    SYS=mktito(SYS NMEAS NCONT)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    115/168

    April 2006 Nathan Sorensen Kedrick Black 115

    SYS mktito(SYS,NMEAS,NCONT)

    Plant Partitioning:B1Inputs are disturbances

    B2Inputs are control signals

    C1Outputs are errors to be minimized

    C2Outputs are inputs to control K

    Mktito() adds TITO (two-input-two-output) partitioning to LTI system SYS,

    assigning OutputGroup and InputGroup properties.

    EX:P=rss(2,4,5); P=mktito(P,2,2);

    disp(P.OutputGroup);

    disp(P.InputGroup);Y1: [1 2]

    Y2: [3 4]

    U1: [1 2 3]

    U2: [4 5]

    [G T] = sectf(F SECF SECG)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    116/168

    April 2006 Nathan Sorensen Kedrick Black 116

    [G,T] sectf(F,SECF,SECG)

    State-space sector bilinear transformation computes a linear fractional transform T such that the system lft(F,K) is in

    sector SECF if and only if the system lft(G,K) is in sector SECG where

    G=lft(T,F,NU,NY) where NU and NY are the dimensions of uT2 and yT2,

    respectively

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    117/168

    x = symdec(m n)

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    118/168

    April 2006 Nathan Sorensen Kedrick Black 118

    x symdec(m,n)Symdec() forms an m-by-m symmetric matrix of the form:

    NOTE: This function is useful to define symmetric matrix variables. n is the

    number of decision variables.

    LMIs in the Robust Control Toolbox

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    119/168

    April 2006 Nathan Sorensen Kedrick Black 119

    LMIs in the Robust Control Toolbox

    The Robust Control Toolbox LMI functionality serves twopurposes:

    Provide state-of-the-art tools for the LMI-based analysis anddesign of robust control systems

    Offer a flexible and user-friendly environment to specify andsolve general LMI problems (the LMI Lab)

    Examples of LMI-based analysis and design tools include:

    Functions to analyze the robust stability and performance ofuncertain systems with varying parameters (popov, quadstab,quadperf ...)

    Functions to design robust control with a mix of H2, H, andpole placement objectives (h2hinfsyn)

    Functions for synthesizing robust gain-scheduled Hcontrollers (hinfgs)

    Linear Matrix Inequalities

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    120/168

    April 2006 Nathan Sorensen Kedrick Black 120

    Linear Matrix Inequalities

    A linear matrix inequality (LMI) is any constraint of the form

    where x = (x1, . . . , xN) is a vector of unknown scalars (the decision or

    optimization variables) A0, . . . , AN are given symmetric matrices < 0 stands

    for "negative definite," i.e., the largest eigenvalue of A(x) is negative

    Note that the constraints A(x) > 0 and A(x) < B(x) are special cases of (1-1)

    since they can be rewritten as -A(x) < 0 and A(x) - B(x) < 0, respectively.

    Specifying/Modifying LMI Systems

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    121/168

    April 2006 Nathan Sorensen Kedrick Black 121

    LMI Systems can be specified and modified in various ways briefly

    outlined below

    The specification of an LMI system involves two steps:

    1. Declare the dimensions and structure of each matrix variable X1, . . . , XK.

    2. Describe the term content of each LMI.

    This process creates the so-called internal representation of the LMI system. This

    computer description of the problem is used by the LMI solvers and in allsubsequent manipulations of the LMI system. It is stored as a single vector called

    LMISYS.

    There are two ways of generating the internal description of a given LMI system:

    1. by a sequence of lmivar/lmiterm commands that build it incrementally

    2. via the LMI Editor lmiedit where LMIs can be specified directly as symbolic matrixexpressions. Though somewhat less flexible and powerful than the command-

    based description, the LMI Editor is more straightforward to use, hence

    particularly well-suited for beginners.

    Specification Functions

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    122/168

    April 2006 Nathan Sorensen Kedrick Black 122

    Specification FunctionsThe following functions are used for the LMI Specificiation:

    1. Lmiedit is a graphical user interface for the symbolic specification of

    LMI problems.

    2. Setlmis() is a command to be used to initialize or add to an internal

    representation for an lmi.

    3. Lmivar() defines a new matrix variable X in the LMI system currently

    described.

    4. Lmiterm() specifies the term content of an LMI one term at a time.

    5. Newlmi adds a new LMI to the LMI system currently described and

    returns an identifier tag for this LMI.

    6. Getlmis returns the internal representation of a lmi system declaredusing lmivars() and lmiterm().

    lmiedit

  • 8/12/2019 Matlab Robust Control Toolbox (1)

    123/168

    April 2006 Nathan Sorensen Kedrick Black 123

    lmieditLmiedit is a graphical user interface for the symbolic specification

    of LMI problems.Instructions: