Main Content

Simulink モデルからの C コードの生成

この例では、Embedded Coder® 製品を使用して、ロール軸自動操縦アルゴリズムの Simulink® モデルから C コードを生成する方法を説明します。

Embedded Coder 製品を使用して、ラピッド プロトタイピング ボード、組み込みプロセッサ、またはマイクロプロセッサに展開するために最適化された C または C++ コードを生成します。Embedded Coder をはじめて使用する場合、またはアプリケーション コードのカスタマイズ要件が最小の場合は、グラフィカル ツールと既定のコード構成の設定を使用して、量産品質のコードを迅速に生成できます。既存の外部コードとの統合のためにカスタマイズしたコードの作成が必要な場合、またはコードのガイドラインと標準を満たす必要がある場合は、ツールを使用して、インターフェイス、コードの外観、パッケージ化、最適化の要件に合うようにコード ジェネレーターを設定できます。

組み込みシステムに展開するコードの生成と確認は、クイック スタート ツールを使用してコード生成用にモデルを準備するのと同じように簡単に実行できます。次に、Simulink エディターからアクセスできるコード ツールを使用して、コード インターフェイスを設定し、コード生成を開始して、生成されたコードを確認できます。

モデル例

このチュートリアルでは、モデル例 RollAxisAutopilot および RollAxisAutopilotHarness を使用します。モデル RollAxisAutopilot は、データ コード インターフェイスを使用するように構成されています。データ コード インターフェイスとサービス コード インターフェイスの比較、およびデータ インターフェイスの詳細情報へのリンクについては、Choose Code Interface for Code Generationを参照してください。

モデルはシミュレーション用に検証済みです。

モデル RollAxisAutopilot を開きます。

open_system('RollAxisAutopilot.slx')

このモデルは飛行機の補助翼位置を制御する基本的なロール軸自動操縦アルゴリズムを実装するものです。

このモデルは、より大規模な飛行機の制御システムの 1 つのコンポーネントを表します。制御システムでは、HDG_Mode 信号を通じて、ロール姿勢保持と機首方向保持の 2 つの動作モードのいずれかにこのモデルを配置します。RollAngleReferenceHeadingMode のサブシステムのそれぞれで、どちらかの動作モードをサポートするロール姿勢の設定点を計算します。

open_system('RollAxisAutopilot/RollAngleReference')

open_system('RollAxisAutopilot/HeadingMode')

その後、BasicRollMode サブシステムの PID コントローラーで、設定点と測定されたロール姿勢および変化率を示すフィードバックに基づいて補助翼位置コマンドを計算します。このモデルは 40 Hz で動作するように設計されています。

open_system('RollAxisAutopilot/BasicRollMode')

このチュートリアルでは、モデル RollAxisAutopilotHarness を使用して RollAxisAutopilot をテストします。

次の方法を学習します。

  1. Embedded Coder クイック スタート ツールを使用してコードを生成します。

  2. データ インターフェイスを設定します。

  3. 実行時に調整できるようにモデル パラメーターをグローバル変数として設定します。

  4. モデル シミュレーションと生成されたコードの結果を比較し、数値が等価か確認します。

  5. 生成されたコードを展開します。

チュートリアルを開始するには、Embedded Coder クイック スタートを使用したコードの生成を参照してください。