モデル予測制御MPCとは一体何なのか(1)

1. MPC 制御を使用する理由

        記事を閲覧すると、多くの記事が MPC に基づいています。では、モデル予測とは正確には何でしょうか?

モデル予測は私たちにとって馴染み深いフィードバック制御アルゴリズムとも言え、その目的は将来の出力を予測することです。実際の例を交えて紹介します。

 

         私たちが車を運転するとき、その目的は車を安全な道路で走行させることです。ドライバーとして私たちが制御できるのは、車のアクセルとハンドル、つまり、それに対応する制御が車の速度と方向です。現在の角度を維持すると車が曲がり、直進できなくなることがわかっているため、運転プロセス中は常にステアリングホイールの角度を調整します。(なぜコーチが私たちに、主題 3 の試験中に狭い範囲の角度でハンドルを振るように指示したかは想像できるでしょう)。これもモデル予測の考え方と似ており、無人運転の場合、コントローラーは一定時間走行後の現在のハンドル角を把握した上で、逸脱方向を予測する必要があります。

MPC を使用する理由の分析:

 1. MPC は複数入力複数出力システムを処理できます

        

 上記の制御システムと同様に、y2 の入力のフィードバックは y1 の入力にも影響します。また、2 つの独立した制御ループを設計する必要があるため、PID パラメーターの調整に大きな要件があり、大規模なシステムの場合、各 PID 制御ループのパラメーター調整は大きな課題となります。

 

また、MPC は多変数コントローラーであり、すべてのシステム間の相互作用関係を考慮するため、構造が非常にシンプルになります。 

 2. MPC は制約を非常にうまく処理できます

        

 コントローラーが車を制御して無人で走行する場合、速度をあまり速くすることはできません。例えば、実生活では、前の車との距離に注意する必要があります。 、私たちのスピードも遅いはずです。車の物理的構造の制限により、その加速はそれほど速くすることはできず、秒速 100 メートルに達することも、秒速 1000 メートルに達することも不可能です。つまり、これらは、車が道路上で目標に向かって真っ直ぐに走行する必要がある場合の制約になります。

3. MPCにはフィードフォワード制御と同様の予測機能もあります

        

         自動運転車に予測機能がなければ、車が近づくまで曲がる時期が分からない。しかしこの時はブレーキが進んでおらず、安全上の理由から急ブレーキを踏まなければならなかった。車内に同乗者がいる場合、これは危険です。

        そして、事前に予測できれば、例えば自分で車を運転するときに、速度を落とさなければならない場面に遭遇したときに、軽くブレーキを踏んで速度を事前に制御します。

4. MPCの不備

        MPC はサンプリング ポイントごとにオンライン最適化を実行するため、優れたコンピューティング パフォーマンスと大容量メモリを備えたコンピューターが必要です。


2.モデル予測制御MPCとは

        自動制御戦略において。制御対象のモデルが出力を得ることができる入力量を知る必要があります。

         上記の制御モデルにおいて、MPC コントローラは制御対象のモデルとオプティマイザを持ちます。では、コントローラーは具体的にどのように機能するのでしょうか? 車の運転を例に考えてみましょう。

       MPC によって制御される自動運転車では、中央の緑の線が車が運転するための基準線であり、P は予測可能な最も遠いステップ サイズです。制御する際は車の加速度や速度は一定とし、ハンドルの角度のみを制御します。図の曲線から、ハンドルが図の 5 つの位置にある場合、予測自車位置が基準値を満たさないことがわかります。それでは何をすべきでしょうか?

        解決策は、ステアリングホイールの角度を調整し、車の将来の進路を予測し続け、満足のいく結果を達成することです。ただし、新しいハンドル角スキームはランダムに生成されるのではなく、計画的かつ目的を持った方法で実行され、この目標の実現はオプティマイザーの貢献によるものです。

         オプティマイザーの目的は、自動車の位置を基準ルートにできるだけ近づけることです。そのため、コスト関数の 1 つは、現在の予測位置と基準値をできるだけ小さくすることです。

        もう一つのコスト関数はステアリングホイールの角度範囲であり、例えば、私たちが車を運転する際、ステアリングホイールを急に切ると運転者や同乗者が傾き、ひどい場合には横転事故を引き起こすこともあります。したがって、ハンドル角の変化量も制御周期ごとに制御される。

 

        車の運転を制御する際には、車の位置、車を道路の外に出すことはできない、ハンドルの最大回転位置は車のハンドルを無制限に回転させることはできないなど、いくつかの制約も考慮する必要があります。 。 

         将来のいくつかのステップを予測しますが、入力として選択するのは最適なルートの最初のステップだけです。上の画像に示すように、車のステアリング ホイールは最初の回転位置のみを考慮します。k から k+1 に移動すると、車の位置が予測されたカーブの位置と一致しないことがわかります。これは、風の推力、雨の日の滑りやすい路面など、さまざまな制御できない要因によって引き起こされる可能性があります。 . 待ってください。

        これまでのところ、予測された一連の制御ステップが最初のステップのみを使用し、次に計算、予測、そして再び最初のステップを実行する理由が理解できました。制御の精度と高精度を実現するために、このサイクルが繰り返されます。


3. MPCパラメータの設計

        パラメーターの選択は、計算の複雑さ、つまり計算時間と計算の精度に直接影響します。このセクションでは、コントローラーのサンプリング時間、予測のステップ サイズ、コントローラーの範囲、制約、重みなどのパラメーターの選択について簡単に説明します。

1. サンプリング時間

      

         サンプル時間が大きすぎます。外乱が発生した場合、つまり、車両の位置が基準ルートから大きく逸脱した場合、時間内にサンプリングできず、時間内にずれを調整することができません。

サンプリング時間が短すぎます。サンプリングポイントごとに計算を行うため、計算負担が大きくなります。

         パフォーマンスと計算の複雑さの間のバランスを見つけるために、開ループ応答の立ち上がり時間中に 10 ~ 20 のサンプリング ポイントを設定することをお勧めします。

2. 予測ステップサイズ

        

        選択されたステップ サイズが近すぎます。秒速50メートルで車を運転してみませんか。ブレーキをかけてから車が止まるまで5秒かかります。予測するステップ サイズ全体が 2 秒以内の距離のみである場合、信号が見える 2 秒前にブレーキをかけたとき、車はすでに信号を通過しています。 

        選択されたステップ サイズが長すぎます。ステップ サイズを非常に長く選択すると、非常に広い視野が得られます。しかし、遠くにトラックの箱が落ちてきたら、どうしようかと心配になってしまいますが、それは非常に無用です。適切な距離でブレーキをかけるだけです。ステップ サイズが大きすぎると、計算時間に影響を与える可能性があります。

        したがって、予測の全体的なステップ サイズは、開ループ過渡応答の 2% の誤差時間内で 20 ~ 30 ステップにすることをお勧めします。 

3. 制御範囲

        

         コントローラによって制御されるステップ サイズ m は、コントローラの範囲です。後続の操作とは関係なく、m ステップを制御するだけです。

         もちろん、制御できるステップ サイズは 1 つだけですが、システムの出力は望ましい効果を達成できず、大きな偏差が生じます。

        もちろん、予測範囲内のステップ サイズ全体を制御することもできますが、制御効果に大きな影響を与えるのは最初の数ステップだけです。後者のコントロールは出力にあまり影響を与えません。ステップ範囲全体を制御するには、計算コストがかかります。 

        制御範囲の経験値は、予測範囲の 10% ~ 20% です。

4. 制約の処理

        

         入力と出力に制約を設けることができます。これらの制約はソフトまたはハードにすることができます。ハード制約に違反することはできませんが、ソフト制約にも違反しています。例として、車が坂を登る次の例を考えてみましょう。

        

        坂道を運転するときは、車の速度を落とさなければならないことがわかります。ヒルクライム中に車の速度を一定に保つ必要がある場合は、スロットルを上げる必要があります。しかし、アクセルペダルにも最大拘束限界があり、アクセルを一番下まで踏み込んでも、まだ要求速度に達していません。その場合、MPC コントローラーは最適化に失敗し、アクセル ペダルと速度の制約を満たす状況を見つけることができません。

        これに対する解決策は通常、入力制約を超過できないハード制約にすることです。出力制約は、超過可能なソフト制約です。つまり、ヒルクライム中に車が減速するのは許容できます。 

5. 重み付け処理

        

        実生活では、私たちは常に重みを選択しています。私たちは睡眠、食事、お金の稼ぎ、コミュニケーションが必要です...私たちは複数のことを同時に処理することはできず、トレードオフの選択をしなければなりません。体が大事か、お金が大事かみたいな。

 

        産業用制御においても同様です。システムの出力には複数の目標があることがよくありますが、それぞれの目標値に対して最適な効果を達成することは不可能です。したがって、重みを付加することにより、目標値に対する重要度が示される。 

おすすめ

転載: blog.csdn.net/szl__lzs/article/details/121666305