2017-12-05 28 views
0

良い日、SIMULINKの信号に数学演算を適用する

私はSIMULINKのいくつかの数学演算でいくつかの助けが必要です。ブロックから信号が来ています。信号の最初の数は、 として9999です。次に、次のエントリは0200の間の値、たとえば100です。その後、残りのすべてのエントリは9999に戻ります。これは常に信号の性質ですが、数値:100は異なるシミュレーションで値または位置を変更することがありますが、その前には常に9999の値が1つ以上あり、その後のすべての他のエントリも9999です。

これは、ブロックからの信号の一例である:

S=[9999 75 9999 9999 9999] 

もう一つの例:

S=[9999 9999 9999 100 9999 9999 9999 9999 9999] 

私は一度ようにSimulinkで別のブロックまたはMATLAB関数にこの信号を渡したいです値(第1の例では75、第2の例では100)が読み取られると、シミュレーションが終了するまで永遠に維持されます。

Y=[9999 75 75 75 75] 

2番目の例のためのものである:

したがって、最初の例のための所望の出力は

Y=[9999 9999 9999 100 100 100 100 100 100] 

だから残りのすべて9999「sはその値によって置き換えられます。

if-elseステートメントでMATLAB関数を使用しようとしました。また、遅延と比較のブロックを使用してみましたが、目的の出力を得ることができませんでした。

MATLAB Functionを使用するか、またはいくつかのSIMULINKブロックを使用して解決策がありますか?

よろしく

答えて

0

9999

enter image description here

結果とMemoryブロックを初期化すると、

enter image description here

0123、結果をズーム、次のことをチェック

enter image description here

+0

ありがとうございました。完璧。あなたは私が解決策を見つけるのに約6時間かかったことを知っています。あなたは数分で解決策を出しました:)。本当にありがとう。私はあなたの助けに感謝:) – user1178884

+0

あなたの問題が解決されていることを聞いてうれしい。 – Haz

関連する問題