2024年物联网嵌入式最全PID调节(理论)(1),2024物联网嵌入式开发网络编程总结篇

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  1. 最后注意你的Limits值。

姿态调节

警告:已经出现过PID值调节不当,导致电机输出值超出额定值,让飞机摔机的案例,所以要小心调节。
AQ是一个相对复杂的系统,它运用了多个PID循环。有些PID环是独立的,有些则是嵌套的。AQ有两个基本的独立的PID,一个是姿态PID,一个是导航PID.

注意:AQ默认的PID的参数是适合正常机架的,通常只需要微调即可,但如果你的机架是不同的结构,重量分布不同,尺寸不同,则需要调节PID。不过在任何情况下,你调节PID时都应该以增大或减小当前值的20%~30%为宜,不能过大。

姿态调节是与yaw pitch roll相关的。姿态PID是由两个嵌套的PID组成的:速率PID和角度PID。
速率PID(内环)控制陀螺仪信号变化的速度,它的目的是保持角速率的变化在0 rad/s。当角速率的变化率(角速度的导数,即角加速度吗)为0,意味着这种变化是恒定的。速率PID的目的就是保持任何陀螺仪信号在一个稳定的状态(例如陀螺仪没倾斜,则AQ是非常的平稳),注意这并不意味着陀螺仪的输出值要为0,它可以是任何值,但应该随时间变化却稳定。Tilt rate PID控制pitch roll的稳定性,yaw rate PID控制控制yaw的稳定性。由于陀螺仪是一个高敏感的器件,而多轴飞行器是一个高振荡的系统,所以tilt rate D值通常都非常大,就是为了补偿那些振荡。
Rate PID控制器只有D项有值,是因为rate PID的期望值设为了零,且系统的变化相当快。
这里写图片描述
为了能快速响应变化,rate PID环是以400HZ的频率运行的。陀螺仪的信号是直接使用的,没有经过任何数字滤波和修正,就是为了让系统能快速响应(R/C的信号和其它命令都能得到快速响应)。为了不因为D值较大而放大噪声信号, ARM Cortex-M4 MCU 为陀螺仪信号提供了一个巨大的过采样频率262.4KHZ。yaw rate PID是一个典型的PID控制器去调节yaw的方向。因为振荡对yaw的影响没那么大,所以yaw的D值相对较小(与rate PID相比) ,你也需要设定适当的P和I值去准确的锁定航向。
速率PID限制
姿态rate PID产生了所期望的PWM宽度(单位是微秒)去控制电机让系统稳定。PM IM DM限制了各个PID项的输出防止过大烧坏电机,OM则是整个PID控制器的最大输出。
F项
F项是用来平滑D项的。虽然我们有相对较大的D值,但实际上在每一时间小步中(1/400Hz = 2.5 us),它并不会让电机全部输出D项所生成的输出。F项的作用就是控制在每一时间步中D项应输出的值。以上图为例,F项的值为0.25,则意味着每一时间步中D项只输出其全部的25%。

姿态角度PID

角度PID(外环)控制着AQ在yaw pitch roll各轴上旋转的角度(单位是度)。这个PID环运行频率是200HZ,同样的,tilt angel PID的D值也是一个巨大的值,但yaw angel的D值则为0。角度环的设定值(角度)可能来于RC的输入或导航PID控制器的值或几种值的结合。同样的,其输出是PWM脉冲的长度(以微秒计),在每个时间步中,角度PID环的输出精确的加在内环速率PID的输出中,且和油门值一起都发送给了电机。外环PID总是力求让系统保持在一个设定的角度上,内环PID总是力求系统在旋转速率上保持一个0的变化(但不意味着旋转速率为0)。有时这两个PID互相合作,有时又互相排斥。

最大倾斜和转动

AQ的设计目的是稳定飞行,而非杂技飞行。所以为了保证稳定飞行,角度倾斜是受限的。默认的最大倾斜角度是37度左右,这两个参数控制了pitch和roll的倾斜度:

CTRL_FACT_PITC      0.05f       // user pitch 因子 
 CTRL_FACT_ROLL      0.05f       // user roll 因子

这两个乘数因子会乘上pitch和roll通道的值。如果你的遥控器输出范围是-750~750,那你的最大倾斜度是正负37.5度。
当然,我们预留了倾斜的空间,但小心提高你的乘数因子。理论上可以达到近90度的。对于任意轴上任何超过45度的倾角,你最好放弃PID控制,并基于四元数进行。

导航PID调节

导航PID是控制你的飞行器垂直方向和水平方向的移动的。这两个PID是独立的,但运行频率都是在200HZ。
水平导航PID
有两个水平方向上的导航PID互相关联的。一个控制着水平上的速度—navigation speed rate;一个控制着距离目标的距离—navigation distance rate。你会发现这两个PID都没有D项,那是因为我们处理的是相以较慢的变化信号,所以这实际上是个PI控制器。
这里写图片描述
导航距离PI设定期望的距离(单位是m)并计算出当前位置到目标位置的距离。这个PI输出一个水平方向上的速度指令(m/s)并进入到导航速度PI里面。进去后,计算出当前速度与期望速度的误差,并最终输出一个倾斜的角度(单位是度)。
以上图为例,距离上每1m的误差将会输出一个0.5m/s的速度,这个期望速度进入速度PI里后,每1m/s的误差在P项上将会输出6度的倾斜,在I项上输出1/200度的倾斜。但注意里面的PI限制。
导航速度PI的PM IM OM单位都是度,PM应用在导航时狂风里,IM应用在稳定的风里,OM则限制了整个。
导航高度PID
这里写图片描述
The same concepts applied early are utilized here. In the above settings (screen), every one meter error in altitude will result in a 0.25 m/s vertical velocity. The maximum speed is 2 m/s.
The vertical velocity is entered into the navigation altitude speed PI, which gives 200 microseconds of throttle PWM for each m/s input.
Another 1.2 microseconds is added to the output every 1/200′s of a second it takes to reach the target, i.e., each one second away from the target will add 240 microseconds to the output.
The maximum allowed PWM width, is 150 microseconds for P term and 600 microseconds for I term.
The maximum allowed PWM width from the whole PI, however, is 600 microseconds of throttle response.

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

子书籍、讲解视频,并且后续会持续更新**

如果你需要这些资料,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值