Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

モデルの構成とコードの生成

この例について

学習目的

  • コードを生成するためにモデルを構成します。

  • モデル チェック ツールを適用し、不正確または不十分なコードを生成する条件とコンフィギュレーションを検出します。

  • モデルからコードを生成します。

  • 生成コードのファイルの位置を特定し、識別します。

  • 生成コードをレビューします。

前提条件

  • Simulink® モデルとサブシステムを開いて変更する技能。

  • モデルのコンフィギュレーション パラメーターを構成する技能。

  • Simulink モデル アドバイザーを使用する技能。

  • C コードを読む技能。

  • サポートされている C コンパイラがインストール済み。

必要なファイル

rtwdemo_throttlecntrl モデル ファイル

コード生成のためのモデルの構成

モデル コンフィギュレーション パラメーターは、コード生成手法と結果の形式を決定します。

  1. rtwdemo_throttlecntrl を開いて、MATLAB パスの書き込み可能な場所に throttlecntrl としてコピーを保存します。次に、[Simulink Coder] アプリを開きます。

  2. [コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインを開きます。モデルのコードを生成するには、固定ステップ ソルバーを使用するようにモデルを構成しなければなりません。次の表では、この例のソルバー コンフィギュレーションを説明します。

    パラメーター設定生成コードへの影響
    タイプ固定ステップコード生成に必要な一定の (固定) ステップ サイズを維持します。
    ソルバー離散 (連続状態なし)モデルの状態導関数を計算するための固定ステップの積分手法の適用
    固定ステップ サイズ.001基本レートの設定。システム内のレートの最小公倍数でなければならない

  3. モデル コンフィギュレーション パラメーター [システム ターゲット ファイル][grt.tlc] に設定します。

    メモ

    汎用リアルタイム ターゲット (GRT) のコンフィギュレーションには固定ステップ ソルバーが必要です。ただし、rsim.tlc システム ターゲット ファイルは可変ステップのコード生成をサポートします。

    システム ターゲット ファイルは、特定のハードウェアまたはオペレーティング システム プラットフォーム上で実行されるコードの生成およびビルド環境を定義します。たとえば、システム ターゲット ファイルのプロパティの 1 つに TLC 変数 CodeFormat の値があります。GRT の構成は固定ステップ ソルバーを必要とし、rsim.tlc は可変ステップのコード生成をサポートします。

  4. モデル コンフィギュレーション パラメーター [インクルード ディレクトリ] を次のように設定します。

    "$matlabroot$\toolbox\rtw\rtwdemos\EmbeddedCoderOverview\"

    このフォルダーには、モデルの実行可能ファイルをビルドするために必要なファイルが含まれています。

  5. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスを閉じます。

MATLAB 関数としてモデル コンフィギュレーションを保存

モデルのコンフィギュレーション パラメーターの設定を、getActiveConfigSet 関数を使用して、MATLAB® 関数として保存することができます。MATLAB コマンド ウィンドウで次のように入力します。

thcntrlAcs = getActiveConfigSet('throttlecntrl');
thcntrlAcs.saveAs('throttlecntrlModelConfig');

出力された関数 (たとえば、throttlecntrlModelConfig) を、以下に使用できます。

  • モデル コンフィギュレーションのアーカイブ。

  • 差分ツールによる異なるモデル コンフィギュレーションの比較。

  • 他のモデルのコンフィギュレーション設定。

たとえば、モデル myModel のコンフィギュレーションを、スロットル コントローラーのモデルのコンフィギュレーションと一致するように設定できます。これは、myModel を開いて以下を入力することによって実行できます。

myModelAcs = throttlecntrlModelConfig;
attachConfigSet('myModel', myModelAcs, true);
setActiveConfigSet('myModel', myModelAcs.Name);

詳細については、コンフィギュレーション セットを保存するおよび保存したコンフィギュレーション セットを読み込むを参照してください。

モデルの条件とコンフィギュレーション設定のチェック

モデルのコードを生成する前に、Simulink モデル アドバイザーを使用して、モデルの条件とコンフィギュレーション設定をチェックします。このチェックでは、不正確または不十分なコードの原因になる問題を検出します。

  1. モデル throttlecntrl を開きます。次に、[Simulink Coder] アプリを開きます。

  2. モデル アドバイザーを起動します。[C コード] タブで、[C/C++ コード アドバイザー] をクリックします。ダイアログ ボックスが開き、モデル階層が表示されます。

  3. rtwdemo_throttlecntrl をクリックし、[OK] をクリックします。モデル アドバイザーのウィンドウが開きます。

  4. 右側のペインで [このチェックを実行] を選択します。レポートにチェックの警告フラグが付いた [実行の概要] が表示されます。

  5. レポートを確認します。警告によって問題が強調表示されます。この時点では、これらの警告を無視できます。レポートの詳細については、モデル アドバイザー チェック レポートの表示を参照してください。

モデルのコード生成

  1. throttlecntrl を開きます。次に、[Simulink Coder] アプリを開きます。

  2. モデル コンフィギュレーション パラメーター [コード生成のみ] を選択します。

  3. モデル コンフィギュレーション パラメーター [コード生成レポートを作成] を選択し、[適用] をクリックします。

  4. コードを生成します。

    診断ビューアーにメッセージが表示されます。コード ジェネレーターは、標準 C とヘッダー ファイル、および HTML コード生成レポートを生成します。コード ジェネレーターは、ファイルを [ビルド フォルダー] に配置します。このフォルダーは、現在の作業フォルダーの配下にある throttlecntrl_grt_rtw という名前のサブフォルダーです。

生成コードのレビュー

  1. コード生成レポートで、生成された C モデル ファイルのリンクをクリックし、生成コードを確認します。レポートの次の項目を確認します。

    • 同定、バージョン、タイムスタンプ、およびコンフィギュレーションのコメント。

    • ファイル内およびファイル間での移動を可能にするリンク

    • データ定義

    • スケジューラ コード

    • コントローラー コード

    • モデルの初期化および終了関数

    • GRT システム ターゲット ファイルの呼び出しインターフェイス — output、update、initialization、start、および terminate

  2. モデル throttlecntrl を保存して閉じます。

次のフィアルの調査を検討してください。コード生成レポートの [コンテンツ] ペインでリンクをクリックします。

ファイル説明
throttlecntrl.cスケジューラ、コントローラー、初期化、およびインターフェイス コードを含む C ファイル
throttlecntrl_data.c生成されたデータ構造に値を割り当てる C ファイル
throttlecntrl.hデータ構造を定義するヘッダー ファイル
throttlecntrl_private.h生成したコードでだけ使用するデータを定義するヘッダー ファイル
throttlecntrl_types.hモデル データ構造を定義するヘッダー ファイル

詳細は、ビルド プロセスのファイルの依存関係の管理を参照してください。

この時点でデータを MAT ファイルに記録することを検討してください。例については、解析のためのログ データを参照してください。

実行可能ファイルの生成

  1. throttlecntrl を開きます。次に、[Simulink Coder] アプリを開きます。

  2. モデル コンフィギュレーション パラメーター [コード生成のみ] をオフにして、[適用] をクリックします。

  3. モデルを作成します。診断ビューアーのメッセージを確認します。コード ジェネレーターはシステム ターゲット ファイルの選択に関連付けられているテンプレート makefile を使用して実行可能ファイルを作成します。外部のタイミングやイベントに依存せずに、ワークステーション上でこのプログラムを実行できます。

  4. ファイル throttlecntrl.exe の作業フォルダーをチェックします。

  5. 実行可能ファイルを実行します。コマンド ウィンドウで !throttlecntrl と入力します。「!」! では、後続のコマンドがオペレーティング システムに渡され、オペレーティング システムによってスタンドアロンのプログラムが実行されます。

    このプログラムでは、コマンド ウィンドウに以下に示す 1 行が出力されます。

    ** starting the model **

    この時点でデータを MAT ファイルに記録することを検討してください。例については、解析のためのログ データを参照してください。

ヒント

UNIX® プラットフォームの場合、コマンド ウィンドウで構文 !./executable_name を使用して実行可能プログラムを実行します。必要に応じて、構文 ./executable_name を使用して OS シェルから実行可能プログラムを実行します。詳細については、外部コマンド、スクリプト、プログラムの実行を参照してください。

重要なポイント

  • コードを生成するには、固定ステップ ソルバーを指定するようにモデル コンフィギュレーションを変更し、システム ターゲット ファイルを選択します。grt.tlc ファイルの使用には固定ステップ ソルバーが必要です。モデルに連続時間ブロックが含まれている場合、可変ステップ ソルバーを rsim.tlc システム ターゲット ファイルとともに使用できます。

  • モデルのデバッグが終わったら、パラメーターのインライン化が有効になるようにモデルを構成することを検討してください。

  • getActiveConfigSet 関数を使用して、今後の使用のためにモデル コンフィギュレーションを保存するか、あるいは他のモデルに適用します。

  • コードを生成する前に、モデル アドバイザーでモデルをチェックすることを検討してください。

  • コード ジェネレーターは、ファイルを作業フォルダーの配下にあるサブフォルダー (model_grt_rtw) に配置します。

関連するトピック