LQG loop transfer-function recovery (LTR) control synthesis
[K,SVL,W1] = ltrsyn(G,F,XI,THETA,RHO) [K,SVL,W1] = ltrsyn(G,F,XI,THETA,RHO,W) [K,SVL,W1] = ltrsyn(G,F,XI,THETA,RHO,OPT) [K,SVL,W1] = ltrsyn(G,F,XI,THETA,RHO,W,OPT)
[K,SVL,W1] = ltrsyn(G,F,XI,TH,RHO)
computes a reconstructed-state output-feedback controller K for LTI
plant G
so that K*G
asymptotically
recovers plant-input full-state feedback loop transfer function L(s)
= F(Is–A)^{–1}B+D; that
is, at any frequency w>0
, max(sigma(K*G-L,
w))
→0 as ρ→ ∞, where L
= ss(A,B,F,D)
is
the LTI full-state feedback loop transfer function.
[K,SVL,W1] = ltrsyn(G,F1,Q,R,RHO,'OUTPUT')
computes the solution to the `dual' problem of filter loop recovery
for LTI plant G
where F
is a
Kalman filter gain matrix. In this case, the recovery is at the plant
output, and max(sigma(G*K-L, w))
→0 as ρ→∞,
where L1
denotes the LTI filter loop feedback loop
transfer function L1
= ss(A,F,C,D)
.
Only the LTI controller K
for the final value RHO(end)
is
returned.
Inputs | |
---|---|
G | LTI plant |
F | LQ full-state-feedback gain matrix |
XI | plant noise intensity, or, if |
THETA | sensor noise intensity or, if |
RHO | vector containing a set of recovery gains |
W | (optional) vector of frequencies (to be used for plots);
if input |
Outputs | |
---|---|
K | K(s) — LTI
LTR (loop-transfer-recovery) output-feedback, for the last element
of |
SVL | sigma plot data for the recovered loop transfer function
if |
W1 | frequencies for SVL plots, same as |
s=tf('s');G=ss(1e4/((s+1)*(s+10)*(s+100)));[A,B,C,D]=ssdata(G); F=lqr(A,B,C'*C,eye(size(B,2))); L=ss(A,B,F,0*F*B); XI=100*C'*C; THETA=eye(size(C,1)); RHO=[1e3,1e6,1e9,1e12];W=logspace(-2,2); nyquist(L,'k-.');hold; [K,SVL,W1]=ltrsyn(G,F,XI,THETA,RHO,W);
See also ltrdemo
The ltrsyn
procedure may fail for non-minimum
phase plants. For full-state LTR (default OPT='
INPUT
'),
the plant should not have fewer outputs than inputs. Conversely for
filter LTR (when OPT='
OUTPUT
'),
the plant should not have fewer inputs than outputs. The plant must
be strictly proper, i.e., the D-matrix of the plant
should be all zeros. ltrsyn
is only for continuous
time plants (Ts==0
)
For each value in the vector RHO
, [K,SVL,W1]
= ltrsyn(G,F,XI,THETA,RHO)
computes the full-state-feedback
(default OPT='
INPUT
'
)
LTR controller
$$K(s)=\left[{K}_{c}{(Is-A+B{K}_{c}+{K}_{f}C-{K}_{f}D{K}_{c})}^{-1}{K}_{f}\right]$$
where K_{c} = F
and K_{f} = lqr(A',C',XI+RHO(i)*B*B',THETA)
.
The “fictitious noise” term RHO(i)*B*B'
results
in loop-transfer recovery as RHO(i)
→ ∞.
The Kalman filter gain is $${K}_{f}=\sum {C}^{T}{\Theta}^{-1}$$ where
Σ satisfies the Kalman filter Riccati equation $$0=\sum {A}^{T}+A\sum -\sum {C}^{T}{\Theta}^{-1}C\sum +\Xi +\rho B{B}^{T}$$. See [1] for
further details.
Similarly for the 'dual' problem of filter loop recovery case, [K,SVL,W1]
= ltrsyn(G,F,Q,R,RHO,'OUTPUT')
computes a filter loop recovery
controller of the same form, but with K_{f} = F
is
being the input filter gain matrix and the control gain matrix K_{c} computed
as K_{c} = lqr(A,B,Q+RHO(i)*C'*C,R)
.
Example of LQG/LTR at Plant Output.
[1] Doyle, J., and G. Stein, “Multivariable Feedback Design: Concepts for a Classical/Modern Synthesis,” IEEE Trans. on Automat. Contr., AC-26, pp. 4-16, 1981.