# lqry

Calculates the optimal steady-state feedback gain matrix K.

## Syntax

[K, X, E] = lqry(SYS, Q, R)

[K, X, E] = lqry(SYS, Q, R, N)

[K, X, E] = lqry(A, B, C, D, Q, R)

[K, X, E] = lqry(A, B, C, D, Q, R, N)

## Inputs

`SYS`- A continuous or discrete-time linear time-invariant model.
`Q`- The output weighting matrix (q x q), where q is the number of outputs.
`R`- The input weighting matrix (p x p), where p is the number of inputs.
`N`- The output/state cross product weighting matrix, such that (Q-N*inv(R)*N') is positive semi-definite.
`A`- The state matrix (n x n), where n is the number of states.
`B`- The input matrix (n x p), where p is the number of inputs.
`C`- The output matrix (q x n), where q is the number of outputs.
`D`- The direct transmission matrix (q x p).

## Outputs

- K
- The gain matrix. K = inv(R)*(B'X+N').
- X
- The symmetric, positive semi-definite solution to the Discrete Algebraic Riccati Equation.
- E
- The closed-loop pole locations; the eigenvalues of the matrix A-BK.

## Examples

```
A = [0.9, 0.25; 0, 0.8];
B = [0; 1];
C = [1, 0];
D = 0;
sys = ss(A, B, C, D);
Q = 2;
R = 1;
[K, X, e] = lqry(sys, Q, R)
```

`K = [Matrix] 1 x 2
12.73999 3.44764
X = [Matrix] 2 x 2
89.05966 12.73999
12.73999 3.44764
e = [Matrix] 2 x 1
-0.87382 + 0.19637i
-0.87382 - 0.19637i`

```
sys_tf=tf([1],[1 6 1]);
sys=ss(sys_tf);
Q = 2;
R = 1;
[K, X, e] = lqry(sys.a, sys.b, sys.c, sys.d, Q, R)
```

`K = [Matrix] 1 x 2
0.12079 0.73205
X = [Matrix] 2 x 2
0.12079 0.73205
0.73205 4.60152
e = [Matrix] 2 x 1
-5.82336
-0.29743`

## Comments

The function calculates the optimal steady-state feedback gain matrix K that minimizes a quadratic cost function for a linear state-space system model. The cost function weights the model outputs.