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