[この記事は制御工学ブログで2024年3月28日に公開されたものを少し修正したものです。]
この記事ではシステム同定・動的システムのモデリングについてまとめます。関連記事リンクや解説記事へのリンクは最下部に置いています。
システム同定の概要
それではモデリングシステム同定について説明をしていきたいと思います。まず制御工学において数式モデルは重要な役割を果たします。モデルベースの制御を行う場合には、まず制御対象の入出力特性に基づいてモデルを導出します。
そしてその得られた数理モデルに対して必要な性能が得られるような制御機器を設計するプロセスを踏みます。そのようにして得られた制御器を、実際に制御対象に適用することで制御を行うことになります。
このとき、モデルが精度良く求まっていれば、望ましい応答が、モデルに基づいて求めた制御器によって実現することができます。他方、精度の悪いモデルではよい制御の実現が困難になります。
モデル表現
ここでは制御対象の数式モデルの表現について説明したいと思います。制御でよく使われる方法としては、伝達関数および状態方程式というモデル化の表現が挙げられます。
また、時間を連続時間系として扱うか、離散時間系として扱うかという形でも分類がなされます。
このように4つのモデル表現があるという前提のもとで、進めていきたいと思います。
状態方程式表現を基礎から学ぶ:状態方程式としての数理モデル化 - 制御工学ブログ
ここではモデル化について説明します。数式モデルがあるとき入力 $u$ から $y$ までの特性が、対象の数理モデルになるように、それぞれの行列の値を決定することによって,モデルを得ることができます。具体的にはここでは $A, B, C$ というそれぞれのパラメーターが適切に設定されることでこのようにプラントと同じ入力を印加したときに得られる出力が、数理モデルでも同じものになることが理想です。
適切な $A, B, C$ の行列が求まれば、数理モデルで対象と同じ入出力特性、入出力応答を実現できます。
ここでは2つのモデリングの方法について紹介します。
1つ目は制御対象 Pの物理法則。例えばバネ係数や回路の係数などから数理モデルを求めるというものです。2つ目の方法として数理モデルの中身パラメータや物理法則などがわからないものとして、入力uと出力yのデータから数理モデルを求める、という方法があります。
これはシステム同定と呼ばれる方法であり、この後で説明する方法になります。
ここでシステム同定を扱うときには、基本的には離散時間のパラメータが求まることになります。
しかしながら離散時間での伝達関数や状態方程式が求まったとき、それに基づいて連続時間の状態方程式や伝達関数に変換することができますのでこのような相互変換が可能という中で、システム同定で離散時間モデルを求め、もし連続時間モデルに変換する必要があれば、連続時間モデルに変換する、というプロセスでどのモデルも求まることになります。
実際にそのモデルを得た上での、制御系設計や実装のプロセスにおいては、制御対象のモデル、不確かさの大きさ、外乱の性質や制御系の実装における観測出力、操作入力などさまざまな要素が必要になりますがこのモデルをうまく構成することによって、制御をより精密に行うことができるといえます。
一般にシステム同定ではシステムを表現するためのモデルの構造が先に与えられます。
$y(t) = f(u(t), \theta)$
ここで、入力が $u(t)$、出力が $y(t)$ として与えられています。$f(u(t), \theta)$ に含まれる $\theta$ はシステムのパラメータになります。
それでは実際にシステム同定の手順にいきたいと思います。プロセスは簡単です。
まず入力 $u$ と出力 $y$ のデータを取得します。この入力 $u$ と $y$ のデータを取得する際に、入力 $u$ は PE性と呼ばれる情報の律さを示す指標をうまく満たすように決める必要があります。
そして得られた入出力データに対して同定アルゴリズムを使ってパラメータ $\theta$ を決定します。
代表的なものとしては、部分空間同定法や予測誤差法などが挙げられます。
以降ではMATLABを用いたシミュレーションを行っていきます。
システム同定のシミュレーション例
MATLABではこの部分空間同定法や予測誤差法は、関数として与えられていますので、それを使って同定を行ってみます。
それでは実際に MATLAB でシステム同定を行っていきたいと思います。
まず制御対象としてはこちらの制御対象を考えます。そしてこれに対してチャープ信号と呼ばれる信号を印加して、その結果システム同定を行います。
ここではまず入力としてチャープ信号を生成し、それを用いて入出力データを求めます。
出力データはこちらで与えられます。ここでノイズも含むような系となっていることに注意してください。ノイズが含まれている環境下でしっかり同定できていることを、この数値例では確認したいと思います。
こちらがチャープ信号と呼ばれる信号を印加した時の出力であり、様々な周波数成分を持った入力に対して、出力がこのように得られています。
こちらが元のシステムと同定により得られたシステムの、それぞれのステップ応答になります。青が元のシステム、オレンジがモデル出力です。
波形が似通っていることが分かりますがその一方で誤差があります。この誤差が大きくなるか少なくなるかはシステム同定における様々な設定に依存して決まってきます。
こちらが制御対象と同定によって得られたシステムのボード線図になります。低周波ではほとんど一致していることが分かるかと思います。
数理モデルの相互変換について
連続時間,離散時間のそれぞれは相互に変換でき,また,伝達関数と状態方程式も変換できます。何等かの手法でモデル化後に実際に利用したいモデルに変換を行い,適用範囲の中で設計していくことが重要になります。
システム同定法の分類
システム同定には様々なアプローチがあり、大きく以下のように分類することができます。
予測誤差法(Prediction Error Method, PEM)
予測誤差法は、モデルによる予測値と実際の観測値との誤差を最小化することでパラメータを推定する手法です。この手法の特徴は以下の通りです:
- 原理:モデルの予測出力 $\hat{y}(t)$ と実際の出力 $y(t)$ の誤差 $e(t) = y(t) - \hat{y}(t)$ を最小化
- 目的関数:通常は二乗誤差の和 $J = \sum_{t=1}^{N} e^2(t)$ を最小化
- 特徴:統計的に一致推定量が得られ、理論的基礎が確立されている
- 適用例:ARX(AutoRegressive with eXogenous input)モデル、ARMAX(AutoRegressive Moving Average with eXogenous input)モデルなど
部分空間同定法(Subspace Identification Method)
部分空間同定法は、入出力データから直接状態空間モデルを同定する手法です:
- 原理:入出力データのハンケル行列の特異値分解を利用してシステムの状態空間実現を求める
- 代表的手法:N4SID、MOESPなど
-
特徴:
- 非反復的なアルゴリズム(一度の計算で解が得られる)
- 初期値の設定が不要
- 多入力多出力システムに適用しやすい
- 利点:数値的に安定で、大規模システムにも適用可能
ノンパラメトリック手法
ノンパラメトリック手法は、特定のパラメータ化されたモデル構造を仮定せずにシステムの特性を推定する手法です:
-
周波数応答同定:
- スペクトル解析によりシステムの周波数特性を直接推定
(入出力信号のフーリエ変換の比 $H(\omega) = \frac{Y(\omega)}{U(\omega)}$ から周波数応答を推定) - ボード線図として結果を表現
- モデル構造の事前知識が不要
- スペクトル解析によりシステムの周波数特性を直接推定
-
インパルス応答同定:
- システムのインパルス応答を直接推定
- 畳み込み積分によりシステムの応答を表現
-
ステップ応答同定:
- ステップ入力に対する応答から特性を推定
- 制御系設計でよく用いられる
システム同定の動画・関連記事
以下はシステム同定・モデリングについて説明している動画になります。
大阪工業大学の奥先生の動画です。
システム同定の書籍
システム同定に関する書籍をいくつかピックアップします。
足立先生の書籍はこちらです。
システム同定の基礎
作者: 足立 修一
東京電機大学出版局
MATLABを利用したシステム同定の本がこちらです。
制御のためのシステム同定
作者: 足立 修一
東京電機大学出版局
北九州市立大の藤本先生と広島大の永原先生のシステム同定の本がこちらです。
線形システム同定の基礎 - 最小二乗推定と正則化の原理 - (次世代信号情報処理シリーズ 3)
作者: 藤本 悠介, 永原 正章
コロナ社
和田先生、奥先生、田中先生、大松先生のシステム同定の本がこちらです。
システム同定 (計測・制御テクノロジーシリーズ)
作者: 和田 清, 奥 宏史, 田中 秀幸, 大松 繁
コロナ社
片山先生のシステム同定の本がこちらです。
新版 システム同定: ―部分空間法からのアプローチ―
作者: 片山 徹
朝倉書店
本記事は以上です。