2018年全国大学生数学建模竞赛A题高压油管的压力控制(含word论文和源代码资源)

news/2024/7/7 20:05:21 标签: 数学建模

文章目录

  • 一、部分题目
  • 二、部分论文
  • 三、部分源代码
    • 问题1
      • (1)绘制弹性模量与压力函数图
      • (2)求最优单次开阀时间
    • 问题二
      • (1)极径与极角关系
      • (2)求最优凸轮角速度
  • 四、完整word版论文和源代码(两种获取方式)

一、部分题目

2018年高教社杯全国大学生数学建模竞赛题目

A题 高压油管的压力控制

燃油进入和喷出高压油管是许多燃油发动机工作的基础,图 1 给出了某高压 燃油系统的工作原理,燃油经过高压油泵从 A 处进入高压油管,再由喷口 B 喷 出。燃油进入和喷出的间歇性工作过程会导致高压油管内压力的变化,使得所喷 出的燃油量出现偏差,从而影响发动机的工作效率。

请建立数学模型解决以下问题

问题1 某型号高压油管的内腔长度为 500mm,内直径为 10mm,供油入口 A 处小孔的直径为 1.4mm,通过单向阀开关控制供油时间的长短,单向阀每打开 一次后就要关闭 10ms。喷油器每秒工作 10 次,每次工作时喷油时间为 2.4ms, 喷油器工作时从喷油嘴 B 处向外喷油的速率如图 2 所示。高压油泵在入口 A 处 提供的压力恒为 160 MPa,高压油管内的初始压力为 100 MPa。如果要将高压油 管内的压力尽可能稳定在 100 MPa 左右,如何设置单向阀每次开启的时长?如 果要将高压油管内的压力从 100 MPa 增加到 150 MPa,且分别经过约 2 s、5 s 和 10 s 的调整过程后稳定在 150 MPa,单向阀开启的时长应如何调整?

问题2 在实际工作过程中,高压油管A处的燃油来自高压油泵的柱塞腔出口, 喷油由喷油嘴的针阀控制。高压油泵柱塞的压油过程如图3所示,凸轮驱动柱塞 上下运动,凸轮边缘曲线与角度的关系见附件1。柱塞向上运动时压缩柱塞腔内 的燃油,当柱塞腔内的压力大于高压油管内的压力时,柱塞腔与高压油管连接的 单向阀开启,燃油进入高压油管内。柱塞腔内直径为5mm,柱塞运动到上止点位 置时,柱塞腔残余容积为20mm3。柱塞运动到下止点时,低压燃油会充满柱塞腔 (包括残余容积),低压燃油的压力为0.5 MPa。喷油器喷嘴结构如图4所示,针 阀直径为2.5mm、密封座是半角为9°的圆锥,最下端喷孔的直径为1.4mm。针阀 升程为0时,针阀关闭;针阀升程大于0时,针阀开启,燃油向喷孔流动,通过喷 孔喷出。在一个喷油周期内针阀升程与时间的关系由附件2给出。在问题1中给出 的喷油器工作次数、高压油管尺寸和初始压力下,确定凸轮的角速度,使得高压 油管内的压力尽量稳定在100 MPa左

问题3 在问题2的基础上,再增加一个喷油嘴,每个喷嘴喷油规律相同,喷 油和供油策略应如何调整?为了更有效地控制高压油管的压力,现计划在D处安 装一个单向减压阀(图5)。单向减压阀出口为直径为1.4mm的圆,打开后高压油 管内的燃油可以在压力下回流到外部低压油路中,从而使得高压油管内燃油的压 力减小。请给出高压油泵和减压阀的控制方案。

二、部分论文

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、部分源代码

问题1

(1)绘制弹性模量与压力函数图

x=xlsread('附件3-弹性模量与压力.xlsx','Sheet1','A2:A402');
y=xlsread('附件3-弹性模量与压力.xlsx','Sheet1','B2:B402');
figure('color','w');
scatter(x,y,'ro');
hold on;
y2=0.0001*x.^3-0.001082*x.^2+5.474*x+1532;
scatter(x,y2,'g.');
axis([0,205,1500,3400]);
xlabel('压力(MPa)');
ylabel('弹性模量(MPa)');
legend('原数据图像(加粗)','拟合函数图像');
box off;

(2)求最优单次开阀时间

clear,clc;
C=0.85;
A=0.49*pi;%小孔面积
V=12500*pi;%油管体积
tstep=0.02;%确定步长
z=zeros(1,length(0.01:0.01:5));%储存稳定目标值
pos1=1;    %z的下标
%遍历法探索可能解
for topen=0.01:0.01:5
    Pyb=160;      %油泵压力
    Pyg=100;      %油管压力
    rouyb=0.8725; %油泵油密度
    rouyg=0.85;   %油管油密度
    tclose=10;    %闭阀时间
    myg=rouyg*V;  %起始油管油质量
    P=zeros(1,length(0:tstep:2000)); %储存油管压力值
    pos2=1;       %P的下标
    %迭代时间
    for t=0:tstep:2000
        %计算体积变化
        Qin=State(t,topen,tclose)*C*A*sqrt(2*(Pyb-Pyg)/rouyb)*tstep;
        Qout=py(t)*tstep; 
        myg=myg+(Qin-Qout)*rouyg; %计算油管油质量
        rouyg=myg/V;              %更新油管油密度
        Pyg=y(rouyg);             %更新油管油压力
        P(pos2)=Pyg;
        pos2=pos2+1;
    end  
    z(pos1)=sum((100-Pyg).^2);
    pos1=pos1+1;
end
[i,j]=min(z);
topen=j/100;

%密度转化为压力
function P=y(x)
P=17284.0015*x^2-27111.3456*x+10656.1125;
end
%单向阀状态
function flag=State(t,topen,tclose)
 %topen为开阀时间,tclose为关阀时间
 T=topen+tclose;%总周期
 mt=mod(t,T);  %放入第一周期
 if mt<=topen  %开阀
    flag=1;
 else
    flag=0;  %闭阀
 end
end

%输入时间,输出喷油速率
function v=py(t)
nt=mod(t,100);%放入第一周期
    if nt<=0.2
       v=100*nt;
    elseif nt<=2.2
       v=20;
    elseif nt<=2.4
       v=240-100*nt;
    else
       v=0;
    end

end

问题二

(1)极径与极角关系

a=xlsread('附件3-弹性模量与压力.xlsx','Sheet1','A2:A629');
r=xlsread('附件3-弹性模量与压力.xlsx','Sheet1','B2:B629');
y=-0.06315*a.^4+0.7934*a.^3-2.647*a.^2+0.9696*a+7.09;
figure('color','w');
plot(a,r,'r:','Linewidth',3);
hold on;
plot(a,y,'b-');
axis([0,6.27,2,8]);
xlabel('极角(rad)');
ylabel('极径(mm)');
box off;

(2)求最优凸轮角速度

clear,clc;
C=0.85;
A=0.49*pi;%小孔面积
V=12500*pi;%油管体积
d1=2.5;
d3=1.4;
s1=0.25*pi*d1^2;     %针阀面积
s3=0.25*pi*d3^2;     %圆锥缺口圆环面积
L=0.5*d1/tan(pi/20); %初始针阀底端到圆锥缺口高度

tstep=0.02;%确定步长
z=zeros(1,length(0.0001:0.0001:0.05));%储存稳定目标值
pos1=1;    %z的下标
%遍历法探索可能解
for w=0.0001:0.0001:0.05
    Pyb=0.5;      %油泵压力
    Pyg=100;      %油管压力
    rouyg=0.85;   %油管油密度
    myg=rouyg*V;  %起始油管油质量
    P=zeros(1,length(0:tstep:2000)); %储存油管压力值
    pos2=1;       %P的下标
    %迭代时间
    for t=0:tstep:2000
        rouyb=0.7919*17.896/(17.896-H(w,t));
        Pyb=y(rouyb);%此时油泵油压力
        r2=(L+h(t))*tan(pi/20);
        s2=pi*r2^2;          %针阀底端与圆锥相切处圆环的面积
        B=min(s2-s1,s3);     %流出面积
        %计算体积变化
        Qin=State1(Pyb,Pyg)*C*A*sqrt(2*(Pyb-Pyg)/rouyb)*tstep;
        Qout=State2(t)*C*B*sqrt(2*(Pyg-0.1)/Y(Pyg))*tstep; 
        myg=myg+(Qin-Qout)*rouyg; %计算油管油质量
        rouyg=myg/V;              %更新油管油密度
        Pyg=y(rouyg);             %更新油管油压力
        P(pos2)=Pyg;
        pos2=pos2+1;
    end  
    z(1,pos1)=sum((100-P).^2);
    pos1=pos1+1;
end
[i,j]=min(z);
mubiao=j/10000;

%密度转化为压力
function P=y(x)
P=17284.0015*x^2-27111.3456*x+10656.1125;
end

%压力转化为密度
function rou=Y(x1)
 rou=-1.68e-6*x1^2+0.0006374*x1+0.7916;
end

%极角化极径
function jj=r(a)
 jj=-0.06315*a^4+0.7934*a^3-2.647*a^2+0.9696*a+7.09;
end

%单向阀状态
function flag1=State1(Pyb,Pyg)
 if Pyb>Pyg  %开阀
    flag1=1;
 else
    flag1=0;  %闭阀
 end
end

%喷口状态
function flag2=State2(t)
  nt=mod(t,100);%放入第一周期
 if nt<2.45    %喷出
    flag2=1;
 else
    flag2=0;    %不喷出
 end
end

%计算活塞上升高度
function HT=H(w,t)
u=zeros(1,length(0:0.1:2*pi));
pos3=1;
for a=0:0.1:2*pi
 u(1,pos3)=r(a)*sin(w*t+a);
 pos3=pos3+1;
end
HT=max(u)-2.143;
end

%针阀上升高度
function hp=h(t)
 kt=mod(t,100);%放入一个周期
 if kt<0.45
     hp=2.016*exp(-((t-0.4551)/0.1661)^2);
 elseif kt<=2
     hp=2;
 elseif kt<2.45
     hp=2.016*exp(-((-(t-2.45)-0.4551)/0.1661)^2);
 else
     hp=0;
 end
end

四、完整word版论文和源代码(两种获取方式)

Word论文和源代码

Word论文和源代码


http://www.niftyadmin.cn/n/5534978.html

相关文章

0057__pthread_cond_broadcast pthread_cond_signal

pthread_cond_broadcast & pthread_cond_signal-CSDN博客

Sqlmap中文使用手册 - 各个参数介绍(持续更新)

目录 1. 指定输出级别2. 指定目标2.1 直接连接数据库2.2 指定目标URL2.3 从代理日志中解析目标2.4 从远程站点地图文件(.xml)中解析目标2.5 从文本中解析目标2.6 从文件加载HTTP请求2.7 将google搜索结果作为攻击目标2.8 从配置INI文件获取目标 3. 请求3.1 指定HTTP方法3.2 指定…

JVM专题之内存模型以及如何判定对象已死问题

体验与验证 2.4.5.1 使用visualvm **visualgc插件下载链接 :https://visualvm.github.io/pluginscenters.html https://visualvm.github.io/pluginscenters.html **选择对应JDK版本链接--->Tools--->Visual GC** 2.4.5.2 堆内存溢出 * **代码** java @RestCont…

PE文件学习

一、介绍 PE文件&#xff0c;即Portable Executable文件&#xff0c;是一种标准的文件格式&#xff0c;主要用于微软的Windows操作系统上。这种格式被用来创建可执行程序&#xff08;如.exe文件&#xff09;、动态链接库&#xff08;.DLL文件&#xff09;、设备驱动&#xff0…

Java web应用性能分析之【prometheus监控K8s指标说明】

常规k8s的监控指标 单独 1、集群维度 集群状态集群节点数节点状态&#xff08;正常、不可达、未知&#xff09;节点的资源使用率&#xff08;CPU、内存、IO等&#xff09; 2、应用维度 应用响应时间 应用的错误率 应用的请求量 3、系统和集群组件维度 API服务器状态控…

JDBC中如何处理数据库连接超时和SQL超时?

在JDBC&#xff08;Java Database Connectivity&#xff09;中&#xff0c;处理数据库连接超时和SQL执行超时是确保应用程序稳定性和性能的重要方面。以下是如何处理这两种超时的详细步骤&#xff1a; 1. 数据库连接超时 数据库连接超时通常发生在尝试与数据库建立连接时&…

Swift Core Data 分阶段迁移

文章目录 前言什么是分阶段迁移&#xff1f;提供一些背景信息创建迁移管理器设置使用 Core Data 栈。总结 前言 在这之前&#xff0c;我发布了一篇文章&#xff0c;在其中解释了如何使用映射模型和自定义迁移策略执行复杂的 Core Data 迁移。虽然这种方法性能良好且运行良好&a…

06-6.3.3 图的深度优先遍历

&#x1f44b; Hi, I’m Beast Cheng &#x1f440; I’m interested in photography, hiking, landscape… &#x1f331; I’m currently learning python, javascript, kotlin… &#x1f4eb; How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…