利用实体建模计算任意形状密闭容器中的液位

申请号 CN201180059351.4 申请日 2011-09-09 公开(公告)号 CN103299308B 公开(公告)日 2016-08-10
申请人 波音公司; 发明人 S·L·雷; T·A·格兰蒂; J·H·温顿布兰德; D·A·卡尔;
摘要 用于模拟液体容器行为的系统和方法。所述系统包括实体建模器(26)和非线性方程求解器(28)。所述非线性方程求解器(28)把来自所述实体建模器(26)的密闭容器(22)的实 体模 型表示(26)、空间中的期望方向(18)、动态条件(如横向 加速 )和液体的量作为输入。为了获知所述容器(21)中的液位(10),所述系统求解器通过使用表示所述容器液位(18)的无限 水 平半空间(10) 迭代 地执行连续的布尔减法运算。所得平切实体模型(26)被用来计算在该液位的液体体积(12、14、16)。当所述平切密闭容器(22)的计算体积(12、14、16)匹配在给定的容差内 指定 液体(如 燃料 )的体积时,所述迭代系统求解器终止。为了适应动态条件,例如,当加速出现时,所述水平液体平面(10)被处于对应于总加速 角 度的平面(18)替代。
权利要求

1.一种用于计算在密闭容器中的液体表面平面的位置的方法,其包括:
(a)存储第一组数据,其包括所述密闭容器的实体模型表示;
(b)存储第二组数据,其表示所述密闭容器的空间方向;
(c)存储第三组数据,其表示所述密闭容器的加速度的大小和方向;
(d)存储液体体积数据,其表示在所述密闭容器中的液体体积;
(e)至少利用所述第一到第三组数据和所述液体体积数据,计算在所述密闭容器中的所述液体表面平面的位置;其中步骤(e)包括:
(i)选择针对所述液体表面平面的位置的当前猜测;
(ii)使用正则化实体建模运算,计算低于针对所述液体表面平面的位置的所述当前猜测的液体体积;
(iii)比较低于针对所述液体表面平面的位置的所述当前猜测的液体体积和由所述液体体积数据表示的液体体积;
(iv)如果低于针对所述液体表面平面的位置的所述当前猜测的液体体积不充分接近由所述液体体积数据表示的液体体积,则使用数值法来选择针对所述液体表面平面的位置的不同当前猜测;和
(v)重复步骤(ii)至步骤(iv),直到低于针对所述液体表面平面的位置的所述当前猜测的液体体积充分接近由所述液体体积数据表示的液体体积。
2.如权利要求1所述的方法,其中所述数值法包括获知对一个函数的零点的连续更好的近似值,该函数等于低于针对所述液体表面平面的位置的所述当前猜测的液体体积与由所述液体体积数据表示的液体体积之间的差。
3.如权利要求1所述的方法,其进一步包括:
存储第四组数据,其表示连接到所述密闭容器的端口的面积和标高;和
至少利用所述第一至第四组数据和所述液体体积数据,计算液体通过所述端口流入或流出所述密闭容器的流率。
4.如权利要求1所述的方法,其进一步包括以下至少一者:使浸量尺的实体模型表示与在所述密闭容器中的所述液体的实体模型表示交叉;以及导出从下列组中选择的容器性质:暴露的液体面积;所述密闭容器的过液面积;和在所述密闭容器中的液体的重量分布。
5.一种用于模拟包括通过互连接件连通的第一隔室和第二隔室的密闭容器中的液体行为的方法,包括:
(a)存储第一组数据,其包括所述第一隔室的实体模型表示;
(b)存储第二组数据,其包括所述第二隔室的实体模型表示;
(c)存储第三组数据,其表示所述密闭容器的空间方向;
(d)存储第四组数据,其表示所述密闭容器的加速度的大小和方向;
(e)存储表示所述第一和第二隔室之间的所述互连接件的面积和标高的第五组数据;
(f)存储第一液体体积数据,其表示在所述第一隔室中的液体体积;
(g)存储第二液体体积数据,其表示在所述第二隔室中的液体体积;
(h)利用所述第一、第三和第四组数据和所述第一液体体积数据,计算在所述第一隔室中第一液体表面平面的位置;
(i)利用至少所述第二、第三和第四组数据和所述第二液体体积数据,计算在所述第二隔室中第二液体表面平面的位置;
(j)在步骤(h)和(i)后,计算由于在所述第一和第二隔室中所述第一和第二液体表面平面的所述位置之间的差异导致的压变化;以及
(k)利用至少所述压力变化和所述第五组数据,计算从所述第一和第二隔室中的一个隔室到另一隔室的液体流率;
其中步骤(h)包括:
(1)选择针对在所述第一隔室中所述第一液体表面平面的位置的当前猜测;
(2)使用正则化的实体建模运算,计算低于针对所述第一隔室中所述第一液体表面平面的位置的所述当前猜测的液体体积;
(3)比较低于针对所述第一隔室中所述第一液体表面平面的位置的所述当前猜测的液体体积与由所述第一液体体积数据表示的液体体积;
(4)如果低于针对所述第一液体表面平面的位置的所述当前猜测的液体体积不充分接近由所述第一液体体积数据表示的液体体积,则使用数值法来选择针对所述第一液体表面平面的位置的不同当前猜测;和
(5)重复步骤(2)至步骤(4),直到低于针对所述第一液体表面平面的位置的所述当前猜测的液体体积充分接近由所述第一液体体积数据表示的液体体积。
6.如权利要求5所述的方法,其进一步包括:
导出表示具有所述空间方向的所述密闭容器的所述第一和第二隔室的第一组图像数据,
导出表示在所述第一隔室中所述第一液体表面平面的第二组图像数据,导出表示在所述第二隔室中所述第二液体表面平面的第三组图像数据,和
显示与所述第一组图像数据呈交叉关系的所述第二和第三组图像数据。
7.如权利要求5所述的方法,进一步包括显示表示改变在所述第一和第二隔室中液位的图像数据。
8.如权利要求5所述的方法,进一步包括导出从下列组中选择的容器性质的步骤:在所述第一和第二隔室中暴露的液体面积;所述第一和第二隔室的过液面积;在所述密闭容器中的液体的重量分布;由所述第一和第二隔室截留的液体量;和当所述密闭容器的方向改变时从所述第一和第二隔室中的一个隔室传输到另一隔室的液体量。
9.如权利要求5所述的方法,其中所述数值法包括获知对一个函数的零点的连续更好的近似值,该函数等于低于针对所述第一液体表面平面的位置的所述当前猜测的液体体积与由所述液体体积数据表示的液体体积之间的差。
10.一种用于计算在密闭容器中的液体表面平面的位置的系统,其包括:
处理器,其被编程以至少利用包括所述密闭容器的实体模型表示的第一组数据、表示所述密闭容器的空间方向的第二组数据、表示所述密闭容器的加速度的大小和方向的第三组数据和表示在所述密闭容器中的液体体积的液体体积数据,计算在所述密闭容器中的所述液体表面平面的位置;其中所述计算操作包括:
(i)选择针对所述液体表面平面的位置的当前猜测;
(ii)使用正则化实体建模运算,计算低于针对所述液体表面平面的位置的所述当前猜测的液体体积;
(iii)比较低于针对所述液体表面平面的位置的所述当前猜测的液体体积和由所述液体体积数据表示的液体体积;
(iv)如果低于针对所述液体表面平面的位置的所述当前猜测的液体体积不充分接近由所述液体体积数据表示的液体体积,则使用数值法来选择针对所述液体表面平面的位置的不同当前猜测;和
(v)重复步骤(ii)至步骤(iv),直到低于针对所述液体表面平面的位置的所述当前猜测的液体体积充分接近由所述液体体积数据表示的液体体积。
11.如权利要求10所述的系统,其中所述数值法包括获知对一个函数的零点的连续更好的近似值,该函数等于低于针对所述液体表面平面的位置的所述当前猜测的液体体积与由所述液体体积数据表示的液体体积之间的差。
12.如权利要求10所述的系统,其中所述处理器被进一步编程,以至少利用所述第一至第三组数据、所述液体体积数据和表示端口的面积和标高的第四组数据来计算液体经由端口流入或流出所述密闭容器的流率。
13.如权利要求10所述的系统,其中所述处理器被进一步编程,以导出从下列组选择的容器性质:暴露的液体面积;所述密闭容器的过液面积;和在所述密闭容器中所述液体的重量分布。
14.如权利要求10所述的系统,其中所述处理器被进一步编程,以使浸量尺的实体模型表示与在所述密闭容器中所述液体的实体模型表示交叉。
15.如权利要求10所述的系统,进一步包括用于显示图像数据的显示装置,其中所述处理器被进一步编程来进行下列操作:导出表示具有所述空间方向的所述密闭容器的第一组图像数据,以及导出表示在所述密闭容器中的所述液体表面平面的第二组图像数据,以及其中所述显示装置显示与所述第一组图像数据呈交叉关系的所述第二组图像数据。
16.一种用于模拟包括通过互连接件连通的第一隔室和第二隔室的密闭容器中的液体行为的系统,包括:
处理器,其被编程来进行下列操作:
(a)至少利用包括所述第一隔室的实体模型表示的第一组数据、表示所述密闭容器的空间方向的第二组数据、表示所述密闭容器的加速度的大小和方向的第三组数据和表示在所述第一隔室中的液体体积的第一液体体积数据,计算在所述第一隔室中第一液体表面平面的位置;
(b)至少利用包括所述第二隔室的实体模型表示的第四组数据、表示所述密闭容器的空间方向的所述第二组数据、表示所述密闭容器的加速度的大小和方向的所述第三组数据和表示在所述第二隔室中的液体体积的第二液体体积数据,计算在所述第二隔室中第二液体表面平面的位置;
(c)计算由于在所述第一和第二隔室中所述第一和第二液体表面平面的所述位置之间的差异导致的压力变化;
(d)至少利用所述压力变化和表示所述第一和第二隔室之间的所述互连接件的面积和标高的第五组数据,计算液体从所述第一和第二隔室中的一个流至另一个的流率;
其中操作(a)包括:
(i)选择针对在所述第一隔室中所述第一液体表面平面的位置的当前猜测;
(ii)使用正则化的实体建模运算,确定低于针对所述第一隔室中所述第一液体表面平面的位置的所述当前猜测的液体体积;
(iii)比较低于针对所述第一隔室中所述第一液体表面平面的位置的所述当前猜测的液体体积与由所述第一液体体积数据表示的液体体积;
(iv)如果低于针对所述第一液体表面平面的位置的所述当前猜测的液体体积不充分接近由所述第一液体体积数据表示的液体体积,则使用数值法来选择针对所述第一液体表面平面的位置的不同当前猜测;和
(v)重复步骤(ii)至步骤(iv),直到低于针对所述第一液体表面平面的位置的所述当前猜测的液体体积充分接近由所述第一液体体积数据表示的液体体积。

说明书全文

利用实体建模计算任意形状密闭容器中的液位

技术领域

[0001] 本发明一般涉及用于模拟含有液体的密闭容器(下文称为“容器”)的系统和方法。例如在液体-燃料运载交通工具的设计阶段工程模拟中,这样的系统是有用的。这样的系统也可应用于减少用于确定燃料液位的燃料箱中的传感器数量,或者地质结构的相关液位和液体体积量,如库和油田。

背景技术

[0002] 据了解,使用机翼内部形状的矩形平切近似法,计算对于不同的机翼姿态、不同的倾斜偏航角和不同的机翼偏转的飞机机翼中的燃料分布。该已知的解决方案具有以下缺点:(1)依赖于特定几何形状和拓扑结构(即机翼);(2)需要结构输入的广泛格式化和减少的几何表示发挥作用;(3)使用近似解决方法,并因此不提供精确的解决方案;(4)现有软件是用FORTRAN语言编写,其复杂、维护困难且难以改进;(5)现有软件与其他解决方案(如飞机的重心对于不同飞行角度的计算)很难结合在一起;(6)分析结果是通过要求客户编码来读取和编写的专有文件格式交换。
[0003] 需要改进的系统和方法,其用于在静态或动态情况下(如密闭容器在特定方向上是加速的)精确计算在不同空间方向的任意形状密闭容器的液位(在此也称为“液体表面平面位置”)。

发明内容

[0004] 本发明是涉及通过使用实体建模技术计算在任意复杂形状容器(如燃料箱)中的液位的系统和方法。实体建模包括理论、技术和系统的主体,其集中在允许所表示实体的良好定义的几何性质被自动计算出的表示。许多明确表示实体的方案是已知的。边界表示是图形,其中图形的节点表示面、边和顶点,并且其连线表示关联和邻接关系。大多数实体建模器为在实体对象上的布尔运算提供支撑。布尔运算被用在实体建模中,以通过例如立方体、圆柱体和其他边界表示的参数化实体单元的加法和减法限定实体对象。
[0005] 为了利用实体建模,需要在实体表示上运算的应用算法。几何算法处理表示实体的数据(符号结构)。特别地,公知算法用于计算几何上复杂的实体的体积、转动惯量和其他性质。
[0006] 本文所公开的实施例使用边界来表示燃料箱,但是本发明不限于专使用燃料箱边界表示。本文所公开的实施例也使用实体建模布尔运算,以建立一种系统,其使用准确几何上的准确计算来确定在任意复杂形状容器中的液位。这些实施例补充支持实体建模布尔运算,以通过一个数量级减少代码量。这些实施例不依赖于近似法。给定液体体积和任意形状密闭容器,所公开的实施例极大地简化液位和其他性质的计算,如在不同容器方向上的可用和不可用液体的量、液体的可接近性、暴露的表面面积和过液表面面积、在容器中任何位置处液体高度和具有容器方向变化的体积转移。
[0007] 根据本文所公开的实施例,模拟系统包括用软件编程的处理器,其使用实体建模布尔运算并结合非线性方程求解器来计算在任意形状密闭容器中的液位,如飞机机翼中的燃料液位。
[0008] 更具体地,根据一个实施例,实体建模器输出密闭容器的边界表示至非线性方程求解器。密闭容器的实体模型表示沿着其边界的形状,其由在共同边缘处被连接在一起以形成“防水的”封闭空间的一组的面组成。
[0009] 非线性方程求解器把密闭容器的实体模型边界表示、所需空间方向、动态条件(如横向加速)和液体的量作为输入。为了获知在容器中的液位,系统求解器通过使用表示容器液位的无限水平半空间(或其他形状的半空间)迭代地执行连续的布尔减法运算。所得平切实体模型被用来计算在该液位的液体体积。
[0010] 当平切密闭容器的计算体积匹配在给定的容差内液体(如燃料)的指定体积时,迭代系统求解器终止。系统求解器的结果是对应于给定体积的液体的实体模型边界表示。为了适应动态条件,例如,当加速出现时,如以翻转或爬升的方式,水平液体平面被在对应于总加速度的角度的平面替代。
[0011] 根据另一实施例,模拟系统被设计,以适应具有形成由挡板中的窄节流孔连接的隔室或隔间的内部挡板的密闭容器。液位高度计算(如前描述的)被首次应用到每个隔室(即隔间),以计算初始液体高度。接着,液头(由在两个换流容器之间的液位差异产生的压)在每对连接的隔间之间被计算出。然后,此信息被用来计算液体如何在隔间之间流动,以使液位变得水平。
[0012] 液体和密闭容器的实体模型表示可以被用于大大地方便导出容器性质,如:(1)暴露的液体面积,其简单地是实体模型的顶面面积(该性质用于估计蒸发是重要的);(2)过液(wetted)面积(该面积是指液体接触的面积),其通过计算接触容器面的液体的实体模型表示的所有面的面积;(3)浸量尺水平(浸量尺被浸没在液体中的量),其通过交叉浸量尺的实体模型表示和液体的实体模型表示(这被用来校准浸量尺,以指示液体体积);(4)由隔室截留的液体的量;(5)当容器的方向改变时从一个隔室传输到另一隔室的液体的量;和(6)在密闭容器中的流体的重量分布。
[0013] 本文所公开的软件功能性提供了一种用于计算在任意形状容器中的液位的一般方法。因为软件不依赖于具体形状或拓扑结构(事物如何被连接),其可以用于不同的应用中,如飞机和汽车燃料箱、水箱和散热器、火箭推进剂等中的液位。
[0014] 软件补充支持实体建模布尔运算,以减少代码量一个数量级。这进而大大地减少了所需软件维护。
[0015] 另外,液位计算软件不依赖于近似法。因为没有近似法被执行,该解决方案更精确。
[0016] 而且,软件是可以嵌入到其他软件解决方案。因为该解决方案是可嵌入的,所以以不同格式传输分析结果的需要被消除了。
[0017] 软件使用密闭容器的几何结构的实际CAD定义,而不是几何结构的离散“简笔画”近似。因为软件直接在几何结构上运算,许多数据转换问题被消除。
[0018] 本发明的其他方面在下面公开和要求保护。附图说明
[0019] 图1是由另一实体模型表示的面交叉的密闭容器的实体模型表示,该面表示根据一个实施例由算法确定的密闭容器中的液位。成角度的视点为清楚起见已经被选定
[0020] 图2A是飞机概念机翼的实体模型表示。
[0021] 图2B是在图2A中表示的机翼中的液体的15%体积填充的实体模型表示,其由用于产生图1的相同算法产生。
[0022] 图3A是具有9度倾斜角的概念机翼的实体模型表示。
[0023] 图3B是在图3A中表示的机翼中的液体的15%体积填充的实体模型表示,其由用于产生图1的相同算法产生。
[0024] 图4A是圆柱形密闭容器的实体模型表示。
[0025] 图4B是在图4A中表示的装置圆柱形密闭容器中的液体的15%体积填充的实体模型表示,其由用于产生图1的相同算法产生。
[0026] 图5是方框图,其根据本发明的一个实施例表示用于计算密闭容器中液位的系统的组件。
[0027] 图6是流程图,其示出了由图5中的系统执行的算法。
[0028] 图7是顶级模型图,其表示根据本发明的又一实施例通过执行液体流率计算的连接子系统接合的两个液体体积子系统(每个表示相应含液体的隔室或隔间)。
[0029] 图8是三维示意图,其示出了在模拟开始时应用到两个连通容器的液位计算。
[0030] 图9是三维示意图,其示出了在液位已均衡后,在两个连通容器之间的液体的平整。
[0031] 图10是方框图,其表示通过使用用于建模、模拟和分析密闭容器的连接隔室或隔间之间的液体流动的市售软件(即由MathWorks开发的 )进行的计算。
[0032] 图11是三维示意图,其示出了燃料箱的多个隔间,其中液体由内部挡板截留。
[0033] 下文将参考附图,其中不同附图中的类似元素标注相同的参考标号。

具体实施方式

[0034] 现在将描述用于建模和模拟在动态条件下燃料箱内的液体行为的系统的各种实施例。
[0035] 图1是包括用于存储燃料的隔室4、6和8的机翼2的实体模型表示。根据本发明的一个实施例,机翼2的实体模型表示是由无限水平半空间10的面18交叉,该面18表示给定15%体积填充的机翼2内的燃料液位(即燃料的表面平面水平)。成角度的视点为清楚起见已经被选定。
[0036] 如图2A中所示,机翼2的隔室4是通过节流孔与隔室6流体连通,并且隔室6是通过节流孔与隔室8流体连通。图2A示出了具有0°倾斜角的机翼2。相比之下,图2B是用于15%体积填充在0°倾斜角的机翼2内的燃料体积的实体模型表示。如图2B中所示,在燃料箱隔室内的燃料体积包括相应燃料体积12、14、16。如图1中最好示出,燃料体积12被隔室4包含;燃料体积14被隔室6包含;和燃料体积16被隔室8包含。
[0037] 如在后面将更详细公开,处理器用执行用于确定面18(表示燃料液位)的位置和方向的算法的软件编程,作为机翼2的实体模型表示、机翼2的空间方向、机翼2内所含燃料的量和影响机翼2内燃料的动态条件(如机翼的加速)的函数。
[0038] 例如,随着机翼2的倾斜角发生改变,机翼2内燃料的位置发生改变。图3A是具有9度倾斜角的相同机翼2的实体模型表示,而图3B是用于15%体积填充在9°倾斜角的机翼2内燃料体积的实体模型表示。如图3B中所示,在燃料箱隔室4和6内的燃料体积包括相应燃料体积12’和14’。在隔室8中没有燃料用于图3A中所示的空间方向和具有15%填充。
[0039] 图4A是在45度角定向的圆柱形密闭容器22的实体模型表示。图4B是由图4A中表示的圆柱形密闭容器22包含的液体24的15%体积填充的实体模型表示,其由用于产生图1、图2A、图2B、图3A和图3B中所示图像的相同算法产生。这说明了算法的通用性。
[0040] 图5是方框图,其根据本发明一个实施例表示用于计算和显示密闭容器中液位的系统的组件。该系统包括处理器20,其与使用实体建模布尔运算的实体建模器软件26和计算任意形状密闭容器中的液位(如飞机机翼中的燃料液位)的非线性方程求解器28一起被编程。实体建模器26输出密闭容器的边界表示至非线性方程求解器28。密闭容器的实体模型表示沿着其边界的形状,其由在共同边缘处被连接在一起以形成“防水的”封闭空间的一组面组成。非线性求解器28把期望空间方向(图5中的输入A)、动态条件(如横向加速)(图5中的输入B)和在此所含液体的量(即体积)(图5中的输入C)作为输入密闭容器的实体模型边界表示。为了获知密闭容器中的液位,系统求解器28通过使用表示容器内的液位的无限水平半空间(如图1中的项目10)迭代地执行连续的布尔减法运算。所得平切实体模型被用来计算在该液位的液体体积。当平切密闭容器的计算体积匹配在给定的容差内液体(如燃料)的指定体积时,迭代系统求解器28终止。系统求解器的结果是计算出的液体体积的实体模型边界表示。为了适应动态条件,例如,当加速出现时,如以翻转或爬升的方式,水平液体平面被在对应于总加速的角度的平面替代。然后,在动态条件下的液体的最后边界表示被输出至显示装置30,其显示了由水平液体表面平面交叉的密闭容器的实体模型的图像(例如,在图1中所示)。
[0041] 图6是流程图,其示出了由图5中的系统执行的算法。在步骤32中,处理器从内存中检索密闭容器的实体模型边界表示。在步骤34中,处理器从内存中检索额外数据。根据优选实施例,额外数据至少包括以下:密闭容器的空间方向;密闭容器中液体的量(即目标体积);和密闭容器的加速度的大小和方向(即总加速向量)。在步骤36中,处理器确定液体表面平面的可能位置的限制,其中限制是空间方向、目标体积和加速向量(即该加速向量垂直于液体表面平面)的函数。
[0042] 该工具可以执行确定实体的限制的方法,即其边界的最小和最大x、y和z值。这些限制可以被视为两点,该两点限定包含实体的“边界框”的相对角。在只有重力作用在液体上的情况下,即总加速完全与“惯性”z方向对齐,液体限制是实体的z限制。在额外飞机加速引起总加速向量不再与z方向对齐的情况下,容器首先被暂时旋转,直到其总加速向量与惯性z方向对齐。然后,该工具获知旋转实体的限制,从而限定旋转的“边界框”。旋转的实体被丢弃,并且其边界框的限制被旋转回到原来的“惯性”坐标系,其中他们之间所画的射线包含用于与加速向量对齐的液体平面的定位点的范围。
[0043] 更具体地,限制是基于实体模型的边界框计算,其中边界框沿着当前坐标系统的轴线(例如,x-y平面表示“水平”平面、“z”分量在“垂直”方向上的高度–其中“垂直”意思是重力的方向加适应其他加速的各种因子)。虽然围绕实体模型的“边界框”有各种松紧度,但是如何计算实体模型的边界框是众所周知的。“z”分量是本文公开的实施例所使用的限制。
[0044] 所公开的实施例通过计算边界表示的各面的所有下垫面的边界框计算边界表示的边界框,然后通过计算在每个坐标方向上的框的极值点的共同最小值和最大值“结合”框。因此,边界框可以有点松,但为了所执行的计算,也没关系。
[0045] 所以,这个问题降为获知各表面的边界框,因为存在各种已公开的方法。所公开的实施例使用张量积样条曲线来表示表面并使用用于多项式样条曲线的控制多边形的边界(有理样条曲线是更复杂的)。然而,这仅仅是一个示例性实施例,并且有其他公开的方法来计算边界框。在《计算机辅助几何设计手册》,Farin等人(编辑),G.Elsebier B.V.,第13章–细分表面的疑问,M.Sabin(2002)(Handbook of Computer Aided Geometric Design,G.Farin etal.(editor),Elsevier B.V.,Chapter13–Interrogation of Subdivision Surfaces,M.Sabin(2002))中公开了计算边界框的各种方法。
[0046] 在步骤38中,处理器通过线性内插法做了关于液体表面平面位置的第一猜测(即第N猜测,其中N=1),这种第一猜测是位于先前在步骤36中确定的各限制之间。然后,处理器使用正则化实体建模(即布尔)运算来根据第一猜测确定在液体表面平面位置下液体体积(见图6中步骤40)。处理器然后比较在步骤40中确定的液体体积和目标体积(步骤42),并确定它们之间的差是否是可接受的(步骤44)。所应用的试验是,计算出的体积和目标体积之间的差是否在用户指定的容差内(图6中的模46)。如果差是不可接受的,使用数值法(如顿-拉夫申法(Newton-Raphson-like method))来做关于液体表面平面位置的改进猜测(步骤42)。通过使用该改进的猜测,重复步骤42和44。如果改进的猜测是不可接受的(步骤42),然后重复步骤48、40和42直到计算出的体积和目标体积之间的差是可接受的。如果差是可接受的(步骤44),处理器存储表示关于液体表面平面位置和/或容器中计算出的液体体积的实体模型边界表示的最后猜测的图像数据,实体模型边界表示的上表面是上述液体表面平面(步骤50)。处理器也发送图像数据至显示装置(如计算机显示器)进行显示。
[0047] 用于猜测液体表面平面位置的数值法包括获知一个函数零点的连续更好近似值,其等于在用于液体表面平面位置的当前猜测下的液体体积和由液体体积数据表示的液体体积之间的差。这组可能的零点获知方法包括本领域中已知的基于多项式的方法和基于导数的方法。不同的应用可能会获知从任何数量的不同方法中受益。
[0048] 仍然参照图6,由步骤40、42、44和48表示的迭代可以基于不同的,但根本上等效的方法。例如,通过使用正则化的布尔运算符,第一版本的源代码从模拟的机翼中减去一大模块,以消除“空的空间”:cutsolid=solid-cutblock.Translate([0,0,zrange*delta/10.0])
[0049] 其中“-”过载以指在实体Brep(边界表示)对象上的正则化布尔减法运算。第二版本使用“切割(Cut)”指令,其用无限平面切割实体,并仅保留沿平面的正法线的部分实体。通过使用不同的方法,两个版本都实现了相同的目标,并且都被视为标准实体建模运算。
[0050] 第一版本的工作力是函数cutWing(实体,高度),其用在给定z值(即高度)的大模块切割在其给定方向的任意实体,和函数findwl(实体、体积),其使用牛顿拉夫申迭代法在给定密闭容器的实体模型和燃料的体积的情况下找到燃料液位。本质上,其以对液位的猜测开始,然后通过在给定特定液位的情况下计算平切实体模型的体积迭代地细化液位。
[0051] 本发明所公开的实施例应用在所应用的牛顿法之内的实体建模技术来找到燃料液位。然而,牛顿拉夫申法只是解决该这种特定问题的一个可能的方式,即找到高度,以便[0052] Volume(containment_solid-*big_block at z=height)-given_volume≤ε其中-*表示正则化布尔减法运算,ε被设置为小的数字(由于浮点计算的有限的精确性和有限的计算资源),并且big_block是一个矩形框,去其具有平行于地面(概念上)的底面并被定尺寸以便大于由containment_solid表示的密闭容器。无限大的半空间(如图1中所示)也将工作。对于一些实施,ε被设置为0.001至0.0001。选择数量太小导致不稳定的牛顿-拉夫申行为(或长的计算时间)。
[0053] 函数cutWing(实体,高度)将如下作为输入:被表示为密闭容器(燃料箱、瓶、腐化箱)的Brep(“实体”)的实体模型,和表示为实值的高度参数“hgt”。高度值“hgt”表示密闭容器中的液位,这意味着实体和高度值都参照了共同的(和任意的)原点(origin)。我们还假设重力(或外力)的存在,这意味着力的方向将垂直于密闭容器中液体的表面平面。在此实施中,我们也假设液体是“静止的”而不是左右晃动。
[0054] cutWing例程使用高度值来返回表示由密闭容器中的液体所占据的空间的实体模型。从概念上讲,这是通过建立无线平面、平切具有该平面的实体和保持在正的地心引力方向上的部分来进行的。在一个版本中,假设密闭容器明显小于行星的圆周,并且在密闭容器中的液位可以被视为是平面。然而,通过使用以天体的中心为中心的球体(或其他形状的物体)和根据相对于共同原点的容器的相对位置调整半径,这可以很一般地被扩展包含相对于该行星大小的大容器。
[0055] 在cutWing例程中,通过建立大矩形模块的实体模型表示执行该运算,其被定尺寸以便其大于密闭容器,然后定位模块在给定高度。正则化布尔运算被用于从密闭容器中减去模块,以获得包含在容器内的液体的实体模型表示。应当理解的是,在一些情况下,如果液位低于密闭容器,这将不返回什么,或者如果液位高于容器,这将返回整个密闭容器。
[0056] 在布尔运算在水平处失败的情况下,cutWing例程也将轻微的“德尔塔(delta)”摆动实施至高度变量。它以小增量的“zrange”基本上下摆动模块,直到返回成功的计算。zrange被设置在容器的最大高度的1%。通常,布尔运算的失败是由处理与边界表示的面重合的切割表面的各问题引起。布尔运算依赖于计算各表面之间的许多交点,并且当两个表面部分重合时,解决方案的数目变得无穷大(即代替一个或多个曲线,一个曲线得到无穷多的曲线,即表面的一个子集)。所公开的系统(和大多数CAD系统)具有特殊的代码来检测最常见的重合,但是有许多布尔运算失败的情况。当然,还有许多布尔运算可能失败(如错误)的其他原因,并且扰动技巧允许这些错误恢复。这也是大多实体建模系统内部所采用的相当普通的技术。
[0057] findwl(实体,体积)函数使用下列参数来找到燃料液位:hlow,存储高度的当前下界的变量(hlow=zlower);vlow,存储容器体积的当前下界的变量(vlow=0);hhigh,存储高度的当前上界的变量(hhigh=zupper);vhigh,存储容器体积的当前上界的变量(vhigh=total);hmed,hlow和hhigh的平均值[hmed=abs(hhigh-hlow)*.5+zlower];vmed:在hmed的液体体积[vmed=cutWing(solid,hmed).Volume()]。
[0058] 函数Volume()是计算由实体模型各面包围的空间所包含的体积的例程(被定义为实体模型)。体积的边界表示是由在共同边缘处交汇并建立防“泄漏外壳的空间的各面的集合表示。函数Area()是计算由“修整曲线”定义的表面的部分面积的例程,其中修正曲线定义了表面的一个子集。Area()被用来计算容器的过液面积,这表示由液体接触的容器的部分总面积以及液体的“顶”表面的面积(其被用来确定蒸发率等)。
[0059] 上述算法使用燃料箱几何结构的实际CAD定义,而不是几何结构的离散“简笔画”近似法。为了计算液位,算法直接地在原来设计几何结构上使用准确的实体建模运算。实体正则化布尔运算执行几何结构之间的必要交叉,其被分类以确定保留哪些相交表面。
[0060] 正如前面所提到的,用于明确表示实体的许多计划是已知的。例如,表示实体对象的边界的使用是由Requicha在“刚性实体表示:理论、方法和系统”,ACM计算调查,第12卷,第4号,第437-464页(1980年12月)(“Representations for Rigid Solids:Theory,Methods,and Systems”,ACM Computing Suveys,Vol.12,No.4,pp.437-464(December1980))中公开。此外,布尔运算被用在实体建模中,以通过例如立方体、圆柱体和其他边界表示的参数化实体单元的加法和减法限定实体对象。例如,定义实体对象的布尔减法运算的使用是由Requicha和Voelcker在“实体建模中的布尔运算:边界计算和合并算法”,Preceedings of the IEEE,第73卷,第1号,第30-44页(1985年1月)(“Boolean Operations in Solid Modeling:Boundary Evaluation and Merging Algorithms”,Proceedings of the IEEE,Vol.73,No.1,pp.30-44(January1985))。
[0061] 根据另一实施例,模拟系统被设计,以适应具有形成由挡板中的窄节流孔连接的隔室或隔间的内部挡板的密闭容器。液位高度计算(如前)被首次应用到各个隔室(即隔间),以计算初始液体高度。接着,头(其是由在两个换流容器之间的液位差异产生的压力)在每对连接的隔间之间被计算出。然后,此信息被用来计算液体如何在各隔间之间流动,以使液位变得水平。
[0062] 本实施例的实施方式利用从Mathworks市售的 和 软件,结合能够表示实体对象作为边界表示的实体建模软件。 是数值计算环境和编
程语言。 允许矩阵运算、功能和数据的绘图和算法的实施。 是用于
建模、模拟和分析多域动态系统的工具。 是紧密地与 环境结合,并
可以驱动 或从其进行编写。
[0063] 在描述其物理建模工具中,MathWorks已表明SimscapeTM用用于建模系统的各工具扩展 其涵盖机械、电气、液压和其他物理领域作为物理网络。它提供了来自这些领域的基本构建模块来让您建立自定义组件的模型。以 为基础的SimscapeTM语言实施了以文本为基础的物理建模组件、域和库的创作。本文所公开的本发明的实施例利用MathWorks的物理建模工具,但可以利用其他物理建模工具。
[0064] 根据用于模拟通过节流孔连通的燃料箱的一系列隔室或隔间之间流动的本发明实施例,求解器28(见图5)包括多个子系统,其包括用于计算每个隔间中的液位的相应燃料体积子系统和用于计算作为每个隔间中的不同液位的函数的通过每个节流孔的流率的相应连接子系统(其使用标准Mathworks提供的模块)。【这些子系统包括由处理器执行的各组指令。】然而,应当理解的是,本发明不限于互连元件是节流孔这一情况。在实际应用中,有许多其他类型的箱之间可以被模拟的互连件,如带的开口、管、通过的管线、阀门和其他装置。
[0065] 为了说明的目的,现在将描述用于计算在两个至少部分填充的燃料箱中的液位和通过连接那些隔间的节流孔的液体流率的示例性子系统。这些计算可以被延伸到包括具有一个序列的至少三个连通隔间的模拟燃料箱,其中每个隔间至少部分地填充有液体燃料。相同的程序可以在具有任意多个互连元件的任意多个实体对象之间进行。
[0066] 图7是顶级模拟模型图,其表示通过包含连接信息的第三子系统56接合的两个燃料体积子系统52和54(对应于相应由节流孔连接的含液体的隔室或隔间)。每个燃料体积子系统52、54表示相应隔间或隔室中包含的液体燃料,并被接合到表示燃料箱内相同相应隔间或隔室的相应唯一实体对象(通过使用实体建模软件开始)。连接子系统56执行模拟通过节流孔从一个隔间到另一隔间的液体流动的液体流率计算。根据实施方式,连接子系统56只使用标准Mathworks提供的模块。
[0067] 根据所描述的实施方式,每个燃料体积子系统都与表示箱或燃料箱内单个隔间的实体对象相互作用。这些对象应该被载入 工作区作为具有名为“隔间”的一个阵列。每个燃料体积子系统的初始条件可以由模拟运算符通过使用计算机显示器上的弹出式窗口被输入。此弹出式窗口具有两个参数域,其分别被命名为“隔间号”和“初始体积”。如果在阵列中有多个隔间,每个隔间需要被配置有相应液体初始体积。对于被配置的隔间的隔间号被输入名为“隔间号”的域。如果只有一个对象,“隔间号”应该被设置为1。参数“初始体积”设置初始燃料体积用于以[len^3]为单位的模拟,其中“len”是用于定义实体的单位。例如,如果实体以英寸为单位被定义,用in^3设置初始燃料体积。另外,相同单位被用来在输入端口上定义进入隔间的流率“dV[len^3/s]”。
[0068] 仍然参照图7,每个燃料体积子系统52、54接收加速向量数据58,其表示被模拟的密闭容器的加速向量,和旋转向量数据60,其表示被模拟的密闭容器的空间方向(即相对于参考系的旋转)的向量。燃料体积子系统52进一步接收来自连接子系统56的输出端口Out1的数据,而燃料体积子系统54接收来自连接子系统56的输出端口Out2的数据。数据输出Out1是移入或移出隔间1的液体流动dV的速率(以体积/秒为单位),其在通过具有特定直径的圆形节流孔从隔间1和2到另一隔间的液体流动的模拟过程中由连接子系统56计算,而数据输出Out2是移入或移出隔间2的液体流动dV的速率,其在相同模拟过程中由连接子系统56计算。如果隔间1中的液体的初始体积大于隔间2中的液体的初始体积,那么液体将从隔间1流入隔间2;可替代地,如果隔间1中的液体的初始体积小于隔间2中的液体的初始体积,那么液体将从隔间2流入隔间1。在这两种情况下,隔间1和2的流率将是大小相等和方向相反。在图7中所示的具体示例中,隔间1内的初始体积是6000,而隔间2内的初始体积是1000。
[0069] 每个燃料体积子系统输入到 “S-Function”模块。这通过执行自定义嵌入式代码提供到相应实体对象的接口。此S-Function代码包括以标准Mathworks模板执行的名为sFun_tank.m的定义文件。自定义代码的相关位调用在实体对象上运算的函数“findFuelPlane”。sFun_tank.m中的一行是:
[0070] Block.OutputPort(1).Data=findFuelPlane(rot,volume,1,…normal)findFuelPlane是关键运算。输入“rot”是指向具有特定空间方向的实体对象的指针
“volume(体积)”是表示“rot”内液体的当前体积的数值两倍。“normal(法矢)”是表示作用在液体上的总加速向量的数值两倍的三维向量。函数findFuelPlane返回数值两倍的三维向量,其中数值两倍是用于液体表面平面的定位点,即由【point,normal】(【点,法矢】)定义的平面。
[0071] 再次参照图7,使用标准 组件模拟在隔间1和2之间的隔板中通过圆形节流孔的流动。随着液体从一个隔间流到另一隔间,输入至findFuelPlane函数的“体积”被改变。在模拟过程中,由实体建模软件确定的液位被用来确定在隔板的每一侧上的节流孔口上的液体“头”压力。由于不均匀燃料液位的压差驱动通过节流孔流动,至少液位平衡。
[0072] 当模拟系统初始化后,燃料体积子系统52计算隔间1内液体的表面平面的初始位置,作为表示隔间1、隔间1中液体的初始体积和加速和旋转向量的实体模型对象的函数,并且输出该数据至连接子系统56的输入端口In1;并且燃料体积子系统54计算隔间2内液体的表面平面的初始位置,作为表示隔间2、隔间2中液体的初始体积和相同的加速和旋转向量的实体模型对象的函数,并且输出该数据至连接子系统56的输入端口In2。同时,隔间1和2中的初始液位的实体模型边界表示可以显示在显示装置上。
[0073] 图8是两个实体对象及其所含液体体积的静态图像。该图像表示模拟的初始条件。粗体线表示在相应隔间中的液体体积的边界,而非粗体线表示相应隔间的实体壁,其限制相应含液体的内部体积。各隔间之间小的圆形节流孔未示出,其中小的圆形节流孔允许液体从一个隔间通过另一隔间。
[0074] 根据表示隔间1和2、隔间1和2中的初始液位和隔间1和2通过其连通的节流孔的面积的实体模型对象,连接子系统56计算液头,这是由隔间1和2之间的液位差产生的压力。然后,此信息被用来计算液体在隔间之间流动的速率,以使液位变得水平。随着液位差的减小,流率也减小,直到最后当隔间1和2中模拟的液位变得相等时流率等于零,如图9中所示。
[0075] 虽然图8描述了模拟的初始不相等液位在计算机显示器上的显示,和图9描述了模拟的最后相等液位在相同计算机显示器上的显示,但是应当理解的是,随着它们从图8中的液位转变为图9中的液位,该显示装置还优选连续地显示所模拟的液位。
[0076] 响应液位平衡后所产生加速或旋转向量的任何变化,燃料体积子系统52和54将计算分别用于隔间1和2中的表面平面的新位置。响应在端口In1和In2处的这些新输入,连接子系统将再次计算和(在端口Out1和Out2处)输出在这些变化的条件下从一个隔间到另一隔间的初始流率。连接子系统56然后将继续计算流率,直到液位再次达到平衡。
[0077] 上述实施方式使许多主机Fortran程序被替换为旨在无缝集成到 计算环境的独立于平台的工具包。具有不均匀初始燃料液位的两个隔间是由节流孔连接。实体建模软件被用来计算每个隔间中的燃料的相应高度(相对于节流孔的标高),并且处理从一个隔间到另一隔间的流动。图8和9示出了用于747-8外侧机翼油箱的
前两个隔间的模拟。在机翼参考平面坐标系统中,单位为英寸。
[0078] 燃料高度信息是通过传递燃料体积到用于每个隔间的实体对象计算,并被返回作为用于燃料表面平面的三维定位向量(在图7中所示情况下的平面的法线仅是[001])。目前,飞机保持静止,所以第三元素是从该向量中被提取,并用作燃料平面的高度,其中节流孔的z位置被减去,以得到用于计算头压的相对燃料高度。通过表示适当转换的一系列增益模块,即P=rho*g*h,完成至液头的转换。
[0079] 到现在为止,通过调用到实体建模软件或使用常规 信号,一切事情都TM
完成了,这纯粹是数学上的;在头被确定后该信号被转换成Simscape 所使用的“物理信号”。所转换的压力信号用来驱动液压压力源,其中该液压压力源在一端上被连接到大气基准,并在另一端上被连接到一个节流孔,然后,节流孔被连接到第二隔间中的镜像配置。图
10象征性地描述了示例性燃料体积子系统。流率传感器被用来确定通过物理系统所得到的流动,这然后被转换返回到inches^3/s为单位的常规 信号,并被集成以提供体积更新至表示部分填充隔间的实体对象。
[0080] 可以进行模拟,在加燃料后,燃料体积被保留而同时飞机条件发生改变。为了接近起飞滑跑,输入.slice或.cut方法的“normal”是以作为[-accel01]的 定义的总加速向量,其中“accel”是以g’s表示的纵向(x-方向)加速。调用“findFuelPlane”的自定义 函数被用来确定燃料平面的定位点。
[0081] 另外,该模拟可以包括飞机的变化俯仰(上/下)。在这种情况下,相对于重力的燃料箱方向是随时间以及总加速向量的变化而变化。这是通过使用实体对象的“旋转”方法实现; 函数“angle2dcm”(航空航天工具箱)有利于快速生成所需方向余弦矩阵输入。
[0082] 已经成功尝试了用于集成实体模型对象到 内的各种方法。在上述公开的方法中,使用了“Level-2M-File S-Function”模块。其他方法也使用“嵌入式Matlab函数(Embedded Matlab Function)”模块或“Matlab Fcn”模块。所有三个模块随后调用函数“findFuelPlane”,这通过使用实体模型对象相应地定位用于输入燃料体积和动态条件的燃料平面。
[0083] 因为对象的Java性质,所有这些方法中的三个方法基本上做同样的事情,也就是说,他们在常规 发动机中执行findFuelPlane函数。 本身不会消化掉Java,这限制了可用于加快稍后模拟的加速选项的分类。即使在嵌入式 函
数中,其预编译m-代码转换成用于更快执行的C当量,findFuelPlane函数被说明是“非固有的”,这意味着它被切换到在运行的常规 发动机,而不是试图预编译它。
[0084] 图10是方框图,其表示通过使用用于建模、模拟和分析密闭容器的连接隔室或隔间之间的液体流动的 而进行的计算。
[0085] 在图10中标记为“Vol1”的模块62是“Goto”模块,这路由信号到相应“From”模块。From和Goto模块允许传递信号从一个模块到另一模块,而不需实际连接它们。在这种情况下,该信号被简单地路由到数据截留部分,以进行绘制。
[0086] 标记为“常量(Constant)”的模块64是常量模块,在这种情况下被设置为0.0,这提供总加速向量的“Fwd Acc”或前向加速分量到燃料箱模型。
[0087] 标记为“Level-2M-file S-Function”的模块66正是如此。该S-函数提供接口到实体建模软件,并且是先前描述的模块的旧版本。
[0088] 在图10中标记为“h1”的模块68是“到工作区(To Workspace)”模块;在模拟结束后,它存储程序存储器中的数据在 工作区进行使用。
[0089] 直接到模块66右侧的黑棒70是多路分配器(Demux)模块。多路分配器模块70提取输入信号的分量并输出分量作为单独的信号。输出信号是从顶部输出端口到底部输出端口进行排序。来自S-函数的输出“燃料平面”是三维的阵列(表示燃料平面的x,y,z定位点),并且在图10中所描述的特定模拟中,我们只对第三元素感兴趣,即液体的z-值或高度。因此,顶部两个信号退出“终结器(Terminator)”模块72中的多路分配器模块端,而第三元素前进到其他运算。“终结器”模块终止未连接的输出端口。
[0090] 具有内部标记“h1”的标记为“Goto”的模块74是路由到数据截留和绘制部分的Goto模块,其未示出。
[0091] 标记为“节流孔高度基准”的模块76是常量模块,在这种情况下为通过其计算液体流率的节流孔提供z-值(高度)。通过使用圆形“求和(Sum)”模块,从燃料平面z-值减去来自模块76的输出,从而产生表示在该节流孔上方的液体的高度(也被称为“头高度”)的输出。在这种情况下,头高度信号表示以英寸为单位的高度。
[0092] 然后,通过使用“增益(Gain)”模块,头高度信号通过一系列转换乘法器运行,由常量值(增益)乘以输入。标记为“in2m”的模块80是从英寸到米的单位转换;标记为“rho”的模块82是用于液体密度的乘法器;和标记为“g”的模块84是由于以m/s^2为单位的用于由于重力的加速度的乘法器。来自这些乘法器的输出是以帕斯卡为单位的“头压力”。
[0093] 标记为“头1(HEAD1)”的模块86是路由头压力到数据截留和绘制部分的Goto模块。
[0094] 具有内部标记“S PS”的模块88是“Simulink到物理信号”转换模块。它转换常规信号(其单位是隐含的)到SimscapeTM物理信号(其单位是明确的)。在这种情况下,物理信号是用帕斯卡表示。 模块表示基本的数学运算。SimscapeTM技术能够根据物理网络上的方法创建在设计下的系统的网络表示。根据此方法,系统可以表示为通过交换通过其端口的能量彼此交互的功能元素。
[0095] 仍然参照图10,S-PS模块88的压力信号输出进入“液压压力源”模块90。液压压力源模块表示液压能量的理想来源,其不管由系统消耗的流率足够强大来保持在其端口的规定压力。模块连接件T和P分别对应液压进口端口和出口端口,并且连接件S表示控制信号端口。液压压力源90提供端口P和T之间的理想压差,其与输入信号S直接成正比。模块90执行了在流体网络中的节流孔上燃料的计算头压。
[0096] 压力源90的端口T被定义为压力源的“下”侧。它被连接到标记为“出口区域[in^2]”的模块92。这是一个节流孔模块,其建模具有恒定横截面面积的液压节流孔的压力和流率效果。出口区域模块92被连接到“输出端口”94,其连接到另一图,该另一图是这一个的镜像图像,并计算在隔间2而不是隔间1中的头压。
[0097] 标记为“理想液压流率传感器”的模块96模拟理想的流量计,即一种将通过液压管线的体积流率转换成与该流率成正比的控制信号的装置。该传感器是理想的,因为它不考虑惯性、摩擦力、延迟、压力损失等。随着物理网络从端口A通过端口B,模块96测量其流率。端口被连接到一侧上的液压基准97和另一侧上的头压源90。在通过节流孔之前,这个序列可以被视为在液体上方的大气压力(液压基准)下开始,然后加入头压(节流孔上方液体的重量)。头压越大,通过节流孔的诱导流就越大。连接件Q是输出流率值的物理信号端口。
[0098] 标记为“in^3/s”的模块98是“物理信号到Simulink”的转换器模块。在这种情况下,输出 信号(即其单位是隐含的)表示以立方英寸每秒为单位的流率。此流率进入“离散-时间积分器”模块100,其集成流率到隔间1内,以跟踪其内液体的总体积。模块102表示输入隔间1中燃料的初始体积到模块100内。
[0099] 在回路中的最后模块104是“单位延迟”,该功能是在其输入燃料箱计算器S-函数66的体积输入之前延迟来自积分器100的输出一个时间步。这打破了否则成为代数回路的回路,其中该模块的输出被用于以相同时间步定义其输入。
[0100] 总之,该回路计算节流孔上方的液体的头压。然后,该压力确定通过该节流孔的流率,并且流率增加或减去来自容器的液体体积,这进而影响容器中液体的高度并因此影响头压。在实践中,在节流孔的任一侧上的两个隔室之间的液体高度的任何差异将诱导通过该节流孔的流动,直到高度均衡。
[0101] 正如先前所公开的,上述计算可以被扩展以包括具有一个序列的至少三个连通隔间的模拟燃料箱,每个隔间至少部分地被填充有液体燃料。图11示出了表示在747机翼油箱106中的燃料108的图像。该燃料箱具有通过使用本文所公开的技术可以被模拟的多个连通隔间。
[0102] 使用Jython和 在实体建模软件中实施概念验证。Jython是以Java编写的Python编程语言的实施方式。本发明的随后实施例使用 通过其Java API
驱动实体建模软件来计算液位。
[0103] 实体建模软件提供表示实体模型作为边界表示和对实体模型上进行正则化布尔运算,如减法、加法和相交的能力,以及通过实施散度定理计算实体模型的精确积分性质的能力。具体地,密闭容器的实体模型表示可以被用来方便容器性质的导出。
[0104] 例如,液体和密闭容器的实体模型表示可以被用来导出在密闭容器内的暴露液体区域,这是简单的液体实体模型表示的顶面区域。这个性质对估算蒸发是非常重要的。通过使用安托尼方程和理想气体定律计算燃料的蒸发:安托尼方程是蒸气压方程,并介绍了纯组分的蒸气压和温度之间的关系:
[0105]
[0106] 其中,p是蒸气压,T是温度,以及A、B和C是特定组分常量。该方程假定与温度无关的蒸发热。溶解在液体中的大气气体的蒸发(更技术地,“析出”)是通过使用奥斯特瓦尔德溶解度系数和理想气体定律进行估算的。当分析燃料箱可燃性时必须考虑这两种效应,也就是说,燃料箱中的蒸气何时是处在点燃险?必需进行可燃性分析,以证明燃料箱可燃性还原系统(FRS)的有效性。联邦航空条例FAR25.981说明了FRS的任务。
[0107] 通过使用接触容器各面的液体的实体模型表示的所有面的面积,液体和密闭容器的实体模型表示也可以用于推导过液面积(该面积是被液体接触的)。容器的过液面积主要用于传热计算,以预测燃料箱温度。
[0108] 许多商用飞机具有一组“浸量尺”指示器,其提供了电子燃油量指示系统(FQIS)的备份。在燃油量不可以由FQIS确定这种情况下,飞机操作员可以人工读取来自这些“浸量尺”指示器的燃料箱的各部分中的燃料高度信息,然后使用具有一组预先存储表格的这些信息(由飞机制造商提供)来确定燃料箱中的燃油量。通过交叉浸量尺的实体模型表示和液体的实体模型表示(这被用来校准浸量尺,以指示液体体积),液体和密闭容器的实体模型表示可以用于推导浸量尺水平(浸量尺被浸没在液体中的量)。该校准过程是微调和核实表格以确保基于“浸量尺”读数的精确预测的体积的过程。根据本文公开的本发明,计算机模型可以用于生成该表格。
[0109] 另外,液体和密闭容器的实体模型表示可以用于推导所截留的液体的量。在设计飞机燃料箱和系统中,减少其中液体可以被截留(即在正常操作期间未被排出)的位置到最小是必要的。被截留的燃料位置不仅是不可以由发动机使用的静负载,而且他们提供水聚集的可能性(成为潜在的腐蚀问题),并在某些情况下冻结成。固态冰可以出现可能会阻止燃料到达发动机的阻塞危险。
[0110] 参照图7-10,如上文所公开的,当容器的方向改变时,液体和密闭容器的实体模型表示可以用于导出从一个隔室转移到另一隔室的液体的量。当大体积的燃料被迅速沉积到燃料箱的一部分内并必须自由地流动到其他部分时,转移速率必须被示出,以足够快地防止在正常操作过程中燃料箱一侧上的燃料的累积,特别是在加燃料的过程中。“不均衡”的过多燃料通过燃料箱挡板可以产生不希望的结构应力。另一方面,挡板必须足够限制的,以防止在高加速碰撞情况下所有燃料同时碰撞进入主要结构。
[0111] 液体和密闭容器的实体模型表示可以用于导出在密闭容器中的液体的重量分布。在飞机上,重心管理是飞机性能、效率和处理质量的重要组成部分。完整的燃料箱表示整个交通工具重量的相当大比例,并且该重量分布的小变化可以对上述因素具有重要影响。确保燃料重心在所有操作条件下保持在安全范围内,并理想地确保其被优化,以便飞机可以实现最高效率,这是重要的。
[0112] 用于计算几何上复杂的实体的体积、转动惯量和其他性质的算法是众所周知的。例如,用于计算实体对象的体积和其他积分性质的算法是由Lee和Requicha分别在罗切斯特大学在从生产自动化项目的技术备忘录35a(1981年3月)(Technical Memo35a from the Production Automation Project at The University of Rohester(March1981))中;在“用于计算实体体积和其他积分性质的算法I.已知方法和开放问题”,ACM的交流,第25卷,第9号,635-641页(1982年9月)(“Algorithms for Computing the Volume and Other Integral Properties of Solids.I.Known Methods and Open Issues”,Communications of the ACM,Vol.25,No.9,pp.635-641(September1982))中;和在“用于计算实体体积和其他积分性质的算法II.基于表示转换和细胞近似的算法族”,ACM的交流,第25卷,第9号,
642-650页(1982年9月)(“Algorithms for Computing the Volume and Other Integral Properties of Solids.II.A Family of Algorithms Based on Representation Conversion and Cellular Approximation”,Communications of the ACM,Vol.25,No.9,pp.635-641(September1982))中公开。计算具有曲面的实体对象的积分性质是比较困难的,但是也得到了解决。例如,参见计算机辅助几何设计的手册的603-622页,G.Farin等人(编辑),Elsevier B.V.,第24章–几何处理,Thomas A.Grandine(2002)(pages603-622of Handbook of Computer Aided Geometric Design,G.Farin et al.(editors),Elsevier B.V.,Chapter24–Geometry Processing,Thomas A.Grandine(2002))。
[0113] 本发明能够应用于需要在复杂形状的密闭容器和改变方向或受到动态力的容器中的液位的精确计算的任何情况。这包括国内外航空和航天、汽车和卡车船舶和船只(如油轮)和与地质构造(如水库和油田)中相互关联的液位和体积量相关的任何可能。
[0114] 节省将通过确定飞机机翼中的液位的增加的精确性得到。纠正计算出的值和在物理校准过程中检测到的实际值之间的任何差异都比当在设计中早期获知它们多花费若干个数量级的成本。
[0115] 对于每目前将那些实体变成高度格式化所花费的人工,实体模型(如从CATIA进口)的直接使用将每模型节省数周人工,大大减少点数据阵列以供给当前工具。
[0116] 改进的架构(Jython/Java API和实体建模软件)将大大地提高分析计算过程的一体化。目前,大约二十多个应用之间需要大量的易错和费时的手动干预。
[0117] 当需要模拟液体密封行为时,即当物理系统不可用时,其包括分析软件、系统测试设备和飞行模拟器,所公开的实施例提供明显的优点。例如,所公开的应用(:1)改进分析工具的精确性和减少文件(如新的飞机程序上)测试和和测试后校准的需要(;2)产生共同的企业范围内的模块来计算液位,以方便企业单位之间的沟通结果(例如,这个工具可以用于更精确的负载计算);(3)可以应用于机翼体积计算之外;(4)消除花费在数据传输上的时间,并减少由于数据传输而造成的错误;和(5)减少遗留代码的维护工作。
[0118] 所公开的实施例也可以用于减少在燃料表的校准中的循环次数,并提高不可用燃料的估算。对这些分析精确性的更大信心将会减少对测试的依赖;通过减少认证数据的测试后校准缩短开发时间;和降低潜在的重新设计风险。在飞机设计过程中的分析结果的缩短的回检将更快获知设计问题,并能更有效地探索替代设计。
[0119] 在附图和文本中,一方面,公开了一种用于计算在密闭容器22中的液体表面平面位置的方法,其包括:a)存储第一组数据,其包括所述密闭容器22的实体模型表示26;b)存储第二组数据,其表示所述密闭容器22的空间方向;c)存储第三组数据,其表示所述密闭容器22的加速度大小和方向;d)存储液体体积数据,其表示在所述密闭容器22中的液体体积12、14、16;e)导出第一组图像数据,其表示在所述密闭容器22中的所述液体的表面平面,所述第一组图像数据是至少所述第一至第三组数据和所述液体体积数据的函数;和f)显示与表示具有所述空间方向的所述密闭容器22的第二组图像数据有交叉关系的所述第一组图像数据。
[0120] 在一种变型中,该方法包括,其中所述导出步骤包括:i)选择用于所述液体表面平面位置的当前猜测;ii)通过使用正则化实体建模运算,确定低于对液体表面平面位置的当前猜测的液体体积12、14、16;iii)比较低于对液体表面平面位置的当前猜测的液体体积12、14、16和由所述液体体积数据表示的液体体积12、14、16;iv)如果低于对液体表面平面位置的当前猜测的液体体积12、14、16不能充分地接近由所述液体体积数据表示的液体体积12、14、16,使用数值法来选择用于液体表面平面位置的不同当前猜测;和v)重复步骤ii)至步骤iv,直到低于对液体表面平面位置的当前猜测的液体体积12、14、16充分接近由所述液体体积数据表示的液体体积12、14、16。
[0121] 在另一变型中,该方法包括,其中所述数值法包括获知一个函数零点的连续更好近似值,该函数等于低于对液体表面平面位置的当前猜测的液体体积12、14、16和由所述液体体积数据表示的液体体积12、14、16之间的差。在又另一变型中,该方法进一步包括:存储第四组数据,其表示连接到所述密闭容器22的端口的面积和标高;和计算液体通过所述端口流入或流出所述密闭容器22的速率,所述计算出的流率是所述第一至第四组数据和所述液体体积数据的函数,其中所述第一组图像数据也是所述第四组数据的函数。在又另一变型中,导出从下列组中选择的容器22性质:暴露的液体面积;所述密闭容器22的过液面积;和在所述密闭容器22中液体的重量分布。在一个实例中,该方法进一步包括交叉浸量尺的实体模型表示26和在所述密闭容器22中的所述液体的实体模型表示26。
[0122] 一方面,公开了一种用于模拟包括经由互连接件连通的第一和第二隔室4、6、8的密闭容器22中液体的行为的方法,其包括:a)存储第一组数据,其包括所述第一隔室4、6、8的实体模型表示26;b)存储第二组数据,其包括所述第二隔室4、6、8的实体模型表示26;c)存储第三组数据,其表示所述密闭容器22的空间方向;d)存储第四组数据,其表示所述第一和第二隔室4、6、8之间所述互连接件的面积和标高;e)存储第一液体体积数据,其表示在所述第一隔室4、6、8中液体的初始体积12、14、16;f)存储第二液体体积数据,其表示在所述第二隔室4、6、8中液体的初始体积12、14、16;g)导出第一组图像数据,其表示至少在所述第一隔室4、6、8中液体的初始表面平面,所述第一组图像数据是至少所述第一和第三组数据和所述第一液体体积数据的函数;h)导出第二组图像数据,其表示至少在所述第二隔室4、6、8中液体的初始表面平面,所述第二组图像数据是至少所述第二和第三组数据和所述第二液体体积数据的函数;i)在步骤g)和步骤h)后,计算由于在所述第一和第二隔室4、6、8中液位12、14、16的不同而造成的压力变化;j)对于步骤i)中计算出的每个变化,计算从所述第一和第二隔室4、6、8中的一个到另一个的液体流动速率,所述计算出的流率是至少相应压力变化和所述第四组数据的函数;k)在步骤i)和步骤j)后,导出第三组图像数据,其表示在所述第一隔室4、6、8中稍后的液位10;l)在步骤i)和步骤j)后,导出第四组图像数据,其表示在所述第二隔室4、6、8中稍后的液位10;和m)在步骤k)和步骤l)后,显示所述第三和第四组图像数据,其与表示具有所述空间方向的所述密闭容器22的所述第一和第二隔室4、6、8的第五组图像数据有交叉关系。
[0123] 在一种变型中,该方法进一步包括在步骤g)和h)后进行的步骤,该步骤显示与所述第五组图像数据是交叉关系的第一和第二组图像数据。在另一变型中,该方法进一步包括存储表示所述密闭容器22的加速度大小和方向的第五组数据,其中所述第一和第二组图像数据也是所述第五组数据的函数。在又另一变型中,该方法进一步包括在步骤i)过程中进行的步骤,该步骤显示表示改变在所述第一和第二隔室4、6、8中液位的图像数据。在又另一变型中,该方法包括,其中步骤g)包括:i)选择用于在所述第一隔室4、6、8的所述液体表面平面位置的当前猜测;ii)通过使用正则化实体建模运算,确定在用于所述第一隔室4、6、8中低于液体表面平面位置的当前猜测的液体体积;iii)比较在用于所述第一隔室4、6、8中低于液体表面平面位置的当前猜测的液体体积和由所述第一液体体积数据表示的液体体积12、14、16;iv)如果低于对液体表面平面位置的当前猜测的液体体积不能充分接近由所述第一液体体积数据表示的液体体积12、14、16,使用数值法来选择用于液体表面平面位置的不同当前猜测;和v)重复步骤ii)至步骤iv),直到低于对液体表面平面位置的当前猜测的液体体积充分地接近由所述第一液体体积数据表示的液体体积12、14、16。
[0124] 在一个实例中,该方法包括,其中所述数值法包括获知一个函数零点的连续更好近似值,该函数等于低于对液体表面平面位置的当前猜测的液体体积12、14、16和由所述液体体积数据表示的液体体积12、14、16之间的差。在另一实例中,该方法进一步包括导出从下列组中选择的容器性质:在所述第一和第二隔室4、6、8中暴露的液体面积;所述第一和第二隔室4、6、8的过液面积;在所述密闭容器22中所述液体的重量分布;由所述第一和第二隔室4、6、8截留的液体的量;和当所述密闭容器22的方向改变时,从所述第一和第二隔室4、6、8中的一个隔室传输到另一隔室的液体的量。
[0125] 一方面,公开了一种用于计算密闭容器22中的液体表面平面位置的系统,其包括:处理器20,其被编程导出表示所述密闭容器22中所述液体的表面平面的第一组图像数据,所述第一组图像数据是至少包括所述密闭容器22的实体模型表示26的第一组数据、表示所述密闭容器22的空间方向的第二组数据、表示所述密闭容器22的加速度大小和方向的第三组数据和表示所述密闭容器22中液体体积12、14、16的液体体积数据的函数;和显示装置
30,其显示与表示具有所述空间方向的所述密闭容器22的第二组图像数据是交叉关系的所述第一组图像数据。
[0126] 在一种变型中,该系统包括其中所述导出运算包括:i)选择用于所述液体表面平面的位置的当前猜测;ii)通过使用正则化实体建模运算,确定低于对液体表面平面位置的当前猜测的液体体积12、14、16;iii)比较低于对液体表面平面位置的当前猜测的液体体积12、14、16和由所述液体体积数据表示的液体体积12、14、16;iv)如果低于对液体表面平面位置的当前猜测的液体体积不充分接近由所述液体体积数据表示的液体体积12、14、16,使用数值法来选择用于液体表面平面位置的不同当前猜测;和v)重复步骤ii)至步骤iv),直到低于对液体表面平面位置的当前猜测的液体体积12、14、16充分地接近由所述液体体积数据表示的液体体积12、14、16。
[0127] 在另一变型中,该系统包括数值法,其中所述数值法包括获知一个函数零点的连续更好近似值,该函数等于低于对液体表面平面位置的当前猜测的液体体积12、14、16和由所述液体体积数据表示的液体体积12、14、16之间的差。在又另一变型中,如权利要求14中所述的系统,其中所述处理器20被进一步编程计算液体经由端口流入或流出所述密闭容器22的速率,所述流率是所述第一至第三组数据、所述液体体积数据和表示所述端口的面积和标高的第四组数据的函数,其中所述第一组图像数据也是所述第四组数据的函数。
[0128] 在又另一变型中,该系统包括其中所述处理器20被进一步编程导出从下列组中选择的容器性质:暴露的液体面积;所述密闭容器22的过液面积;和在所述密闭容器22中的液体的重量分布。在一个实例中,该系统包括其中所述处理器20被进一步编程交叉浸量尺的实体模型表示26和所述密闭容器22中的所述液体的实体模型表示26。
[0129] 一方面,公开了一种用于模拟包括经由互连连通的第一和第二隔室4、6、8的密闭容器22中的液体行为的系统,其包括:处理器20,其被编程执行下列运算:a)导出第一组图像数据,其表示至少在所述第一隔室4、6、8中液体的初始表面平面,所述第一组图像数据至少是包括所述第一隔室4、6、8的实体模型表示26的第一组数据、表示所述密闭容器22的空间方向的第二组数据和表示在所述第一隔室4、6、8中液体的初始体积12、14、16的第一液体体积数据的函数;b)导出表示至少在所述第二隔室4、6、8中液体的初始表面平面的第二组图像数据,所述第二组图像数据至少是包括所述第二隔室4、6、8的实体模型表示26的第三组数据、表示所述密闭容器22的空间方向的所述第二组数据和表示在所述第二隔室4、6、8中液体的初始体积12、14、16的第二液体体积数据的函数;c)计算由于在所述第一和第二隔室4、6、8中液位的差异而造成的压力变化;d)对于每个计算出的压力变化,计算液体从所述第一和第二隔室4、6、8中的一个隔室流动到另一隔室的速率,所述计算出的流率是至少相应压力变化和所述第四组数据的函数;e)导出第三组图像数据,其表示在所述第一隔室4、6、8中稍后的液位10;和f)导出第四组图像数据,其表示在所述第二隔室4、6、8中稍后的液位10;和显示装置30,其显示与表示具有所述空间方向的所述密闭容器22的所述第一和第二隔室4、6、8的第五组图像数据有交叉关系的所述第三和第四组图像数据。在一种变型中,该系统包括其中所述第三和第四组图像数据是至少表示所述密闭容器22的加速度大小和方向的第五组数据的函数。
[0130] 虽然本发明已经参照各种实施例进行说明,但是在本领域的那些技术人员应当理解的是,在不背离本发明范围的情况下可以做各种改变并且等同物可以由其元素替代。此外,在不背离其实质范围的情况下可以做许多修改来适应特定情况到本发明的教导。因此,其目的是,本发明并不限定于作为最佳模式所公开的具体实施例,其被设想用于实施本发明。
[0131] 在下文中所阐述的方法权利要求不应该被解释为要求所述步骤按所述顺序被执行。特别地,没有这样的推论应该从任何按字母顺序排列的步骤中得出。
QQ群二维码
意见反馈