知识卡片
仿真的基本概念与三种仿真类型
内容
仿真被定义为”现实世界中过程或系统随时间运行时的模拟”,一个仿真可以看作模型的一个实例,就像面向对象语言中对象是类的实例——基于同一个模型的两次仿真,只要输入参数不同,就可能得出完全不同的结果。仿真状态是描述系统在任意时间点所需一切信息的变量集合,输入参数组合称为初始状态;由于仿真只是对真实系统的模仿,改变参数往往需要重新设置和运行,这个特性反而让仿真非常适合模拟关键、危险的系统——因为这类系统一旦运行失败是灾难性的,用仿真代替真实运行去试错,代价可控得多。按状态变化方式,仿真分三种类型。连续型仿真把系统描述为随时间不断变化的模型,状态变量可表述为时间函数、用微分方程构造模型,适用于状态不会瞬间跳变、而是随时间推移渐变的”光滑系统”;数字计算机本质是以时钟为单位离散递增的,因此计算机上的”连续”仿真并非真正连续,而是靠选择满足精度要求的时间步长、用差分方程取代微分方程来近似模拟。离散型仿真描述的是系统因响应”离散事件”而发生的瞬间变化,事件之间系统状态保持不变(例如籽粒逐颗放入仓库时,人们只关心”新籽粒放入”这个离散事件本身,而不关心谷物总量渐进增加的连续过程);离散仿真中的组件称为”实体”,基于事件驱动的实现通常靠有序事件栈来管理事件的执行与调度。混合型仿真结合连续与离散两种技术,其特有之处在于连续状态变量能以复杂或不可预测的方式与离散事件交互——三种交互形式分别是离散事件引起连续变量值变化、离散事件改变控制连续变量演化的参数(如常量)、连续变量取到临界值时触发离散事件;建立混合模型时建议按”先连续、再离散、最后接口”的顺序开发,避免一开始就被两种机制的耦合搞乱思路。
结构图:
flowchart TD
A["连续型仿真<br/>状态随时间渐变<br/>微分方程/差分方程近似"] -->|复合技术| C[混合型仿真]
B["离散型仿真<br/>状态因离散事件瞬变<br/>事件驱动,事件栈调度"] -->|复合技术| C
C --> D["三种交互形式:<br/>离散事件→连续变量变化<br/>离散事件→改变连续演化参数<br/>连续变量临界值→触发离散事件"]
参考来源
- 位置:《软件架构理论与实践》第12章《软件架构仿真》"12.1 软件仿真的概念"及"12.1.1-12.1.3"节(源文件:_epub-src/OEBPS/text00095.html)
- 结论依据:原文说明"连续型仿真描述为一个系统随时间不断变化的模型"、"在离散型仿真中,系统因响应离散事件而发生变化",并列出混合型仿真中连续变量与离散事件交互的三种类型,直接支撑本卡片的结构图与内容解释。
- 原始内容:混合型仿真模型的不同特征在于连续状态变量的存在,这种变量能以复杂的或不可预测的方式与离散事件进行交互。连续变量和离散事件之间的交互主要有三种类型:①离散事件引起连续变量值的变化。②离散事件导致变化,这种变化与控制连续变量演化有关,如改变一个常量。③连续变量导致了离散事件发生。