1.MBDの種類
一口に「MBD」と言っても実に色々あるので,皆さん困惑されているようです.実際,このサイトで閲覧数が一番多いのはこのページです.
そこで今回,コロナ禍で自粛していた時間を利用し,文献やインターネットの情報を再調査し,改訂しました.
記事の根拠となった資料をご覧頂けるようにリンクを貼りました.大きな変更点は,マツダのMBDを加えたことです.
(1) 組込みシステムが対象のMBD
私の知る限り,最初にモデルベースという言葉を使ったのはdSPACE社です.
1990年ごろですが MATLAB&Simulink のプログラムをC言語に自動変換し,組込みシステムに実装できるようにしました.
それまでは,MATLAB&Simulink のプログラムで制御設計した後に,同じ制御を行うC言語のプログラムに書き直していました.
人手作業ですから,時間もかかる上にバグも生じますから,dSPACE社のシステムは実に画期的でした.
そして,これをモデルベース設計と呼びました.
このタイプの特徴は,ECUの組込みソフト開発を対象としていることで,実行可能な仕様書や HILS といった語句が出てくることです.
さて,自動車業界が MathWorks社の MATLAB&Simulink と dSPACE社のモデルベース開発を全面的に採用すると,
モデルベース開発(MBD)は次第に脚光を浴びるようになり,MBDとは,組込みシステムを対象にしたソフトウェア開発を意味するようになりました.
dSPACE Japan社が監修した「モデルベース開発(MBD)」という本には,この辺りの歴史的な背景が詳しく書かれています.
組込みシステム開発が目的のMBDは,加速度的に増加する組込みソフトの業務負荷に対抗することが重要な役目です.
それは,部品サプライヤにも等しく協力が求められ,部品だけでなく部品のモデルも提供するようになりました.
そうなると,モデルを表現するMatlabやSimulinkのプログラミング作法も統一する必要が出てきます.
一度作ったモデルは,上手に使い回したくなります.モデル流通というものです.
このような背景からだと思いますが,2002年に大手自動車会社のMATLABユーザーが集まってJMAABという団体を設立しました.
そして,MBDエンジニアの育成に関する資料
[1],
プログラミング作法に関する資料
[2]
[3]を作成し情報発信しました.
その中でもプログラミング作法に関する資料は貴重です.組込みシステムと関係なくても,MatlabやSimulinkを使う人であれば,一度は目を通しておくと良いでしょう.
内容は,少し細かすぎる気もしますが,これに目を通すだけでプログラミング作法の基本的な考え方が分かります.
JMAABは誰でも会員になれます.登録して最近までの活動を調べると,何が課題になっているのか,現状が見えてきます.
ただし,この活動が自動車会社の動向と一致しているとは限りません.
[1]
MBDエンジニアスキル標準
[2]
matlabプログラミングガイドライン
[3]
制御モデリングガイドライン
(2) 非因果的モデリングツールによるMBD
開発初期の概念設計や構想設計では,単純で抽象的なプラントモデルの制御シミュレーションを行います.
単純とはいっても連立微分方程式を作る必要がありますから,数学モデルに慣れていないと意外に難しいものです.
また,複数の物理現象(材料力学,機械力学,熱力学,流体力学,電磁気学など)を考慮する必要がある場合,
モデルとしての微分方程式を作るには,高度で幅広い物理数学の知識が必要になります.
そこで,種々の物理要素ブロックを図上で結合するだけで,微分方程式を自動生成するツールが開発されました.
Modelicaに代表されるプログラム言語です.他にはDymolaや MapleSim,Simscapeなどがあり,非因果的モデリングツールと呼ばれています.
ライブラリには機構系だけでなく,流体系や熱伝達系のライブラリも揃っていて,
概念設計のように抽象度の高い設計段階でのシミュレーションに適しています.
さて,非因果的モデリングツールとは一体何でしょうか?
短く言えば,代入文だけでなく方程式の形でモデル化できるツールです.
それのどこが優れているかと言うと,実際の要素を物理的に結合するイメージでモデルを作れることです.
資料
[4]
には非因果的モデリングツールの詳しいことが書かれていますので,参考にしてみて下さい.
一方,対照的な因果的モデリングツールであるSimulinkは,ブロック線図そのものでプログラミングできますから,制御系の表現には絶好ですが,
制御対象つまりプラントのモデルを作るには,余り適していません.適していない理由は次の節でも述べますが,
もし適していたら,非因果的モデリングツールなど話題にも上がっていなかったと思います.
近年,この非因果的モデリングツールは,その利用方法を紹介した
[5]
論文
[6]
[7] や,
ツールベンダーの営業努力もあって,次第に普及してきました.
組込みシステムのMBDで,プラントモデル作成に利用され始めたのです.
いずれ,プラントモデル作成は全て非因果的モデリングツールで行うものと思いました.しかし,現実はそうなっていません.
2015年に自動車工業会が発行した資料
[8]
[9]が示すように,プラントモデルを共同で利用するモデル流通の分野では,
当初,非因果的モデリングツールでモデル化することを前提にしていました.
しかし,その後,非因果的モデリングツールでない,Matlab&Simulinkで作られたモデルを前提にしたガイドライン
[10]が登場し,
最近は,経済産業省もMatlab&Simulinkで作られたモデルを前提とするガイドライン
[11]を発行しました.
つまり,Matlab&Simulinkでプラントモデリングするスタイルもまだまだ健在です.
その主な理由は,エンジニアに能力があればMatlabでもプラントモデルは作れるということ,
今のところ,特に優れたモデリングツールは現れていないということです.
私見ですが,プラントモデリングはMatlabやPythonのようなスクリプト言語のツールで作成し,ソフト検証(velification)に,何か1つ非因果的モデリングツールを利用するのが賢そうです.
もし,非因果的モデリングツールの選択に迷うようでしたら,無償のOpenModelicaを暫く使うのです.それで不満を感じるようになりましたら,その時点で有償の非因果的モデリングツールを探すのです.
実際,次節では,6軸のロボットアームについて,OpenModelicaとMatlabの各々で作ったモデルを比較しています.OpenModelicaのライブラリにはロボットアームの例題もあり,それを編集すれば色々な機構も作れそうでした.ただし,各部の剛性を設定するような細かい変更となると容易ではありませんでした.そこで,OpenModelicaで大雑把なモデルを作り,実際に使うMatlabで作った詳細なモデルと比較し,大きな違いが無ければOKとしました.こういう使い方をすれば,OpenModelicaでもさほど不満は感じないと思います.
[4]
Modelicaについて
[5]
1DCAEによるものづくりの革新
[6]
複合・物理領域モデリング
[7]
微分代数方程式に基づく非因果的物理モデリング
[8]
非因果モデリングツールを用いたFMIモデル接続ガイドライン
[9]
FMI活用ガイド
[10]
モデルベース開発に係る自動車産業への影響に係る調査
[11]
自動車開発におけるプラントモデルIFガイドライン
(3) 詳細設計用のMBD(CAE派生型)
これは,機構のCAE(計算機援用設計)を進化させ,機構と制御の同時設計を目指したものです.
組込みシステム開発だけに限定しない点で,MBDらしい考え方に思えるため,機械系の人からは支持されやすいと思います.
しかし,モデルの規模が大きくなる傾向があり,その場合はモデルの修正や演算に長い時間がかかります.
演算時間が実機の数千倍なんて話は当たり前のようです.
それでは,実機データと比較したモデル調整も時間がかかりすぎて,とても出来ません.
結局のところ,実機ができると誰もシミュレーションを使わなくなります.
モデルを利用するのは詳細設計の期間だけに限定されますから,モデル主体の開発とは程遠いことになります.
ただし,3DCAEが役立たないと言っている訳ではありません.
3DCAEで各部材の慣性モーメントや重心位置,結合部の剛性などを机上で予測できますから,単独で利用する分には十分な利用価値があります.
欲張って制御系ソフトまで連携させようとするから,おかしなことになるのです.
2005年発行ですから少し古くなりますが,
Matlab&Simulinkで制御設計した二足歩行ロボットの設計解説書
[12]があります.
機構と制御の同時設計を目指したものではなく,3DCADで機構を設計してから,3DCAEを使って機構モデルのパラメータを算出し,
Matlabでプラントモデリングを行ってからSimulinkで制御設計をしています.
つまり,開発の全てを机上で行っているので,フロントローディングになっています.
注目すべき点は,プラントモデルであるロボット機構を多重の倒立振子としてモデル化し,matlabプログラムでモデリングしているところです.
非因果的モデリングツールでも,Simulinkでもなく,スクリプト言語のMatlabでプラントモデリングを使っています.
近年,グラフィカルなビジュアル言語が好まれ,スクリプト言語は廃れてゆく傾向にあります.
確かに,多くの人が理解すべき内容はグラフィカルな方が良いでしょうが,
一部の専門家が理解すればよい部分まで,グラフィカルなビジュアル言語にする必要はないと思います.
[12]
二足歩行ロボットのモデルベース開発
(4) 制御対象をSimulinkで表現するMBD
これは,制御系はもちろんプラントモデリングまでSimulinkでモデル化する方法です.
例えば,左上図のような1質点バネマスモデルであれば,右上図のようにSimulinkで表現できます.
余りにも当たり前すぎるので,ネットで検索してもヒットしませんが,実際のところ,
プラントモデリングに一番多く行われているモデリングツールはSimulinkだと思います.
しかし,現実的な3次元のバネマスモデルになれば 1つの画面上では表現できなくなり,可読性は著しく低下します.
たとえ1質点でも現実の3次元モデルをSimulinkで表現すると,非常に煩雑になります.ロボットアームのような3次元モデルは到底無理です.
それでも,この方法が多用されるのは,制御のテキストには,よく上図のモデルが書かれているからだと思います.
テキストを書く側としては,プラントも一緒にSimulinkで書いてしまった方が面倒がありません.
一方,読者側からすれば,テキストに書かれているものがベストなものだと信じ込んでしまいます.
このようなことから,プラントまでもSimulinkで表現してしまうのだと思います.
制御屋(ソフト屋と電気屋も含む)以外の人達(機械屋や船屋や飛行機屋,それから物理屋)は,
プラントモデルは微分方程式として扱うのが自然だと考えます.
また,ブロック線図表現にも慣れていませんから,わざわざプラントモデルをブロック線図で表現しようとは思いません.
もしも,あなたの会社のプラントモデリングをSimulinkで行っていたり,実装にdSPACE社の自動変換ツールを使っていないようでしたら,
それは,かなり遅れています.そこを改善するだけでも立派なイノベーションになりますので,ぜひ取り組まれると良いでしょう.
(5) マツダのMBD
マツダも自動車会社ですから,他社と同じように組込みシステムのMBDも行っていると思います.しかし,それだけではありません.
全社を挙げて独自のMBDに取り組み,実際に大きな成果を挙げて会社の強みにしています.
そのような例は他に見当たりません.とても理想的だと言えます.
その取り組みは1990年頃から行われ始めました.当時は「機構と制御の統合設計」と言う呼び方が一般的でした.
もう30年も昔から,数学モデルによる科学的手法を重視し続けてきたことになります.
過去から続くマツダ技報の1つ1つのレポートや「実習で学ぶモデルベース開発」という本を読んでから,そう思うようになりました.
毎年の技報の巻頭言からも,会社を挙げてMBDに真剣に取り組んでいる様子が感じられます.
また,成功したスカイアクティブエンジン開発の立役者がモデルベース開発であると,経営陣が断言しています.
世間では,ただ「モデルベース開発」と言う流行語に便乗し,あたかも先進的なことに取り組んでいるフリをする会社も少なくないように感じます.
そういう場合,使用するモデリングツールばかりに関心が払われるようですが,
マツダの技報に,そのような記述はみられません.3DCAEを利用することで対象の物理現象を理解し,集約した数学モデルを作っています.
マツダでは,1996年から全社的な技術のデジタル化を始め,仮想実験技術に取り組んでいます.
2004年のマツダ技報
[13]
には,各分野での仮想実験技術を紹介しています.
車両騒音振動,側面衝突,耐久性予測,空力・風騒音,空調,ブレーキ振動,エンジン振動などの3次元的なシミュレーションから,
実験式を予測する技術に取り組んでおり.これがマツダのMBDの基盤になっています.
この点で,他の自動車会社とは随分と異なります.
2006年の技報
[14]
には,VTやMBDと並行し,品質管理手法によるロバストな開発手法に取り組んでいたことが書かれています.
2011年の技報
[15]
には,MBDで花開いたSKYACTIVETECHNOLOGYの狙いから実行までの概要が書かれています.
ただ漫然とMBDに取り組んだわけではありません.ブレイクスルーのインパクトが最も大きいパワートレインに着眼したのです.
同じく技報
[16]
には,機能開発・カラクリ解明・ロバスト開発,コモンアーキテクチャなど,
品質工学の考えを取り入れたマージンコントロールの思想を全機種に共通利用できるようにしたことが書かれています.
技報
[17]
はスカイアクティブエンジンの燃焼モデルについて書かれています.1DCAEでもSimulinkでもなく,3次元の気流解析CFDをベースに現象解析を行い,
対象に適した工夫を重ねることで,演算時間の短縮と予測精度の向上を実現しています.
当然,モデル評価実験も行っています.地道に進歩を重ねることで,少しずつ理想に近づけたことが読み取れます.
2012年の技報
[18]
は,取締役である人見氏の巻頭言です.重要な一節を抜粋しましょう.
「今後の企業の開発,生産はこのモデルベース開発にかかっていると考えている。やると決めたものはモデル上で開発をしてしまいその後試作して検証だけで終える.
新技術さえもモデル上で有効性を検証することで開発サイクルが縮小可能であるし,アイディア検証も大きく効率化できる.
このようにして人材や資金を将来に向けることが正しいとする風潮を作ることが企業を永続させるための重要な条件であると考える.」
技報
[19]
は,スカイアクティブエンジンの燃焼モデル作成の経緯が書かれています.どのようにして1D-3Dの連携を成し遂げたのか?
それは,従来行ってきたCAEによる3D現象の把握と実験式の作成だったことが分かるレポートです.
2013年の技報
[20]
は,マツダのMBDを分かり易く説明しています.ともかく試作せずに机上で開発を済ませてしまうことです.
モデリングツールが何であろうと関係ありません.なるべく実機を使わないことで,開発の時間を稼ぐことなのです.
最後に挙げた,2019年の最新技報
[21]
ですが,今も変わらずMBDが企業の生命線であると語っています.つまり,30年以上もこの開発思想は継続し,完全に定着していることを物語っているのです.
[13]
Virtual Testing の紹介
[14]
手戻りのない新技術開発プロセスの構築
[15]
新世代技術「SKYACTIVE」パワートレイン
[16]
SKYACTIVE-Gでの開発プロセス改革
[17]
SKYACTIVE-GにおけるCAEの活用
[18]
SKYACTIV技術とモデルベース開発
[19]
高圧縮比化と冷却損失低減による内燃機関の高効率化
[20]
マツダの目指すモデルベース開発
[21]
日常を豊かにする技術とモデルベース開発
以上,独断と偏見で挙げた5種類のMBDですが,お役に立ちましたでしょうか?
最後に大切なことを書きます.新しいことに挑戦している振りをして「モデルベース開発をやれ!」と号令をかける人を見かけます.
でも,モデルベース開発は手段であって目的ではありません.本当に重要な課題や問題は何なのか?
そこを見究めてください.もしかしたら,モデルベース開発ではなくて,別の手段が有効なのかもしれません.
マツダの役員さんは「エンジンの燃焼効率向上がボーリングの1番ピン(最重要課題)であり,その解決策にMBDを採用した」と言っていました.
ボーリングの1番ピンというのは,それを倒せば後はうまくゆくという意味です.それは一体何か?先ずはそれを考えてください.