このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
線形 2 次ガウシアン (LQG) 設計
"線形 2 次ガウシアン (LQG) 法" は、動的なレギュレーターや積分動作を含むサーボ コントローラー ("設定点トラッカー" ともいいます) を設計するための最新の状態空間手法の 1 つです。この手法では、レギュレーターやトラッキング コントローラーの性能と制御操作のトレードオフを行い、プロセスの外乱と測定ノイズを考慮します。
LQG レギュレーターと設定点トラッカーを設計するには、次の手順を実行します。
LQ 最適ゲインを設定します。
カルマン フィルター (状態推定器) を構築します。
LQ 最適ゲインとカルマン フィルターを接続することにより、LQG 設計を行います。
LQG 法を使用した LQG レギュレーターの設計方法の詳細は、レギュレーターの線形 2 次ガウシアン (LQG) 設計を参照してください。
LQG 法を使用した LQG サーボ コントローラーの設計方法の詳細は、線形 2 次ガウシアン (LQG) 法による積分動作を含むサーボ コントローラーの設計を参照してください。
このトピックでは、連続時間系の設計について説明します。離散時間系の LQG 設計の詳細は、関数 dlqr
と kalman
の説明を参照してください。
レギュレーターの線形 2 次ガウシアン (LQG) 設計
次のモデルを使用して、出力 y をゼロ近傍に制御する LQG レギュレーターを設計します。
このモデルのプラントは、外乱 (プロセス ノイズ) w を受け、制御量 u によって駆動します。レギュレーターで生成する制御量は、ノイズの測定量 y に依存しています。プラントの状態方程式と測定方程式は、次のようになります。
ここで、w と v はいずれもホワイト ノイズとしてモデル化されています。
メモ
LQG 設計では、プラントの状態空間モデルが必要です。関数 ss
を使用して、他の形式のモデルを状態空間モデルに変換します。
LQG レギュレーターを設計するには、次の表に示す手法を使用します。
LQG レギュレーターの設計法 | 使用するコマンド |
---|---|
次の場合に使用できる 1 段階の簡単な設計法
| lqg |
以下を指定できる柔軟な 3 段階の設計法
|
詳細情報の参照先
|
レギュレーターの最適状態フィードバック ゲインの構成
次の要素から LQ 最適ゲインを構成します。
状態空間系行列
重み付け行列
Q
、R
、およびN
で、レギュレーターの性能 (x(t) がどの程度速くゼロになるか) と制御操作のトレードオフを定義します。
最適ゲインを構築するには、次のコマンドを入力します。
K= lqr(A,B,Q,R,N)
このコマンドは、状態フィードバック則 が次の 2 次コスト関数を連続時間で最小にする最適ゲイン行列 K
を計算します。
ソフトウェアは、代数リカッチ (Riccati) 方程式を解くことによってゲイン行列 K を求めます。
離散時間でコスト関数を最小化する LQ 最適ゲインの構成の詳細は、関数 lqr
の説明を参照してください。
カルマン状態推定器の構成
LQG 法によってレギュレーターやサーボ コントローラーを設計するには、カルマン状態推定器が必要です。これは、完全な状態の測定なしに LQ 最適状態フィードバックを実装できないからです。
が出力フィードバック問題に対し最適のままとなるような状態推定 を構成します。カルマン状態推定器のゲインを次の要素から構成します。
状態空間プラントモデル
sys
ノイズの共分散データ、
Qn
、Rn
およびNn
下図は、
Qn
、Rn
およびNn
に必要な次元を示します。Nn
が 0 の場合は省略できます。Qn、Rn および Nn に必要な次元
メモ
カルマン状態推定器の構成は、レギュレーターとサーボ コントローラーのいずれについても同じ方法で行います。
カルマン状態推定器を構成するには、次のコマンドを入力します。
[kest,L,P] = kalman(sys,Qn,Rn,Nn);
このコマンドでは、次のプラント方程式を使用してカルマン状態推定器 kest
を計算します。
ここで、w と v はホワイト ノイズとしてモデル化されています。L
はカルマン ゲインであり、P
は共分散行列です。
ソフトウェアは、u (制御量) と y (測定値) を入力として取る次のカルマン フィルターを使用してこの状態推定を生成します。
ノイズ共分散データ
は、代数リカッチ (Riccati) 方程式を解くことによって、カルマン ゲイン L を決定します。
ガウス ホワイト ノイズを取り扱う場合、カルマン フィルターは最適な推定器の 1 つです。具体的には、これは次の推定誤差の漸近共分散
を最小にします。
詳細は、kalman
のリファレンス ページを参照してください。カルマン フィルターの実装の詳細な例については、カルマン フィルター処理を参照してください。
LQG レギュレーターの作成
LQG レギュレーターを作成するには、次のコマンドを入力して、カルマン フィルター kest
と LQ 最適ゲイン K
を接続します。
regulator = lqgreg(kest, K);
このレギュレーターは、次の状態空間方程式を含んでいます。
LQG レギュレーターの作成の詳細については、lqgreg
およびLQG レギュレーター: 圧延機のケース スタディを参照してください。
線形 2 次ガウシアン (LQG) 法による積分動作を含むサーボ コントローラーの設計
次のモデルを使用して、積分動作を含むサーボ コントローラーを設計します。
設計するサーボ コントローラーは、出力 y が基準コマンド r をトラッキングし、プロセス外乱 w と測定ノイズ v を除外します。
上の図のプラントは、外乱 w を受け、制御量 u によって制約を受けます。サーボ コントローラーで生成する制御量は、ノイズの測定量 y に依存しています。プラントの状態と測定方程式は、次のようになります。
ここで、w と v はいずれもホワイト ノイズとしてモデル化されています。
メモ
LQG 設計では、プラントの状態空間モデルが必要です。関数 ss
を使用して、他の形式のモデルを状態空間モデルに変換します。
LQG サーボ コントローラーを設計するには、次の表に示す手法を使用します。
LQG サーボ コントローラーの設計法 | 使用するコマンド |
---|---|
次の場合に使用できる 1 段階の簡単な設計法
| lqg |
以下を指定できる柔軟な 3 段階の設計法
|
詳細情報の参照先
|
サーボ コントローラーの最適状態フィードバック ゲインの構成
次の要素から LQ 最適ゲインを構築します。
状態空間プラントモデル
sys
重み付け行列
Q
、R
、およびN
。これらの行列で、トラッキング コントローラーの性能と制御操作のトレードオフを決めます。
最適ゲインを構築するには、次のコマンドを入力します。
K= lqi(sys,Q,R,N)
このコマンドは、状態フィードバック則 が次の 2 次コスト関数を連続時間で最小にする最適ゲイン行列 K
を計算します。
ソフトウェアは、代数リカッチ (Riccati) 方程式を解くことによってゲイン行列 K を求めます。
離散時間でコスト関数を最小化する LQ 最適ゲインの構成の詳細は、関数 lqi
の説明を参照してください。
カルマン状態推定器の構成
LQG 法によってレギュレーターやサーボ コントローラーを設計するには、カルマン状態推定器が必要です。これは、完全な状態の測定なしに LQ 最適状態フィードバックを実装できないためです。
が出力フィードバック問題に対し最適のままとなるような状態推定 を構成します。カルマン状態推定器のゲインを次の要素から構成します。
状態空間プラントモデル
sys
ノイズの共分散データ、
Qn
、Rn
およびNn
下図は、
Qn
、Rn
およびNn
に必要な次元を示します。Nn
が 0 の場合は省略できます。Qn、Rn および Nn に必要な次元
メモ
カルマン状態推定器の構成は、レギュレーターとサーボ コントローラーのいずれについても同じ方法で行います。
カルマン状態推定器を構成するには、次のコマンドを入力します。
[kest,L,P] = kalman(sys,Qn,Rn,Nn);
このコマンドでは、次のプラント方程式を使用してカルマン状態推定器 kest
を計算します。
ここで、w と v はホワイト ノイズとしてモデル化されています。L
はカルマン ゲインであり、P
は共分散行列です。
ソフトウェアは、u (制御量) と y (測定値) を入力として取る次のカルマン フィルターを使用してこの状態推定を生成します。
ノイズ共分散データ
は、代数リカッチ (Riccati) 方程式を解くことによって、カルマン ゲイン L を決定します。
ガウス ホワイト ノイズを取り扱う場合、カルマン フィルターは最適な推定器の 1 つです。具体的には、これは次の推定誤差の漸近共分散
を最小にします。
詳細は、kalman
のリファレンス ページを参照してください。カルマン フィルターの実装の詳細な例については、カルマン フィルター処理を参照してください。
LQG サーボ コントローラーの作成
自由度 2 の LQG サーボ コントローラーを作成するには、次のコマンドを入力して、カルマン フィルター kest
と LQ 最適ゲイン K
を接続します。
servocontroller = lqgtrack(kest, K);
このサーボ コントローラーは、次の状態空間方程式を含んでいます。
自由度 1 の LQG サーボ コントローラーの作成方法を含む LQG サーボ コントローラーの作成の詳細は、関数 lqgtrack
の説明を参照してください。
参考
lqg
| lqr
| kalman
| lqgtrack
| lqi
| lqgreg