loopsyn
H_{∞} optimal
controller synthesis for LTI plant
Syntax
[K,CL,GAM,INFO]=loopsyn(G,Gd)
[K,CL,GAM,INFO]=loopsyn(G,Gd,RANGE)
Description
loopsyn is an H_{∞} optimal
method for loopshaping control synthesis. It computes a stabilizing H_{∞}controller K for
plant G to shape the sigma plot
of the loop transfer function GK to have desired
loop shape G_{d} with accuracy γ = GAM in
the sense that if ω_{0} is
the 0 db crossover frequency of the sigma plot
of G_{d}(jω),
then, roughly,
| (2-14) |
| (2-15) |
The STRUCT array INFO returns additional
design information, including a MIMO stable min-phase shaping pre-filter W,
the shaped plant G_{s} = GW,
the controller for the shaped plant K_{s} = WK,
as well as the frequency range {ω_{min},ω_{max}}
over which the loop shaping is achieved
Input Argument | Description |
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 Argument | Description |
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 σ(G_{d})
= σ (GW) for all ω; W is
always minimum-phase. |
INFO.Gs | LTI shaped plant: G_{s} = GW. |
INFO.Ks | LTI controller for the shaped plant: K_{s} = 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. |
Examples
expand all
Calculate the optimal loopsyn loop shaping control for a 5-state, 4-output, 5-input plant with a full-rank nonmininum-phase zero at s = 10.
rng(0,'twister');
s = tf('s');
w0 = 5;
Gd = 5/s; % desired bandwidth w0=5
G =((s-10)/(s+100))*rss(3,4,5); % 4-by-5 non-min-phase plant
[K,CL,GAM,INFO] = loopsyn(G,Gd);
sigma(G*K,'r',Gd*GAM,'k-.',Gd/GAM,'k-.',{.1,100}) % plot result
legend('G*K','Gd*GAM','Gd/GAM')
This plot shows that the controller K optimally fits sigma(G*K). The controller falls between sigma(Gd)+ GAM and sigma(Gd)- GAM (expressed in dB). In 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 G_{d} is
given as a SISO LTI, then the order N_{K} of
the controller K satisfies
N_{K} = N_{Gs} + N_{W}
= N_{y}N_{Gd} + N_{RHP} + N_{W}
= N_{y}N_{Gd} + N_{RHP} + N_{G}
where
N_{y} denotes
the number of outputs of the plant G.
N_{RHP} denotes
the total number of nonstable poles and nonminimum-phase zeros of
the plant G, including those on the stability boundary
and at infinity.
N_{G}, N_{Gs}, N_{Gd} and N_{W} denote
the respective orders of G, G_{s},
G_{d} and W.
Model reduction can help reduce the order of K —
see reduce and ncfmr.
More About
expand all
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 G_{s} = GW is
square, and the desired shape G_{d} is
achieved with good accuracy in the frequency range {ω_{min},ω_{max}}
by the shaped plant; i.e.,
σ(G_{d})
≈ σ(G_{s})
for all ω ∊ {ω_{min},ω_{max}}.
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
G has a full-rank
D-matrix, and
no finite zeros on the jω-axis,
and
{ω_{min},ω_{max}}=[0,∞],
then GW theoretically achieves a perfect
accuracy fit σ(G_{d})
= σ(GW) for all frequency ω.
Otherwise, loopsyn uses a bilinear pole-shifting
bilinear transform [3] of the form
Gshifted=bilin(G,-1,'S_Tust',[ω_{min},ω_{max}]),
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 ω_{ma}_{x} >> ω_{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}}
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
mixsyn | ncfsyn