6. ロボットのフィードフォワード制御(FF制御)           2007−3−7

(「詳説ロボットの運動学」第6章,または本ホームページ補足説明参照)  

ソースファイル  FFctrlSource    実行ファイル  FFctrlexe

 

(1)FF制御1:関節変位指令値から必要トルクを計算する方法

・関節変位指令値から必要トルクを予め計算しておき,時間を追って系に加える方法である.

・必要トルクは

   ,         (1)

・フィードバック制御系をゲイン()のPID制御とする.誤差をと置き,コリオリ項・重力項などの計算値と実際値が等しいと仮定すると,に関する微分方程式が

                                              (2)

 となる.慣性行列を適当な値に取って一定とすると,誤差に関する線形制御の式になる.その系の特性(固有振動数・減衰比)などは本来設計したものである.ただし慣性行列が変わるので特性もロボットの状態によって変わる.

・その点を除けば,このFF制御は次の(3)加速度制御と本質は同じである.

・この制御方法は制御時の計算機の負担が軽いという特徴がある.

・万一指令と応答が大きくずれたとき,真の必要トルクと計算したトルクがかけ離れ,却って誤差を大きくする恐れがある.

 

(2)FF制御2:応答から必要トルクを計算する方法

 

・実時間で必要トルクを計算してFBトルクに加算する方法である.

・自由度が大きくなると計算量が増え,制御のサイクルタイムでは間に合わないこともある.

・本シミュレータでは扱わない.

 

(3)加速度制御

 

・誤差のフィードバックによる項に系の慣性行列を掛け算したものを必要トルクに加算したトルクを関節に与える.

・誤差をと置き,コリオリ項・重力項などの計算値と実際値が等しいと仮定すると,に関する微分方程式が

                                            (3)

 と,線形制御の式になる.

・この式は(1)((2)式)と異なり,慣性行列を線形化しなくても成り立つ線形化式であり,設計して決めた系の固有振動数・減衰比などはロボットアームがどんな状態にあっても変わらないという特徴がある.

・これを一般に加速度制御と呼んでいる.

 

(4)減速機の伝達効率を考慮したモータの必要トルクの計算

 

(4−1)各関節が独立でFF制御の場合

 

・以下はモータ換算値で計算する.

(1)式で表される関節の必要トルクをモータに換算すると

                                           (4)

・減速機の減速比を,順・逆方向伝達効率を,モータの慣性モーメントを,モータの角速度・角加速度をとする.

・FFトルクのために必要なモータトルクをとすると,減速機の入力トルク

              (5)

(1),またはかつのとき

   順方向にトルク伝達が行われるから効率は順効率<1であり,

      ∴                         (6)

(2)またはかつのとき

   出力側から入力側へトルク伝達が行われるから効率は逆効率<1であり,

      ∴                          (7)

・これがFFトルクであり,ここにFBトルク

                      (8)

を加算したものがモータ駆動トルクである.

                                                    (9)

 

・関節間の干渉がある場合のFFトルクの計算は,このシミュレーションでは省略する.

(6),(7)式の計算で,の正負の判定にはも含めて考えるべきである.

(4−2)2自由度ロボットの加速度制御の場合

 

・2自由度ロボットについて考える.

・1,2関節について,各モータ側から見た減速機の順逆効率を)のどちらか,)のどちらか)とする.

・モータ換算のFFトルクは(5)式と同じく

              (10)

            (11)

・誤差をと置いて,フィードバックトルクを

   (12)

   (13)

 とする.

・FFトルクとFBトルクとの和をモータ駆動トルクとする.

  

       (14)

  

      (15)

・そうすれば,誤差の微分方程式は

                         (16)

                                (17)

                            (18)

                           (19)

 となる.

・慣性行列は正定であるから各制御系は

                               (20)

                             (21)

 となり,系は線形式となる.

・効率),)のどちらを取るかは速度・加速度との兼ね合いから判定する.

 

[FF制御シミュレーションにおける前提]

ロボットタイプ:

2自由度ロボット2種(円筒座標ロボット,SCARAロボット)についてシ ミュレーションする.

メカニズム:

アーム長・ワーク質量を変更すると,自動的に慣性モーメント・質量などの動的パラメータを算出する.

モータパワーを変更すると,自動的にモータ慣性モーメント・許容最大トルクを算出する.

減速比と順方向伝達効率を与えると,逆方向伝達効率を計算する.

減速機の伝達効率を考慮した動力学計算をしている(本ホームページ補足説明参照).

重力:

重力の有り無し(垂直運動・水平運動)を選択できる.

制御系:

フィードフォワード(FF)する必要トルクは指令値から計算している.

3種の制御を選択できる.

(1)トルクフィードフォワード+位置誤差・速度誤差フィードバック制御.

(2)加速度制御(位置誤差の線形制御への換算)

(3)比較のための線形化位置速度誤差フィードバック制御

制御系の特性(固有振動数など)を設定してフィードバックゲインを決めるようにしている.

(1),(2)の場合,ロボットパラメータ推定誤差を想定して,FFトルクの真値に対する倍率を変更できるようにしてる.

・軌道設定:

PTP運動の制御2種,CP運動の4種の軌道がある.

軌道上で台形速度則による時間関数の指令値としている.

 

[FF制御シミュレータの使い方]

(1)使用ファイル名(ワークスペース名)

・使用file名:robcontrol3(program名:robcontrol3.c,  graph2d.h,  robot31.dat,  robot32.dat

・データファイルも一緒の上記ファイルに入れる.

・データファイルを自分で作るときは既存のデータファイル参照のこと.

(2)文字画面でのキー操作

(1) スタート (1-1)ファイルから諸元読み込み

または (1-2) ロボット(円筒座標 or SCARA)を選択 運動タイプ(PTP1, PTP2, CP)の選択

予め設定したロボット諸元表示 (2) 変更する?

(2) 変更する場合:(2-1)ロボットアーム長・(2-2)ワーク質量・(2-3)減速比と効率

(2-4)モータパワー・(2-5)制御特性・(2-6)運動タイプ

の順に,変更したければ変更 (計算後)描画画面へ

(1-2) 変更する場合: (1-2-1)ロボットアーム長・(1-2-2)ワーク質量・(1-2-3)減速比と効率

(1-2-4)モータパワー・(1-2-5)制御特性・(1-2-6)運動タイプ

の順に,変更したければ変更 (計算後)描画画面へ

(1-3) 変更しない場合:描画画面へ

 画面には左:(1)ロボットの運動

 右:(2)関節変位の推移グラフ (3)トルク変動グラフ (4)慣性の変動グラフ

 が描画される.

 

(3)描画画面におけるキー操作

・画面表示の操作

 ‘s’:時間経過による運動の推移

 ‘0’:初期状態に戻る

 ‘t’ or ‘i’:トルク変動 or 慣性変動グラフ描画の切り替え

・パラメータ変更の操作

 ‘r’:データファイルから全パラメータを読み込むために文字画面の(1-1)

 ‘a’ or ‘b’:ロボットを選択し文字画面の(1-2)

 ‘l’:アーム長変更のために(1-2-1)

 ‘u’:減速比効率比変更のために(1-2-3)

 ‘m’:モータパワー変更のために(1-2-4)

 ‘k’:制御系特性変更のために(1-2-5)

  ‘f’ or ‘F’ or ‘B’FF制御・加速度制御・位置速度誤差のFB制御のみの選択

 ‘e’FFトルクの倍率変更のために(1-2-5)

 ‘g’ or ‘h’:重力ありなし(垂直運動 or 水平運動)の選択,そのまま描画画面

 ‘p’ or ‘c’:運動タイプ変更のために(1-2-6)

 ESC:終了

 

・軌道上の点で逆運動学の解がないときは文字画面で警告を出し全て終了

・トルク変動グラフには各モータ換算の負荷として

(1)      慣性トルク (2)コリオリトルク (3)重力トルク (4)摩擦トルク (5)全トルク

の線図が表示される.

 


[FF制御の特徴]

一般的に

・運動に必要なトルクを与えるので,応答が早く,高速運動が可能である.

・必要トルクの多少の誤差もFB制御が補うので,結果には大きく影響しない.すなわち必要トルクの計算は粗くても構わない.

・速度誤差のFBは,速度の遅れを補償していることを意味し,FFがなくても立ち上がりが良い.FFは加速度の遅れを補償していることを意味し,急激な旋回などの大きな加速度が必要な運動に有効である.

・モータには許容限界トルクが存在し,FFトルク+FBトルクが限界を超えない範囲内でのみ高速化が可能である.すなわち高速化の限界は途中でトルクの限界に達する範囲内にある.

 

・FF制御の軌道追従性

加速度偏差を0とする制御法であり,軌道追従性がよい.

正確にFFトルクを計算していれば,誤差は最後まで0となる筈である.

・FF制御の誤差の要因

しかしシミュレーションでは離散的な微分方程式の解法に累積誤差が生じ,わずかに指令軌道と異なる軌道となる.

また,現実にはロボットパラメータが正確には分からないので正確なFFトルクは計算できない.すなわち不正確なFFトルクも誤差を生じさせる要因となる.

ロボットパラメータの推定誤差は,位置誤差+速度誤差FB制御を併用する限り追従誤差への影響が小さい.すなわちFFトルクの概略値を与えることで十分であると言える.

誤差の要因はこのようにいろいろあるが,不正確でもFF制御しないよりもましである.

 

・位置誤差+速度誤差FBとの比較

・シミュレーションの結果を見ると,位置決め時間が長いときは速度誤差FB制御(シミュレーション3.6lineactrl)をいくらか改善したに過ぎないことが分かる.普通のPID制御を速度誤差FB制御が大幅に改善した程にはFF制御は改善していない.

・位置決め時間が短くなると速度フィードバック制御とFF制御の差が歴然となる.

・過大な加速度

急な旋回運動などの加速度が大きな運動ではモータの飽和特性のために,必要なFFトルク出せず指令軌道についていけないことがある.

・FF制御と加速度制御の違い

FF制御と加速度制御はほとんど同じである.FF制御では慣性を線形化して系の特性を決めており,実際には慣性が変わるので,その影響が出ている.一方加速度制御では厳密に線形制御が成り立つので系の特性は変わらない.しかしその差はわずかである.