第7章

ドローンの本当の性格

なぜドローンはばねみたいに跳ねるの?

第7章:ドローンの本当の性格 ↗

コントローラーはばね

ミカ: ジューンが、私たちのドローンは地図のどこにいるの?と聞いてきた。ヒント:第2章の跳ねるドローンを思い出して。Kp\eff{K_p}を上げるほど、ポヨンポヨンと跳ねたよね。まるでばねにおもりを吊るしたみたいだった。

テオ: 「みたいだった」だけじゃ証明にはならない。並べて置いて、両方の式を書いてみよう。

左側:質量0.5 kgのおもりを、ばねとダンパー(動きに抵抗する油の入った小さなピストン)に吊るしたもの。右側:同じ質量、同じ空気抵抗で、比例制御がかかっているうちのドローン。

まず、おもりにはたらく力を1つずつ書き出そう。位置 xx は静止位置から測り、上を正とする。

  • ばねは静止位置へ引き戻す。伸びるほど強く:−k x-\eff{k}\,x。2倍伸ばせば、2倍強く引っ張る。
  • ダンパーは位置ではなく動きに逆らって押す:−c x˙-c\,\dot{x}。止まっていれば何もしない。速く動けば強く押し返す。(x˙\dot{x} は第3章の速さだ。)
  • 重力は静止位置を少し下にずらすだけ。静止位置から測れば、それで片付く。

力 = 質量 × 加速度、そして加速度は傾きの傾き(第3章)。力を足し合わせて、全部を片側に移すと:

m x¨=−k x−c x˙⟹m x¨+c x˙+k x=0m\,\ddot{x} = -\eff{k}\,x - c\,\dot{x} \quad\Longrightarrow\quad m\,\ddot{x} + c\,\dot{x} + \eff{k}\,x = 0

ミカ: じゃあダンパーって、要するに速さが嫌いな空気?

テオ: だいたいそう。しかもドローンの場合、ダンパーそのものが空気なんだ。

ウィジェットでは、おもりのオレンジの矢印がばねの引く力、灰色の矢印がダンパーの押す力だ。振れの一番上や一番下でおもりが一瞬止まるたびに、ダンパーの矢印が消えるのを見てみよう。

第7章:ドローンの本当の性格 ↗

ジューン: 曲線はぴったり重なっている。似ているんじゃない。まったく同じなんだ。

2つの式を見て。ばねは力k x\eff{k}\,xで押し返す:伸びれば伸びるほど、強く引っ張る。うちのコントローラーはKp(2−h)\eff{K_p}(\sp{2} - \out{h})で押す:目標から離れるほど、強く押す。同じルール。コントローラーはばねそのもの:目に見えないばねが、ドローンを2 mへ引っ張っている。

テオ: つまりPコントローラーは仮想のばねで、空気抵抗ccは仮想のダンパー。ばねについて学ぶことは、全部ただで手に入る。

2つの性格調整ノブ

どんな質量-ばね-ダンパー系も、つまりP制御されたドローンも、たった2つの数で表される。1つずつ、自分たちの手で導いていこう。

どれだけ速い? 固有振動数

ダンパーを外すと第6章に戻る:ばねは cos⁡(ωt)\cos(\omega t) のように揺れる(ω=k/m\omega = \sqrt{k/m})。この速さを固有振動数 ωn\omega_n と呼ぶ。何にも邪魔されないとき、系が揺れたがる速さだ。

ωn=km1回の揺れにかかる時間 2πωn s\omega_n = \sqrt{\frac{\eff{k}}{m}} \qquad\qquad \text{1回の揺れにかかる時間 } \frac{2\pi}{\omega_n} \text{ s}

第7章:ドローンの本当の性格 ↗

ミカ: ばねを硬くすれば速く揺れる。じゃあ k\eff{k} を思いっきり上げれば全部よくなるね!

硬いばねは強く引くので、速く揺れる。重いおもりは動かしにくいので、遅く揺れる。(ラジアン毎秒は第5章の回転の速さ:1 回転は 2π ラジアン、縁の長さにして半径 2π 個ぶんだ。)

テオ: 待って。第2章で Kp\eff{K_p} を上げたら、ドローンは速くなったけど、もっと跳ねるようにもなった。まずダンパーの言い分を聞こう。

どれだけ跳ねる? 減衰比

さあ、ダンパーを戻そう。どれくらいの減衰なら「たくさん」? それはばね次第だ:柔らかいばねを手なずけるダンパーでも、硬いばねはほとんど遅くならない。そこで、特別な1つの量と比べる。臨界減衰 ccritc_{\text{crit}}:オーバーシュートを完全に止める、最小の減衰だ。

ccrit=2m kζ=cccrit=c2m kc_{\text{crit}} = 2\sqrt{m\,\eff{k}} \qquad\qquad \zeta = \frac{c}{c_{\text{crit}}} = \frac{c}{2\sqrt{m\,\eff{k}}}

減衰比 ζ(ギリシャ文字のゼータ)は、うちの減衰がその何倍かを表す。単位のない、ただの数だ。ζ = 0 なら永遠に揺れ、ζ = 1 はちょうど臨界、ζ = 0.5 はオーバーシュートを止めるのに必要な減衰の半分しかない。

第7章:ドローンの本当の性格 ↗

ジューン: ちょっと待って。0.16? 最初のウィジェットのドローンの ζ とぴったり同じだ!

テオ: 質量も抵抗も硬さも同じなんだから、ζ も同じ。ばねとドローンは本当に双子なんだ。

地図上の2つの点

さあ、ss の地図に戻ろう。第4章・第6章と同じように x=estx = e^{st} と推測すると、方程式は ms2+cs+k=0m s^2 + c s + k = 0 になる。mm で割って、2つの係数をうちのノブで書き直すと:

s2+cm⏟2ζωn s+km⏟ωn2=0s^2 + \underbrace{\frac{c}{m}}_{2\zeta\omega_n}\, s + \underbrace{\frac{\eff{k}}{m}}_{\omega_n^2} = 0

テオ: ちょっと待って。その 2ζωn2\zeta\omega_n はどこから来たの? でっち上げに見えるけど。

ジューン: 掛け算してみて:2ζωn=2⋅c2mk⋅km=cm2\zeta\omega_n = 2 \cdot \frac{c}{2\sqrt{mk}} \cdot \sqrt{\frac{k}{m}} = \frac{c}{m}。同じ数に名前を付け直しただけ。これで2つのノブが方程式に現れるんだ。

2次方程式の解の公式で解くと、ss の2つの値が出てくる:

s2+2ζωn s+ωn2=0⟹s=−ζωn±ωnζ2−1\begin{aligned} & s^2 + 2\zeta\omega_n\, s + \omega_n^2 = 0 \\ \Longrightarrow\quad & s = -\zeta\omega_n \pm \omega_n\sqrt{\zeta^2 - 1} \end{aligned}

±記号は2つの答えを与えてくれて、それぞれの点に対応するんだ。点の左右の位置は σ(シグマ):動きのその部分がどれだけ速く縮むか。高さは ω:どれだけ速く回るか。減衰が1より小さいとき、2つの点は左右の位置を共有しているけど、高さは反対側にある。1のときは2つが出会い、1より大きいときはどちらも水平軸の上に乗るよ。

新しい言葉

ステップ応答
目標が突然ジャンプしたとき(ここでは 0 から 1 m)に、系がどう応えるか。性格を見せる定番の方法だ。
整定時間(2%)
応答が目標の 2% 以内にずっと収まるようになるまでの時間。

2つのノブを動かしてみよう。地図上の青い点を見て。これがssの2つの値で、動きは、落ち着く高さにes1te^{s_1 t}とes2te^{s_2 t}の混ざり合いを足したものなんだ。(ζがちょうど1のときは2つの点が1つになって、2つ目の材料はt es1tt\,e^{s_1 t}になる。)

第7章:ドローンの本当の性格 ↗

新しい言葉

不足減衰(ζ<1\zeta < 1)
ssの2つの値は実軸から離れた位置で鏡像のペアになり、半径ωn\omega_nの円上にある。応答はオーバーシュートして、振動しながら落ち着く。
臨界減衰(ζ=1\zeta = 1)
ペアは実軸上で出会って1つの点に重なる(重根)ので、動きは(A+B t) e−ωnt(A + B\,t)\,e^{-\omega_n t}。オーバーシュートしない、いちばん速い応答だ。
過減衰(ζ>1\zeta > 1)
ペアは実軸に沿って分かれる。一方は左へ、もう一方はゼロに近づいていく。オーバーシュートはないが、動きは鈍い。

不足減衰の点には、もう1つ細かい話が隠れている:高さは ωn1−ζ2\omega_n\sqrt{1-\zeta^2} で、ωn\omega_n より少し小さい。減衰は揺れを小さくするだけでなく、揺れを少し遅くもするんだ。これが減衰固有振動数 ωd\omega_d で、ウィジェットにも表示される。

ωd=ωn1−ζ2\omega_d = \omega_n\sqrt{1 - \zeta^2}

ミカ: つまり、第6章の螺旋はドローンの性格そのものだったんだ。回転=振動、縮小=収束!

減衰は多ければ多いほどいいの?

ジューン: 簡単だよ。振動は悪いし、減衰は振動を消してくれる。だから安全のためにζ=5\zeta = 5に設定する。史上最も安全なドローンだ。

まず予想しよう! 同じばね、同じωn\omega_n。減衰をζ=1\zeta = 1からζ=3\zeta = 3に上げる。目標に着くのは速くなる? それとも遅くなる?

第7章:ドローンの本当の性格 ↗

ジューン: 私の「安全な」ドローンは永遠にかかるよ。まるで蜂蜜の中を動いているみたいだ。

ミカ: 地図を見て!1つの点はすごく速く左に走り去った。でももう1つはゼロのすぐ近くに居座っている。

テオ: este^{st}のうちssがゼロに近いものはとてもゆっくり消える。速いほうはあっという間に消えて、遅いほうが支配する。

動きの材料になっている este^{st} の1つ1つをモードと呼ぶ。動きはモードの混ざり合いで、速いモードが消えたあとには一番遅いモードだけが残る。だからこのステップ応答では、実際に現れる最も遅いモードが長い待ち時間を決める。

減衰が少なすぎれば振動、多すぎればのろのろ。その間に、ちょうどいいところがある。レースで ζ = 0.7 を選んでみよう:オーバーシュートは 5% 未満だけど、目標の 5% 以内に入るのは ζ = 1 よりずっと早い。多くの設計では ζ を 0.7 から 1 くらいに狙い、小さなオーバーシュートと引き換えに速さを手に入れる。タスクによっては、別のバランスが好ましいこともある。

ドローンに戻る

これで第2章がようやく腑に落ちるね。ドローンにとって、ばね定数はまさにゲインなんだ:

ωn=Kpm,ζ=c2m Kp\omega_n = \sqrt{\frac{\eff{K_p}}{m}}, \qquad \zeta = \frac{c}{2\sqrt{m\,\eff{K_p}}}

Kp\eff{K_p}は減衰の式の分母にある。ゲインを上げるとドローンは速くなる(ωn\omega_nが大きくなる)けど、減衰は弱まる。Kp=20\eff{K_p} = 20 N/mだと:ζ=1/(20.5×20)≈0.16\zeta = 1/(2\sqrt{0.5 \times 20}) \approx 0.16。見た通り、すごく跳ねる。地図上では、2つのssの値は縦軸からずっと上、ほんの少し左にある。そこがうちのドローンの居場所だ。

テオ: そしてKp\eff{K_p}を思いっきり下げない限り、これ以上減衰は増やせない。でもそうするとドループが戻ってくる。減衰を意図的に加える方法が必要だ。

ゲインをドラッグして、トレードオフを1文で見てみよう:

第7章:ドローンの本当の性格 ↗

矢印には長さと角度がある

ミカ: 待って。点は半径ωn\omega_nの円の上にあって、ζはそれを円に沿って滑らせるだけ。つまり点って、本当は2つのことなんだ:0からどれだけ遠いかと、どっちを向いているか。

どの矢印z=a+b iz = a + b\,iも、別の言い方で表せる:長さ∣z∣|z|と角度だ。長さはピタゴラスの定理で出る。右を向いた矢印(a>0a > 0)なら、角度は傾き(縦の変化 ÷ 横の変化)がb/ab/aになる角度。その名前はアークタンジェント(逆正接)、arctan⁡\arctan:タンジェントの「取り消しボタン」だ。

∣z∣=a2+b2,∠z=arctan⁡ba(a>0)|z| = \sqrt{a^2 + b^2}, \qquad \angle z = \arctan\frac{b}{a} \quad (a > 0)

第7章:ドローンの本当の性格 ↗

第5章では、矢印を掛けると長さは掛け算、角度は足し算になるとわかった。割り算はそれを元に戻すはずだから、長さを割って、角度を引く。

テオ: じゃあ1/(1+i)1/(1+i)は:長さ1/21/\sqrt 2で、角度は45°足す45°で90°? うーん。それに1+i1+iを掛け戻すと135°を向いてしまう。1とは全然違う。

ジューン: じゃあ引き算だね。長さ1/21/\sqrt 2で−45°。それに長さ2\sqrt 2で+45°を掛けると、長さ1で0°:ちょうど1。ちゃんと合う。

第7章:ドローンの本当の性格 ↗

うすい破線の矢印は、第6章の鏡像の双子zˉ=a−b i\bar z = a - b\,i(数学者はこれを共役複素数と呼ぶ):長さは同じで、角度は逆。矢印にその双子を掛けると角度が打ち消し合って、ただの正の数、つまり長さの2乗が残る。第9章の表でまさにこれが必要になる:

z zˉ=∣z∣2=a2+b2,(s−iω)(s+iω)=s2+ω2z\,\bar z = |z|^2 = a^2 + b^2, \qquad (s - i\omega)(s + i\omega) = s^2 + \omega^2

じゃあ円は? −ζωn+i ωn1−ζ2-\zeta\omega_n + i\,\omega_n\sqrt{1-\zeta^2}にある極の長さはωn\omega_n。その角度θを負の実軸から測ると、左向きの部分はωncos⁡θ\omega_n\cos\theta。だからζ=cos⁡θ\zeta = \cos\theta:減衰は角度なんだ。

ジューン: ウィジェットの2つ目の設定、1 + iωτも試してみて。第3章のコーヒーのルールが揺れと出会ったものだよ。それで割ると縮んで戻る。揺れが速くなるほどどんどん。でも4分の1回転は決して超えない。シャワーはきっとこれを気にするね。

新しい言葉

長さ ∣z∣|z|
矢印がどれだけ長いか:a2+b2\sqrt{a^2+b^2}(z=a+b iz = a + b\,iのとき)。矢印を掛けると長さは掛け算になる。
角度 ∠z\angle z
矢印がどっちを向いているか。正の実軸から測る。右を向いた矢印ならarctan⁡(b/a)\arctan(b/a)。掛けると角度は足し算、割ると引き算になる。
鏡像の双子 zˉ\bar z
実軸で上下にひっくり返した矢印、a−b ia - b\,i(共役複素数)。z zˉ=∣z∣2z\,\bar z = |z|^2。

ここまででわかったこと

わかったこと

  • P制御のドローンは、ばねについたおもりとまったく同じ方程式に従う。コントローラーは仮想的なばねなんだ。
  • その性格は2つの数で表せる:ωn\omega_n(どれだけ速いか)とζ\zeta(どれだけ跳ねるか)。
  • ωn=k/m\omega_n = \sqrt{k/m} はダンパーがないときの揺れの速さ。ζ=c/ccrit\zeta = c/c_{\text{crit}} は、減衰を、オーバーシュートをちょうど止める臨界減衰 2mk2\sqrt{mk} と比べたもの。
  • 動きは2つのeste^{st}項の混ざり合い。2つのssの値は、不足減衰のときは半径ωn\omega_nの円上にあり、過減衰のときは実軸に沿って分かれる。
  • 矢印には長さと角度(arctan⁡\arctan)がある。掛けると長さは掛け算、角度は足し算。割ると長さは割り算、角度は引き算。ζ=cos⁡θ\zeta = \cos\theta。
  • 減衰は揺れも少し遅くする:ωd=ωn1−ζ2\omega_d = \omega_n\sqrt{1-\zeta^2}。
  • 減衰は多ければいいわけじゃない:ζ=1\zeta = 1を超えると、遅い方のssの値がゼロに近づいて、すべてが遅くなる。
  • ドローンでは、KpK_pが大きいほど減衰は小さくなる。だからどんどん揺れやすくなったんだ。

テオ:「この ss の値は勘で決めたんだ。重力や風、荷物、もっと賢いコントローラーが加わったら、勘では厳しくなる。この微積分をただの代数に変えてくれる機械はないのかな?」

第7章:ドローンの本当の性格 ↗