PIDパラメータをその場で自動的に調整するにはどうすればよいですか?


15

MCUに実装されたPIDコントローラーを使用してフィードバックを実行する簡単なサーボシステムがあります。ただし、システムのプロパティは動的に変更されるため、すべての状況でPIDパラメーターを調整することはできません。

私のロボットは、これに似た逆駆動可能な電動モーターを備えた軽量アームです。

軽量ロボットアーム

アームは、重いものを持ち上げたり、机の上で物を押したり引いたりするなど、いくつかのタスクを実行します。これらの各タスクには、簡単に予測できないさまざまなPID調整パラメーターが必要です。

私が本当に欲しいのは、腕の動作に応じてパラメータを慎重に調整できる、より高いレベルの機能です。たとえば、腕が振動していることに気付いた場合、Pを減らしてDを増やすことができます。または、腕が目標に到達していないことに気付いた場合、Iを増やすことができます。

そのようなアルゴリズムは存在しますか?アルゴリズムがすぐにパラメーターを完成しなかったとしても、私は幸せです。例えば、パラメーターが新しい値に調整される前に、腕が数回振動する可能性がありました。

回答:


10

同僚と私は、モーターの電流制御ループのPIDパラメーターをオンザフライで調整するためのシンプレックスアルゴリズムを実装したことがあります。基本的に、アルゴリズムは一度に1つのパラメーターを変更してから、良さの尺度であるフィードバックパラメーターに関するデータを収集します。これは、現在の目標設定値からの偏差率です。フィードバックパラメーターが良くなったか悪くなったかに基づいて、次のパラメーターがそれに応じて変更されました。

または、ウィキペディアで話す:

線形プログラムが標準的なタブローによって与えられるとします。シンプレックスアルゴリズムは、それぞれが改善された基本的な実行可能ソリューションを提供する連続したピボット操作を実行することによって進行します。各ステップでのピボット要素の選択は、このピボットがソリューションを改善するという要件によって大きく決まります。

技術的には、シンプレックスの一種であるNelder-Meadメソッドを使用しました。また、最適な出力パラメーターを検索する際に入力パラメーターをどのように変更するかを見ると、山登りアルゴリズムとも言えます。

Nelder-Meadアニメーション

Nedler-Meadは、セットポイントを追跡できるため、このケースで最適に機能しました。これは重要でした。なぜなら、現在の目標設定値は、トルク要求が増加するにつれて変化したからです。

Nelder–Meadテクニックは、非定常ポイントに収束できるヒューリスティック検索手法です。


アプローチと結果が利用可能な場合、それらをリンクできますか?
SPRajagopal

@SPRajagopal申し訳ありませんが、いいえ。私はその会社で働いていなくて、どのデータにもアクセスできません。
embedded.kyle

4

このような問題に対する適切なアプローチは、適応制御と呼ばれます。要するに、モデルが既知であると仮定するのは制御方法論ですが、モデルのパラメーター(質量、慣性など)は不明です。仕事は、未知のパラメーターを推定することです。簡単な紹介はウィキペディアで見つけることができます。The Robotics:Modelling、Planning and Control by Siciliano et al。トピックをより徹底的にカバーします。

@Rocketmagnetsクエリへの応答で編集します。

要するに、システムの数学的モデル、すなわち、強制またはその他の場合にシステムが時間とともにどのように進化するかを記述する方程式が必要ですが、さまざまなコンポーネントの質量、慣性などの動的パラメータを知る必要はありません..これらのパラメーターを推定するのは、適応コントローラーの仕事です。ただし、未知のパラメーターごとに初期推測を行う必要があります。次に、システムの実行時に、制御信号、出力信号、線形回帰や勾配降下などの方法を使用して、未知のパラメーター値を更新します。時間の経過とともに、パラメータは定常状態になる値に収束しますが、実際のパラメータと一致しない場合があります。つまり、質量が間違っている場合がありますが、値は引き続き機能します。

ここから、この方法を説明するテキストを参照することをお勧めします。たとえば、Marc Bodson博士が彼のテキストAdaptive Control:Stability、Robustness、and ConvergenceのコピーをPDF形式で彼のWebサイトで提供していることに気づきました。


方法の説明はできますか?
Rocketmagnet

1
私がこの方法を知ったのはごく最近のことであるため、正義を実行できるとは思えません。さらに、これは単一の方法ではなく、過去50年ほどで開発された技術の集まりです。ただし、応答を編集してもう少し詳しく説明します。
-DaemonMaker

2

説明するプロセスは、適応PIDと呼ばれます。

それは一種のやり過ぎのようです。外部の外乱に対処する場合、PIDは非常に堅牢であり、説明するタスクは単一のゲインセットの能力を超えているようには見えません。


これらは単なる外乱ではありません。これらは、関節の特性の変化です。たとえば、ロボットの質量を2倍にすると、オーバーシュートが発生します。
Rocketmagnet
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.