質問: モデル予測制御の予測ホライズンの設定について モデル予測制御を用いてモータの制御をしています。 予測ホライズンの設定について質問があります。 予測ホライズンの値をモータの時定数に合わせて設定して解析を行おうとするとエラーが表示していないにもかかわらず、解析が途中で止まってしまいます。 pcのcpuやメモリの使用量を見ても不足している様子は見られません。 途中で止まってしまう原因が分かりません。 解決方法を教えていただけると幸いです。 また、予測ホライズンはどれくらいに設定するのが良いのかも教えていただけると幸いです。 よろしくお願いいたします。
回答: 予測ホライズンが400、制御ホライズンが10と比較的長めであるため、計算が重い、もしくは解くべき最適化問題が複雑化しており、解が収束しない現象が発生していると考えられます。 一般論で申し上げますと、予測ホライズンの長さは制御対象の時定数に近い値が良いと考えられます。今回の場合のモーターの時定数に合わせて設定するという方針は、間違いではないと思います。 一方制御ホライズンは、通常は1に近い値を採用します。理由は、計算コストが増大し、実システムで現実的な時間内に最適化計算を行うことができなくなるためです。 ちなみに今回のipmsmの例では、モーターの回転数を制御することが目的でしょうか。そうである場合、電気の応答に対して機械の応答は遅いため、電流制御のサンプリング時間の10μsに対して400ステップもの時間がかかっているということではないでしょうか。 電流制御と回転数制御を切り離し、回転数制御のサンプリング時間を大きくし、こちらに対してのみモデル予測制御を適用するという方法はいかがでしょうか。 すでにそのようにされていましたら申し訳ありませんが、ご検討ください。