Robust Control Toolbox™ Previous page   Next Page 
loopsyn
 Provide feedback about this page

Compute controller for plant G to optimally match target loop shape Gd

Syntax

Description

loopsyn is an H optimal method for loopshaping control synthesis. It computes a stabilizing Hcontroller K for plant G to shape the sigma plot of the loop transfer function GK to have desired loop shape Gd with accuracy gamma=GAM in the sense that if 0 is the 0db crossover frequency of the sigma plot of Gd(j), then, roughly,

     (5-16)  

     (5-17)  

The STRUCT array INFO returns additional design information, including a MIMO stable min-phase shaping pre-filter W, the shaped plant Gs = GW, the controller for the shaped plant Ks=WK, as well as the frequency range {min,max} over which the loop shaping is achieved

Input Arguments:

G
LTI Plant
Gd
Desired loop-shape (LTI Model)
RANGE
(optional, default {0,Inf}) Desired frequency range for loop-shaping, a 1-by-2 cell array {min,max}; max should be at least ten times min
.

Output Arguments:

K
LTI controller
CL= G*K/(I+GK)
LTI closed-loop system
GAM
loop-shaping accuracy (GAM 1, with GAM=1 being perfect fit
INFO
additional output information
INFO.W
LTI pre-filter W satisfying sigma(Gd)=sigma(GW) for all ;
W is always minimum-phase
INFO.Gs
LTI shaped plant: Gs = GW
INFO.Ks
LTI controller for the shaped plant: Ks=WK
INFO.range
{min,max} cell-array containing the approximate frequency range over which loop-shaping could be accurately achieved to with accuracy G. The output INFO.range is either the same as or a subset of the input range

Algorithm

Using the GCD formula of Le and Safonov [1], loopsyn first computes a stable-minimum-phase loop-shaping, squaring-down prefilter W such that the shaped plant Gs = GW is square, and the desired shape Gd is achieved with good accuracy in the frequency range {min,max} by the shaped plant; i.e.,

Then, loopsyn uses the Glover-McFarlane [2] normalized-coprime-factor control synthesis theory to compute an optimal "loop-shaping" controller for the shaped plant via Ks=ncfsyn(Gs), and returns K=W*Ks.

If the plant G is a continuous time LTI and

  1. G has a full-rank D-matrix, and
  2. no finite zeros on the j-axis, and
  3. {min,max}=[0,],

then GW theoretically achieves a perfect accuracy fit sigma(Gd) = sigma(GW) for all frequency . Otherwise, loopsyn uses a bilinear pole-shifting bilinear transform [3] of the form

which results in a perfect fit for transformed Gshifted and an approximate fit over the smaller frequency range [min,max] for the original unshifted G provided that max >> min. For best results, you should choose max to be at least 100 times greater than min. In some cases, the computation of the optimal W for Gshifted may be singular or ill-conditioned for the range [min,max], as when Gshifted has undamped zeros or, in the continuous-time case only, Gshifted has a D-matrix that is rank-deficient); in such cases, loopsyn automatically reduces the frequency range further, and returns the reduced range [min,max] as a cell array in the output INFO.range={min,max}

Example

The following code generates the optimal loopsyn loopshaping control for the case of a 5-state, 4-output, 5-input plant with a full-rank non-minimum phase zero at s=+10. The result in shown in Figure 5-11.

This figure shows that the LOOPSYN controller K optimally fits

In the above example, GAM = 2.0423 = 6.2026 dB.

Figure 5-11: LOOPSYN controller

The loopsyn controller K optimally fits sigma(G*K). As shown in Figure 5-11, it is sandwiched between sigma(Gd/GAM) and sigma(Gd*GAM) in accordance with the inequalities in Equation 5-16 and Equation 5-17. In the this example, GAM = 2.0423 = 6.2026 db.

Limitations

The plant G must be stabilizable and detectable, must have at least as many inputs as outputs, and must be full rank; i.e,

The order of the controller K can be large. Generically, when Gd is given as a SISO LTI, then the order NK of the controller K satisfies

where

Model reduction can help reduce the order of K -- see reduce and ncfmr.

References

[1]  Le, V.X., and M.G. Safonov. Rational matrix GCD's and the design of squaring-down compensators--a state space theory. IEEE Trans. Autom.Control, AC-36(3):384-392, March 1992.

[2]  Glover, K., and D. McFarlane. Robust stabilization of normalized coprime factor plant descriptions with H-bounded uncertainty. IEEE Trans. Autom. Control, AC-34(8):821-830, August 1992.

[3]  Chiang, R.Y., and M.G. Safonov. H synthesis using a bilinear pole-shifting transform. AIAA J. Guidance, Control and Dynamics, 15(5):1111-1115, September-October 1992.

See Also
loopsyn_demo  A demo of this function

mixsyn      H mixed-sensitivity controller synthesis

ncfsyn      H - normailized coprime controller synthesis

ltiarray2uss

Purpose

Computes uncertain system bounding given LTI ss array.

Syntax

Description

The command ltiarray2uss, calculates an uncertain system usys with nominal value P, and whose range of behavior includes the given array of systems, Parray.

usys = ltiarray2uss(P,Parray,ord), usys is formulated as an input multiplicative uncertainty model,
usys = P*(I + wt*ultidyn('IMult',[size(P,2) size(P,2)])), where wt is a stable scalar system, whose magnitude overbounds the relative difference, (P - Parray)/P. The state order of the weighting function used to bound the multiplicative difference between P and Parray is ord. Both P and Parray must be in the classes ss/tf/zpk/frd. If P is an frd then usys will be a ufrd object, otherwise usys will be a uss object. The ultidyn atom is named based on the variable name of Parray in the calling workspace.

[usys,wt] = ltiarray2uss(P,Parray,ord), returns the weight wt used to bound the infinity norm of ((P - Parray)/P).

[usys,wt] = ltiarray2uss(P,Parray,ord,'OutputMult'), uses multiplicative uncertainty at the plant output (as opposed to input multiplicative uncertainty). The formula for usys is
usys = (I + wt*ultidyn('Name',[size(P,1) size(P,1)])*P).

[usys,wt] = ltiarray2uss(P,Parray,ord,'Additive'), uses additive uncertainty.
usys = P + wt*ultidyn('Name',[size(P,1) size(P,2)]). wt is a frequency domain overbound of the infinity norm of (Parray - P).

[usys,wt] = ltiarray2uss(P,Parray,ord,'InputMult'), uses multiplicative uncertainty at the plant input (this is the default). The formula for usys is usys = P*(I + wt*ultidyn('Name',[size(P,2) size(P,2)])).

[usys,wt,diffdata] = ltiarray2uss(P,Parray,ord,type) returns the norm of the difference (absolute difference for additive, and relative difference for multiplicative uncertainty) between the nominal model P and Parray. wt satisfies diffdata(w_i) < |wt(w_i)| at all frequency points.

Example

See the Robust Control Toolbox™ demo entitled "First-cut Robust Design" for a more detailed example of how to use ltiarray2uss.

Consider a third order transfer function with an uncertain gain, filter time constant and a lightly damped flexible mode. This model is used to represent a physical system from frequency response data is acquired.

See Also
fitmagfrd   Fit frequency response magnitude data


 Provide feedback about this page 

Previous page loopsens ltrsyn Next page

 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS