2017-05-22 17 views
0

以下に示すように、私はsimulinkで閉ループシステムを実行しようとしています。Simulink:時間遅延を取り除く

enter image description here

私はそれを実行すると、この結果を得ます。

enter image description here

あなたが見ることができるように、閉ループ出力も約1.5秒までは起動しない1までのステップ関数を得ることに若干の時間遅れがあります。私はこれが現実の世界で起こることであると理解していますが、この時間遅れを取り除き、出力が「理想的」な結果を出す方法があるかどうか疑問に思っていました。

おかげ

編集

ちょうど私が少しより多くの情報を追加しようと思いました。ステップインプットは標準的なステップインプットです。設定に関して変更されたのはシミュレーション時間が8秒で、ソルバーは固定ステップode1(オイラー)です。

答えて

2

固定ステップソルバーを使用しているので、ステップサイズのデフォルトは(stop_time-start_time)/ 50です(この場合は0.16になります)。したがって、あなたは正確に1秒でタイムステップを持っていません。 6番目の時間ステップ= 0.96では、ステップは0になります。7番目の時間ステップ= 1.12では、ステップは1です。これは正確に表示されているもので、使用しているシミュレーションパラメータを修正します。

固定ステップソルバーを使用する場合、ステップを正確に1秒で実行するには、ステップサイズを指定して、モデルが1秒でタイムステップを取るようにする必要があります。 シミュレーションパラメータのプルダウンメニューのソルバーパネルに移動し、ステップサイズを適切な値に変更します。 (プロットでは1から始まるステップが表示されますが、後で1タイムステップを終了します)。

また、可変ステップソルバーを使用することもできます。 (これは、ステップを1秒で正確に垂直に表示します)

時間遅延に関しては、固定ステップのオイラー使用時に3ステップの時間遅れがあります。 これを変更する唯一の方法は、別のソルバーを使用することです。

+0

ありがとうございます。私はあなたが示唆したように、固定ステップソルバーから可変ステップソルバーにシミュレーションを変更しました。 – oodan123

関連する問題