Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

1 つの出力/更新関数

説明

関数 model_step を生成するかどうかを指定します。

カテゴリ: [コード生成]、[インターフェイス]

設定

既定の設定: オン

オン

モデルの関数 model_step を生成します。この関数は、モデル内のブロックの出力および更新関数コードを含み、rt_OneStep によって呼び出されて割り込みレベルでモデルの 1 クロック期間の処理を実行します。

オフ

出力関数と更新関数のコードを組み合わせて 1 つの関数を作成しません。代わりにコードを別々の関数 model_output と関数 model_update に生成します。

ヒント

Model ブロックがサイクルの一部で、その Model ブロックが直達で代数ループになる場合、エラーまたは予期しない動作をする場合があります。直達の詳細については、代数ループの概念を参照してください。

参照モデルで以下の条件のいずれかが該当する場合、Simulink® Coder™ は参照モデルのこのパラメーターを無視します。

  • マルチレートである

  • 連続サンプル時間がある

  • ログ状態である ([コンフィギュレーション パラメーター][データのインポート/エクスポート] ペインにある [状態] または [最終状態] パラメーターを使用している)

依存関係

  • [コード インターフェイスのパッケージ化][C++ クラス] に設定すると、このオプションが強制的にオンおよび無効になります。

  • このオプションと [クラシック コール インターフェイス] は相互に互換性がなく、GUI から同時に選択することはできません。[クラシック コール インターフェイス] を選択するとこのオプションが強制的にオフおよび無効になり、[クラシック コール インターフェイス] の選択を解除するとこのオプションが (選択されていませんが) 有効になります。

  • このオプションを使用する場合は、[モデル参照] ペインの [代数ループの発生の最小化] オプションの選択を解除しなければなりません。

  • ert_main.c または .cpp をカスタマイズして、各基本レートのモデル ステップ後にモデル出力を読み取った場合、[サポート: 連続時間] パラメーターおよび [1 つの出力/更新関数] パラメーターを両方選択すると、モデルのログ データの対応する出力値とは異なる出力値が、連続出力端子の ert_main から読み取られる可能性があることに注意してください。これは、ログ データはメジャー タイム ステップでの出力のスナップショットであるにもかかわらず、基本レートのモデル ステップ後に ert_main から読み取られた出力は、間にあるマイナー タイム ステップを反映する可能性があるためです。次の表に、不一致をなくす回避方法を示します。

    回避方法カスタマイズされた ert_main.cカスタマイズされた ert_main.cpp
    生成された出力と更新関数を分け ([1 つの出力/更新関数] パラメーターをオフにする)、メジャー タイム ステップのみを反映するモデル出力値を読み取るためのコードを ert_main に挿入します。たとえば、ert_mainmodel_output 呼び出しと model_update 呼び出しの間で、モデル External outputs のグローバル データ構造体 (model.h で定義) を読み取ります。 X 
    [1 つの出力/更新関数] パラメーターを選択し、生成された model.c または .cpp ファイルにコードを挿入してメジャー タイム ステップのみを反映するモデル出力値を返します。たとえば、モデル ステップ関数の出力コードと更新コードの間にモデル External outputs のグローバル データ構造体 (model.h で定義) の値を保存します。その後、更新コードの完了後に値を復元します。XX
    Zero-Order Hold ブロックを連続出力端子の前に配置します。XX

コマンド ライン情報

パラメーター: CombineOutputUpdateFcns
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'on'

推奨設定

アプリケーション設定
デバッグオン
トレーサビリティオン
効率性オン
安全対策

推奨なし

関連するトピック