描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111558439丛书名: 计算机科学丛书
内容简介
本书是用于复杂异构系统设计的计算模型的指南。尤其关注CPS(集成了计算、网络和物理过程)。本书汇集了加州大学伯克利分校Ptolemy项目20多年的研究经验和成果,UCB开发了许多现在广为使用的设计、建模和仿真技术。本书中所有的方法均在支持系统级异构设计与仿真的开源平台PtolemyII实现。
目 录
目 录
System Design, Modeling, and Simulation using Ptolemy II
出版者的话
译者序
前言
第一部分 入门
第1章 异构建模 2
1.1 语法、语义、语用 3
1.2 域和计算模型 4
1.3 模型在设计中的作用 5
1.4 角色模型 6
1.5 层次结构模型 7
1.6 异构建模的方法 7
1.7 时间模型 11
1.7.1 层次化时间 12
1.7.2 超密时间 12
1.7.3 时间的数字表示 14
1.8 域和指示器概述 15
1.9 案例研究 18
1.10 小结 22
第2 图形化建模 23
2.1 开始 23
2.1.1 信号处理模型执行范例 24
2.1.2 模型的创建和运行 26
2.1.3 建立连接 28
2.2 令牌和数据类型 31
2.3 层次结构和复合角色 35
2.3.1 复合角色端口添加 36
2.3.2 端口类型设置 37
2.3.3 多端口、总线和层次结构 38
2.4 注释及参数设置 39
2.4.1 层次化模型中的参数 39
2.4.2 修饰元素 40
2.4.3 创建自定义图标 41
2.5 如何操作大模型 42
2.6 类和继承 43
2.6.1 实例中参数值的重写 45
2.6.2 子类和继承 45
2.6.3 模型间类的共享 47
2.7 高阶组件 49
2.7.1 MultiInstanceComposite角色 49
2.7.2 IterateOverArray角色 50
2.7.3 生命周期管理角色 52
2.8 小结 53
第二部分 计算模型 55
第3章 数据流 56
3.1 同步数据流 56
3.1.1 平衡方程 57
3.1.2 反馈回路 62
3.1.3 数据流模型中的时间 63
3.2 动态数据流 68
3.2.1 点火规则 68
3.2.2 DDF中的迭代 71
3.2.3 将DDF与其他域结合 74
3.3 小结 77
练习 78
第4章 进程网络和会话 80
4.1 Kahn进程网络 80
4.1.1 并发点火 83
4.1.2 PN模型的执行停止 87
4.2 会话 88
4.2.1 多路会话 89
4.2.2 条件会话 90
4.2.3 资源管理 91
4.3 小结 92
练习 92
第5章 同步响应模型 96
5.1 固定点语义 97
5.2 SR实例 98
5.2.1 非循环模型 98
5.2.2 反馈 99
5.2.3 因果循环 106
5.2.4 多时钟模型 106
5.3 寻找定点 107
5.4 定点逻辑 109
5.5 小结 112
练习 112
第6章 有限状态机 113
6.1 Ptolemy中的FSM创建 113
6.2 FSM的结构与执行 116
6.2.1 转移条件定义 119
6.2.2 输出动作 120
6.2.3 赋值动作和扩展有限状态机 120
6.2.4 终止状态 122
6.2.5 默认转移 123
6.2.6 非确定性状态机 124
6.2.7 立即转移 126
6.3 分层FSM 128
6.3.1 状态细化 129
6.3.2 分层FSM的优点 130
6.3.3 抢占式转移与历史转移 130
6.3.4 终止转移 132
6.3.5 模态模型的执行模式 133
6.4 状态机的并发复合 135
6.5 小结 137
练习 138
第7章 离散事件模型 141
7.1 DE域中的时间模型 142
7.1.1 模型时间与实际时间 142
7.1.2 并发事件 143
7.1.3 同步事件 144
7.2 排队系统 149
7.3 调度 152
7.3.1 优先级 154
7.3.2 反馈回路 155
7.3.3 多线程执行 157
7.3.4 调度局限性 159
7.4 芝诺(Zeno)模型 160
7.5 其他计算模型与DE的组合 161
7.5.1 状态机和DE 161
7.5.2 数据流和DE组合 162
7.6 无线和传感器网络系统 162
7.7 小结 164
练习 164
第8章 模态模型 166
8.1 模态模型的结构 166
8.2 转移 170
8.2.1 复位转移 170
8.2.2 抢占式转移 171
8.2.3 差错转移 172
8.2.4 终止转移 174
8.3 模态模型的执行 175
8.4 模态模型和域 176
8.4.1 数据流和模态模型 176
8.4.2 同步响应和模态模型 181
8.4.3 进程网络和会话 181
8.5 模态模型中的时间 181
8.5.1 模态模型中的时间延迟 184
8.5.2 本地时间和环境时间 185
8.5.3 模式细化中的开始时间 187
8.6 小结 188
练习 188
第9章 连续时间模型 189
9.1 常微分方程 189
9.1.1 积分器 189
9.1.2 传递函数 191
9.1.3 求解器 192
9.2 离散和连续的混合系统 197
9.2.1 分段连续信号 197
9.2.2 连续域中的离散事件信号 199
9.2.3 离散时间的积分器重置 200
9.2.4 狄拉克δ函数 201
9.2.5 与DE互操作 204
9.2.6 定点语义 205
9.3 混合系统和模态模型 206
9.3.1 混合系统和不连续信号 208
9.4 小结 210
练习 210
第10章 计时系统建模 211
10.1 时钟 211
10.2 时钟同步 214
10.3 通信延时建模 217
10.3.1 固定和独立的通信延时 217
10.3.2 共享资源竞争行为建模 219
10.3.3 复合切面 222
10.4 执行时间建模 223
10.5 分布式实时系统的Ptides模型 225
10.5.1 Ptides模型的结构 226
10.5.2 Ptides组件 231
10.6 小结 233
第11章 Ptera:面向事件的计算模型 234
11.1 扁平模型的语法和语义 234
11.1.1 入门实例 235
11.1.2 事件参数 236
11.1.3 取消关系 237
11.1.4 同时事件 237
11.1.5 潜在的非确定性 237
11.1.6 LIFO和FIFO策略 238
11.1.7 优先级 239
11.1.8 事件命名及调度关系 239
11.1.9 原子性设计 239
System Design, Modeling, and Simulation using Ptolemy II
出版者的话
译者序
前言
第一部分 入门
第1章 异构建模 2
1.1 语法、语义、语用 3
1.2 域和计算模型 4
1.3 模型在设计中的作用 5
1.4 角色模型 6
1.5 层次结构模型 7
1.6 异构建模的方法 7
1.7 时间模型 11
1.7.1 层次化时间 12
1.7.2 超密时间 12
1.7.3 时间的数字表示 14
1.8 域和指示器概述 15
1.9 案例研究 18
1.10 小结 22
第2 图形化建模 23
2.1 开始 23
2.1.1 信号处理模型执行范例 24
2.1.2 模型的创建和运行 26
2.1.3 建立连接 28
2.2 令牌和数据类型 31
2.3 层次结构和复合角色 35
2.3.1 复合角色端口添加 36
2.3.2 端口类型设置 37
2.3.3 多端口、总线和层次结构 38
2.4 注释及参数设置 39
2.4.1 层次化模型中的参数 39
2.4.2 修饰元素 40
2.4.3 创建自定义图标 41
2.5 如何操作大模型 42
2.6 类和继承 43
2.6.1 实例中参数值的重写 45
2.6.2 子类和继承 45
2.6.3 模型间类的共享 47
2.7 高阶组件 49
2.7.1 MultiInstanceComposite角色 49
2.7.2 IterateOverArray角色 50
2.7.3 生命周期管理角色 52
2.8 小结 53
第二部分 计算模型 55
第3章 数据流 56
3.1 同步数据流 56
3.1.1 平衡方程 57
3.1.2 反馈回路 62
3.1.3 数据流模型中的时间 63
3.2 动态数据流 68
3.2.1 点火规则 68
3.2.2 DDF中的迭代 71
3.2.3 将DDF与其他域结合 74
3.3 小结 77
练习 78
第4章 进程网络和会话 80
4.1 Kahn进程网络 80
4.1.1 并发点火 83
4.1.2 PN模型的执行停止 87
4.2 会话 88
4.2.1 多路会话 89
4.2.2 条件会话 90
4.2.3 资源管理 91
4.3 小结 92
练习 92
第5章 同步响应模型 96
5.1 固定点语义 97
5.2 SR实例 98
5.2.1 非循环模型 98
5.2.2 反馈 99
5.2.3 因果循环 106
5.2.4 多时钟模型 106
5.3 寻找定点 107
5.4 定点逻辑 109
5.5 小结 112
练习 112
第6章 有限状态机 113
6.1 Ptolemy中的FSM创建 113
6.2 FSM的结构与执行 116
6.2.1 转移条件定义 119
6.2.2 输出动作 120
6.2.3 赋值动作和扩展有限状态机 120
6.2.4 终止状态 122
6.2.5 默认转移 123
6.2.6 非确定性状态机 124
6.2.7 立即转移 126
6.3 分层FSM 128
6.3.1 状态细化 129
6.3.2 分层FSM的优点 130
6.3.3 抢占式转移与历史转移 130
6.3.4 终止转移 132
6.3.5 模态模型的执行模式 133
6.4 状态机的并发复合 135
6.5 小结 137
练习 138
第7章 离散事件模型 141
7.1 DE域中的时间模型 142
7.1.1 模型时间与实际时间 142
7.1.2 并发事件 143
7.1.3 同步事件 144
7.2 排队系统 149
7.3 调度 152
7.3.1 优先级 154
7.3.2 反馈回路 155
7.3.3 多线程执行 157
7.3.4 调度局限性 159
7.4 芝诺(Zeno)模型 160
7.5 其他计算模型与DE的组合 161
7.5.1 状态机和DE 161
7.5.2 数据流和DE组合 162
7.6 无线和传感器网络系统 162
7.7 小结 164
练习 164
第8章 模态模型 166
8.1 模态模型的结构 166
8.2 转移 170
8.2.1 复位转移 170
8.2.2 抢占式转移 171
8.2.3 差错转移 172
8.2.4 终止转移 174
8.3 模态模型的执行 175
8.4 模态模型和域 176
8.4.1 数据流和模态模型 176
8.4.2 同步响应和模态模型 181
8.4.3 进程网络和会话 181
8.5 模态模型中的时间 181
8.5.1 模态模型中的时间延迟 184
8.5.2 本地时间和环境时间 185
8.5.3 模式细化中的开始时间 187
8.6 小结 188
练习 188
第9章 连续时间模型 189
9.1 常微分方程 189
9.1.1 积分器 189
9.1.2 传递函数 191
9.1.3 求解器 192
9.2 离散和连续的混合系统 197
9.2.1 分段连续信号 197
9.2.2 连续域中的离散事件信号 199
9.2.3 离散时间的积分器重置 200
9.2.4 狄拉克δ函数 201
9.2.5 与DE互操作 204
9.2.6 定点语义 205
9.3 混合系统和模态模型 206
9.3.1 混合系统和不连续信号 208
9.4 小结 210
练习 210
第10章 计时系统建模 211
10.1 时钟 211
10.2 时钟同步 214
10.3 通信延时建模 217
10.3.1 固定和独立的通信延时 217
10.3.2 共享资源竞争行为建模 219
10.3.3 复合切面 222
10.4 执行时间建模 223
10.5 分布式实时系统的Ptides模型 225
10.5.1 Ptides模型的结构 226
10.5.2 Ptides组件 231
10.6 小结 233
第11章 Ptera:面向事件的计算模型 234
11.1 扁平模型的语法和语义 234
11.1.1 入门实例 235
11.1.2 事件参数 236
11.1.3 取消关系 237
11.1.4 同时事件 237
11.1.5 潜在的非确定性 237
11.1.6 LIFO和FIFO策略 238
11.1.7 优先级 239
11.1.8 事件命名及调度关系 239
11.1.9 原子性设计 239
前 言
前 言System Design, Modeling, and Simulation using Ptolemy II“我”上次发表著作是在一千九百年前。“我”很高兴从退休中复出,对以本人名字命名的工程(Ptolemy工程)发表自己的看法。与“我”以往在天文和地理方面的工作相似,该项目也是对复杂系统进行处理。值得一提的是,类似“我”之前的许多著作,本书同样凝结了许多人共同的智慧和努力。
“我”以前在《The Almagest》(天文大全)中研究行星、太阳、地球和月亮的运动规律,这些运动都是并发交互过程(concurrent interacting process)。并且这些运动都是确定性的(deterministic),并不以神的意志为转移。这些模型的关注点不仅仅是对所观察到的行为进行精确匹配,更重要的是对行为的预测。类似地,Ptolemy项目研究并发交互过程,并重点关注确定性模型。
理想情况下,求知欲推动着人类从迷信和盲目的信仰发展到逻辑和计量。现在所谓的“科学”深深根植于科学方法(scientific method),特别是在自然系统的研究中。利用科学方法,从设想开始,设计实验,并基于实验来对之前的设想下定论。当然,为了能够进行计量,待测量的工件或过程必须以某种形式存在。在“我”早期的研究中,不存在该问题,因为太阳、地球、月亮和行星是已经存在的事物。然而工程学科所关注的是人为的工件和过程,研究的是自然界中本不存在的系统。即便如此,科学方法也可用于并已经应用于工程设计中。工程师构建仿真和原型系统,将设想公式化,然后通过实验来进行设想的测试。
因为针对的是本不存在的工件和过程,所以工程设计不能单单基于科学方法。实验的目的是提高对所设计的工件、过程的认知。但是在进行实验前,必须将这些工件或者过程创造出来。在认识某些事物之前,不得不先把它们创造出来,这点注定了我们的设计会根植于“迷信”和盲目的信仰。
模型构造是与科学方法互补的重要科学部分。模型是物理现实的一种抽象,并且模型提供内视和行为预测的能力可以形成设想的核心思想,该思想核心等待被实验证实或证伪。建模本身更应归于工程学科,而非自然科学。从根本上讲,它并不是对于自然界已存在系统的研究。相反,它是人类主导的、对于自然界本身不存在事物的建造过程。一个模型本身就是一项工程。
好的模型甚至可以减少对计量的需求,因此可以减少对科学方法的依赖。比如,我们一旦有一个行星运动模型,我们就可以精确预测它们的位置,这样就减少了对其位置测量的需要。计量的角色从确定行星位置转变为改善它们的运动模型以及检测模型对运动的影响(工程上称为“故障检测”(fault detection))。
无论在自然科学还是在工程中,模型都可以通过迭代方法来进行优化。“我”提出的以地球为中心的宇宙模型需要很多次迭代来修正,以逼近实验观测到的行星运动情况。最终模型的预测能力让“我”引以为豪。并且,基于这些模型的预测方法可以通过星盘机械化,这点同样让“我”感到自豪。即便这样,不得不承认,令人尊敬的同行哥白尼(Nicolaus Copernicus)为行星运动提出了一个更好的模型(日心学说)。他的模型从概念上讲是更简单的。这是一种概念上的飞跃:我们可观测到的宇宙的中心,即我们所在的大地,并非一定是宇宙模型的中心。更进一步说,相对于物理世界,对于模型我们有更大的自由度,因为模型不需要被自然界所限制。即便如此,“我”所建立的模型在将近1400年的时间里也是一流的。
Ptolemy项目确实是一项关注系统模型的研究。但是,该系统与“我”之前关注的系统有很大的不同。之前的那些系统都是自然界提供的,但是本书中的系统都是人造的。在本书中,建模的目的是优化系统,我们不可能对自然界给予的行星系统做任何的优化。
简而言之,在与科学相反的工程中,模型要在被建模系统的设计阶段发挥作用。与科学一样,工程中的模型是可以被优化的,但是与科学不同的是,工程中的系统还可以被模型化。
更有趣的是,与科学不同的是,在工程中模型的选择对被建模的系统是有影响的。给予相同的目标,两位工程师可能会得出截然不同的系统设计和实现方案,这仅仅是因为他们在开始阶段使用了截然不同的系统模型。进一步说,若两位工程师提出了不同的模型,其原因可能仅仅是他们在开始阶段使用了不同的工具来构建模型。一位用纸和笔建模的工程师与一位用软件工具建模的工程师得出的模型可能很不一样。结果就是,他们很可能得出迥异的系统设计。
针对复杂系统,本书收集了非常丰富的建模工具和技术。它们中的一些毫无疑问在以后会被优化,正如“我”自己提出的本轮(epicycle)模型,其建模的复杂性被哥白尼学派证明为不必要的。即使如此,本书的目的是向工程师提供目前可用的最好的建模技术。可以确信的是,我们将做得更好。
如何使用本书本书是为需要对各种系统建模的工程师和科学家,以及想了解如何为复杂、异构系统建模的人而编写的。这些系统包括机械系统、电气系统、控制系统、生物系统等,更有趣的是,还包括结合了这些领域或者其他领域元素的异构系统。本书假设读者熟悉仿真和建模工具及其技术,但不
“我”以前在《The Almagest》(天文大全)中研究行星、太阳、地球和月亮的运动规律,这些运动都是并发交互过程(concurrent interacting process)。并且这些运动都是确定性的(deterministic),并不以神的意志为转移。这些模型的关注点不仅仅是对所观察到的行为进行精确匹配,更重要的是对行为的预测。类似地,Ptolemy项目研究并发交互过程,并重点关注确定性模型。
理想情况下,求知欲推动着人类从迷信和盲目的信仰发展到逻辑和计量。现在所谓的“科学”深深根植于科学方法(scientific method),特别是在自然系统的研究中。利用科学方法,从设想开始,设计实验,并基于实验来对之前的设想下定论。当然,为了能够进行计量,待测量的工件或过程必须以某种形式存在。在“我”早期的研究中,不存在该问题,因为太阳、地球、月亮和行星是已经存在的事物。然而工程学科所关注的是人为的工件和过程,研究的是自然界中本不存在的系统。即便如此,科学方法也可用于并已经应用于工程设计中。工程师构建仿真和原型系统,将设想公式化,然后通过实验来进行设想的测试。
因为针对的是本不存在的工件和过程,所以工程设计不能单单基于科学方法。实验的目的是提高对所设计的工件、过程的认知。但是在进行实验前,必须将这些工件或者过程创造出来。在认识某些事物之前,不得不先把它们创造出来,这点注定了我们的设计会根植于“迷信”和盲目的信仰。
模型构造是与科学方法互补的重要科学部分。模型是物理现实的一种抽象,并且模型提供内视和行为预测的能力可以形成设想的核心思想,该思想核心等待被实验证实或证伪。建模本身更应归于工程学科,而非自然科学。从根本上讲,它并不是对于自然界已存在系统的研究。相反,它是人类主导的、对于自然界本身不存在事物的建造过程。一个模型本身就是一项工程。
好的模型甚至可以减少对计量的需求,因此可以减少对科学方法的依赖。比如,我们一旦有一个行星运动模型,我们就可以精确预测它们的位置,这样就减少了对其位置测量的需要。计量的角色从确定行星位置转变为改善它们的运动模型以及检测模型对运动的影响(工程上称为“故障检测”(fault detection))。
无论在自然科学还是在工程中,模型都可以通过迭代方法来进行优化。“我”提出的以地球为中心的宇宙模型需要很多次迭代来修正,以逼近实验观测到的行星运动情况。最终模型的预测能力让“我”引以为豪。并且,基于这些模型的预测方法可以通过星盘机械化,这点同样让“我”感到自豪。即便这样,不得不承认,令人尊敬的同行哥白尼(Nicolaus Copernicus)为行星运动提出了一个更好的模型(日心学说)。他的模型从概念上讲是更简单的。这是一种概念上的飞跃:我们可观测到的宇宙的中心,即我们所在的大地,并非一定是宇宙模型的中心。更进一步说,相对于物理世界,对于模型我们有更大的自由度,因为模型不需要被自然界所限制。即便如此,“我”所建立的模型在将近1400年的时间里也是一流的。
Ptolemy项目确实是一项关注系统模型的研究。但是,该系统与“我”之前关注的系统有很大的不同。之前的那些系统都是自然界提供的,但是本书中的系统都是人造的。在本书中,建模的目的是优化系统,我们不可能对自然界给予的行星系统做任何的优化。
简而言之,在与科学相反的工程中,模型要在被建模系统的设计阶段发挥作用。与科学一样,工程中的模型是可以被优化的,但是与科学不同的是,工程中的系统还可以被模型化。
更有趣的是,与科学不同的是,在工程中模型的选择对被建模的系统是有影响的。给予相同的目标,两位工程师可能会得出截然不同的系统设计和实现方案,这仅仅是因为他们在开始阶段使用了截然不同的系统模型。进一步说,若两位工程师提出了不同的模型,其原因可能仅仅是他们在开始阶段使用了不同的工具来构建模型。一位用纸和笔建模的工程师与一位用软件工具建模的工程师得出的模型可能很不一样。结果就是,他们很可能得出迥异的系统设计。
针对复杂系统,本书收集了非常丰富的建模工具和技术。它们中的一些毫无疑问在以后会被优化,正如“我”自己提出的本轮(epicycle)模型,其建模的复杂性被哥白尼学派证明为不必要的。即使如此,本书的目的是向工程师提供目前可用的最好的建模技术。可以确信的是,我们将做得更好。
如何使用本书本书是为需要对各种系统建模的工程师和科学家,以及想了解如何为复杂、异构系统建模的人而编写的。这些系统包括机械系统、电气系统、控制系统、生物系统等,更有趣的是,还包括结合了这些领域或者其他领域元素的异构系统。本书假设读者熟悉仿真和建模工具及其技术,但不
评论
还没有评论。