技术贴,顶起。 |
相当同意极速F1的说法 楼主应该没有飞过手动的的多轴 也很少去室外飞 如果陀螺仪在d^2(theta)/dt^2数值很大的时候 这个控制器会失控 一个Kp解决不了问题 结果是又回到PID去了 同样在遥控输入的时候也会有这样的问题 为什么视频上看不出这样的效果呢 不知道楼主设置的looptime是多少 如果时间很长的话输出有点像低通滤波后的效果 现在的四轴飞控的算法基本上都离不开双环PID,欧拉角,四元素,互补滤波,卡尔曼滤波,这些都是哪来的呢?我看基本上都是从国外抄搬过来的,国内的博士论文抄,硕士论文抄,现在的本科论文也在抄,不抄这些,就显示不出水平来,也就拿不到各种学位了。 这一点我完全不赞同 楼主应该也没有PID真正工业环境下的经验 也没有太多学术经验 PID kalman fuzzylogic 这类控制器只是一个大框架 如果要求一个博士去研究一个新的控制算法出来 大多数情况也是辣鸡 现在学术是允许站在别人的肩膀上研究新东西 或者对大的理论细化优化在某一应用 很多细节的部分 光一个Iterm就可以让一个中等规模公司玩1年更不要说Dterm了 BF这几年的发展楼主可以去关注一下 RC input滤波 Iterm 和Dterm处理逻辑都是根据飞行要求优化的不错 |
极速F1 发表于 2018-2-7 23:28 今天没事测试和分析了 KGJ 飞控陀螺仪的零飘以及温度漂移,测试方法与结果如下。 1、每秒读取一次陀螺仪的数据 2、测试过程中有两种状态 (1)自然状态 (2)微型风扇吹陀螺仪表面 3、持续测试时间为25秒 4、原始数据变化范围:-2 ~ +3 5、滤波后的变化范围:0 ~ 2 陀螺仪感度调整的算法如下: int SensitivityAdjustment(int x, char y) { int r; r = x / 4; r = r * y; return r / 8; } 其中:x 为陀螺仪的角速度,y 为感度 从中我们可以看陀螺仪上述的零飘经 r = x / 4 整除运算后几乎没有任何影响。飞行器每次解锁时首先对陀螺仪进行校准,而空心杯四轴飞行器的有效飞行时间最多 8 分钟,所以在整个飞行过程中,陀螺仪的零飘和温飘没有任何影响。 |
本帖最后由 KGJ 于 2018-2-9 17:37 编辑 我这个与MWC飞控的ANGLE模式是相同的,摇杆回中后,飞行器自动回到水平姿态呀! KGJ 算法中根本就没有姿态运算,与KK算法是不同的,KK算法闭环控制的是角速度,但他的目标角速度是摇杆的偏移量,所以KK飞控摇杆回中时,角速度为0,保持回中前一时刻的姿态不变,不能回复到水平姿态,这也就是MWC飞控不开ANGLE模式时的情况,如果KGJ与此相同,我就不会发这个帖子了。 KGJ 实现姿态(稳态时)控制的方法,就是摇杆舵量在四个电机上的分配量,在摇杆回中时,四个电机产生的升力相同(通过摇杆微调消除四个升力的系统误差),陀螺仪的作用仅是抵抗外部的扰动,控制的角速度目标值是“零”,所以实现了稳定。在摇杆偏离中心某个位置时,四个电机产生升力对应的稳态差是一定的,所以可以保持某个姿态飞行。 |
KGJ 发表于 2018-2-9 14:04 根据我对 KGJ 算法的理解。飞起来的手感可能与 MWC 飞控不开 ANGLE,也不开 HORIZON 模式的操作方式一致。 MPU6050 不仅有陀螺仪的数据,还有三轴加速度计的数据。如果 MWC 开了 ANGLE 或者 HORIZON 模式之一,则松开遥控器的摇杆让它回中,飞机是自动修正到水平姿态的。 而不是,松开遥控器之后,飞机仅保持当前姿态,不会自主恢复水平。 看上去楼主飞的四轴是一个有刷电机+减速器动力的,可能会比较轻不太抗风,可以找一个没有风的较大的场地。试一试飞个四边航线(可以一直对尾飞),这样我可以有更直观的理解了。 |
skypup 发表于 2018-2-9 13:33 我自己飞的感觉跟没有定高的玩具飞行器差不多,与仅有MPU6050传感器的MWC飞控的效果也差不多,稳定,也很好操控。 |
KGJ 发表于 2018-2-8 11:38 比我之前预期的要稳。 |
本帖最后由 KGJ 于 2018-2-8 20:42 编辑 牛牛苑苑加油 发表于 2018-2-8 14:02 第一,我这里用的是“基本上都”,这个“基本上”也就是“大体上”的意思,是一程度副词,是指十个中有九个或八个是这样的。而“都”是一范围副词,是指在不同层次、不同区域是这样的。 你说的“国内控制方面做得还是很好的,顶级期刊有很大一部分都是华人”这个可能就是十分之一,最多十分之二的人群了。 第二,“国内的博士论文抄,硕士论文抄,现在的本科论文也在抄”,这里用了一个“现在”,说明博士、硕士那是过去的事了,是在多旋翼飞行器普及的“前夜”的事了。 这种现象在我接触到的范围内的确比比皆是,这可能与我国改革开放之初学习国外的先进科学技术有关,由学习变成依赖性,再加上评价体系出现的问题,很多学习就变成了抄袭(很有技巧的抄袭),但愿随着发展,我国自主创新的东西越来越多,这种现象逐渐消失,但“八二定律”可能依然是存在的。 |
“我看基本上都是从国外抄搬过来的,国内的博士论文抄,硕士论文抄,现在的本科论文也在抄,不抄这些,就显示不出水平来,也就拿不到各种学位了。” 不知道lz什么水平,但这句话太以偏盖全,国内控制方面做得还是很好的,顶级期刊有很大一部分都是华人。 |
skypup 发表于 2018-2-8 00:49 上午在小客厅里又录了一小段视频,不知道是否符合你的要求。 ?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2[/media] |
KGJ 发表于 2018-2-8 10:29 如果给中学生看的话,非常好! |
这个原本是给中学生的创客教育做的一个方案,他们又想玩流行的东西,又想能自己编程,还能够理解控制原理和算法程序,现有教育类可编程的四轴飞行器并不是真正的飞控编程,而是对遥控器的操作编程,也就是替代人操控摇杆,所以编程的内容基本上都是“上升5秒 -- 前进4秒 -- 往左3秒 ……”。但实际情况是,中学生的课业压力大,基本上都没有时间去玩,所以转给非电子专业的新手去玩,如果不会代码编程的,也可用Mixly的图形编程方式来玩了。 |
大致理解你的算法了。 不过现在的手动飞控,特别是直机陀螺仪,一般不再关注稳定性,而是关注飞行器的阶跃和冲激响应特性,所以设计思路明显不同。 要做机动,以及在狂风中飞行(5~8级),和室内飞行所使用的算法要求是完全不同的。 |
现在少见这样的帖子了,顶一下吧 |
本帖最后由 KGJ 于 2018-2-8 06:18 编辑 skypup 发表于 2018-2-8 00:49 这个控制算法的核心就是,摇杆的动作量直接控制四个电机的转速,陀螺仪的闭环控制角速度为零,从而实现自稳。 这个算法与KK的不同之处在于:KK 的PID(无论是Rolf R Bakke,还是Minsoo Kim 修改的算法)算法,摇杆给定的是目标角速度,他们闭环控制的核心是“摇杆动作量 - 陀螺仪输出的角速度”;而 KGJ 的核心则是“0 - 陀螺仪输出的角速度”。 另外,大家没必要太纠结 PID 中的各项,P、PI、PD、PID 都统称为 PID,只不过系数不同而已,根据自己的实际控制效果作取舍。 实际飞行前面有段小视频,当时主要看悬停,下次再拍一段飞行范围稍大点的视频吧。 我是五十多岁才接触实际航模的,准确的说就是四轴飞行器,我现在也就会飞自稳模式,即使在自稳模式也只能做到对尾飞行,标准的KK算法,我在家里小客厅根本就不敢飞的,我的飞行水平是很烂的 这个论坛唯一不足的就是我无法上传附件 |
极速F1 发表于 2018-2-7 23:28 在实际飞行期间,电池电耗尽之前,没发现有影响。 如果仔细看算法和实际测试,就会发现陀螺仪的输出零飘在+/–1之内。 |