OpenEdv-开源电子网

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

飞控位置和速度校正算法问题

[复制链接]

3

主题

5

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2013-8-28
在线时间
1 小时
跳转到指定楼层
楼主
发表于 2019-5-12 21:36:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10金钱
看minifly源码,有两个问题不太明白的,有那位大神能解答一下,谢谢了
1、为什么Z方向需要进行W*EWDT,而X,Y方向就不用呢,这个不太明白,源码如下:
/*位置校正*/
static void inavFilterCorrectPos(int axis, float dt, float e, float w)
{
    float ewdt = e * w * dt;
    estimator.pos[axis] += ewdt;
    estimator.vel[axis] += w * ewdt;
}
/*速度校正*/
static void inavFilterCorrectVel(int axis, float dt, float e, float w)
{
   estimator.vel[axis] += e * w * dt;
}
2、使用气压校正Z方向的加速度,权重也为什么需要是平方的呢?
/*加速度偏置校正*/
Axis3f accelBiasCorr = {{ 0, 0, 0}};

accelBiasCorr.z -= errPosZ  * sq(wBaro);
float accelBiasCorrMagnitudeSq = sq(accelBiasCorr.x) + sq(accelBiasCorr.y) + sq(accelBiasCorr.z);


回复

使用道具 举报

11

主题

440

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
1464
金钱
1464
注册时间
2015-2-7
在线时间
304 小时
2#
发表于 2019-5-13 09:28:31 | 只看该作者
Z轴高度的预估是由加速度计和气压两个来预估的,所以加速度计占一部分权重,气压计占一部分权重,W就是权重的意思
回复

使用道具 举报

3

主题

5

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2013-8-28
在线时间
1 小时
3#
 楼主| 发表于 2019-5-13 22:07:34 | 只看该作者
版主,你好,还是不太理解,例如: estimator.vel[axis] += w * ewdt; 其实这个estimator.vel[aixs] = estimator.vel[aixs] + w * w * e * dt,这里需要把W权重平方,这里有具体的推导吗?我看源码里面有很多地方计算速度或加速度都需要将W权重进行平方,而估算位置时不需要,是不是将W权重平方后,加快了估算速度或加速度迫近真实的速度或加速度?麻烦版主,继续解答一下,谢谢
回复

使用道具 举报

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

本版积分规则



关闭

正点原子STM32/FPGA资料免费下载上一条 /1 下一条

正点原子公众号

QQ|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2019-7-2 14:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
三级片电影