本节书摘来自华章出版社《信息物理融合系统(cps)设计、建模与仿真——基于 ptolemy ii 平台》一书中的第2章,第2.8节,作者:[美]爱德华·阿什福德·李(edward ashford lee),更多章节内容可以访问云栖社区“华章计算机”公众号查看
本章介绍了名为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子库中。