2017-08-20 4 views
0

Simulinkのステートメントがプログラミング言語のようでない場合、ステートメントが再び発生するまで最後の真の値が累積されます。Simulinkのステートメントブロックが最後の真の値を累積する場合

ここからわかるように、ランダム値が0.5(条件の場合)未満の場合、通常はif文から期待されるように出力は0になりません。

enter image description here

場合に使用する適切な方法は何ですか? (好ましくは、私は飽和とmatlab関数を入れたくない)

答えて

1

If Actionサブシステム内のOutブロックには、無効にしたときに出力がholdまたはresetのいずれかのプロパティがあります。デフォルトは保留です。あなたはそれをリセットしたい。また、初期状態として0を指定する必要があります。これがリセットされます。

+0

完璧な答えです。 – user8474858

1

これまで私はこれを基本的なmatlab関数を使うために行うことができました。

function y = fcn(u) 

    if u>0 
     y = u; 
    else 
     y = 0; 
    end 
end 

しかし、私はそれがブロックを使用する適切な方法だろうと思った。

0

アクションサブシステムがリセットされている場合は、現在の実装で「保留」されているように見えます。