スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

瞬時速度オブザーバ,イナーシャ同定など

だいぶ更新が止まってしまったが,ここ最近はモータ制御アルゴリズムの改良に取り組んでいる.
追値制御の速度精度はリアルタイムのエンコーダ誤差補正でかなり滑らかになったが,低速域の残留振動が気になっていた.
 これまでにエンコーダパルスの極性反転を無視する不感帯を入れたり,超低速までカバーできる大容量のInput-Captureタイマを使用するなどして改善を試みてきたが,駆動慣性が極端に小さい場合やエンコーダが1制御サイクルに1pulseも来ないような低速ではどうしても振動が生じてしまう.
この原因はエンコーダパルスの分解能が不足していることにある.
先の実験で、エンコーダ分解能を上げれば改善することは分かっているが,そうすると要求される計算リソースがそれに比例して大きくなってしまう.(また,エンコーダの値段も当然上昇する.)
あるいは低速時にカクカクになる速度信号を滑らかにしようと,安易にLPFを挿入したりすると追従速度も遅くなってしまい,せっかくのコアレスモータの機敏な応答が失われてしまう.
なんとか応答速度は高速をキープしたままもっと滑らかな速度値を得られないものか・・・

そこで,制御周期内にパルスが来ない区間の速度をモデル推定する 瞬時速度オブザーバ を実装してみた.
以下がその実験結果の一部.


グラフはSin波形で目標速度を変化させた時のモータ速度の追従精度を表している.
瞬時速度オブザーバ(Instantaneous Speed Observer =ISO)をONにすると,低速域の速度リプルが小さくなっていることがわかる.
とくに制御周期の2~4倍の間エンコーダのパルスが来ないような超低速域で,速度がカクカクになって振動してしまうのを防ぐ効果がある.
このことは,例えば同じイナーシャに対して速度F/Bのゲインを高くした場合の振動抑制にも効果があることを示している.
また,制御周期をDSP等でさらに高速化すれば低速だけでなく中速,高速域でも速度制御を滑らかにする効果がある.

瞬時速度オブザーバでは,パルスが来ない区間の速度を電流の積分値から計算した速度推定値で補うことができる.
つまりいつでも好きなタイミングで「当たらずしも遠からずの速度の瞬時値」が得られる.
ただし,この電流積分から得られる推定速度は外乱等の影響でどんどんドリフトするので,エンコーダパルスが来た瞬間に真値に近づくように補正してやる必要がある.
推定値の修正はパルス発生ごとに行う方法と,制御周期ごとに行う方法があるが,パルス発生ごとに割り込み等で行ったほうがより正確な値に近くなる=そのぶんより低速まで安定して推定できる.

ISOを使うには①電流検出精度と,②イナーシャや摩擦抵抗の正確な同定が重要になる.
今回①は自作のモータドライブ基板に差動アンプや高精度ADCをフル活用して精度を確保しているため問題ない.
②は今のところ台形速度駆動や一定速度駆動時の電流値などからオフラインで算出しているが,少々面倒なので今後はオンラインで同定できるように,逐次最少2乗法などを実装していきたい.

スポンサーサイト

この記事へのコメント

実装ありがとうございます - k2 - 2015年06月14日 14:37:25

今野です。
20年前の私の卒業論文、引用ありがとうございます。

トラックバック

URL :

プロフィール

もやね

Author:もやね
長野県在住の会社員(メカニカル・エンジニア).
ロボットは完全な趣味としてやってます.
E-mail:
mo_ya_ne[a]yahoo.co.jp
[a]⇒@

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
FC2カウンター
ブログ内検索
RSSフィード
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。