3.理想とする精密機械のMBD
精密機械に適した理想のMBDを追求して辿り着いたのが,数学屋ほん舗のMBDです.
理想と言うのは・・
①モデル作成と演算に時間を要しない.
②ツールが安価で多くの関係者が利用できる.
③実物とモデルの類似性が高い.
牛丼ではありませんが,「早い・旨い・安い」ということになります.
線形化とスプレッドシートは切り札
モデルの線形化は,早い・旨いを実現する切り札のようなものです.演算時間は非線形に比べて圧倒的に短くなります.数千倍くらいでしょうか.
さらに,モデルのボード線図や機構の振動モードを表示できるので,モデルの特徴を把握しやすく,制御設計も容易なことです.
これは,モデルを使って考える上で重要なことですので,牛丼なら旨いに相当するところでしょう.
ここで利用するソフトは,現在のところエクセルとMatlab&Simulinkだけです.エクセルはモデル作成の入力フォーマットとして利用しています.
スプレッドシート一面に広がった複数の数値表は,何とも殺風景ですが,モデル作成が効率的で,モデルの全体も細部も同時に見れるので,実に理想的です.
Simulinkは,制御系をブロック線図で表現できる数値演算ソフトで,制御系シミュレーションには欠かせないツールです.しかし,全体と細部を同時に見ることはできません.
そこで,Simulinkモデルに記入してあるのは全て変数で,代入する数値はエクセルのスプレッドシートに記入するようにしています.
慣れれば,スプレッドシートに勝るインターフェイスはないと思うでしょう.これもまた早い・旨いに貢献している切り札です.
非因果的ですがプロ向き
数学屋ほん舗のMBDは,エクセルで入力した数値情報を自作のmatlab関数を使ってプラントモデル(振動方程式)に変換します.
エクセルで入力する部分は非因果的で,振動解析の知識がなくてもプラントモデルは作れます.
しかし,機械力学や制御工学を知らない人がモデルを作成することは想定していません.その点でプロ向きになっています.
誰でもモデリングできるようなMBDツールを目指している市販の1DCAEや3DCAEとは違います.
その理由は,モデルを一から作成するのは,物理や数学を得意とする,ごく一部の限られたエンジニアだけで良いと考えているからです.
そんなスーパーエンジニアは滅多にいないというのが常識のようですが,その常識は思い込みに過ぎないと思います.
物理や数学を得意とするエンジニアは結構います.ただ,そういう人を大切に扱わなかったり,活躍の場を与えないから育たないだけです.
どの製品にもその製品固有の現象がありますが,そこをモデル化できるのは,自分の頭で数学モデルを考えることができる人だけでして,
どんなにライブラリが豊富になっても,非因果的モデリングツールがあれば解決できるということはありません.
そんな例こそ滅多にないと思います.
ツールにお金はかけない方が良い
将来的には,全て無料ソフトだけの環境で利用できるようにするのが目標です.MBDは誰でも無料で使えるのが理想と考えるからです.牛丼の安いに相当するところですね.
出来上がったMBDシミュレータの一部を変更して,数値実験するような使い方は,なるべく多くの人にして頂きたいですから,計算環境は安価である必要があります.
しかし,安価な計算環境ではMBDモデルを作れないとご心配かもしれませんね.
でも,その心配は必要ないと思います.
微分方程式を知らない人や,数学モデリングが苦手な人まで,一からモデルを作る必要はありません.ここは得意な人に任せればよいのです.
そういう人が社内に見当たらなければ,MBD専門のコンサルタント企業がありますので,ご相談なさると良いでしょう.
数学屋ほん舗にお任せくだされば,受託開発しますし,どうしても自社開発がよろしければ教育も含めて最善策を考えます.
以上のような考え方ですから,
因果的だろうが非因果的だろうが,微分方程式を立てて,それを解ければツールは何でも構わないと考えています.
MBDの種類で,マツダのMBDを紹介しましたが,マツダ技報をいくら読んでも,「MBDにはこのツールが良い」などという話は書いてありません.
大切なのは,できるだけ実機での実験を省略し,机上のモデルで検討を進め,モデルを通して現象を考えることなのです.
(1)機構系モデルの作成
ここから,精密機械のMBDについての具体的な説明をします.制御対象は機械構造物になります.XYテーブルとか,多関節ロボットなどです.
これを微分方程式のモデルにするには,構造物を複数の剛体要素に分割したバネマス構造で表します.
前節で紹介したOpenModelicaの6軸ロボットアームを対象にしています.可動部である関節は変形しやすいので,粘弾性要素を用いて表現します.
粘弾性の値やその位置などの情報を指定されたエクセルフォーマットに記入してゆけば,ばねマスモデルが作れるようになっています.
振動解析などの機械力学に関する知識のある方であれば,このフォーマットがモデリングにとって必要十分であることは,理解できるでしょう.
しかし,そうでなければ,非常に難しく感じるでしょう.そうです.誰でもすぐに使いこなせるようなものではありません.
それでも,ここで説明しているのは,MBDシミュレータの理想形を具体的に分かって頂きたいからです.
タグに
Plantと書いてあるシートが機構モデルの入力用シートです.
ここには,上から
Axis, Damping, Mass, Spring, Connect, Guide, Force, Sensor という名称の表がならんでいます.
Axisはローカル座標系の方向を示しています.3つの数値は左からωx,ωy,ωzです.deg単位で記入します.
Dampingは機構全体に共通する減衰係数です.鉄鋼材料からできた機構の場合,経験的に0.015くらいが妥当です.
Massでは,機構を構成する剛体要素の質量や慣性モーメント,そして重心位置の絶対座標と適用するローカル座標とグループ番号を記入します.
グループ番号とは,各軸の動作で一緒に移動する剛体要素を識別する番号です.
Springでは剛性要素のばね定数だけを記入します.
Connectは,結合する2つの剛体要素名(順番は無関係)と各方向に使用する剛体要素名,結合位置の絶対座標とローカル座標名を記入します.
Guideは,案内要素を表現します.結合する2つの剛体要素名(順番は無関係)と拘束する方向に使用する剛体要素名,結合位置の絶対座標と拘束方向ベクトルを記入します.
Forceは,駆動力を表現します.駆動方向と作用する剛体要素名(順番は無関係)と作用点の絶対座標とローカル座標,グループ番号,駆動軸番号を記入します.
Sensorは,変位計測を示します.計測方向と計測する剛体要素名(順番は無関係)と計測点の絶対座標とローカル座標,グループ番号,最後に計測タイプを記入します.
なお,距離計測センサで計測タイプを1にすると,三角関数の線形近似誤差を補正します.
そして,最後にあるUniteに剛体要素名を記入すると,すでに記入した2つの剛体要素を一体として扱います.
余分な機能のようですが,モデル規模を縮小するときに役立ちます.さて,機構のバネマスモデルは以上で設定完了です.
数値テーブルばかりの入力フォーマットのどこが理想的なのか?疑問に思われるかもしれませんが,1つのシートにばねマスモデルの情報全てを記入できることが素晴らしいのです.
シミュレーションの結果を見て,次々と試行錯誤の設計変更を繰り返すとき,全てのパラメータを1箇所で見れることは,とても重要です.
Simulinkで機構モデルを表現することは良くないと書いていますが,その理由は可読性が悪いからです.
さて,ロボットアームのように複数の関節を持つ構造の場合,関節角度が変化すれば姿勢も変化します.もし,姿勢が変化する対象を線形モデルで表現するのであれば,
個々の姿勢を近似できる複数の線形モデルを準備する必要があります.
そのため,
ActPosと言う名称のシートには,最初の姿勢から最後の姿勢までの変化を区分して表現できるよう,各関節角度の組合せを60種類に分割するように指示しています.
なお,
Plantシートに記入した状態は,各関節角度が零になります.
今回は,システムへの指令入力としてOpenModelicaの指令入力を使いました.
そのため,加速時間や最高速度を自由に設定できる自前の移動経路設定機能は不要でしたが,そういう機能も備えています.