版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
BeihangUniversityMWORKS开发平台架构与二次开发4.1系统仿真语言Modelica简介4.1.1Modelica发展历程4.1.2Modelica工作原理4.1.3Modelica技术特点4.2基于内核级接口的二次开发规范与流程4.2.1内核级二次开发案例4.2.2内核级模型求解算法开发规范4.3基于应用级接口的二次开发规范与流程4.3.1应用层模型开发实例4.3.2应用层模型开发流程4.3.3模型库开发规范第四章面向系统建模的二次开发01系统仿真语言Modelica简介1.系统建模语言Modelica简介Modeliac用于大型、复杂和异构的物理系统的建模;连接:模型由连接的部件组成,组件具有连接口,用于描述连接特性。通过连接口之间的连接线,可以构建物理系统模型。元件:在元件内部,由另一个物理系统模型或者由Modelica语法中基于等式的模型描述定义。Modelica模型示例Modelica是一种开源的面向对象的建模语言。1.系统建模语言Modelica简介Modelica可以用微分、代数和离散方程来表示不同领域的系统。可以描述不同类型工程组件的工作特性。Modelica可以基于图形化、模块化的拖拽式建模方式,模型表达十分直观,大大提高了建模的效率、降低了建模的难度。Modelica建模工具可提供文本、图标、组件和说明四大类视图的显示方式,并且能够实现视图之间的一键式切换和实时动态更新。简单齿轮模型直流电源模型Modelica是一种高级的陈述式语言,用于描述事物的数学特性。2.Modelica发展历程Modelica发展历程3.Modelica工作原理Modelica从原理上统一了之前的各种多领域统一建模机制,基于端口与连接的广义基尔霍夫网络机制支持多领域统一建模,并且以库的形式支持键合图和Petri网表示。并提供了提供了强大的、开放的标准领域模型库,覆盖机械、电子、控制、电磁、流体、热等领域。Modelica继承了先前多种建模语言的优秀特性:支持面向对象建模非因果陈述式建模多领域统一建模及连续-离散混合建模以微分方程、代数方程和离散方程为数学表示形式可以只专注于如何陈述问题(What)无须考虑错综复杂的仿真求解的实现过程(How)3.Modelica工作原理面向对象通过面向对象的方法定义组件与接口,并支持采用分层机制、组件连接机制和继承机制构建模型基于方程Modelica可通过微分代数方程的形式来描述组件本构关系modelCircuit"电路"SineVoltageVS(V=220);ResistorR1(R=5);ResistorR2(R=10);CapacitorC1(C=0.2);InductorLa(L=0.1);GroundG1;equationconnect(R1.p,VS.p);connect(VS.n,G1.p);connect(La.n,G1.p);…endCircuit;Modelica语言(左)及简单电路模型(右)电容模型Modelica语言modelCapacitor"理想电容"extendsTwoPin;parameterRealCapacitance(start=1);equationi=C*der(v);endCapacitor;3.Modelica工作原理基于连接Modelica语言提供了功能强大的软件组件模型,其具有与硬件组件系统同等的灵活性和重用性连续离散混合Modelica通过条件表达式/条件子句与when子句两种语法结构,以及sample(),pre()等内置事件函数支持离散系统建模组件/子系统连接示意图飞行器着陆过程模型4.Modelica技术特点非因果建模多领域统一建模连续离散面向对象建模直接通过方程形式来实现模型代码的编写,无需人为进行组件连接关系的解耦和推导整个复杂系统算法的求解序列基于能量流守恒的原理,可以实现不同专业所组成的大型系统模型在同一软件工具下进行构建和分析,避免不同分系统、不同专业之间不同类型模型的复杂解耦支持条件判断机制的建模方式,能够实现连续离散的混合建模,可以很好的处理系统仿真过程中的事件采用封装、继承、多态和抽象等面向对象的思想,实现了模型基于模块化、层次化的设计、开发和应用,可以使得所开发的模型具有极强的重用性和扩展性4.Modelica技术特点非因果多领域统一连续离散面向对象Modelica技术特点示例02内核级二次开发内核级二次开发内核层是系统建模仿真平台的最底层,负责仿真模型的编译运行内核层定义了一套接口规范,包括底层算法接口和上层内核接口。底层算法接口对模型求解算法的接口进行规约;上层内核接口提供一组内核原子应用程序接口(API),支持模型编译、模型分析、模型求解、代码生成、仿真结果读写等操作。内核级系统组成1.内核级二次开发案例自定义扩展求解算法主要流程模型算法求解拓展过程算法函数实现:根据提供的接口函数规范对求解算法进行编写;算法注册:将这些算法函数通过算法注册接集成到应用层的求解器中。算法使用:将算法编写、注册完成后可在软件中使用;1.内核级二次应用开发
拷贝注册文件链接算法设置自定义算法设置自定义算法查看求解算法运行已有案例步骤示例文件Sysplorer中提供积分求解器的替换示例文件1.1运行已有案例1.内核级二次应用开发
1.2算法函数实现显示积分算法的主要接口函数及使用。(1)创建c文件并引入头文件(2)数据类型定义(3)编写积分算法对象创建函数(4)编写求解问题对象创建函数(5)编写积分算法初始化函数(6)编写求解函(7)编写插值函数(8)编写求解问题对象销毁函数(9)编写积分算法对象销毁函数创建文件并增加头文件所有的代码编写全在my_euler.c中编写1.内核级二次应用开发
1.3算法注册要在软件中使用上述自定义算法,需要将算法注册到求解器。(1)新建mws_user_alog.c文件,文件名不能改变(2)编写求解问题对象销毁函数(3)注册模板参考(4)自定义算法注册函数(5)替换注册文件注册替换文件1.内核级二次应用开发
1.4算法使用将算法编写、注册完成后可在软件中使用,使用自定义算法时需要在软件中做两个工作:链接算法与设置自定义算法。(1)新建模型(2)链接算法(3)设置自定义算法新建模型链接算法设置自定义算法1232.内核级模型求解算法开发规范
系统建模仿真平台模型求解在主控层的对外接口包括创建仿真实例、算法注册、模型仿真、销毁实例。其中,算法注册用于集成算法层扩展的求解算法。求解器与算法交互过程模型求解算法扩展主要包括三个步骤:按规范实现算法函数在应用层将算法函数通过算法注册/设置接口集成到求解器。模型方程和算法函数一起构建出模型的求解器,用于对模型进行仿真。03应用层二次开发应用层二次开发系统建模仿真环境中的模型库由一系列模块组成,模块是构建系统模型的主要元素。系统建模仿真环境内置模型库提供了机、电、液、控、热、磁等多学科基本模块。系统建模仿真环境允许用户开发新的模块并以模型库的方式集成到系统建模仿真环境中。Modelica模型库建模流程主要包括需求分析、架构设计,接口设计、模型开发等步骤,并经过相应的测试以保证Modelica模型库的正确性及通用性。模型库开发流程
1.需求分析本模型库开发实例将对一个完整的模型库进行开发,从需求分析到模型测试的模型库开发完整流程进行展示,搭建工程机械中较为常用的液压组件库。1.应用层模型库开发实例液压组件库的需求目标是基于业务需求、架构需求、功能需求、性能需求、接口需求、运行环境需求和非功能性需求等多个方面来确保实现一个高效、可靠且易于使用的液压组件库。业务需求:满足各种液压系统的需求,提供可靠且高效的液压组件。架构需求:需要具备模块化、可扩展和可重用的设计架构,方便开发人员进行定位和使用。功能需求:需要提供一系列液压组件,并确保它们的功能正常且稳定。性能需求:需要确保液压组件的性能满足系统要求,包括求解精度和效率等方面。运行环境需求:需要在规定的软件和硬件环境下稳定运行。非功能性需求:需要具备良好的稳定性、兼容性、可扩展性和易用性,以提高系统的稳定性和用户体验。
2.架构设计1.应用层模型库开发实例液压组件库考虑能够满足用户更快捷定位和使用要求,并根据液压设备功能进行划分。主要提供了复杂液压系统构成所需的零部件模型,包括:泵源液压阀执行机构液压管路、液压辅件液压管阻边界源和传感器设备模型等液压组件库
1.应用层模型库开发实例液压组件库液压组件库模型目录如表所示
1.应用层模型库开发实例2模型库配置液压组件库开发步骤1新建模型库121.应用层模型库开发实例5建立完整模型库4子模型库配置3新建子模型库345液压组件库开发步骤
3.接口设计1.应用层模型库开发实例液压组件库涉液压接口、机械平动接口、机械转动接口和控制接口四大类,接口中包含的变量如表所示。液压组件库接口变量表接口类型接口变量单位图标液压接口压力pbar流量ql/min机械平动接口位移sm力FN机械转动接口转矩tauN/m转角phidegC控制接口输入u/输出y/
4.模型开发1.应用层模型库开发实例这里我们主要以90°三通模型为例,描述模型开发步骤。在构建三通模型时,主要考虑其以下两点功能:功能点1:管道分流,能够实现主管道到分支管道的流量分配;功能点2:管阻压降,支持用户根据实际构型设置各流向摩擦系数、直径、临界雷诺数等,实现不同压降效果。其对应的物理原理为:节流孔的流量系数Cq计算如下,为摩擦系数的函数:(注:s和m分布代表主路和支路)节流孔的体积流量:中间节点容腔压力计算:
1.应用层模型库开发实例(1)新建主管节流孔模型在液压组件库下相应路径下的子模型库,并创建新模型。新建模型(2)编写模型文本对主管节流孔模型按照继承类语句、模型参数、模型变量、模型接口和模型方程等规范顺序进行对应代码写入。编写模型文本
1.应用层模型库开发实例(3)图标设计在图标视图绘图或导入图片为模型绘制图标模型图标绘制
参数面板设计(4)参数面板设计按模型所需要调整的参数设计参数面板。1.应用层模型库开发实例(5)说明添写打开“文档浏览器”,进行模型说明编写说明添写
(6)模型优化需要根据压差dp正负进行判断选择正确流向,一般可直接加sign函数进行正负判断,公式优化为q:=Cq*A*regRoot(2*abs(dp)/rho)*sign(dp);优化公式代码
1.应用层模型库开发实例(7)其他子模型开发按照上述步骤一次完成分支管道节流孔和三接口液压容积模型。其他子模型开发(8)模型封装最终将完成的各子模型进行封装组合成完整的三通模型。三通模型封装
1.应用层模型库开发实例(8)模型封装模型测试建一个测试系统对模型进行测试,主要实现通过可变节流阀VarThrottleValve控制闭式油箱hTank的油液高度变化和流出时体积流量变化。只开一路可变节流阀VarThrottleValve时相比开两路,hTank的油液高度变化更平缓,流出时体积流量更小。测试系统模型hTank油液变化高度汇入tank的体积流量
2.应用层模型库开发流程1.需求分析应用层模型库开发流程主要包括需求分析、架构设计、接口设计、模型开发和模型测试,此外,模型开发后可以进行模型库的发布。在进行系统仿真的最初阶段就必须对仿真需求进行客观详细地分析,主要包括:业务需求:主要分析客户对模型库系统高层次的目标要求架构需求:主要分析模型库层次化结构、可扩展性、重用性和可维护性等方面要求功能需求:开发人员必须要实现的模型功能性能需求:模型所需要的达到的精度要求和求解效率要求内外部接口需求:指模型与模型之间或外部系统的交互方式和接口规范的要求描述运行环境需求:模型库或系统运行所需的硬件、软件等环境等方面的要求描述非功能性需求:指模型库在稳定性、兼容性、可扩展性、易用性以及发布等方面要求
2.架构设计架构设计包括架构设计原则、实现步骤以及内外部接口设计等方面。(1)架构设计原则层次化结构扩展性重用性(2)架构实现对于顶层的package类型的模型可以选用“保存为目录结构”其他类型只能选择“保存为单个文件”;对于嵌套模型可以选用“保存到父模型所在文件”。2.应用层模型库开发流程
Modelica在设计时借鉴Java包的概念设计了受限类package,用以表示模型库。按照功能进行划分:UsersGuide,用户指南模型库概述适配性说明联系方式版本说明二次开发模板Examples,典型示例Components,各类功能组件库Sources,激励或边界库Sensors,传感器库Interfaces,接口库2.应用层模型库开发流程模型库功能划分示例
3.接口设计Modelica提供了两类连接器(1)因果连接器
因果连接器又称信号流连接器,对于控制、状态、数字电路用的都是因果连接器。常见的控制领域的接口变量如下表所示。2.应用层模型库开发流程常见因果连接器
(2)非因果连接器常见基本物理领域的接口流/势变量定义如表所示。2.应用层模型库开发流程常见非因果连接器
4.模型开发组件模型是物理系统基本要素。每个组件可以具有参数、变量、行为和端口。参数描述固定特性,变量说明可变物理属性,行为阐释物理本构,端口用于外部连接。组件变量与端口变量之间存在约束方程。2.应用层模型库开发流程模型开发步骤
(1)理论分析每个组件具有参数、变量、行为和接口。(2)原型开发模型创建主代码编写量纲定义参变量定义编写方程和算法图标设计参数面板设计说明添加2.应用层模型库开发流程原型开发步骤
(3)优化处理2.应用层模型库开发流程组件重用性抽象与继承重声明inner/outer组件健壮性限位使用final关键字组件初始化设置初始条件确定初始条件个数组件仿真效率尽量使用equation避免不必要的事件合适的误差为函数提供雅可比函数合适的积分算法、变量消除
4.模型封装模型封装在一定程度上可以说是模型分解的逆过程,一般层次化模型中的底层模型包含了模型的活动和功能的所有细节,较高层次的模型隐藏了相关模型的活动和细节,依赖于底层模型实现。一般模型的封装主要有两种形式:连接封装和重用封装。(1)连接封装将现有的底层模型相互连接,就可以封装形成三通模型,进行整体使用。2.应用层模型库开发流程三通模型的封装
(2)重用封装基于功能的组件分解所形成的功能仿真模型的层次结构中,模型组合是通过上层模型对下层模型的模型调用和变型实现的。例如,动态管道中一般包含传热模块,流动模块,结构模块等,将这些模块合理的组合封装起来就形成较为全面的动态管道模型,可以作为整体供系统使用。2.应用层模型库开发流程动态管道的封装
5.模型测试Modelica模型组件测试主要分为(1)单元测试
测试模型的可求解性(2)子系统测试
测试子系统求解(即多个组件组合求解)的稳定性(3)系统测试必须保证在模型测试所用的其他组件正确的情况下再对被测模型进行测试;尽可能考虑到各种不同的输入条件,使模型在允许的输入条件下都是正确的;对被测模型的参数修改尽可能全面化;设定合适的积分算法及求解精度。2.应用层模型库开发流程
6.模型库发布MWORKS支持对Modelica模型库进行有效的加密保护,在允许正常使用的同时隐藏必要的模型细节。2.应用层模型库开发流程(1)模型发布支持多种粒度、多种层次的模型保护级别,对模型使用、代码浏览、代码复制等显示和操作场景进行必要的控制。(2)模型的保护级别MWORKS.Sysplorer提供了8个不同等级的模型保护级别(3)嵌套模型的保护级别由嵌套模型自身的加密保护级别确定。模型发布窗口保护等级示例
模型库开发规范包括以下内容:模型库组织结构规范模型编码规范模型图形布局规范模型用户指南编写规范模型工程化实践规范模型测试规范模型库版本管理规范外部函数封装规范包括以下内容:C/C++语言及链接库封装规范Julia函数库集成封装规范3.模型库开发规范
1.命名规范命名需要在减少命名冲突的基础上增强模型代码的可读性。减少命名冲突增强模型代码的可读性(1)类命名对于一个或多个单词全拼组成的类名,每个单词首字母应大写对于存在大写简写元素的类,为避免引起歧义,每个独立元素之间用下划线连接对于类的实例化。首字母应小写,其它遵循以上原则。(2)参数或变量命名变量的名字尽量能显示出变量的含义;对于一个单词的参数或变量名,一般均采用小写字母;对于多个单词组成的参数或变量名,每个单词之间用下划线隔开;对于只有一个字母的参数或变量名,其命名需根据实际情况确定;(3)连接器命名对于标准库中已存在的连接器,可直接继承使用对于需新定义的连接器及变量命名,须遵循类命名、参数和变量命名规则;3.模型库开发规范
(4)常用航空术语命名规范航空领域有着自己的专业术语与缩写,如表所示,收集此类名词并合理运用到Modelica建模中,可以避免命名过于冗长,使Modelica模型库更为专业化,参见《航空专业英语缩写索引》、《英汉航空航天工程词典》及相关设计规范文档,具体根据项目研发定制统一的命名规范。3.模型库开发规范常用符号命名规范
2.模型行为和方程规范Modelica是基于方程的建模语言,Modelica同时支持过程式建模方法。陈述式建模的特点之一是通过方程而非赋值来描述模型行为。Modelica支持陈述式/过程式混合建模,分别以equation和algorithm来分别描述方程和赋值,例如:3.模型库开发规范过程式建模陈述式建模
3.代码结构规范为了实现模型库编码风格的统一,模型库创建过程中应遵循如下的Modelica模型编码顺序:继承类语句,模型参数模型变量模型接口初始方程方程和算法3.模型库开发规范编码示例
4.注释规范建立的所有类别(package,model,function)都需要相应的注释,一般类注释普遍采用下面的形式,一般用“""”进行注释,如:定义的每个参量,变量都要注释该参变量的含义,增强代码的可读性,注释语尽量简明扼要,一般用“""”进行注释3.模型库开发规范
5.参数及参数框设计规范(1)参数定义定义模型参数包括参数数据类型、名称、默认值、量纲、必要的描述信息等(2)参数框定义进行参数分类显示时遵循原则:参数少,分Group;参数多,分Tab;重要共性参数(介质)单独分开,Tab/Group统一;参数的一般分类:工质参数、结构参数、初始条件(变量初始化及初始参数)等3.模型库开发规范参数定义参数框定义6.接口定义规范为避免系统模型集成阶段由接口带来的问题,在系统分析设计初期就需要将接口定义清晰,以及各系统间的连接方式。接口说明内容包括:模型输入/输出变量的数据类型、维数、名称、量纲、必要的描述信息,主要接口有流体、电、热、机械、信息接口如表所示。3.模型库开发规范信息特性接口
变量类型变量名称描述功能RealInputRealinput实型信号输入接口实型数据传递RealOutputRealoutput型信号输出接口Int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安庆市中医医院劳务派遣工作人员招聘2人考试参考题库及答案解析
- 2026湖北武汉市汉口银行数据中心招聘5人考试模拟试题及答案解析
- 夏季安全主题教育
- 2026贵州遵义市赤水融媒文化传播公司招聘见习生考试参考题库及答案解析
- 2026南洋商业银行成都分行社会招聘考试备考题库及答案解析
- 绿化现场移交情况说明-模板
- 2026年大庆市文化局系统事业单位人员招聘考试备考试题及答案详解
- 外研版(三起)(孙有中)四年级下册英语期中素养达标(解析版)
- 2026年大同市卫生行政系统事业单位人员招聘考试备考试题及答案详解
- 2026年安顺市农业机械系统事业单位人员招聘考试备考试题及答案详解
- 卧床老人理发培训课件
- 文库发布:5S课件
- 人教部编四年级下册语文期中测试卷(含答案)
- 2025中国融通集团信息技术有限公司社会招聘笔试参考试题附答案解析
- 内外墙抹灰安全技术交底
- 混凝土拌合物试验课件
- 病理学实验室质控措施指南
- 2025年6月浙江省高考历史试卷真题(含答案解析)
- DB41∕T 2474-2023 梅花玉 鉴定与分类
- 《婴幼儿游戏活动实施》课程标准(五年制高职专科)
- 车载光通信专题学习
评论
0/150
提交评论