基本信息
源码名称:发动机示功图平行线法
源码大小:2.25KB
文件格式:.m
开发语言:MATLAB
更新时间:2019-11-20
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
利用MATLAB完成发动机上止点测量

clc;
clear;
close all;
%读数据
filename1='汽油机(大负荷).csv';
M=csvread(filename1,1,0);
x=M(:,1);
y=M(:,2);
% filename2='柴油机B50.csv';
% M2=csvread(filename2,1,0);
% x2=M2(:,1);
% y2=M2(:,2);

%绘图
%柴油机
% D=126.5;
% r=83;
% L=261;
% Vc=126443;
%汽油机
D=73.4;
r=39.3;
L=136;
Vc=38673;

V=D*D*pi/4.*(L r-r.*cos(x.*pi./180)-(L*L-(r.*sin(x.*pi./180)).^2).^(1/2)) Vc;
% V2=D*D*pi/4.*(L r-r.*cos(x2.*pi./180)-(L*L-(r.*sin(x2.*pi./180)).^2).^(1/2)) Vc;
% figure(1);
% plot(x,y);

% title('p-φ图');
% ylabel('缸内压力[bar]');
% xlabel('曲轴转角[°CA]');
% legend('B25','B50');

figure(2);
plot(V,y);
% hold on;
% plot(V2,y2);
% hold on;
% plot(V3,y3);
% title('p-V图');
% ylabel('缸内压力[bar]');
% xlabel('发动机瞬时体积[mm^3]');
% legend('B25','B50');
% legend('怠速','小负荷','中等负荷');

%计算
V1=V(1:1800,:);
y1=y(1:1800,:);
V2=V(1801:3600,:);
y2=y(1801:3600,:);
V3=V(3601:5400,:);
y3=y(3601:5400,:);
V4=V(5401:7200,:);
y4=y(5401:7200,:);
sjbjg=(trapz(V4,y4) trapz(V1,y1))/10000;
dlxhg=(trapz(V3,y3) trapz(V2,y2) sjbjg)/10000;
fprintf('动力循环功:%fJ\n',dlxhg);
fprintf('实际泵气功:%fJ\n',sjbjg);

%平行线法
% nihe1=polyfit(x,y,70);
% ma=max(y);
% jiaoxx=zeros(10,2);
% jiaoy=zeros(10,1);
% yfit=polyval(nihe1,x);
% plot(x,y);
% title('p-φ图');
% ylabel('缸内压力[bar]');
% xlabel('曲轴转角[°CA]');
% hold on;
% hengbiaoji=int8(0);
% for n=0.3:0.3:3
%     ma1=ma-n;
%     i=int8(10*n/3);
%     nihe1(71)=nihe1(71)-ma1;
%     jiaox=roots(nihe1);
%     for t=1:70
%         if (jiaox(t)>-35)&&(jiaox(t)<35)&&(imag(jiaox(t))==0)
%             hengbiaoji=hengbiaoji 1;
%             jiaoxx(i,hengbiaoji)=jiaox(t);
%         end
%     end
%     hengbiaoji=int8(0);
%     jiaoy(i)=ma1;
%     nihe1(71)=nihe1(71) ma1;
% end
% xx2=sum(jiaoxx,2)/2;
% szdfit=polyfit(xx2,jiaoy,1);
% szdfit(2)=szdfit(2)-1;
% szd=roots(szdfit);

% for i=1:10
%     plot([-60,60],[jiaoy(i),jiaoy(i)],'k');
%     text(jiaoxx(i,1)-6,jiaoy(i),'o','color','g');
%     text(jiaoxx(i,2)-6,jiaoy(i),'o','color','g');
%     text(xx2(i)-6,jiaoy(i),'o','color','r');
%     hold on;
%     plot([-100,100],[1,1],'k');
%     text(szd-6,1,'o','color','r');
%     hold on;
%     plot([-0.06,0.2],polyval(szdfit,[-0.06,0.2]));
% end