2022年1月24日月曜日

PID制御によるドローンの揺れに関する数値シミュレーション(3):EXCELで実行

 ここで実行するシミュレーションモデルについては、以下の二つの記事で解説している。必要に応じてそちらを参照していただきたい。

PID制御によるドローンの揺れに関する数値シミュレーション(1):理論編

PID制御によるドローンの揺れに関する数値シミュレーション(2):シミュレーションモデル

以下で解説する、EXCELのシミュレーションファイルは、以下からダウンロードできる。(EXCELで開いてください。代替ソフトで開くと、データや式は問題ないと思いますが、グラフが正しく表示されない可能性があります。グラフを書き直せば大丈夫だと思いますが)

EXCELファイルのダウンロード(このファイルのダウンロードを中止しました。D制御も組み込んだより一般的なモデルのEXCELファイルをお使いください。その中で、この記事の結果が再現可能です【D制御パラメータをゼロにする】。以下のリンク先にある、このシリーズの(5)の記事からダウンロードできます。)


ファイルの使い方を説明する。

ファイルを開くと、緑の縦線の左側に設定すべきパラメータの欄があり、「パラメータ」の蘭のDeltaという項目以外を入力する必要がある。Deltaは、そのままにすると、自動的にホバリングレベルのプロペラ回転速度で、上昇力(スラスト)と重力加速度がバランスするように計算される。あえて違う値を入力する場合は、そうしてもよい。どうなるかはご自身で考えていただきたいが、モデルが壊れることはないので、自由にやられたらよいと思う。

ダウンロードした現状は、私の自作のドローンに関わる値がセットされている。

右側は、パラメータに基づいて、シミュレーションが実行される。左側に時間の推移が示されている。時間の刻みはパラメータのΔtの欄で指定することができる。現状では、10ms毎に実行される(私の自作システムのループタイムに一致させているが、それより長くても短くてもよい)。
その後各期のパラメータが続いて、最後から3列目に、機体角度の$\theta$およびその角速度$\omega$、さらにその外側に、プロペラの回転数の変化が現れる。

パラメータを変更すると、実行結果全てがそれに合わせて自動的に変わる。

私の自作ドローンのパラメータで実行した結果を少し解説しよう。まず、解そのものを見てみよう。

この図は小さいが、EXCELの中にオリジナルが表示されているはずで、それを見ていただきたい。青い線が機体の傾き、ピッチ角を表す解で、単位は左側の軸に示されている。ラジアンで、0.1前後を頂点とする揺れなので、この揺れの角度は、30度が、π/6だから、0.1は、6度くらいの傾きが現れている。角速度は、当然ずれていて、期待が水平状態の時、絶対値で最大になる。速度は、正負が現れる。

また、その周期は約1秒である。少し緩い揺れだと思うが、自分のドローン的には、結構いいところだと思っている。

P制御だけでは揺れの制御が全くできていないことがわかる。

モータの回転数とピッチ角を同じグラフで表すと次のようになる。


興味深いのは、モータの回転の変化から、実際の回転角の変化が現れるまで、800msくらいラグがあるということである(ちょっと大きすぎる)。ESC信号から、モータの回転までのラグが、200msくらいあることが気になっているが、それ以上に回転と推力の間のラグがあるといことだ。
プロペラの回転は、直ちに力を生み出し、遅れるっことなく機体の加速度を生み出す。しかし、その加速度が、一定の機体の回転回転角の変化につながるためには、時間がかかるということだ。加速度と速度の関係から明らかなのだが、改めてなるほどと感じさせられた。
 

0 件のコメント:

コメントを投稿

920MHz帯無線通信モジュールTY92SS-E2730を使う

 先にも書いたが、ドローン2号機上のコントローラーはラズパイ4で、それとのやりとりをもともとWIFI経由で予定していたが、機体がアルミパイプであるために通信が不安定で使い物にならなかった。そこで、プロポに変えた。プロポの信号取り出しもなんとか安定できるようになったが、そのシステム...