要从乱七八糟的数据中,找出数据 是否阶梯变攻角,攻角最小值,攻角最小值,攻角变化速度,总压平均值、最大最小值,-5°攻角转速,0°攻角转速,10°攻角转速,以及两个转速差......
matlab写得我好想吐啊,编译器提示又那么睿智,而且很不习惯这种语言风格,我还是爱Java,555555。
球球老师放过我吧,我要学Java
%对每个工况的所有车次数据, 计算它的
%1.总压波动大小与平均值比 P0percent
%2.攻角=-5时转速 Rev1(试验开始时),攻角等于0时转速Rev2(转速最低点),攻角=10时转速Rev3 (结束时转速)
% 计算出两端转速差drev1=rev1-rev2,drev2=rev3-rev2
%
%画图 Ma ,攻角,总压,静压,转速
% set(h,'visible','off')
rootdir ='C:\Users\admin\Desktop\风洞在家分析\626数据_整理后的\0.6\*.xls*';
fileList =dir(rootdir);
P0_index=2;
Pct_index=3;
Rev_index=4;
Ma_index=5;
Angle_index=6;
di=1;%第di个文件
Step_trans=0;
for index=1:length(fileList)
Step_trans=0;
fileInfo =fileList(index);
if (fileInfo.name=='.')|(fileInfo.name=="..")
continue
end
xlsPath =fullfile(fileInfo.folder,fileInfo.name);
[num,txt] =xlsread(xlsPath);
P0=num(:,P0_index);
Ma=num(:,Ma_index);
Rev=num(:,Rev_index);
Pct=num(:,Pct_index);
Angle=num(:,Angle_index);
j=1;
Angle_start=1;
%去掉头部攻角不变化的部分
while j<length(Angle)
if Angle(j)~=Angle(j+1)
Angle_start=j;
break;
end
j=j+1;
end
j=length(Angle)-1;
Angle_stop=length(Angle);
%去掉尾部攻角不变化的部分
while j>0
if Angle(j)~=Angle(j+1)
Angle_stop=j;
break;
end
j=j-1;
end
% for j=int32(length(Angle)/3):int32(length(Angle)*2/3)
for j=Angle_start:Angle_stop
if (Angle(j)==Angle(j+1))&&(Angle(j)==Angle(j+2))
Step_trans=1;%是否为阶梯变攻角
break
end
end
Angle_change_length=0;
for k=int32(length(Angle)/2):length(Angle)-1
if Angle(k)~=Angle(k+1)
if Step_trans
Angle_change_length=Angle(k+1)-Angle(k);
%如果是阶梯变,该值是阶梯高度
else
Angle_change_length=(Angle(k+1)-Angle(k))*2;
%如果是连续变,该值是0.5秒变化的角度,所以要乘2
end
break
end
end
start_Angle=Angle(1);
end_Angle=Angle(length(Angle));
rev1=Rev(1);
rev2=min(Rev);
rev3=max(Rev);
drev1=rev1-rev2;
drev2=rev3-rev2;
meanP0=mean(P0);
maxP0=max(P0);
minP0=min(P0);
P0percent=(maxP0-minP0)/meanP0;
TongJi(di,:)=[Step_trans,start_Angle,end_Angle,Angle_change_length,meanP0,maxP0,minP0,P0percent,rev1,rev2,rev3,drev1,drev2];
% Ma ,攻角,总压,静压,转速
% h = figure('Visible','off');
% subplot(3,2,1);
% plot(Ma);
% title("Ma");
% subplot(3,2,2);
% plot(Angle);
% title("攻角");
% subplot(3,2,3);
% plot(P0);
% title("总压");
% subplot(3,2,4);
% plot(Rev);
% title("转速")
% subplot(3,2,5);
% plot(Pct);
% title("静压");
% dotpositon =find(fileInfo.name=='.');
% savefig(h,fullfile(fileInfo.folder,fileInfo.name(1:dotpositon-1)));
% data(di).dat=num(:,5);
% data(di).name=txt{5};
di=di+1;
end