【仿真建模】第三课:AnyLogic入门基础课程 - 多层建筑行人疏散仿真讲解

news2024/11/19 6:16:07

文章目录

  • 一、Agent类的概念
  • 二、行人疏散仿真
    • 2.1 仿真模型示意图
    • 2.2 具体实现步骤


一、Agent类的概念

在这里插入图片描述

二、行人疏散仿真

2.1 仿真模型示意图

在这里插入图片描述

2.2 具体实现步骤

首先,新建模型

在这里插入图片描述
新建一个MyFloor1对象,代表第一个楼层
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建矩形墙,并放到原点

在这里插入图片描述
建立如下的模型,需要注意的是:

  • 服务的延迟时间、PedWait的延迟时间的单位都设置为分钟
  • PedSource、PedGoTo和PedWait都设置在矩形范围

在这里插入图片描述
修改PedSource到达根据为inject()函数调用

在这里插入图片描述
在启动时执行命令【作用是一次性生成20个人】:pedSource.inject(20);

在这里插入图片描述

回到Main窗口,将MyFloor1拖拽出来

在这里插入图片描述
放置视角区域和三维窗口

在这里插入图片描述
启动时执行命令:viewArea.navigateTo();

在这里插入图片描述
运行,查看效果

在这里插入图片描述

好像服务的延迟时间太长了,可以调小一点,设置为uniform(0.5, 1.0)

把等待时间设置长一点,设置为uniform(1.5, 2.0)

接下来,我们让行人可以成功撤离

在这里插入图片描述

根据上述逻辑,布局如下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进行连线

在这里插入图片描述

新增两个目标线和两个墙
在这里插入图片描述

回到Main窗口,往布局中加入一个按钮

在这里插入图片描述
为按钮加上单击事件

myFloor1.pedService.cancelAll();
myFloor1.pedGoTo.cancelAll();
myFloor1.pedWait.cancelAll();

在这里插入图片描述

为了控制人们的逃生目的地,我们先拖拽一个集合出来

在这里插入图片描述

修改集合的相关属性

在这里插入图片描述

打开行动图
在这里插入图片描述

拖拽一个行动图出来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
定义当前搜索到的最小距离

在这里插入图片描述

拖拽出一个for循环
在这里插入图片描述
获取人离当前遍历到的出口的距离

ped.distanceTo(colOut.get(i).getX(),colOut.get(i).getY())

在这里插入图片描述

加入逻辑判断
在这里插入图片描述

k = i;
minDistance = curDistance;

在这里插入图片描述
定义返回值

在这里插入图片描述
设置pedGoTo1的目的地

colOut.get(actionChart(ped));

在这里插入图片描述
运行查看效果

在这里插入图片描述

接下来我们创建二楼

首先复制MyFloor1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除部分组件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删掉这两个目标线

在这里插入图片描述
在这里插入图片描述

创建一个行人类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在Ped中加入变量

在这里插入图片描述
修改变量类型和名称
在这里插入图片描述
把所有enter和pedSource的智能体类型设置为Ped

在这里插入图片描述
设置MyFloor2中的pedGoTo

进入时执行代码:ped.stairIndex=actionChart(ped);

在这里插入图片描述

修改疏散按钮的点击事件为

myFloor1.pedService.cancelAll();
myFloor1.pedGoTo.cancelAll();
myFloor1.pedWait.cancelAll();
myFloor2.pedService.cancelAll();
myFloor2.pedGoTo.cancelAll();
myFloor2.pedWait.cancelAll();

在这里插入图片描述

在MyFloor1中,选择colOut,按照Ctrl键移动,复制一个colOut1出来

在这里插入图片描述
修改colOut1的属性

在这里插入图片描述
设置pedEnter的目标线:

colIn.get(ped.stairIndex);

在这里插入图片描述

在Main中,把MyFloor2拖拽出来

在这里插入图片描述

到MyFloor2中,设置exit离开时执行代码:

main.myFloor1.enter.take(agent);

在这里插入图片描述

为了实现对一楼和二楼不同的疏散时间,复制之前的按钮,创造两个新按钮分别对一楼和二楼进行控制

在这里插入图片描述
在这里插入图片描述
为了区分一楼和二楼,在Main中调整MyFloor2的高度为40

在这里插入图片描述

运行查看最终效果

全部疏散的效果
在这里插入图片描述

先疏散一楼再疏散二楼

在这里插入图片描述

先疏散二楼再疏散一楼

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29555.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

专业数采软件DXP OPC Server售后问题解决方案

DeviceXPlorer OPC Server是一套实现工业自动化设备数据读取或发送的软件。它提供与制造车间中的控制设备(如 PLC、机床和机器人)的连接,支持200多种设备通讯协议,便捷的配置,快速实现设备联网采集。 在与设备通讯方面…

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

idea永久设置maven配置,新项目不用再设置

在这里设置就是永久的设置,新项目将使用该设置,maven的配置也在新项目和新模块创建的时候直接加载 英文的话,看位置大概也应该可以找到 点开后左上角搜索maven,找到如图maven的设置 主路径就是maven的安装包软件的路径 用户设置…

LeetCode 110平衡二叉树 257.二叉树的所有路径 404左叶子之和

文章目录110平衡二叉树c 代码实现python 代码实现257.二叉树的所有路径c代码实现python 代码实现404左叶子之和c 代码实现python 代码110平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个…

http 知识整理

1. 启发式缓存 在不设置cache-control/expires的情况下,浏览器不会默认进入协商缓存。而是根据Date/LastModified去自动计算出合适的缓存时间。 计算方式为:(Date - LastModified) * n n:LM-Factor,处于[0,1]之间 2. 强制缓存 -…

Vue的模版代码与数据绑定方式

目录 模版代码 插值语法 指令语法 数据多层访问 vue模版语小结 数据绑定方式 模版代码 插值语法 插值语法就是使用{{xxx}}描述的 <div id"root">{{name}} </div> 指令语法 <div id"root"><a :href"school.url">…

lazada买家订单导出

下载安装与运行 https://www.yuque.com/webcrawl/handbook/mtad3q 用途与功能 所见即所得的导出自由选择导出项支持Excel、JSON两种方式导出自由排序Excel导出列顺序导出过程中有进度提示&#xff0c;用户可以随时提前中止 导出过程演示 选择lazada订单导出&#xff0c;开始…

linux内核整体架构

操作系统概念 操作系统属于软件范畴&#xff0c;负责管理系统的硬件资源。OS具备的功能&#xff1a;1.为应用程序提供执行环境。2.为多用户和应用程序管理计算机的硬件资源。3.虚拟化功能。4.支持并发。 宏内核与微内核架构 宏内核&#xff1a;所有的内核代码都编译成二进制…

基于JAVA的学生课程后台管理系统【数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86427641 开学选好课是具备学术能力的首要表现。学生不能为了拿高分&#xff0c;只选简单课程&#xff0c;也没有必要为了显示出自己热衷自我挑战&#xff0c;奋不顾身地一头扎进高难度课程。在…

强化深度学习中利用时序差分法中的Sarsa算法解决风险投资问题实战(附源码 超详细必看)

需要源码请点赞关注收藏后评论区留下QQ~~~ 一、Sarsa算法简介 Sarsa算法每次更新都需要获取五元组&#xff08;S,A,R,S,A&#xff09;这也是该算法称为Sarsa的原因&#xff0c;每当从非终止状态进行一次转移后&#xff0c;就进行一次更新&#xff0c;但需要注意的是&#xff0…

【论文阅读】社交网络传播最大化问题-04

Efficient Influence Maximization in Social Networks相关工作改进的贪心算法对独立级联模型的改进对加权级联模型的改进改进度折扣算法影响力最大化&#xff1a;在社交网络中找到一小部分能够最大化传播影响力的节点(种子节点)。一是改进原有的贪心算法&#xff0c;进一步缩短…

KMP算法——通俗易懂讲好KMP算法:实例图解分析+详细代码注解

文章目录1.kmp算法基本介绍2.字符串的最长公共前后缀&部分匹配表2.1 什么是最长公共前后缀2.2 什么是部分匹配表Next2.3 字符串最长公共前后缀&部分匹配表的代码实现2.4 代码测试3.根据部分匹配表搜索字符串匹配位置3.1 匹配成功一个就退出匹配的代码3.1.1 KMP算法的大…

Vue父组件给子组件传参数

别人在调用我们写的组件时&#xff0c;虽然要实现的结构一样&#xff0c;但如果别人想改一下显示的内容或者之类的&#xff0c;该怎么做呢&#xff1b;这时候就要提到“传参数”这个词了&#xff0c;别人可以通过传不同的参数&#xff0c;来实现他们具体的结构&#xff1b; 传参…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.22 RabbitMQ 安装

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.22 RabbitMQ 安装5.22.1 Erlang下载5.22.2 安装5.…

HTML+CSS期末大作业 中国传统美食网站设计 节日美食13页 html5网页设计作业代码 html制作网页案例代码 html大作业网页代码

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

3招学会TikTok电商选品,速看

Sensor Tower商店情报数据显示&#xff0c;2022年10月Instagram以将近6700万下载量&#xff0c;成为全球移动应用&#xff08;非游戏&#xff09;下载榜冠军&#xff0c;较2021年10月增长17.2%。其中&#xff0c;印度市场的下载量占45.2%&#xff0c;美国市场的下载量占比为5.4…

《码出高效:Java开发手册》笔记之二-面向对象

前言 第二章主要是讲面向对象&#xff0c;也就是oop&#xff0c;这个概念其实很多人已经听腻了&#xff0c;都是非常基础的知识&#xff0c;本章就是讲一些java以及很多编程语言的基础设计思想 正文 oop理念 面向对象是在早期滥用面向过程编程后出现的&#xff0c;面向过程…

CSS清除浮动的五种方法(超详细)

1.为什么要清除浮动? 浮动的原理是让图片脱离文档流&#xff0c;直接浮在桌面上。我们一般布局的时候都是只设置宽度不设置高度&#xff0c;让内容来自动填充高度。但使用浮动后会让原本填充的高度消失&#xff0c;父元素高度为0&#xff0c;后续添加内容布局会产生混乱,造成…

C语言tips-数组指针和指针数组

最近因为工作需要开始重新学c语言&#xff0c;越学越发现c语言深不可测&#xff0c;当初用python轻轻松松处理的一些数据&#xff0c;但是c语言写起来却异常的复杂&#xff0c;这个板块就记录一下我的c语言复习之路 数组指针 概念&#xff1a;顾名思义就是一个指针&#xff0c;…

英特尔oneAPI-用于异构计算的英特尔oneAPI

文章目录前景解决方案CUDA替代方案OpenMPOpenACCC 库Python 和 JavaSYCL 和 oneAPI结论如今&#xff0c;异构性广泛存在于高性能计算和消费电子产品中。这些系统在传统 CPU 的基础上增加了大量协处理器或加速器&#xff0c;例如 GPU、TPU 和 FPGA。然而&#xff0c;没有一种简单…