ltrsyn

LQG loop transfer-function recovery (LTR) control synthesis

Syntax

```[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)
```

Description

`[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)–1B+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 `OPT='``OUTPUT``'` state-cost matrix `XI=Q`,

`THETA`

sensor noise intensity

or, if `OPT='``OUTPUT``'` control-cost matrix `THETA=R`,

`RHO`

vector containing a set of recovery gains

`W`

(optional) vector of frequencies (to be used for plots); if input `W` is not supplied, then a reasonable default is used

Outputs

`K`

K(s) — LTI LTR (loop-transfer-recovery) output-feedback, for the last element of `RHO` (i.e., `RHO(end)`)

`SVL`

sigma plot data for the recovered loop transfer function if `G` is MIMO or, for SISO `G` only, Nyquist loci `SVL = [re(1:nr) im(1:nr)]`

`W1`

frequencies for SVL plots, same as `W` when present

Examples

```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`

Limitations

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`)

collapse all

Algorithms

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\left(s\right)=\left[{K}_{c}{\left(Is-A+B{K}_{c}+{K}_{f}C-{K}_{f}D{K}_{c}\right)}^{-1}{K}_{f}\right]$

where Kc = `F` and Kf = `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 Kf = `F` is being the input filter gain matrix and the control gain matrix Kc computed as Kc = `lqr(A,B,Q+RHO(i)*C'*C,R)`.

Example of LQG/LTR at Plant Output.

References

[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.