・In English
前提知識
・2次システムの状態フィードバック制御
・Scilabの使い方
■状態フィードバックの問題点
こちらで状態フィードバック制御について説明しましたが、ある問題があります。それは状態変数を必ずしも計測できないという事です。
例えば以下システムにおいて、モーターの回転速度を狙いの位置に制御したい場合、実の回転速度と電流値の情報が必要になります。しかし様々な事情により
実際に電流値を測ることが出来ない場合、役立つのがオブザーバという考え方です。

■オブザーバによる状態推定とは
オブザーバの考え方を簡単にいうと、計測できない情報を、他の計測できる情報からモデルで(計算機上で)推定するというものです。オブザーバの形は以下の様になります。
なおオブザーバは状態を推定する機能なので、これだけでは制御対象物をフィードバックできません。オブザーバを用いて状態フィードバックする方法はこちらで説明。

オブザーバの欠点として、オブザーバは初期値が解らない為最初の方は制御対象物に対して誤差が生じます。
この誤差を出来るだけ早く収束させるための役割がオブザーバゲインhとなります。オブザーバゲインは制御対象物の実際の出力値と
オブザーバにより推定した出力値との偏差に応じてゲインを掛ける形となります。
実x(t)に対する推定x(t)の誤差を以下の様に定義し、誤差状態方程式として表現します。

制御対象物の状態方程式は以下(ラプラス変換後です)。

オブザーバの状態方程式は以下(ラプラス変換後)。

(2)-(4)より、

(3)(5)を上式に代入し、

(1)より、


■オブザーバゲインの設定
考え方は、こちらで説明した様な状態フィードバックゲインの設定に用いた極配置法を使用します。
(6)より、以下特性方程式の根が負となるようなhを求めれば良いことになります。

なお、オブザーバを設計するにはそのシステムが可観測性である必要があります。可観測性についてはこちらで説明。
それでは具体的にオブザーバゲインを求めます。A,b,c,はそれぞれ以下のとおり。

まず可観測性の判断については、こちらでも説明したとおり可観測性のあるシステムとなります。次に特性方程式は以下のとおり。

ここで上記特性方程式の根(極)を負値になる様にオブザーバゲインhの値を設定すれば良く、どのような値にするかは自分で決めます。
従ってここでは極を-6とするようなhを決定します。
ここで極を-6に持つ式は以下となります。(x+6)2=0を展開した結果です。

ここで(2)(3)を対比させると、

となり、オブザーバゲインを求めることが出来ました。なおオブザーバゲインはScilabで簡単に求める事ができます。
コンソール上で以下赤文字のとおり入力。ppolの関数はこちらで説明。

■オブザーバのScilabでの設計
上記システムをブロック図で表現すると以下です。

Scilabでの設計結果は以下。制御対象物のi(t)の初期値は1とし、オブザーバの推定i(t)の初期値は0とします。

■オブザーバによる状態推定のシミュレーション結果
以下のとおり。オブザーバ有りの方が早く制御対象物の値に一致するのが解ります。

■オブザーバのメリット, 逆モデルより精度が良い
オブザーバとは計測できない状態量を推定するものですが、状態量を推定する方法はもう一つ考えられます。
それは出力値から以下の様に逆算して求める方法です。この手法でも一見良いと思いますが、出力値は実際にはノイズが含まれる場合が多く、
その状態で微分を行うと正しい状態量を求めることが難しいことが知られています。オブザーバを用いれば、出力値にノイズがあっても精度よく
状態量を推定することが出来ます。

■オブザーバの欠点, モデル化誤差を補正する訳ではない
オブザーバはモデル化誤差を補正する訳ではありませんので、モデルに誤差があると正しく状態量を推定することが出来ません。
試しに上記オブザーバのBの値を10⇒8に変更した時のシミュレーション結果を示します。誤差分だけ制御対象物と一致していないことが解ります。

以上がオブザーバによる状態推定の仕方になりますが、それでは次に実際にこの推定値を使った状態フィードバックの方法について説明します。
こちらをクリック。
サブチャンネルあります。⇒ 何かのお役に立てればと
|