モデルベース開発

MODEL BASED
DEVELOPMENT
組み込みソフトウェア開発の効率化を実現する、モデルベース開発
三栄ハイテックスはMathworks社のMATLAB/SimulinkとdSPACE社のプロトタイピングユニットを活用したモデルベース開発に取り組んでいます。

モデルベース開発とは

モデルベース開発(MBD:Model-Based Development)は、ソフトウェアの設計をモデルで行う手法です。モデル自体が仕様書になるため自然言語による曖昧さを排除できる他、ソフトウェアの実際のプログラムやモーター等の実機がまだ用意できていない段階で開発が進められるため、開発規模の大きい組み込みソフトウェア設計で大きな期待が集まっています。

中でも自動車開発の高度化に伴う、効率的なV字開発を可能とするモデルベース開発の採用が加速しています。

モデルベース開発のメリット

モデルベース開発では、従来のソフトウェア開発と比較して、モデル自体が仕様書になるため自然言語による曖昧さが排除されます。モデルからソフトウェアコードを生成することもできるため、ハンドコーディングによるヒューマンエラーを防ぐことができるといった利点があります。さらに、モデルを使った検証を行うことで、ソフトウェアの実際のプログラムやモーター等の実機がまだ用意できていない段階で、問題点や不具合を見つけることができることも利点です。
組み込みソフトウェア設計(特に自動車業界)では、ソフトウェア規模の増大化や納期の短縮化といった背景から設計効率化への要求が強く、モデルベース開発へのニーズが大きくなってきています。

モデルベース開発の流れ

モデルベース開発では、『モデル』(コンピューター上に数式モデルとして構築した制御システム)を、『実機』(実ECUやモーター)で実現することがゴールです。
ですが、モデルで設計していたものをいきなり全て実機で置き換えると、検証が通らなかった際に手戻りが大きくなってしまいます。
そのため、最初はモデルのみで制御アルゴリズムの検討を行うMILS(Model-in-the-loop Simulation)を行います。そこから制御部をソースコードに置き換えたSILS(Software-in-the-loop Simulation)、制御対象はモデルのまま制御ソフトウェアを実機に載せるHILS(Hardware-in-the-loop Simulation)と、モデルの一部を段階的に実機に置き換えて、MILS/SILS/HILSでそれぞれの結果を比較するといった流れで実装を行います。
 
ブラシレスDCモーターの制御設計事例」の右の写真は、早期に実機の制御対象で制御アルゴリズムを検討する例です。RCP(Rapid Control Prototyping)と呼ばれます。制御ソフトウェアはモデル、制御対象は実際のモーターでシミュレーションを行っています。

モデルベース開発の活用

効率的な設計手法であるモデルベース開発ですが、モデリング技法やプラントモデルの同定、大量のテストケースの生成、検証の自動化、インザループシミュレーションの構築など、要素技術は多岐に渡ります。
他にも、モデルベース開発に関連する取り組みとして、3DCG シミュレーション、LiDARの点群データやカメラの画像データ処理、ディープラーニングによる制御器の自動チューニングというトピックにも挑戦しています。
3DCGシミュレーション
Unreal Engineによる走行シミュレーション
LiDAR/カメラデータ処理
LiDARセンサーによる点群データの処理
ディープラーニング
ディープラーニングによる制御器の自動チューニング

開発事例

当社では、Mathworks社のMATLAB/SimulinkとdSPACE社のプロトタイピングユニットを活用したモデルベース開発に取り組んでいます。

ブラシレスDCモーターの制御設計事例

例として、ブラシレスDCモーターの制御設計事例を紹介します。
ブラシレスDCモーターの制御は、モータードライバーへ与えるPWM波のDuty比を目標の速度と現在の速度の差分に応じて制御するというものです。
優れた制御ソフトウェアでは、モーターへの負荷が変わった場合や目標速度を変更した時でも、モーターの回転速度が即座に目標速度に追随します。