姿勢制御プログラム実装の準備:PIDの制御量を式で表す


M5 StampFlyで実習マルチコプタ制御プログラミング

PID制御入力の計算

図1 PID制御プログラムでは,比例,積分,微分の各要素を組み合わせて最終的な制御入力$U$を生成し,各モータや制御軸ごとに独立して計算する.画像クリックで動画を見る.または記事を読む.[提供・著]伊藤恒平
詳細[VOD/KIT/data]ドローン・キット``drone Fly''で学ぶマルチコプタ制御入門

マルチコプタの安定した飛行には,PID制御を用いた姿勢制御が不可欠です.制御対象の誤差を計算し,比例(P),積分(I),微分(D)の3つの要素を組み合わせて制御入力を生成します.

PID制御の誤差計算と準備

制御対象の目標値と実測値の差を誤差として計算します.誤差は以下の手順で取得します.

  1. 目標値と現在値の差を計算して誤差$E$を求める
  2. 積分用変数$s$を用意して,誤差に制御周期$T_S$をかけて前の$s$に加算する
  3. 微分値は現在の誤差と前回の誤差の差を$T_S$で割って求める

積分は誤差の累積を数値的に加算する手法で,微分は誤差の変化率を算出して先回り補正を行います.これにより,長期間の微小誤差や急な変化にも対応できます.

PID制御入力の計算

比例,積分,微分の各要素を組み合わせて最終的な制御入力$U$を生成します.各モータや制御軸ごとに独立して計算します.

  1. 比例制御:誤差$E$に比例ゲイン$K_P$をかけて制御量を生成
  2. 積分制御:累積誤差$s$に積分ゲイン$K_I$をかけて制御量を生成
  3. 微分制御:誤差変化率に微分ゲイン$K_D$をかけて制御量を生成
  4. 3つの制御量を合算して最終制御入力$U$を算出

これらの制御入力はM5 StampFly上でリアルタイムに適用され,各モータ出力に反映されます.水平姿勢の維持やロール・ピッチの補正により,安定したホバリングが可能です.

M5 StampFlyでの実習

M5 StampFlyを使用することで,PID制御の各要素をプログラムで実装し,リアルタイムで姿勢を補正できます.各モータの制御入力$U$に加えて,ロール補正用のデルタ$U_{roll}$も適用します.

この手順を理解することで,マルチコプタ制御の基礎を学び,PID制御の数値実装方法を実習で体験できます.

〈著:ZEPマガジン〉

動画を見る,または記事を読む