2.OpenModelicaの例題調査
精密機械のモデルベース開発を考えるとき,そのまま使えそうなツールなのはModelica系言語だと思います.
特に,OpenModelicaは無料で誰もが利用できますし,精密機械に相当する6軸アームの例題が提供されていましたので,
これを詳しく調べることにしました.
右図はその例題に登場する6軸アームです.ここでは,(1)~(4)の順に説明してゆきます.
(1) OpenModelicaのインストール
(2) OpenModelicaのシミュレーション
(3) 機構系モデルの調査
(4) 制御系モデルの調査
(5) シミュレーションの実行
(1) OpenModelicaのインストール
それでは,フリーの1DCAEソフトである OpenModelica をインストールしましょう.
「OpenModelicaのインストールと実行」
というサイトを参考にすれば,容易にインストールできます.インストールしたら,引き続いてOMEditを開きます.
OMEditerを起動すると下の画面が現れます.自由に編集できるロボットアームのパッケージを作るため,先ずは「新規Modelica作成」というボタンを押します.
次いで,入力用のダイアログが出現するので,名前の欄に「MyRobot」と入力して,OKボタンを押します.
すると,左側にあるライブラリメニューに「MyRobot」という僅か4行のモデルが作成されました.
ここで,OpenModelicaが保有する6軸ロボットアームのサンプルモデルをコピーして,保存します.まず,ライブラリブラウザから,Modelica → Mechanics → Multibody → Examples → Systems → RobotR3 の順にアイコンを開いてゆき,RobotR3の複製をルートディレクトリに保存して閉じます.次に,保存したRobotR3.moというファイルを改めて開き,ライブラリブラウザから,RobotR3→fullRobotと開き,アイコンを右クリックして,View Textを選びます.そして,それをそのままMyRobotのテキストとしてコピーし,さきほど作ったMyRobotのテキストメニューにペーストして保存します.
このとき,2か所にあるRobot3の文字列をMyRobotに変更してファイルを保存します.
そうすると,モデルファイルだったライブラリのMyRobotがパッケージになっています.
ここから,fullRobotを開き,出力したい変数の定義式を追記します.24行も追記するのは大変そうに見えますが,上手にコピペすれば僅かな手間で済みます.
(2) OpenModelicaのシミュレーション
次に,メニューバーで シミュレーション → Simulate with Animation を選ぶと,全軸が同時に動作するシミュレーションが行われます.
シミュレーションが実行されたら,変数ブラウザのメニューに各変数がリストアップされるので,記録したい変数( vel1~vel6, pos1~pos6, rot1~rot6, trq1~trq6 )を選択します.24個全部のチェックボックスをONにしたら,csvファイルへの出力ボタンを押し,保存先指定のダイアログが現れたら,ファイル名を付けて保存します.
保存したcsvファイルをエクセルで開くと,1列目が時刻.2列目以降は変数ダイアログで選択した順に,変数値が各列に記録されています.なお,データの時間間隔は一定とは限らないので,修正する必要があります.ここでは,一定時間間隔のデータに書き改めるプログラムをmatlabで作って処理しています.