オブザーバ(状態観測器)

10. オブザーバ(状態観測器)

はじめに

オブザーバ(状態観測器)は現代制御の入口になります。通常は検出できない内部状態を推定する機構です。状態を推定するために、制御対象のモデルそのものをコントローラに実装することになるため、精度の高い離散時間モデルを作る知見も必要になります。

このブログでは、離散化したモデル(PとQの逐次式→参照)を時間応答の確認(シミュレーション)のために作ってきましたが、この知見を前提にオブザーバを実装していきます。

制御工学の教科書には理論式は書いてあっても、どのようにコントローラに実装するのかまでは書かれていないことが多いように思います(個人の感想)。ここでは、コントローラへの実装を前提に、オブザーバを離散時間系で設計し、そのロジックをEXCELで確認していきます。

オブザーバをコントローラに実装できる形で設計できるようになり、実務で使える知識として身に着けられるように説明していきます。

オブザーバは内部の状態変数を推定する機構

システムは様々な内部状態を持ちます。内部状態を全て知ることができれば、より適切に制御できる場合もあります。しかし、コストの問題や直接計測が困難な場合もあり、全てに計測センサを実装できないため観測できるシステムの内部状態は一部である場合が一般的です。

オブザーバはシステムの入力と測定可能な出力から、内部の状態変数を推定する機構です。

オブザーバの演算式

オブザーバの演算式はコントローラに実装する必要があるので離散系で扱います。
対象システムは下記になります。
\[\frac{d x(t)}{d t}=A x(t)+B u(t)\] \[y(t)=C x(t)\]ベクトルCは内部状態 x(t) のいずれが観測できるかを定義しており、y(t) は観測可能な出力値です。状態方程式を離散化すると
\[x(t+\Delta t)=P x(t)+Q u(t) \]更にオブザーバを構成すると以下の式になります。
\(\hat{x}, \hat{y} \) は推定値を意味します。
\[\hat{x}_{(n+1)}=P \hat{x}_{(n)}+Q u_{(n)}+G\left(y_{(n)}-\hat{y}_{(n)}\right)\] \[\hat{y}_{(n)}=C \hat{x}_{(n)}\]
\((y(n)-\hat{y}(n))\) はオブザーバの推定誤差で、ゲインG を掛けて次回の状態推定値 \( \hat{x}(n+1)\)を修正しています。更に式を変形すると以下の式になります。
\[\hat{x}_{(n+1)}=(P-G C) \hat{x}_{(n)}+G C x_{(n)}+Q u_{(n)}\]これがオブザーバの演算式になります。
この演算式をコントローラに実装し、システムの内部状態を推定します。演算式はシステムの離散時間モデルである PとQ を含み、制御対象のモデルそのものをコントローラに実装しています。オブザーバをコントローラに実装するには、精度の高い離散時間モデルを作る知見が前提になっています。

オブザーバゲインの設定

離散系オブザーバのゲインGの設定方法を説明します。
オブザーバの状態推定の収束条件は、オブザーバの演算式
\[\hat{x}_{(n+1)}=(P-G C) \hat{x}_{(n)}+G C x_{(n)}+Q u_{(n)}\]の特性方程式 \(\operatorname{det}(z I-(P-G C))=0\) の固有値(解)が |z |<1 を満たすことです。(システムの安定条件についてはこちらを参照→バネマスモデルの時間応答の確認

システムは2次と仮定し、オブザーバのゲインGとベクトルCを以下のように設定します。
\[G=\left[\begin{array}{l}g_{1} \\ g_{2}\end{array}\right] \hspace{0.2cm} \quad C=\left[c_{1} c_{2}\right] \hspace{1cm}\hspace{0.2cm} GC=\left[\begin{array}{ll}g_{1} c_{1} & g_{1} c_{2} \\ g_{2} c_{1} & g_{2} c_{2}\end{array}\right] \]このとき特性方程式は
\[\operatorname{det}(z I-(P-G C))=\operatorname{det}\left(\left[\begin{array}{ll}z & 0 \\ 0 & z\end{array}\right]-\left[\begin{array}{l}p_{11} p_{12} \\ p_{21} p_{22}\end{array}\right]+\left[\begin{array}{ll}g_{1} c_{1} & g_{1} c_{2} \\ g_{2} c_{1} & g_{2} c_{2}\end{array}\right]\right) \\ =\operatorname{det}\left(\left[\begin{array}{cc}z-p_{11}+g_{1} c_{1} & -p_{12}+g_{1} c_{2} \\ -p_{21}+g_{2} c_{1} & z-p_{22}+g_{2} c_{2}\end{array}\right]\right) \] \[=\left(z-p_{11}+g_{1} c_{1}\right)\left(z-p_{22}+g_{2} c_{2}\right)-\left(-p_{12}+g_{1} c_{2}\right)\left(-p_{21}+g_{2} c_{1}\right) \\ =z^{2}+\left(-p_{11}-p_{22}+g_{1} c_{1}+g_{2} c_{2}\right) z+\left(p_{21} c_{2}-p_{22} c_{1}\right) g_{1}+\left(p_{12} c_{1}-p_{11} c_{2}\right) g_{2}+p_{11} p_{22}-p_{12} p_{21} \hspace{1cm} \]     ・・・・①
また、固有値 z の安定条件 |z|<1 から z の解を z=d( 0<d<1 )とすると

   \((z-d)^{2}=z^{2}-2 d z+d^{2}\) ・・・・② ※計算を簡単にするために重根にしています

①と②の係数比較の連立式でオブザーバゲインG を設定します。
\[g_{1} c_{1}+g_{2} c_{2}=p_{11}+p_{22}-2d\] \[\left(p_{21} c_{2}-p_{22} c_{1}\right) g_{1}+\left(p_{12} c_{1}-p_{11} c_{2}\right) g_{2}=-p_{11} p_{22}+p_{12} p_{21}+d^{2}\] この連立式を解いてフィードバックゲインg1,g2 を求めます。連立式はEXCELで解きます。

EXCELファイルのダウンロード

こちらからEXCELファイルをダウンロードできます。

オブザーバゲインGの連立方程式をEXCELで解く

オブザーバゲインGの連立方程式
\[g_{1} c_{1}+g_{2} c_{2}=p_{11}+p_{22}-2d\] \[\left(p_{21} c_{2}-p_{22} c_{1}\right) g_{1}+\left(p_{12} c_{1}-p_{11} c_{2}\right) g_{2}=-p_{11} p_{22}+p_{12} p_{21}+d^{2}\] 行列表現に修正します。
\[\left[\begin{array}{cc}c_{1} & c_{2} \\ p_{21} c_{2}-p_{22} c_{1} & p_{12} c_{1}-p_{11} c_{2}\end{array}\right]\left[\begin{array}{l}g_{1} \\ g_{2}\end{array}\right]=\left[\begin{array}{c}p_{11}+p_{22}-2 d \\ -p_{11} p_{22}+p_{12} p_{21}+d^{2}\end{array}\right]\]EXCELの逆行列(MINVERSE)行列の積(MMULT)の関数を利用することで連立方程式を解くことができます。逆行列を使って変形すると
\[\left[\begin{array}{l}g_{1} \\ g_{2}\end{array}\right]=\left[\begin{array}{cc}c_{1} & c_{2} \\ p_{21} c_{2}-p_{22} c_{1} & p_{12} c_{1}-p_{11} c_{2}\end{array}\right]^{-1}\left[\begin{array}{c}p_{11}+p_{22}-2 d \\ -p_{11} p_{22}+p_{12} p_{21}+d^{2}\end{array}\right]\]pとcとdは値が分かっているので、EXCELで計算するだけでオブザーバゲインGを求めることができます。

EXCELの状態方程式シートでは、上記の連立方程式からオブザーバゲインGを算出しています。


可観測性の確認

オブザーバが機能するには可観測性の条件が必要です。可観測性とは、システムの応答 y(t) を観測することによって、システムの状態を一意に決定できる性質のことです。
\[\frac{d x(t)}{d t}=A x(t)+B u(t)\] \[y(t)=C x(t)\]において、係数行列AとBとCはそれぞれ n×n , n×m, r×nの定数行列とすると、システムが可観測であるための必要十分条件は、
\[M=\left[\begin{array}{c}C \\ C A \\ \vdots \\ C A^{n-1}\end{array}\right]\]
\[\operatorname{Rank} M=n \quad(\operatorname{det}(\mathrm{M}) \neq 0)\]
Rankは階段行列にしたときに0ではない行の数(独立した式の数)のことです。
Rank M = n (フルランク)であればMは正則行列(det (M)≠ 0 )となります。
Excelファイルの可観測性のシートでは、可観測性をチェックしています。Excelには行列式(det)を計算する関数MDETERMがあるので、MDETERMによりシステムの可観測性を Mの行列式≠0 で確認しています。

オブザーバが機能する可観測性条件:
  可観測性行列Mにおいて Rank M=n または det(M)≠0

バネマスモデルの内部状態をオブザーバで推定

Excelファイルの状態方程式のシートでは、バネマスモデルの内部状態をオブザーバで推定するためのオブザーバゲインや、オブザーバの演算式の行列[GC]と[P-GC]を求めています。
ここでは、ベクトルC=[1,0]としてバネの変位は検出でき、バネの変位速度を推定するものとしています。

Excelファイルのシミュレーションのシートでは、バネマスシステムの挙動とオブザーバの行列演算をEXCELシート上に展開しています。


オブザーバによる状態推定

オブザーバゲイン z=0.5 では150ms程度でオブザーバ推定値は収束。ただし、収束過程は推定速度のオーバーシュートが過大でやや不安定。

シート上部のスライドボリュームで特性方程式の固有値 z を0~1の間でオブザーバゲインを変え、収束挙動を確認してみてください。固有値 z=1では、安定条件から推定値は収束しないのが確認できます。下のグラフは z=0.9 の挙動です。

このブログで扱っているのは非常に簡単な例で、特にバネマスモデルの変位速度をオブザーバで推定しても、あまりメリットを感じないかもしれません。しかし、オブザーバはアイデア次第で面白いことができるので適用例を紹介しておきます。

オブザーバの適用例紹介

実は、約30年前になりますが、エンジン制御にオブザーバを始めとする現代制御が入ってきたのが制御工学の勉強を始めた切っ掛けになっています。こんなことができるんだ! という驚きがありました。

エンジン制御への適用例で、オブザーバにより1つのセンサで4つの燃焼室の排出ガスの空燃比を推定する技術です。下記のリンクからアクセスできます。

右側のPDFボタンを押して登録情報を入力すると論文の詳細を確認できます。

最後までお読みいただき、ありがとうございました。
次は現代制御状態フィードバック(レギュレータ)です。


QooQ