simulink Integratorにおけるエラー

19 views (last 30 days)
Yuriko
Yuriko on 7 Jul 2020
Commented: Toshinobu Shintai on 12 Jul 2020
添付のシミュレーションを書いて実行してみたのですが,以下のエラーが出ました.
エラー: Lag_main (line 19)
ブロック 'Lagrange/Integrator' の時間 0.0 における状態 '1' の導関数が有限ではありません。シミュレーションを停止します。解に特異点が存在する可能性があります。そうでない場合は、(固定ステップ サイズを小さくする、または許容誤差を厳しくすることによって) ステップ サイズを減らしてみてください
固定ステップサイズを小さくしてみたのですが,解決しませんでした.
エラーの解決方法を教えていただきたいです.

Answers (1)

Toshinobu Shintai
Toshinobu Shintai on 8 Jul 2020
「Trajectory」というMATLAB Functionブロックで除算(正確には"\"という行列の演算)が行われており、そこでゼロ割りが発生しています。
おそらくそれが原因で正しく積分計算が行えていません。修正してみてください。
  4 Comments
Yuriko
Yuriko on 12 Jul 2020
ご回答いただきありがとうございます.
修正してみたのですが,依然,以下のエラーが出てしまします.
名前 out.simout.Time を解決できません。
エラー: drawLag (line 18)
for i=1:length(out.simout.Time)
エラー: Lag_main (line 21)
drawLag
修正したものを添付いたします.
上記のエラーの解決方法を教えていただきたいです.
よろしくお願いいたします.
Toshinobu Shintai
Toshinobu Shintai on 12 Jul 2020
モデルを「sim」コマンドで実行する場合、以下のように返り値を指定しないと、ansという変数に自動的に格納されます。
out = sim(filename);
また、実行後のoutの中身をワークスペースからダブルクリックすると、構造を確認することができます。「out.simout.time」「out.simout.signals.values」に時間と値が格納されていることが分かると思います。
いろいろな場面で使えますので、是非覚えておいてください。

Sign in to comment.

Categories

Find more on Simulink 環境のカスタマイズ in Help Center and File Exchange

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!