モデルベース開発とは



ソフトウェア

公開日:2020/8/10          

前提知識


■考え方
モデルベース開発(Model Based Development:MBD)とは、制御対象物の動作原理(メカニズム、カラクリともいう)を解明、モデルで表現し、そのモデルを使って行う制御システム開発手法のことです。 自動車業界では西暦2000年あたりからMBDという言葉が使われ始め、2010年あたりには実際にMBDによる商品開発を行っていました。

しかしMBDという手法が確立される前から、制御開発においては制御対象物の動作原理を把握するという事はしていた筈で、それはMBDの専売特許ではありません。 物(オブジェクト)を一つのまとまりとして考え、オブジェクトを組み合わせてシステムを構築していく手法であるオブジェクト指向も、MBDより前からあった考えです。

MBDの特徴は、実際にソフトウェアを作る前の仕様の段階、あるいはソフトウェアができてからそれを実機で検証する前の段階で、モデルを使って仕様の検証ができるという点にあると私個人は考えます。 そしてそれを可能にしたのは、開発環境(例えば、MATLABというモデル設計ソフトやHILS(Hardware In the Loop Simulation)というシミュレータの存在、シミュレーションを実行可能にするコンピュータの性能向上など)が整ってきたことが挙げられます。

※ ちなみに、一昔前(2000年以前)のPC性能だったら、エンジンの制御モデル全体を動かすだけでも、とても重くて使い物にならないと思います。また車全体をモデル化して動かすとなった場合は、(目的にもよりますが)スパコン並みのPC性能が必要になります。開発者一人一人が自分のPCで気軽に動かすにはまだまだ性能不足だと思われます。

■モデルとは
モデルにはコントロールモデルとプラントモデルがあり、前者は制御対象物を操作するためのモデルで、後者は制御対象物そのものになります。またそれらモデルの中にも、物理モデルと統計モデルがあり、物理モデルとは物理現象を数式で表現したモデルで、統計モデルは物理現象を回帰式やマッピングで表現したモデルの事をいいます。

 

なお、モデルは全て物理モデルで表現すべきで、統計モデルはMBDの範疇ではないという意見もあるかもしれませんが、検証したい目的に合わせ物理モデルと統計モデルを使い分けるのが良いと思われます。 それは全てを物理モデルで表現するのは以下理由により今は現実的ではないからです。

 ① エンジンの燃焼やバッテリーの反応など、化学反応は物理モデルで表すことが非常に難しい。
 ② 物理モデルをリアルタイムで動かすには、現在のコンピュータの性能では足りなすぎる。

②は先述した様にスパコンがあればリアルタイムで動かすことができるかもしれませんが、開発者一人一人が気軽に動かす環境ではありません。

■V字開発プロセス
MBDを行う際の開発プロセスをV字開発プロセスといい、以下図で表すことができます。開発プロセスの上流(V字の左側)で検証を終わらせることができれば、手戻りの少ない効率の良い開発ができたといえます。

 

検証の手法には、設計段階で行うMILS(Model In the Loop Simulation)、ソフトウェアができた時点で行うSILS(Software In the Loop Simulation)、ソフトウェアを実際にコントローラ(ECU:Electronic Control Unit)に実装した時点で行うHILSがあります。 それぞれの検証手法の使い分けとして、MILSでは検証できない領域(モデルで記述していないプラットフォーム領域など)をSILSで検証し、SILSで検証できない領域(他ECUとの通信領域など)をHILSで検証します。 やはりMILSの時点でできるだけ検証を終わらせる方が手戻りが少なくなるので、MILSで検証できることを増やしていくのが望ましいです。









サブチャンネルあります。⇒ 何かのお役に立てればと

関連記事一覧



ソフトウェア