このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
アルゴリズムで非直達データを System object™ 経由で処理する必要がある場合は、isInputDirectFeedthroughImpl
メソッド、outputImpl
メソッド、およびupdateImpl
メソッドを使用します。これらのメソッドは、System object 経由で非直達データを処理します。
ほとんどの System object は、出力の生成にオブジェクトの入力が必要な直達を使用します。このような直達オブジェクトの場合、step
メソッドは出力を計算して状態値を更新します。ただし、非直達では、オブジェクトの出力は入力に直接依存するのではなく、内部状態に依存します。入力または入力のサブセットは、オブジェクトの状態を更新するために使用されます。このようなオブジェクトの場合、出力の計算は状態値の更新から分離されます。これにより、オブジェクトをフィードバック ループでフィードバック要素として使用できます。
この例では、非直達をもつ遅延オブジェクトを実装する方法を説明します。
MATLAB®で[新規作成]、[System object]、[標準]を選択します。
[メソッドの挿入]を選択し、outputImpl
メソッドとupdateImpl
メソッドを実装します。
outputImpl
は状態および/または入力から出力を計算します。updateImpl
は入力から状態値を更新します。
outputImpl
メソッドを実装する場合は、直達フラグが false になる System object 入力にはアクセスしないでください。
系统对象がコード生成をサポートし,伝播を使用していない場合,仿真软件金宝app®は System object MATLAB コードから直達設定を自動的に推測できます。ただし、System object でコード生成がサポートされない場合は、既定のisInputDirectFeedthroughImpl
メソッドで false (直達なし) が返されます。この場合、このメソッドをオーバーライドして、非直達動作を指定します。
非直達を処理すると、Simulink エンジンのコンテキスト内でのソフトウェアの System object メソッドの呼び出し方法が変更されます。