メインコンテンツ

dlqr

R2026b

離散時間状態空間システムに対する線形 2 次 (LQ) 状態フィードバック レギュレーター

説明

[K,S,P] = dlqr(A,B,Q,R,N) は、離散時間状態空間行列 A および B を使用して、最適ゲイン行列 K、関連する代数リカッチ方程式の解 S、および閉ループ極 P を計算します。この関数は、離散時間モデルに対してのみ有効です。連続時間モデルの場合は、lqr を使用します。

入力引数

すべて折りたたむ

状態行列。n 行 n 列の行列として指定します。ここで n は状態の数です。

入力から状態への行列。n 行 m 列の、入力から状態への行列として指定します。ここで m は入力の数です。

状態コストの重み付き行列。n 行 n 列の行列として指定します。ここで n は状態の数です。Bryson の規則を使用して、以下によって与えられる Q の初期値を設定できます。

Qi,i=1maximum acceptable value of (errorstates)2, i∈{1,2,...,n}Q=[Q1,10⋯00Q2,2⋯000⋱⋮00⋯Qn,n]

ここで、n は状態の数です。

入力コストの重み付き行列。スカラーまたは D'D と同じサイズの行列として指定します。ここで D は直達状態空間行列です。Bryson の規則を使用して、以下によって与えられる R の初期値を設定できます。

Rj,j=1maximum acceptable value of (errorinputs)2, j∈{1,2,...,m}R=[R1,10⋯00R2,2⋯000⋱⋮00⋯Rm,m]

ここで、m は入力の数です。

オプションの交差項行列。行列として指定します。N が指定されていない場合、lqr は N を既定で 0 に設定します。

出力引数

すべて折りたたむ

閉ループ システムの最適ゲイン。サイズが n の行ベクトルとして返されます。ここで n は状態の数です。

関連する代数リカッチ方程式の解。n 行 n 列の行列として返されます。ここで n は状態の数です。つまり、S の次元は状態空間行列 A と同じです。詳細については、idare を参照してください。

閉ループ システムの極。サイズが n の列ベクトルとして返されます。ここで n は状態の数です。

アルゴリズム

dlqr は、状態フィードバック則 u[n]=−Kx[n] が 2 次コスト関数を最小にするような、最適ゲイン行列 K を計算します。

J(u)=∑n=1∞(x[n]TQx[n]+u[n]TRu[n]+2x[n]TNu[n])

このとき、離散時間状態空間モデルは x[n+1]=Ax[n]+Bu[n] です。

状態フィードバック ゲイン K のほかに、dlqr は関連する離散時間リカッチ方程式の無限ホライズン解 S と

ATSA−S−(ATSB+N)(BTSB+R)−1(BTSA+NT)+Q=0

閉ループ固有値 P = eig(A−BK) を返します。ゲイン行列 K は、以下を使用して S から導出されます。

K=(BTSB+R)−1(BTSA+NT)

いずれの場合も、交差項行列 N を省略すると、dlqr は N を 0 に設定します。

バージョン履歴

R2006a より前に導入

参考

| | | |