基于OpenModelica的液压系统仿真建模方法的研究
2022-09-20徐威
1 前言
当前,可以进行液压系统仿真建模的软件或者平台有很多种,包括但不限于:FluidSim、AutomationStudio、Matlab的Simulink、Amesim、20-sim、Modelica等
。这些建模软件各有各的长处。其中,FluidSim和AutomationStudio擅长进行液压传动系统及其自动化控制的仿真;Matlab的Simulink中的SimScape模块拥有液压库,可以进行液压传动系统和伺服系统的仿真;而Amesim、20-sim、Modelica等仿真软件是液压系统仿真软件中的后起之秀,他们基于更先进的多物理场统一仿真建模理论,适合进行机械、电子、液压、气动等多学科领域混合的复杂机电液系统仿真建模,是未来仿真建模软件的发展趋势。
其中,Amesim仿真软件基于功率键合图理论搭建系统仿真模型,这需要在建模过程中指定明确的因果关系;而20-sim、Modelica等仿真软件或平台,是一种面向对象的非因果关系的仿真建模语言。它们的目标是为动态系统建立一种标准的基于方程模型的仿真语言,使得仿真建模与仿真工具分离,实现仿真建模的标准化
。
OpenModelica是一个开源的基于Modelica语言的建模和仿真环境,用于工业界和学术界的研究工作中。长期由非盈利组织OpenSourceModelicaConsortium(OSMC)开发和维护。该软件平台的开源性质决定了获取和使用该软件是免费的,相比Matlab、Amesim和20-sim高昂的采购价格,可以大幅度压缩仿真建模成本;更重要的是,开源软件可以直接对源代码进行修改,定制满足自己需求的仿真模型,满足用户对个性化仿真元件库的需求
。基于以上优点,本文以OpenModelica为仿真平台,介绍在该平台上进行液压元件和系统的仿真建模方法。
2 仿真环境
2.1 Modelica语言概述
本文所介绍的液压系统仿真模型库,是运行于OpenModelica仿真平台之上的,而OpenModelica,是基于Modelica语言的。要想对液压系统仿真模型库进行更改,首先要掌握Modelica语言的基本原理。
氯氮平购自Sigma(美国),阿立哌唑购自中国食品药品检定研究院,喹硫平、齐拉西酮、氯氮平-d3、喹硫平-d8和齐拉西酮-d8购自Toronto research chemicals Inc(加拿大),N-去甲基氯氮平、阿立哌唑-d8购自 cerilliant(美国),色谱甲醇、乙腈购自默克公司(德国),屈臣氏蒸馏水购自广州屈臣氏食品饮料有限公司。
Modelica语言是一种基于方程的(微分方程或微分代数方程)、面向对象的编程语言,开发这种语言的目的,是为了给仿真工程师提供一种便捷地描述动态系统模型的工具。在Modelica语言诞生之前,系统动态特性的描述一般用通用的编程语言(例如C语言、C++语言、Matlab脚本语言等)进行描述,其缺点是不够直观,编写困难。Modelica语言就是针对以上问题而设计的。Modelica语言具有以下4个主要特征:
选取宁夏地区3项110 kV智能变电站装配式建筑工程作为评价样本(N1,N2,N3),探讨本文所构建的基于直觉梯形模糊数多因子群决策方法的110 kV智能变电站装配式建筑造价评价模型的可行性和应用性。由来自电网公司造价管理部门的3名专家Sk(k=1,2,3)组成的造价评价小组,分别对各工程的4项智能变电站装配式建筑关键造价影响因子:钢柱C1,楼板屋面板C2,外墙C3,屋面保温C4进行评价,评价值为直觉梯形模糊数,构成智能变电站装配式建筑造价影响因子的直觉梯形模糊决策矩阵并依据国网公司装配式建筑典型设计方案,计算得出理想直觉梯形模糊向量如表1所示。
OpenHydraulic模型库的结构如图1所示。其中UsersGuide是用户手册,Examples和DevelopmentTests是应用实例,以上内容是初学者掌握OpenHydraulic库使用方法的主要参考资料。其余的子模型库,包括:Basic、Components、Circuits、Fluids、Interfaces、Types和Utilities共同组成了液压系统仿真模型库,拖拽其中的模型到编辑区,就可以方便的构建液压系统仿真模型。为了仿真工程师对OpenHydraulic进行扩展,本文对一些关键的子模型库的实现原理进行简单的介绍。
面对两个阶段教育存在的差异,为了让孩子顺利过渡,幼儿园一般会在大班对孩子进行幼小衔接教育。家园协作显得格外重要,家长要树立起正确的幼小衔接观念,具体体现在以下两个方面:
(3)Modelica是一种面向对象的编程语言,拥有类似C++语言的模板机制,这个特性提高了模型的复用性,便利了仿真系统的开发;
2)加木垫板时锚杆预紧转矩转化为预紧力的系数平均为0.19,相比金属托盘降低23%,且预紧力矩与预紧力之间的线性关系较差。当预紧转矩为400 N·m(井下施工常用预紧转矩)时,金属托盘预紧力为107.57 kN,加木垫板后仅为76.76 kN,相比降低了28%。
飞机液压泵是民用飞机液压系统中最关键的动力元件之一,它将航空动力机械的机械能转化为液压能输出,从而给飞行控制系统、起落架传动系统等提供液压动力。一般军用或者民用飞机的液压泵都要定期进行维修,而维修过后的液压元件,再次进行服役前,都需要进行测试。
本文所介绍的液压系统仿真库——OpenHydraulic,正是用Modelica语言进行编写、同时运行于OpenModelica软件平台的模型库。由于该模型库采用Modelica语言编写,如前所述的四项特征,保证了其可靠性、易用性和扩展性。特别适合非计算机领域内的仿真建模工程师使用。
2.2 系统环境的安装
OpenModelica是基于Modelica语言的仿真环境,而Modelica是一门面向对象的仿真建模语言。用户只需按照Modelica语言规定的语法规则,建立实际物理系统的动态特性方程式,并将这些模块化的对象通过连接器连接起来,即完成了仿真模型的建立工作。由于系统被划分为了多个对象,这些对象可以通过连接器连接起来,不同的连接方式,构成了不同的仿真模型系统,从而提高了对象的复用率,进而提高了建模效率。而通过连接器的不同组合方式,提高了仿真建模的灵活性。因而,除了仿真模型的建立,连接器也是Modelica具有广泛适用性的重要保证。
2.3 仿真环境的组成
1.加强饲养,防止营养因子缺乏。妊娠母猪饲喂全价饲料,保持营养平衡,防止维生素A、维生素D、维生素C、维生素E、微量元素及矿物质的缺乏,以保证胎儿正常发育。同时,为使免疫母猪尽可能多地给仔猪提供特异性抗体,可在母猪饲粮中添加VE;配种前15 d内及妊娠期间,在母猪日粮中加入适量低分子脂肪酸,可显著提高初乳中总蛋白质、免疫球蛋白和不饱和脂肪酸含量,从而增强仔猪抗御病原体,特别是肠道病原体的能力,减少断奶前肠道疾病造成的损失,防止腹泻的发生。
2.4 仿真环境的工作原理
想要借助OpenModelica进行液压系统的仿真建模,首先应该访问其官网
,安装相应的软件包。目前该软件的最新版本是OpenModelica1.18.1。该软件包可以运行在Windows和Linux环境下,本文以Windows环境为例,介绍其安装和使用方法。
3 OpenHydraulic库
如前文所述,OpenModelica是一个仿真运行环境,它提供了一个对Modelica语言描述的动态系统模型进行解释运行的引擎。OpenModelica的用户一般是某一领域的仿真工程师,仿真工程师的目的就是借助仿真软件,解决某一工程领域的具体问题。为了帮助仿真工程师利用Modelica进行工作,OpenModelica平台预装了多个物理领域的仿真模型库,常见的模型库包括:Electrical(电子)、Magnetic(磁)、Mechanic(机械)、Fluid(流体)等等。但本文介绍的流体传动与控制系统仿真的模型库,目前OpenModelica还没有集成进来。因此,如果想在OpenModelica环境中进行流体传动与控制系统的仿真,暂时需要借助第三方库——OpenHydraulic。
OpenHydraulic是由佐治亚理工学院的Chris Paredis教授开发的开源Modelica模型库,提供了完整的液压系统仿真模型库文件。使用该模型库,可以方便地在OpenModelica中进行液压系统仿真模型的建立。另外,由于该模型库是开源的软件包,用户可以在研究其实现的基本原理基础上,对该模型库进行进一步开发和完善,从而定制属于自己的液压系统仿真模型库。下面本文将对其实现原理和使用方法进行简单的介绍。
3.1 组成结构
(1)Modelica语言的语法主要基于方程的编写而不是强调赋值语句。由于这种语法不强调建模的因果关系,因而提高了模型的重用率;
3.2 Interfaces(接口子模型库)
接口子模型库的结构如图2所示。其中比较重要的类是FluidPort、PartialFluidComponent、PartialFluidCircuit、HorizontalTwoPort和VerticalTwoPort。如其英文名字所描述的哪样,FluidPort定义了液压端口,由于所有的液压元件都是通过液压端口来进行连接的,因而根据Modelica语言的语法要求,该类被定义为connector类型。
PartialFluidComponent、PartialFluidCircuit类根据Modelica的语法规则,声明为partialmodel类型,相当于面向对象语言中的抽象类,这两个类在构建液压元件或液压回路时,将起到类似模板的功能,所有的液压元件和液压回路,都是在这两个类的基础上派生的。
HorizontalTwoPort和VerticalTwoPort,定义了带有两个端口的液压元件的抽象类,出于图标布置的需要,两端口液压元件的抽象类被定义为水平(Horizontal)和垂直(Vertical)。
3.3 Base(基本子模型库)
Base子模型库的部分类如图3所示,这个子模型库定义了最基本的液压元件子模型,包括最简单的液阻、流量源、压力源、油箱等等,这些类是构建更高级的液压元件或系统模型的基础。一般仿真软件工程师不必对这个子模型库进行修改。
(2)Modelica语言特别适合建立多领域物理系统混合模型。因而特别适合进行机电液混合系统建模,也适合本文的应用场景;
3.4 Components(元件子模型库)
元件子模型库定义了:液压缸、管道、马达和泵、传感器、液压阀和液压辅件的子模型。限于篇幅,本文以双向定量泵为例,介绍其定义和实现方法。读者可以在此基础上举一反三,开发出自定义的液压元件子模型。
所有的元件子模型,都需要定义其:图标视图、组件视图和程序源代码。双向定量泵的图标视图如图4所示,组件视图如图5所示。
图标视图定义了模型被引用时的外观结构,组件视图定义了元件的实现方式。这里面组件视图所起的作用最主要,模型所表现出的物理特性,均是在组件视图定义的基础上、再配合程序源代码的定义来实现的。
观察图5,双向定量泵组件视图主要是通过连接器将:机械端口(1、2号元件)、液压端口(3、4号元件)、机械液压转换元件(5号元件)、液阻模型(6号元件),通过特定的连接方式组成的。机械端口的作用是传入外界的机械功率;液压端口的作用是将机械能转化为液压能输出;而液阻模型主要是模拟液压泵的泄漏。通过以上的定义,将双向定量泵划分为了若干个子模块,这种划分方式,既保证了子模型的复用性,提高了建模效率;又避免了模型的错误,提高了系统的鲁棒性。
4 仿真试验
(4)Modelica有一套组件和连接器的定义方式,特别适合抽象描述复杂物理系统的结构,利于对软件进行扩展。
安装完成后,用户会得到如下4个工具软件,包括:OpenModelica Shell、OpenModelicaNotebook、OpenModelicaOptimizationEditor和OpenModelicaConnectionEditor。这其中以OpenModelicaConnectionEditor最为重要。如其名字所指出的那样,该工具软件主要用来进行连接器的编辑工作。
目前,飞机液压泵测试的关键技术和标准均掌握在发达国家手里。国内关于液压泵的测试主要是进行型式试验和出厂试验,由于航空液压泵的测试标准和适用环境不同,急需设计新的液压回路和系统,来对航空液压泵进行性能测试
。面对这种需求,如果能在设计实物液压泵测试系统之前,利用仿真软件,对液压泵性能测试回路进行仿真模拟,验证泵测试回路的可行性,将在极大程度上提高航空液压泵试验台的设计效率,提高可靠性。
本文待分析的数据涉及员工基本信息表、工种表、部门表、出勤表和勤种表五张表。其中主关系表有5000条记录,联系表有44万条记录。系统的开发环境为Visual C++2010,后台数据库为SQL Server 2008。系统主要包括数据导入、数据预处理、系统配置、频繁项集挖掘和关联规则导出五个功能模块。
针对以上问题,本文以一个简化的液压泵性能测试仿真回路为例,说明利用OpenHydraulic库进行液压系统建模仿真的方法。该仿真系统原理图如图6所示。
图6中,1号元件代表输入的恒定转速(输入功率,相当于电动机);2号元件和3号元件是一对双联泵,其中2号元件是定量泵、而3号元件是变量泵;4号元件代表液压油箱;5号元件代表压力传感器;6号元件代表对液压泵3进行的排量变换设定的命令信号。
随着国家宽带提速、三网融合和4G战略的实施,四川乃至西部信息通信工程建设项目不断增加,众多的移动通信用户对于通信网络的质量提出了高的要求,通信企业需要大量从事传输和移动通信网络测试优化的人才。
To sumup,this study examines and tries to prove the hypothesis that various modes,or in our case,the visual mode,find their way into textual narration,and with such intertwining of different modes in the textual content,both humor and politics can be discussed implicitly or metaphorically.
其中3号和6号元件的使用,体现了仿真软件的优势。因为在现实的液压系统中,要对液压泵的排量机构进行调整,需要一整套机械或机电结合的调节机构,实现较为困难。而在OpenHydraulic仿真模型库中,可以方便的用信号库中的元件驱动变量泵3进行排量调整,弥补了实物试验的不足。
系统的仿真模型建立完成后,单击工具栏上的开始仿真按钮,OpenModelica在后台会将图6所示的液压原理图转换为C语言程序源代码,然后进行编译仿真。之后会进入绘图模式,在右侧的变量浏览器中勾选用户关心的变量,即会将相关变量的动态特性的仿真结果绘制在图形窗口中。
在本例中,我们勾选了液压泵3的出口流量和输入扭矩,绘制出的仿真曲线图如图7、图8所示。
历经盛世辉煌和末世仓皇的激荡心情,在李凡再次睁开双眼后,出奇地平静了下来。尽管他所面对的,不过是现实世界一处普通的建筑工地。
从图7和图8中可以观察到,随着输入信号对液压泵排量进行设定,液压泵的出口流量和输入扭矩,也发生周期性的变化。更重要的是,可以从仿真中得到量化的数值结果,从而对液压泵试验台的液压系统回路的设计,提供指导和借鉴意义。
5 结论
本文以开源软件OpenModelica为仿真平台,介绍了其液压库OpenHydraulic的基本原理和使用方法。通过一个航空液压泵测试仿真回路,验证了本仿真技术方案和平台的可行性。本液压系统仿真建模方法性价比高,并且用户可以在其基础上进行任意扩展和修改,为开发出具有中国自主知识产权的液压系统仿真模型库,提供了一种可行的技术方案。
[1]赵翼翔,陈新度,陈新.基于Modelica的机电液系统多领域统一建模与仿真[J].机床与液压,2009,37(06):166-169.
[2]董怡文,赵翼翔,陈新度.基于Modelica的硫化机液压传动系统仿真[J].机床与液压,2010,38(17):114-117.
[3]明媚,孟光,荆建平.基于Modelica的液压起升机构动态特性分析[J].振动与冲击,2012,31(05):118-121.DOI:10.13465/j.cnki.jvs.2012.05.015.
[4]李明,孟光,荆建平,仲作阳.基于Modelica语言的电液伺服阀非因果建模仿真[J].系统仿真学报,2013,25(12):2946-2951.DOI:10.16182/j.cnki.joss.2013.12.007.
[5]吕有界.基于Modelica多领域建模仿真研究现状与思考[J].广州航海学院学报,2014,22(02):31-33.
[6]魏昕.基于Modelica的液压减震装置的建模与仿真[J].机械管理开发,2014,29(04):3-7.DOI:10.16525/j.cnki.cn14-1134/th.2014.04.027.
[7]李永林,曹克强,胡良谋,苏新兵,李小刚.基于Modelica的飞机液压系统热力学建模与仿真[J].系统仿真学报,2014,26(12):2828-2833.DOI:10.16182/j.cnki.joss.2014.12.003.
[8]董政,张洪昌,丁建完.基于Modelica的起落架半物理仿真设计与实现[J].系统仿真技术,2015,11(04):277-282.DOI:10.16812/j.cnki.cn31-1945.2015.04.001.
[9]秦东晨,周鹏,张强,李帅远.Modelica/MWorks的盾构液压推进系统建模与仿真[J].机械设计与制造,2021(04):215-218.DOI:10.19356/j.cnki.1001-3997.2021.04.049.
[10]https://modelica.org/
[11]魏冰. 飞机液压泵性能测试试验台设计[D].中国民航大学,2020.DOI:10.27627/d.cnki.gzmhy.2020.000357.