Simulinkのステートメントがプログラミング言語のようでない場合、ステートメントが再び発生するまで最後の真の値が累積されます。Simulinkのステートメントブロックが最後の真の値を累積する場合
ここからわかるように、ランダム値が0.5(条件の場合)未満の場合、通常はif文から期待されるように出力は0になりません。
場合に使用する適切な方法は何ですか? (好ましくは、私は飽和とmatlab関数を入れたくない)
Simulinkのステートメントがプログラミング言語のようでない場合、ステートメントが再び発生するまで最後の真の値が累積されます。Simulinkのステートメントブロックが最後の真の値を累積する場合
ここからわかるように、ランダム値が0.5(条件の場合)未満の場合、通常はif文から期待されるように出力は0になりません。
場合に使用する適切な方法は何ですか? (好ましくは、私は飽和とmatlab関数を入れたくない)
If Action
サブシステム内のOut
ブロックには、無効にしたときに出力がhold
またはreset
のいずれかのプロパティがあります。デフォルトは保留です。あなたはそれをリセットしたい。また、初期状態として0
を指定する必要があります。これがリセットされます。
これまで私はこれを基本的なmatlab関数を使うために行うことができました。
function y = fcn(u)
if u>0
y = u;
else
y = 0;
end
end
しかし、私はそれがブロックを使用する適切な方法だろうと思った。
アクションサブシステムがリセットされている場合は、現在の実装で「保留」されているように見えます。
完璧な答えです。 – user8474858