Main Content

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

フィードバック ループでの System object の使用

アルゴリズムで非直達データを System object™ 経由で処理する必要がある場合は、isInputDirectFeedthroughImplメソッド、outputImplメソッド、およびupdateImplメソッドを使用します。これらのメソッドは、System object 経由で非直達データを処理します。

ほとんどの System object は、出力の生成にオブジェクトの入力が必要な直達を使用します。このような直達オブジェクトの場合、stepメソッドは出力を計算して状態値を更新します。ただし、非直達では、オブジェクトの出力は入力に直接依存するのではなく、内部状態に依存します。入力または入力のサブセットは、オブジェクトの状態を更新するために使用されます。このようなオブジェクトの場合、出力の計算は状態値の更新から分離されます。これにより、オブジェクトをフィードバック ループでフィードバック要素として使用できます。

この例では、非直達をもつ遅延オブジェクトを実装する方法を説明します。

  1. MATLAB®[新規作成][System object][標準]を選択します。

  2. [メソッドの挿入]を選択し、outputImplメソッドとupdateImplメソッドを実装します。

    outputImplは状態および/または入力から出力を計算します。updateImplは入力から状態値を更新します。

    outputImplメソッドを実装する場合は、直達フラグが false になる System object 入力にはアクセスしないでください。

  3. 系统对象がコード生成をサポートし,伝播を使用していない場合,仿真软件金宝app®は System object MATLAB コードから直達設定を自動的に推測できます。ただし、System object でコード生成がサポートされない場合は、既定のisInputDirectFeedthroughImplメソッドで false (直達なし) が返されます。この場合、このメソッドをオーバーライドして、非直達動作を指定します。

非直達を処理すると、Simulink エンジンのコンテキスト内でのソフトウェアの System object メソッドの呼び出し方法が変更されます。

関連する例

詳細