CN102968533B - 一种液体火箭发动机通用化仿真方法 - Google Patents
一种液体火箭发动机通用化仿真方法 Download PDFInfo
- Publication number
- CN102968533B CN102968533B CN201210489133.0A CN201210489133A CN102968533B CN 102968533 B CN102968533 B CN 102968533B CN 201210489133 A CN201210489133 A CN 201210489133A CN 102968533 B CN102968533 B CN 102968533B
- Authority
- CN
- China
- Prior art keywords
- model
- data
- simulation
- class
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出一种液体火箭发动机通用化仿真方法,能够给用户提供更加灵活的、通用的、易操作的服务.包括以下步骤:第一步:构建部件模型;将发动机仿真计算的部件模型分为模型类和模型实例,第二步:搭建系统仿真模型;将第一步中建立的模型类添加到仿真系统中,实现模型类的实例化,生成模型实例;第三步:将模型文本生成可执行代码;第四步:系统仿真计算;首先,载入第三步中由模型文本生成的存有可执行代码的DLL文件,再进行模型中相应算法逻辑的仿真计算,并在计算开始时从数据交换区读取数据传递给可运行的代码,在计算结束后将仿真结果存入数据交换区。如此循环,直到仿真计算结束。
Description
技术领域
本发明主要用于液体火箭发动机性能仿真技术领城。
背景技术
液体火箭发动机仿真主要是用来进行发动机工作过程仿真,预测发动机性能,为发动机的设计和优化提供理论依据。现在为了提高研制液体火箭发动机部件和系统仿真的工作效率,降低研制工作的难度,将研究人员从繁杂的计算机编程和代码调试中解放出来,开发出许多通用性好的仿真软件。
国内目前在工程应用较多的模块化仿真是由国防科技大学刘昆开发的发动机瞬变过程模块化建模与仿真软件(LRETMMSS),该软件采用C++语言编写而成,拥有可视化界面,该软件充分考虑到液体火箭发动机起动、关机过程中各种复杂动态变化过程模型组合的需要,同时分割的模块应具有简单性和连接组装的灵活方便性,采用管道-体积模块划分方法将液体火箭发动机系统划分为三大类共计21种模块。但是,LRETMMSS软件由于缺少模型动态生成部分,因此该软件在针对不同类型液体火箭发动机进行仿真时需要重新改进其模型库,虽然实现了模型的封装,但是通用性方面有待改善。
北京航空航天大学的张黎辉依据此思想开发出了通用程度比较高的仿真软件(RoD)。在此软件中,为了解决仿真的通用性问题,他开发出代码生成工具。代码生成指的是从模块中的数学模型,即代码文本,经过附加算法,词法分析和语法检查,到生成令牌列表这一过程。但其求解器极为复杂,其工作量不亚于另行开发一个编译环境,令牌分析能力有限。
发明内容
本发明的目的是提出一种液体火箭发动机通用化仿真方法,具有良好通用性和可行性,能够给用户提供更加灵活的、通用的、易操作的服务,比如自由添加元件,定义元件的接口,物性参数,乃至数学模型等。
该液体火箭发动机通用化仿真方法,包括以下步骤:
第一步:构建部件模型;将发动机仿真计算的部件模型分为模型类和模型实例,首先通过可视化界面设置模型类的图片、名称、描述;设置模型类接口参数、物性参数、全局参数和仿真程序,构建不同部件的模型即构成模型类库;其中,模型类有多个数学模型,数学模型使用物性参数和接口参数进行仿真计算,从接口参数读取数据或向接口参数写入数据;
第二步:搭建系统仿真模型;将第一步中建立的模型类添加到仿真系统中,实现模型类的实例化,生成模型实例;确定好待仿真系统里的各个模型实例后,再根据系统中各部件之间的连接关系确定各模型实例之间的连接关系,将各模型实例的接口按实际系统的结构连接起来,最后设置仿真计算相关的参数;
第三步:将模型文本生成可执行代码;根据搭建好的系统仿真模型,从模型实例中读取数学模型、接口参数、物性参数,通过分析处理生成中间代码文件;然后,调用VDL编译器对中间代码文件进行编译、链接,生成可运行的代码,存储于动态链接库(DLL)文件中;
第四步:系统仿真计算;首先,载入第三步中由模型文本生成的存有可执行代码的DLL文件,再进行模型中相应算法逻辑的仿真计算,并在计算开始时从数据交换区读取数据传递给可运行的代码,在计算结束后将仿真结果存入数据交换区。如此循环,直到仿真计算结束。
其中,在仿真计算开始时,数据处理单元负责将模型实例中各参数字符串形式的数据转换为数值型数据,并用这些数值型数据对数据交换区进行初始化;仿真计算的过程中,将计算结果存储到数据缓冲文件中,以方便图形显示单元的使用;仿真计算结束后,将数值型数据转换为字符串形式的数据,方便数据的显示、查看。
其中,仿真计算结束后,图形显示单元从数据缓冲文件中读取计算结果数据,对其进行分析,并按照用户的要求将计算结果以曲线的形式显示出来。
本发明的有益效果:
本发明的仿真模型构建方式采用了VDL文本编辑,可以实现模型的可视化编辑,其可执行代码由VDL编译器动态生成,保证仿真软件通用性、允许用户添加模型类的同时,借助于第三方编译器生成的代码运行效率更高,稳定性和健壮性更好。同时,本发明数据处理模块采用了数据池技术,加快了仿真模型的运行速度。
附图说明
图1为本发明的液体火箭发动机通用化仿真方法流程示意图;
图2本发明模型类的结构示意图;
图3为本发明的液体火箭发动机通用化仿真软件结构示意图。
具体实施方式
本发明是一种液体火箭发动机通用化仿真方法,实现该方法的软件结构示意图见图3,由模型构建单元、系统搭建单元、代码生成单元、计算单元、数据处理单元、图形显示单元六部分组成,各个部分相互独立而又紧密联系,共同构成了一个不可分割的整体。其中,模型构建单元和代码生成单元是本软件的核心部分,也是软件通用性赖以实现的基础。:
所述模型构建单元的具体实施步骤是:首先,设计模型类的身份识别码(ID),此ID在模型类创建时就被确定下来,并且是唯一的。用户无论如何编辑模型类,都不会改变它的ID,除非将模型类从模型类库中删除。在用户构建好模型类,将其添加到模型类库之前,软件会检查用户输入的模型类的计算程序部分是否存在逻辑和语法的错误,以保证仿真计算时的正确性。其次,用户可以通过可视化界面自定义模型类的图片(图片只要满足*.Bmp形式要求,可随意添加)、名称、描述;再其次,通过点击图片的不同位置设置部件模型的接口,接口的名称默认为“Port01”,“Port02”,……,定义每个接口的接口参数、物性参数、全局参数,最后通过可视化VDL文本界面添加发动机部件的数学模型。其中,图片是图形化界面的一个重要组成部分,此图片会在搭建系统的时候用来表示这种模型的实例。其中,接口变量是模型实例之间进行数据通信的通道。物性参数是模型类自身的参数,也可称为局部参数。它代表的是模型本身的一些特征,比如管路的长度,管路的直径等。全局参数是多个模型类所共用的一些参数,它是模型实例之间进行数据通信的另一种通道示。这些参数由于为多个模型类共用,所以无法以接口参数的形式实现传递,采用全局参数的形式比较快捷、直观。比如,贮箱、液体管路、离心泵中都需要使用推进剂密度,这时,就可以将推进剂密度设置为全局参数。全局参数并不是所有模型类都可以使用的,只有那些处于同一类库中的模型类才能使用,换言之,全局参数是和模型类库紧密联系的,一个模型类库中的模型类只能使用所在类库的全局参数,而不能使用其它类库的全局参数。模型添加单元实际上也可用于编辑模型类,当用户需要修改某个模型类的某些参数时,也是通过此界面进行的。
所述系统搭建单元的具体实施步骤是:确定仿真系统的每一个模型实例,并确定相互间的连接关系,再设置好仿真计算相关的参数(计算步长,起止时刻等),就搭建好了一个完整的仿真系统。其中,模型实例化指的是将模型类添加到仿真系统中,通过模型实例右键菜单调出参数设置对话框,并根据实际情况设置其各项参数;接口、全局各项参数,都可以在此对话框中进行设置。设置好各项参数后,就确定了一个模型实例。其中,确定相互间的连接关系,是在确定好待仿真系统里的各个模型实例以后,根据系统中各部件之间的连接关系确定各模型实例之间的连接关系,将各模型实例的接口按实际系统的结构连接起来。
所述代码生成单元的具体实施步骤是:将用户以文本形式存储的仿真程序转换成可以被计算机能够识别的形式,根据搭建好的系统,从模型实例中读取数学模型、接口参数、物性参数,通过分析处理,生成中间代码文件,对程序中所有的变量进行相应的变换,调用第三方编译器(即通过VDL编译器),对中间代码文件进行编译、链接,生成可运行的代码,存储于一个动态链接库(DLL)文件中。
所述计算单元的具体实施步骤是:计算单元对仿真系统进行仿真时,需要调用可运行的代码。它先将代码生成单元生成的DLL文件载入,再按照和代码生成单元一样的规则调用相应模型实例的仿真程序,进行相应的仿真计算,并在计算开始时从数据交换区读取数据传递给可运行的代码,在计算结束后将仿真结果存入数据交换区。如此循环,直到仿真计算结束。
所述数据处理单元的具体实施步骤是:在仿真计算开始时,数据处理单元负责将模型实例中各参数字符串形式的数据转换为数值型数据,并用这些数值型数据对数据交换区进行初始化;仿真计算的过程中,将计算结果存储到数据缓冲文件中,以方便图形显示单元的使用;仿真计算结束后,可以将数值型数据转换为字符串形式的数据,方便数据的显示、查看等。
所述图形显示单元的具体实施步骤是:仿真计算结束后,图形显示单元可以从数据缓冲文件中读取计算结果数据,对其进行分析,并按照用户的要求将计算结果以曲线的形式显示出来。
Claims (3)
1.一种液体火箭发动机通用化仿真方法,其特征在于,包括以下步骤:
第一步:构建部件模型;将发动机仿真计算的部件模型分为模型类和模型实例,首先通过可视化界面设置模型类的图片、名称、描述;设置模型类接口参数、物性参数、全局参数和仿真程序,构建不同部件的模型即构成模型类库;其中,模型类有多个数学模型,数学模型使用物性参数和接口参数进行仿真计算,从接口参数读取数据或向接口参数写入数据;
第二步:搭建系统仿真模型;将第一步中建立的模型类添加到仿真系统中,实现模型类的实例化,生成模型实例;确定好待仿真系统里的各个模型实例后,再根据系统中各部件之间的连接关系确定各模型实例之间的连接关系,将各模型实例的接口按实际系统的结构连接起来,最后设置仿真计算相关的参数;
第三步:将模型文本生成可执行代码;根据搭建好的系统仿真模型,从模型实例中读取数学模型、接口参数、物性参数,通过分析处理生成中间代码文件;然后,调用VDL编译器对中间代码文件进行编译、链接,生成可运行的代码,存储于动态链接库(DLL)文件中;
第四步:系统仿真计算;首先,载入第三步中由模型文本生成的存有可执行代码的DLL文件,再进行模型中相应算法逻辑的仿真计算,并在计算开始时从数据交换区读取数据传递给可运行的代码,在计算结束后将仿真结果存入数据交换区;如此循环,直到仿真计算结束。
2.如权利要求1所述的一种液体火箭发动机通用化仿真方法,其特征在于,其中,在仿真计算开始时,数据处理单元负责将模型实例中各参数字符串形式的数据转换为数值型数据,并用这些数值型数据对数据交换区进行初始化;仿真计算的过程中,将计算结果存储到数据缓冲文件中,以方便图形显示单元的使用;仿真计算结束后,将数值型数据转换为字符串形式的数据,方便数据的显示、查看。
3.如权利要求2所述的一种液体火箭发动机通用化仿真方法,其特征在于,其中,仿真计算结束后,图形显示单元从数据缓冲文件中读取计算结果数据,对其进行分析,并按照用户的要求将计算结果以曲线的形式显示出来。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210489133.0A CN102968533B (zh) | 2012-11-26 | 2012-11-26 | 一种液体火箭发动机通用化仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210489133.0A CN102968533B (zh) | 2012-11-26 | 2012-11-26 | 一种液体火箭发动机通用化仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102968533A CN102968533A (zh) | 2013-03-13 |
CN102968533B true CN102968533B (zh) | 2015-10-07 |
Family
ID=47798670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210489133.0A Active CN102968533B (zh) | 2012-11-26 | 2012-11-26 | 一种液体火箭发动机通用化仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102968533B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473396B (zh) * | 2013-08-23 | 2016-02-10 | 北京宇航系统工程研究所 | 一种运载火箭低温贮箱换热过程仿真方法 |
CN107065594A (zh) * | 2017-01-12 | 2017-08-18 | 上海航天控制技术研究所 | 一种运载火箭六自由度分布式半物理仿真方法及系统 |
CN107300860A (zh) * | 2017-06-09 | 2017-10-27 | 南京航空航天大学 | 一种航空发动机控制系统仿真平台控制对象在线更改方法 |
CN108763747B (zh) * | 2018-05-28 | 2020-07-24 | 北京航空航天大学 | 运载火箭尺寸参数估算方法 |
CN109491266B (zh) * | 2018-11-28 | 2022-04-12 | 北京宇航系统工程研究所 | 一种基于多体虚拟样机的运载火箭飞行仿真方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576939A (zh) * | 2009-06-22 | 2009-11-11 | 北京航空航天大学 | 一种发动机系统模块化建模仿真方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010051861A1 (en) * | 2000-06-09 | 2001-12-13 | Fujitsu Limited | Method and apparatus for simulation, and a computer product |
-
2012
- 2012-11-26 CN CN201210489133.0A patent/CN102968533B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576939A (zh) * | 2009-06-22 | 2009-11-11 | 北京航空航天大学 | 一种发动机系统模块化建模仿真方法 |
Non-Patent Citations (4)
Title |
---|
姿控发动机地面虚拟试验模型集成软件设计;于海磊 等;《计算机测量与控制》;20101231;第18卷(第10期);第1页右栏最后1段至第2页左栏第1段,图2 * |
液体火箭发动机系统瞬变过程模块化建模与仿真;刘昆 等;《推进技术》;20031031;第24卷(第5期);401-405 * |
液体火箭发动机试验系统模块化建模与仿真;宋振龙 等;《航天器环境工程》;20091231;第26卷;图2,第2页右栏第2段 * |
航空发动机动态链接库模型建模技术研究;俞明帅 等;《航空发动机》;20120430;第38卷(第2期);摘要、第1页右栏第1段至第2页左栏第2段 * |
Also Published As
Publication number | Publication date |
---|---|
CN102968533A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102968533B (zh) | 一种液体火箭发动机通用化仿真方法 | |
CN102004635B (zh) | 一种支持重用的仿真模型系统及其开发方法 | |
Perchat et al. | Component based framework to create mobile cross-platform applications | |
CN104932905A (zh) | 一种aadl到c语言的代码自动生成方法 | |
Brandvik et al. | An accelerated 3D Navier-Stokes solver for flows in turbomachines | |
CN103955373A (zh) | 一种sdn应用集成开发环境的设计方法 | |
CN113918195A (zh) | 应用界面更新方法、装置、电子设备及可读存储介质 | |
Mens | Model transformation: A survey of the state of the art | |
Syschikov et al. | Domain-specific programming environment for heterogeneous multicore embedded systems | |
Jahr et al. | A pattern-supported parallelization approach | |
Edwards et al. | Automated analysis and code generation for domain-specific models | |
CN116341298B (zh) | 一种仿真引擎与模型解耦适配方法 | |
CN105183485A (zh) | 一种可视化软硬件协同开发方法 | |
CN104778320A (zh) | 一种可配置的hla联邦成员构建方法及系统 | |
Li et al. | CPSiCGF: A code generation framework for CPS integration modeling | |
Wingbermuehle et al. | ScalaPipe: A streaming application generator | |
Ivanova et al. | Domain-specific languages for embedded systems portable software development | |
Roth et al. | A gateway to easily integrate simulation platforms for co-simulation of cyber-physical systems | |
CN114792058A (zh) | 一种新能源电磁暂态封装模型统一接口方法及系统 | |
CN103577178A (zh) | 一种灵活修改计算规则的方法和系统 | |
CN103049615A (zh) | 基于图形化的工程机械控制逻辑实时仿真建模方法 | |
CN107918958B (zh) | 一种可视化和可定制的三维渲染系统及方法 | |
Han | Towards a multi-tier runtime system for GIPSY | |
Nastov et al. | Towards semantical DSMLs for complex or cyber-physical systems | |
Maouche et al. | Towards a Software Engineering Approach to Multi-Scale Modeling and Simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |