【要約】PX4 PositionControl を読む:_velocityControl() 後半 — 推力制限と anti-windup [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
ドローンの制御エンジニアは、モーターの出力(推力)が物理的な限界に達した際の制御の不安定さに直面する。制御器が限界以上の出力を要求し続けると、積分項が過剰に蓄積される「Windup」が発生し、制御が破綻する。具体的には以下の課題がある。
- ・推力上限による出力の飽和。
- ・飽和状態での積分項の蓄積による、解除後の大きなオーバーシュート。
- ・垂直方向と水平方向の推力要求が競合し、一方の制御が犠牲になる問題。
// Approach
PX4のPositionControlモジュールは、物理的な推力制約を考慮し、以下の多段階的なアプローチで制御出力を調整している。
- ・Z方向のAnti-windup: 垂直方向の推力が限界に達している場合、速度誤差を積分しないことで蓄積を防ぐ。
- ・垂直優先の推力配分: 水平制御用のマージン(_lim_thr_xy_margin)を確保しつつ、Z方向の推力を優先的に割り当てる。
- ・水平方向のTracking ARW: 制限後の推力から推定加速度を算出し、要求加速度との差分を用いて積分器を直接補正する。
// Result
この実装により、ドローンの制御性能は物理的な限界付近でも高い安定性を維持できる。具体的には以下の成果が得られる。
- ・積分値の暴走(Windup)を抑制し、飽和解除時のオーバーシュートを低減。
- ・垂直方向の制御性能を優先しつつ、水平方向の制御も破綻させない推力配分を実現。
- ・物理的な制約を考慮した、堅牢な位置・速度制御の提供。
Senior Engineer Insight
> 組み込み制御において、物理限界(Saturation)の扱いは極めて重要だ。単なるクリッピングではなく、多軸間の干渉や積分器の挙動まで考慮したこの実装は、実戦的な設計と言える。計算コストと制御精度のトレードオフが適切に管理されており、高信頼性が求められるドローンの制御基盤として非常に洗練されている。特に、水平方向の加速度を推力から逆算してARWに用いる手法は、物理モデルに基づいた高度なアプローチである。