求此款飞行器遥控器说明书微调详解

只需一步,快速开始
扫一扫,访问微社区
后使用快捷导航没有帐号?
查看: 17262|回复: 7
四旋翼飞行器Quadrotor飞控之 PID调节(参考APM程序)
加入社区,轻松玩转无人机!
才可以下载或查看,没有帐号?
本帖最后由 Bluesky 于
11:45 编辑
做四轴也有一段时间了,最近一直在做PID方面的工作。现在四轴基本可以实现室内比较稳定的飞行,操控手感也可以接受。稍后上试飞视频。在此把一些PID方面的经验总结总结和大家分享一下。首先介绍一下大概的硬件组成:MCU:Freescale MK60D传感器(IMU):GY-86模块(MPU6050 + HMC5883L + MS5611)433MHz数据传输模块DC-DC可调式开关稳压模块遥控设备:JR XG7发射机 + JR 611B接收机机架:普通红白f450机架电机:朗宇高效能电机(黑色)电调:天行者40A桨:仿APC1047电池:DUPU 2200mah 25c电路很简单用洞洞板搭的简易测试电路。 软件方面最主要的是姿态解算,最终用的是MPU6050的DMP(Digital Motion Process)输出,遥控器控制的目标姿态也是四元数表示的。为了有较好的线性度,将两者的姿态差转换为欧拉角后再进行PID的控制。下面进入正题。PID算法很大程度上参考了APM(国外成熟开源飞控项目,官网)的控制算法。它是采用的角度P和角速度PID的双闭环PID算法。角度的误差被作为期望输入到角速度控制器中。双闭环PID相比传统的单环PID来说性能有了极大的提升,笔者也曾经调试过传统的PID控制算法,即便参数经过了精心调整和双环控制算法相比在控制效果上的差距依旧很大。无论是悬停的稳定性,打舵时的快速跟随性和回正时的快速性上都是后者的效果明显优于前者。大概介绍一下APM算法的大概流程。这个PID控制流程图可以在APM官网找到。笔者参考的是APM3.1.0的代码和图上2.9版本的有一点点出入,不影响大局(控制频率100hz)。
12.jpg (661.19 KB, 下载次数: 196)
00:03 上传
横滚(Roll)和俯仰(Pitch)的控制算法是一样的,控制参数也比较接近。首先得到轴姿态的角度差(angle error),将这个值乘以角度系数p后限幅(限幅必须有,否则剧烈打舵时容易引发震荡)作为角速度控制器期望值(target_rate)。target_rate与陀螺仪得到的当前角速度作差,得到角速度误差(rate_error)乘以kp得到P。在I值小于限幅值(这个值大概在5%油门)或者rate_error与i值异号时将rate_error累加到I中。前后两次rate_error的差作为D项,值得注意的是加需要入20hz(也可以采用其它合适频率)滤波,以避免震荡。将P,I,D三者相加并限幅(50%油门)得到最终PID输出。偏航(Yaw)的控制算法和前两者略有不同,是将打舵量和角度误差的和作为角速度内环的期望值,这样可以获得更好的动态响应。角速度内环和横滚与俯仰的控制方法一致,参数(积分限幅值会很小,默认只有万分之8)上有不同。把APM的算法移植过来,限幅值也移过来之后就可以进行PID参数调整了。一般先进行横滚或俯仰方向的调整。把四轴固定起来,只留一个待调整方向的旋转自由度(简直就是旋转“烤四轴”有木有)。笔者稍后奉上调试时使用的装置。强烈建议调试时带上厚的防护手套,不然的话我的手早就被被打烂了,调个飞机还负伤就不值得了。
13.png (670.31 KB, 下载次数: 37)
00:04 上传
左右两个直线轴承,用几颗自攻螺丝拧在桌子上(可怜的桌子
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & ),插上铝合金管(外径12mm,壁厚2mm,注意要调整两个直线轴承的位置使它们同轴),两头用角铁限位也是拧在桌子上
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & 。把四轴用胶带+扎带绑在上面即可开始“烤四轴”。 大概过程(注意修正反向):1、估计大概的起飞油门。2、调整角速度内环参数。3、将角度外环加上,调整外环参数。4、横滚俯仰参数一般可取一致,将飞机解绑,抓在手中测试两个轴混合控制的效果(注意安全),有问题回到“烤四轴”继续调整,直至飞机在手中不会抽搐。5、大概设置偏航参数(不追求动态响应,起飞后头不偏即可),起飞后再观察横滚和俯仰轴向打舵的反应,如有问题回到“烤四轴”。6、横滚和俯仰ok以后,再调整偏航轴参数以达到好的动态效果。 过程详解:1、要在飞机的起飞油门基础上进行PID参数的调整,否则“烤四轴”的时候调试稳定了,飞起来很可能又会晃荡。 2、内环的参数最为关键!理想的内环参数能够很好地跟随打舵(角速度控制模式下的打舵)控制量。在平衡位置附近(正负30度左右),舵量突加,飞机快速响应;舵量& &&&回中,飞机立刻停止运动(几乎没有回弹和震荡)。2.1首先改变程序,将角度外环去掉,将打舵量作为内环的期望(角速度模式,在APM中叫ACRO模式,在大疆中叫手动模式)。2.2加上P,P太小,不能修正角速度误差表现为很“软”倾斜后难以修正,打舵响应也差。P太大,在平衡位置容易震荡,打舵回中或给干扰(用手突加干扰)时会震荡。合适的P能较好的对打舵进行响应,又不太会震荡,但是舵量回中后会回弹好几下才能停止(没有D)。2.3加上D,D的效果十分明显,加快打舵响应,最大的作用是能很好地抑制舵量回中后的震荡,可谓立竿见影。太大的D会在横滚俯仰混控时表现出来(尽管在“烤四轴”时的表现可能很好),具体表现是四轴抓在手里推油门会抽搐。如果这样,只能回到“烤四轴”降低D,同时P也只能跟着降低。D调整完后可以再次加大P值,以能够跟随打舵为判断标准。2.4加上I,会发现手感变得柔和了些。由于笔者“烤四轴”的装置中四轴的重心高于旋转轴,这决定了在四轴偏离水平位置后会有重力分量使得四轴会继续偏离平衡位置。I的作用就可以使得在一定角度范围内(30度左右)可以修正重力带来的影响。表现打舵使得飞机偏离平衡位置,舵量回中后飞机立刻停止转动,若没有I或太小,飞机会由于重力继续转动。 3、角度外环只有一个参数P。将外环加上(在APM中叫Stabilize模式,在大疆中叫姿态模式)。打舵会对应到期望的角度。P的参数比较简单。太小,打舵不灵敏,太大,打舵回中易震荡。以合适的打舵反应速度为准。 4、至此,“烤四轴”效果应该会很好了,但是两个轴混控的效果如何还不一定,有可能会抽(两个轴的控制量叠加起来,特别是较大的D,会引起抽搐)。如果抽了,降低PD的值,I基本不用变。 5、加上偏航的修正参数后(直接给双环参数,角度外环P和横滚差不多,内环P比横滚大些,I和横滚差不多,D可以先不加),拿在手上试过修正和打舵方向正确后可以试飞了(试飞很危险!!!!选择在宽敞、无风的室内,1米的高度(高度太低会有地面效应干扰,太高不容易看清姿态且容易摔坏),避开人群的地方比较适合,如有意外情况,立刻关闭油门!!!5.1试飞时主要观察这么几个方面的情况,一般经过调整的参数在平衡位置不会大幅度震荡,需要观察:5.1.1在平衡位置有没有小幅度震荡(可能是由于机架震动太大导致姿态解算错误造成。也可能是角速度内环D的波动过大,前者可以加强减震措施,传感器下贴上3M胶,必要时在两层3M泡沫胶中夹上“减震板”,注意:铁磁性的减震板会干扰磁力计读数;后者可以尝试降低D项滤波的截止频率)。5.1.2观察打舵响应的速度和舵量回中后飞机的回复速度。5.1.3各个方向(记得测试右前,左后等方向)大舵量突加输入并回中时是否会引起震荡。如有,尝试减小内环PD也可能是由于“右前”等混控方向上的舵量太大造成。 6、横滚和俯仰调好后就可以调整偏航的参数了。合适参数的判断标准和之前一样,打舵快速响应,舵量回中飞机立刻停止转动(参数D的作用)。 至此,双环PID参数调节完毕!祝爽飞!
求代码!求代码!求代码!求代码!求代码!
就是没代码
顶起.........頂..........
不错........
大神,我要拜你为师!想请教你一些问题。
求代码,楼主
大神,请收下我的膝盖
Powered by【经验】教你调整加速度计让你的四轴飞行器平稳的飞 - 单片机干货 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
【经验】教你调整加速度计让你的四轴飞行器平稳的飞
11:26:48  
23662&查看
1.jpg (31.4 KB, 下载次数: 5)
11:29 上传
玩四轴往往会有以下3个问题
<font color="#. 四轴飞行器如何做到垂直起飞?
2. 四轴飞行时为何会飘?
3. 如何做到脱控?
这三个问题可以说是玩四轴常见的3个问题了。就原理上讲,他们的原因大多都是由加速度计引起的。
如果飞机可以垂直起飞,说明你的加速度计放置地很水平,同时也说明你的PID控制算法参数找的不错,既然可以垂直起飞,那么飞行过程中,只要无风,四轴几乎就不会飘,自然而然就可以脱控飞行。由此可见,加速度计是个十分重要的器件。
& && &&&在姿态解算中,或者说在惯性导航中,依靠的一个重要器件就是惯性器件,包括了加速度计和陀螺仪。陀螺仪的特性就是高频特性好,可以测量高速的旋转运动;而加速度计的低频特性好,可以测量低速的静态加速度。无论是何种算法(互补滤波、梯度下降、甚至是Kalman滤波器),都离不开对当地重力加速度g的测量和分析。惯性导航利用的就是静态性能好的加速度计去补偿动态性能好的陀螺仪漂移特性,得到不飘并且高速的姿态跟踪算法,因此基于惯性器件的姿态解算,加速度计是老大,它说了算。
下面,我给大伙推理一下四轴如何平稳飞行的思路,欢迎各位批评指出::-)
& && &&&首先,为了让四轴平稳的悬停或飞行在半空中,四个电机必须提供准确的力矩-&假设力矩与电机PWM输出呈线性关系,也就是必须提供准确的4路PWM-&4路PWM由遥控器输入(期望角度)、PID算法及其参数和姿态解算输出(当前角度)组成。
& && & 假设遥控器输入不变(类似脱控)、PID算法及其参数也较为准确(PID参数无需十分精确,但只要在某个合理的范围内,控制品质差不了多少),也就是姿态解算的输出必须是十分准确的,可以真实反应飞行器的实际角度-&姿态解算的结果由加速度计和陀螺仪给出,根据前述惯性导航的描述,加速度计补偿陀螺仪,因此要得到精确的姿态解算结果,
& && & 务必要求加速度输出精确的重力加速度g-&这里仅讨论悬停飞行,因此忽略掉额外的线性加速度(事实证明,在四轴强机动飞行过程中,线性加速度必须要考虑并消除),假设加速度计输出重力加速度g,这个重力加速度g必须十分“精确”。
& && &&&总结一下:精准力矩-&精准PWM-&精准姿态-&加速度计输出“精确”重力加速度g。
& && &&&这里的“精确”打了引号,意思不是说加速度的性能十分好,要输出精确的当地加速度g,而是说它能够准确反应机架的角度。为了达到悬停、平稳的飞行效果,控制算法输出的PWM会让加速度计输出的重力加速度g在XOY平面内的分量就可能少,也就是说:
PID控制算法控制的不是机架水平,而是加速度计水平,PID不知道机架是什么东西,它只认加速度计,它的使命就是让加速度计水平。
我现在假设加速度计与机架存在某个角度,比如右倾30°,四轴主视图如图所示。
142219trw1sspmsmsrttkm.jpg.png (27.44 KB, 下载次数: 5)
11:21 上传
上图中,加速度计(红线)与四轴机架的水平面(虚线)呈30°。起飞后,PID控制算法会尝试将加速度计调整至水平位置,因此四轴就会往图中左边飘,倾斜角度也为30°。这就是为什么飞机无法垂直起飞,或者飞行过程中往一个方向飘的原因:加速度计和机架没有水平。因此在加速度计的机械安装时,尽量保证加速度计与机架水平。如果有些朋友已经将加速度计固定在飞控板上,可以通过遥控器的通道微调功能设置悬停时的期望角度,软件上校正这种机械不水平。
& && &&&除了上述讨论的加速度计安装水平问题,也需要对加速度计进行零偏置校正,具体的方法叫做6位置标定法:即将加速度计沿着6个方向放置,分别记录重力加速度计g在6个方向上的最大输出值,然后取平均,得到圆球的中心点(这里假设g投影为球,实际上为椭球,需要进行最小二乘法拟合求三轴标定系数)。
& && &&&最后提一点,如果加速度计和遥控器均做了调整,飞机可以做到垂直起飞,并且飞行效果还行,但是飞机的回中速度较慢,感觉就像是在抬轿子一样。具体描述:悬停时,猛往一个方向打摇杆后立即放手,飞机会往摇杆方向走很远才停下。这是因为飞机过于稳定,也就是内环的作用过强或者外环作用过弱导致,解决方法是降低内环P或者加大外环P。
09:45:20  
感谢楼主的分享,努力学习中。。。。。。。。。
19:49:31  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
助理工程师
22:14:01  
谢谢分享& && && && && && && && &
09:07:33  
谢 谢&&分 享。
很好的东西。。。
06:58:54  
很好,收藏学习了
22:23:42  
不错 ,值得学习
10:08:53  
分析的很不错,学习了
14:49:08  
还行,入门者适合看看
资深工程师
10:51:59  
学习学习,谢谢分享!
等待验证会员
17:02:23  
好厉害的说,好厉害的说,好厉害的说,好厉害的说,好厉害的说,好厉害的说
等待验证会员
20:17:10  
真心不错!!谢谢楼主!!
07:10:14  
谢谢分享。。。。。。。。。。。。。。。。。。。。。。。。。。。。
20:35:32  
赞一个。。。。。
23:28:15  
谢谢谢谢谢谢谢谢谢谢谢谢
等待验证会员
16:38:15  
看看还不知道能不能学会
15:17:00  
你好,楼主,想问问你能不能出售这个飞行器的机构,而且要留有扩展接口的?
等待验证会员
19:45:04  
顶,支持.....很有用的资料
10:28:14  
分析的很不错,谢谢了
18:39:29  
学习中,谢谢分享
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司

我要回帖

更多关于 四通道遥控六轴飞行器 的文章

 

随机推荐