第6回 MBDにおける検証の種類について分かりやすく解説
第6回 MBD【モデルベース開発】解説 コラム
第6回 MBD(モデルベース開発)コラム、今回は、MBDにおける検証について紹介します。
目次
はじめに
https://member.eureka-box.com/products/10/categories/2150049210/posts/2159824412
まず、モデルの検証の種類として、シミュレーション検証とプロパティ検証、オープンループ検証とクローズドループ検証という分類を説明します。
そして、その中でも実開発に導入しやすいオープンループでのシミュレーション検証を取り上げ、サブシステムの単体検証に使用する方法を簡単に紹介します。
モデルの検証の種類
https://member.eureka-box.com/products/10/categories/2150049210/posts/2159824412
モデルの検証の種類には、主に、動的検証であるシミュレーション検証と静的検証であるプロパティ検証があり、さらに、シミュレーション検証には、フィードバックがないオープンループ検証とフィードバックがあるクローズドループ検証があります。
詳しく見てみましょう。
シミュレーション/プロパティ検証
https://member.eureka-box.com/products/10/categories/2150049210/posts/2159824412
まずはシミュレーション検証とプロパティ検証です。
モデルの検証として最も多く用いられる検証がシミュレーション検証です。シミュレーション検証では、Simulinkモデルにおいてシミュレーションを実行し、その振る舞いから詳細仕様との一致性や要求に対する妥当性を検証します。サブシステムなど小さな単位ではオープンループ検証、アプリケーション全体などではクローズドループ検証を用いることが一般的です。
Simulinkモデルで扱われるプロパティ検証には、SLDV(Simulink Design Verifier)を用いたプロパティ証明があります。モデルを静的に解析し、証明したいプロパティに反例がないことを網羅的に検証するものです。ただし、準備作業や解析時間が多く必要になるため、シミュレーション検証ほどは使われていません。
オープンループ/クローズドループ検証
https://member.eureka-box.com/products/10/categories/2150049210/posts/2159824412
次に、オープンループ検証とクローズドループ検証です。
オープンループ検証とは、テスト対象の出力を入力にフィードバックする仕組みを持たない検証です。フィードバックなど外部の振る舞いに左右されにくいため、制御変更時の単体検証に加えて、デグレード防止の回帰テストや、リファクタリング前後の一致性検証に向いています。
それに対して、クローズドループ検証は、プラントモデルと検証対象のコントローラモデルとを接続し、フィードバックを用いるシミュレーションです。以前の講座でご紹介したMILSやHILSはこれに該当します。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
検証方法の比較
https://member.eureka-box.com/products/10/categories/2150049210/posts/2159824412
ここまで説明した検証の種類を比較してみましょう。
サブシステムを対象としたオープンループのシミュレーション検証は、手軽に短時間で行うことができます。それに対して、クローズドループを使用する場合は、手間はかかりますが広い範囲を検証することができます。もちろん、単一機能を対象とすることも可能です。そしてプロパティ検証では、1つから複数のサブシステムを対象に、厳密な検証を行うことができます。
このうち、もっとも基本となる「オープンループでのシミュレーション検証」について、少し詳しく見ていきましょう。
サブシステム単体検証(1)
https://member.eureka-box.com/products/10/categories/2150049210/posts/2159824412
オープンループでのシミュレーション検証によりサブシステムの単体検証を行う場合、対象となるサブシステムを検証するための環境が必要になります。
この環境において、入力パターンをテストベクタなどに定義して検証対象のサブシステムへ入力し、得られた出力を期待値と比較した上で合否判定を行います。
サブシステム単体検証(2)
https://member.eureka-box.com/products/10/categories/2150049210/posts/2159824412
MATLAB/Simulinkを用いてサブシステム単体検証を行う場合、外部に定義された信号パターンを検証対象のサブシステムに入力するときには、Simulinkにあるデータのインポート機能や、From Workspaceブロックをはじめとするさまざまなブロックを利用できます。
また、サブシステムからの信号出力には、Simulinkにあるデータのエクスポート機能やTo Workspaceブロックなどを、そして、モデル上で期待値との一致を判定したい場合には、Assertionブロックなどを利用できます。
テストベクタには、こういった情報のほかに、テストシナリオや、他の成果物とのトレーサビリティに関する情報なども記載します。
これからのMBD(モデルベース開発)に求められる技術を知るには
MBDの技術を実際に学んでみたいという方、まずは無料でお試しいただけるオンライン学習を準備しています。
業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。
エンジニアの独学・スキルアップに! 他では学べない技術が充実
上流工程ソフトウェア開発技術を学ぶ!
Eureka Box(ユーリカボックス)
無料会員登録だけでも以下の特典が受けられます。
- 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
- USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
- ソフトウェア開発に関わる無料お試しコンテンツも充実
まとめ
https://member.eureka-box.com/products/10/categories/2150049210/posts/2159824412
モデルの検証は、モデルを動作させてみるシミュレーション検証と、性質を静的に解析するプロパティ検証があり、シミュレーション検証はさらに、フィードバックの有無でオープンループ検証とクローズドループ検証に分かれます。
また、もっとも基本となるのがオープンループでのシミュレーション検証であり、それを使ったサブシステム単体検証は、MATLAB/Simulinkのさまざまな機能を使って実施することができます。
Simulinkを用いたモデルベース開発では、モデルを記述してすぐにシミュレーションを実行できるということが最大の強みとも言えます。モデルベース開発の嬉しさを享受するために、シミュレーション検証を是非身につけましょう。
コンサルティングサービスのご案内
システム・ソフトウェア開発の問題を解決するエクスモーションのコンサルティング。
エクスモーションのコンサルタントは、自動車業界・医療機器業界で多くの支援実績があります。開発現場の皆さまと一緒に手を動かし、状況に合った最適解を見つけることで問題解決に導きます。
MBD(モデルベース開発)のソリューションはこちらをご覧ください。
トップ企業をサポートしてきた技術と知見を1冊に「ソリューションガイドブック」
私達エクスモーションが行った、日本を代表する企業へのコンサルティングやトレーニングとは?
オンライン学習 Eureka Box誕生のベースとなった技術や知見が満載!
実際に支援を行ったお客様からのメッセージも掲載し、読み応えある1冊に仕上げています。