カルマンフィルタの基礎式を代数とベイズ定理から見る
目次
- 目次
- はじめに
- 対象とする運動モデル
- 状態を予測する方法
- 運動モデルを利用した予測
- 観測による推定
- 予測と推定の組み合わせ
- カルマンフィルタ
- 最適カルマンゲインとは
- 最適とは何か
- 分散を最小化するゲインの導出
- カルマンゲインのパラメータ導出
- 入力による分散
- 観測による分散
- カルマンフィルタによる状態推定
- 分散の更新
- 事前推定
- 事後推定
- 対象が高次元の場合
- 変わるところ
- 多次元でのカルマンフィルタ
- おわりに
はじめに
カルマンフィルタの歴史ももう長いことと思いますが,各所で各人なりにまとめられているあたり,なかなか理解の難しいものなんだなあと感じています.
例に漏れず自分もカルマンフィルタの原理がいまいちピンとこなかったので自分なりにまとめてみました.
カルマンフィルタ(Kalman Filter)はフィルタと名付けられてはいますが,使われ方としてはフィルタよりも現代制御のオブザーバ(Observer; 状態推定器)に近いような気がします.
観測した情報から,状態ベクトルが真値に最も近くなるように推定するものです.
概念は以下のところでわかりやすく説明されています.
ただ,数式として少し省略されているところもあったので,改めてまとめるに至りました.
基本的に,代数とベイズの定理のみから丁寧に導出していこうという感じです.
カルマンゲインの式の導出,予測値の算出,分散の更新は天下り的な部分も多いので,今回はこれらの導出に焦点を当ててみました.
統計的にみて,予測値と実プラントの誤差が最小となるように演繹的に求めていくとカルマンフィルタの式に行き着くあたり,統計学の応用先の代表例になっているだけのことはあるなあ,という感想です.
ここでは,状態空間と観測空間が同一の場合のみ扱います.
続きを読む数式処理ソフトウェアで立式した運動方程式をSimulinkで実行する
目次
- はじめに
- ラグランジアンの定義
- 重心位置
- 運動エネルギ
- 位置エネルギ
- ラグランジアン
- Symbolic Math Toolboxによる運動方程式導出
- wxMaximaによる運動方程式導出
- Simulinkでのシミュレーション
- 作成したモデルについて
- 他の対象に適用しようとする人へ
はじめに
運動方程式の立て方とラグランジュ法
制御工学で避けては通れないのが運動方程式の立式です.
プラントモデリングではもちろんのこと,現代制御に代表されるモデルベース制御では制御ロジックを構築するために運動方程式(状態方程式)が必要になります.
運動方程式の立式というと,ほぼラグランジュ法(オイラー=ラグランジュ方程式)一択のような気がしています.
いまいちこのあたりの用語を掴みきれていないのですが,汎函数と呼ばれる"函数を変数とした函数"を変分(汎函数での微分)することで運動方程式を求めるといった流れです.
たとえば,は函数と呼ばれ,という操作が微分と呼ばれることはご存知のとおりです.
それと似たような関係で,を汎函数と呼び,を変分と呼ぶようです.
物体の運動の場合,最も必要エネルギの少ない方向に物体が運動するという原理があるらしく(最小作用の原理?),以下の形式で与えられます.
\begin{align}
I[ y ] = \int^{b}_{a}f( x, y, y' ) dx
\end{align}
特に運動の場合は,右辺をラグランジアンというエネルギ量で与えるようです.
合っている自信はないですが,以下の式のようなイメージです.(時間微分なのでドットで書いています)
\begin{align}
I[ x ] = \int^{b}_{a}L( t, x, \dot{x} ) dt
\end{align}
これはある時刻からまでのエネルギの合計となります.
上の式が最小になるようにすれば良いということで,の変分(微分)がゼロとなるような(停留値)を求めれば良いことになります.
この解(停留値)は決まっていて,これをオイラー=ラグランジュ方程式と呼びます.
\begin{align}
\frac{d}{dt}\left( \frac{\partial L}{\partial \dot{x}} \right) - \left( \frac{\partial L}{\partial x} \right) = 0
\end{align}
解の形式が決まっているのでシーケンシャルに解けて便利なのですが,非常に計算量が多いです.
前置きが長くなりましたがこれを数式処理ソフトウェアで楽にしようというのが今回のコンセプトです.
使用するソフトウェア
この記事では数式処理ソフトウェアとして以下を使用しています.
恐らく運動方程式を求めたあとはMATLAB/SimulinkとかPyControlとかでシミュレーションすることになると思うのですが,結論としてはwxMaxima優位といった印象です.
運動方程式の対象
今回,2重振り子を例として,Simulinkでのシミュレーションまでやってみようかと思います.
ラグランジュ法では物体の運動エネルギ,位置エネルギの関係を与えてあげることが必要になります.
逆に言うとエネルギまで出せてしまえばあとはソフトウェア任せにできます.
続きを読む事前にやってみたところ,wxMaximaのインストールから結果確認まで45分程度で終わりました.
Predictive Functional Controlの実装
目次
Predictive Functional Controlとは?
まずはじめに,Predictive Functional Control (PFC)とは何者か?についてです.
PFCとはモデル予測制御(Model Predictive Control; MPC)のひとつです.Richaletによって提案されました.
Richaletは著書でPFCはPID制御に置き換わる制御則に成り得るのではないかと主張しています.
- 作者: Jacques Richalet,Donal O'Donovan,Karl E.Åstroem
- 出版社/メーカー: Springer
- 発売日: 2009/05/25
- メディア: ハードカバー
- この商品を含むブログを見る
モデル予測制御の分類についてはMyEnigmaさんのところが詳しいのではないかと思います.
また,実装は以下の論文を参考にしています.
(というより,こちらの先生にお世話になりました)
続きを読む