首页/文章/ 详情

Amesim中的因果关系和元件连接规则

1年前浏览1011

Amesim中的元件连接问题是大家经常会遇到的问题,尤其对初学者而言,是个容易困惑的问题。在本文中,笔者根据自己的理解阐述了Amesim中的因果关系和元件连接规则,希望对大家有所帮助。


01    
参数和变量

为了更好地阐明Amesim中的因果关系和元件的连接规则,首先要明确参数、变量、外部变量等基本概念以及它们之间的运算关系。


总的来说,“参数(parameter)”是指用户输入的量,“变量(variable)”是由Amesim计算得到的量。在Amesim中,每个元件子模型本质上都是一组用代码表示的数学方程,这组方程通过若干已知量计算若干未知变量。其中,已知量包括两部分,一是用户在参数模式下输入的参数,二是通过外部端口输入的输入变量(由其他元件子模型计算并输出);计算得到的变量也分为两部分,一是输出变量,通过外部端口输出到其他元件子模型并参与计算,二是内部变量(internal variable),只保留在子模型内部,并未输出。输入变量和输出变量统称为这个元件子模型的外部变量(external variable)。图1所示为参数和变量以及它们在元件子模型中的运算关系。


图1 参数和变量及其在元件子模型中的运算


查看元件外部变量的方法为:右击元件,点击External variables...(或选中元件,点击工具栏中的External variables)。查看外部变量时,箭头的方向也用于表示输入输出矢量变量的正方向。


有一点要说明的是,我们习惯上说“元件的外部变量”,严格来讲是不准确的。同一元件可能对应多个子模型,而每个子模型的外部变量通常是不同的,因此同一元件的外部变量不是固定的,而是由选定的子模型决定的,所以“子模型的外部变量”这一说法更为严谨。在本文中,为了方便表述,笔者也会采用“元件的外部变量”这一习惯说法,大家要注意其中的区别。


另外,本文中涉及到的一些实例均是基于Amesim 17版本,不同版本的软件元件子模型可能会略有不同,这一点也要注意。


02    
因果关系和元件的连接      
   

大家在学习Amesim时,一定遇到过“因果关系(causality)”这个概念。因果关系,通俗理解,就是相互连接的元件外部变量之间的匹配关系,即一个元件要通过外部端口从另一个元件索取计算所需的变量,同时也通过外部端口给予另一个元件计算所需的变量。相互连接的元件,本质上是各取所需、互利共存的关系。图2显示了元件能否连接的四大类情况。一般情况下,两个元件要想相互连接,那么在连接端口处,一个元件的输出变量必须至少包含另一个元件所需的全部输入变量。


图2 元件能否连接的四大类情况示例


03    
常见的元件连接问题    

问题1:为什么案例模型中的元件可以连接,我使用相同的元件却不能连接?


我们在做一些现成的仿真案例时偶尔会遇到这个问题。前面已经提到,同一个元件的不同子模型,其外部变量通常是不同的。因此,造成这个问题的主要原因是模型中的部分元件已经选择了不合适的子模型,移除元件子模型即可连接。右击要移除子模型的元件,点击Remove submodels(或或选中要移除子模型的元件,单击工具栏中的Remove submodels)即可移除元件子模型。


除上述原因外,使用的软件版本不同也可能导致这个问题的出现。与低版本相比,高版本Amesim可能会对部分元件的子模型进行整合和改进。因此,当建模时使用的软件和案例中的软件版本不同时,也可能会导致元件的连接情况不同。


问题2:为什么在草图模式下元件可以相互连接,在子模型模式下选用首选子模型时,有些元件没有可选子模型?


一般情况下,只要在草图模型下元件可以相互连接,那么在子模型模式下都会有可选子模型。如果遇到选用首选子模型时存在元件没有可选子模型的情况,那么可以先手动选择出问题处元件的子模型,剩下的元件用首选子模型


『提到“首选子模型”,这里再啰嗦几句。对于初学者,选用首选子模型可以提高建模效率、降低出错概率,但首选子模型通常选择的是元件可选子模型中最简单的那个子模型,而未必是最合适的。因此,大家熟练之后最好能根据要分析的具体模型和问题选择最合适的子模型。』

问题3:有没有什么方法可以解决外部变量不匹配导致的元件不能连接问题?


首先来看两个简单的案例:


〖案例一〗:如图3所示,要把四通阀的一个通口堵上,当作三通阀使用,但零流量源和阀通口之间的外部变量不匹配,不能直接连接。这时可以在二者之间连接一段管道(或液压库中的液压腔元件等),并通过参数设置使管道容积很小,尽量减少管道对模型仿真的影响。

图3 案例一示意图


〖案例二〗:如图4所示,要分析弹簧阻尼器在外力作用下的响应,但弹簧阻尼器无法直接输入力。为解决这个问题,可以在外力和弹簧阻尼器之间添加质量块元件,并选用子模型MAS000(此子模型的质量为0,关于它的详细用法大家可查阅帮助文档,此处不再赘述)。

图4 案例二示意图

由上述两个案例可以看出,在有些情况下,通过元件的灵活选用和组合可以解决外部变量不匹配的问题,但前提是模型在因果逻辑上是合理的。假如两个元件的外部变量是八杆子打不着的(比如图2中的情况一,一个外部变量机械量,另一个是液压量),是无论如何也不能连接的。


因此,当遇到元件不能连接的情况时,首先要分析模型本身在因果逻辑上是否存在问题,再尝试解决外部变量不匹配的问题。


问题4:带感叹号的元件是怎么回事?


建模过程中有时会遇到一些子模型,当它们被选用时,元件图标里会多出“!”的标识,其含义可以从以下两方面理解:


第一,“!”意思是说,这个子模型的外部变量和其他子模型有较大差别,并且该子模型所表示的物理模型和计算方式也跟我们所理解的通常意义上的元件物理模型和计算方式存在较大差别


举个例子,图5所示为质量块元件的子模型及外部变量。通常情况下的子模型(前三个子模型),外部变量的输入为力变量,输出为运动变量(这也符合我们所理解的通常意义上的质量块的物理规律,即质量块在力的作用下运动状态发生改变,并输出位移、速度、加速度等与运动相关的量)。但是图标带“!”的子模型(后两个子模型),其中的一个端口输入为运动变量、输出为力变量,此时它所表示的物理模型不再是普通的质量块,而是一个不包含质量的“摩擦力发生器(friction force generator)”。

图5 质量块元件各子模型的外部变量

第二,帮助文档在介绍此类子模型时,经常会出现“intended for advanced users”、“use with caution”等字样。因此,“!”是要告诉我们,这类子模型通常由具有明确建模意图的高级用户使用;对于普通用户,当元件图标中出现“!”时,鉴于此时的子模型已不再是通常意义上的元件物理模型,因此很有可能所搭建模型的因果逻辑已经出现了问题。所以当模型中出现此类子模型时,大家一定要认真检查,弄清楚其含义,谨慎使用

 

以上就是笔者总结几点常见问题。每个人建立的仿真模型不同、软件使用的熟练程度也不同,遇到的问题也是形形色 色,因此本文无法涵盖所有元件连接方面的问题。但大家要记住一点,所有元件不能连接或没有可选子模型的问题,本质上都是因为不满足元件相互连接的因果关系,从外部变量入手分析,总是可以找到原因的



 

Tips:

  • 给大家推荐一个优质公 众 号“古德曼汽车工业”,主要分享先进仿真技术(含Amesim仿真)和汽车控制工程方面的知识,里面的文章从内容到排版都很用心、很高级,有需要的朋友可以关注一下~


 


来源:Amesim学习与应用
通用汽车控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-07-06
最近编辑:1年前
batt
本科 微信公众号:Amesim学习与应用
获赞 73粉丝 376文章 197课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈