OpenEdv-开源电子网

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

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

[复制链接]

3

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2013-8-28
在线时间
8 小时
发表于 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);


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

使用道具 举报

13

主题

448

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2015-2-7
在线时间
369 小时
发表于 2019-5-13 09:28:31 | 显示全部楼层
Z轴高度的预估是由加速度计和气压两个来预估的,所以加速度计占一部分权重,气压计占一部分权重,W就是权重的意思
回复

使用道具 举报

3

主题

6

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2018-12-7
在线时间
2 小时
发表于 2021-6-18 11:25:50 | 显示全部楼层
boshao 发表于 2019-5-13 22:07
版主,你好,还是不太理解,例如: estimator.vel[axis] += w * ewdt; 其实这个estimator.vel[aixs] = esti ...

这个貌似没看到详细的推导,很多说的都很含糊。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-10 20:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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