(3) OpenModelica例題との比較
比較の目的は自作matlab関数の検証
数学屋ほん舗のMBDシミュレーションは,Excelを使って作成したモデルパラメータのデータを,Matlab上に読み込んで実行します.
表面上はExcelが重要な役目を果たしているように思われるかもしれませんが,単にテキストデータを作っているだけに過ぎません.
Simulinkも状態空間モデルを作っているだけです.
実のところ,一番重要なのは表に出てこないmatlabのプログラムです.
機構各部の慣性や剛性から機構の特性行列を作成したり,さらに駆動力の作用点や駆動方向などの情報から機構の状態空間モデルを作成しています.
そして,これらの重要なプログラムは全て自作のmatlab関数です.自作ですから怪しい訳です.特に新しく作ったり編集した部分は,ちゃんと検証しておきたい.
今回,OpenModelicaの例題である6軸ロボットアームに近いモデルを作ったのは,web上で理想のMBDを説明するためでしたが,
同時に,多関節ロボットアーム用に自作したプログラムの検証(validation)を行うことでもありました.
特に多関節ロボットでは,複雑な座標変換を行うキネマティックスの計算を使うので,その検証は絶対に必要でした.
検証はできたが課題は残った
残念ながら,OpenModelicaの例題は完全に開示されていないことや,電流の上限を設定することで安定化させている部分があり,検証用としては不十分でした.
それでも,大体同じような動作をさせるのに,大体同じ程度のトルクを発生させていたことは確認できたので,大きな間違いはないことは確認できました.
どのように確認したのかをご説明しましょう.
下に示した6つの図は,各軸の角度(rad)を比較しています.青線が自作モデル,緑線が例題モデルです.概ね一致していますが,軸によっては始点と終点付近で微妙な違いがあります.
青線は所々に段差がありますが,これは区分線形化でモデルが切り替わっているために生じた現象ですので,気にしないでください.
本当のところは,緑線に青線がぴったり重なって欲しいところでしたが,制御ゲインを上げると不安定化するため,この程度しか一致させることができませんでした.
モーターの応答性が良ければ,もう少し良い結果にできたと思うので,次は,例題の条件を少し緩めた制御設計を行ってみたいと思います.
次に示したのは,各軸のトルクです.これも軸によって一致具合が異なりますが,全ての軸の変動幅と始点終点の値は概ね一致しています.
これは,キネマティクス計算の検証と言う点では意味があると思います.
ただし,第6軸のトルクは正負か逆のようで,その原因は今のところ分かりません.
今回も,例題のトレースは不完全な状態でしたが,ある程度の一致はみたので,自作のキネマチック計算に大きな誤りはないと考えています.