FRITによるデータ駆動型制御器チューニング
この記事ではFRITの手続きと「なぜそれで上手く行くのか?」を軽く軽く説明します。
1.はじめに
人間、10年・20年も生きていれば何度も制御器のパラメータを調整する機会があると思います。(要出典)
自分もNHKロボコンで延々とPIDのパラメータチューニングをしていた記憶があります。
人力で調整するのって嫌じゃないですか? 私は嫌です。
この記事では自動でパラメータを調整する手法について説明します。
2.FRITとは?
FRIT(Fictitious Reference Iterative Tuning)とは,
実際のシステムへの入力と出力の1組の時系列データのみを用いて,
オフラインで制御器のパラメータ調整を行う手法.
閉ループ系を安定化する制御器のパラメータを一つ見つければ,
そのパラメータでの入出力データを用いて, 目標応答に近い応答をする制御器のパラメータを計算できる.
何度も制御対象に入力を加えてデータを回収したりする事無くパラメータを調整できる所が嬉しい.
閉ループ系での応答でパラメータ計算を行うので, 単体では不安定な制御対象にも適用できる.
非線形計画になる事と初期パラメータが必要な事が難点.
類似した手法としてVRFTが知られる.
問題設定
下のFig. 1のようなシステムを考える.
制御対象は線形時不変で動特性は未知, 制御器はとして、
を調整可能なパラメータとする.
このシステムの応答を目標応答 に近づける事を目的とする.
( : 目標応答伝達関数)
FRITの具体的な手続き
初期パラメータをとする.
1. 制御器によってFig. 1のシステムを制御した時の実際の入出力データを収集する
(入出力データをそれぞれと置く. )
(※ 参照信号 から出力 までの閉ループ伝達関数はと書けるので,
対象への入力 及び出力 についても をパラメータとした関数と見なせる.)
2. 評価関数を最小化するパラメータ を求める.
ただし疑似参照信号 を と定義する.
以上の手続きがFRITのアルゴリズムである.
なぜこれで上手く行くのか(概略)
に を近づける事で, と を近づける感じのイメージ.
まず疑似参照信号 については, より, 一般のについて
が成立.
① が成立する場合
なる については, が成立するので,
となる.
同じ信号 に対して同じ出力 を出力している事から,
システムの伝達特性も の帯域で同じ特性を持つと言える.
以上から, を実装して, 元の参照信号 を印加する事で となる.
② となる が存在しない場合
これは がで表せる の集合に含まれない場合に対応する.
(例えばPID制御器を用いると, その表現力ゆえにほとんどの場合には は上記の集合に含まれない. )
を用いて, と書き換えると,
これは初期データの下での と の相対的誤差の最小化と解釈できる.
また, Parsevalの定理を用いて変換すると, 離散時間フーリエ変換はとしたZ変換に対応する事から,
とできるので,
が大きくなる周波数帯域での と の相対的誤差の最小化と解釈できる.
この事から, パラメータの計算は初期データの周波数特性 に大きく影響を受ける事が言える.
3.おわりに
対になる手法としてVRFTが知られています. (こちらは開ループ系に適用. 二次計画で解ける.)
Parsevalの定理周りがあまり詳しくないので説明が怪しいかもです.
(前提が抜けてたり, 間違いがあったりしたら教えて下さい)
(追記)
2023年のキャチロボ(ロボット競技)で実戦投入し,
円筒座標系アームの制御用モーターの位置制御PIDゲインの調整に使用しました.
直感的な話ではありますが, 与えた目標応答に応じて良いパラメータが手軽に得られ,
(PIDなので)その後の調整も容易な非常に使い勝手の良い手法だと思います.
こちらの記事の実装が参考になります.
qiita.com
参考文献
www.jstage.jst.go.jp
(↑ここの説明を要約したものがこの記事に対応しています.)