車両の速度制御モデルについての質問
2 views (last 30 days)
Show older comments
大学で車両制御の開発を行っている者です.
Simulinkで速度制御のシミュレーションモデルを設計したいです.
Longitudinal Controller Stanleyブロックを用いて速度制御の設計を行いました.
しかし,以下のようなエラーメッセージが表示されます.
- ブロック 'SoC_model/Vehicle and Environment/Bicycle Model - Velocity Input/Vehicle Body 3DOF Single Track/state/xdot ext/Integrator' の時間 0.001 における状態 '2' の導関数が有限ではありません。シミュレーションを停止します。解に特異点が存在する可能性があります。そうでない場合は、(固定ステップ サイズを小さくする、または許容誤差を厳しくすることによって) ステップ サイズを減らしてみてください
固定ステップサイズは0.001,許容誤差は1から0.001と小さくしたのですが,改善ありません.
何か対策があれば教えていただきたいです.よろしくお願いします.
車両モデルはBicycle model - Velocity Input ブロックを使用しています.
もしくは速度をある一定の速度になるように制御できる手法があれば教えていただきたいです.
0 Comments
Answers (1)
Hiroshi Miyagawa
on 11 Apr 2023
Simulinkモデル全体像を拝見していないので、推測を含みます。
【ツール目線のエラーの原因】
エラーメッセージから察するに、エラーを出しているブロック(Integratorブロック)を含むブロックは車両モデル(Bicycle model - Velocity Inputブロック)の内部にあるようです。
車両モデルへの入力が物理的にあり得ない値のために、その中にある積分器(Integratorブロック)が悲鳴を上げている、と思われます。
【解決案】
車両モデルの入力を速度以外にする。
【背景】
Longitudinal Controller Stanleyブロックを用いているので、そのブロック(のRefVelocityポート)に目標の車速と、(CurrVelocityポートに)車両モデルが出力する車速を入れていると思われます。
Longitudinal Controller Stanleyブロックの出力(AccelCmd,DecelCmd)を何らかの処理を介して車両モデルに入力していると思います。その車両モデルがVelocity Inputなので速度を入力する仕様と思われます。制御対象(この場合車両)の速度を制御する場合に、その制御対象に対し速度を入力するのは、系が成立しないので、車両モデルの入力を変更する必要がありそうです。
お使いの車両モデルは、力入力(longitudinal forces)に変更できますでしょうか?
できない場合はライブラリから'Vehicle Body 3DOF Single Track'ブロックを持ってきて、力入力に設定します。
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!