搜索
bottom↓
回复: 28

卡尔曼算法,ADXRS150陀螺仪数据处理,以及滤波前后波形对比

[复制链接]

出0入0汤圆

发表于 2011-11-21 16:57:45 | 显示全部楼层 |阅读模式
点击此处下载 ourdev_697563NP6J4S.rar(文件大小:109K) (原文件名:示波器数据.rar)

% 建模数据;
% 陀螺仪选用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;
temp = ones(1,2500);
temp = temp * 2.5;               
velocity_vol = test_velocity_vol - temp; % 陀螺仪静态输出2.5V;
velocity = velocity_vol * (15 / 1000);   % 陀螺仪角速率;
angle(1) = 0.05;       % 陀螺仪初始位置,旋转角度假设为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;0.01];      % 系统状态初始值;
Y(:,1)=Y0;
A=[1,T;0,1];      % 系统状态转移矩阵;     
B=[1/2*(T)^2 T]'; % 噪声输入矩阵;
H=[1 0];          % 观测阵;

C0=[0,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(1)
t=0.002:0.002:5;
angle_KF=Y(1,2:2501);
velocity_KF = Y(2,2:2501);
axis([0 5 -0.1 0.2]);
plot(t,angle_KF,'r',t,angle,'b',t,velocity,'g');
legend('angle after KF','angle','velocity');
grid;
xlabel('time');
ylabel('four status');
title('KF VS NOKF');


(原文件名:图2.jpg)


figure(2)
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');


(原文件名:图1.jpg)

示波器波形图:

(原文件名:示波器波形图.JPG)

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2011-11-21 17:01:21 | 显示全部楼层
在示波器图片中,紫色的为陀螺仪数据波形,绿色为磁场传感器一轴的波形,由于硬件还未完全做完,所以没能将加速度波形传上来。各位大侠,给点意见哈,诚心讨论学习!

出0入0汤圆

 楼主| 发表于 2011-11-21 17:22:34 | 显示全部楼层
上面程序中陀螺仪零漂设的为0.05,若设置为0时,波形如下:

(原文件名:陀螺仪零漂为0时波形.jpg)

出0入0汤圆

 楼主| 发表于 2011-11-21 17:27:53 | 显示全部楼层
在图2和2楼的图片,对比情况下:当陀螺仪的零漂不为0时,其输出经过积分后大约为0.08度,但是当其零漂继续增大时:

(原文件名:陀螺仪零漂为1时波形1.jpg)


(原文件名:陀螺仪零漂为1时波形2.jpg)

出0入0汤圆

 楼主| 发表于 2011-11-21 17:31:04 | 显示全部楼层
其积分误差明显增大,不过最终,实测角度和滤波后的值有向相同大小变化的趋势,若能确定陀螺仪的零漂,在算法中加以补偿,效果应该还是可以的。

出0入0汤圆

发表于 2011-11-21 17:32:32 | 显示全部楼层
Mark一下

出0入0汤圆

 楼主| 发表于 2011-11-21 17:38:40 | 显示全部楼层
这里有个问题:在假定陀螺仪零漂时,我是直接用输出角度对其量化的,不知道这样会不会有问题哈。

出0入0汤圆

 楼主| 发表于 2011-11-21 17:41:56 | 显示全部楼层
回复【5楼】rqbh
mark一下
-----------------------------------------------------------------------

出0入0汤圆

发表于 2011-11-22 15:51:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-22 15:58:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-22 16:06:01 | 显示全部楼层
MARK

出0入0汤圆

 楼主| 发表于 2011-11-23 13:26:53 | 显示全部楼层
哈,才发现有个错误哦!

(原文件名:错误.jpg)
应该是这样的哈:velocity = velocity_vol / (15 / 1000);   % 陀螺仪角速率;就说老感觉有点不对劲撒!

出0入0汤圆

 楼主| 发表于 2011-11-23 13:27:46 | 显示全部楼层
还有陀螺仪的零点大约为2.7V,不是2.5V哦

出0入0汤圆

 楼主| 发表于 2011-11-23 13:30:37 | 显示全部楼层

(原文件名:最新.jpg)
这个才是,不知道怎么样,好像积分后输出的角度并没有正负变化,而是一直往正或者负增加呢!!!

出0入0汤圆

 楼主| 发表于 2011-11-23 13:33:09 | 显示全部楼层
大牛们,给点意见啊,是不是陀螺的零漂还是没抵消完的原因?

出0入0汤圆

发表于 2011-11-23 14:28:47 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-11-23 14:32:52 | 显示全部楼层
mark~

出0入0汤圆

发表于 2011-11-23 15:48:45 | 显示全部楼层
mark,学习中~

出0入0汤圆

发表于 2011-11-24 12:14:37 | 显示全部楼层
我覺得就是陀螺儀零點漂移或是其他加速度運動造成陀螺儀干擾的問題

出0入0汤圆

发表于 2011-11-24 13:11:32 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2011-11-24 16:59:13 | 显示全部楼层
你的速度估計可能存在著極小的偏移,可能是零點的問題,如果沒有修正,積分的結果就是那樣,一次多項式,往正或往負,直線上升

出0入0汤圆

发表于 2012-2-10 01:41:05 | 显示全部楼层
mmmmmmmmm

出0入0汤圆

发表于 2012-2-14 12:07:11 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-2-16 20:11:42 | 显示全部楼层
恩,仿真的效果比较好,不过在实际的过程中,难点在于Q(激励干扰信号方差的)测量;不良的初值可通过增大迭代次数的来纠正,但方差值设置错误,最后结果可能一直不理想。

出0入0汤圆

发表于 2012-2-17 00:55:35 | 显示全部楼层
这两天正在整陀螺仪,看到希望了!!

出0入0汤圆

发表于 2012-2-18 14:40:55 | 显示全部楼层
请问你的虚拟示波器是什么软件?能分享我用下吗?

出0入0汤圆

发表于 2012-2-18 14:49:14 | 显示全部楼层
回复【25楼】newhand1991
请问你的虚拟示波器是什么软件?能分享我用下吗?
-----------------------------------------------------------------------

同问

出0入0汤圆

发表于 2012-2-18 15:10:23 | 显示全部楼层
回复【26楼】3466756555  
回复【25楼】newhand1991
请问你的虚拟示波器是什么软件?能分享我用下吗?
-----------------------------------------------------------------------
同问
-----------------------------------------------------------------------
看样子这不是虚拟示波器,是MATLAB仿真的波形。

出0入0汤圆

发表于 2012-2-19 15:29:50 | 显示全部楼层
回复【楼主位】zerok
-----------------------------------------------------------------------

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

本版积分规则

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

GMT+8, 2024-7-24 02:13

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

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