一种液体火箭发动机通用化仿真方法

文档序号:6382347阅读:411来源:国知局
专利名称:一种液体火箭发动机通用化仿真方法
技术领域
本发明主要用于液体火箭发动机性能仿真技术领城。
背景技术
液体火箭发动机仿真主要是用来进行发动机工作过程仿真,预测发动机性能,为发动机的设计和优化提供理论依据。现在为了提高研制液体火箭发动机部件和系统仿真的工作效率,降低研制工作的难度,将研究人员从繁杂的计算机编程和代码调试中解放出来,开发出许多通用性好的仿真软件。国内目前在工程应用较多的模块化仿真是由国防科技大学刘昆开发的发动机瞬变过程模块化建模与仿真软件(LRETMMSS),该软件采用C++语言编写而成,拥有可视化界 面,该软件充分考虑到液体火箭发动机起动、关机过程中各种复杂动态变化过程模型组合的需要,同时分割的模块应具有简单性和连接组装的灵活方便性,采用管道一体积模块划分方法将液体火箭发动机系统划分为三大类共计21种模块。但是,LRETMMSS软件由于缺少模型动态生成部分,因此该软件在针对不同类型液体火箭发动机进行仿真时需要重新改进其模型库,虽然实现了模型的封装,但是通用性方面有待改善。北京航空航天大学的张黎辉依据此思想开发出了通用程度比较高的仿真软件(RoD)。在此软件中,为了解决仿真的通用性问题,他开发出代码生成工具。代码生成指的是从模块中的数学模型,即代码文本,经过附加算法,词法分析和语法检查,到生成令牌列表这一过程。但其求解器极为复杂,其工作量不亚于另行开发一个编译环境,令牌分析能力有限。

发明内容
本发明的目的是提出一种液体火箭发动机通用化仿真方法,具有良好通用性和可行性,能够给用户提供更加灵活的、通用的、易操作的服务,比如自由添加元件,定义元件的接口,物性参数,乃至数学模型等。该液体火箭发动机通用化仿真方法,包括以下步骤第一步构建部件模型;将发动机仿真计算的部件模型分为模型类和模型实例,首先通过可视化界面设置模型类的图片、名称、描述;设置模型类接口参数、物性参数、全局参数和仿真程序,构建不同部件的模型即构成模型类库;其中,模型类有多个数学模型,数学模型使用物性参数和接口参数进行仿真计算,从接口参数读取数据或向接口参数写入数据;第二步搭建系统仿真模型;将第一步中建立的模型类添加到仿真系统中,实现模型类的实例化,生成模型实例;确定好待仿真系统里的各个模型实例后,再根据系统中各部件之间的连接关系确定各模型实例之间的连接关系,将各模型实例的接口按实际系统的结构连接起来,最后设置仿真计算相关的参数;第三步将模型文本生成可执行代码;根据搭建好的系统仿真模型,从模型实例中读取数学模型、接口参数、物性参数,通过分析处理生成中间代码文件;然后,调用VDL编译器对中间代码文件进行编译、链接,生成可运行的代码,存储于动态链接库(DLL)文件中;第四步系统仿真计算;首先,载入第三步中由模型文本生成的存有可执行代码的DLL文件,再进行模型中相应算法逻辑的仿真计算,并在计算开始时从数据交换区读取数据传递给可运行的代码,在计算结束后将仿真结果存入数据交换区。如此循环,直到仿真计算结束。
其中,在仿真计算开始时,数据处理单元负责将模型实例中各参数字符串形式的数据转换为数值型数据,并用这些数值型数据对数据交换区进行初始化;仿真计算的过程中,将计算结果存储到数据缓冲文件中,以方便图形显示单元的使用;仿真计算结束后,将数值型数据转换为字符串形式的数据,方便数据的显示、查看。其中,仿真计算结束后,图形显示单元从数据缓冲文件中读取计算结果数据,对其进行分析,并按照用户的要求将计算结果以曲线的形式显示出来。本发明的有益效果本发明的仿真模型构建方式采用了 VDL文本编辑,可以实现模型的可视化编辑,其可执行代码由VDL编译器动态生成,保证仿真软件通用性、允许用户添加模型类的同时,借助于第三方编译器生成的代码运行效率更高,稳定性和健壮性更好。同时,本发明数据处理模块采用了数据池技术,加快了仿真模型的运行速度。


图I为本发明的液体火箭发动机通用化仿真方法流程示意图;图2本发明模型类的结构示意图;图3为本发明的液体火箭发动机通用化仿真软件结构示意图。
具体实施例方式本发明是一种液体火箭发动机通用化仿真方法,实现该方法的软件结构示意图见图3,由模型构建单元、系统搭建单元、代码生成单元、计算单元、数据处理单元、图形显示单元六部分组成,各个部分相互独立而又紧密联系,共同构成了一个不可分割的整体。其中,模型构建单元和代码生成单元是本软件的核心部分,也是软件通用性赖以实现的基础。所述模型构建单元的具体实施步骤是首先,设计模型类的身份识别码(ID),此ID在模型类创建时就被确定下来,并且是唯一的。用户无论如何编辑模型类,都不会改变它的ID,除非将模型类从模型类库中删除。在用户构建好模型类,将其添加到模型类库之前,软件会检查用户输入的模型类的计算程序部分是否存在逻辑和语法的错误,以保证仿真计算时的正确性。其次,用户可以通过可视化界面自定义模型类的图片(图片只要满足*. Bmp形式要求,可随意添加)、名称、描述;再其次,通过点击图片的不同位置设置部件模型的接口,接口的名称默认为“PortO 1”,“Port02”,……,定义每个接口的接口参数、物性参数、全局参数,最后通过可视化VDL文本界面添加发动机部件的数学模型。其中,图片是图形化界面的一个重要组成部分,此图片会在搭建系统的时候用来表示这种模型的实例。其中,接口变量是模型实例之间进行数据通信的通道。物性参数是模型类自身的参数,也可称为局部参数。它代表的是模型本身的一些特征,比如管路的长度,管路的直径等。全局参数是多个模型类所共用的一些参数,它是模型实例之间进行数据通信的另一种通道示。这些参数由于为多个模型类共用,所以无法以接口参数的形式实现传递,采用全局参数的形式比较快捷、直观。比如,贮箱、液体管路、离心泵中都需要使用推进剂密度,这时,就可以将推进剂密度设置为全局参数。全局参数并不是所有模型类都可以使用的,只有那些处于同一类库中的模型类才能使用,换言之,全局参数是和模型类库紧密联系的,一个模型类库中的模型类只能使用所在类库的全局参数,而不能使用其它类库的全局参数。模型添加单元实际上也可用于编辑模型类,当用户需要修改某个模型类的某些参数时,也是通过此界面进行的。所述系统搭建单元的具体实施步骤是确定仿真系统的每一个模型实例,并确定相互间的连接关系,再设置好仿真计算相关的参数(计算步长,起止时刻等),就搭建好了一个完整的仿真系统。其中,模型实例化指的是将模型类添加到仿真系统中,通过模型实例右键菜单调出参数设置对话框,并根据实际情况设置其各项参数;接口、全局各项参数,都可以在此对话框中进行设置。设置好各项参数后,就确定了一个模型实例。其中,确定相互间的连接关系,是在确定好待仿真系统里的各个模型实例以后,根据系统中各部件之间的 连接关系确定各模型实例之间的连接关系,将各模型实例的接口按实际系统的结构连接起来。所述代码生成单元的具体实施步骤是将用户以文本形式存储的仿真程序转换成可以被计算机能够识别的形式,根据搭建好的系统,从模型实例中读取数学模型、接口参数、物性参数,通过分析处理,生成中间代码文件,对程序中所有的变量进行相应的变换,调用第三方编译器(即通过VDL编译器),对中间代码文件进行编译、链接,生成可运行的代码,存储于一个动态链接库(DLL)文件中。所述计算单元的具体实施步骤是计算单元对仿真系统进行仿真时,需要调用可运行的代码。它先将代码生成单元生成的DLL文件载入,再按照和代码生成单元一样的规则调用相应模型实例的仿真程序,进行相应的仿真计算,并在计算开始时从数据交换区读取数据传递给可运行的代码,在计算结束后将仿真结果存入数据交换区。如此循环,直到仿
真计算结束。所述数据处理单元的具体实施步骤是在仿真计算开始时,数据处理单元负责将模型实例中各参数字符串形式的数据转换为数值型数据,并用这些数值型数据对数据交换区进行初始化;仿真计算的过程中,将计算结果存储到数据缓冲文件中,以方便图形显示单元的使用;仿真计算结束后,可以将数值型数据转换为字符串形式的数据,方便数据的显
示、查看等。所述图形显示单元的具体实施步骤是仿真计算结束后,图形显示单元可以从数据缓冲文件中读取计算结果数据,对其进行分析,并按照用户的要求将计算结果以曲线的形式显不出来。
权利要求
1.一种液体火箭发动机通用化仿真方法,其特征在于,包括以下步骤 第一步构建部件模型;将发动机仿真计算的部件模型分为模型类和模型实例,首先通过可视化界面设置模型类的图片、名称、描述;设置模型类接口参数、物性参数、全局参数和仿真程序,构建不同部件的模型即构成模型类库;其中,模型类有多个数学模型,数学模型使用物性参数和接口参数进行仿真计算,从接口参数读取数据或向接口参数写入数据;第二步搭建系统仿真模型;将第一步中建立的模型类添加到仿真系统中,实现模型类的实例化,生成模型实例;确定好待仿真系统里的各个模型实例后,再根据系统中各部件之间的连接关系确定各模型实例之间的连接关系,将各模型实例的接口按实际系统的结构连接起来,最后设置仿真计算相关的参数; 第三步将模型文本生成可执行代码;根据搭建好的系统仿真模型,从模型实例中读取数学模型、接口参数、物性参数,通过分析处理生成中间代码文件;然后,调用VDL编译器对中间代码文件进行编译、链接,生成可运行的代码,存储于动态链接库(DLL)文件中;第四步系统仿真计算;首先,载入第三步中由模型文本生成的存有可执行代码的DLL文件,再进行模型中相应算法逻辑的仿真计算,并在计算开始时从数据交换区读取数据传递给可运行的代码,在计算结束后将仿真结果存入数据交换区;如此循环,直到仿真计算结束。
2.如权利要求I所述的一种液体火箭发动机通用化仿真方法,其特征在于,其中,在仿真计算开始时,数据处理单元负责将模型实例中各参数字符串形式的数据转换为数值型数据,并用这些数值型数据对数据交换区进行初始化;仿真计算的过程中,将计算结果存储到数据缓冲文件中,以方便图形显示单元的使用;仿真计算结束后,将数值型数据转换为字符串形式的数据,方便数据的显示、查看。
3.如权利要求2所述的一种液体火箭发动机通用化仿真方法,其特征在于,其中,仿真计算结束后,图形显示单元从数据缓冲文件中读取计算结果数据,对其进行分析,并按照用户的要求将计算结果以曲线的形式显示出来。
全文摘要
本发明提出一种液体火箭发动机通用化仿真方法,能够给用户提供更加灵活的、通用的、易操作的服务。包括以下步骤第一步构建部件模型;将发动机仿真计算的部件模型分为模型类和模型实例;第二步搭建系统仿真模型;将第一步中建立的模型类添加到仿真系统中,实现模型类的实例化,生成模型实例;第三步将模型文本生成可执行代码;第四步系统仿真计算;首先,载入第三步中由模型文本生成的存有可执行代码的DLL文件,再进行模型中相应算法逻辑的仿真计算,并在计算开始时从数据交换区读取数据传递给可运行的代码,在计算结束后将仿真结果存入数据交换区。如此循环,直到仿真计算结束。
文档编号G06F17/50GK102968533SQ20121048913
公开日2013年3月13日 申请日期2012年11月26日 优先权日2012年11月26日
发明者段娜, 朱子环, 周磊, 耿卫国, 管理, 陈锋, 张伟, 周文怡, 尚宇, 宋绪勇, 方俊雅, 李琪琪, 冯斌, 李山峰, 杨懿 申请人:北京航天试验技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1