可扩展连接器

定义

正如我们在本章热力控制例子里看到的,要建构一个架构模型时很难定义一个接口去涵盖所有重要配置。在这种情况下,一种解决方法就是用expandable连接器。

可扩展连接器使用与正常连接器定义完全相同的语法(见前面连接器定义的讨论)。唯一不同之处在于定义前加入了expandable限定词,如:

expandable connector ConnectorName "Description of the connector"
  // Declarations for connector variables
end ConnectorName;

倘若我们希望的话,就可以忽略expandable限定词而把这个连接器当成一个正常的连接器来使用。上述使用所依赖的假设是,将可扩展连接器作为正常连接器来使用的组件其方程数目正确,使得任何组件模型均为平衡的组件

但是,如果用户将信号连接到某个有特定名称的元素,而该元素不是连接定义内的一部分,那么该新元素将添加到连接器的该实例里。此新元素的类型将和与其相连的连接器相同的。最终,该元素将被添加到连接集内任何其他连接器的实例上。

这样,expandable连接器定义便可以“增长”出原来没有的附加信号。这样,可扩展连接器的任何接口定义就具有灵活性,可以在初始连接器定义的基础上交换更多的信息。正如我们在热力控制例子里看到的一样,这个功能在当接口因应控制器的不同而显著改变时非常有用。

到目前为止,可扩展连接器最常用的用例是用向连接器添加额外inputoutput信号。这通常出现在传感器、执行器这些子系统的实现细节改变时。因为控制器与上述部件配对所需信息会因此而改变。例如,凸轮相位控制的内燃机将需要来自控制器的凸轮角指令值。但是,如果发动机没有这个功能则没有这样的必要。

不过, expandable连接器也可以连接非因果的子连接器,以此为子系统附加新的物理相互作用。例如,某些子系统可能不包含热效应,但另一些则包含。包含热效应的子系统可以加入非因果连接器,从而允许其它子系统与之进行热交换。

结论

可扩展接口定义规定了连接器所拥有变量的最小集。使用可扩展接口的前提是,所有元件模型必须让连接器内定义变量数目与方程数目相平衡。此外,附加的变量可以随时添加至expandable连接器内。为此,整个系统模型仍要平衡。可扩展连接器一般用于与接口定义共同使用。这样就可以定义架构模型所需最小接口,以便通过选择子系统的不同实现来实现扩展。