Main Content

Simulink Coder を使用したコード生成

コード生成技術

MathWorks® コード生成技術によって、アルゴリズムに対する C または C++ コードと実行可能プログラムが生成されます。MATLAB® を使用したプログラミング的方法または Simulink® 環境での視覚的な方法でアルゴリズムを記述できます。リアルタイムおよび組み込みアプリケーションに役立つ、MATLAB 関数と Simulink ブロック用のコードを生成できます。浮動小数点アルゴリズム用に生成されたソース コードと実行可能プログラムは、MATLAB コード実行と Simulink シミュレーションの機能動作と高い忠実度で一致します。Fixed-Point Designer 製品を使用すると、モデルのシミュレーション結果とビット単位で一致する固定小数点コードを生成できます。このような広範なサポートと高い正確性が可能になるのは、コード生成が MATLAB および Simulink の実行エンジンとシミュレーション エンジンに緊密に統合されているためです。Simulink に組み込まれているアクセラレータ シミュレーション モードでは、コード生成技術が使用されています。

Simulink 環境でコンポーネントまたは完全なアプリケーションを設計する場合、Simulink Coder™ または Embedded Coder® を使用してモデルからコードを生成できます。

  • Simulink Coder を使用すると、リアルタイムと非リアルタイムのアプリケーションのラピッド プロトタイピングおよびハードウェアインザループ (HIL) テスト用コードを生成できます。Simulink を使用して生成コードの調整やモニターを行ったり、MATLAB と Simulink の環境外でコードを実行し、対話的に使用したりできます。

  • Embedded Coder を使用すると、本番環境で使用される組み込みプロセッサ向けに、読みやすい、コンパクトで高速な C コードまたは C++ コードを生成できます。生成コードの効率性と外観を管理するために、カスタマイズを適用できます。たとえば、データと関数コード インターフェイス、およびファイルへのコードのパッケージ化の方法を構成することでシンプルに統合することができます。Embedded Coder には、パラメーターの調整、コード パフォーマンスの解析、数値的等価性のテスト、コード カバレッジとトレーサビリティ解析の実行のためのツールが用意されています。

コード生成技術と関連製品には、システム開発用に V モデルに適用できるツールが用意されています。V モデルとは、システム開発の表現で、開発プロセスでの検証ステップに注目したものです。詳細については、システム開発用の検証および確認を参照してください。

Simulink Coder を使用したコード生成

Simulink Coder を使用して、以下の用途の C または C++ ソース コードを生成します。

  • 問題ベースの学習

  • 概念検証の開発、テスト、および最適化向けのラピッド プロトタイピングとリアルタイム シミュレーション

  • ラピッド プロトタイピングおよびハードウェアインザループ (HIL) のターンキー ソリューションの開発

  • デスクトップ プラットフォーム上で実行されるアプリケーション バイナリ

  • 知的所有権を保護するモデル設計と生成コードの開発

ラピッド プロトタイピングおよびリアルタイム シミュレーションおよびリアルタイム ハードウェアインザループ (HIL) シミュレーションのための環境モデルの展開では、Simulink Coder を使用して、ラピッド プロトタイピング向けアルゴリズムの展開、およびリアルタイム HIL シミュレーション向け環境モデルの展開を行う方法を紹介します。

ラピッド プロトタイピングおよびハードウェアインザループ (HIL) のターンキー ソリューションの開発の詳細については、コードとツールのカスタマイズSimulink Real-Time™、および Simulink Desktop Real-Time™ を参照してください。

モデルの保護では、知的所有権を保護するモデルと生成コードの開発に関する情報を提供します。

大量生産で使用される組み込みプロセッサのコードを生成して展開するには、Embedded Coder を使用します。Embedded Coder では、Simulink Coder の以下を含む機能 (ただし、これに限定されない) が拡張されています。

  • 外部コードとの統合が可能な関数コード モジュールの生成

  • 高度なコード最適化

  • コード インターフェイスなどのコードの外観の制御

  • 検証、テスト、および認定用の各種ツール

コード生成向けにサポートされている製品とブロックの使用に示すように、ほとんどの Simulink ブロックと多くの MathWorks 製品用にコードを生成できます。次の図は、Simulink Coder を使用して、コードを生成して展開する方法を示しています。

コード生成ワークフローは、システム開発用の V モデルの一部です。プロセスには、モデル設計、コード生成、コード検証、およびリアルタイムでの実行可能プログラムのテストが含まれます。リアルタイム アプリケーションのラピッド プロトタイピングの場合、一般的なタスクは以下のとおりです。

  • モデル コンフィギュレーション セットでのコード生成用モデルの構成

  • コード生成アドバイザーを使用したモデル コンフィギュレーションの実行効率性の検査

  • C コードの生成と表示

  • 生成されたコードの実行可能ファイルの作成と実行

  • 実行結果の確認

  • ターゲットの実行可能ファイルのビルド

  • 外部モデルのターゲット プログラムの実行

  • テストを目的とした外部プロセスへの Simulink の接続

  • 信号の監視とパラメーター調整によるプログラムのさらなるテスト

ソフトウェアをアプリケーション開発に適用する場合の一般的なワークフローを次に示します。

これらのタスクの実行方法の詳細については、モデル用 C コードの生成を参照してください。