建模是表示模型的过程,包括模型的构建和运行。该模型与真实系统相似,有助于开发与验证等人员预测系统变化的影响。换句话说,建模就是创建一个代表系统(包括其属性)的模型。这是一种建立模型的行为。 系统仿真是在时间或空间方面对模型的操作,有助于分析现有或拟议系统的性能。换句话说,模拟是使用模型研究系统性能的过程。它是一种使用模型进行模拟的行为。 仿真的历史 仿真的历史沿革按时间顺序排列。 1940 年--研究人员(约翰-冯-诺依曼、斯坦尼斯瓦夫-乌兰、爱德华-特勒、赫尔曼-卡恩)和物理学家开发出一种名为 "蒙特卡罗 "的方法,用于研究曼哈顿中子散射项目。 1960 年--兰德公司(RAND Corporation)的哈里-马科维茨(Harry Markowitz)开发出第一种专用模拟语言,如 SIMSCRIPT。 1970 年--在此期间,开始研究模拟的数学基础。 1980 年--在此期间,开发了基于 PC 的仿真软件、图形用户界面和面向对象编程。 1990 年--在此期间,开发了基于网络的仿真、花哨的动画图形、基于仿真的优化、马尔可夫链蒙特卡罗方法。 开发仿真模型 仿真模型由以下部分组成:系统实体、输入变量、性能指标和功能关系。以下是开发仿真模型的步骤: 第 1 步 - 确定现有系统的问题或设定拟议系统的要求。 第 2 步 - 设计问题,同时考虑现有系统的因素和限制。 第 3 步 - 收集并开始处理系统数据,观察其性能和结果。 第 4 步 - 使用网络图开发模型,并使用各种验证技术进行验证。 第 5 步 - 将模型在各种条件下的性能与实际系统进行比较,从而验证模型。 第 6 步 - 创建一份模型文档,供将来使用,其中包括目标、假设、输入变量和性能的详细信息。 第 7 步 - 根据要求选择适当的实验设计。 第 8 步 - 在模型上引入实验条件并观察结果。 执行仿真分析 以下是进行仿真分析的步骤: 第 1 步 - 编写问题陈述。 第 2 步 - 为仿真过程选择输入变量并创建实体。变量分为两类--决策变量和不可控变量。决策变量由程序员控制,而不可控变量是随机变量。 第 3 步 - 将决策变量分配给模拟流程,从而为其创建约束条件。 第 4 步 - 确定输出变量。 第 5 步 - 从现实系统中收集数据,输入模拟程序。 第 6 步 - 绘制显示模拟过程进度的流程图。 第 7 步 - 选择合适的仿真软件运行模型。 第 8 步 - 将仿真结果与实时系统进行比较,验证仿真模型。 第 9 步 - 通过改变变量值对模型进行实验,以找到最佳解决方案。 第 10 步 - 最后,将这些结果应用到实时系统中。 建模与仿真 - 优势 使用建模与仿真的优势如下: 易于理解 - 无需使用实时系统,即可了解系统的实际运行情况。 易于测试 - 无需在实时系统上工作,即可对系统进行更改,并了解更改对输出的影响。 易于升级 - 可以通过应用不同的配置来确定系统需求。 易于识别限制因素 - 可以对造成工作流程、信息等延迟的瓶颈进行分析。 易于诊断问题--某些系统非常复杂,不容易同时理解它们之间的相互作用。然而,建模与仿真可以了解所有的相互作用并分析其影响。此外,还可以在不影响实际系统的情况下探索新的政策、操作和程序。 建模与仿真 - 缺点: 使用建模与仿真的缺点如下 设计模型是一门艺术,需要领域知识、培训和经验。 使用随机数对系统进行操作,因此很难预测结果。 模拟需要人力,是一个耗时的过程。 模拟结果难以转化。需要专家才能理解。 仿真过程费用昂贵。 建模与仿真 - 应用领域 建模与仿真可应用于以下领域 - 军事应用、培训与支持、半导体设计、电信、土木工程设计与演示以及电子商务模型。 此外,它还可用于研究生物系统等复杂系统的内部结构。它还可用于优化系统设计,如路由算法、装配线等。用于测试新的设计和策略。用于验证分析解决方案。 模型与事件 仿真工程师面临的真正问题之一是验证模型。只有当仿真模型准确地再现了实际系统时,仿真模型才是有效的,否则就是无效的。 验证和确认是任何仿真项目中验证模型的两个步骤: Validation验证是比较两个结果的过程。在这个过程中,我们需要将概念模型的表示与实际系统进行比较。如果比较结果为真,则模型有效,否则无效。 Verification确认是比较两个或多个结果以确保其准确性的过程。在这个过程中,我们必须将模型的实现及其相关数据与开发人员的概念描述和规格说明进行比较。 验证和确认技术 仿真模型的验证和确认有多种技术。以下是一些常见的技术: 以下是对仿真模型进行验证的方法: 使用编程技巧编写和调试子程序; 使用 "结构化演练 "策略,由多人阅读程序; 跟踪中间结果,并与观察到的结果进行比较; 使用各种输入组合检查仿真模型输出; 将最终仿真结果与分析结果进行比较。 验证仿真模型的技术 步骤 1 - 设计一个高度有效的模型。可通过以下步骤实现: 设计模型时必须与系统专家进行讨论; 模型必须在整个过程中与客户互动; 输出结果必须由系统专家监督。 第 2 步 - 根据假设数据测试模型。这可以通过将假设数据应用到模型中并对其进行定量测试来实现。还可以进行敏感性分析,以观察输入数据发生重大变化时结果变化的影响。 第 3 步 - 确定模拟模型的代表性输出。可通过以下步骤实现: 确定模拟输出与真实系统输出的接近程度; 可以使用图灵测试进行比较。它以系统格式呈现数据,只有专家才能解释; 统计方法可用于比较模型输出与真实系统输出。 模型数据与真实数据的比较 模型开发完成后,我们必须将其输出数据与真实系统数据进行比较。以下是进行比较的两种方法。 验证现有系统: 在这种方法中,我们使用模型的真实输入,将其输出与真实系统的真实输入进行比较。这一验证过程简单明了,但在执行时可能会遇到一些困难,例如,如果要将输出与平均时长、等待时间、空闲时间等进行比较,可以使用统计检验和假设检验进行比较。统计检验包括卡方检验、Kolmogorov-Smirnov 检验、Cramer-von Mises 检验和矩量检验。 验证首次模型: 考虑到我们必须描述一个目前不存在、过去也不存在的拟议系统。因此,没有可用的历史数据来比较其性能。因此,我们必须使用一个基于假设的假定系统。以下有用的要点将有助于提高其效率。 子系统有效性 - 模型本身可能没有任何现有系统可与之比较,但它可能由已知的子系统组成。可以分别测试每个子系统的有效性。 内部有效性--一个内部差异较大的模型将被拒绝,因为一个内部过程差异较大的随机系统会掩盖输入变化带来的输出变化。 敏感性分析 - 它提供了系统中敏感参数的信息,我们需要对这些参数给予更多关注。 表面有效性 - 当模型的表现与逻辑相反时,即使它的表现与真实系统相似,也应予以否定。 在离散系统中,系统状态的变化是不连续的,系统状态的每次变化都称为一个事件。离散系统仿真中使用的模型有一组数字来表示系统状态,称为状态描述符。在本文中还将介绍队列仿真,这是离散事件仿真和分时系统仿真中非常重要的一个方面。 以下是离散系统仿真的行为图示: 离散事件仿真 - 主要特点 离散事件仿真通常由使用高级编程语言(如 Pascal、C++ 或其他专门的仿真语言)设计的软件来执行。以下是五个主要特征: 实体 - 表示机器部件等真实元素。 关系 - 指将实体联系在一起。 仿真执行器 - 它负责控制提前时间和执行离散事件。 随机数生成器 - 它有助于模拟进入仿真模型的不同数据。 结果和统计 - 它验证模型并提供其性能指标。 时间图表示法 每个系统都取决于时间参数。在图形表示法中,它被称为时钟时间或时间计数器,初始时设置为零。时间的更新基于以下两个因素: 时间切分 - 这是模型为每个事件定义的时间,直到没有任何事件发生。 下一个事件 - 模型为下一个要执行的事件定义的事件,而不是时间间隔。它比时间片更有效。 队列系统仿真 队列是系统中正在接受服务的所有实体和等待轮到他们的实体的组合。 参数: 以下是队列系统中使用的参数列表。 符号 说明 λ 表示到达率,即每秒到达的人数 Ts 表示每次到达的平均服务时间,不包括队列中的等待时间 σTs 表示服务时间的标准偏差 ρ 表示服务器空闲和繁忙时的时间利用率 u 表示流量强度 r 表示系统中项目的平均值 R 表示系统中的项目总数 Tr 表示系统中项目的平均时间 TR 表示系统中项目的总时间 σr 表示 r 的标准偏差 σTr 表示 Tr 的标准偏差 w 表示队列中等待物品的平均数量 σw 表示 w 的标准差 Tw 表示所有项目的平均等待时间 Td 表示在队列中等待的项目的平均等待时间 N 表示系统中服务器的数量 mx(y) 表示第 y 个百分位数,即低于该百分位数的 y 值在 x 出现的时间中占 y%。 单服务器队列 这是最简单的队列系统,如下图所示。系统的中心元素是服务器,它为连接的设备或项目提供服务。如果服务器处于空闲状态,则项目请求系统提供服务。那么它就会立即得到服务,否则就会加入等待队列。服务器完成任务后,项目离开。 多服务器队列 顾名思义,该系统由多个服务器和一个用于所有项目的共同队列组成。当任何项目请求服务器时,如果至少有一台服务器可用,就会分配给它。否则,队列开始启动,直到服务器空闲为止。在这个系统中,我们假设所有服务器都是相同的,即哪个项目选择哪个服务器没有区别。 但利用率是个例外。假设 N 是相同的服务器,那么 ρ 就是每个服务器的利用率。设 Nρ 为整个系统的利用率,则最大利用率为 N*100%,最大输入率为: $λmax = \frac{\{text{N}}{text{T}s}$ 队列关系 下表显示了一些基本队列关系: 一般术语 单服务器 多服务器 r = λTr 利特尔公式 ρ = λTs ρ = λTs/N w = λTw利特尔公式 r = w + ρ u = λTs = ρN Tr = Tw + Ts r = w + Nρ 分时系统仿真 时间共享系统的设计方式是,每个用户只使用系统上共享时间的一小部分,从而导致多个用户同时共享系统。每个用户的切换如此迅速,以至于每个用户都感觉在使用自己的系统。它基于 CPU 调度和多程序设计的概念,通过在一个系统上同时执行多个任务,可以有效地利用多个资源。 为什么使用连续仿真? 情况 2 - 假设模糊集 B 定义为 A = {(3, 0.3), (4, 0.7), (5, 1), (6, 0.4)}, 那么它的标准模糊符号为 A = {0.3/3, 0.7/4, 1/5, 0.4/6} 。 任何成员等级为零的值都不会出现在集合的表达式中。 情况 3 - 模糊集合与经典清晰集合的关系。 下图描述了模糊集与经典脆集之间的关系: (欢迎申请加入智能驾驶交流学习群,加小编微信号zhijiashexiaoming) |
|