本节书摘来自华章出版社《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》一书中的第2章,第2.6节,作者:[美]爱德华·阿什福德·李(Edward Ashford Lee),更多章节内容可以访问云栖社区“华章计算机”公众号查看
2.6 类和继承
Ptolemy II可以定义面向角色的类(actor-oriented class)(Lee et al., 2009a)。这些类被定义后可以用于实例(instance)和子类(subclass)的创建,它们都使用了类继承(inheritance)的概念。类为角色提供通用的定义(或模板)。实例是类的一个单独的、特定的实现,一个子类源于父类——它包含和父类相同的结构,但可能有一些修改。这种方法提高了设计的模块化,详见下面的例子。
例2.1 结合在2.3节中开发的模型,如图2-29所示。假设希望创建信道角色的多个实例,如图2-30所示。在图2-30中,正弦波信号通过5个不同的信道(注意正弦波和信道之间的黑色菱形关系符号,它表示将相同的信号分别广播到5个信道)。信道的输出被叠加在一起并以图形显示。结果是一条明显比单信道输出正弦波清晰的正弦波。(在通信系统中,这种技术称为分集系统。信道的多个副本(每个副本都携带独立噪声)用于实现可靠通信。)

尽管上述方法有效,但依然是个糟糕的设计,原因有两点。首先在模型中,5个信道是通过硬连接实现的(将在下一节解释这个问题)。其次,每个信道都是图2-29中复合角色的副本。因此,如果信道的设计需要改变,所有5个副本都必须改变。因此这种方法使得模型难以维护或修改。
使用类和实例的一个小的优势就是,模型的XML文件表示会更小,因为类的设计只给出一次,而不是多次。
一个更好的方法是定义一个Channel类,然后用这

本文介绍了信息物理融合系统(CPS)设计工具Ptolemy II中的类和继承机制,强调了类在提高设计模块化和易维护性方面的优势。通过实例展示了如何创建和使用类,以及类的实例化、子类化和参数重写。此外,还讨论了模型间类的共享方法,包括将类保存在独立文件中以便多个模型共享。
最低0.47元/天 解锁文章
993

被折叠的 条评论
为什么被折叠?



