モデル予測制御の予測ホライズンの設定について
13 views (last 30 days)
Show older comments
Taisuke Hattori
on 30 Jan 2020
Commented: Endo Nobuaki
on 10 Jul 2020
モデル予測制御を用いてモータの制御をしています。
予測ホライズンの設定について質問があります。
予測ホライズンの値をモータの時定数に合わせて設定して解析を行おうとするとエラーが表示していないにもかかわらず、解析が途中で止まってしまいます。
PCのCPUやメモリの使用量を見ても不足している様子は見られません。
途中で止まってしまう原因が分かりません。
解決方法を教えていただけると幸いです。
また、予測ホライズンはどれくらいに設定するのが良いのかも教えていただけると幸いです。
よろしくお願いいたします。
2 Comments
Accepted Answer
Toshinobu Shintai
on 4 Feb 2020
予測ホライズンが400、制御ホライズンが10と比較的長めであるため、計算が重い、もしくは解くべき最適化問題が複雑化しており、解が収束しない現象が発生していると考えられます。
一般論で申し上げますと、予測ホライズンの長さは制御対象の時定数に近い値が良いと考えられます。今回の場合のモーターの時定数に合わせて設定するという方針は、間違いではないと思います。
一方制御ホライズンは、通常は1に近い値を採用します。理由は、計算コストが増大し、実システムで現実的な時間内に最適化計算を行うことができなくなるためです。
ちなみに今回のIPMSMの例では、モーターの回転数を制御することが目的でしょうか。そうである場合、電気の応答に対して機械の応答は遅いため、電流制御のサンプリング時間の10μsに対して400ステップもの時間がかかっているということではないでしょうか。
電流制御と回転数制御を切り離し、回転数制御のサンプリング時間を大きくし、こちらに対してのみモデル予測制御を適用するという方法はいかがでしょうか。
すでにそのようにされていましたら申し訳ありませんが、ご検討ください。
2 Comments
Endo Nobuaki
on 10 Jul 2020
一般論で申し上げますと、予測ホライズンの長さは制御対象の時定数に近い値が良いと考えられます。今回の場合のモーターの時定数に合わせて設定するという方針は、間違いではないと思います。
制御対象の時定数に合わせる理由があれば教えていただきたいです。
More Answers (0)
See Also
Categories
Find more on Linear Plant Specification in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!