SimPy离散事件模拟框架如何应用于汽车充电排队场景模拟?

摘要:一、背景知识 人们在生产活动和社会活动中,经常遇到一类复杂的系统,这类系统中有许多事件时而出现,时而消失,时而动作,时而停止,而启动和停止都发生在一些离散的时刻,并带有一定的随机性。例如,港口中船舶的停靠码头、生产线上机床的启停、电话的接通
目录一、背景知识二、SimPy 讲解2.1 SimPy 概述2.2 基本概念2.3 一个汽车开开停停的例子2.4 在走走停停过程中增加充电过程(过程交互)2.5 共享资源三、后续参考链接附录二 一、背景知识 人们在生产活动和社会活动中,经常遇到一类复杂的系统,这类系统中有许多事件时而出现,时而消失,时而动作,时而停止,而启动和停止都发生在一些离散的时刻,并带有一定的随机性。例如,港口中船舶的停靠码头、生产线上机床的启停、电话的接通和断开、计算机系统中某项作业的进行和退出,凡此种种,都带有上述特点,这类系统叫做离散事件动态系统(DEDS)。随着生产和科技的日益发展,以及人类社会交往的日趋频繁,这类系统的数量和种类也越来越多。 设计此类系统时,往往需要仿真来评估算法或方案的性能,常见的软件有: 商业软件: 名字 简介 图示 AnyLogic 通用多方法建模工具。结合了基于代理、系统动力学和离散事件建模。 Arena 一种离散事件模拟程序,也允许对连续过程进行建模。 Care pathway simulator 专门为服务行业(如医疗保健)设计的离散事件模拟程序。 Enterprise Dynamics 一个模拟软件平台,用于模拟和分析几乎任何制造、材料处理和物流挑战。 ExtendSim 通用仿真软件包 DELMIA 3DEXPERIENCE 平台的一部分 FlexSim 拖拖拉拉做离散事件模拟,3D GoldSim 将动态离散事件模拟嵌入到 Monte Carlo 框架 GPSS 离散事件模拟语言。供应商可以提供不同的实现 Micro Saint Sharp 通用离散事件建模工具,使用拖放界面和C#编程语言 MS4 Modeling Environment 基于离散事件和混合模型的通用DEVS方法的软件环境 Plant Simulation 能够模拟和优化生产系统和流程的软件 ProModel AutoCAD® Edition 在数字孪生Autodesk®工具集(AutoCAD®和Inventor®)中快速构建空间精确的布局和过程仿真模型。 Simcad Pro 实时变化,零代码有界面,支持 VR SimEvents 向MATLAB / Simulink环境添加离散事件仿真。 SIMUL8 基于对象的仿真软件 VisualSim 基于时序、功耗和功能的电子、嵌入式软件和半导体的基于模型的系统架构探索 WITNESS 可在桌面和云端使用 VR 进行离散事件模拟 开源软件: 名字 语言 类型 License 简介 JaamSim Java App Apasche 2.0 JaamSim是一款自由开源的离散事件模拟软件,包括拖放式用户界面、交互式3D图形、输入和输出处理以及模型开发工具和编辑器。 CPN Tools BETA App GPLv2 用于分析所有类型应用中的物流/排队模型的工具。 DESMO-J Java Lib Apasche 2.0 Java离散事件模拟框架,支持混合事件/过程模型,并提供2D和3D动画。 Facsimile Scala Lib LGPLv3 离散事件模拟/仿真库。 PowerDEVS C++ App AFL, GPLv2 基于DEVS形式的混合系统建模和仿真集成工具。 Ptolemy II Java Lib BSD 支持面向角色设计实验的软件框架。 SIM.JS JavaScript Lib LGPL JS是一个完全用JavaScript编写的通用离散事件模拟库。在浏览器中运行,支持基于GUI的建模工具。 SimPy Python Lib MIT SimPy是基于标准Python的基于过程的离散事件模拟框架。 Simula Simula Language 一种专门为模拟而设计的编程语言。 SystemC C++ Lib Apache 2.0 提供事件驱动模拟内核。 注:软件示意图见《附录二》 二、SimPy 讲解 2.1 SimPy 概述 1)SimPy 是 python 的离散事件模拟框架。 2)SimPy 中的流程由 Python 生成器函数定义。例如,可以用于为客户、车辆或代理等活动组件建模。SimPy 还提供各种类型的共享资源来模拟容量有限的拥塞点(如服务器、结账柜台和隧道)。 3)模拟可以要多快有多快、实时、或者手动步进三种方式进行。 3)尽管理论上 SimPy 可以用于连续模拟,但它没有任何功能来帮助您实现这一点。
阅读全文