ハードウェアインザループ (HIL) とは? - MATLAB & Simulink

ハードウェアインザループ (HIL)

ハードウェアインザループ (HIL) シミュレーションは、組み込みシステムの開発とテストに用いる手法です。この手法では、コントローラー ハードウェアの実際の入出力 (I/O) インターフェイスを、物理システムのシミュレーションを行う仮想環境に接続します。ハードウェアインザループ テストは、ハードウェアとソフトウェアの統合を検証するために用いられ、航空宇宙や自動車など、さまざまな業界の認証プロセスの一部になっています。HIL シミュレーションの主な利点の 1 つは、早い段階でハードウェア上で制御アルゴリズムをテストできる点です。すべての物理コンポーネントが揃う前に、エンジニアがシナリオを評価して I/O 接続をテストできるようにすることでリスクを軽減して開発を加速できるため、高価な機器を壊すことなく、システムのロバスト性を確認できます。

ハードウェアインザループ シミュレーションの仕組み

ハードウェアインザループ シミュレーションは、実際のコントローラー ハードウェアと、プラントと呼ばれるシミュレーション対象となる物理システムモデルを連動させることで機能します。実際のコントローラーとプラントモデル間の接続は、実際のアナログやデジタルの入出力 (I/O) で行います。多くの場合、UDP、TCP、CAN、その他業界固有の規格など、さまざまな通信プロトコルが含まれます。通信インターフェイスは、実際の設定、タイミング、配線とともに HIL テストの重要な要素です。これらは、モデルインザループ (MIL) やソフトウェアインザループ (SIL) シミュレーションでは正確に再現することはできません。

HIL テストのための閉ループ制御システム。実際のコントローラーに、コントローラーにフィードバックを提供するプラントモデルが接続されています。テストスイートがコントローラーに入力を提供し、検証要素はシステムの出力側に接続されています。

一般的なハードウェアインザループ テスト設定では、実際の I/O インターフェイスを備えた実際のコントローラーがリアルタイムシステムに接続されます。

HIL テストの手順

ハードウェアインザループ テストは以下の手順で構成されます。

  1. プラントのモデル化: 最初の手順は、物理システムやプラントの数学的モデルを作成することです。このモデルでは実際のシステムの動特性が再現されます。電気や機械のコンポーネント、流体、熱力学的な要素を含む複雑な物理システムをモデル化するには、Simscape™ 製品を Simulink® と組み合わせて使用します。
  2. リアルタイム シミュレーション: プラントモデルは、リアルタイム テスト システム上で実行され、コントローラー ハードウェアからの入力に応答するプラントの動作をシミュレーションします。このリアルタイム シミュレーションは、実際の状況で起こり得るシステムの反応を検証します。リアルタイム テスト システムは、テスト対象デバイスとインターフェイスをとれる I/O ボードを備えた産業用コンピュータで、主に Speedgoat、dSPACE、OPAL-RT、NI などのベンダーによって提供されています。
  3. コントローラーへの接続: 制御アルゴリズムを含むコントローラー ハードウェアは、リアルタイム シミュレーターに接続されています。この接続により、コントローラーは実際のシステムを制御しているかのように仮想プラントと情報をやり取りできます。リアルタイム テスト システムと実際の組み込みコントローラーとの接続には、アナログとデジタルの信号に加えて、イーサネット、CAN、ARINC などの通信プロトコルも使用されます。HIL テストベンチは数千もの入出力ラインを含み、物理的な動作、センサー、電気系統の故障がエミュレートされることがあります。
  4. データ収集とフィードバック: システムはコントローラーとプラントモデルから継続的にデータを取得します。このデータはコントローラーにフィードバックを提供するために使用され、シミュレーションされたプラントの応答に対する動作の調整を可能にします。リアルタイム テスト システムは、ハードウェアインザループ テストの実行中と実行後に解析可能なデータのログを作成します。
  5. テストと検証: エンジニアは、定格操作条件から故障シナリオまで、幅広いテストを実施してコントローラーの性能とロバスト性を検証することができます。HIL シミュレーションではテストを繰り返して改良することができるため、制御アルゴリズムが求められる仕様や基準を満たしていることを検証するのに役立ちます。

MIL、SIL、PIL、HIL の違い

モデルインザループ (MIL)、ソフトウェアインザループ (SIL)、プロセッサインザループ (PIL)、そして、ハードウェアインザループ (HIL) は、組み込みシステムの検証と妥当性確認のプロセスで用いられる重要な手法です。これらの手法は開発サイクルにおいてそれぞれ違った目的で利用され、シミュレーション環境の忠実度が異なります。

モデルインザループ (MIL)

モデルインザループは、開発の初期段階にシステムレベルのシミュレーション モデルを使用して制御アルゴリズムを検証するために用いられます。制御ロジックを簡単に設計してテストを繰り返すことができるため、実際のハードウェアやソフトウェアは必要ありません。コントローラーと物理プラントの両方が、モデルとしてシミュレーションされます。

ソフトウェアインザループ (SIL)

ソフトウェアインザループは、コンパイルされた制御アルゴリズムコードをシミュレーション環境内でテストすることに重点を置いています。実行時にソフトウェアが正しく機能することを検証し、モデル シミュレーションと実装時のギャップを埋める役割を果たします。

SIL は進化を遂げ、コントローラーの付加的なソフトウェア機能やサービスをシミュレーションできる仮想テストへと発展しています。これには、組み込みコントローラーのオペレーティング システム全体のエミュレーションや、サービス指向アーキテクチャ (SOA) コンポーネントをシミュレーションする複数のノード間の通信を含めることができます。

プロセッサインザループ (PIL)

プロセッサインザループでは、非リアルタイムのシミュレーション環境に接続された実際のプロセッサまたは類似するターゲット上で、制御アルゴリズムの実行を行います。この手法では、コード生成、実行タイミング、プロセッサ固有の動作に関連する潜在的な問題をチェックし、ソフトウェアが対象ハードウェア上で想定どおりに機能することを確認します。

ハードウェアインザループ (HIL)

ハードウェアインザループは、制御アルゴリズムと実際のハードウェア コンポーネントの統合を検証するために使用されます。実際のコントローラー ハードウェアをリアルタイムでシミュレーションされたプラントに接続することで、現実的な条件とシナリオでシステムをテストできる忠実度の高い環境を実現します。

インザループ手法の比較
手法 コントローラー 接続 プラント 関連製品
MIL シミュレーション (モデル) バーチャル シミュレーション Simulink
SIL コンパイル済みコード (ソフトウェア) バーチャル シミュレーション Simulink、Simulink Coder™、Embedded Coder®
PIL 実際のプロセッサ TCP/IP またはシリアル シミュレーション Simulink、Simulink Coder、Embedded Coder
HIL 実際のコントローラー ハードウェア アナログ信号とデジタル信号 リアルタイム シミュレーション Simulink、Simulink Coder、Embedded Coder、Simulink Real-Time™

HIL テスト アプリケーション

組み込みシステムのためのハードウェアインザループ シミュレーション

ハードウェアインザループ シミュレーションは、組み込みシステム開発の初期段階で重要な役割を果たします。実際のコントローラー ハードウェアを、物理システムのシミュレーションを行う仮想環境に統合することで、制御アルゴリズムとシステムの相互作用を展開前に検証できるようになります。この早期検証により、エンジニアは設計上の問題を特定して対処し、開発サイクル後半にコストのかかる修正が発生するリスクを抑えることができます。

HIL シミュレーションの主な利点の 1 つは、物理的なハードウェア全体が完成するまでに、ハードウェアのコンポーネントで制御アルゴリズムをテストできる点です。これはリードタイムの長いコンポーネントを含む複雑なシステムの開発には大事なことで、ハードウェアのすべてのコンポーネントの完成を待っていては開発に遅れが生じかねません。HIL テストは、管理された仮想環境でエンジニアがシナリオやエッジケースをテストできるようにすることで、高価な機器にダメージを与えるリスクを軽減します。これによって、開発が加速するだけでなく、貴重なハードウェアを無駄にすることなく、システムが堅牢で実際の運用に対応できることを確認できます。

制御・ソフトウェア エンジニアは、MATLAB® と Simulink を使用することで、HIL シミュレーションを作成して実行することができます。リアルタイム アプリケーションは Simulink で生成して、リアルタイム テスト システムに展開が可能です。

検証と認証のためのハードウェアインザループ テスト

ハードウェアインザループ テストは、自動車や航空宇宙アプリケーションなど、セーフティ クリティカルな組み込みシステムの検証や認証に役立ちます。自動車の機能安全に関する ISO 26262 や航空機システムの DO-178 などの認証規格では、想定されるあらゆる条件下でシステム性能の信頼性を検証する厳密なテストが義務付けられています。

HIL テストの 1 つの側面として、認証規格の重要な要素である要件ベースのテストをサポートしていることが挙げられます。このテストは、指定された要件に照らしてすべてのシステム機能を評価することで、トレーサビリティと想定されたシステム動作の検証を実現します。ハードウェアインザループ テストでは、ハードウェアとソフトウェアの統合テストがサポートされており、故障条件を含むさまざまなシナリオを通して、制御アルゴリズムが定義されたすべての要件を満たしていることを確認できます。この体系的アプローチは、適合性を証明する文書化された証拠を提供することで認証プロセスを支援するだけでなく、厳しい運用環境への展開準備のために、最終製品の信頼性と安全性を高める枠組みも提供します。

一般的な開発ワークフロー手順である、システム要件の定義、システムとソフトウェアの設計、コーディング、ソフトウェア統合、ハードウェア/ソフトウェア統合 (HIL テストを含む)、システム統合、キャリブレーションを示すV 字図。

ハードウェアインザループ テストは、開発ワークフローにおけるハードウェア / ソフトウェア統合手順の一部です。

パワー エレクトロニクス システムのハードウェアインザループ シミュレーション

電力コンバーターやインバーターには、高周波パルス幅変調 (PWM) 信号で動作する半導体スイッチング エレクトロニクスが含まれます。このようなデバイスのリアルタイム シミュレーションには、精密なモデルリングとシミュレーションが必要で、通常、実際のデバイスが動作するサイクル周波数の 100 倍の速度で実行されます。この高周波信号の特性をシミュレーションするには、非常に高速なサンプルステップを実行できるシミュレーション環境が必要で、その性能を満たす FPGA ハードウェアを使用することが常に求められます。

ハードウェアインザループ テストからの 3 つのアナログ信号プロット。サンプルの分解能が秒からミリ秒、マイクロ秒へと変化する様子を示しています。

FPGA ハードウェア アクセラレーションは、閉ループサンプリング周波数の約 100 倍の速度で必要な分解能のサンプルを生成します (MATLAB によるプロット)。

Simulink と Simscape Electrical™ が提供するモデリングライブラリは、複雑なパワー エレクトロニクス システムをシミュレーションする際に、高周波動作の微妙な特徴を捉えることができます。Simulink と Simscape Electrical は、このモデルを FPGA ハードウェアに展開するための HDL コードを生成し、リアルタイムのシミュレーションとテストを実現します。このモデルインザループからハードウェアインザループへの直接的な遷移により、エンジニアは電力コンバーターやモーターインバーターを制御する組み込みソフトウェアの検証が可能になります。

電力系統のハードウェアインザループ シミュレーション

電力系統のシミュレーションでは、電力設備、インバーター、監視コントローラー ロジックなど、さまざまなコンポーネント間の相互作用を正確に把握するために、送電網を適切かつ詳細に表現する必要があります。

送電網をエミュレートするためのケーブル配線用端子を備えたハードウェアインザループ テストベンチの設定。

DLR Grid Lab で送電網をエミュレートするためのケーブル配線用端子。

電磁過渡現象 (EMT) は、Simscape Electrical を使用してシミュレーションできます。同じ電気モデルをリアルタイムテストシステムに展開し、ハードウェアインザループ シミュレーションを実行することができます。

HIL テストベンチには、Modbus や IEC 61850 などの産業用通信プロトコルを使用して監視ロジックやコントローラーと通信する機能が必要になる場合があります。また、電力系統のハードウェアインザループ テストには高電圧設備との連系も求められます。

バッテリー マネジメント システム (BMS) ソフトウェアのハードウェアインザループ テスト

バッテリー マネジメント システムは、電気自動車や航空機、蓄電システムのバッテリーの動作を制御します。BMS の C コードをテストする場合、一般的なアプローチとしてバッテリー セル エミュレーターをハードウェアインザループ システムの一部に使用します。バッテリー セル エミュレーターは、バッテリーセルやパックが実際に受ける電圧や電流のレベルを再現します。これにより、BMS ソフトウェアの充電状態 (SOC) や健康状態 (SOH) の推定などの BMS 機能のテストが容易になります。

現実的な電力レベルで再現されたバッテリーの使用により、エンジニアは過電圧や極端な温度などの状況に対処する BMS ソフトウェアの機能のテストが可能になります。このアプローチにより、バッテリー管理、セル監視、給電ユニットなど、BMS ソフトウェアの要素を徹底的にテストして検証することができます。一般的な HIL テストには次のようなものがあります。

  • 運転サイクルテスト: 全運転サイクル中の状態推定をテスト
  • 故障条件: バッテリーを故障させ、BMS で故障条件を処理できることを確認
  • セルバランス: バランス手法が効果的に機能していることをテスト

Simscape Battery™ には、バッテリー マネジメント システムのハードウェアインザループ テストを実行するリアルタイム アプリケーションに組み込めるバッテリーパックモデルが用意されています。

バッテリー HIL テストベンチの図。リアルタイム HIL シミュレーターとバッテリー セル エミュレーターが含まれ、バッテリー マネジメント システム (テスト対象デバイス) に接続されています。バッテリーモデルは、リアルタイム HIL シミュレーター上で実行されます。

バッテリー HIL テストベンチ。

パワー ハードウェアインザループ (P-HIL)

一般的な HIL テストベンチでは、HIL シミュレーターは低電流・低電圧信号 (通常は最大 10 V) を使用してコントローラー ハードウェアと連動します。この電圧レベルは、リアルタイムシステムに取り付けられた I/O ボードから生成、取得されます。この設定は制御アルゴリズムやシステム動作をテストするのに適しており、コントロール ハードウェアインザループ (C-HIL) とも呼ばれています。

しかし、ソーラーインバーターや電気機械など、より高い電圧や電流を使用するデバイスもあります。その場合、実際の動作条件を正確に再現することが必要になります。このような場合に、パワー ハードウェアインザループ (P-HIL) テストが採用されます。P-HIL では、リアルタイムシステムからの低電圧信号を再現するデバイスの高電圧信号に変換するために、パワーアンプなどの電力機器を使用します。このアプローチは、制御システムのパワーコンポーネントの包括的なテストを可能にし、実際の運用条件下で確実に機能することをテストする枠組みを提供します。

リアルタイム シミュレーターとパワーアンプを示すパワー HIL テストベンチの図。パワーアンプとテスト対象デバイスの間には電力接続があります。電力系統モデルはリアルタイム HIL シミュレーター上で実行されます。

Simulink で作成された電力系統モデルを含むパワー ハードウェアインザループ テストベンチ コンポーネント。

マルチドメイン システムのハードウェアインザループ テスト

マルチドメイン システムのハードウェアインザループ テストにより、エンジニアは実際のハードウェアを使用した実環境で、機械、電気、ソフトウェア コンポーネントなどの異なる物理ドメイン間の複雑な相互作用を検証できるようになります。

Simscape 製品ファミリは、エンジニアがマルチドメイン システムの動的特性をシミュレーションできるよう支援することで、このプロセスを促進します。この動的特性は HIL 設定に統合することができます。たとえば、航空宇宙産業では、Simscape モデルを使用した航空機の飛行制御システムのハードウェアインザループ テストにより、エンジニアは空力、油圧アクチュエータ、および電子制御の応答をシミュレーションすることができます。このプロセスでは、制御アルゴリズムを最適化し、さまざまな飛行条件下での安全な運用を確認できます。

マルチノード ハードウェアインザループ シミュレーション

特定のシナリオでは、ハードウェアインザループ シミュレーションは単一の制御システムの枠を越えて拡張され、複数の制御システムやノードを含むことがあります。このアプローチでは、プラントのシミュレーションだけでなく、コントローラーとプラントの両方を含むノード全体を構成する実際のハードウェアを組み込むことがあります。

通常、実際のノードとシミュレーション ノード間の通信は、産業用プロトコルや、Data Distribution Service (DDS)、Message Queuing Telemetry Transport (MQTT)、Scalable service-Oriented Middleware over IP (SOME/IP) などのミドルウェア ソリューションを使用して行われます。これらのプロトコルは、データや制御信号の交換を容易にします。この手法は自動車業界でレスト バス シミュレーションと呼ばれています。レスト バス シミュレーションでは、1 つ以上の実際の電子コントロール ユニット (ECU) が HIL シミュレーターに接続され、「残りのバス」と残りの ECU がエミュレートされます。この設定により、エンジニアは車両ネットワーク全体のコンテキスト内で個々の ECU をテストして検証を行い、ECU が大規模システムに統合された際に正しく機能することを確認できます。完全なネットワーク環境をシミュレーションすることで、レスト バス シミュレーションは、自動車制御システムの相互運用性と性能をテストする包括的なプラットフォームを提供します。

テストスイートと検証要素を備えた 2 つのシミュレーション ノードと実際のノードを示すハードウェアインザループ テストの図。各ノードは、コントローラーとプラントを持つ制御システムです。

実際のノードとシミュレーション ノードを含むマルチノード HIL シミュレーション。

MATLAB と Simulink を使用した HIL テスト

Simulink は、リアルタイム アプリケーションの設計と構築に効果的なプラットフォームを提供するため、ハードウェアインザループ テストの理想的な選択肢となります。Simulink を使用することで、エンジニアは現実世界の条件をシミュレーションする複雑なモデルを作成し、制御された環境でシステムをテストできます。Simulink は、リアルタイム アプリケーションの開発プロセスを簡略化し、ユーザーがパラメーターを簡単に可視化して調整できるようにします。これは設計やテストの段階で特に役立つ機能です。

[ターゲットで実行] ボタンを強調表示した、Simulink ツールストリップのスクリーンショット。リアルタイム アプリケーションを構築し、Speedgoat システムに自動的に展開する際に使用します。アプリケーションは自動的に起動し、テスト対象デバイスと連動します。

Simulink Real-Time を使用すると、ボタンをクリックして Simulink から Speedgoat システムにリアルタイム アプリケーションを生成し、展開できます。

Simulink Real-Time は、Speedgoat ハードウェアと組み合わせることで、組み込みソフトウェアの検証と妥当性確認向けに強力なプラットフォームを提供します。この設定では、MATLAB スクリプトを使用してリアルタイム HIL アプリケーションを制御し、App Designer で独自の計測パネルを設計することで、ハードウェアを接続した包括的なテストを実現します。シミュレーション データ インスペクターを使用することで、開発者やテストエンジニアはデータを監視して解析し、情報に基づく意思決定を行うために必要なインサイトを得ることができます。さらに、Simulink キャンバスから直接リアルタイム アプリケーションを管理できるため、プロトタイピングと反復的な開発を加速できます。

Simulink を使用して設計されたリアルタイム アプリケーションは、dSPACE、OPAL-RT、NI などのサードパーティの HIL システムでも実行できます。