ターゲット環境とアプリケーション
ターゲット環境について
コード ジェネレーターでは、特定のターゲット環境向けの実行可能プログラムのビルドに使用する make ファイルまたはプロジェクト ファイルが生成されます。make ファイルまたはプロジェクト ファイルの生成はオプションです。必要に応じて、サードパーティの統合開発環境 (IDE) などの既存のターゲット ビルド環境を使用して、生成されたソース ファイル用の実行可能プログラムをビルドできます。生成コードのアプリケーションには、エクスポートされた C または C++ 関数を開発用コンピューター上でいくつか呼び出すものから、MATLAB® と Simulink® を実行している開発用コンピューターとはまったく異なる環境で、カスタム ハードウェア用にカスタムのビルド プロセスを使用する完全な実行可能プログラムを生成するものまで、さまざまなものがあります。
コード ジェネレーターには、特定のターゲット環境に合ったコードを生成、ビルド、実行する組み込みのシステム ターゲット ファイルが用意されています。これらのシステム ターゲット ファイルでは、生成されたコードと対話的にやりとりして、データのログ、パラメーターの調整、および生成コードに対する外部インターフェイスとして Simulink を使用した実験やこれを使用しない実験のために、さまざまなレベルのサポートが提供されます。
ターゲット環境のタイプ
システム ターゲット ファイルを選択する前に、生成コードを実行するターゲット環境を特定します。この表に、最も一般的なターゲット環境を示します。
ターゲット環境 | 説明 |
---|---|
開発用コンピューター | MATLAB と Simulink を実行するコンピューター。開発用コンピューターは、a Microsoft® Windows® または Linux® などの非リアルタイム オペレーティング システムを使用している PC または UNIX® 環境ですb.非リアルタイム (汎用) オペレーティング システムは非確定的です。たとえば、コードの実行を一時停止してオペレーティング システム サービスを実行し、サービスの提供後にコードの実行を継続する場合があります。したがって、生成コードの実行可能プログラムは、モデルに指定したサンプル レートより高速または低速で実行される場合があります。 |
リアルタイム シミュレーター | 開発用コンピューターとは別のコンピューターです。リアルタイム シミュレーターは、以下のようなリアルタイム オペレーティング システム (RTOS) を使用している PC または UNIX 環境になります。
生成コードはリアルタイムで実行されます。実行の正確性は、システム ハードウェアと RTOS の特定の動作に基づいて変わります。 リアルタイム シミュレーターは、開発用コンピューターに接続して、データのログ作成、対話的なパラメーターの調整、モンテ カルロ バッチ実行の調査を行います。 |
組み込みマイクロプロセッサ | 最終的に開発用コンピューターから切断し、エレクトロニクス技術を利用する製品の一部としてスタンドアロンで実行されるコンピューター。組み込みマイクロプロセッサは、価格や性能の点でさまざまであり、通信信号の処理に使用されるハイエンドのデジタル信号プロセッサ (DSP) から、量産品 (数百万台生産される電子部品) で使用される安価な 8 ビットの固定小数点マイクロコントローラーにまで及びます。組み込みマイクロプロセッサは以下を行えます。
|
a UNIX is a registered trademark of The Open Group in the United States and other countries. b Linux is a registered trademark of Linus Torvalds. |
ターゲット環境は以下のようにできます。
単一または複数コア CPU を搭載させる
スタンドアロン コンピューターにするか、コンピューター ネットワークの一部として通信させる
Simulink モデルの異なる部分を異なるターゲット環境に展開できます。たとえば、モデルのコンポーネント (アルゴリズムまたはコントローラー) 部分を環境 (またはプラント) から切り離すのが一般的です。Simulink を使用したシステム全体 (プラントおよびコントローラー) のモデル化は、多くの場合、閉ループ シミュレーションとも呼ばれ、開発の初期段階にコンポーネントを検証できることなど、多くの利点があります。
次の図は、モデル用に生成されたコードのターゲット環境の例を示します。
サポートされるターゲット環境のアプリケーション
この表は、各種ターゲット環境のコンテキストでコード生成技術を適用できる方法を示しています。
アプリケーション | 説明 |
---|---|
開発用コンピューター | |
高速化 | MATLAB と Simulink 環境のコンテキストでモデル シミュレーションの実行を高速化する手法。アクセラレータ シミュレーションは、特に実行時間がコンパイル時間やターゲットが最新かどうかをチェックする時間に比べて長い場合に役に立ちます。 |
ラピッド シミュレーション | 開発用コンピューター上でモデル用に生成されたコードを非リアルタイムで実行しますが、MATLAB および Simulink 環境のコンテキスト外で行います。 |
共有オブジェクト ライブラリ | コンポーネントを大きなシステムに統合します。生成されたソース コードとそれに関連する依存関係を、別の環境または他のコードを動的にリンクできる共有ライブラリ内でのシステム構築用に提供します。 |
コンテンツを隠すためのモデルの保護 | サードパーティ ベンダーが使用するための保護モデルは、その他の Simulink シミュレーション環境で生成します。 |
リアルタイム シミュレーター | |
リアルタイム ラピッド プロトタイピング | 物理プラントや自動車など、制御対象のシステム ハードウェアに接続されているリアルタイム シミュレーター上でコードを生成、展開、および調整します。コンポーネントが物理システムを制御できるかどうかを検証するうえで重要です。 |
共有オブジェクト ライブラリ | コンポーネント用に生成されたソース コードと依存関係を、別の環境でビルドされた大きなシステムに統合します。知的所有権保護のため共有ライブラリ ファイルの使用が可能です。 |
ハードウェアインザループ (HIL) シミュレーション | コントローラーなどの物理的ハードウェアを、リアルタイム ターゲット コンピューター上の物理コンポーネント (プラント、センサー、アクチュエータ、環境を含む) のバーチャルなリアルタイム実装と組み合わせて、シミュレーションを実行します。HIL シミュレーションは、物理的ハードウェアとコントローラー アルゴリズムのテストおよび検証を、現実的なスティミュラスに対するリアルタイムのコンポーネント応答の影響を含めて行うために使用します。通常、テストは、HIL シミュレーション結果をシステム要件に対して比較します。検証は、HIL シミュレーション結果をユーザー要件に対して比較します。多くの場合、HIL シミュレーションは、物理的環境のスティミュラスに対するコンポーネント応答による、閉ループのシミュレーションと呼ばれます。 |
組み込みマイクロプロセッサ | |
コード生成 | モデルから、速度、メモリ使用量、シンプルさ、また業界標準やガイドラインの準拠の目的に合わせて最適化されたコードを生成します。 |
ソフトウェアインザループ シミュレーション | 量産用の生成されたソースコードまたは外部ソース コードをコンパイルし、開発用コンピューター上にあるその他の Simulink モデルとは別のプロセスとしてコードを実行します。目標には、back-to-back テストを使用した SIL の結果とモデル シミュレーション結果の比較、または SIL の結果と要件との比較による、初期ソース コードのテストと検証が含まれます。外部コードの統合、ビット単位で正確な固定小数点演算、カバレッジ解析とともに使われるのが一般的です。 |
プロセッサインザループ シミュレーション | 量産用の生成されたソースコードまたは外部ソース コードを開発用コンピューター上でクロスコンパイルしてから、そのオブジェクト コードをダウンロードして、ターゲット プロセッサ上または等価な命令セット シミュレーター上で実行します。目標には、モデルまたは SIL シミュレーション結果に対して PIL シミュレーション結果を比較し、実行時間プロファイリング データを収集することによる検証が含まれます。外部コードの統合、ビット単位で正確な固定小数点演算、カバレッジ解析とともに使われるのが一般的です。 |
ハードウェアインザループ (HIL) シミュレーション | コントローラーなどの物理的ハードウェアを、リアルタイム ターゲット コンピューター上の物理コンポーネント (プラント、センサー、アクチュエータ、環境を含む) のバーチャルなリアルタイム実装と組み合わせて、シミュレーションを実行します。HIL シミュレーションは、物理的ハードウェアとコントローラー アルゴリズムのテストおよび検証を、現実的なスティミュラスに対するリアルタイムのコンポーネント応答の影響を含めて行うために使用します。通常、テストは、HIL シミュレーション結果をシステム要件に対して比較します。検証は、HIL シミュレーション結果をユーザー要件に対して比較します。多くの場合、HIL シミュレーションは、物理的環境のスティミュラスに対するコンポーネント応答による、閉ループのシミュレーションと呼ばれます。 |