2022年1月29日土曜日

PID制御によるドローンの揺れに関する数値シミュレーション(8):慣性モーメント

 遅延シミュレーション(7)では、制御に遅延がある場合に、深刻な困難が発生することを示した。

問題をどう克服するか。どこで遅延が発生するのかをきちんと把握することが必要である。モーターのパワーあるいは反応特性の可能性は高いと思っているが、制御コンピュータ(私の場合はRaspberryPI 4)からPWMモジュール、そしてESCの間の信号の流れの中で発生している可能性も否定できない。このような問題の所在を突き止めることはまた次の課題にして、ここでは、信号遅延があることを前提に、可能な解決の道を少し探りたいと思う。

これまでの記事については、以下を見ていただきたい。


先の記事で示した、フライトの破綻は、機体の動きに対する必要な制御が遅れることによって、加速度的に事態を悪化させている状況と見ることができる。そこで、機体の反応をゆっくりにして、信号の遅れを許容するようにすることが考えられる。それは、言い換えれば、機体の慣性モーメントを大きくして、動きをゆったりとしたものにすることである。

(1)腕の長さ1m、遅延200ms
中心からモーター位置までの距離を長くすると慣性モーメントは大きくなる。ここではL=1.0メートルにしよう。期待幅が2メートルを超えるドローンになるので、現実にはありえないが、何しろシミュレーションなので簡単である(笑)

プログラムは遅延シミュレーション(7)にリンク先を書いておいたので、そちらからダウンロードできる。そのパラメータLを1.0に変更したわけである。

ピッチ角とモーター回転数の結果は次のようになる。
(7)の結果と決定的に違うのは、加速度的破綻ではなく、一応、振動に留まっていることである。ただ、モーターの回転数が瞬間的に負になっている、フライトが破綻しているという事態は変わりない。その一瞬、モーターが逆回りするようなシステムであれば対応可能だが、まあ、ありえない。P制御と、D制御のスケールは、それぞれ10000と4000であり、遅延がない状況では、一瞬で安定したホバリングが実現できる状況である((5)を参照)。

後半では、ほぼ単振動状態になり、振動の周期は、約1秒である。

(2)腕の長さ1m、遅延100ms
もし、他は上と同じ状況で、遅延が半分の100msにとどまったとしたら次のような結果になる。(タイトルに L=0.5とあるのは、L=1.0の間違い)
揺れは正常に収束する。前のシミュレーションでは100msの遅延でも200msの遅延と全く変わらず、一方的に破綻していたのに、こちらは正常に収束している点では、完成モーめんを大きくすることの効果は絶大と言ってもいい。

その意味では、少しでも遅延を小さくした方がいいのである。まさに、喫緊の課題なのだ。

(3)腕の長さ1m、遅延200ms、P制御10000、D制御3000
(1)の状況から、D制御を3000に小さくしてみた。
比較すると、振動の周期が傾向的に増大、(1)のような単身同状態にはならなくなる。D制御が効かなくなったことがネガティブな影響を与えている。

(4)腕の長さ1m、遅延200ms、P制御5000、D制御4000
(1)の状態から、P制御だけを半分にした。




遅延が200msなのに、かなり急速に安定化している。

(5)腕の長さ1m、質量=1.0Kg、遅延200ms、P制御10000、D制御4000
(1)の状態からモーターにかかる機体荷重が1Kgに増えたとしよう。これは4ロータードローンの場合、機体荷重が4Kgになるということである。

当然、モーター強度も強くならなければならない。モーターの強度は、このシミュレーションモデルの場合、$\delta$で表され、それはホバリングを実現するレベル、与えられた機体荷重のもとで、基準回転数で重力による力と浮力がバランスする値として、自動で計算されるようにしている。その時は、機体の加速度がゼロになっているということである。

結果は次のようになる。


(1)と比べてみると、一瞬でもモーター回転が負になる状況が存在しないという点では、パフォーマンスは改善しているが、単振動化の事実は変わらない。

それでも機体重量の増加による慣性モーメントの増大はポジティブな結果をもたらすことはわかった。

(5)腕の長さ0.8m、質量=1.0Kg、遅延200ms、P制御5000、D制御4000
最後に、一応、いいところを入れたものを一つ示しておく。実用性はないのだが。


慣性モーメント、特に腕の長さが、遅延に対して影響を与えることは確認できた。

記事のシリーズ一覧は以下です。

PID制御によるドローンの揺れに関する数値シミュレーション(7):遅延シミュレーション 

PID制御によるドローンの揺れに関する数値シミュレーション(8):慣性モーメント

PID制御によるドローンの揺れに関する数値シミュレーション(9):ジャイロ効果

PID制御によるドローンの揺れに関する数値シミュレーション(10):ジャイロ効果シミュレーション



0 件のコメント:

コメントを投稿

立ち上がらないraspberrypiのネットワーク

 raspberrypiのネットワークが立ち上がらなくなってしまっていた。差し当たって必要ないのでほっておいたが、今日、いろいろ調べてみた。 結局、raspi-confgで、network Configure をdhcpcdから、networkmanagerに変更したら立ち上がる...