
特にメカやエレキを含むシステム開発においては、不具合が発生した際の手戻りコストは増大します。

これらの開発手法は、「ウォータフォール開発」での手戻りの影響を減らすため、機能単位などに分割し、段階的に開発することで、「ウォータフォール開発」で顕著にみられる手戻りによる「開発期間」や「コスト」増を低減します。(ここでは触れませんが、他にも様々な改善点があります。)

モデルベース開発とは?
「モデルベース開発」とは、MATLAB® Simulink® 等のCAEツールを用いて、動作する「モデル」で「シミュレーション環境」を構築し、動作確認をしながら開発を進める開発手法です。モデルベース開発での「モデル」は、データフローダイアグラムに似た形式で記載されることから、仕様書の内容が含まれていながらシミュレーションにより動作確認が可能なので、”動く仕様書”と呼ばれています。
例えばベルトコンベアで物体を目標位置に移動させる単純なシステムで考えてみます。従来であれば、メカの担当者、エレキの担当者、ソフトの担当者で役割分担して、それぞれの責任範疇において設計をし、インターフェース(入出力)の仕様をすり合わせて開発を進めていきます。「モデルベース開発」では、システム設計時にメカやエレキ、ソフトをモデル化し、シミュレーション環境を用いて、動作確認をします。
そのシミュレーションは、過去に発生した不具合や対象の製品で追加した機能など、着目したいポイントに合わせて作成し、シミュレーション環境を用いてその着目ポイントの動作確認をすることで品質を担保します。
物体が目標位置に仕様通りの速度で移動するかに着目する場合、「メカ」「エレキ」「ソフト」のモデルを作成し、それらを結合して、システムとして仕様通りに物体が動作するかを確認します。
「メカ」モデル・・・モーターの回転運動や、ベルトコンベアの並進運動を数式化し、物体の位置を演算
「ソフト」モデル・・・モーターへの指令値を演算
「エレキ」モデル・・・ソフトからの信号に対して回路特性を含め数式化し、モーターへの電圧を演算
(このケースでは、エレキにおける回路特性が物体位置に大きく影響しないので省略する場合が多い)

メカやエレキ部分のモデルを「プラントモデル」、ソフト部分のモデルを「コントローラモデル」と呼びます。
「プラントモデル」と「コントローラモデル」を組み合わせたシミュレーション環境をMILS(ミルズ)と呼びます。
モデルベース開発では、システム設計から検証までの各工程で、検証内容に合わせた様々なシミュレーション環境を利用します。すべての工程でモデルベース開発を導入するには、コストなど多くの問題が発生します。いきなりすべてを導入するのではなく、特にモデルベース開発の最大の特徴である「手戻り防止」が有効であるシステム設計工程から導入することをお勧めします。
システム設計工程でのモデルベース開発の導入例

実際に利用される際の一例です。
1) システム設計(モデル開発)
システムとして実現したい機能をメカやエレキ、ソフトでどのように役割分担するかを設計します。ここまでは通常のウォータフォール開発と同じです。以降シミュレーション環境を利用して不具合の作りこみを抑制します。
2) MILS(Model In the Loop Simulation)

3) HILS(Hardware In the Loop Simulation)

4) RCP(Rapid Control Prototype)

実機でしか確認できない精度検証や感応評価などを実施します。
5) MILS(Model In the Loop Simulation)

このようにシステム設計工程では様々なシミュレーション環境を上手に利用して、仕様不具合をなくしていきます。またRCP環境が構築できる場合は、精度や厳密なタイミングの確認ができ、目標品質を達成できるかを予め検証することができます。プラントモデルの精度を上げれば上げるほどシミュレーション環境で検証できる項目は増えますが、それに比例してコストが増大します。
シミュレーション環境で検証したほうがよいもの、実機(RCP)環境で検証したほうが良いものを見極めて適用することで、投資対効果を最大化することができます。
最後に
メカやエレキを含むシステムや 大規模なシステム開発の際に、検証工程で発覚する仕様不具合による手戻りで、頭を抱えた方も多いと思いますモデルベース開発は不具合の早期発見・手戻りコストの削減が期待できる開発手法です。だからと言って初めから精度の高いプラントモデルを作成して、効果を最大にしようとしても投資対効果が見合わず断念することもあるかと思います。
まずは手戻りがよく発生する機能などに着目して、シミュレーション環境を導入するところから始めてみませんか。
全てやる、全てやらない、ではなく、モデルベース開発のよいところを上手に既存の開発プロセスに導入することで、これまでよりも品質やコスト、開発期間が改善できます。
本記事ではモデルベース開発のメリットの一つである「手戻り防止」に着目して、システム設計工程にシミュレーション環境を導入することについてご紹介しました。
モデルベース開発は他にも様々なメリットがあります。
・実機なしでソフトの検査ができる
・コントローラモデルからCコードを生成できる
・仕様がドキュメントではなく「モデル」(動く仕様書)の為、人に伝えるときに認識齟齬が少ないなど
これらについては、別の機会にご紹介予定です。
弊社では、シミュレーション環境構築、モデルベース開発に関するエンジニアリングサービスなど、自動車関連を中心に多くの実績があります。本記事で少しでもご興味を持たれましたら、お気軽にお問い合わせください。
富士ソフトの組み込み開発
個別相談も承っております。下記よりお申し込みください。





















































