ni.com is currently undergoing scheduled maintenance.
Some services may be unavailable at this time. Please contact us for help or try again later.
このホワイトペーパーでは、HIL (hardware-in-the-loop) テストとは何か、その重要性、シミュレーションとモデルベース設計による仮想テストの活用方法について説明します。 今日では、HILテストは欠陥を特定するだけでなく、命に関わる航空宇宙や自動車産業など、セーフティクリティカルな環境における信頼性の確保にも重要な役割を果たしています。 さらに、HILはソフトウェア中心の製品の設計および開発ライフサイクルを短縮し、高価な物理テストの必要性を最小限に抑えてコストを削減しながら、市場投入までの時間を短縮します。
市場投入までの時間がもたらした大きな影響は、1980年代に元McKinseyコンサルタントのDonald G. Reinertsen氏による画期的な研究によって顕著に表れ 、 「 6ヶ月の遅れはライフサイクルの利益の33パーセントに相当する」ということが示されました。さらに、史上最も悪名高いソフトウェアのバグの1つとして知られる1996年6月4日のアリアン5ロケットの打ち上げと破壊は、組込ソフトウェアの品質の重要性と適切なテストの必要性を工学界に教えました。その結果、損失額は3億7,000万ドル以上になりました。ii これらの数字は、製品設計および開発ライフサイクルの早い段階で適切なテストを行うことにより、バグとエラーを特定することで、遅延による影響と市場投入までの時間を短縮し、コストを削減する必要があることを明確に示しています。
生産開始前に欠陥を検出する技術を使用することが重要です。テストは、単なる後付けやプロセスの最終段階での見せ場ではなく、製品設計および開発サイクル全体の一部として、不可欠で戦略的な資産であることがますます重要になっています。この理解は、フロントローディングテスト、シフト左、モデルベース設計、およびAnything-in-the-Loop (XIL) テストとして知られる手法と戦略の開発と実装へとつながりました。このホワイトペーパーでは、組込ソフトウェア検証における重要なテスト手法の1つとしてHILテストに焦点を当てています。
HILテストに直接取り組む前に、実際に開発する製品(検査対象デバイスまたはシステム(DUT/SUT))を確認することが最も重要です。今日と未来の製品は、明らかにソフトウェア中心で複雑になっています。Wi-Fiルーター、食器洗浄機、食品プロセッサーなどの例を考慮すると、現在はすべて組込ソフトウェアまたはFirmwareに基づいています。自動車、飛行機、スマートフォンは、ソフトウェアベースのシステムであるため、高度なソフトウェア定義が可能であるだけでなく、非常に複雑です。最終的には、ソフトウェアが現在の機能セットと今後リリースされる改良点を定義する要素であることは共通しています。スマートフォンのアップデート可能なアプリは、数千もの機能や機能をマルチツールに変換するこのトレンドを明確に体現しています。
アプリケーション、ファームウェア、およびソフトウェアは通常、ハードウェア上で実行する必要があるため、単独では利用できません。通常、ハードウェアはコンピュータまたはプロセッサ、または単にコントローラです。これは、製品またはシステム(システムのシステムを含む)がハードウェア(コントローラ)とソフトウェアの組み合わせと統合を必要とし、それがDUTになることを意味します。さらに、コントローラの通信環境も必要です。たとえば、洗濯機のコントローラは、十分な水があるかどうかの確認、水の温度の測定、洗濯ドラムの速度(RPM)の制御などを行う必要があります。そのため、コントローラはセンサ(温度、RPM)およびアクチュエータ(ヒーター、電気モーター)に接続する必要があります。これらのセンサは入力としてデータまたはフィードバックを提供し、出力としてコマンドまたは設定値を送信します。これらは、図1に示すように、制御ループ設計理論の非常に基本的な構成要素です。ここでは、コントローラ周辺の環境は通常プラントと呼ばれます。
図1.制御ループ設計の基礎
製品の設計および開発サイクルを見ると、制御ループのすべてのコンポーネントがプロジェクトの開始時に使用できるとは限りません。さらに、開発の初期段階で必要なハードウェアとソフトウェアのコンポーネントをすべて用意して利用可能にすることは非現実的です。ここで、シミュレーションとモデルベース設計がギャップを埋め始めます。
図2は、設計、プロトタイプ作成、ソフトウェアおよびコントローラテスト、物理テストの各段階における、標準的なVダイアグラム表現の製品開発ライフサイクルを示しています。また、MIL(model in the loop)、SIL(software in the loop)、HIL(hardware in the loop)のテスト方法も示します。
図2.Vダイアグラム:ループ内の任意の部分 (XIL) から物理テストへ
デジタルシミュレーションとモデルベース設計は、以下の点で設計プロセス全体において重要です。
シミュレーションとモデルベース設計により、MIL、SIL、HILなどのテスト手法を使用して、テストをより早い段階で開始することができます(フロントローディングテストと呼ばれます)。図2の下部にあるように、制御ループのコンポーネントは、Vダイアグラム上で右から左に移動する場合(左シフトとも呼ばれます)は段階的に置換されますが、実際の製品設計および開発ライフサイクルに合わせて右に移動すると、実際のハードウェアおよびソフトウェアが使用可能になり次第置換されます。
さらに、仮想テストはテストカバレッジを最大化し、コストと時間のかかる物理テストを削減します。組込ソフトウェアで検出される欠陥の概算は、コードの1,000行につき10~20個です。一見するとそれほど多くないように見えますが、現在の日常システムに存在するコードの行数を見ると、推定される欠陥の数は驚くほど多い場合があります。8万行のコード(約800~1,600欠陥)を持つペースメーカーや700万(約7万~14万欠陥)のMRIスキャナなどの医療機器を考慮すると、ソフトウェアの複雑さが膨張する影響は顕著になり、はるかに深刻になります。
これらのシステムの複雑さは、従来の方法で網羅的にテストすることが困難になるほどです。すべてのシナリオを物理的にテストするのは不可能であり、途方もない時間と費用がかかります。さらに、テストケースは実際の状況をすべてカバーしていることを確認することが重要です。このホワイトペーパーの冒頭にあるAriane 5の例にあるように、大きな障害、災害、デバイスのリコールは非常にコストがかかります。しかし、これらの結果がブランドイメージと会社の評判に与える悪影響は、さらに大きいものです。このリスクを軽減するには、モデリングとシミュレーションを使用します。実質的には、すべての可能な繰り返し可能なシナリオで製品を確実にテストできるため、最終的な物理的テストは最後の確認のみで、費用のかかる大災害ではありません。
組込ソフトウェアテストは、シミュレーションとモデルベース設計を多用する互換性のあるワークフローで設計チームとテストチームをつなぐ、問題検出の方法論として機能します。
図3.MIL、SIL、HIL、および制御ループ表現での物理テスト
最初のステージであるMIL(図3の象限1)は、コントローラおよびコントローラ周辺のプラント全体(環境)を含むすべてをシミュレーションします。
第2段階のSIL(図3の象限2)では、ソフトウェアエンジニアは制御モデルからのみターゲット対応のコードを生成し、プラントのシミュレーション中にブロックを置換してソフトウェアプロトタイプを作成します。これら最初の2つの段階では、シミュレーションとモデルを使用したテスト実行が可能になります。
3番目のステージであるHIL(図3の象限3)は、この手法において重要です。コードは、ハードウェアベースの物理的な制御ユニット(ラピッドコントロールプロトタイピングプラットフォームまたは製造コントローラ)にデプロイおよび実行されるため、シミュレーションプラントを使用してすべての可能な実世界のシナリオをテストし、その後(最終)物理テスト(図3の象限4)に進むことができます。
したがって、HILは、車体と駆動系が自動車の生産ラインで結合したものとみなせます。開発されたソフトウェアコードを実際のコントローラハードウェアで実行し、タイミング、同期、および実行上の欠陥をすべて特定することが非常に重要です。このような欠陥は、組込コードをSIL環境で実行した場合などには通常発生しません。
MILおよびSILの強調と利用を更に高めるため、大きな期待と相当の開発が進行中です。しかし、HILは、組込ソフトウェアを実際のコントローラプラットフォームで実行し、安全で確実なソフトウェア中心の製品を自信を持って市場にリリースするための証明ポイントであり、常にそうであるべきです。要約すると、HILテストには以下の利点があります。
図4.魚のたとえ:HILシステムは水槽に相当します。
HILは、実際のDUT (コントローラ上で実行される組込ソフトウェア) の周りに仮想環境または仮想現実 (デジタルツイン) を提供し、実際の環境 (物理ツイン) に接続されていると「認識させる」テスト方法です。これを非常に簡単にたとえると、図4のように、水槽や水槽の中の魚です。水槽は、魚が生き残るために必要なもの(餌、水、温度、塩分など)がすべて揃っていることを確認するために、制御されたシミュレーション環境を提供することで、海洋の現実世界の環境を完全に再現しています。
技術的な側面からDUTのようなソフトウェア中心の製品に焦点を当てた場合、HILはコントローラからの実際の信号をテストシステム(プラント)に接続する組込ソフトウェアテスト手法です。HILは、ソフトウェアモデルとシミュレーションを使用して現実をシミュレートします。つまり、実環境を模擬したHILテストシステムは水槽に相当し、DUT(組込ソフトウェアを実行する物理コントローラ)は魚に相当します。これにより、コントローラ (またはDUT) は、洗濯機、飛行機、または車のように組み立てられた製品に取り付けられていると信じさせます。
テストと設計の反復は、シミュレーションプラントを介して、実際のシステムに接続されているかのように行われます。再現可能な仮想化シナリオを使用することで、エンジニアは、ハードウェアベースの物理テストのように、すべての実際のコンポーネントを使用可能にしたり、コスト、複雑さ、スケジュールの制約を伴わずに、何千もの条件下でコントローラを動作させることができます。実際のコントローラまたはDUTは、HILシステムから入力を取得し、出力をHILシステムに送り返します。HILシステムは、バスインタフェースを含む入力と出力、および必要なプラントモデルを含むHILアプリケーションソフトウェアを実行するリアルタイムコンピューティングコアで構成されています。HILテストシステムのセットアップが、DUTの周りに広範な仮想現実を提供するためのすべての要件を満たすことを確認するには、図5に示すように、少なくともこれらのコア要素で構成されている必要があります。
図5.HILテストシステム設定の制御ループ
前述したように、これらはHILシステムのコア要素にすぎません。追加要素には以下の項目が含まれる場合もあります。
NIプラットフォームベースのHILテストのアプローチは、オープンで柔軟性のあるビルディングブロックのツールボックスを開発者とユーザに提供します。これにより、市販の棚(COTS)製品を使用した大規模なカスタマイズが可能になり、小型ベンチトップからコンポーネントおよびシステム、そして完全な統合HILセットアップまで拡張できます。ユーザは、現在および将来の課題に対して、何をどのように使用し、どのように拡張するかを決定できます。ベンダーへの依存を最小限に抑えながら、ワークフローとテスト資産の開発および保守を完全に制御できます。
NI HILテストシステムアーキテクチャは、HILシステムのさまざまな要素に対応する包括的なハードウェアおよびソフトウェアプラットフォームを提供します。オープンでカスタマイズ可能なツールチェーンにより、NI、NIパートナー、および他社製のハードウェアとソフトウェアを組み合わせてHILテストシステムを適応、スケール、拡張する能力を最大限に高めることができます。
PXIは、真のCOTS技術に基づいて構築された業界標準のハードウェアプラットフォームです。クラス最高のタイミングおよび同期機能を提供し、HILテストシステムの基本要素として機能します。また、PXIは、FPGAベースの技術、汎用インタフェース、業界特有の通信プロトコルなど、DCからRFまでの幅広いI/Oおよびバスインタフェースをサポートしています。
これらのI/Oおよびバス製品は、NI スイッチ負荷および信号調節(SLSC)プラットフォームを追加することでさらに拡張できます。SLSCは、テストシステム側の実際のI/OおよびバスインタフェースとDUT間の信号パスにカスタムフロントエンドモジュールを追加します。標準化されたCOTS接続とフォームファクタにより、障害が発生しやすいポイントツーポイント配線のプロセスを排除します。これにより、システム全体が簡素化され、信号の切り替えと調節、負荷統合、障害挿入などが可能になります。
NI VeriStandは、NI HILシステムおよびリアルタイム条件下での組込ソフトウェアテスト用のコアアプリケーションソフトウェアです。構成ベースのHILシステムのセットアップと制御(UIおよびAPI)、デバッグ、モデル統合、リアルタイム刺激生成、製品内自動化、およびNI LabVIEW、C/C++、Pythonなどの広範なカスタム自動化API機能によって、製品開発ライフサイクルを短縮します。
NI HILテストシステムアーキテクチャの詳細については、 こちら を参照してください。
今日の製品はソフトウェア中心となり、顧客の期待の根底には、製品が将来進化し、改善され、継続的でさらに新しい価値を提供するというものがあります。シミュレーション、モデルベース設計、HILテストを利用した仮想検証テストは、テストカバレッジと製品品質を向上させるための主要な方法です。また、これらの手法は、テストを開始して初期の設計および開発サイクルに統合することで、市場投入までの時間を短縮するとともに、コストと時間のかかる物理的テストの必要性を最小限に抑えます。
これにより、設計を製造段階、そして最終的に市場に投入する最終ステップとして定義され使用されることが多い「テスト」という言葉が、製品全体のイノベーションの戦略的利点に変わります。しかし、HILにおいては、テストは単にプロジェクト計画のチェック欄にチェックを入れるためのものではありません。これは、設計と企業を成功に導くイノベーションに不可欠な要素となります (「6ヶ月の遅れはライフサイクルの利益の33パーセントになる」を参照)。
先進的な企業では、従来型の市場投入のためのテスト以外の用途でHILを使用しています。HILの長期的な目標は、高価な最終製品や大量生産された最終製品におけるコストのかかるミスを防ぐことですが、ソフトウェアエンジニアがソフトウェア設計を繰り返しテストおよび調整するために使用できる設計ツールでもあります。これにより、正式なテストが開始される前に、検査済みの製品が作成されます。さらに、ソフトウェアエンジニアは、思いついた新しいアイデアをただちにテストして結果をすぐに確認できるため、イノベーションを最大限に加速できます。