[K,CL,GAM,INFO]=loopsyn(G,Gd) [K,CL,GAM,INFO]=loopsyn(G,Gd,RANGE)
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,
$$\underset{\xaf}{\sigma}\left(G(j\omega )K(j\omega )\right)\ge \frac{1}{\gamma}\text{}\underset{\xaf}{\sigma}\left({G}_{d}(j\omega )\right)\text{forall}\omega {\omega}_{0}$$ | (1) |
$$\underset{\xaf}{\sigma}\left(G(j\omega )K(j\omega )\right)\le \gamma \text{}\underset{\xaf}{\sigma}\left({G}_{d}(j\omega )\right)\text{forall}\omega {\omega}_{0}$$ | (2) |
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 |
Output Argument | Description |
---|---|
K | LTI controller |
CL= G*K/(I+GK) | LTI closed-loop system |
GAM | Loop-shaping accuracy ( |
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 = WK_{s}. |
INFO.range | {ω_{min},ω_{max}} cell-array containing the approximate frequency range over which loop-shaping could be accurately achieved to with accuracy |
The plant G must be stabilizable and detectable, must have at least as many inputs as outputs, and must be full rank; i.e,
size(G,2)
≥ size(G,1)
rank(freqresp(G,w)) = size(G,1)
for some frequency w.
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
.
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 Gshift
ed 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}}
[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.