Open tmori opened 5 months ago
ぼくの手計算を貼っておきます。基本的に、閉ループは2次系になり、2次系のステップ応答(3次系、1型)を解くことになります。(森さんの数式とは、 $z=-z$ で逆方向です。また、 $R=z_d$ と書いています。)
最初は、1つの設計定数で求まるかと思っていたのですが、勘違いで、いくつかの合わせ技不等式になりました。
その結果、定常偏差を10%にするにはゲインを上げないといけないのですが、そうすると、 $d$ が小さいために、 $\zeta$ がオーバーシュト量をどうしても超えてしまうことが分かりました。
(今日はここまで)
ありがとうございます! 解析いただいたパラメータで動かせる環境を作ってみますね。
空気摩擦が小さすぎて、Kpだけでは収束しないという結果が得られました。
python3 python/hako_TimelineAnalyzer.py --columns Z --diff ./drone_log3/drone_dynamics.csv
そうなのよー。うまく整定する解は、定常偏差1m以内にはないみたい。
2024年6月12日(水) 6:33 Takashi Mori @.***>:
Kp=10 を適用した時の結果
対象プログラム:
- 実行結果:収束しない。。
2024-06-12.6.32.49.png (view on web) https://github.com/toppers/hakoniwa-px4sim/assets/164193/f4fcbb4a-0f65-4f03-bbff-ca8f3cc03ecf
— Reply to this email directly, view it on GitHub https://github.com/toppers/hakoniwa-px4sim/issues/231#issuecomment-2161634666, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAILCJJCLVRPGGWEY6CMADDZG5ULTAVCNFSM6AAAAABJDINPBKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRRGYZTINRWGY . You are receiving this because you commented.Message ID: @.***>
python3 python/control_evaluate.py ./drone_log3/drone_dynamics.csv
出力結果(例):
OK c(Steady state value) : 9.902 m (Target: 10.0±0.100 m)
OK T_r(Rise time) : 0.102 s (Target: ≤ 10.000 s)
OK T_d(Delay time) : 0.102 s (Target: ≤ 5.000 s)
NG O_s(Maximum overshoot) : 9.597 m (Target: ≤ 1.000 m)
NG T_s(5% settling time) : 29.853 s (Target: ≤ 20.000 s)
P制御だけでは制御仕様を満たせないことがわかったので、PID制御に切り替えて試行錯誤した結果です。
DroneAvator_Kp=5.5
DroneAvator_Ki=0.5
DroneAvator_Kd=4.5
結果:
OK c(Steady state value) : 9.914 m (Target: 10.0±0.100 m)
OK T_r(Rise time) : 0.042 s (Target: ≤ 10.000 s)
OK T_d(Delay time) : 0.012 s (Target: ≤ 5.000 s)
OK O_s(Maximum overshoot) : 0.256 m (Target: ≤ 1.000 m)
OK T_s(5% settling time) : 0.051 s (Target: ≤ 20.000 s)
グラフ:
一番右の機体が調整したもの
https://github.com/toppers/hakoniwa-px4sim/assets/164193/397d2862-afce-43ba-9366-6eeded19259d
計算間違っていたので、貼り直します。 計算のワークシートも貼ります。 https://docs.google.com/spreadsheets/d/1JACdNpwAYr-OUya5DmPa8r_1QfsI-4M4G-kJ_zLCvQ0/edit?usp=sharing
P制御だけでは両立しないというのが理論的にわかったのは面白い結果だと思いました。
ここからPD制御とPID制御へと移る動機づけになると思いますが、理論的に導出できなくなるところでもあるのでツライですね。。
ドローンのプラント側の運動方程式
$\ddot{z} = -\frac{u(t)}{m} + g - \frac{d}{m} \dot{z}$
制御側の式
$u(t) = K_p ( R - z(t) )$
設計仕様
参考: