文章来源Amesim学习与应用公众号,作者新浩
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 案例一示意图
由上述两个案例可以看出,在有些情况下,通过元件的灵活选用和组合可以解决外部变量不匹配的问题,但前提是模型在因果逻辑上是合理的。假如两个元件的外部变量是八杆子打不着的(比如图2中的情况一,一个外部变量机械量,另一个是液压量),是无论如何也不能连接的。
因此,当遇到元件不能连接的情况时,首先要分析模型本身在因果逻辑上是否存在问题,再尝试解决外部变量不匹配的问题。
问题4:带感叹号的元件是怎么回事?
建模过程中有时会遇到一些子模型,当它们被选用时,元件图标里会多出“!”的标识,其含义可以从以下两方面理解:
第一,“!”意思是说,这个子模型的外部变量和其他子模型有较大差别,并且该子模型所表示的物理模型和计算方式也跟我们所理解的通常意义上的元件物理模型和计算方式存在较大差别。
第二,帮助文档在介绍此类子模型时,经常会出现“intended for advanced users”、“use with caution”等字样。因此,“!”是要告诉我们,这类子模型通常由具有明确建模意图的高级用户使用;对于普通用户,当元件图标中出现“!”时,鉴于此时的子模型已不再是通常意义上的元件物理模型,因此很有可能所搭建模型的因果逻辑已经出现了问题。所以当模型中出现此类子模型时,大家一定要认真检查,弄清楚其含义,谨慎使用。
以上就是笔者总结几点常见问题。每个人建立的仿真模型不同、软件使用的熟练程度也不同,遇到的问题也是形形色色,因此本文无法涵盖所有元件连接方面的问题。但大家要记住一点,所有元件不能连接或没有可选子模型的问题,本质上都是因为不满足元件相互连接的因果关系,从外部变量入手分析,总是可以找到原因的。