多领域物理统一建模语言与MWORKS实践 课件 4-5-Modelica语法详解-连接与连接器(2学时)_第1页
多领域物理统一建模语言与MWORKS实践 课件 4-5-Modelica语法详解-连接与连接器(2学时)_第2页
多领域物理统一建模语言与MWORKS实践 课件 4-5-Modelica语法详解-连接与连接器(2学时)_第3页
多领域物理统一建模语言与MWORKS实践 课件 4-5-Modelica语法详解-连接与连接器(2学时)_第4页
多领域物理统一建模语言与MWORKS实践 课件 4-5-Modelica语法详解-连接与连接器(2学时)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Modelica语法详解连接与连接器哈工大计算学部-工业软件中心哈工大重庆研究院-无人装备中心曲明成

博士/副教授

qumingcheng@2025年4月23日多领域仿真模型思考:机、电、液、控多系统耦合如何实现?通过连接多个组件模型,从而实现多系统耦合仿真。Examples控制⇔电气电气⇔机械机械⇔液压机械⇔液压Modelica组件模型什么是Modelica组件模型?由哪些部分组成?连接机制组件框架组件模型简而言之,Modelica组件模型即为类的实例化,包含以下三要素:组件通过连接机制连接,并在连接图中可视化。组件框架实现了组件及其连接,并确保组件间的有效通讯以及连接关系下的约束保持。连接图-组件及其连接的图示化表达:大矩形框表示一个物理组件,如电阻、电容、转换器、齿轮、阀等;Component的单个小矩形框是连接器,左右两端的小矩形框的组合表示组件接口,接口的变量和方程用于实现组件间数据通信。连线对应物理连接,如电线、管道等;Modelica组件模型行为描述属性描述组件/元件模型连接器组件特性:组件只应包括连接器,必要的方程和变量;组件独立于使用环境来定义,这是组件重用的基本要求,即组件方程中,只能使用组件中定义的变量和连接器变量。复杂系统通常包含大量连接的组件;组件可嵌套其他互连的元件,并以此实现层次化建模;组件与其他组件或外部进行通信是通过连接器进行的。组件模型元件模型连接器行为描述能量流势变量/流变量微分方程传递函数状态空间物理模型系统行为的数学描述信号流input/output属性描述组件参数中间变量……连接器系统中有哪些连接器?分别如何使用?连接器就是连接器类(connector)的实例,用于定义组件与外部的通信接口。控制⇔电气电气⇔机械机械⇔液压机械⇔液压目录1.

信息流连接器2.能量流连接器3.可扩展连接器4.隐式连接器5.本章回顾特点:因果连接器(信号流连接器)具有固定数据流方向的连接器,数据流向为:input->output构建方式connectorRealInput=input

Realannotation(

defaultComponentName="u",Icon(…));endRealInput;connectorRealOutput=output

Realannotation(

defaultComponentName="y",Icon(…));endRealOutput;形式(使用因果前缀):connector+接口名称=input/output+数据类型

annotation(defaultComponentName=“接口默认名称”,…);end+接口名称model

Gain

parameter

Realk(start=1,unit="1");

Modelica.Blocks.Interfaces.RealInputu

annotation(…);

Modelica.Blocks.Interfaces.RealOutputy

annotation(…);equationy=k*u;endDer;实例化接口属性描述行为描述根据连接器的数据类型,可直接使用标准库中的因果连接器1.信息流连接器连接方式输出接口与输入接口进行连接,文本自动生成connect(输入接口,输出接口)代码连接机制单个连接或多重连接,输入接口的值均等于相互连接的输出接口的值。即connect(输入接口,输出接口)等效于:输入量=输出量根据连线的顺序确定注意(组件封装时):外部input连接器的行为在内部类似于output连接器外部output连接器的行为在内部类似于input连接器输入接口连接输入接口?输出接口连接输出接口?组件封装1.信息流连接器复合连接(1对多)为什么会出现窗口?如何进行连接?modelSum

parameter

Integernin=3;

parameter

Realk[nin]=ones(nin);

Modelica.Blocks.Interfaces.RealInputu[nin]

annotation(…);

Modelica.Blocks.Interfaces.RealOutputy

annotation(…);equation

y=k*u;endSum;u[nin]={u[1],u[2],…,u[nin]}u是一个长度为nin的向量,所以需要给向量组的各个分量赋值。与u[1]连接与u[2]、u[3]相同方式连接connect(cost.y,sum1.u[1]);1.信息流连接器复合连接(多对多)分别选取两个端口的分量进行连接“:”表示全部分量一一对应连接“1:3”表示第1个到第3个分量一一对应连接1.信息流连接器目录1.

信息流连接器2.能量流连接器3.可扩展连接器4.隐式连接器5.本章回顾特点:无固定数据流方向根据广义基尔霍夫定律将各个领域的接口的变量都分为流变量和势变量,从而实现多领域统一建模与仿真。机械口液压接口热接口多学科领域耦合组件组件连接连接器势变量流变量Modelica语言一个主要的优势就是可以进行多领域统一建模与仿真,那么如何来实现?通过定义不同领域的非因果连接器,非因果连接器接口传递能量,因此又称能量流连接器2.能量流连接器领域转化:根据不同领域的接口变量建立关系等式,用于多学科耦合仿真。控制机械电学equation

v=p.v-n.v;

0=p.i+n.i;i=p.i;

//机电转换phi=flange.phi;w=der(phi);k*w=v;tau=-k*i;tauElectrical=-tau;tau=flange.tau;2.能量流连接器EMF将电能转化为旋转机械能。它被用作电动机的基本组成部分。机械连接器法兰可以连接到Modelica的元件上。机械旋转库。flange.tau是切割扭矩,flange.phi是旋转连接处的角度。构建方式:接口变量包含流变量势变量connector

PositivePin

Modelica.SIunits.Voltage

v;

flow

Modelica.SIunits.Current

i;end

PositivePin;connector

NegativePin

Modelica.SIunits.Voltage

v;

flow

Modelica.SIunits.Current

i;end

NegativePin;connector

Port_A

Modelica.SIunits.Pressure

p;

flow

Modelica.SIunits.VolumeFlowRate

q;endPort_A;connector

Port_B

Modelica.SIunits.Pressure

p;

flow

Modelica.SIunits.VolumeFlowRate

q;endPort_B;modelResistance"电阻"

parameter

Modelica.SIunits.ResistanceR=10;Modelica.SIunits.Voltagev;

Modelica.SIunits.Currenti;

Connector.PositivePinpositivePin

annotation(…);

Connector.NegativePinnegativePin

annotation(…);

annotation(…);equationv=positivePin.v-negativePin.v;i=positivePin.i;positivePin.i+negativePin.i=0;v=R*i;endResistance;实例化接口属性描述行为描述connector

Flange_A

Modelica.SIunits.Position

s;

flow

Modelica.SIunits.Force

f;endFlange_A;connector

Flange_B

Modelica.SIunits.Position

s;

flow

Modelica.SIunits.Force

f;endFlange_B;实例化接口属性描述行为描述形式:connector+接口名称势变量单位+势变量名;

flow+流变量单位+流变量名;end+接口名称注意:

流变量前一定要使用flow前缀,否则会默认为势变量。2.能量流连接器连接方式同一类型的非因果连接器可以相互连接(接口变量完全相同)连接机制:广义基尔霍夫定律节点势变量相等节点流变量和零注意:对于接口中的流变量,流入为正,流出为负。port_Aport_B+pp+qqconnector(port_A,port_B);等效port_A.p=port_B.p;port_A.q+port_B.q=0;2.能量流连接器条件组件parameter

BooleanUseC=true;BasicModel.CapacitorcapacitorifUseC

annotation();通过if表达式控制组件是否接入系统,可用一个模型表达不同型号。表达式必须为布尔标量表达式,且必须为参数表达式。注意:如果布尔表达式为false,该组件在实例化系统中不会出现,与该组件的连接也被移除。电容未参与仿真,不在仿真结果中出现。2.能量流连接器目录1.

信息流连接器2.能量流连接器3.可扩展连接器4.隐式连接器5.本章回顾特点:连接器声明时出现expandable前缀,可扩展连接器中的变量可进行扩展声明,一般用于构建总线。构建方式:expandableconnectorAxisControlBus"Databusforonerobotaxis"

extends

Modelica.Icons.SignalSubBus;

Booleanmotion_refannotation(HideResult=false);

SI.Angleangle_refannotation(HideResult=false);

SI.Angleangleannotation(HideResult=false);

SI.AngularVelocityspeed_refannotation(HideResult=false);

SI.AngularVelocityspeedannotation(HideResult=false);

SI.AngularAccelerationacceleration_refannotation(HideResult=false);

SI.AngularAccelerationaccelerationannotation(HideResult=false);

SI.Currentcurrent_ref

annotation(HideResult=false);

SI.Currentcurrentannotation(HideResult=false);

SI.AnglemotorAngleannotation(HideResult=false);

SI.AngularVelocitymotorSpeedannotation(HideResult=false);

annotation(…);endAxisControlBus;expandableconnectorControlBus"Databusforallaxesofrobot"

extends

Modelica.Icons.SignalBus;

AxisControlBusaxisControlBus1"Busofaxis1";

AxisControlBusaxisControlBus2"Busofaxis2";

AxisControlBusaxisControlBus3

"Busofaxis3";

AxisControlBusaxisControlBus4"Busofaxis4";

AxisControlBusaxisControlBus5"Busofaxis5";

AxisControlBusaxisControlBus6"Busofaxis6";

annotation(…);endControlBus;形式:expandableconnector+接口名称数据类型+变量名称;

接口路径+接口名称;…end+接口名称3.可扩展连接器expandableconnectorBus

importSI=Modelica.SIunits;

SI.Forcef;

annotation(…);endBus;使用方式连接器中已设定变量连接连接器中无设定变量连接连接时增加变量并命名仿真结果为:原设定变量和扩展变量所有结果3.可扩展连接器使用方式(总线与总线连接)expandableconnectorBus1

importSI=Modelica.SIunits;

SI.Forcef;

SI.Positionx;

annotation(…);endBus1;expandableconnectorBus2

importSI=Modelica.SIunits;

SI.Positionx;SI.Velocityv;SI.Accelerationa;

annotation(…);endBus;说明:当两个可扩展连接器相连时,单个连接器中定义的变量会被扩展至两个连接器中变量定义的总集。bus1_1中的x为输入变量,bus2_1中的x为输出变量。总线中输入输出流向在编译过程中自行判断。3.可扩展连接器注意事项3.可扩展连接器与一般非因果连接器不同,当连接器定义变量名称不同(包含大小写区分)时,非因果连接器不可以进行连接,但可扩展连接器允许进行连接。可扩展连接器内的变量,只要类型相同即可进行连接。expandableconnectorconnector1Reala;

Integerb;

Modelica.SIunits.Voltagev;

Modelica.SIunits.CurrentI;endconnector1;expandableconnectorconnector2

Reala;

Integerb;

Modelica.SIunits.Voltage

V;

Modelica.SIunits.CurrentI;end

connector2;connector

connector3

Modelica.SIunits.Voltagev;

flow

Modelica.SIunits.Currenti;endconnector4;connectorconnector4

Modelica.SIunits.Voltagev;

flow

Modelica.SIunits.CurrentI;endconnector4;目录1.

信息流连接器2.能量流连接器3.可扩展连接器4.隐式连接器5.本章回顾特点:通过inner和outer声明前缀为一个对象及其n个组件创建隐式连接,

增加模型显示的简洁性。常用场景一个环境对象的共享属性可以被处在此环境中的所有组件访问。系统中所有组件均可读取环境和油液物性4.隐式连接器使用方式modelEnvironment

parameter

Realk=1;

Modelica.SIunits.TemperatureT0;equation

T0=sin(k*time)+273.15;

annotation(defaultComponentName="environment",defaultComponentPrefixes=“inner”,

Icon(…));endEnvironment;modelComponent

outer

ModelicaGrammar.Connector.Environmentenvironment;

Modelica.SIunits.TemperatureT;equation

T=environment.T0;

annotation(…)endComponent;形式(inner定义):model+模型名称<属性定义><行为描述>annotation(

defaultComponentName="默认组件名",defaultComponentPrefixes="inner");end+模型名称形式(outer读取):model+模型名称outer+inner模型路径+实例化名称;<属性定义>equation

变量名称=inner实例化模型名称.读取的变量名<其他方程>end+模型名称保持一致model

System

Componentcomponent

annotation(…);

inner

Environmentenvironment

annotation(…);end

System;根据inner模型中annotation描述自动生成inner前缀和默认组件名4.隐式连接器注意:隐式连接器中:实例化默认名称不允许与模型重名组件中实例化名称应该与隐式连接器实例化后默认名称一致集成使用modelInner

Componentcomponent

annotation(…);

inner

Environmentenvironment

annotation(…);endInner;注意:根据inner模型中annotation描述自动生成inner前缀和默认组件名component中的T0与environment仿真结果T保持一致。4.隐式连接器使用方式modelEnvironment

parameter

Realk=1;

Modelica.SIunits.TemperatureT0;equation

T0=sin(k*time)+273.15;

annotation(defaultComponentName="environment",defaultComponentPrefixes=“inner”,

Icon(…));endEnvironment;modelComponent

outer

ModelicaGrammar.Connector.Environmentenvironment;

Modelica.SIunits.TemperatureT;equation

T=environment.T0;

annotation(…)endComponent;形式(inner定义):model+模型名称<属性定义><行为描述>annotation(

defaultComponentName="默认组件名",defaultComponentPrefixes="inner");end+模型名称形式(outer读取):model+模型名称outer+inner模型路径+实例化名称;<属性定义>equation

变量名称=inner实例化模型名称.读取的变量名<其他方程>end+模型名称保持一致model

System

Componentcomponent

annotation(…);

inner

Environmentenvironment

annotation(…);end

System;根据inner模型中annotation描述自动生成inner前缀和默认组件名4.隐式连接器注意:隐式连接器中:实例化默认名称不允许与模型重名组件中实例化名称应该与隐式连接器实例化后默认名称一致去掉inner,outer?组件模型中去了outer,相当于将环境模型进行实例化,组件都可以直接仿真,但是这时候在系统模型中修改环境模型的参数时,组件里面的T不会改变集成使用4.隐式连接器modelEnvironment

parameterRealk=1;

innerRealT0;Componentcomp1;Componentcomp2;equationT0=sin(k*time)+273.15;

annotation(defaultComponentName="environment",defaultComponentPrefixes="inner");endEnvironment;modelComponent

outerRealT0;

RealT;

equationT=T0;endComponent;modelSystemEnvironmente1(k=1);Environmente2(k=4);endSystem;在System中改变了k的值,但Component中的T依旧与Environment中的T0值相同。目录1.

信息流连接器2.能量流连接器3.可扩展连接器4.隐式连接器5.本章回顾5.本章回顾因果连接器具有因果传递顺序的信号流连接器,一般用于控制系统建模非因果连接器根据广义基尔霍夫定律建立的能量流连接器,用于机电液热控等物理领域建模可扩展连接器可根据接入变量扩展接口变量的总线连接器,一般用于总线定义隐式连接器通过inner/outer配合使用的隐式连接器,一般用于读取环境变量和介质物性。5.本章回顾课堂回顾1.下列不属于模型三要素的是()。A.组件模型B.参数C.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论