资源描述
储油罐的变位识别与罐容表标定模型
摘 要
本文通过分析地下储油罐罐内油位高度与储油量的对应关系,建立了罐容表标定的合理模型,用以解决储油罐变位识别与罐容表标定问题。
对于问题一,按照无变位和有纵向倾斜角分为两种情况建立模型。对于模型一,当储油罐无变位,油浮子高度为时,利用微积分知识推导出储油容积的表达式。为了检验该模型的优缺点,将附表1中无变位进油的油位高度代入模型,对比模型算出的储油容量与按照附表1所计算出的储油容量,算出两者的相对误差的绝对值大约为3.488%。可以看出,该模型相对误差较小,比较合理。对于模型二,当储油罐纵向倾斜角度为时,根据油浮子高度不同情况把椭圆油罐体分为五个区域,运用计算曲顶柱体体积的方法,分别建立相应模型。当进行模型检验时,发现问题附件1所给的纵向倾斜时油位高度恰好在所划分区域的第三区域内,因此只需要用该区域的函数模型来检验,于是利用Matlab编程计算出附件1数据中液面高度对应的罐内储油体积,同时算出相对误差的绝对值大约在2%~5%,可见模型是科学合理的。在此基础上,利用该模型计算出了罐体变位后油位高度间隔为1cm的罐容表标定值。
对于问题二,针对储油罐罐身是圆柱体,两端是球冠的情况,同时考虑有纵向倾斜和横向偏转的情况。计算时将油罐体分为罐身和球冠两部分来处理,利用积分方法,推导出了准确的容积计算模型。考虑到油面高度不同会得到不同的模型,因此将问题分为两种情况。一是当倾斜和偏转后只有一端球冠有储油时,整个储油容积为罐身储油量V(H)球冠部分储油量 之和,即;二是当倾斜和偏转后油罐的两端球冠都有储油时,整个储油容积V为罐身储油量和两个球冠部分储油量,之和,即,其中()是与纵向倾斜角度和横向偏转角度以及油浮子高度有关的。利用二维搜索寻找一组,使每次实际的出油量与模型算出的出油量差值的平方和最小。最后算出。在算出后,即可确定油的体积与显示油高的关系,可算出模型出油量和附表2 的出油量间的相对误差的绝对值大约在1%~4%,则可给出罐体变位后油位高度间隔为10cm的罐容表标定值。
经检验,本文中的模型都具有较强的可行性和推广性,对其它加油站测量进/出油量与罐内油位高度等数据参考价值,只要所给数据信息量足够、准确,模型求出的结果将具有更好的实际意义。
关键字:储油罐的变位识别 罐容表标定模型 二维搜索
一、问题提出
通常加油站都有若干个储存燃油的地下储油罐,并且一般都有与之配套的“油位计量管理系统”,采用流量计和油位计来测量进/出油量与罐内油位高度等数据,通过预先标定的罐容表(即罐内油位高度与储油量的对应关系)进行实时计算,以得到罐内油位高度和储油量的变化情况。
许多储油罐在使用一段时间后,由于地基变形等原因,使罐体的位置会发生纵向倾斜和横向偏转等变化(以下称为变位),从而导致罐容表发生改变。按照有关规定,需要定期对罐容表进行重新标定。图1是一种典型的储油罐尺寸及形状示意图,其主体为圆柱体,两端为球冠体。图2是其罐体纵向倾斜变位的示意图,图3是罐体横向偏转变位的截面示意图。
请你们用数学建模方法研究解决储油罐的变位识别与罐容表标定的问题。
(1)为了掌握罐体变位后对罐容表的影响,利用如图4的小椭圆型储油罐(两端平头的椭圆柱体),分别对罐体无变位和倾斜角为a=4.10的纵向变位两种情况做了实验,实验数据如附件1所示。请建立数学模型研究罐体变位后对罐容表的影响,并给出罐体变位后油位高度间隔为1cm的罐容表标定值。
(2)对于图1所示的实际储油罐,试建立罐体变位后标定罐容表的数学模型,即罐内储油量与油位高度及变位参数(纵向倾斜角度a和横向偏转角度b )之间的一般关系。请利用罐体变位后在进/出油过程中的实际检测数据(附件2),根据你们所建立的数学模型确定变位参数,并给出罐体变位后油位高度间隔为10cm的罐容表标定值。进一步利用附件2中的实际检测数据来分析检验你们模型的正确性与方法的可靠性。
二、问题分析
储油罐的变位识别与罐容表标定问题,是在综合考虑无变位和发生纵向倾斜和横向偏转等变化情况下建立数学模型计算的数据与附表的数据进行对比,以获得较精确的测量方法。
首先,针对问题一:我们分析了储油罐为椭圆型(两端平头的椭圆柱体)并且罐体不发生变位,为了简化模型,从油罐的侧面角度去看,则可以将所装油体积看成是底面积与油罐身长度的乘积,其中底面是椭圆的一部分,那么可以采用直角坐标下的二重积分来计算椭圆的面积。这样就可以算出所装油的体积。当罐体倾斜角为a=4.10的纵向变位时,这时体积就不是简单的规则的柱面体积求法。我们按照在不同区域所得模型不同情况下将油罐分为五个区域,然后采用曲顶柱体积的计算公式来求解相应模型。
为了给罐体变位后油位高度间隔为1cm的罐容表标定值,必须把修正后每1cm代表的罐容求出来后重新标定值。根据题意把油浮子的高度分5种情况计算,可以建立以油浮子高度为自变量储油量为函数的分段函数模型,在油浮子的高度满足的范围内,分别计算出每1cm高度的罐容,再进行累加得到1cm至120cm的罐容标定值。
其次,针对问题二,储油罐主体为圆柱体,两端为球冠体,那么在分析问题时也相应的把模型分为两个部分:一部分为罐身,一部分为两端的球冠体。对于罐身,可以根据问题一发生变位的情况来建立模型;对于两端的球冠体,油面的情况不同就有不同的模型:当只有一个球冠有储油时,只计算一个球冠体的体积;当两个球冠都有储油时,为两端的球冠体体积之和。我们分析知,当倾斜角比较小时,一端球冠可以看成是水平放置时的情况,利用油浮子的高度与纵向倾斜角度和横向偏转角度的关系实现油浮子高度与最高点油面高度的转化。另一端的体积则是同油面高度和纵向倾斜,横向偏转有关。据此,我们建立了油面高度,纵向倾斜角度,横向倾偏转角度的关系。运用最小二乘法原理,通过变位储油罐参数估计的二维搜索算法,来估计α,β的值。罐体变位后油位高度间隔为10cm的罐容表标定值时,利用建立的数学模型使油面高度从0开始以10cm的步长逐步增加,依次算出对应的容积,作出罐容标定表。
三、模型假设
1:假设题目给定的储油罐和附表中的数据具有代表性和现实性,可以作为模型计算的依据。
2:假设储油罐的进油管和出油管内等管道的体积可忽略不计。
3:储油罐具有较大的刚度,能承受较大的外压,适宜建造地下,不会因环境改变导致容积变化。
4储油罐储存的油没有蒸发或挥发损耗,空气不会对油发生氧化使体积变化。
四、符号说明
;
;
;
五、模型的建立与求解
5.1 模型一的建立与求解
5.1.1 数据预处理
该题目给出的数据量比较大,我们先对附件1的无变向进油中的进油累加量进行处理,将其处理为每次进油完后油罐内该时刻的总油量。方便后面与计算出的油量容积作对比,进行模型优缺点评价。
5.1.2 简化模型与计算油的体积
图1
针对此模型为两端平头的椭圆柱,其横截面为椭圆,长半轴为a,短半轴为b。为了简化模型,我们将横截面(椭圆)作为储油罐的底面,将储油罐的底面长度作为模型的高,因此,储油的容积(即体积)就可以看作椭圆柱的体积。我们以x轴与y轴建立直角坐标系。
由截面椭圆的长轴和半轴,可以得到椭圆的方程为
在罐体无变位的情况下,设油面高为,我们从截面椭圆的角度去看整个储油罐,就可以得到储油罐所装油的体积为油所占得椭圆的面积与储油罐的身长(即高)的乘积。
截面椭圆有所占的部分的面积为:
积分得到:
那么油所占的体积为:
即为:
5.1.3 结果与误差分析
现在,我们得出了油面高度和油的体积间的函数关系式,为了验证此模型是否恰当,我们在MATLAB软件中分别将油面高度代入得到模型的储油量。因数据量较大,下面仅给出前七次原始油量容积和模型结果的油量容积的对比数据:
表1 模型一的储油量对比表
原始的油量容积(L)
312.00
362.00
412.00
462.00
512.00
562.00
612.00
模型结果的油量容积(L)
322.88
374.63
426.36
478.13
529.13
581.61
633.35
对比上表中的数据可知,所给的每次加油后的总的进油量和模型计算得到的每次加油后的总油量相差值大约在10—20升左右,据此,我们采用相对误差的绝对值来检验模型的合理性,即:
图 2 模型一中计算的储油量和附件1中的储油量对比图
计算出每次的相对误差都在3.488%左右。说明此模型比较稳定,误差较小。在探究罐内油位高度与储油量的对应关系时可以用此模型来计算。
5.2 模型二的建立与求解
5.2.1 数据预处理
为了与模型计算的油量容积作对比,同样的,我们还是将变位的每次累加进油量处理成每次进油完后的总的油量。
5.2.2 模型的建立与求解
当罐倾斜角为的纵向变位时(三维图形如图3),若仍然采用模型一的求体积公式,就会有不合理的地方,那么,为了简化模型,考虑在倾斜角为时,从正面角度看,将储油罐分割成五区域来看,如图4
图 3 图 4
1.当油没有漫过油浮子的最低点(B点)时,即此时油浮子高度为零,但是此时储油罐内可能会有油的情况。则油面最高点的高度,因此,当油面高度在时,油浮子上显示的油面高度为0,在此范围内,即使加进油了,却并没有油浮子高度,就不在讨论范围内。
2.当油漫过油浮子最低端且油面最低点未过储油罐D点时(如图4区域二),即,此时斜面S可以看作一个平面去斜截椭圆柱,易求得该平面的方程为
即
根据题意有:
则平面方程为:
此时储油罐中油的体积为:
积分得到油的体积为:
3.当油刚好完全淹没储油罐的底部(D点)至F点时(如图4区域三),即将体积分为两部分,一部分为5.22模型情况,一部分为无倾斜角的情况,则
由模型一可以算得水平时的油体积
即
4.当油面漫过F点直至刚好淹没油浮子H时(如图4区域四),此时油的体积仍然看作两部分的体积之和。
5.当油面漫过油浮子时(如图4区域五),此时可能在该区域内也有油,但是,此时油浮子上的油高是不会变的,始终为罐身高度。这样,对分析模型没有多大的用处。因此,我们可以不用去讨论此时的油的体积与油浮子高度的关系。
综合以上模型,可以得到罐体变位后对罐容表的影响的总模型(即罐内油位高度与储量的对应关系)
以上便是在纵向变位角度罐内油位高度与储油量间关系的数学模型。观察和初步计算可以知道,当体积为(2)式时,题目给出的油面高度恰好大致在(2)式中的范围内,所以,在用MATLAB软件求解模型时,就用(2)式作为目标来计算。最后,在MATLAB软件里解得,并对模型计算后的油的容积与原始容积作对比,具体如下图:
表2 模型二的油量容积对比表
原始的油量容积(L)
962.86
1012.86
1062.86
1112.86
1162.86
1212.86
模型的油量容积(L)
1010.40
1058.70
1118.40
1167.90
1222.50
1279.60
在MATLAB里画出附件1油容量与模型容量的曲线图,如下:
图 4
同样,可以计算出该模型的相对误差大约为2%~5%。误差是相对比较小的。
将油面高度间隔1cm的数据分别代入上面模型(以油浮子高度为自变量罐容为函数的分段函数模型),把1.2m的高度分为121个刻度。用自变量油浮子的高度确定每段刻度所在的范围,并用相应的函数求解罐体容积。其中当刻度为0cm时,罐体容积不能确定,其范围为0L至1.67L,刻度超过120cm时,油罐依然可以继续进油,罐容的范围为4013L至4110.1L。就可以得到罐体变位后油位高度间隔为1cm的罐容表标定值,见表3。
表3 罐体变位后油位高度间隔为1cm的罐容表标定值
标度(cm)
体积(L)
标度(cm)
体积(L)
标度(cm)
体积(L)
标度(cm)
体积(L)
0
1.67
31
630.46
62
1885.60
93
3190.50
1
3.54
32
665.91
63
1929.00
94
3229.00
2
6.27
33
701.86
64
1972.40
95
3267.10
3
9.98
34
738.30
65
2015.80
96
3304.80
4
14.77
35
775.20
66
2059.30
97
3342.10
5
20.70
36
812.55
67
2102.70
98
3378.90
6
27.87
37
850.33
68
2146.20
99
3415.30
7
36.33
38
888.52
69
2189.60
100
3451.10
8
46.16
39
927.09
70
2233.00
101
3486.50
9
57.41
40
966.03
71
2276.30
102
3521.30
10
70.15
41
1005.30
72
2319.50
103
3555.50
11
84.42
42
1045.00
73
2362.70
104
3589.20
12
100.27
43
1084.90
74
2405.80
105
3622.20
13
117.77
44
1125.20
75
2448.80
106
3654.60
14
136.94
45
1165.70
76
2491.70
107
3686.30
15
157.88
46
1206.60
77
2534.50
108
3717.30
16
180.37
47
1247.60
78
2577.10
109
3747.50
17
204.14
48
1289.00
79
2619.60
110
3777.00
18
229.07
49
1330.50
80
2661.90
111
3805.60
19
255.06
50
1372.30
81
2704.00
112
3833.40
20
282.05
51
1414.30
82
2745.90
113
3860.20
21
309.97
52
1456.40
83
2787.70
114
3886.00
22
338.76
53
1498.80
84
2829.20
115
3910.70
23
368.38
54
1541.30
85
2870.50
116
3934.20
24
398.78
55
1583.90
86
2911.50
117
3956.40
25
429.92
56
1626.70
87
2952.30
118
3977.00
26
461.76
57
1669.60
88
2992.80
119
3995.80
27
494.28
58
1712.60
89
3033.00
120
4013.00
28
527.44
59
1755.80
90
3072.90
29
561.20
60
1799.00
91
3112.40
30
595.55
61
1842.20
92
3151.70
5.3 模型三的建立与求解
5.3.1 分割模型—储油罐罐身部分的体积
此模型中储油罐为圆柱体,两端为球冠体,那么为了简化模型,我们将所求的油体积分为两冠(球冠体)和罐身(圆柱)。其中罐身可以根据模型二求解出,此时截面是圆,设横截面的半径为R。(具体图形见图5)
(一)当油没有漫过油浮子的最低点(B点)时,此时油的体积不与油浮子有关。
(二)同理,根据模型二,当油漫过油浮子最低端(B)且油面最低点未过储油罐 D点时,即,油的体积为
(三)当油刚好完全淹没储油罐的底部(D点)至油的最高点(F点)时,根据模型二可以得到储油体积的模型:
其中
,
进一步有
(四)当油面漫过F点直至刚好淹没油浮子H时,此时油的体积仍然看作两部分的体积之和,同样可以根据模型一得到新的模型:
积分结果为:
积分结果为:
5.3.2 储油罐罐头的的体积
设相对高度为:;拱凸度 [4]
图 5 图 6
针对储油罐两个球冠,如图所示,平面是凸头与罐身相接的界面,此截面为圆,可求的其方程为:
由于凸头曲面可看做旋转球面的一部分,且在平面上的截面为圆,设圆的半径为,如图所示,则根据勾股定理可得:
即:
即
设旋转球的中心为,设方程为:
即:
当盛油高度为时,凸头部分实际盛油体积为。
积分得:
图 7 图 8
当储油缸横向旋转时候(如图7),游标的读数为H,而此时在该平面油的实际深度为,即如图六所示AB的长度,此时OC长为R-H,因此OB长为(R-H)cos,故此时油的实际深度为:
则 -
那么,针对该问题,当纵向倾斜角度为,横向偏转为时,需要讨论两种情况:(如图七所示)
设:(表示如图8油罐左端的最高油面高度)
(表示如图8油罐有段端的最高油面高度)
情况一:当油面没有漫至油罐的最低点(B点)时,,即
其中
情况二:当油面漫过油罐最低点(B点)时,此时,此时,,那么罐头储油体积为两个两端球凸的体积之和,如图8所示
5.3.3 模型的综合
综合模型5.3.1与模型5.3.2,就可以算出当纵向倾斜和横向偏转时罐球的储油总体积;,用二维搜索算法对变位储油罐参数进行估计。
由于变位油缸油的体积为,即油缸在显示油高为时油的体积为。若此时刻从油缸取出体积为的油后显示高度为,而此时取出油的体积可以由公式 表示。
表4 模型出油量和实际出油量的关系
显示高度H
…
…
实际出油量
…
…
模型出油量
…
…
若根据模型计算的出油量的体积与实际出油量的体积一致,说明,与实际的油罐变位角度吻合,即可根据任意两组数,进行计算,分别取出不同的数据会计算出不同的,。利用二维搜索的方法,用不同的,对与进行比较,运用最小二乘法原理,利用二维搜索找一对,使得满足取值为最小。
变位储油罐参数的二维搜索算法如下:
第一步:输入显示油高矩阵,出油量矩阵,一个较大的常数和常数,,置,,,;
第二步:判断:,则转第三步,否则输出参数,;
第三步:判断:,则转第四步,否则置,,转第二步;
第四步:计算:;
第五步:判断:若,则置,转第六步,否则直转第六步;
第六步:置,转第三步。
利用的值,将附件2给的显示高度计算模型出油量。将出油量和油面高度,显示出油量和油面高度在MATLAB软件里画出散点图,然后将离散点连续化,画出两者的曲线图,下图为模型计算的出油量和显示出油量对比图,从下图可以看出每一段的实际出油量和模型计算的出油量偏差很小。说明此模型比较合理。
图9
根据附件2的实际采集数据,在已求出的模型中可以计算出罐体变位后油位高度间隔为10cm的罐容表标定值见下表:
表5 罐体变位后油位高度间隔为10cm的罐容表标定值
标度(cm)
0
10
20
30
40
50
60
体积(L)
75.265
386.36
1055.6
2161.7
3613.6
5316.3
7222.8
标度(cm)
70
80
90
100
110
120
130
体积(L)
9300
11522
13867
16316
18850
21455
24114
标度(cm)
140
150
160
170
180
190
200
体积(L)
26813
29538
32274
35009
37728
40417
43061
标度(cm)
210
220
230
240
250
260
270
体积(L)
45647
48158
50578
52888
55070
57099
58948
标度(cm)
280
290
300
体积(L)
60580
61940
63230
六、结果分析与检验
对于模型一,首先在建立起的模型中,根据题中给定的油面高度去算模型油量体积,得到了模型油量体积数据,详见附表一,结果发现,模型数据和题目给出的数据之间相差在10—20升左右,相对误差也在3.48%左右,用MATLAB画出的原始数据的拟合图和模型数据的拟合图是比较接近的。说明用模型一对于分析油面高度与储油量的关系是比较合理和可行的。
对于模型二,是建立在有一定的纵向倾斜的情况下,解决油面高度和储油量间的关系的问题。模型结果数据和题目给的数据间相差在90升内,显然模型是比较精确的,但是需要适当改进,以期获得更好的模型。
对于模型三,是在纵向倾斜和横向偏转的情况下综合考虑罐内储油量与油位高度及变位参数(纵向倾斜角度a和横向偏转角度b )之间的一般关系。对储油罐的罐身和球冠体分别讨论,最后计算出了储油罐所装油的体积与油面高度,纵向倾斜角度,横向偏转角度的函数关系。根据最小二乘法,运用二维搜索算法算得。最后根据的值计算出模型出油量,并将其与显示出油量进行对比,相对误差在1%-4%。说明模型的准确性很高,拟合效果很好。
七、模型优缺点评价
优点:
1:在问题一的模型一,二中,我们较精确地计算出了当给定油面高度时,实际的模型数据——油量容积,对模型结果数据拟合后的图像是非常接近原始数据拟合的图像,说明该模型具有合理性和可行性,这对于实际生产生活中油量计量提供了参考价值。
2:在两个问题中,我们都较准确的给出了变位后油位高度间隔为1cm和10cm的的罐容表标定值,这对于今后去测量和估计罐内储油量与油位高度具有参考利用价值。
3:模型三中用最小二乘法原理,通过对进行二维搜索,这样比较准确的计算出了的值,并将其应用到求解模型出油量。
4:模型具有普遍性和可推广性,对其他的加油站也适用,只要给的数据足够,实际,精确,并且储油罐的实际模型是合理的,则得到的这个模型具有很强的实际意义。
缺点:在问题二中,在处理球冠体部分的体积时,对反正弦函数用泰勒展式展开,这样就存在去掉泰勒展式后面余项所产生的舍入误差,这样就造成了模型有些误差。
八 参考文献
[1] 赵静 但琦,数学建模与数学实验,北京:高等教育出版社,2003.256-259
[2] 姜启元,数学建模与数学实验,北京:高等教育出版社,2003.8
[3] 杨启帆,数学建模案例集,北京:高等教育出版社,2007.7
[4] 李致荣,椭圆柱型卧式油罐容积的计算,数学的实践与认识 ,1977.7柱型卧
[5]吕林根,解析几何,北京:高等教育出版社,2006.5
九 附录清单
附录一:根据无变位的油位高度求模型中油罐内的储油量
% yiyi.m
clc
clear
A=xlsread('一问高度.xls');
y=A(:,1);
for i=1:78
y(i)=y(i)/1000;
m=0.534*(asin(y(i)/0.6-1)+0.5*pi+0.5*sin(2*asin(y(i)/0.6-1)))*2.45*1000;
k=[k m];
end
k=k';
附录二:根据纵向倾斜角度为时的每个油位高度求模型中油罐内的储油量
%yier.m
clc
clear
syms y;
h=xlsread('变位显示高度.xls')
for i=1:53
h(i)=h(i)/1000+0.0287;
da(i)=int('sqrt(0.36-(y-0.6)^2)',y,h(i)-0.1757,h(i));
da1(i)=int('y*sqrt(0.36-(y-0.6)^2)',y,h(i)-0.1757,h(i));
jieguo(i)=41.376*(h(i)*da(i)-da1(i))*1000;
shuip(i)=0.534*(asin((h(i)-0.1756)/0.6-1)+0.5*pi+0.5*sin(2*asin((h(i)-0.1756)/0.6-1)))*2.45*1000;
end
zuiz=jieguo+shuip;
double(zuiz)'
附录三:罐体变位后油位高度间隔为1cm的罐容表标定值
%%%%% cm1.m
clc
clear
syms y;
h=1:14;
for i=1:14
h(i)=h(i)/100+0.0287;
da(i)=int('sqrt(0.36-(y-0.6)^2)',y,0,h(i));
da1(i)=int('y*sqrt(0.36-(y-0.6)^2)',y,0,h(i));
jieguo(i)=41.376*(h(i)*da(i)-da1(i))*1000;
end
zuiz1=double(jieguo)'
%%%%%%% cm2.m
clc
clear
syms y;
h=15:117;
for i=1:103
h(i)=h(i)/100+0.0287;
da(i)=int('sqrt(0.36-(y-0.6)^2)',y,h(i)-0.1757,h(i));
da1(i)=int('y*sqrt(0.36-(y-0.6)^2)',y,h(i)-0.1757,h(i));
jieguo(i)=41.376*(h(i)*da(i)-da1(i))*1000;
shuip(i)=0.534*(asin((h(i)-0.1756)/0.6-1)+0.5*pi+0.5*sin(2*asin((h(i)-0.1756)/0.6-1)))*2.45*1000;
end
shuip
zuiz=jieguo+shuip;
double(zuiz)'
%%%%%%% cm3.m
clc
clear
syms y;
h=118:120;
for i=1:3
h(i)=h(i)/100+0.0287;
da(i)=int('sqrt(0.36-(y-0.6)^2)',y,h(i)-0.1757,1.2);
da1(i)=int('y*sqrt(0.36-(y-0.6)^2)',y,h(i)-0.1757,1.2);
jieguo(i)=41.376*(h(i)*da(i)-da1(i))*1000;
shuip(i)=0.534*(asin((h(i)-0.1756)/0.6-1)+0.5*pi+0.5*sin(2*asin((h(i)-0.1756)/0.6-1)))*2.45*1000;
end
zuiz=jieguo+shuip;
double(zuiz)'
附录四:对的估计
%%%% afbslove.m
function f=jsz(af,b)
syms y
h=xlsread('显示高度.xls');
for i=1:81
h(i)=(h(i)/1000-1.5)*cos(b*pi/180)+1.5+2*tan(af*pi/180);
if af>0
da(i)=int('sqrt(1.5^2-(y-1.5)^2)',y,h(i)-8*tan(af*pi/180),h(i));
da1(i)=int('y*sqrt(1.5^2-(y-1.5)^2)',y,h(i)-8*tan(af*pi/180),h(i));
jieguo(i)=(h(i)*da(i)-da1(i))*2/tan(af*pi/180);
else
jieguo=0;
end
shuip(i)=2*8*int('sqrt(1.5^2-(y-1.5)^2)',y,0,h(i)-8*tan(af*pi/180));
end
%%%筒体计算结束
h=xlsread('显示高度.xls');
for i=1:81
h(i)=((h(i)/1000-1.5)*cos(b)+1.5-6*tan(af*pi/180))/3;
da11(i)=int('(169/144-y^2)*(sqrt((1-y^2)/(169/144-y^2))+(sqrt((1-y^2)/(169/144-y^2)))^3/6+(sqrt((1-y^2)/(169/144-y^2)))^5/40)',y,1-2*h(i),1);
da21(i)=da11(i)-5*(pi/4-0.5*asin(1-2*h(i))-(1-2*h(i))*(sqrt(h(i)-h(i)^2)))/12;
da31(i)=da21(i)*1.5^3;
end
h=xlsread('显示高度.xls');
for i=1:81
h(i)=((h(i)/1000-1.5)*cos(b)+1.5+2*tan(af*pi/180))/3;
da1(i)=int('(169/144-y^2)*(sqrt((1-y^2)/(169/144-y^2))+(sqrt((1-y^2)/(169/144-y^2)))^3/6+(sqrt((1-y^2)/(169/144-y^2)))^5/40)',y,1-2*h(i),1);
da2(i)=da1(i)-5*(pi/4-0.5*asin(1-2*h(i))-(1-2*h(i))*(sqrt(h(i)-h(i)^2)))/12;
da3(i)=da2(i)*1.5^3;
end
f=double((jieguo+shuip+da3+da31)*1000)';
%%%%%%% jsz.m
clc
clear
chuyou=(xlsread('出油量.xls'))';
chucun=99999999999;
abeta=[];
for af=2:0.2:3
for b=0.4:0.2:1.4
chazhi=[];leiji=0;
yougao=jsz(af,b);
for i=1:80 %%%%取前80组数据搜索最有的alfa和beta
hh=yougao(i)-yougao(i+1);
chazhi=[chazhi hh];
end
for i=1:80
leiji=(chazhi(i)-chuyou(i))^2+leiji;
end
if leiji<chucun
chucun=leiji;
abeta=[af b]
end
end
end
abeta
%%%%%%刚好过底面之前的每厘米表示的体积情况
%%%%%% tencm1.m
clc
clear
syms y b af;
h=0:100:200;
af=2.4;
b=0.4;
for i=1:3
h(i)=(h(i)/1000-1.5)*cos(b*pi/180)+1.5+2*tan(af*pi/180);
da(i)=int('sqrt(1.5^2-(y-1.5)^2)',y,0,h(i));
da1(i)=int('y*sqrt(1.5^2-(y-1.5)^2)',y,0,h(i));
jieguo(i)=(h(i)*da(i)-da1(i))*2/tan(af*pi/180);
end
h=0:100:200;
for i=1:3
h(i)=((h(i)/1000-1.5)*cos(b)+1.5+2*tan(af*pi/180))/3;
da1(i)=int('(169/144-y^2)*(sqrt((1-y^2)/(169/144-y^2))+(sqrt((1-y^2)/(169/144-y^2)))^3/6+(sqrt((1-y^2)/(169/144-y^2)))^5/40)',y,1-2*h(i),1);
da2(i)=da1(i)-5*(pi/4-0.5*asin(1-2*h(i))-(1-2*h(i))*(sqrt(h(i)-h(i)^2)))/12;
da3(i)=da2(i)*1.5^3;
end
zuiz=(jieguo+da3)*1000;
double(zuiz)'
%%%%%% tencm2.m
clc
clear
syms y b af;
h=300:100:2900;
af=2.4;
b=0.4;
for i=1:27
h(i)=(h(i)/1000-1.5)*cos(b*pi/180)+1.5+2*tan(af*pi/180);
if af>0
da(i)=int('sqrt(1.5^2-(y-1.5)^2)',y,h(i)-8*tan(af*pi/180),h(i));
da1(i)=int('y*sqrt(1.5^2-(y-1.5)^2)',y,h(i)-8*tan(af*pi/180),h(i));
jieguo(i)=(h(i)*da(i)-da1(i))*2/tan(af*pi/180);
else
jieguo=0;
end
shuip(i)=2*8*int('sqrt(1.5^2-(y-1.5)^2)',y,0,h(i)-8*tan(af*pi/180));
end
h=300:100:2900;
for i=1:27
h(i)=((h(i)/1000-1.5)*cos(b)+1.5-6*tan(af*pi/180))/3;
da11(i)=int('(169/144-y^2)*(sqrt((1-y^2)/(169/144-y^2))+(sqrt((1-y^2)/(169/144-y^2)))^3/6+(sqrt((1-y^2)/(169/144-y^2)))
展开阅读全文