grass22 发表于 2008-7-13 10:24

对加速度数组进行数值积分?

=xlsread('d:\book5'); %读取数据文件
a=x(:,1); %读取时间值,并定义为数组a,列向量
b=x(:,2); %读取加速度值,并定义为数组b,列向量
=polyfit(a,b,1); %对加速度值进行线性拟合
h1=length(a);
t1=linspace(0,max(a),h1); %读取时间点,行向量
b1=c1(1)*t1+c1(2); %读取每个时间点对应的趋势项加速度值,行向量
averg=b-b1'; %获取加速度修正值,列向量
Arcm=norm(averg)/sqrt(length(averg)); %求取加速度有效值,列向量
%对加速度值进行数值积分-梯形公式
n1=length(b)-1;%设置循环体循环次数
ti=0.0005;
for i=1:n1
       Vsum(i)=(b(i)+b(i+1))*ti/2;
end
for i=1:n1
    if i==1
       V1sum(i)=(b(i)+b(i+1))*ti/2;
    else
       V1sum(i)=V1sum(i-1)+(b(i)+b(i+1))*ti/2;
    end
end
t2=linspace(0.0005,max(a),length(V1sum)); %读取速度时间点
=polyfit(t2',V1sum',1); %对速度值进行线性拟合
plot(t2',V1sum','-',t2',c2(1)*t2'+c2(2),'r');
b2=c2(1)*t2+c2(2); %读取每个时间点对应的趋势项速度值
V2sum=V1sum'-b2'; %获取速度修正值
plot(t2',V2sum','-');
%V1rcm=norm(V1sum)/sqrt(length(V1sum)); %求取速度的有效值
V2rcm=norm(V2sum)/sqrt(length(V2sum)); %求取修正速度的有效值

grass22 发表于 2008-7-13 10:24

高手给指点一下,这样求取速度有效值合适不?怎样进行误差控制?

[ 本帖最后由 grass22 于 2008-7-13 10:29 编辑 ]

sogooda 发表于 2008-7-13 19:30

先贴个数据吧

grass22 发表于 2008-7-27 22:24

数据在附件里面,第一列为时间序列;第二、三列为加速度数值。经验证,加速度有效值和数据采集软件给出的值比较吻合,不知道转换为速度后是否误差较小?

sigma665 发表于 2008-7-28 08:24

误差应该在 数据拟合 和数值积分部分
这个可以查数值方法的书,知道误差的精度

hitalfa 发表于 2012-6-2 15:59

下了看看
页: [1]
查看完整版本: 对加速度数组进行数值积分?