計測点以外の量「状態」を推量るオブザーバとカルマン・フィルタ


ラズパイとPythonで一緒に!状態制御&センサ・フュージョン入門

状態推定が必要になる理由

図1 現実のシステムでは,すべての状態をセンサで観測できるわけではない.観測できない状態を,モデルと計測から推定して扱うのが状態推定 .画像クリックで動画を見る.または記事を読む.詳細はVOD/Pi KIT/data]ラズパイとPythonで一緒に!カルマン・フィルタ&センサ・フュージョン入門

オブザーバとカルマン・フィルタは,計測点で得られる信号だけでは直接わからない量を推量するための考え方です.ここで推量したい量は,システムの内部で起きている「状態」です.状態は,位置や速度,角度や角速度のように,時間とともに変化してふるまいを決める変数の集まりです.現実の装置では,すべての状態をセンサで観測できるとは限りません.観測できない状態を,モデルと計測から推定して扱うのが状態推定です.

状態推定が必要になる背景には,大きく2つの目的があります.1つは信号処理の目的です.もう1つは制御の目的です.同じ状態推定でも,目的が違うと設計の考え方や評価のしかたが変わります.

信号処理としての状態推定

信号処理の立場では,ノイズを含む時系列データから意味のある情報を取り出したい,という要求が中心です.ロー・パス・フィルタのような手法は,観測信号の高周波ノイズを抑えて見やすくします.一方で,単純な平滑化だけでは,システムが本来どう動いているかを十分に表せない場面があります.そのとき,状態という形で内部の変数を立て,時間発展をモデル化して推定します.

この用途では,計算によって未知の物理量を算出したい,という要求もよく現れます.位置や角度が測れても,速度や角速度が直接は測れないことがあります.近似微分で速度を得る方法もありますが,ノイズが増幅しやすい弱点があります.状態推定を使うと,モデルの整合性と計測情報を合わせて,速度のような量をより安定に推量できます.この考え方はソフトセンサとして整理できます.

  1. ノイズを含む観測から必要な情報を取り出す用途です
  2. 直接計測できない物理量を計算で推量する用途です
  3. 近似微分で不安定になりやすい量を安定に扱う用途です

制御のための状態推定

制御の立場では,システムのふるまいを狙った形に変えることが目的です.状態フィードバック制御のような方法では,状態を入力に戻して応答を整えます.ここで必要なのは,現在の状態がどうなっているかという情報です.ところが現実には,すべての状態を計測できません.そのため,観測できる信号から状態を推定し,制御に使う流れになります.

このときに用いられる代表がオブザーバです.オブザーバは,システムのモデルと計測値の差を使って推定値を更新し,観測できない状態を再構成します.カルマン・フィルタは,雑音や不確かさを統計的に扱い,推定誤差を小さくする方向で推定を更新する枠組みです.どちらも,計測値そのものではなく,状態という内部表現を得るための手段です.

  1. 状態フィードバック制御では状態の情報が必要です
  2. すべての状態を計測できないので推定が必要です
  3. オブザーバやカルマン・フィルタが推定の枠組みです

ラズパイとPythonでの扱い方の要点

ラズパイとPythonの環境では,センサの観測値を逐次取り込みながら,内部で状態推定を回す構成を作れます.複数センサを組み合わせる場合はセンサ・フュージョンの考え方が効きます.加速度,角速度,磁気,距離など,性質の違う観測を統合すると,単独センサでは得にくい状態が推量しやすくなります.推定の品質は,モデルの妥当性,観測の品質,更新周期の安定性に強く依存します.

〈ZEPマガジン〉

動画を見る,または記事を読む

参考文献

  1. [VOD/Pi KIT]MATLAB/Simulink×ラズパイで学ぶロボット制御入門,ZEPエンジニアリング株式会社.
  2. [VOD/KIT]MATLAB/Simulink×ラズパイで学ぶロボット制御入門,ZEPエンジニアリング株式会社.
  3. [VOD/Pi400 KIT]SLAMロボット&ラズパイ付き!ROSプログラミング超入門,ZEPエンジニアリング株式会社.
  4. [VOD/KIT]確率・統計処理&真値推定!自動運転時代のカルマン・フィルタ入門,ZEPエンジニアリング株式会社.