Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
See the recommended documentation of this function

Scilab help >> CACSD > lqr

lqr

LQ補償器 (全状態)

呼出し手順

[K,X]=lqr(P12)

パラメータ

P12

syslin リスト (状態空間線形システム)

K,X

実数行列

説明

lqr は,連続系または離散時間系のプラント P12=[A,B2,C1,D12]の 線形最適LQ全状態ゲインを計算します.

P12syslin リスト (例:P12=syslin('c',A,B2,C1,D12))です.

評価関数はz=C1 x + D12 uの時のz'*zの L2ノルム,すなわち, [x,u]' * BigQ * [x;u] です.ただし,

[C1' ]               [Q  S]
BigQ= [    ]  * [C1 D12] = [    ]
[D12']               [S' R]

ゲイン KA + B2*K が安定になるように 選ばれます.

Xはリカッチ方程式の安定化解です.

連続系プラントの場合:

(A-B2*inv(R)*S')'*X+X*(A-B2*inv(R)*S')-X*B2*inv(R)*B2'*X+Q-S*inv(R)*S'=0
K=-inv(R)*(B2'*X+S)

離散時間系プラントの場合:

X=A'*X*A-(A'*X*B2+C1'*D12)*pinv(B2'*X*B2+D12'*D12)*(B2'*X*A+D12'*C1)+C1'*C1;
K=-pinv(B2'*X*B2+D12'*D12)*(B2'*X*A+D12'*C1)

X と等価な形式は,

X=Abar'*inv(inv(X)+B2*inv(r)*B2')*Abar+Qbar

ただし, Abar=A-B2*inv(R)*S' および Qbar=Q-S*inv(R)*S'となります.

リカッチ方程式に関連する3ブロック行列ペンシルは次のようになります:

discrete                           continuous
|I   0    0|   | A    0    B2|         |I   0   0|   | A    0    B2|
z|0   A'   0| - |-Q    I    -S|        s|0   I   0| - |-Q   -A'   -S|
|0   B2'  0|   | S'   0     R|         |0   0   0|   | S'  -B2'   R|

注意: 行列Rは非特異であるとします. 特に, プラントは縦長 (出力の数 >= 入力の数)である 必要があります.

A=rand(2,2);B=rand(2,1);   //two states, one input
Q=diag([2,5]);R=2;     //Usual notations x'Qx + u'Ru
Big=sysdiag(Q,R);    //Now we calculate C1 and D12
[w,wp]=fullrf(Big);C1=wp(:,1:2);D12=wp(:,3:$);   //[C1,D12]'*[C1,D12]=Big
P=syslin('c',A,B,C1,D12);    //The plant (continuous-time)
[K,X]=lqr(P)
spec(A+B*K)    //check stability
norm(A'*X+X*A-X*B*inv(R)*B'*X+Q,1)  //Riccati check
P=syslin('d',A,B,C1,D12);    // Discrete time plant
[K,X]=lqr(P)     
spec(A+B*K)   //check stability
norm(A'*X*A-(A'*X*B)*pinv(B'*X*B+R)*(B'*X*A)+Q-X,1) //Riccati check

参照

  • lqe — 線形二次推定器 (カルマンフィルタ)
  • gcare — 制御リカッチ方程式
  • leqr — H無限大 LQ ゲイン (全状態)
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Oct 01 17:40:28 CEST 2012