5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
楼主: dstdx72
打印 上一主题 下一主题

DIY自动返航OSD正式开始,挖个坑,慢慢填日志~~~

[复制链接]
81
 楼主| 发表于 2010-12-8 21:18 | 只看该作者
原帖由 ian11122840 于 2010-12-8 20:35 发表
老哥,传感器信号要经过处理的,位数高只是分辨率高,与精度无关~~

建议看下《匠人手记》吧,里面有很多种滤波处理方法

不过你既然连这个都不熟,有点悬啊...


AD位数与最终积分精度有关的
比如2103的10位AD,Vref=3.0V,那么最小分度电压值为3V/1024=2.92mV
那么陀螺仪传感器输出的低于2.92mV的变化例如1.8mV的变化信号就会被忽略掉
如此反复积分,误差就积累起来了,而且这个误差相当可观,导致陀螺仪的可用时间大大减少
假如用12位AD,那么最小分度值为3/4096=0.73mV,1mV的电压变化都不会被漏掉
虽然同时采集到的噪声会增加,但噪声本身是白平衡的,不会造成累计误差,问题不是很大
于是陀螺仪的可用时间会延长。

例如,假设在10位AD下静飘为10秒/度,那么用12位AD理论上就会延长4倍,达到40秒/度
于是程序对陀螺仪的修正周期就可以延长4倍了

欢迎继续阅读楼主其他信息

82
发表于 2010-12-9 12:41 | 只看该作者
老大,看看这个帖子吧,德国MK的四轴开源项目的讨论帖:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3348262&bbs_page_no=1&search_mode=1&search_text=算法&bbs_id=1025

MK的融合代码主要做了3件事:
第一件是即时融合,就是实时地根据加速度计的数值反推出陀螺仪积分应有的数值,然后根据当前的陀螺仪积分进行调整。

第二件是长期融合,在代码里它用0.5秒的时间采集加速度计的数据,然后到0.5秒时对这些数据进行平均,依此来得到一个相对稳定的加速度计数值。根据这个数值来相对准确地知道四轴这0.5秒的姿态,然后再修整调整量,做到自动稳定到平衡位置。

第三件是根据调整量的大小,决定是否需要修改陀螺仪中立点。这部分我目前还搞不太明白,所以先暂且不提。有前2部分已经可以做到让四轴稳定到LAMA的程度了。


归根结底,是要用加速度计去算法修正陀螺仪的积分。
呵呵,我经常在四轴论坛逛,所以对这个比较熟一点。

[ 本帖最后由 ian11122840 于 2010-12-9 12:45 编辑 ]
83
 楼主| 发表于 2010-12-9 17:59 | 只看该作者
原帖由 ian11122840 于 2010-12-9 12:41 发表
老大,看看这个帖子吧,德国MK的四轴开源项目的讨论帖:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3348262&bbs_page_no=1&search_mode=1&search_text=算法&bbs_id=1025

MK的融合代码主要做了3件事:
...

老弟,你发的这个图哪年就看过了,顺便给你说下,这个框图是忽悠人的。
因为它的修正系数是定值(<1),而修正的输入参数又是误差,因此输出的修正量始终是小于误差的
所以最终结果必然是误差越来越大
简而言之,这个模型的传输函数是发散的,不能收敛,所以是行不通的

肯定要用加速度计来修正陀螺,修正算法才是关键
84
 楼主| 发表于 2010-12-9 18:02 | 只看该作者
今天把硬件部分调试成功,现在开始做融合算法
AD采样出来的噪声好大,居然达到了5mv!
LPC2103的AD确实做得太尴尬了~~~
85
 楼主| 发表于 2010-12-9 18:09 | 只看该作者
MK的融合方式太简单,估计不适合固定翼,它是通过加速度计的平均采样值作为水平的参照依据,这对于不会长时间加减速和在大风中飞行的4轴来说问题不会太大,最多不过导致稳定性差点,飞起来摇摇摆摆,但对于固定翼麻烦就大了去了,严重时甚至可能导致炸机

因此固定翼上不能用这样简单的办法去修正陀螺的

争取1周左右把算法部分完成,周末去试验
86
发表于 2010-12-9 18:47 | 只看该作者
留个记号
87
 楼主| 发表于 2010-12-10 20:47 | 只看该作者
:em25: 算法部分果然难啊

前面个老哥说得不错,要显式计算姿态角度,必须用四元数来表达旋转,欧拉角表示会有计算死角

看来只有搞简单版本的PID调节

不打算显式计算姿态了,否则lpc2103吃不消
内核时钟240MHz的时候,这家伙搞点三角函数运算都很吃力,几个角度计算下来居然要0.几秒,加上舵机控制和串口数据通讯开销,实时运算看来是不可能的了
早知如此,该搞个强点的CPU

[ 本帖最后由 dstdx72 于 2010-12-10 20:49 编辑 ]
88
发表于 2010-12-12 01:43 | 只看该作者
重复劳动,毫无创新;
舍本逐末,缘木求鱼;
飞机平衡,要建模型;
汝若有才,精确制导;
坦克火炮,运动瞄准;
学以致用,勿荒青春;
良言苦口,谏者无罪.
89
发表于 2010-12-13 23:18 | 只看该作者
强烈支持LZ的探索精神,祝LZ早日成功!:em26:
90
发表于 2010-12-13 23:40 | 只看该作者
原帖由 dstdx72 于 2010-12-10 20:47 发表
:em25: 算法部分果然难啊

前面个老哥说得不错,要显式计算姿态角度,必须用四元数来表达旋转,欧拉角表示会有计算死角

看来只有搞简单版本的PID调节

不打算显式计算姿态了,否则lpc2103吃不消
内核时钟240 ...


三角函数……我觉得参数定点化、查表比较好,精确到1°的话查找表不大,代价就是一次内存访问、快得很;更高精度吃内存就是了,时间没变化。
本身库的实现一般就是泰勒级数展开,照着做不会有太多速度提升;而且拿定点处理器算浮点,基本加减乘除的开销都是非常大的。

[ 本帖最后由 darxide 于 2010-12-13 23:46 编辑 ]
91
发表于 2010-12-14 11:28 | 只看该作者
高手都是用查表的哦~~
呵呵,甚至很多常用的函数都可以用查表做:em15:

还有我那个框图是很多事实证明可以用的哈,那个叫四两拔千斤~你去那个帖子里仔细体会下,读完了再说
92
发表于 2010-12-14 14:35 | 只看该作者

回复 95楼 ian11122840 的帖子

那图只是把俩读数加权平均一下而已,片子比较慢、没法用复杂算法的话拿来对付一下还成。同时仅限四轴这种基本都在悬停的机子使用,固定翼用不成。

[ 本帖最后由 darxide 于 2010-12-14 14:37 编辑 ]
93
 楼主| 发表于 2010-12-14 19:35 | 只看该作者
原帖由 darxide 于 2010-12-13 23:40 发表


三角函数……我觉得参数定点化、查表比较好,精确到1°的话查找表不大,代价就是一次内存访问、快得很;更高精度吃内存就是了,时间没变化。
本身库的实现一般就是泰勒级数展开,照着做不会有太多速度提升;而且 ...

这个主意绝对好!十分感谢!:em00: 主要本人用单片机搞运算的场合用的少,这些技巧比较缺乏。只要存储器够用,这个点子是又快又精确,佩服佩服!
94
 楼主| 发表于 2010-12-14 20:02 | 只看该作者
原帖由 ian11122840 于 2010-12-14 11:28 发表
高手都是用查表的哦~~
呵呵,甚至很多常用的函数都可以用查表做:em15:

还有我那个框图是很多事实证明可以用的哈,那个叫四两拔千斤~你去那个帖子里仔细体会下,读完了再说

哈哈~~你发那个链接老早就看过了,里面说到点子上的基本没有,有的是大家基本都知道的“把加速度数据和陀螺数据融合”,但具体怎么个融合法,说得也是含含糊糊的
至于这个框图呢,我再明确告诉你一次,它是不能用的,连陀螺静态漂移都克服不了:
f(t)=f(t0)+I(t)-(I(t)-a)*k,其中t0为上一时刻,t为当前时刻,f( )为融合后角度,I(t)为t时刻偏移t0时刻的积分角度,a为加速度计输出的角度,k为增益<1,那么这个函数是发散的,不能收敛于a
不管函数怎么构造,它必须随着时间变量t增加,收敛于加速度计输出角度a,才能起到用加速度计修正陀螺漂移的作用,也就是从图形上看,f(t)必须不断靠近a才行

年轻人,不要看着什么感觉可行,就去拿来不加修改就用,这样是不行的

MK的四轴平衡算法,绝不是你发的框图那么简单,嘿嘿
95
 楼主| 发表于 2010-12-14 20:15 | 只看该作者
今日进度:

1)完成用遥控的3位开关挡自由切换手动、辅助平衡、自动平衡3种模式
2)完成了手动模式下,用遥控完全操纵各舵机
3)完成了在辅助和自动模式下,从包括倒飞、俯冲、侧翻等任意姿态下改出到接近水平的控制
4)实时测量舵机信号脉宽

下一步:水平状态的精密控制
96
 楼主| 发表于 2010-12-14 20:41 | 只看该作者
上几张图,纪念一个阶段告终,新的阶段开始。

凌乱的工作台,简陋的调试设备

DSCF0062.JPG (58.36 KB, 下载次数: 29)

DSCF0062.JPG

DSCF0064.JPG (52.63 KB, 下载次数: 20)

DSCF0064.JPG

DSCF0063.JPG (60.28 KB, 下载次数: 22)

DSCF0063.JPG
97
发表于 2010-12-14 22:42 | 只看该作者
呵呵。。我都走在你的前面呀。
4元数发还是比较难的,我用ATMEGA32,也没有搞成,还是算了,用简单的积分法,用在这样的机器上没有问题,以前的4轴都是这样的。
看样子做成FY20A,还真不是很容易。
我的固定翼平衡仪已经改用红外温度的了。
98
发表于 2010-12-14 23:04 | 只看该作者
我在啃捷联惯导书,毕业多年,什么线代矩阵全忘光了.
搞不成就弄红外算了,省力点.
算法没做好,惯导的可靠性还是比红外来得差.
99
发表于 2010-12-15 08:29 | 只看该作者
已经实机测试了?真的假的啊~
进度挺快嘛
100
发表于 2010-12-15 10:08 | 只看该作者
不错。加油。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

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