| Robust Control Toolbox | |
| Provide feedback about this page |
Synthesis of robust controller via µ-synthesis D-K iteration
Syntax
k = dksyn(p,nmeas,ncont) [k,clp,bnd] = dksyn(p,nmeas,ncont) [k,clp,bnd] = dksyn(p,nmeas,ncont,opt) [k,clp,bnd,dkinfo] = dksyn(p,nmeas,ncont,prevdkinfo,opt) [k,clp,bnd,dkinfo] = dksyn(p)
Description
dksyn
synthesizes a robust controller via D-K iteration. The D-K iteration procedure is an approximation to µ-synthesis control design. The objective of µ-synthesis is to minimize the structure singular value µ of the corresponding robust performance problem associated with the uncertain system p. The uncertain system p is an open-loop interconnection containing known components including the nominal plant model, uncertain parameters, ucomplex, and unmodeled LTI dynamics, ultidyn, and performance and uncertainty weighting functions. You use weighting functions to include magnitude and frequency shaping information in the optimization. The control objective is to synthesize a stabilizing controller k that minimizes the robust performance µ value, which corresponds to bnd.
The D-K iteration procedure involves a sequence of minimizations, first over the controller variable K (holding the D variable associated with the scaled µ upper bound fixed), and then over the D variable (holding the controller K variable fixed). The D-K iteration procedure is not guaranteed to converge to the minimum µ value, but often works well in practice. dksyn automates the D-K iteration procedure and the options object dkitopt allows you to customize its behavior.
[k,clp,bnd] = dksyn(p,nmeas,ncont) synthesizes a robust controller k for the uncertain open-loop plant model p via the D-K iteration. p is a uss and has nmeas measurement outputs and ncont control inputs. It is assumed that the measurement outputs and control inputs correspond to the last nmeas outputs and ncont inputs. k is the controller, clp is the closed-loop interconnection and bnd is the robust performance bound for the uncertain closed-loop system clp. p, k, clp, and bnd are related as follows:
[k,clp,bnd] = dksyn(p,nmeas,ncont,opt) specifies options described in dkitopt. opt is created via the command opt=dkitopt. See dkitopt for more details.
[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.
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:.
k = dksyn(p) is a valid calling argument provided p is a uss object and has two-input/two-output partitioning as defined by mktito.
Example
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
.
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.
The uncertain plant model Gpert represents the model of the physical system to be controlled.
The robust stability objective is to synthesize a stabilizing LTI controller for all the plant models parameterized by the uncertain plant model, Gpert. The control interconnection structure is shown in the following figure.
The goal is to synthesize a controller that stabilizes and achieves the closed-loop performance objectives for all possible plant models in Gpert. The performance objective is defined as a weighted sensitivity minimization problem. See the preceding figure.
The sensitivity function, S, is defined as
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.
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.6860 P = [Wp; 1 ]*[1 Gpert]; [K,clp,bnd] = dksyn(P,1,1); bnd bnd = 0.6860
The controller K achieves a robust performance µ value bnd of 0.685. 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.
[rpnorm,wcf,wcu,report] = robustperf(clp); disp(report{1}) Uncertain system,clp, achieves robust performance. The analysis showedclpcan tolerate 146% of the model uncertainty and achieve the performance and stability objectives. A model uncertainty exists of size 146% that results in a peak gain performance of 0.686 at 0.569 rad/s.
Algorithm
The D-K iteration procedure is an approximation to µ-synthesis control design. It involves a sequence of minimizations, first over the controller variable K (holding the D variable associated with the scaled µ upper bound fixed), and then over the D variable (holding the controller K variable fixed). The D-K iteration procedure is not guaranteed to converge to the minimum µ value, but often works well in practice.
dksyn automates the D-K iteration procedure. Internally, the algorithm works with the generalized scaled plant model P, which is extracted from a uss object using the command lftdata.
The following is a list of what occurs during a single, complete step of the D-K iteration.
(In the first iteration, this step is skipped.) The rational
is absorbed into the open-loop interconnection for the next controller synthesis. Using either the previous frequency-dependent D's or the just-fit rational
, an estimate of an appropriate value for the H
norm is made. This is simply a conservative value of the scaled closed-loop H
norm, using the most recent controller and either a frequency sweep (using the frequency-dependent D's) or a state-space calculation (with the rational D's).
synthesis on the scaled open-loop interconnection. If you set the DisplayWhileAutoIter field in dkitopt to 'on', the following information is displayed:
-iteration is displayed.
synthesis with a set of modified
parameters if you set the AutoIter field in dkitopt to 'off'. This is
convenient if, for instance, the bisection tolerance was too large, or if
maximum gamma value was too small.
Subsequent iterations proceed along the same lines without the need to reenter the iteration number. A summary at the end of each iteration is updated to reflect data from all previous iterations. This often provides valuable information about the progress of the robust controller synthesis procedure.
Interactive Fitting of D-Scalings
Setting the AutoIter field in dkitopt to 'off' requires that you interactively fit the D-scales each iteration. During step 2 of the D-K iteration procedure, you are prompted to enter your choice of options for fitting the D-scaling data. You press return after, the following is a list of your options.
Enter Choice (return for list):
Choices:
nd Move to Next D-Scaling
nb Move to Next D-Block
i Increment Fit Order
d Decrement Fit Order
apf Auto-PreFit
mx 3 Change Max-Order to 3
at 1.01 Change Auto-PreFit tol to 1.01
0 Fit with zeroth order
2 Fit with second order
n Fit with n'th order
e Exit with Current Fittings
s See Status
nd and nb allow you to move from one D-scale data to another. nd moves to the next scaling, whereas nb moves to the next scaling block. For scalar D-scalings, these are identical operations, but for problems with full D-scalings, (perturbations of the form
I) they are different. In the (1,2) subplot window, the title displays the D-scaling block number, the row/column of the scaling that is currently being fitted, and the order of the current fit (with d for data when no fit exists).
i and d.
apf automatically fits each D-scaling data. The default maximum state order of individual D-scaling is 5. The mx variable allows you to change the maximum D-scaling state order used in the automatic prefitting routine. mx must be a positive, nonzero integer. at allows you to define how close the rational, scaled µ upper bound is to approximate the actual µ upper bound in a norm sense. Setting at to 1 would require an exact fit of the D-scale data, and is not allowed. Allowable values for at are greater than 1. This setting plays a role (mildly unpredictable, unfortunately) in determining where in the (D,K) space the D-K iteration converges.
e exits the D-scale fitting to continue the D-K iteration.
s displays a status of the current and fits.
Limitations
There are two shortcomings of the D-K iteration control 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.
Reference
See Also
dkitopt Create a dksyn options object
h2syn Synthesize a H2 optimal controller
hinfsyn Synthesize a H
optimal controller
loopmargin Comprehensive analysis of feedback loop
mktito Create a two-input/two-output LTI partition
mussv Calculate bounds on the Structured Singular Value (µ)
robuststab Calculate stability margins of uncertain systems
robustperf Calculate performance margins of uncertain systems
wcgain Calculate worst-case gain of a system
wcsens Calculate worst-case sensitivities for feedback loop
wcmargin Calculate worst-case margins for feedback loop
| Provide feedback about this page |
![]() | dkitopt | dmplot | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |