1

ICE シリンダー内のさまざまな状態プロパティの導関数を解く連続 S-Function があります。そのため、関数の出力は、タイム ステップごとにこれらの導関数の積分を出力するように設定されます。これは、7 要素のベクトルです (計算されるプロパティごとに 1 つ)。

block.OutputPort(1).Data = block.ContStates.Data;

サイクルのある時点で、この出力の値を以下のような明示的な値 (つまり、導関数の積分ではない) に変更したいと思います (この場合、明示的な値は x です)。

block.OutputPort(1).Data = block.ContStates.Data;
block.OutputPort(1).Data(3) = x;

この代替出力に切り替えるには、if ステートメントを使用しています。デバッグを通じて、Simulink がこのコード ブロックを正しい位置に入力していることを確認したと思いますが、S-Function の出力は導関数の積分のままであり、非有限エラーが発生します。

連続 S-Function の出力を明示的に設定できるようにするためのヘルプや提案をいただければ幸いです。

4

0 に答える 0