Processing math: 100%

2022年2月24日木曜日

剛体としてのドローンのシミュレーション(2):むだ時間ありモデル

 PID制御に信号と動作の間の遅延があった場合を分析する。この遅延は「むだ時間」と呼ばれている。

先のシミュレーションの目的もこのむだ時間があった場合の分析を目的としていた。そして、むだ時間があるとPID制御に大きな困難をもたらすことがわかった。その点が、モデルを剛体を考慮したものにしたときどうなるのかをここで調べる。

以前のシミュレーション記事のリストは以下にあるので、必要に応じて参照していただきたい。

目次:PID制御によるドローンの揺れに関する数値シミュレーション

剛体としてみたドローンモデルの運動式は、

I\frac{d\omega}{dt}=L(f_{1}-f_{2})

となり、前の記事と同じである。ESCからの信号とトルク発生の間にむだ時間が発生するとしよう。むだ時間を\tauで表す。これによって回転トルクを発生させる力f_{1}, f_{2}は次のように表される。ただし、\omegaは角速度で、\omega=d\theta/dtである。

f_{1}=\delta\left(V_{0}-P\theta_{t-\tau}-D\left.\frac{d\theta}{dt}\right|_{t-\tau}\right)^{2}=\delta\left(V_{0}-P\theta_{t-\tau}-D\omega_{t-\tau}\right)^{2}

f_{2}=\delta\left(V_{0}+P\theta_{t-\tau}+D\left.\frac{d\theta}{dt}\right|_{t-\tau}\right)^{2}=\delta\left(V_{0}+P\theta_{t-\tau}+D\omega_{t-\tau}\right)^{2}

右辺は、\tau期前のPID制御の信号に基づいてプロペラの回転数が実現しトルクが発生していることを示している。この右辺をラグ関数としてlag(\theta, \omega)としよう(システムが前のものとは簡単になったのであえて定義する必要がないかもしれないが)。すなわち、

lag(\theta, \omega)=-\frac{4L\delta V_{0}}{I}(P\theta+D\omega)

となる。そして、次のような、一階の連立微分方程式を考える。

\frac{d\theta_{t}}{dt}=\omega_{t}
\frac{d\omega_{t}}{dt}=lag(\theta_{t-\tau}, \omega_{t-\tau})

これに4次のルンゲ・クッタ法を適応する。(ルンゲ・クッタ法については、前のシミュレーションの(2)の記事などを参考にしていただきたい

これは(6)の記事にある漸化式から\cos \thetaに関わるものを除いた式と、形が一致するので、それを載せると次のようになる。

\begin{eqnarray*}k_{1}^{\theta}&=&h\omega_{n}\\k_{1}^{\omega}&=&h(lag(\theta_{n-\tau}, \omega_{n-\tau}))\\k_{2}^{\theta}&=&h(\omega_{n}+\frac{k_{1}^{\omega}}{2})\\k_{2}^{\omega}&=&h(lag(\theta_{n-\tau}, \omega_{n-\tau}))\\k_{3}^{\theta}&=&h(\omega_{n}+\frac{k_{2}^{\omega}}{2})\\k_{3}^{\omega}&=&h(lag(\theta_{n-\tau}, \omega_{n-\tau}))\\k_{4}^{\theta}&=&h(\omega_{n}+k_{3}^{\omega})\\k_{4}^{\omega}&=&h(lag(\theta_{n-\tau}, \omega_{n-\tau}))\\\theta_{n+1}&=&\theta_{n}+\frac{1}{6}(k_{1}^{\theta}+k_{2}^{\theta}+k_{3}^{\theta}+k_{4}^{\theta})\\\omega_{n+1}&=&\omega_{n}+\frac{1}{6}(k_{1}^{\omega}+k_{2}^{\omega}+k_{3}^{\omega}+k_{4}^{\omega})\end{eqnarray*}

これは機械的に変換したが、結果的に k_{1}^{\omega}=k_{2}^{\omega}=k_{3}^{\omega}=k_{4}^{\omega} であるからこの値をk^{\omega}とおく。漸化式は次のようになる。

k^{\omega}=h\cdot lag(\theta_{n-\tau}, \omega_{n-\tau})

k_{1}^{\theta}=h\omega_{n}

k_{2}^{\theta}=h(\omega_{n}+\frac{k^{\omega}}{2})

k_{3}^{\theta}=h(\omega_{n}+\frac{k^{\omega}}{2})

k_{4}^{\theta}=h(\omega_{n}+k^{\omega})

\theta_{n+1}=\theta_{n}+\frac{h}{3}(2\omega_{n}+ lag(\theta_{n-\tau}, \omega_{n-\tau}))

\omega_{n+1}=\omega_{n}+\frac{2h}{3} \cdot lag(\theta_{n-\tau}, \omega_{n-\tau})

これによるシミュレーション結果は、次の記事で示す。

0 件のコメント:

コメントを投稿

円パイプを45度の角度で切断する型紙を作成する数学的方法

 動画などで、円パイプを90度の角度で接合するために斜めに切る型紙の作成の方法がアップされている。確かにその方法で作成すれば切断した両方を繋げば90度で繋ぐことができる。ただ、それは通常考えるパイプを45度で切断したものの両方を90度で接合するものとは違うとお思える。なぜなら、そ...