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
お名前: URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White