本节书摘来自华章出版社《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》一书中的第2章,第2.8节,作者:[美]爱德华·阿什福德·李(Edward Ashford Lee),更多章节内容可以访问云栖社区“华章计算机”公众号查看
2.8 小结
本章介绍了名为Vergil的Ptolemy II可视化界面,它支持通过图形化方式构建模型,与此同时,还介绍了Ptolemy II系统的一些基础功能。后续章节将着重介绍各种可用的指示器的性质。附录部分将着重介绍计算模型的通用架构和跨计算模型的能力。
补充阅读:处理数组的角色
下面是角色可以对数组进行的操作:
ArrayAccumulate将输入数组附加于上一数组之后,以扩大输出数组。
ArrayAppend添加多重端口的信道上提供的输入数组。
ArrayAverage求数组元素的平均值。
ArrayContains确定数组是否包含特定的元素。
ArrayElement从一个数组中提取某个元素。
ArrayElementAsMatrix 使用类似矩阵的索引来提取元素。
ArrayExtract提取子数组。
ArrayLength 将输入数组的长度输出。
ArrayLevelCrossing 找出超过阈值的元素。
ArrayMaximum 寻找数组中的最大元素。
ArrayMinimum 寻找数组中的最小元素。
ArrayPeakSearch寻找数组元素的峰值。
ArrayRemoveElement 删除某个特定元素的实例。
ArraySort 对数组进行排序。
ArraySum 对数组元素求和。
ArrayUpdate 输出一个与输入数组类似的新数组,但替换原数组的一个元素。
另外,很多多态(Polymorphic)角色,如AddSubtract ,也可作用于数组。
补充阅读:移动代码
Ptolemy II中的一些角色支持移动模型(mobile model)。也就是说,对于从一个角色传递到另一个角色的数据,与其说它是运行于模型上的数据,不如说它是个待执行的模型。ApplyFunction角色从一个输入端口接收一个用表达式语言(见第13章)描述的函数,并将该函数作用于另一个端口(用户必须创建这个端口)到达的数据。MobileModel 角色从一个端口接收一个Ptolemy II模型的MoML描述,然后执行该模型来处理从另一端口输入的数据流。
图2-44 ApplyFunction角色从一个端口接收函数定义,并将函数作用于到达另一个端口的数据
ApplyFunction 角色的使用见图2-44。在该模型中,以交替方式为ApplyFunction角色提供两个函数:一个函数计算x2,另一个函数计算2x的。这两个函数由两个Const角色提供,可以从Sources→GenericSources子库中找到。这些函数由Commutator角色交替输出,Commutator在FlowControl→Aggregators子库中。