发动机每个循环的CA50不同, 之前一直以为每个循环的AFR不同,错误的想当然 。。。
第一步
找到每个循环变化的那个AFR,共4362个循环。
第二步
找到这4362个循环对应的位置array序列
第三步
在整个数组中按上步找到的array序列顺序,找出对应数据。===就是总数据几万个中4362个循环的数据
clc;
clear;
load rec1_145.mat
af=rec1_145.Y(22).Data;%CA50=====mfb50
i=1;
j=2;
k=2;
%%%%%不按照AFR区分循环,按照CA50区分!!!!!
%单个循环的CA50值, 每1ms测量的afr, array 表示每个循环对应数据所在的位置编号
AF=zeros(1,1016);
array=zeros(1,1016);
AF(1)=af(1);
array(1)=1;
for i=2:1:46351
if (af(i)~=af(i-1))
AF(j)=af(i);
array(k)=i;
j=j+1;
k=k+1;
else
j=j;
k=k;
end
end
throttle=rec1_145.Y(98).Data;
sensor=rec1_145.Y(116).Data;
adaptive=rec1_145.Y(104).Data;
kf=rec1_145.Y(109).Data;
%每个循环摘出来一个flow
Throttle=zeros(1,1016);
Sensor=zeros(1,1016);
Adaptive=zeros(1,1016);
KF=zeros(1,1016);
for m=1:1:1016
Sensor(m) = sensor(array(m));
Adaptive(m) = adaptive(array(m));
KF(m) = kf(array(m));
Throttle(m)=throttle(array(m));
end
%检查了之后,是正确的。