Top > PID制御

PID制御

Last-modified: 2016-12-06 (火) 07:06:33

概要 Edit

Controlタブに存在するPID (General Purpose)と、AIタブに存在するPIDについての解説です。

 

コントロールタブのPID (General Purpose)(以下PID(GP)と略す)は、AIの操作に関与せずビークルの姿勢を自動で設定によってはなめらかに制御する事が可能な便利なブロックである。
尚、PIDを設置しただけでは効果は無く、エアポンプやハイドロフォイル、スクリューやジェット等を仕込んでやる必要が有る。

 

AIタブのPIDは空海AIカードの行う操作を滑らかにするもの。こちらのPIDはAIに接続する必要がある。
然し機体がガタ付く事で「敵のAIMを翻弄する」という効果もある為、滑らかな挙動にはデメリットもある。

AIタブの調整解説動画

PIDの調整方法 Edit

2016-12-06_06 32 11.jpg

設定の流れ Edit

2016-12-06_06 42 41.jpg
航空機はエルロンとテイルで制御できる。
2016-12-06_06 55 24.jpg2016-12-06_07 04 35.jpg
機首前部下向きについているのがPitch用、左右についているのが旋回用、中央下向きについているイオンスラスタがロール用。

1.制御したい行動に対応するブロックを設置する。ジェットやプロペラは設置向きと設定(スラスタやロール)を確認する。
2.PIDブロックを設置しQで設定を開く。
3.制御したい項目を選択する。
 Roll, Pitch,Yawの説明はウィキペディア へ。Altitudeは高度のこと。
4.数値を設定する。
5.グラフを見ながら調整を繰り返す。

調整についてはウィキペディアも一読するとより理解しやすい。

記号解説 Edit

  • kP
    反応の強さ。数値を大きくすると少しのズレでも強く修正をかける。高すぎると暴れる。低くすると効きが悪くなるが安定する。
    機体の重量が大きいほど数字を大きくした方が良い。一般的には0.2〜0.01くらいか?
  • Ti
    持続的なズレを補正する強さ。小さい方が強く効く。大きすぎると効かなくなりズレたままになる。
    前進中のピッチや被弾で左右のバランスが崩れた際のロール等で重要。
    数値を小さくしすぎると旋回などができなくなる場合がある。一般的には10.0〜0.4くらいか?
  • Td
    瞬間的な変化を嫌う強さ。大きくすると強く補正するが大きすぎると暴れる。
    砲撃の反動を抑える、振動の低減等に役立つ。一般的には0.5〜0.1くらいか?

グラフ解説 Edit

  • 赤線
    制御の目標値。Testの欄で0以外の場合を見れる。
  • 緑線
    制御の現在値。この波が収まるように設定すると安定した動きをする。
  • 青線
    制御の出力値。この波が高いほど強く制御し、波の幅が狭いほど細かく制御する。
  • 白線
    制御の誤差。赤と緑の差(誤差)を時間ごとに足していったものです。(積分)赤線と近いほど安定していると言える。ただしkP値を変化させると基準が変わるので注意。

また、グラフに線は出ませんが誤差の時間変化率(微分)も計算されています。
青線で表される出力は
  kP * (誤差 + 積分/Ti + Td * 微分)
で計算されます。
スラスターも無限に推力が出るわけではないので、青線がグラフの上下を振り切ってしまうと頭打ちになり「Output saturated!」とグラフの上に表示されます。

数値設定方法 Edit

とりあえず動けばいいんだよって人向け
PID制御のパラメータ調整(限界感度法)
実際にPID調整をやってみた
PIDって何だよ∫ニョロニョロしやがってって人向け

コメント Edit

最新の10件を表示しています。 コメントページを参照

  • ああ…しばらく家を空けているうちにやるやる詐欺になってしまった… -- けけ? 2016-06-30 (木) 10:07:23
    • GP版PIDのハイドロフォイル及びエアポンがあるじゃない! -- 管理人/びんせんとー? 2016-08-15 (月) 20:38:32
  • 微分成分は瞬間というより未来予測だと思ってる。このままだと絶対行き過ぎるんよ、成分。わかりやすいのは舵当て -- 2016-08-23 (火) 16:36:37
  • 白線の簡単な説明わからんちん。あと難しくて説明が纏まってないので数学強い人お願いします。 -- 2016-11-02 (水) 20:39:17
    • 数学弱い管理人、感覚でだいたいこうだろ!で何とかするため説明不能・・・ッ! -- 管理人/びんせんとー? 2016-11-02 (水) 21:13:14
    • 積分項が無いと, 色々な要因で現在値が目標値からズレたところで安定してしまうことがあります. -- 2016-11-02 (水) 22:18:43
    • これを解消するために目標値からのズレを時間積分した値 (目標値からズレが継続している度合いを表すような量) に適切な値を掛けて操作量に加えるのが積分項です. -- 2016-11-02 (水) 22:18:56
    • ΔMV_n = K_p{(e_n - e_{n-1}) + (e_n/T_i)dt +T_d/dt*(e_n - 2*e_{n-1} + e_{n-2})} の中の (e_n/T_i)dt が積分成分ですが, -- 2016-11-02 (水) 22:19:17
    • 積分項自体は (MV_n の積分項) = (MV_{n-1} の積分項) + (K_p/T_i)e_n dt です. (t = n-1 までの積分項を利用して, t = n での積分項を出す計算を省略している) -- 2016-11-02 (水) 22:20:31
    • K_p, T_i, T_d が挙動にどのような影響を与えるかのイメージは Wikipedia の "PID制御" のページの GIF がわかりやすいです. (K_i = K_p/T_i, K_d = K_p*T_d) -- 2016-11-02 (水) 22:20:52
  • スラスターの場合の設定と設置場所、設置向きの詳細ってわかりませんか?人頼みで申し訳ないです -- つばめ? 2016-12-05 (月) 19:09:54
    • Pitch制御の場合、スラスターをビークルの重心よりできるだけ前に上と下向きに設置すればいいです。PID設定は下でPitchを設定すればほぼ初期設定でもある程度は安定します。 -- 2016-12-06 (火) 06:38:12
  • PID実装前からやっていて最近復帰した者です。こんな便利な調整ができるようになったのか、と意気揚々と挑戦しているのですがどうにも上手く行きません。必要手順や原理などはある程度調べた身とはいえ、浅い知識故初歩的なところで大ポカをしていないか相談させてください。お恥ずかしながら学ぶためにこのページの動画にて紹介されている十字型のドローンに限りなく近づけ(エンジン部分のみ大きさ同じの左右対称オリジナル)てPID調整を動画通りにやっていこうとしているのですが、学ぶ以前に2つの要素が邪魔をしていてにっちもさっちも行きません。まずご勝手ながら、[中の人が触るPID調整]を前提としたお話でさせていただきます。1つ目が、設定したにも関わらずスラスターが動かないこと。Test1、2や、ACBで高度設定まで揃えているにもかかわらず、ShiftCapsLockを外した途端にうんともすんとも言わずそのまま落下することが高確率で起こります。1から作り直すとたまに治りますが、機体のロードをするとほぼほぼスラスターが全て動かない状態になりやすい。更に、全部機能不全にはならないけどロールに対応するスラスターだけ動かない、といったことになったり致します。これら関連は全て同じ形に1から作った機体かつ・初期設定(全部スライダーを左にした状態でModeだけ3つそれぞれ設定し、右にスライダーを1回だけ動画のように動かす)した状態から aスラスター全機能不全 bロードし直したらスラスター全機能不全 cスラスター1ベクトルだけ機能不全 d全て動く の4パターンが発生しえます。 2つ目が、これらを解決したとしても必ず起きる現象かつ最もPID制御の学習を邪魔する要素でして、スラスターの出力調整が一切されていないことです。どういうことかと申しますと、本来でしたらどこかの方向へ傾けるとそれを抑えるために1方のスラスターが動き、ある程度水平になったら止まり、水平を通り過ぎたらその対角のスラスターが弱い出力で水平にしていき・・・といった動きをするものだと思うのですが(表現が大雑把で申し訳ありません)、こちらの場合、どこかへ傾くと前後左右上下6方向のうちどれか1方向の全てのスラスターが最大出力で点火し(大概は下向きスラスターが全点火)、水平になるどころか設定高度を遥かに超える高度まで飛びつつ傾きがどんどん大きくなり、最終的に上下反転し着水し、下方向のスラスターが燃料が切れるまで最大出力で水面に押し付け続けます。この一切の動きにPID本来の調整するような動きをしているとは到底思えず、しかしながら機体にGP、エアリアルAI付きの機体にPIDを乗せた瞬間発動するため間違いなくGP、PIDが元凶なのだろうと確信しています。こういった症状などが記事にされているものはネットで調べた限りでは見つからなかったため、真勝手ながらここに相談させていただきました。現状、症状が把握しづらい文章でございますが、何か心当たり等ございましたら助言等頂けると大変有難いです。仕様変更等が原因の可能性もあるのではないかと筆者は考えており、今は公式フォーラム等にも手を伸ばしているところです。長文大変失礼いたしました。 -- 2017-11-29 (水) 01:08:19
    • 色々原因が考えられるのでポイントを箇条書き書いていきます。 ・まず、AIを載せると予想外の動きをする可能性が高いので、学習目的ならAIは外してPID(GP)だけで機体を制御すること。 ・次に、スラスターの噴射設定がきちんとされているかどうかを確認すること。Thruster craftについてのページに調整方法が載っているので間違っていないか確認する。 ・最後に、スラスターが動かないのは、おそらくスライダーをすべて左にしていてkpが0になっているのが原因である可能性が高い。 よって、スライダーの初期設定は全て左ではなくkPとTiが右端、Tdは左端にしてから、 このページの「数値設定方法」を参考に調整してぶれを調整していくのがおすすめ。 -- 2017-11-29 (水) 13:35:10
    • もしやとは思いますが、AIに(CARD)Propulsion Balancingを装着していないでしょうか。装着していないのでしたら、上の方が仰る通りの手順で解決していけばよろしいかと思います。 -- 2017-11-29 (水) 18:49:53
お名前: URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White