2016-07-20 6 views
1

私はSimulinkでかなり複雑なモデルを構築しています。そして予期せぬ遅れに気づいた。簡単にするために、私は非常に単純なモデルを構築しましたが、予期せぬ遅延が再び導入されたことがわかりました。Simulinkでのコンパレータの実装の予期しない遅延を克服するにはどうすればよいですか?

単純なモデルは単なるコンパレータです。

if u >= 2 
    y = 3; 
elseif (u < 2) 
    y = -3; 

出力は次のとおりです:としてMATLAB関数内のブロックを定義していますあなたが見ることができるように

enter image description here

、青い波が+3からに直接移動しません-3または-3〜+3である。しかし、100 usecのような遅延があります。これはなぜですか?私は上記の機能によれば、すぐに動くべきです(突然変化する)。 どうすれば変更を急にすることができますか?

+1

固定ステップソルバーを使用する場合、可変ステップソルバ*または*ステップサイズの*公差を小さくする* – thewaywewalk

+0

私はステップリゾルバなどを使用していません。私は上記のコードを使用しています。もっと明確にしてください。 – KhaledMaged

+3

まあ、そのコードはsimulinkモデル内のmatlab関数ブロックに含まれていますね。あなたはソルバーを呼び出すSimulinkを使用しています。 [そしてこのソルバーを構成する必要があります](http://de.mathworks.com/help/simulink/gui/solver-pane.html)。正弦波の周波数はかなり高く、出力はデフォルトのソルバ設定で期待されます。ソルバーを調整するとすべてが正常になります。 – thewaywewalk

答えて

3

正弦波の周波数はかなり高いです。 Simulinkの(通常)デフォルトの可変ステップのソルバーは多くのケースを処理できますが、許容値は絶対値で設定されています。あなたのケースでは、可変ステップソルバーが使用できる最小ステップサイズ(公差の手段である)は、正確にあなたのプロットで見ることができるランプです。

高頻度モデルの場合、は、固定ステップソルバーの場合は直接ソルバーのステップサイズを小さくするか、可変ステップソルバーの場合は公差を調整する必要があります。 autoですべてのものを残して

enter image description here

enter image description here

は、ほとんどの場合、現実的な結果が得られ、安定した結果につながりますが、光学的にあなたは満足していないかもしれませんね。だから常に 明示的な暗黙のよりも良い。実際に必要なステップサイズはいつも考えなければなりません。サンプル周波数とスイッチング周波数、固有周波数、希望するスペクトラム、または希望する高調波の次数は、ソルバとステップサイズの適切な選択の良い指標です。

関連する問題