質問: シミュレーションの実行中にエラー simulinkを使い、あるモデルのシミュレーションを行ったのですが、シミュレーションの実行中にエラーが発生したため、シミュレーションを終了しました 原因が「ブロック 'untitled3/integrator1' の時間 0.4 における状態 '1' の導関数が有限ではありません。シミュレーションを停止します。解に特異点が存在する可能性があります。そうでない場合は、(固定ステップ サイズを小さくする、または許容誤差を厳しくすることによって) ステップ サイズを減らしてみてください」が出ました。可変ステップだったので、固有ステップに変えてのステップサイズを小さくしましたが、同様のエラーやシミュレーションがかなり遅く止めました。 何かいい方法はないでしょうか? よろしくお願いします。 <<>>
回答: 該当エラーは、モデルが意図と異なる組み方になっている場合に発生することがあります。 モデルをダウンロードしてシミュレーションを実行したところ、エラー以外に下記のような警告が発生しました。 'untitled7/sqrt14' に負の数の平方根があります。[出力信号タイプ] の設定を複素数にすることを検討してください。 コンポーネント:simulink | カテゴリ:block 警告 'untitled7/sqrt2' に負の数の平方根があります。[出力信号タイプ] の設定を複素数にすることを検討してください。 コンポーネント:simulink | カテゴリ:block 警告 sqrt14 や sqrt2 で 負の入力値に対して平方根を求めようとして、発生しています。 sqrt ブロックに入る数が正であるはずならば、なぜ負になっているかモデルを見直すことで、エラーが解決されるかと思います。 負の場合も正として処理するならば、sqrt ブロックの前段に abs ブロックを配置することで、負の入力を回避できます。