摘 要: 通常加油站的地下储油罐,有与之配套的“油位计量管理系统”,采用流量计和油位计来测量油量与油位高度等数据。储油罐的位置发生纵向倾斜和横向偏转等变位后,建立储油量与测得油位高度的函数关系模型,采用最优化搜索办法为储油罐变位识别。利用C++编程,计算得到油罐的纵向倾斜角,横向偏转角,使用求出的变位角得到变位油罐的罐容表标定值。对实际数据经过方差检验,计算出来的结果符合需要。
中国论文网
  关键词: 储油罐;变位识别;模型;最优化搜索
  1 问题的提出
  大多数加油站储存燃油的储油罐都埋藏在地下,我们无法直接测定储油罐内油位高度及其储油量。加油站使用与之配套的“油位计量管理系统”,采用流量计和油位计来测量进、出油量与罐内油位高度等数据,通过预先标定的罐容表(即罐内油位高度与储油量的对应关系)进行实时计算,以得到储油罐内油位高度和储油量的变化情况。
  然而许多储油罐在使用一段时间后,由于地基变形等原因,使罐体的位置会发生纵向倾斜和横向偏转等变化(以下称为变位),从而导致罐容表发生改变。为了实际需要,需要定期对罐容表进行重新标定。且已知典型的储油罐其罐身为圆柱体,两端为球冠体,其罐体存在纵向倾斜变位以及横向偏转变位。
  需要利用数学建模的方法研究解决储油罐的变位识别与罐容表标定的问题。
  对实际储油罐,建立罐体变位后标定罐容表的数学模型,即罐内储油量与油位高度及变位参数(纵向倾斜角度 和横向偏转角度 )之间的一般关系。利用罐体变位后在进/出油过程中的实际检测数据,根据所建立的数学模型确定变位参数,并给出罐体变位后油位高度间隔为10cm的罐容表标定值。进一步利用给出的实际检测数据分析检验模型的正确性与方法的可靠性。
  2 储油罐内储油量和油位高度的函数关系模型
  实际储油罐的形状是罐身为圆柱体,两端为球冠体的刚体,因此可将储油罐分为三部分进行求解。未变位时,储油罐整体呈水平状态,储油罐两头的储油量相同,罐身内油体为柱体容易求出,球冠体内油量利用定积分求出。
  储油罐发生变位后,因为有一定角度的倾斜,致使其两头的储油量不同,所以要分别对两头的储油量进行计算。建立合适坐标系,求出罐身内的油量,两头的储油体积,即可求出实际储油罐的总储油量,从而建立总储油量与油位高度的函数关系。另外,考虑到随着油量的增减,罐内油的形状会相继发生变化。
  2.1 储油罐无变位情况
  储油罐截面示意图,见图1。
  图1 储油罐正面示意图
  设 为测得的油位高度值; 为储油罐罐身长,为
  为储油罐两端球冠体半径,计算得其值为1.625 ; 为储油罐罐身半径, ; 为油罐内油量总体积; 为储油罐罐身圆柱部分中油的体积;
  当油位高度为 时,储油体积分三部分计算,即罐身和两个罐头(头一、头二),则储油罐中部罐身圆柱部分储油体积
  无变位时圆柱型储油罐内油量与油位高度的函数关系[1]:
  利用MATLAB得到储油罐无变位时油量值与油位高度的函数[2],并描绘曲线[3](见图2):
  图2 储油罐无变位时油量值与油位高度函数曲线
  2.2 储油罐发生变位
  为了保证油位探针不因罐内油的流动而移位,影响油位高度的测定,故将油位探针底端固定在罐底,即油位探针与罐体的相对位置固定。
  基于对储油罐中油量的体积计算比较复杂,我们以油位探针与油罐底部的接触点作为坐标原点,将储油罐罐身下端所在直线作为轴,以油位探针所在直线作为轴,建立平面直角坐标系。
  储油罐变位情况及坐标系,见图3。
  图3 储油罐变位情况及坐标系
  通常储油罐在使用中不会将罐内油抽空或完全注满,因此只考虑测量油高介于直线 与直线 (见图3)之间的情况。
  取垂直于x轴的平面作油罐罐身截面,所得油体的截面为圆面的一部分,设油体截面铅直方向直径的长度为截面内油深度,记为 。
  设 :油罐左球形部分中油的体积; 为储油罐右球形部分中油的体积; 为圆柱型储油罐横向偏转角; 为纵向倾斜角度;为了书写简便记 。
  探针截面油深度为
  则 处截面面积为:
  头一(左罐头)与罐身衔接面内油深度:
  头二(右罐头)与罐身衔接面内油深度:
  利用积分得到头一内油量为:
  利用积分得到头二内油量为
  油罐内总油量为:
  利用MATLA计算得到总油量的函数表达式。
  3 储油罐变位识别
  3.1 储油罐变位识别方法
  利用油位计量管理系统得到实际储油罐的检测数据,存于EXCEL表格,其中包含出油量(D列)、油位高度(F列),共300条数据。
  油量函数已经得到,关键是如何计算出变位角。利用最优化原理[4]进行搜索得到变位角。核心思想是利用最小二乘法寻找 ,使得根据已知油量高计算的容量差值与输出油量非常的接近,利用找到的变位角计算的储油量就与实际非常接近,能满足实际中的需要。
  搜索过程的具体思想:
  实际采集数据表中D列出油量从第2个数(D3)开始取值,沈阳液化气储罐供应,共取299个,记为 ,计算输出油量与计算油
  通过循环计算得到 ,搜索得到矩阵 中的最小元素,即差方和最小的情况,就得到了 的值,也就能计算出变位角。
  利用C语言编程[3],计算得到 的值,得到变位角。
  将 的值代入油量体积函数,利用MATLAB得到罐容量标定值。
  3.2 最优化搜索程序
  运用最优化搜索算法搜索给出数据中最符合条件倾斜角度的C语言程序   vector f;
  vector g;
  vector b;
  getExcelValue(f,g); //获取EXCEL数据
  int length = f.size();
  double min = 100000;
  double m = 0;
  double n = 0;
  for(double i=x_min;i