OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2088|回复: 2

四轴总结四轴总结四轴总结四轴总结四轴总结

[复制链接]

12

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
金钱
238
注册时间
2018-8-2
在线时间
39 小时
发表于 2019-11-9 18:18:31 | 显示全部楼层 |阅读模式
四轴总结

作者:林宏伟 时间:2019/11/09



2018年寒假时,学习了一段时间的四轴,分享一些调试的经验。四轴的一些结构和控制的选取就不细讲了。

以下分为三点:

1.PID控制器

2.四轴姿态角

3.调试

1.PID-控制器:

四轴可以理解为一个自动控制系统,涉及自动控制的系统都需要自动控制算法的支持,PID算法是自动控制算法的一种,十分实用。PID可以分成P(比例)I(积分)D(微分)。系统如果要实现自动控制,系统要求有负反馈。


简单说,PID控制器中P 就是比例,就是输入偏差乘以一个系数;I 就是积分,就是对输入偏差进行积分运算;D 就是微分,对输入偏差进行微分运算。PID分为单级PID和串级PID,四轴中使用的串级PID,相比单级PID多了一个PID,可以理解为两个单级PID串在一起。

公式:u = kp*e(t)+Ki*e(t)+kd*(e(t)-e(t-1))

Kp = 0.6*Km

Kd = Kp*π/4*ω

Ki = Kp*ω/π


其中:

Kp为比例控制参数

Kd为微分控制参数

Ki为积分控制参数





下面分析引用正点原子小四轴,个人觉得十分有用

内环 P:从小到大,拉动四轴越来越困难,越来越感觉到四轴在抵抗你的拉动;到比较大的数值时,四轴自己会高频震动,肉眼可见,此时拉扯它,它会快速的振荡几下,过几秒钟后稳定;继续增大,不用加人为干扰,自己发散翻机。特别注意:只有内环 P 的时候,四轴会缓慢的往一个方向下掉,这属于正常现象。这就是系统角速度静差。

内环 I:前述 PID 原理可以看出,积分只是用来消除静差,因此积分项系数个人觉得没必要弄的很大,因为这样做会降低系统稳定性。从小到大,四轴会定在一个位置不动,不再往下掉;继续增加 I 的值,四轴会不稳定,拉扯一下会自己发散。特别注意:增加 I 的值,四轴的定角度能力很强,拉动他比较困难,似乎像是在钉钉子一样,但是一旦有强干扰,它就会发散。这是由于积分项太大,拉动一下积分速度快,给 的补偿非常大,因此很难拉动,给人一种很稳定的错觉。

内环 D:这里的微分项 D 为标准的 PID 原理下的微分项,即本次误差-上次误差。在角速度环中的微分就是角加速度,原本四轴的震动就比较强烈,引起陀螺的值变化较大,此时做微分就更容易引入噪声。因此一般在这里可以适当做一些滑动滤波或者 IIR 滤波。从小到大,飞机的性能没有多大改变,只是回中的时候更加平稳;继续增加 D 的值,可以肉眼看到四轴在平衡位置高频震动(或者听到电机发出滋滋的声音)。前述已经说明 D 项属于辅助性项,因此如果机架的震动较大,D 项可以忽略不加。

外环 P:当内环 PID 全部整定完成后,飞机已经可以稳定在某一位置而不动了。此时内环 P,从小到大,可以明显看到飞机从倾斜位置慢慢回中,用手拉扯它然后放手,它会慢速回中,达到平衡位置;继续增大 P 的值,用遥控器给不同的角度给定,可以看到飞机跟踪的速度和响应越来越快;继续增加 P 的值,飞机变得十分敏感,机动性能越来越强,有发散的趋势。


2.四轴姿态角:

俯仰角(pitch):机体坐标系 X 轴与水平面的夹角,围绕 X 轴旋转。当 X 轴的正半轴位于过坐标原点的水平面之上(抬头)时,俯仰角为正,否则为负。

偏航角(yaw):机体坐标系 X 轴在水平面上投影与地面坐标系 Xg 轴之间的夹角,围绕 Y 轴旋转。机头右偏航为正,反之为负。

滚转角(roll):机体坐标系 Z 轴与通过机体 Z 轴的铅垂面间的夹角,围绕 Z 轴旋转。机体向右滚为正,反之为负。

3.四轴调试:

我们给内环 ROL 速率和 PIT 速率的 P 同时设置一个值,然后推动油门至 50 左右观察并记录现象:

下面是测试我们不同 P 的值和对应的现象:

P = 10 时,四轴乱晃无法固定于某一个角度,用手轻轻干扰四轴会绕绳子旋转,说明 P值太小,力度不够。

P = 100 时,四轴晃动幅度减小但还是无法固定于某一个角度,用手轻轻干扰四轴还会绕绳子旋转,说明 P 值还是太小,力度不够

P = 1000 时,四轴已经不晃动了,用手轻轻干扰明显感觉有回复力,说明 P 值已经慢慢趋向理想值。

P = 5000 时,四轴机身晃动严重已经震荡,说明 P 值已经过大,由此可确定理想的 P 值应该在 1000~5000 范围内。

P = 2500 时,四轴不晃动并且能固定在某一个角度了,机身也不震荡,用手去干扰能感觉到明显的回复力。说明 P 值已经很接近理想值了。

P = 3500 时,四轴机身轻微晃动说明已经轻微震荡,用手去干扰能感觉到很强的回复力。说明 P 值已经稍大于理想值了。

P = 3200 时,四轴没有晃动,用手去干扰能感觉到很强的回复力并有点晃动。说明 P 值就是我们的理想值了,晃动问题后期可以通过加点 D 抑制。

调内环 pitch 和 roll 的 D

内环 P 已经调节好,但如果四轴受到干扰则会震荡,说明稳定性不好,这时我们就需要通过加 D 来增强稳定性。按照第四步的操作方法,设置 P 值为 3200,,测试不同的 D 值对应的现象:

D=10 时,用手去干扰四轴,能感觉到很强的回复力并有点晃动,说明 D 值有点小,抑制不了干扰。

D=100 时,用手去干扰四轴,能感觉没有晃动了但四轴需要长时间才能回复到水平,说明 D 值太大了,抑制了 P 的调整。

D=50 时,用手去干扰四轴,能感觉没有晃动了四轴也能较快回复到水平,说明 D 值接近理想值了。

调外环 pitch 和 roll 的 P

内环调好了,下面我们开始调外环。外环的主要作用是控制四轴姿态响应快慢,下面我们测试不同的 P 值,观察四轴的响应速度。按照前面操作方法,我们测试 P 值和现象如下:

P=10 时,方向摇杆往前打到最大,发现四轴慢慢倾斜,最终达到设定角度。响应速度不够快,说明 P 太小了。

P=100 时,方向摇杆往前打到最大,四轴瞬间倾斜了达到设定角度,而且力量很大。说明 P 值太大了。

P=50 时,方向摇杆往前打到最大,四轴较快的达到设定角度,不是很快也不是很慢。说明 P 值是我们理想值了。

调内环 yaw 的 PID

调节内环 yaw 的 PID 前需将第一步注释掉的 ENABLE_PID_TUNING 宏定义重新注释回来,并且编译下载至四轴。然后设置 yaw 外环 P 为 10,内环 P 设定为某一个值,慢慢推油门让四轴起飞至水平,推油门摇杆时不要向左或向右打到航向角。飞至水平后,推油门至50,然后用手轻轻向左边或向右拨动四轴,感受四轴的回复力,并且听电机的声音。下面是我们设置不同内环 P 的值时对应的现象:

当 P=10 时,四轴几乎没有回复力,受干扰后左右摆晃,电机声音差异不大。说明 P 值太小了,没有修正的回复力。

当 P=100 时,四轴有一点点回复力,受干扰后左右摆晃,电机声音差异不大。说明 P值还是太小。

当 P=1000 时,四轴有明显的回复力,受干扰后不会摆晃,电机声音差异很大。说明 P值接近理想值了。

当 P=5000 时,四轴有明显的回复力,受干扰后两个电机停止转动,电机声音差异非常大。说明 P 值已经太大了。跟以上调试现象和经验我们最终选定 P 值为 1200,然后再逐渐添加一点了积分 I,没有添加 D。内环的反馈是陀螺仪,航向角也是由陀螺仪积分而得,陀螺仪在四轴飞行过程有高频干扰,高频干扰使得 D 具有相反作用,所以我们没有添加 D。

调外环 yaw 的 PID

调节外环 yaw 的 P 和调节外环 pitch\roll 的 P 方法一样,主要是调节四轴的受控制的响应速度。给外环 yaw 的 P 设定一个值然后推油门和航向角,感受四轴旋转的快慢。这里我们选定 P 的值为 100。

手动试飞

经过以上步骤调试,四轴基本可以手动飞行了,松开绳子测试手动飞行。飞行过程中如果在无风条件下发现四轴晃动说明内环 pitch 和 roll 的 P 值大了,这时可以通过减小 P 或增加 D 来抑制晃动。如果发现航向角受外力干扰不能快速回复到原本状态,这可能是内环 yaw的 P 太小了,需要增加 P。如果发现飞行过程会慢慢自旋,说明 yaw 的 I 太大了,需要减小I 值。经过以上反复调试,

调定高的 PID

定高 PID 调节是比较揪心的,调试过程我们按照正常的 PID 调试方法先调 P 再调 I 最后调节 D,反复调试发现根本行不通,四轴依旧很难定在一定高度范围内。后来经过分析,我们发现使用气压计定高,气压数据有很大的滞后性,并且四轴飞行过程垂直向下的风也会干扰气压读数。所以我们调试时不管怎么调节 P,出现的现象是要么慢慢的上升或慢慢的下降,要么快速上蹿下跳,根本不受控制。后来我们根据 PID 理论中 D 有抑制超调和干扰的作用,索性把 D 也先加上一点点,果然有效果,四轴上蹿下跳没那么厉害了。继续增加 D四轴更加稳定了,当 D 增加到很大时,我们发现,推动油门四轴不怎么受控制了,说明 D值太大了将 P 的作用都抑制了。反复调试后,我们最终选定 PID 的值为 210,0,600。

总结

PID 三项的的意义:P 是系统平衡的回复力; I 是消除误差,有辅助 P 的作用;D 是阻尼,抑制超调和干扰的作用。调试时一般先调节 P 找到临界震荡的 P 值,然后减小一点 P值,增加 I 值消除静态误差,最后增加 D 值抑制干扰。要不要加 I 和 D 需根据实际情况而定。调试定高 PID 时,需要 P 和 D 同时调。PID 调试是比较繁琐的事情,需要耐心观察现象并分析原理。






哈哈,加油
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2019-11-9 18:26:55 | 显示全部楼层
回复 支持 反对

使用道具 举报

3

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2019-5-17
在线时间
47 小时
发表于 2019-11-9 20:13:09 | 显示全部楼层
顶顶顶
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 07:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表