2019年国赛高教杯数学建模A题高压油管的压力控制解题全过程文档及程序

本文主要是介绍2019年国赛高教杯数学建模A题高压油管的压力控制解题全过程文档及程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019年国赛高教杯数学建模

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. 燃油的压力变化量与密度变化量成正比,比例系数为𝐸/
𝜌,其中𝜌为燃油的密度,当压力为100 MPa时,燃油的密度为0.850 mg/mm3。𝐸为弹性模量,其与压力的关系见附件3。
  注2. 进出高压油管的流量为𝑄 = 𝐶𝐴 √ ̄2Δ𝑃/𝜌,其中𝑄为单位时间流过小孔的燃油量(mm3/ms),𝐶 = 0.85为流量系数,𝐴为小孔的面积(mm2),Δ𝑃为小孔两边的压力差(MPa),𝜌为高压侧燃油的密度(mg/mm3)。

整体求解过程概述(摘要)

  高压油管是燃油发动机供油系统中连接喷油泵与喷油器的重要零部件,其内部压力的变化会影响发动机的工作效率。对于给定参数规格的高压油管,本文通过建立数学模型,研究了不同进油、喷油方式下油管内压力变化情况。
  对于问题一,首先根据题目给定的压力变化量与密度变化量的对应关系,通过数值积分的方式,得到了一定精度下,不同燃油密度对应的燃油压力。建立进出油过程中油管内部压力变化的微分方程,即高压油管内部压力变化的微分模型,在此基础上研究了油管系统随时间的波动情况和稳态性质。将单向阀开启时间作为决策变量,以稳态阶段油管燃油压力与期望压力偏差的平方和为目标函数,建立基于油管压力变化微分模型的优化模型,并将微分模型改写成差分形式,通过编程遍历求解得到最优单向阀开启时长为 0.288ms。通过对模型稳态的研究,将期望压力设定为 150MPa,结合上述微分模型,通过数值模拟求解得出,调整时间为 2s 的策略为 0 到 2s 内单向阀每次开启时长为 0.913ms,随后开启时长变为0.752ms; 调整时间为 5s 的策略为 0 到 5s 内单向阀每次开启时长为 0.755ms,随后开启时长变为 0.752ms; 调整时间为 10s 的策略为 0 到 4.1s 内单向阀每次开启时长为 0.288ms,随后开启时长变为 0.752ms。
  对于问题二,针对重新定义的高压油泵供油方式和喷油嘴的出油方式,首先研究柱塞腔内压力变化与凸轮转动的关系,建立柱塞腔内压力变化的微分模型。接着分析针阀运动,确定喷油嘴有效面积与针阀运动的关系。最后,建立油管系统压力变化的微分模型,并将其转化为差分形式,以凸轮转动角速度作为决策变量建立优化模型。通过编程遍历求解得出凸轮转动角速度的最优值为27.5rad/s。
  对于问题三,将两个喷油嘴工作时间的间隔和凸轮转动角速度共同作为决策变量,重新定义出油量,建立了两个喷油嘴的高压油管系统二元最优化模型。通过数值模拟的方法得到凸轮角速度最优值为 55rad/s,喷油嘴工作时间间隔为50ms。进一步考虑安装减压阀后的情况,分别研究泄压阀式和电磁阀式的减压阀。对于含泄压阀的油管系统,将泄压阈值作为新的决策变量,改进上一小问的模型,通过数值模拟求解得到一个最优解为压力阈值取 100MPa,凸轮角速度为440 rad/s。对于含电磁阀的油管系统,将电磁阀开启时长和关闭时长作为决策变量建立多元优化模型,通过数值模拟求解得到一个最优解为每 50ms 泄压阀工作 2ms,且距离上一次喷油嘴出油间隔为 25.225ms,此时凸轮角速度为 110 rad/s。随后,对两种减压阀的减压效果做出评价。最后,给出了模型的优缺点和改进方法。

模型假设:

  1 高压油管是刚体,不考虑其形变;
  2 高压油管的体积是理想圆柱体体积;
  3 不考虑高压油管内壁对油的粘滞力;
  4 不考虑液体压力波动和压力传播的时间,腔内液压处处相等;
  5 整个系统温度恒定;
  6 不考虑供油入口和喷油口的阀门开关的延迟时间。

问题分析:

  问题的研究对象是高压油管,研究内容为其中燃油的压力变化情况。该问题描述了该系统在不同的进油和出油方式下的压力变化特点,并在不同的进油和出油方式下提出了不同的要求。

问题一分析

  第一小问:问题定义了恒定的出油方式,同时其定义的进油方式只和系统压力与单向阀每次开启时长相关。其次提出了“将高压油管内的压力尽可能稳定在100MPa左右”的要求。这首先要求我们对“尽可能稳定在100MPa附近”做出描述,其次由问题描述易知,系统唯一的可改变变量为单向阀开启时长,这就要求我们将其作为决策变量,研究上述描述的最优化问题。
  第二小问:问题要求我们在不同的时间内将系统压力从100MPa调整到150MPa并使其稳定。这首先要求我们先将前一小问中期望的压力设定为150MPa,研究如何设定单向阀开启时间使其稳定,然后另外确定一个单向阀开启时间使得在规定时间内,系统压力能够从100MPa上升到150MPa。

问题二分析

  该问题重新定义了进油出油方式,此时进油方式将与凸轮的角速度有关,这要求我们在问题一的基础上重新描述进出油方式,并将决策变量设定为凸轮的角速度。同时由于引进了柱塞腔与凸轮的概念,这要求我们将其作为一个与高压油管相关联的子系统,并对其做出描述。

问题三分析

  第一小问:该问题在问题二的基础上,给系统新加了一个喷油嘴,由此出油方式将会发生改变,由于新加的喷油嘴的喷油时间是否与原来的时间重合未得到描述,所以这需要我们将这一问题作为一个决策变量。
  第二小问:在前一小问的基础上,又定义了一个泄压阀。由于问题未对其工作方式进行准确的描述,所以需要我们对泄压阀工作方式进行定义,并且将其作为一个决策因素。

模型的建立与求解整体论文缩略图

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

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:(代码和文档not free)

The actual procedure is shown in the screenshot

1. clear;
2. %% 程序初始化
3. drou=0.00001; %密度变化步长
4. rou1(1)=0.85; %已知初始密度(100-200)
5. rou2(1)=0.85; %(0-100)
6. p1(1)=100; %已知初始压强(100-200)
7. p2(1)=100; %(0-100)
8. n=1; %计数器
9. %% 算法主体
10. while(p1(end)>=0)
11. n=n+1;
12. rou1(n)=rou1(n-1)-drou;
13. i=floor((p1(n-1))/50);
14. if i==0
15. E=1538.4;
16. elseif i==1
17. E=fun1(p1(n-1));
18. else
19. E=fun2(p1(n-1));
20. end
21. dp=E/((rou1(n-1)+rou1(n))/2)*drou;
22. p1(n)=p1(n-1)-dp;
23. end
24. n=1;
25. while(p2(end)<=500)
26. n=n+1;
27. rou2(n)=rou2(n-1)+drou;
28. i=floor((p2(n-1)-100)/50)+3;
29. if i==5
30. E=3393.4;
31. elseif i==3
32. E=fun3(p2(n-1));
33. else
34. E=fun4(p2(n-1));
35. end
36. dp=E/((rou2(n-1)+rou2(n))/2)*drou;
37. p2(n)=p2(n-1)+dp;
38. end
39. %% 数据拼接
40. for i=1:size(p1,2)
41. Result(1,i)=p1(size(p1,2)+1-i);
42. Result(2,i)=rou1(size(p1,2)+1-i);
43. end
44. p2(:,1)=[];
45. rou2(:,1)=[];
46. Result=[Result [p2;rou2]];
47. if Result(1,1) < 0 %去除首尾无效数据
48. Result(:,1)=[];
49. end
50. if Result(1,end)>200
51. Result(:,end)=[];
52. end
53. clear dp drou E i n p1 p2 rou1 rou2;
54. %% 分段多项拟合的函数
55. function [e]=fun1(p) %0-49.5
56. e=0.00004*p3+0.0106*p^2+4.872*p+1538.4;
57. end
58. function [e]=fun2(p) %50-99.5
59. e=0.00006*p^3+0.0062*p^2+5.1165*p+1533.7;
60. end
61.
61. function [e]=fun3(p) %100-149.5
62. e=0.0000005*p4-0.0001*p3+0.0308*p^2+3.5249*p+1573.3;
63. 
64. end
65.
65. function [e]=fun4(p) %150-200
66. e=0.000001*p^4-0.0007*p^3+0.159*p^2-9.9328*p+2104.3;
67. end
68. clear;
69. tic;
70. %% 数据载入
71. load P_rou.mat %P 与 Rou 的对应关系
72. P_ref=P_rou(1,:);
73. Rou_ref=P_rou(2,:);
74. dtt=0.00001; %对应关系里的时间精度
75. %% 数据初始化
76. %可调参数
77. T=0.288; %单向阀开启时间
78. P(1)=100; %初始压强
79. rou=0.85; %初始密度(调节压强的时候请同时条件密度)
80. dt=0.001; %时间步长(精度)
81. Tall=30000; %总模拟时间
82. t0=0; %喷油开始时刻
83. %其他参数
84. V=12500*pi; %油管体积
85. m=rou*V; %初始质量
86. P_I=160; %入口处的压强
87. rou_I=0.87143; %160MPa 时的密度
88. Pe=100; %期望压强
89. C=0.85; %流量系数
90. A=pi*0.7*0.7; %小孔面积
91. Itimes=1; %进油次数
92. Etimes=1; %出油次数
93. I_prev=0; %前一时刻的进油量
94. E_prev=0; %前一时刻的出油量
95. %进油第一个周期的时长
96. Tin_start=0; %进油开始时刻
97. Tin_end=T; %进油结束时刻
98. %出油第一个周期的时长
99. Tout_start=t0; %第一次喷油开始的时刻
100. Tout_1=Tout_start+0.2; %出油速率第一段
101. Tout_2=Tout_1+2; %出油速率第二段
102. Tout_end=Tout_2+0.2; %出油速率第三段,完成一个周期内的出
油工作
103. %% 主程序
104. for i=2:1:Tall/dt %0—Tallms
105. %时间步进
106. t=(i-1)*dt;
107. %计算 t 时刻的燃油质量 m(t)
108. %判断是否同时有进油和出油
109. if t>Tin_start && t<=Tin_end && t>Tout_start && t<=T
out_end
110. %同时有进油和出油
111. I_now=C*A*sqrt(2*(P_I-P(i-1))/rou_I);%当前进油流
量
112. I=(I_now+I_prev)/2;
113. I_prev=I_now;
114. %计算出油流量速率
115. if t<Tout_1
116. E_now=100*(t-t0-100*(Etimes-1));
117. E=(E_now+E_prev)/2;
118. E_prev=E_now;
119. elseif t<Tout_2
120. E_now=20;
121. E=(E_now+E_prev)/2;
122. E_prev=E_now;
123. else
124. E_now=240-100*(t-t0-100*(Etimes-1));
125. E=(E_now+E_prev)/2;
126. E_prev=E_now;
127. end
128. elseif t>Tin_start && t<=Tin_end %只有进
油
129. I_now=C*A*sqrt(2*(P_I-P(i-1))/rou_I); %当前进油
流量
130. I=(I_now+I_prev)/2;
131. I_prev=I_now;
132. E_now=0;
133. E=(E_now+E_prev)/2;
134. E_prev=E_now;
135. %出油是否进入下一个周期
136. if abs(t-(Tout_start+100))<0.001
137. Etimes=Etimes+1; %新一次出油周期即将开始
138. Tout_start=t;
139. Tout_1=Tout_start+0.2; %出油速率第一段
140. Tout_2=Tout_1+2; %出油速率第二段
141. Tout_end=Tout_2+0.2; %出油速率第三段,完成一个周期内的出油工作
142. end
143. elseif t>Tout_start && t<=Tout_end %只有出油
144. I_now=0;
145. I=(I_now+I_prev)/2;
146. I_prev=I_now;
147. if t<Tout_1
148. E_now=100*(t-t0-100*(Etimes-1));
149. elseif t<Tout_2
150. E_now=20;
151. else
152. E_now=240-100*(t-t0-100*(Etimes-1));
153. end
154. E=(E_now+E_prev)/2;
155. E_prev=E_now;
156. %进油是否进入下一个周期
157. if abs(t-(Tin_end+10))<0.001
158. Itimes=Itimes+1; %新一次进油周期即
将开始
159. Tin_start=t;
160. Tin_end=t+T; %进油结束时刻
161. end
162. else %没有进油和出油
163. I_now=0;
164. I=(I_now+I_prev)/2;
165. I_prev=I_now;
166. E_now=0;
167. E=(E_now+E_prev)/2;
168. E_prev=E_now;
169. if abs(t-(Tin_end+10))<0.001
170. Itimes=Itimes+1; %新一次进油周期即将开始
171. Tin_start=t;
172. Tin_end=t+T; %进油结束时刻
173. end
174. if abs(t-(Tout_start+100))<0.001
175. Etimes=Etimes+1; %新一次出油周期即将开始
176. Tout_start=t;
177. Tout_1=Tout_start+0.2; %出油速率第一段
178. Tout_2=Tout_1+2; %出油速率第二段
179. Tout_end=Tout_2+0.2; %出油速率第三段,完成一个周期内的出油工作
180. end
181. end
182. m=m+dt*(rou_I*I-rou*E);
183. rou=m/V;
%计算 t 时刻的密度
184. P(i)=P_ref(int16(floor(rou/dtt)-Rou_ref(1)/dtt+1)); %计算 t 时刻的压强
185. end
186. clear A C dt dtt E E_now E_prev Etimes i I I_now I_pr
ev Itimes k m P_I P_ref P_rou Pe qw rou rou_I Rou_ref t T
t0 Tall Tin_end Tin_start Tout_1 Tout_2 Tout_end Tout_st
art V W Z
187. %% 图形显示
188. plot(P);
189. toc
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

这篇关于2019年国赛高教杯数学建模A题高压油管的压力控制解题全过程文档及程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/157097

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

uva 10025 The ? 1 ? 2 ? ... ? n = k problem(数学)

题意是    ?  1  ?  2  ?  ...  ?  n = k 式子中给k,? 处可以填 + 也可以填 - ,问最小满足条件的n。 e.g k = 12  - 1 + 2 + 3 + 4 + 5 + 6 - 7 = 12 with n = 7。 先给证明,令 S(n) = 1 + 2 + 3 + 4 + 5 + .... + n 暴搜n,搜出当 S(n) >=

uva 11044 Searching for Nessy(小学数学)

题意是给出一个n*m的格子,求出里面有多少个不重合的九宫格。 (rows / 3) * (columns / 3) K.o 代码: #include <stdio.h>int main(){int ncase;scanf("%d", &ncase);while (ncase--){int rows, columns;scanf("%d%d", &rows, &col

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG