MATLAB Answers

saitoa
0

シミュレーションの実行中にエラー

Asked by saitoa
on 6 Dec 2017
Latest activity Commented on by saitoa
on 7 Dec 2017
Simulinkを使い、あるモデルのシミュレーションを行ったのですが、シミュレーションの実行中にエラーが発生したため、シミュレーションを終了しました 原因が「ブロック 'untitled3/Integrator1' の時間 0.4 における状態 '1' の導関数が有限ではありません。シミュレーションを停止します。解に特異点が存在する可能性があります。そうでない場合は、(固定ステップ サイズを小さくする、または許容誤差を厳しくすることによって) ステップ サイズを減らしてみてください」が出ました。可変ステップだったので、固有ステップに変えてのステップサイズを小さくしましたが、同様のエラーやシミュレーションがかなり遅く止めました。 何かいい方法はないでしょうか? よろしくお願いします。<img src = "">

  0 Comments

Sign in to comment.

1 Answer

Yoko
Answer by Yoko
on 7 Dec 2017
 Accepted Answer

該当エラーは、モデルが意図と異なる組み方になっている場合に発生することがあります。
モデルをダウンロードしてシミュレーションを実行したところ、エラー以外に下記のような警告が発生しました。
'untitled7/Sqrt14' に負の数の平方根があります。[出力信号タイプ] の設定を複素数にすることを検討してください。
コンポーネント:Simulink | カテゴリ:Block 警告
'untitled7/Sqrt2' に負の数の平方根があります。[出力信号タイプ] の設定を複素数にすることを検討してください。
コンポーネント:Simulink | カテゴリ:Block 警告
Sqrt14 や Sqrt2 で 負の入力値に対して平方根を求めようとして、発生しています。 Sqrt ブロックに入る数が正であるはずならば、なぜ負になっているかモデルを見直すことで、エラーが解決されるかと思います。 負の場合も正として処理するならば、Sqrt ブロックの前段に ABS ブロックを配置することで、負の入力を回避できます。

  1 Comment

saitoa
on 7 Dec 2017
回答ありがとうございます。 実際にやっていただきありがとうございます。 Sqrtブロックの前にABSのブロックを配置することで解決できました。 本当に助かりました。ありがとうございました。

Sign in to comment.