储油罐的变位识别与罐容表标定(程序超多附录超详细) - 图文

更新时间:2024-06-07 13:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

储油罐的变位识别与罐容表标定 摘要

本文针对储油罐的变位识别与罐容表标定问题,通过求微积分方法,得到了储油罐标定的一般理论公式,建立了两种不同类型求储油罐罐容表的模型。

对于问题一中小椭圆形储油罐,我们先对其无变位情况进行求解,发现误差不可忽略,对误差产生的原因做了定性分析,其中主导因素的是油管的体积,并对误差进行一次曲线拟合修正。然后,求得变位情况下的一般理论公式,利用原题附件1中变位进油数据对公式进行分段曲线拟合修正,进一步得到了油罐容量V和油面高度h的函数关系,并通过原题附件1中变位出油数据验证了模型的准确性。利用残差分析法,求得理论值和实验值的相对误差为0.05%,说明该模型稳定、可行。进而利用该函数关系求得了罐体变位后油位高度间隔为1cm的罐容表,并给出了罐体变位后对罐容表的影响一般关系式,总结出罐体变位后对罐容表影响趋势是当测量的油面高度一定时,随着?的增大,对罐容表测定的油罐容积误差变大。 对于问题二中实际储油罐,我们先对其无变位情况进行求解,所求结果与原题附件2中所给标定容量的相对误差仅为10。进一步推广得出了油罐容量V和?,?一般函数积分关系式。

?5在求积分的过程中,我们利用龙贝格求积方法对其进行求解,精度达到99.999%,求积一次不足1毫秒。由于测量过程中,油浮波动不可避免,所以数据有一定波动,不存在与数据完全吻合的?,?值。在求?,?的过程中,我们利用最小二乘法的思想,编程采用精确控制的

oo??2.116,??4.252遗传算法,利用原题附件2中所给前半部分的300组数据求出。为

了验证?,?值的准确性,我们将手动计算与计算机图像法相结合,进行层层放大逼近求解,最终结果基本一致。为了减小误差,我们对其进行了二次拟合修正,发现修正后的值对于附

件2中后半部300组数据并不明显,故不加修正。我们将所求值带入后半部分数据进行检验,与后半部分数据所求得的?'?2.112,?'?4.45对比,求得两组角度所对应的相邻两组数据的排出油量与计算所得值的平均相对误差之差5?10,而且当所选任意两组数据高度之差大于1米时,这两组数据所对应的高度之间排出油量与计算所得值相对误差都在0.01%以内,由此说明该模型稳定、方法可靠,?,?值与准确解的误差微乎其微。最后给出了罐体变位后油位高度间隔为10cm的罐容表标定值。

关键词:微积分 曲线拟合 残差分析 精确控制遗传算法 目录

摘要………………………………………………………………………………….1. 目录………………………………………………………………………………….2 问题重述……………………………………………………………………3 问题分析……………………………………………………………………3 模型假设……………………………………………………………………3

1

?6oo符号系统……………………………………………………………………4 模型建立与求解………………………………………………………………4 5.1模型一…………………………………………………………………4 5.1.1模型建立………………………………………………………………4 5.1.2模型求解……………………………………………………………8 5.2模型二……………………………………………………………………9 5.2.1模型建立………………………………………………………………9 5.2.2模型求解………………………………………………………………13

六、模型分析与评价…………………………………………………………………17 6.1影响油罐标定的误差分析:………………………………………………17 6.2模型一误差分析………………………………………………………18

6.2.1、小椭圆型储油罐水平放置………………………………………18 6.2.2小椭圆型储油罐倾斜放置………………………………………19 6.3模型二误差分析………………………………………………………19 6.4模型检验:………………………………………………………………20 6.4.1问题一检验(残差检验法)……………………………………20 6.4.2问题二检验(残差检验法)…………………………………………20 6.5模型二优劣性分析……………………………………………………22 6.5.1优点:………………………………………………………………22 6.5.2缺点:………………………………………………………………22

七、模型推广………………………………………………………………………22 八、结论……………………………………………………………………………22 九、参考文献………………………………………………………………………24 问题重述

通常加油站都有若干个储存燃油的地下储油罐,并且一般都有与之配套的“油位计量管理系统”,采用流量计和油位计来测量进/出油量与罐内油位高度等数据,通过预先标定的罐容表(即罐内油位高度与储油量的对应关系)进行实时计算,以得到罐内油位高度和储油量的变化情况。

许多储油罐在使用一段时间后,由于地基变形等原因,使罐体的位置会发生纵向变位和横向偏转等变化(以下称为变位),从而导致罐容表发生改变。按照有关规定,需要定期对罐容表进行重新标定。请你们用数学建模方法研究解决储油罐的变位识别与罐容表标定的问题。 (1)为了掌握罐体变位后对罐容表的影响,利用小椭圆型储油罐(两端平头的椭圆柱体),分别对罐体无变位和变位角为 =4.1的纵向变位两种情况做了实验。建立数学模型研究罐体变位后对罐容表的影响,并给出罐体变位后油位高度间隔为1cm的罐容表标定值。

(2)对于实际储油罐,建立罐体变位后标定罐容表的数学模型,即罐内储油量与油位高度及变位参数(纵向变位角度 和横向偏转角度 )之间的一般关系。利用罐体变位后在进/出油过程中的实际检测数据,根据所建立的数学模型确定变位参数,并给出罐体变位后油位高度间隔为10cm的罐容表标定值。进一步利用附件2中的实际检测数据来分析检验你们模型的正确性与方法的可靠性。 问题分析

本题需要解决储油罐的变位识别与罐容表标定问题。 对于问题一,需要找出油罐容量V和油面高度h的函数关系。我们可以先对储油罐无变位情况进行求解。通过油罐无变位放置情况时的截面积求得变位情况的一般理论公式,对其利用

2

o原题附件1中变位变位进油数据进行曲线拟合修正,进一步得到了油罐容量V和油面高度h的函数关系。

对于问题二中实际储油罐,我们将采用和问题一相同的方法并利用立体几何的方法得出了油罐容量V和?,?一般函数积分关系式。在求积分的过程中,我们想到利用龙贝格求积方法对简化。在求?,?的过程中,所求容积尽量逼近实验测量容积。编程我们想到可以采用遗传算法,某种程度上可以对其进行改动。

模型假设

1、问题中所给数据准确无误,不存在误差;

2、上述两问题中所给储油罐未发生蠕变,即不会产生塑性变形;

3、上述两问题中所给储油罐数据均为内壁数据,即不存在储油罐内壁造成的误差; 4、 标尺的刻度是准确的;

5、 油位的高度就是油位计的读数; 6、 储油量以油罐内油的体积衡量; 7、储油罐纵向偏移不大于10°。

符号系统

V : 储油罐中油的体积

h :储油罐中油面的高度

?V :体积的相对误差

E(h) :误差修正函数

S :截面面积

R : 球冠体大圆半径

模型建立与求解 5.1模型一: 5.1.1模型建立:

小椭圆型储油罐无变位放置情况

①理想条件下小椭圆型储油罐无变位放置时储油量

如图所示:无变位放置无变位的情况下,假设油面高度为h,所占储油罐底面的面积为S,则油罐中油所占的体积为:V=Sl,,

对油罐底面建立直角坐标系,如图5.1:

y s20 h-b

3

x dys1y

则油罐底面截面的的椭圆方程为:

x2y2??1a2b2

h-b 0 x 当h?b时,如图5.2所示,阴影部分的面dys 积为:

-b 图5.1 S?2??b?h?1?y2bab图2dy5.2

-b ⑴

设y=bsint,将y带入⑴式换元得:

b?hS?2?arcsinb?hbabcos2tdt?ab)dt

???2??arcsinb??(1?cos2t2

?ab[?2?arcsinb?hb?12sin(2arcsinb?hb)], ⑵

当h>b时,如图1.4所示,将S分解为S1和S2,

1ab?其中S1为x轴下方图形中的半个椭圆的面积,则:S1=2:

S2为x轴上方,油液面下方图形的面积为:

h?bS21?y2aarcsinb2=

?h?b0b2dy?2?0abcos2tdt

?ab[arcsinh?b

b?12sin(2arcsinb?hb)]

S?b1?S2?ab[?2?arcsinh于是: S=

b?12sin(2arcsinh?bb)] 综上推导,得到储油量V油液面高度h的关系为:

?abl[??arcsinb?h?1sin(2arcsinb?hV????2b2b)],h?b?abl[??arcsinh?b??1sin(2arcsinh?b?2b2b)],h?b ⑷

由正弦函数性质sin(?x)??sinx,可对分段函数式(X)做统一表达式表示,即 4

储油量:

V?abl[?2?arcsinh?b1h?b?sin(2arcsin)]b2b ⑸

S?ab[截面积:

?2?arcsinh?b1h?b?sin(2arcsin)]b2b ⑹

?h?b1h?bS?ab[?arcsin?sin(2arcsin)]2b2b 推论1:对于椭圆被直线所截面积为:

小椭圆形油罐无变位状态下误差分析:

根据附件1所给的无变位进油数据中D列油位高度对上述⑸式进行求解,得出对应油位高度下的罐内油量,见附件X 求出两组数据的绝对误差为:

?V?V理论?V测量

相对误差为:

?VV理论

对求得理论得出的罐容表与附件1所给无变位进油数据对比,得到绝对误差,做出差值曲线,得到右图:

由图5.3可知:随着储油罐内油面的上升,绝对误差逐渐增大,说明误差不可忽略,必须对模型进行修正。

油罐无变位状态下模型修正:

通过Matlab对绝对误差进行曲线拟合,得到修正函数:

图5.3

E1(h)?0.1349 h-0.0120308

将得到的修正函数与理论求得的函数进行合成,得到:

V?abl[?2?arcsinh?b1h?b?sin(2arcsin)]?E1(h)b2b ⑻

小椭圆型储油罐变位放置情况 1)小椭圆型储油罐变位时储油量

5

如图所示:小椭圆型储油罐发生变位的情况下,假设油面高度为h,所占储油罐底面的面积为S,变位角度为?,对油罐截面建立直角坐标系,如图5.4:

油位探针 注油口 出油管 y 油浮子 ?1.2m h 0 0.4m 油 α 2.05mx 无变位线

图5.4 设无变位油面的方程为y?kx?b,由图中几何关系可知,无变位油面的斜率k??tan?,又因为当0?h?12时,直线总过过点

(0.4,h),则:

将以上条件带入无变位油面直线方程y?kx?b,得:

b?0.4tan??h

则: y??xtan??0.4tan??h 由公式⑹可知,储油罐任意一点椭圆截面面积S与该点油面高度h满足:

''h'?b1h'?bS?ab[?arcsin?sin(2arcsin)]2b2b ⑼

'?且该点油面高度满足: h??xtan??0.4tan??h ⑽ 将⑻式带入⑼式中,则对于任意点h都有

''??xtan??0.4tan??h?b1?xtan??0.4tan??h?bS'?ab[?arcsin?sin(2arcsin)](11)2b2b 6

图5.1 图5.5

y 1.2m 1.2-tan? 2.05tan? 无变位面

h0 0.4m h’dx?2.45m x

对任意任一h下,对体积V求积分,得:

?0.4?h'0?h?2.05tan? ??0tan?S(x)dx?2.45?2.05tan??h?1.2?0.4tan?⑿ V???S'(x)dx0?1.2?h1.2?0.4tan??h?1.2 '?2.45S(x)dx??ab(0.4?)1.2?h?0.4??tan?tan??

油罐变位状态下误差分析:

根据原题附件2中所给的变位变位进油数据中D列油位高度对上述⑿式进行求解,得出对应油位高度下的罐内油量。 求出两组数据的绝对误差为:

?V?V理论?V测量

相对误差为:

?VV理论

对求得理论得出的罐容表与附件1所给无变位进油数据对比,得到绝对误差,做出差值曲线;并进一步对其求出相对误差,得到绝对误差曲线,得到图5.6:

图5.6

由图5.6可知:随着储油罐内油面的上升,绝对误差先增大后减小,且误差所以误差不可忽略,必须对误差进行修正。

油罐变位状态下模型修正:

通过Matlab对绝对误差进行曲线拟合,得到修正函数:

(h?0.41)

7

?h3?0.9371236h2?0.2894598h?0.0740159??0.7042453E2(h)??? h3?0.9866

将得到的修正函数与理论求得的函数进行合成,得到:

(h?0.41)

?0.4?h'0?h?2.05tan? ??0tan?S(x)dx?E2(h)?2.45?2.05tan??h?1.2?0.4tan? ⒀ V???S'(x)dx?E2(h)0?1.2?h'?2.45S(x)dx??ab(0.4?)?E2(h)1.2?0.4tan??h?1.2 1.2?h??tan??0.4?tan?

5.1.2模型求解:

(1)由所得对于不同的任意给定?,理想状态下变位,体积V与?存在总存在

V?f(?,h(x))。但是由于相关因素影响导致误差存在,故需要对V进行修正,修正函数

与?,h有关,为E(?,h)。因此,罐体变位后对罐容表的影响为:

V?f(?,h(x))+E(?,h) ⒁

当测量的油面高度一定时,随着?的增大,对罐容表测定的油罐容积误差变大。

(2)通过Matlab对⑾式进行积分求解,得到罐体变位后油位高度间隔为1cm的罐容表: 显示油面高实际油量显示油面高实际油量显示油面高实际油量度(m) 度(m) 度(m) 333(m) (m) (m) 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14 0.15 0.16

0.006534 0.008506 0.017901 0.028226 0.039523 0.051834 0.065200 0.079662 0.095262 0.112039 0.130033 0.149284 0.169831 0.191712 0.214966 0.239628 0.265736

0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 0.55 0.56 0.57

0.957370 0.997355 1.034120 1.071319 1.108937 1.146961 1.185376 1.224169 1.263324 1.302829 1.342667 1.382825 1.423287 1.464039 1.505065 1.546350 1.587880

8

0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98

2.660353 2.702820 2.745118 2.787233 2.829150 2.870855 2.912334 2.953574 2.994560 3.035279 3.075718 3.115863 3.155702 3.195223 3.234412 3.273257 3.311747

0.17 0.18 0.19 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39

0.293325 0.318810 0.340573 0.363006 0.386093 0.409819 0.434166 0.459120 0.484661 0.510772 0.537436 0.564631 0.592341 0.620544 0.649221 0.678351 0.707913 0.737886 0.768249 0.798980 0.830056 0.861456 0.893157

0.58 0.59 0.60 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.70 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.80

1.629638 1.671611 1.713781 1.756134 1.798655 1.841328 1.884137 1.927066 1.970102 2.013226 2.056426 2.099683 2.142984 2.186313 2.229653 2.272990 2.316309 2.359593 2.402828 2.445999 2.489089 2.532085 2.574971

0.99 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20

3.349871 3.387616 3.424972 3.461928 3.498473 3.534599 3.570296 3.605553 3.640364 3.674718 3.708610 3.742031 3.774976 3.807437 3.839410 3.870889 3.901872 3.932353 3.962332 3.996615 4.030507 4.063273

0.40 0.925136 0.81 2.617732

5.2模型二: 5.2.1模型建立:

实际储油罐无变位放置时的储油量V:

如图所示:实际储油罐无变位放置无变位的情况下,假设油面高度为h, 对油罐侧面建立直角坐标系,如下图:

9

y R R r 3 m O 1.5m x 1m 2m h 6m 1m x

l 图5.7

设球冠体的半径为R,则球心为(R,1.5),对球冠做竖直切面,任一截面的半径为r。储油罐圆柱段长度为l。 当0?h?1.5时,

对于球冠部分任一竖直截面如图5.8:

对于给定h值后,设油罐无变位中点到油平面的高度

d?1.5?h,

r ?此时任一截面

的半径

d r?R2?(R?x)2?2Rx?x2此时油面与半径夹角

cos?? dd,则??arccosrr

S?S扇形?S??2?图5.8

?1?r2?2?d?r?sin?2?2

dd?arccosr2?drsin(arccos)rr当1.5?h?3时,

对于球冠部分任一竖直截面如图5.9:

任一给定h值后,设油罐无变位中点到油平面的高度

d r ??d?h?1.5,

10

r?R2?(R?x)2?2Rx?x2此时油面与半径夹角

cos??

?d?d,则??arccosrr

S?S圆?S弓形?d2?d??r?arccosr?drsin(arccos)rr

2图5.9

d2d?arccosr?drsin(arccos),0?h?1.5??rrS????r2?arccos?dr2?drsin(arccos?d),1.5?h?3?rr?综上可得 ⒂

由正余弦函数性质,可对分段函数式做统一表达式表示,即

S?arccosd2dr?drsin(arccos)rr

1RR2?(h?1.5)则

V?2?'Sdx2?R2=

1R2?(h?1.5)arccos2d2dr?drsin(arccos)dxrr⒃

d2dr?drsin(arccos)rr

S?arccos推论2:对于任意球面被平面所截截面积:

内圆柱的体积

据模型一中推论1,可得

S圆柱?arccosV圆柱?lS圆柱

综上可得:

R?h2R?hR?R(R?h)sinarccosRR

R?h2R?h?larccosR?lR(R?h)sinarccosRR

当0?h?1.5时,

V?V'?V圆柱larccos=

2?1RR2?(h?1.5)arccos2d2dr?drsin(arccos)dxrr+

R?h2R?hR?lR(R?h)sinarccosRR ⒄

当1.5?h?3时,

11V?V'?V圆柱?2?x2(R?x)2?3=RR2?(h?1.5)arccos2d2dr?drsin(arccos)dxrr+

11

larccosR?h2R?h1R?lR(R?h)sinarccos2?x2(R?x)RR+3 ⒅

实际储油罐发生横向偏移的储油量V

如图5.10,当储油罐发生横向偏移时,测得的油面高度h与实际油面高度h均过圆心,由几何关系可知: 'R' 'h?(h?R)cos??R β ⒆

'图5.10 其中R 为球冠部分任一横截面圆的半径

''h' h ?

储油罐发生纵向偏移时的储油量V:

如图所示:储油罐发生变位的情况下,假设测得的油面高度为h?,对油罐横截面建立直角坐标系,如下图

油位探针 地平线

油位探测装置 y 油浮子 a 3m 油 1.5m h' 0 1m 2m α

设油平面方程为

注检油查口 口 出油管 b x 图5.11 无变位h????tan??x?h??3tan?

令k??tan?,c?h??3tan?

此时,可根据一元二次方程的求根公式得到无变位线与油罐截面的两个交点,设为a,b(如图5.11所示)则

12

a?(2kb?3k?2R)2?4(1?k2)(b?1.5)2?(2kb?3k?2R)2(1?k2)

b??(2R?2kb?3k?20)?(2R?2kb?3k?20)2?4(1?k2)(b2?3b?102.25?20R)2(1?k2)由推论2可知:

2Rx?x2

R?h??R?h??S2?R2arccos?R(R?h??)sinarccosRR

其中,S1为球冠内部任一高度的竖直截面面积

S2为圆柱体内任一高度的竖直截面的面积

S1?arccos1.5?h??2Rx?x2(2Rx?x2)?(1.5?h??)sinarccos1.5?h??y 3?2tan? 7tan??1.5无变位面

3m 1.5

6tan?3tan?? x 0 1.5m ? 图5.12 1m 由几何关系可知h?各区间零界点的值,并对h?做区间化处理,得: ①当0?h??6tan?时

V??s1dx??a13?htan?1s2dx

②当6tan??h??1.5?3tan?

V??s1dx??s2dx??s1dxa1919b

③当1.5?3tan??h??7tan??1.5

19baV??s1dx??s2dx??s2dx??a2(R?)a193

④当7tan??1.5?h??3?2tan?

13

a10?bV??s1dx??s2dx??s1dx??a2(R?)??(10?b)2(R?)a1933

19b⑤当3?2tan??h??1.2时

V??93?tan?23?h?s2dx??s1dx??(10?b)(R?9b10?b1)??(R?)33

5.2.2模型求解

(1) 罐内储油量与油位高度及变位参数(纵向变位角度 和横向偏转角度 )之间的一般关系。

?h?1sdx?3?tan?sdx0?h??6tan?

?12??a1 9b?1??as1dx??1s2dx??9s1dx6tan??h??1.5?3tan? ? 9ba?12V???s1dx??s2dx??s2dx??a(R?)1.5?3tan??h??7tan??1.5 ⒇ a193?9ba10?b ?122??as1dx??1s2dx??9s1dx??a(R?3)??(10?b)(R?3)7tan??1.5?h??3?2tan? ? ?9sdx?bsdx??(10?b)2(R?10?b)??(R?1)3?h?23?2tan??h??1.2 1???3?tan933??

''?h?(h?R)cos??R其中:

(2)利用罐体变位后在进/出油过程中的实际检测数据,确定变位参数。 1)、方法一:(精确控制遗传算法)

根据第一步求出的罐内储油量与油位高度及变位参数(纵向变位角度 和横向偏转角度 )之间的一般关系,对其利用计算机模拟求积分。如图:

求积分的子程序中采用龙贝格求积方法,将复杂的求积方程转化为精度高达99.999%且运行时间提高100倍的求积算法。

然后,利用附件2中所给前半部分数据,计算相邻数据油位高度所对应的油的容量差?V。

??V?V出??2????V????(其我们利用最小二乘法的思想,数据的相对误差的平方的计算公式为

2f(?,?)??V?,??,f(?,?)中出为累计出油量),求出下所给数据相对误差的平方和

2取最小值时的?,?即为最逼近所给数据的取值。

在计算机编程实现时,我们利用精确控制遗传算法,通过精确控制的方法,提供模糊初值,

?并从中选取较优后代繁衍后代,找到?

2的最小值,从而找到对应的?和?,源程序见附

14

件1。

?????2.116????4.252??最终经过计算得出:

具体程序流程图如图5.13:

左图为:求积算

法 开始 输入h,?,? 把?角下的h转化为h?计算油面与油罐的交点a<1 N Y 左边部分整个球冠球冠的体的体积v1 b>9 N Y 右边部分v3=0 球冠的体中间部分的体积v2 V=v1+v2+v 结束 开始 输入date ,min a ,max a, min b, max F(dat,a(i)-esp,b(i)-esp,a(i)+esp,b(i)+eps, 2eps2/(max a-min a),n,eps2) epsn 输出矩阵(n,3) 对所有输出排序, 找到最小一组解 结束 15

右图为:精确控制遗传算法

2)、方法二:(图形逼近法)

由函数的连续性知,采用图像法逐步精确分析,得到前半部分数据所对应最吻合的

??2.116o,??4.252o。如下图分别为?=0->10度,?=0->10度 ,间隔1度;?=2->4

度,?=4->6度,间隔0.2度;?=2->2.2度 ,?=4->4.4度,间隔0.04度;?=2.08 ->2.16度,?=4.20->4.28,间隔0.008度,高为相对误差百分比的平方和。

图5.14 (3)罐体变位后油位高度间隔为10cm图的罐容表标定值: 5.13 显示油面高度(m) 0.0 0.1 0.2 0.3 0.4 0.5

实际油量(m^3) 0.045958 0.354349 1.064045 2.219881 3.698653 5.428019 显示油面高度(m) 1.1 1.2 1.3 1.4 1.5 1.6 实际油量(m^3) 19.25952 21.93509 24.66882 27.44476 30.24736 33.06125 16

显示油面高度(m) 2.2 2.3 2.4 2.5 2.6 2.7 实际油量(m^3) 49.3181 51.77233 54.10618 56.29869 58.32617 60.16061 0.6 0.7 0.8 0.9 1.0 7.366308 9.482448 11.75093 14.14961 16.6586 1.7 1.8 1.9 2.0 2.1 35.8712 38.66191 41.41796 44.12358 46.76259 2.8 2.9 3.0 61.76642 63.09146 64.02353

模型分析与评价

6.1影响油罐标定的误差分析:

影响油罐标定与计量的因素有油罐围测、管道排出体积、压力、温度、油罐变位、蠕变、测量误差和油漂变化等。对于模型一针对小椭圆型储油罐两种放置情况,我们考虑到题目中所给数据均为油罐内壁,可排除油罐围测的影响;又考虑到试验中数据均为准确可靠的,所以排除测量误差等影响;又由于我们假设试验用小椭圆油罐不存在长时间使用产生的蠕变影响。因此,我们将影响油罐标定与计量的限制因素考虑为管道排除体积、压力、温度、变位程度的影响。以下对校椭圆型储油罐两种放置状态进行分析: 油浮变化影响:

变位注油油面积离散分布图

变位抽油油面积离散分布图

图6.1 图6.2 由于相邻两组数据的高度之差仅为几毫米,可近似看成是柱体,因此我们假设:相邻两组数

据体积之差比上高度之差约等于油面截面积。经过我们对题目所给的实验数据对油面截面积进行估算,发现数据并不连续,是相对离散的点,说明测量过程中油浮子产生浮动,对测量出的体积产生影响,由于高度之差相对较小,对于整体容积的测定产生的影响很小,但是对于相对两组数据产生的误差较大。 ②压力的影响

由于油品的静压力作用会引起罐体的膨胀和收缩,从而影响计量准确性。另外,又由于油罐不同放置情况会产生不同的静压力,导致油罐每一点受力不均匀。 ③温度的影响

由于油罐在测量数据时的环境温度与油罐使用温度通常是不同的,因此有必要计算因温度变化而使油罐膨胀或收缩的容积修正量。 通常把无变位截面积看作是油罐标定函数,而高度作为计量函数另外考虑。因为油罐计量的容积等于面积乘以渐增高度,所以面积修正系数k于容积修正值比例相同,可直接用于有关计量表的容积中。则油罐截面积修正公式为:

[3]k?1?12.4?10?6?ts?4.0?10?9?ts2

17

其中:?ts——钢板温度

油管排出体积

由于油管占用一定体积,使得理论值总比实验采集数据大,因此误差不可避免,并且由于无变位放置时油管是随油面上升高度逐渐增大,因此影响程度可以近似看成一条直线。但是当油罐发生变位的时候,由于各油管位置不确定,所以影响程度为非线性影响。 ⑤油罐形状带来的影响

油罐形状不会影响实际测量的值,但是当理论估计值与实际测试值做对比分析时,便会产生对比误差。由于油罐横截面为椭圆型,上升相同体积V的情况下,高度h变化率不同,其近似可以看成开口向上的抛物线。当上升相同高度h的情况下,体积V的变化率近似可以看成开口向下的抛物线。

6.2模型一误差分析

6.2.1、小椭圆型储油罐无变位放置 通过对模型理论储油量值和实际测量值(原题附件一中无变位进油所示值)进行对应高度求体积差?V,即为储油量的绝对误差。见图5.3,由图可知 平均误差约为:75L

进一步对求模型理论储油量值和实际测量

值相对误差,并做出相对误差曲线,见图图6.3

5.17。由图可知,相对误差相对稳定,近似为3.3%,误差很大。由图XX可知,绝对误差总体呈上升趋势,细分可以分为两个阶段:上升阶段,下降阶段。经过分析,这里影响油罐标定变化的因素为:管道排出体积、温度、压强;当然考虑到油罐为椭圆柱体,上升相同体积,高度变化不均匀,所以形状也会带来影响。

这里对以上限制因素分别分析:

管道排出体积:因为油罐变位放置,所以管道排出体积带来影响近似可以看成斜率大于1的直线。

压强:由于油罐油无变位放置,受力相对均匀,发生形变很小,几乎可以近似看做不发生形变,因此压强带来的影响近似可以忽略。

③ 温度:由X式可知,油罐截面积修正公式为:k?1?12.4?10?ts?4.0?10?ts

?510级别,因此,截面修正系数k近似约等于1,这里钢板温度与其前面系数相乘大概在

?6?92又由于试验用油罐截面积较小,所以温度带来的误差几乎可以忽略。

④油罐形状带来的影响

油罐形状不会影响实际测量的值,但是当理论估计值与实际测试值做对比分析时,便会产生对比误差。由于油罐横截面为椭圆型,当上升相同高度h的情况下,体积V的变化率近似可以看成开口向下的抛物线。

综上结合图X,可以得到:当油罐无变位放置时,误差影响主要来自管道排出体积和油罐形状,又因为其变化趋势可知:前者占绝对主导地位,而后者影响较小。

18

6.2.2小椭圆型储油罐变位放置

通过对模型理论储油量值和实际测量值(附件一中无变位进油所示值)进行对应高度求体积差?V,即为储油量的绝对误差。见图5.6,由图可知 平均误差约为:75L

进一步对求模型理论储油量值和实际测量

值相对误差,并做出相对误差曲线,见左图。由图可知,相对误差变化很大,近似为也为3.3%,但是最大误差能达到6.6%。由图5.18可知,绝对误差总体呈上升趋势,细分可以分为两个阶段:快速上升阶段,缓慢上升阶段。经过分析,这里影响油罐标定变化的因素为:管道排出体积、温度、压强;当然考虑到油罐为椭圆柱体,上升相同体积,高度变化不均匀,所以形状也会带来影响。 这里对以上限制因素分别分析:

图6.4 管道排出体积:因为油罐变位放置,又由于

管道位置不可知,所以无法定量的分析对管道排出体积带来的影响。

压强:由于油罐变位放置,各个点受力不均匀,油罐发生变位的着地点会发生形变,导致底部积油量增加,升高相同高度,体积增量变大,造成误差。

⑤温度:同无变位情况相似,所以温度带来的误差几乎可以忽略。 ⑥油罐形状带来的影响:

油罐形状不会影响实际测量的值,但是当理论估计值与实际测试值做对比分析时,便会产生对比误差。由于油罐横截面为椭圆型,当上升相同高度h的情况下,体积V的变化率近似可以看成开口向下的抛物线,但是抛物线形状相对于无变位情况发生改变,并且最高点右移。 综上结合图X,可以得到:当油罐变位放置时,误差影响主要来自管道排出体积和油罐形状和压强的影响,又因为其变化趋势可知:当h?0.7m时,管道排出体积占绝对优势,油罐形状和压强影响较小;当和h>0.7以后,压强变大占主导因素,导致上升相同高度,体积上升程度减小,而此时管道排出体积和油罐形状的影响较小。

6.3模型二误差分析

6.3.1 我们对所求角度下的体积表达式进行了修正,采用二次曲线拟合修正,修正值为:

E(h)?0.00000002057185 ?h2-0.00008504665116?h?0.07621345275619

把带上修正量表达式带入原题附件2中下半部分数据进行误差分析,发现其相对误差为

?51.2?100.5708%,变化仅为,对于数据二几乎没有任何影响,而且,我们取两组相距较远

的数据对比,由于h相差较大,计算的时候未加修正时误差几乎为0,误差随着?h的增大而减小,对于高度2486.21mm与467.74mm我们计算得到两者体积差为51124.54448918395L,

而测量两者体积差为51124L,相对差仅为0.001%,根本无需修正,故认为此误差由油浮波动产生。

变位抽油油面积离散分布图 6.3.2经过对数据进行分析,我们假设只有油

19

浮波动对测量值产生误差。当相邻两组数据的 高度之差仅为几毫米,可把抽油形状近似看成 是柱体,因此我们假设:相邻两组数据体积之差 比上高度之差约等于油面截面积。经过我们对题 目所给的实验数据对油面截面积进行估算,发现 数据并不连续,是相对离散的点,说明测量过程 中油浮子产生浮动,对测量出的体积产生影响。 如图:

图6.5

6.4模型检验:

6.4.1问题一检验(残差检验法) 小椭圆型储油罐无变位放置 我们利用残差分析法,将题中所给的小椭圆型储油罐无变位时的出油量与经过修正后的理论出油量作差,从而算出相对误差的值,再用Matlab画出油面深度和其对应的相对误差的关系图,如下图所示:

图6.7

观察上图可以看出相对误差在-0.015到0.005之间变化,误差很小,几乎可以忽略不计。因此,我们可以初步说明我们所建立的模型是可行的。

为了进一步说明模型的可行性,我们求出了残差的标准差,为0.3806,可以说明该模型是相对稳定的。

小椭圆型储油罐变位放置

与(1)采用相似的方法,我们也利用Matlab画出了深度和其对应的相对误差的关系图,见图6.6,图6.7 观察图像,可以看出相对误差在-0.05%~0.02%之间变化,误差相对较小,几乎可以忽略,同样地算出标注差为:3.7584L,基本可以说明所建立的模型是较为稳定的。 6.4.2问题二检验

分析原题附件2中的数据,我们发现表中的“显示油量容积”即为油罐没有发生偏转时“显示油高”所对应的油罐容积。

20

我们将附件2中的油高代入油罐没有发生偏转时的求油罐容积的方程,然后将求得的理论值和表中的实际值作残差,得到残差图。同样利用Matlab做出相对误差与深度的关系图,观察两个表中的数据,发现误差在万分之几徘徊,影响是微乎其微的,这可以说明我们算出的球冠部分任意高度的截面积与圆柱体部分任意高度的截面积的公式是准确的。由此,可以看出在油罐变位时,我们利用这两个面积积分是合理的,也就是说我们为解决第二个问题所建立的模型是可行的。

图6.8 图6.9 另外,我

们还对求出的绝对误差 相对误差

?,?利

用原题所给附件2中的数据进行了检验,采用了三种方法。方法一:将?,?代入上半部数据,其平均相对误差为0.5114%,而将?,?代入下半部数据,其平均相对误差为0.572%,说明求出的?,?是较优的;

方法二:我们又根据下半部分数据,计算出其相应的?1,?1,并带入,求得其平均误差为0.5715%,与?,?所对应的平均误差之差仅为0.0005%,说明所求的?,?是相当接近于准确解的。

方法三:所选两个数据?h>1m时,绝对误差都在10L以内,相对误差都在0.01%内,如图,由此说明模型稳定、方法可靠,?,?值与准确解的误差微乎其微

6.5模型二优劣分析:

6.5模型二优劣性分析

6.5.1优点:

(1)模型二采用最小二乘法的思想,使所求函数逼近?,?所在直线,是精度提高,程序运

21

行效率提高。

(2)程序采用人工智能控制遗传算法,相对于传统的遗传算法,由于传统的遗传算法适合多变量大数据量的计算。因此,这里我们大大简化了计算过程,通过人工给定模糊初始,即给定模糊范围,粗精度不需要很小,程序运行步骤少,程序总体运行时间很短。

(3)程序根据输入的参数进行定长的分段,求函数值并选取其中n个最优解,根据最优解所在位置进一步缩小搜索范围,直到范围小于程序所给的精度。若程序检验10?10个数据,当选择搜索步长为10时,只需要进行100?5?6次检验,是穷举检验步骤的3?10。

2x当搜索步长为x时,需要进行?0.5x?logx(y),检验y ?y个数据。

?644(4)模型中求积子程序采用龙贝格求积方法,大大减化了求积过程,并能保证精度在

0.00001之上,提高运算速度达到100倍,每次积分时间不足0.001秒。相对于梯形公式和辛卜生公式又能大大保证其精度。 6.5.1缺点:

效率没有传统遗传算法高,计算所需时间比传统遗传算法长。 (2)算法难度大大高于梯形公式和辛卜生公式,程序量较大。 模型推广

本论文所建立的模型实用性很强,两种模型可以用于不同形状的油罐的变位情况,比如可以利用我们建立的模型设计出一种检测仪器,用以检测加油站的油罐是否变位,及横纵向变位的角度。但是我们建立的模型存在一定的误差,在一些需要精确测量的场合不适用。 结论

本文 针对储油罐的变位识别与罐容表标定问题,通过求微积分方法,得到了储油罐标定的一般理论公式,建立了两种不同类型求储油罐罐容表的模型。

对于问题一中小椭圆形储油罐,我们先对其无变位情况进行求解,发现误差不可忽略,对误差产生的原因做了定性分析,其中主导因素的是油管的体积,并对误差进行一次曲线拟合修正。然后,求得变位情况下的一般理论公式,利用原题附件1中变位进油数据对公式进行分段曲线拟合修正,进一步得到了油罐容量V和油面高度h的函数关系

?0.4?h'0?h?2.05tan? ??0tan?S(x)dx?E2(h)?2.45?2.05tan??h?1.2?0.4tan? V???S'(x)dx?E2(h)0?1.2?h'?2.45S(x)dx??ab(0.4?)?E2(h)1.2?0.4tan??h?1.2 1.2?h??tan??0.4?tan?

通过原题附件1中变位出油数据验证了模型的准确性。利用残差分析法,求得理论值和实验

值的相对误差为0.05%,说明该模型稳定、可行。进而利用该函数关系求得了罐体变位后油位高度间隔为1cm的罐容表,并给出了罐体变位后对罐容表的影响一般关系式,总结出罐体变位后对罐容表影响趋势是当测量的油面高度一定时,随着?的增大,对罐容表测定的油罐容积误差变大。

对于问题二中实际储油罐,我们先对其无变位情况进行求解,所求结果与原题附件2中所给

?510标定容量的相对误差仅为。进一步推广得出了油罐容量V和?,?一般函数积分关系式。

22

?h?1sdx?3?tan?sdx0?h??6tan?

?12??a1 9b?1??as1dx??1s2dx??9s1dx6tan??h??1.5?3tan? ? 9ba?12V???s1dx??s2dx??s2dx??a(R?)1.5?3tan??h??7tan??1.5 a193?9ba10?b ?122??as1dx??1s2dx??9s1dx??a(R?3)??(10?b)(R?3)7tan??1.5?h??3?2tan? ? ?9sdx?bsdx??(10?b)2(R?10?b)??(R?1)3?h?23?2tan??h??1.2 ?91??3?tan33??

在求积分的过程中,我们利用龙贝格求积方法对其进行求解,精度达到99.999%,求积一次不足1毫秒。由于测量过程中,油浮波动不可避免,所以数据有一定波动,不存在与数据完全吻合的?,?值。在求?,?的过程中,我们利用最小二乘法的思想,编程采用精确控制的

oo??2.116,??4.252遗传算法,利用原题附件2中所给前半部分的300组数据求出。为

了验证?,?值的准确性,我们将手动计算与计算机图像法相结合,进行层层放大逼近求解,最终结果基本一致。为了减小误差,我们对其进行了二次拟合修正,发现修正后的值对于附

件2中后半部300组数据并不明显,故不加修正。我们将所求值带入后半部分数据进行检验,

oo?'?2.112,?'?4.45与后半部分数据所求得的对比,求得两组角度所对应的相邻两组数

据的排出油量与计算所得值的平均相对误差之差5?10,而且当所选任意两组数据高度之差大于1米时,这两组数据所对应的高度之间排出油量与计算所得值相对误差都在0.01%以内,由此说明该模型稳定、方法可靠,?,?值与准确解的误差微乎其微。最后给出了罐体变位后油位高度间隔为10cm的罐容表标定值。

参考文献

[1]王宪杰、侯仁民等,高等数学典型应用实例与模型,北京:科学出版社,2005 [2]王建卫、曲中水等,MATLAB 7.X 程序设计,北京:中国水利水电出版社,2007

[3]程继元,浅谈影响油罐标定与计量因素及其修正方法,石油商技,第22卷第2期:33,2004

[4]孙志忠等,计算方法与实习,江苏:东南大学出版社,2005.

23

?6

附录1:精确控制遗传算法

function f=fsearch(real,pin,mina,maxa,minb,maxb,eps,eps2,n) %求a,b精确控制遗传算法

% real 油高数据矩阵 单位 M % pin 抽油数据矩阵 单位L % mina a 搜寻下线 % maxa a 搜寻上线 % minb b 搜寻下线 % maxb b 搜寻上线 % eps 粗精度 % eps2 细精度 % n 保留数

global dt; %定义全局变量dt dt=zeros(1000,3); %初始化 global ct; %定义全局变量ct ct=1; %初始化

search(real,pin,mina,maxa,minb,maxb,eps,eps2,n); %调用查找算法 [a1,b1]=max(dt(:,3)); %在输出次优解解中寻找最优解 f=dt(b1,:);

24

disp(f);

%************************************************************************** function s=search(real,pin,mina,maxa,minb,maxb,eps,eps2,n) %查找的递归算法 if eps

k(1)=realt0(real(1)/1000,(mina+maxa)/2,(minb+maxb)/2); %符合条件输出次优解 w=0;

for i=2:length(real)

k(i)=realt0(real(i)/1000,(mina+maxa)/2,(minb+maxb)/2); w=w+(abs((k(i-1)-k(i))*1000-pin(i))/pin(i))^2*10000; end

dt(ct,1)=(mina+maxa)/2; dt(ct,2)=(minb+maxb)/2; dt(ct,3)=w; ct=ct+1; s=1;

else %未符合条件,进行筛选繁衍 m1=zeros(round((maxa-mina)/eps+1),round((maxb-minb)/eps+1)); e=1; w=0;

perc(1)=0;

for a=mina:eps:maxa %信息采集(求各个数据相对误差平方和) for b=minb:eps:maxb

k(1)=realt(real(1)/1000,a,b); for i=2:length(real)

k(i)=realt(real(i)/1000,a,b);

w=w+(abs((k(i-1)-k(i))*1000-pin(i))/pin(i))^2*10000; end

m1(round((a-mina)/eps+1),round((b-minb)/eps+1))=w; w=0; end end

ab=sortn(m1,n); %调用排序子程序筛选较有数据 for i=1:n

a(i)=eps*(ab(i,1))+mina; b(i)=eps*(ab(i,2))+minb; end

for i=1:n

search(real,pin,a(i)-eps,a(i)+eps,b(i)-eps,b(i)-eps,eps^2/(maxa-maxb),eps2,n); %递归调用(类似于克隆技术的繁衍后代) end end

%**************************************************************************

25

function ab=sortn(m,n) %排序算法 输入向量m,个数n,输出最小的n个数以及它们所在m矩阵的下标 a=zeros(n,2); for k=1:n

[c,d]=min(min(m)); a(k,2)=d;

[e,f]=min(m(:,d)); a(k,1)=f; end ab=a;

附录2:龙贝格求积公式 function rt=realt(h,a,b) %function rt=realt(h,a,b) %油面高h %纵向倾角a

26

%横向倾角b

%函数所求倾斜油罐实际储存油的体积 tic %计算程序运行时间 if h>3 | h==3 %防止输入越界 h=2.9999; end

if h<0 %防止输入越界 rt=0; end

format long; %把度数转换成弧度 a=a/180*pi; %输出格式 b=b/180*pi;

dv1=0; %各部分体积初始化,dv1为左端有球冠时的体积(当xa>1还要加上圆柱体体积),dv2为右端有球冠时的体积 dv2=0;

v1=0; %v1为左端积分体积,v3为中段积分体积,v2为右端积分体积 v2=0; v3=0;

h=(h-1.5)*cos(b)+1.5;

if h<3-2*tan(a) %求斜线左端与油罐交点 rot=zeros(2,1); x=0;

y=[1+(tan(a))^2,3*tan(a)-1.25-4*(tan(a)^2)-2*h*tan(a),(2*tan(a)+h)^2-6*tan(a)-3*h];

rot=roots(y); if(rot(1)>0) x=1+rot(2); else

x=1+rot(1); end

hh=-x*tan(a)+2*tan(a)+h; if (hh-1.5)>0;

dv1=pi*x*x*(1.625-x/3); %当左端有球冠存在,添加球冠体积 end

n=1; %利用龙贝格算法求油罐左端球体部分体积 while 1 r=zeros(n+1,n+1);

r(1,1)=(1-x)/2*(f2(x,h,a)+f2(1,h,a)); for i=1:n

h1=(1-x)/2^i; s=0;

for k=1:2^(i-1)

s=s+f2(x+(2*k-1)*h1,h,a);

27

end

r(i+1,1)=r(i,1)/2+h1*s; end

for j=1:n

fac=1/(4^j-1); for m=j:n

r(m+1,j+1)=r(m+1,j)+fac*(r(m+1,j)-r(m,j)); end end

if abs(r(n,n)-r(n+1,n+1))<0.00001 break; end n=n+1; end

v1=r(n+1,n+1); end

if h>6*tan(a) x=0;

rot1=zeros(2,1);

y1=[1+(tan(a))^2,3*tan(a)-14.75-4*(tan(a)^2)-2*h*tan(a),(2*tan(a)+h)^2-6*tan(a)-3*h+54]; %求斜线右端与油罐交点 rot1=roots(y1); if(rot1(1)<8)

x=rot1(2)+1; else

x=rot1(1)+1; end

hh=-x*tan(a)+2*tan(a)+h; if (hh-1.5)>0;

dv2=pi*(10-x)*(10-x)*(1.625-(10-x)/3); %当右端有球冠存在,添加球冠体积 end

n=1; %利用龙贝格算法求油罐右端球体部分体积 while 1

r=zeros(n+1,n+1);

r(1,1)=(x-9)/2*(f3(9,h,a)+f3(x,h,a)); for i=1:n

h1=(x-9)/2^i; s=0;

for k=1:2^(i-1)

s=s+f3(9+(2*k-1)*h1,h,a);

28

end

r(i+1,1)=r(i,1)/2+h1*s; end

for j=1:n

fac=1/(4^j-1); for m=j:n

r(m+1,j+1)=r(m+1,j)+fac*(r(m+1,j)-r(m,j)); end end

if abs(r(n,n)-r(n+1,n+1))<0.00001 break; end n=n+1; end

v2=r(n+1,n+1); end

if h<6*tan(a) %判断油面是否到达右端球体 b1=3+h/tan(a); v2=0; dv2=0; else

b1=9; end

if h>3-2*tan(a) %判断油面是否到达左端球体 a1=3-(3-h)/tan(a);

dv1=pi*(1.625-1/3)+pi*1.5*1.5*(a1-1); %若梅到达左端球体则应加上左端罐体体积和其旁边相应圆柱体体积 else

a1=1; end

n=1; %利用龙贝格算法求油罐中段球体部分体积 while 1

r=zeros(n+1,n+1);

r(1,1)=(b1-a1)/2*(f1(a1,h,a)+f1(b1,h,a)); for i=1:n

h1=(b1-a1)/2^i; s=0;

for k=1:2^(i-1)

s=s+f1(a1+(2*k-1)*h1,h,a); end

r(i+1,1)=r(i,1)/2+h1*s; end

29

for j=1:n

fac=1/(4^j-1); for m=j:n

r(m+1,j+1)=r(m+1,j)+fac*(r(m+1,j)-r(m,j)); end end

if abs(r(n,n)-r(n+1,n+1))<0.00001 break; end n=n+1; end

v3=r(n+1,n+1);

v=v1+v2+v3+dv1+dv2;

% disp(v1);disp(v2);disp(v3);disp(dv1);disp(dv2); rt=abs(v); toc

%************************************************************************** %**************************************************************************

function y=f(x,h) %截面积求积函数1 r=(1.625*1.625-(1.625-x)^2)^0.5; d=1.5-h;

y=r*r*acos(d/r)-d*r*sin(acos(d/r));

function y=f1(x,h,a) %截面积求积函数2 hh=-tan(a)*x+h+3*tan(a);

y=1.5*1.5*acos((1.5-hh)/1.5)-(1.5-hh)*1.5*sin(acos((1.5-hh)/1.5)); function y=f3(x,h,a) %截面积求积函数3 hh=-tan(a)*(x+0.0001)+h+3*tan(a); r=(1.625*1.625-(1.625-(10-x))^2)^0.5; d=1.5-hh;

y=r*r*acos(d/r)-d*r*sin(acos(d/r));

function y=f2(x,h,a) %截面积求积函数4 hh=-tan(a)*x+h+3*tan(a);

r=(1.625*1.625-(1.625-x)^2)^0.5; d=1.5-hh;

y=r*r*acos(d/r)-d*r*sin(acos(d/r));

30

本文来源:https://www.bwwdw.com/article/vev6.html

Top