目次[非表示]
はじめに
システム同定で対象とするシステムのインパルス応答を求めました。システムの出力は、システムへの入力信号と、そのシステムのインパルス応答の畳み込み演算で計算できました。
y(n)=\sum_{k=1}^{N} h(k) u(n-k) インパルス応答は、そのシステムの動特性を表していますが、システムによっては、動特性が稼働状態によって変化したり、システムごとに個体ばらつきがあったり、経年変化することもあります。
このように事前に特定できないシステムの動特性に対し、オンボードで適応的にシステム同定するのが適応アルゴリズムです。
LMSアルゴリズム
ノイズキャンセラーなど最も実用化されているアルゴリズムがLMSアルゴリズムです。
LMSは、インパルス応答を逐次更新していくことで、適応的に動特性を同定しますが、比較的演算負荷が小さいため組み込みシステムにも実装可能です。
基本的な動作は、入力信号 u(n) に対する推定出力信号 y(n) をインパルス応答との畳み込みで算出し、実際のシステムの出力信号 d(n) との差 e(n) が小さくなるようにインパルス応答 h を逐次修正します。
このようなシステムは適応フィルタと呼ばれます。
インパルス応答の更新
h_{k}(n+1)=h_{k}(n)+\mu e(n) u(n-k) e(n)=d(n)-y(n) \hspace{1cm}\mu:\text{修正係数} \hspace{1cm}k:\text{フィルタ係数の数}
Excelで確認
Excelシートの説明
適応フィルタのExcelファイルは、こちらからダウンロードできます。
- 入力信号はステップ信号にランダム値を加えたものにしています。
- システムの出力信号は、インパルス応答の真値と入力信号との畳み込み演算で算出しています。
- 推定出力は、逐次更新していくインパルス応答の推定値と入力信号との畳み込み演算で算出しています
推定出力の畳み込み演算(コンボリューション)
入力信号とインパルス応答(h1~h12)の畳み込み演算は下記のようにしています。
インパルス応答の更新処理
インパルス応答(h1~h12)の更新は下記のようにしています。
結果
グラフやインパルス応答(h1~h12)の最終値を見ると、誤差はゼロに収束し、インパルス応答も真値に収束していることが分かります。
適応フィルタの出力とシステムの出力信号との差 e(n) が小さくなるようにインパルス応答を逐次修正しているだけですが、ちゃんとシステム同定できてます。
LMSアルゴリズムは、1960年に Bernard Widrow と Ted Hoff により提案されました。R.E.Kalmanが現代制御の基礎となる論文「On the General Theory of Control Systems」を発表したのも1960年ですし、1960年はデジタル制御にとってエポックメーキングな年だったんですね。
60年後の世界はどうなっているでしょう。
最後までお読みいただき、ありがとうございました。
0 件のコメント:
コメントを投稿