Documentation |
Robust controller design using µ-synthesis
[k,clp,bnd] = dksyn(p,nmeas,ncont) [k,clp,bnd] = dksyn(p,nmeas,ncont,opt) [k,clp,bnd,dkinfo] = dksyn(p,nmeas,ncont,...) [k,clp,bnd,dkinfo] = dksyn(p,nmeas,ncont,prevdkinfo,opt) [...] = dksyn(p)
[k,clp,bnd] = dksyn(p,nmeas,ncont) synthesizes a robust controller k for the uncertain open-loop plant model p via the D-K or D-G-K algorithm for µ-synthesis. p is an uncertain state-space uss model. The last nmeas outputs and ncont inputs of p are assumed to be the measurement and control channels. k is the controller, clp is the closed-loop model and bnd is the robust closed-loop performance bound. p, k, clp, and bnd are related as follows:
clp = lft(p,k); bnd1 = robustperf(clp); bnd = 1/bnd.LowerBound
[k,clp,bnd] = dksyn(p,nmeas,ncont,opt) specifies user-defined options opt for the D-K or D-K-G algorithm. Use dksynOptions to create opt.
[k,clp,bnd,dkinfo] = dksyn(p,nmeas,ncont,...) returns a log of the algorithm execution in dkinfo. dkinfo is an N-by-1 cell array where N is the total number of iterations performed. The ith cell contains a structure with the following fields:
Field | Description |
---|---|
K | Controller at ith iteration, a ss object |
Bnds | Robust performance bound on the closed-loop system (double) |
DL | Left D-scale, an ss object |
DR | Right D-scale, an ss object |
GM | Offset G-scale, an ss object |
GR | Right G-scale, an ss object |
GFC | Center G-scale, an ss object |
MussvBnds | Upper and lower µ bounds, an frd object |
MussvInfo | Structure returned from mussv at each iteration. |
[k,clp,bnd,dkinfo] = dksyn(p,nmeas,ncont,prevdkinfo,opt) allows you to use information from a previous dksyn iteration. prevdkinfo is a structure from a previous attempt at designing a robust controller using dksyn. prevdkinfo is used when the dksyn starting iteration is not 1 (opt.StartingIterationNumber = 1) to determine the correct D-scalings to initiate the iteration procedure.
[...] = dksyn(p) takes p as a uss object that has two-input/two-output partitioning as defined by mktito.
The following statements create a robust performance control design for an unstable, uncertain single-input/single-output plant model. The nominal plant model, G, is an unstable first order system $$\frac{s}{s-1}$$.
G = tf(1,[1 -1]);
The model itself is uncertain. At low frequency, below 2 rad/s, it can vary up to 25% from its nominal value. Around 2 rad/s the percentage variation starts to increase and reaches 400% at approximately 32 rad/s. The percentage model uncertainty is represented by the weight Wu which corresponds to the frequency variation of the model uncertainty and the uncertain LTI dynamic object InputUnc.
Wu = 0.25*tf([1/2 1],[1/32 1]); InputUnc = ultidyn('InputUnc',[1 1]);
The uncertain plant model Gpert represents the model of the physical system to be controlled.
Gpert = G*(1+InputUnc*Wu);
The robust stability objective is to synthesize a stabilizing LTI controller for all the plant models parameterized by the uncertain plant model, Gpert. The performance objective is defined as a weighted sensitivity minimization problem. The control interconnection structure is shown in the following figure.
The sensitivity function, S, is defined as
$$S=\frac{1}{1+PK}$$
where P is the plant model and K is the controller. A weighted sensitivity minimization problem selects a weight Wp, which corresponds to the inverse of the desired sensitivity function of the closed-loop system as a function of frequency. Hence the product of the sensitivity weight Wp and actual closed-loop sensitivity function is less than 1 across all frequencies. The sensitivity weight Wp has a gain of 100 at low frequency, begins to decrease at 0.006 rad/s, and reaches a minimum magnitude of 0.25 after 2.4 rad/s.
Wp = tf([1/4 0.6],[1 0.006]);
The defined sensitivity weight Wp implies that the desired disturbance rejection should be at least 100:1 disturbance rejection at DC, rise slowly between 0.006 and 2.4 rad/s, and allow the disturbance rejection to increase above the open-loop level, 0.25, at high frequency.
When the plant model is uncertain, the closed-loop performance objective is to achieve the desired sensitivity function for all plant models defined by the uncertain plant model, Gpert. The performance objective for an uncertain system is a robust performance objective. A block diagram of this uncertain closed-loop system illustrating the performance objective (closed-loop transfer function from d→e) is shown.
From the definition of the robust performance control objective, the weighted, uncertain control design interconnection model, which includes the robustness and performance objectives, can be constructed and is denoted by P. The robustness and performance weights are selected such that if the robust performance structure singular value, bnd, of the closed-loop uncertain system, clp, is less than 1 then the performance objectives have been achieved for all the plant models in the model set.
You can form the uncertain transfer matrix P from [d; u] to [e; y] using the following commands.
P = [Wp; 1 ]*[1 Gpert]; [K,clp,bnd] = dksyn(P,1,1); bnd
bnd = 0.6819
The controller K achieves a robust performance µ value bnd of 0.6819. Therefore you have achieved the robust performance objectives for the given problem.
You can use the robustperf command to analyze the closed-loop robust performance of clp.
[rpmarg,rpmargunc,report,info] = robustperf(clp);
Enter disp(report) to display the report.
There are two shortcomings of the D-K iteration control design procedure:
Calculation of the structured singular value µΔ(·) is approximated by its upper bound. This is not a serious problem because the value of µ and its upper bound are often close.
The D-K iteration is not guaranteed to converge to a global, or even local minimum. This is a serious problem, and represents the biggest limitation of the design procedure.
In spite of these drawbacks, the D-K iteration control design technique appears to work well on many engineering problems. It has been applied to a number of real-world applications with success. These applications include vibration suppression for flexible structures, flight control, chemical process control problems, and acoustic reverberation suppression in enclosures.
[1] Balas, G.J., and J.C. Doyle, "Robust control of flexible modes in the controller crossover region," AIAA Journal of Guidance, Dynamics and Control, Vol. 17, no. 2, March-April, 1994, p. 370-377.
[2] Balas, G.J., A.K. Packard, and J.T. Harduvel, "Application of µ-synthesis techniques to momentum management and attitude control of the space station," AIAA Guidance, Navigation and Control Conference, New Orleans, August 1991.
[3] Doyle, J.C., K. Lenz, and A. Packard, "Design examples using µ-synthesis: Space shuttle lateral axis FCS during reentry," NATO ASI Series, Modelling, Robustness, and Sensitivity Reduction in Control Systems, vol. 34, Springer-Verlag, Berlin 1987.
[4] Packard, A., J. Doyle, and G. Balas, "Linear, multivariable robust control with a µ perspective," ASME Journal of Dynamic Systems, Measurement and Control, 50th Anniversary Issue, Vol. 115, no. 2b, June 1993, p. 310-319.
[5] Stein, G., and J. Doyle, "Beyond singular values and loopshapes," AIAA Journal of Guidance and Control, Vol. 14, No. 1, January, 1991, p. 5-16.
dksynOptions | h2syn | hinfsyn | mktito | mussv | robustperf | robuststab | wcgain | wcmargin | wcsens