完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
3个回答
|
|
|
|
根据题主的问题,估且就认为是在有高度信息(无论是超声波、气压计还是多传感器融合获取的)的情况下,如何用PID算法做PID控制。以下所描述的参考开源pixhawk飞控的思路,以伪代码方式大概简单描述,如有错误,多多包涵。
1)程序中自然是判断是否已经进入定高模式。进入定高后,先根据油门杆量,算出高度方向的速度设定值(爬升率/下降率)。注:定高模式下,油门杆不再直接控制电机转速,而是Z轴方向的速度,杆量在中位,自然不再有速度,因此高度方向达到悬停。 这三行代码主要是进行归一化,并进行限速。 Thr=THROTTLE / 1000.0f; ZRate_sp= -Scale (Thr-0.5f,0.5f,ALT_CTRL_Z_DB); ZRate_sp = ZRate_sp * ALT_VEL_MAX; 其中scale函数主体部分如下所示 ALT_CTRL_Z_DB为定高模式的死区大小。 评分
|
||
|
||
进行位置控制器的运算,是P加前馈控制,加上前馈控制,响应会快些。
Z_pos_err= -( Alt_sp - alt); Z_pos_VelSp = Z_pos_err * alt_PID.P + ZRate_sp * ALT_FEED_FORWARD; 位置控制器的输出是Z轴的速度设定值。所以接下来,就是速度控制器,主要是PID控制。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
969 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
954 浏览 2 评论
2066 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1162 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1587 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:52 , Processed in 0.589397 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号