搜索
bottom↓
123
返回列表 发新帖
楼主: feng_matrix

4轴姿态控制算法讨论贴

[复制链接]

出0入0汤圆

发表于 2011-11-16 17:04:17 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-11-16 23:42:04 | 显示全部楼层
新手。。。。 马克下         以后要用了在来看看

出0入0汤圆

发表于 2011-11-23 13:37:38 | 显示全部楼层
% 建模数据;
% 陀螺仪选用ADXRS150,灵敏度为15mv/°/s;
% 采样点个数 N=2500;
% 采样周期 T=0.002s;
% angle_KF 经过滤波后的角度;
% velocity_KF 经过滤波后的角速率;
% Y=[angle_KF(n);velocity_KF(n)];

t=0.002:0.002:5;    % 共5秒时间;
T=0.002;            % 采样周期;
% load test_velocity_vol test_velocity_vol;% 陀螺仪读数(电压值),1*2500;
load data2 data2;% 陀螺仪读数(电压值),1*2500;
test_velocity_vol = data2;
temp = ones(1,2500);
temp = temp * 2.7;               
velocity_vol = test_velocity_vol - temp% 陀螺仪静态输出2.5V;
velocity = velocity_vol / (15 / 1000);   % 陀螺仪角速率;
angle(1) =0;       % 陀螺仪初始位置;
for n=2:2500;
    angle(n) = angle(n-1) + velocity(n)*T;  % 在迭代过程中实际角度
end
save angle angle
save velocity velocity

load angle angle; % 陀螺仪积分得到的角度,未滤波;
load velocity velocity % 陀螺角速率,未滤波;
T = 0.002;        % 采样周期;
Y=zeros(2,2500);  % 初值为0;
Y0=[0.5;2];       % 系统状态初始值;
Y(:,1)=Y0;
A=[1,T;0,1];      % 系统状态转移矩阵;     
B=[1/2*(T)^2 T]'; % 噪声输入矩阵;
H=[1 1];          % 观测阵;

C0=[0.1,0;0,1];     % cov 初始值;
C=[C0 zeros(2,2*2499)];
Q=(0.25)^2;       % 过程噪声;
R=(0.25)^2;       % 观测噪声;

% 卡尔曼算法;
for n=1:2500
    i=(n-1)*2+1;
    K=C(:,i:i+1)*H'*inv(H*C(:,i:i+1)*H'+R);
    Y(:,n)=Y(:,n)+K*(angle(:,n)-H*Y(:,n));
    Y(:,n+1)=A*Y(:,n);
    C(:,i:i+1)=(eye(2,2)-K*H)*C(:,i:i+1);
    C(:,i+2:i+3)=A*C(:,i:i+1)*A'+B*Q*B';
end

figure(6)
t=0.002:0.002:5;
plot(t,angle_KF,'r',t,angle,'b',t,velocity_KF,'c',t,velocity,'g');
legend('angle after KF','angle','velocity after KF','velocity');
grid;
xlabel('time');
ylabel('four status');
title('KF VS NoKF');

下面这个图是滤波效果,有个疑问:陀螺仪是手拿着来回旋转的,为啥积分后的角度输出始终增大呢?


(原文件名:最新.jpg)

出0入0汤圆

发表于 2011-11-23 13:44:27 | 显示全部楼层
是不是零漂没能完全抵消,然后随时间累计增大了?

出0入0汤圆

发表于 2011-12-1 22:57:58 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-6 10:37:13 | 显示全部楼层
认真拜读了这个帖子,感觉坛里真是高人辈出啊。小弟刚刚开始学习惯性导航和卡尔曼滤波等,希望大家多多指导,多多交流……

出0入0汤圆

发表于 2011-12-6 10:50:10 | 显示全部楼层
我现在用的是ADIS16405,想通过feng_matrix的那个算法把3陀螺仪、3加速度计和3磁航向都用起来,但是下手困难啊,能否给点代码练习下呢。

msn:bianjiangnan@hotmail.com

出0入0汤圆

发表于 2011-12-29 17:11:00 | 显示全部楼层
弱弱的问一句,现在的四元法和卡尔曼滤波都这么成熟了,感觉是不是没有很大的改进空间。看了一些姿态解算的书,基本上都是默认这种算法组合。我毕设是做四旋翼的飞机系统,涉及到姿态解算这块,但是一直都没有什么创新的好想法

出0入0汤圆

发表于 2012-3-5 22:42:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-5 23:11:40 | 显示全部楼层
我写了一套c++基于exf的姿态算法,貌似帐号没审核通过,说了也白说,唉

出0入0汤圆

发表于 2012-4-2 15:44:15 | 显示全部楼层
留个名先,姿态控制的算法还是比较复杂。我用了互补滤波器效果好像不太好。

出0入0汤圆

发表于 2012-4-17 16:19:09 | 显示全部楼层
feng_matrix 发表于 2008-6-12 14:01
咋一到关键地方大家都卡壳啊?那么多对4轴有兴趣的人呢?
大家畅所欲言,胡说乱讲也没关系啊,单枪匹马就没 ...

您好,看了好几篇你的文章,非常不错,我也在弄加速度传感器,陀螺,磁3个传感器的算法融合,由于加速度传感器的输出范围为+-90度,而陀螺输出范围为+-180度,用卡尔曼滤波可以直接融合么,再一个在卡尔曼滤波的输入端是输入加速度传感器和陀螺的什么值呢,加速度传感器可以测得下倾角和横滚角,陀螺输出的角速度积分也可以得到3个方位角,而由于陀螺的输出是基于物体坐标系的,因此用四元数算法将陀螺输出的方位角转到惯性坐标系中,那么卡尔曼滤波算法的输入端是陀螺的输出经过四元数转化的值么?谢谢

出0入0汤圆

发表于 2012-5-7 09:15:10 | 显示全部楼层
从头看到尾了,觉得还是不太明白。。先mark了。。以后再回头翻。。

出0入0汤圆

发表于 2012-5-9 19:43:02 | 显示全部楼层
一直不知道为什么四轴需要用两种传感器,只用加速度计不行吗?他求导不就是角速度吗?还没有累计误差!

出0入0汤圆

发表于 2012-8-26 20:41:27 | 显示全部楼层
mark,4轴姿态控制算法讨论!

出0入0汤圆

发表于 2012-9-3 21:29:32 | 显示全部楼层
貌似大家都没啥动静了,楼主做的咋样啦?

出0入0汤圆

发表于 2013-1-2 22:40:03 | 显示全部楼层
讲的真好。努力学习中。

出0入0汤圆

发表于 2013-1-22 10:30:26 | 显示全部楼层
xj_1232005 发表于 2008-6-13 10:07
闭环GPS辅助的惯性导航算法:
捷联式惯性导航器: 进行初始对准(初始值由GPS提供,找到当地水平面)并实现力 ...

你好  我想知道这个偏航角是怎么计算出来的, 如果飞机在水平的飞行,那么加速度计是不是不能够计算出角度,是单单用陀螺仪计算的角度吗?

出0入0汤圆

发表于 2013-2-5 11:25:37 | 显示全部楼层
贴一点我对上边卡尔曼滤波公式的注释,有不对的请大家指正
xhat_est = A * xhat + B * u                    // 状态方程,先验状态估计即上一次的后验状态估计。(先验状态估计被称为预测估计,
                                                           // 后验状态被称为校正估计)
Inn = y - c * xhat;                                  // 测量变量与预测之差,被称为测量过程的剩余或残差。C是Xk对输出Y的增益     
s = C * P * C' + Sz;                                // 先验估计误差的协方差
K = A * P * C' * inv(s);                           // 卡尔曼增益
xhat = xhat_est + K * Inn;                      // 后验估计方程
P = A * P * A' - K * C * P * A' + Sw;        // 后验估计误差的协方差

出0入0汤圆

发表于 2013-2-5 11:27:58 | 显示全部楼层
小笨蛋 发表于 2012-5-9 19:43
一直不知道为什么四轴需要用两种传感器,只用加速度计不行吗?他求导不就是角速度吗?还没有累计误差! ...

加速计测的是线性的加速度它的输出包括了重力加速度和其他的加速度,它求导肯定不是角速度

出0入0汤圆

发表于 2013-3-23 22:18:58 | 显示全部楼层
chaoran626 发表于 2013-1-22 10:30
你好  我想知道这个偏航角是怎么计算出来的, 如果飞机在水平的飞行,那么加速度计是不是不能够计算出角 ...

偏航用加速度计不太好算角度。也有文献说6个加速度计,不含陀螺仪,也能算。但一般情况下,我们还是趋向于陀螺+加速度计+GPS的组合。这个比较成熟,实践中运用得比较好。

出0入0汤圆

发表于 2013-4-10 17:26:36 | 显示全部楼层
经典,留名

出0入0汤圆

发表于 2013-4-14 11:21:49 | 显示全部楼层
留个名有时间慢慢研究.

出0入0汤圆

发表于 2013-7-13 11:20:08 | 显示全部楼层
想法很好  希望大神们积极发帖  大家共同讨论

出0入0汤圆

发表于 2013-7-16 16:08:14 | 显示全部楼层
feng_matrix 发表于 2008-6-12 14:43
to : 【4楼】 mutoudonggua 木头东瓜

呵呵,大家乱说没关系啊,讨论嘛!

说的很到位啊,怪不得我的四轴飞很不稳,有一点点风 就会很大乱飘

出0入0汤圆

发表于 2013-7-16 17:48:39 | 显示全部楼层
最后,再说一下,我从头看到尾,虽然作为一个新手,但看到这些理论,对于四轴的姿态有了进一步的了解。可到后面越来越少的人讨论了,是不是大家都好忙啊?我们时时刻刻在聆听你们,希望此帖一直被更新
再次感谢 一下楼主发表此帖

出0入0汤圆

发表于 2013-10-3 16:50:32 | 显示全部楼层
挺好的  姿态角解算出来后该如何控制电机呢?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-21 00:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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