最適レギュレータの計算方法

lqr
care
icare
の3種類で計算できる。引数の順番は同じ。フィードバックゲインが返り値に現れる場所が3者のコマンドで異なっている。lqrを使うのがわかりやすそう。

clear; close all; clc;

A = [-3 1; 1 1]; 
B = [0;1];
C = [1 -1];
D = 0;
R = 3;
Q = C'*C;

lqr(A,B,Q,R)
[~,~,G]=care(A,B,Q,R)
[~,K,~]=icare(A,B,Q,R)

実行結果

ans =
    0.5274    2.5453
G =
    0.5274    2.5453
K =
    0.5274    2.5453