控制模型执行 | AnyLogic帮助

news2024/11/23 9:04:29

控制模型执行 | AnyLogic帮助

当运行AnyLogic模型时,您可以使用控制面板来控制模型的执行,控制面板显示在AnyLogic模型窗口的底部。

控制面板包含用于控制启动模型执行的按钮:

按钮命令描述
运行运行[仅当模型当前未运行时可见]
从当前状态运行模型。模型将运行直到您手动通过点击 暂停暂停停止停止按钮(或直到模型中的某些内容暂停或停止其执行)。
您可以运行模型直到指定的模型时间点,或从当前时刻开始运行指定的模型时间间隔。有关详情,请参阅“运行模型直到特定日期或特定时间间隔”。
暂停[仅当模型当前正在运行时可见]
暂停运行中的模型。您可以随时恢复暂停的模拟。
您可以在指定的模型时间点暂停模型,有关详情,请参阅“运行模型直到特定日期或特定时间间隔”。
停止终止模型运行。

当模型中没有活动时,运行控制将变为禁用状态。这表明您的模型已完成其工作。

您可以在模型运行时从代码中启用或禁用这些按钮,并检查它们的状态(启用/禁用)。这些特性在“访问演示”的控制面板部分中有描述。

从代码控制模型执行

您可能需要以编程方式控制模型执行。例如,您可能需要在某个事件到期时暂停模型,并在状态图转换发生时恢复其执行。AnyLogic提供了一个丰富的API,能够解决所有与控制模型执行相关的任务。

下表列出了模型引擎的相关功能以及每个代理中可用的类似功能。

要调用引擎函数,请在模型中需要的位置编写,例如,getEngine().finish()

或者,您可以直接从任何代理活动中调用类似的函数finishSimulation()

引擎函数代理的功能简短描述完整描述
boolean start()N/A启动模型(如果当前处于空闲状态)并暂停它。引擎命令仅适用于IDLE状态(在其他状态下不执行任何操作并返回false)。执行以下操作:

1. 设置模型执行的开始时间。
2. 在根对象中创建所需的内容—调用root.create();。
3. 启动模型(首先调度事件)—调用root.start();。
4. 将引擎置于PAUSED状态。
boolean pause()boolean pauseSimulation()暂停运行中的模型。将引擎置于PAUSED状态,并在完成当前事件执行后终止模型。引擎命令仅适用于RUNNING状态(在其他状态下不执行任何操作并返回false)。将引擎置于PLEASE_WAIT状态,然后设置一个标志,当引擎测试此标志时,会在完成当前事件执行后终止。进一步的行为取决于调用此函数的上下文:

- 如果此函数是从模型执行线程、控制动作代码或形状的点击代码中调用的,它将立即返回true。模型将在当前事件执行后立即暂停。

- 如果此函数是从其他位置调用的(例如,用户定义的并发线程),它将等待模型执行线程终止然后返回true。

到此函数完成时,引擎可能处于PAUSED、FINISHED或ERROR状态。如果引擎状态不允许暂停,则返回false。
boolean run()boolean runSimulation()如果模型当前处于暂停状态,则运行模型。将引擎置于RUNNING状态,然后开始模型执行。引擎命令仅适用于PAUSED状态(在其他状态下不执行任何操作并返回false)。将引擎置于RUNNING状态,然后开始模型执行。执行可能因以下原因之一而中断:

- 没有更多的事件要执行(状态->FINISHED)
- 达到停止时间(状态->FINISHED)
- 调用了pause()(状态->PAUSED)
- 调用了finish()(状态->FINISHED)
- 顶级代理已被销毁(状态->FINISHED)
- 在事件执行或代理销毁期间发生异常(状态->ERROR)
此函数永远不应该从模型执行线程调用!
到此函数完成时,引擎可能已经处于PAUSED、FINISHED或ERROR状态。

如果引擎状态不允许运行,则返回false。
boolean stop()boolean stopSimulation()终止模型执行,销毁模型,并忘记它。然后将引擎置于IDLE状态并返回true。引擎命令仅适用于任何非IDLE状态(在IDLE状态下不执行任何操作并返回false)。如果状态是RUNNING,设置一个标志,当模型执行线程测试此标志时,会导致它终止。进一步的行为取决于调用此函数的上下文:

- 当此函数从模型执行线程、控制动作代码或形状的点击代码中调用时,它将立即返回true,留下模型处于PLEASE_WAIT状态。模型将在稍后停止和销毁(可以使用实验的After Simulation Run代码或顶级代理的On Destroy代码来处理这一刻)。

在这种情况下,更推荐使用finish()函数。

- 当此函数从其他位置调用时(例如,用户定义的并发线程),它将等待模型执行线程终止,然后销毁模型(调用root.onDestroy())并忘记它。之后,它将引擎置于IDLE状态并返回true。
boolean finish()boolean finishSimulation()完成当前正在运行或已暂停的模型。与stop()函数不同,它不销毁模型,因此您可以检查和分析其状态。引擎命令仅适用于RUNNING或PAUSED状态(在其他状态下不执行任何操作并返回false)。设置一个标志,当引擎测试此标志时,会在完成当前事件执行后完成。进一步的行为取决于调用此函数的上下文:

- 当此函数从模型执行线程、控制动作代码或形状的点击代码中调用时,它将立即返回true。模型将在当前事件执行后完成(可以使用实验的After Simulation Run代码来处理这一刻)。

- 当此函数从其他位置调用时(例如,用户定义的并发线程),它将等待模型执行线程终止并返回true。

到此函数完成时,引擎可能处于FINISHED或ERROR状态。如果引擎状态不允许暂停,则返回false。
boolean runFast()N/A以尽可能快的方式运行模型。无论任何设置,都是在虚拟时间模式下运行。在同一(调用)线程中以尽可能快的方式运行模型。无论任何设置,都是在虚拟时间模式下运行。此函数在以下情况下结束:

- 当调用时引擎状态非法(返回false,在所有其他情况下返回true)
- 没有更多的事件/方程要执行(状态->FINISHED)
- 达到停止时间(状态->FINISHED)
- 调用了pause()(状态->PAUSED)
- 调用了finish()(状态->FINISHED)
- 顶级代理已被销毁(状态->FINISHED)
- 在模型执行期间发生异常(状态->ERROR)
在整个运行过程中,模型被锁定,因此您不应尝试显示代理演示,或执行可能访问模型的任何并发操作。
如果引擎状态不允许运行,则返回false。
boolean step()N/A从PAUSED状态开始,最多执行模型的一个离散步骤。从PAUSED状态开始,最多执行模型的一个离散步骤。在FINISHED、ERROR或PAUSED状态下结束。

此函数永远不应该从模型执行线程调用!

如果引擎状态不允许执行步骤,则返回false。
Engine.State getState()N/A返回引擎的当前状态(IDLE、PAUSED、RUNNING、FINISHED、ERROR或PLEASE_WAIT)。返回引擎的当前状态:

- IDLE — 没有模型设置为执行,什么都不做。
- PAUSED — 模型已设置并已启动,准备运行或执行步骤。
- RUNNING — 在由run()或runFast()调用的模型执行循环中。
- FINISHED — 模型执行已成功完成,但模型尚未销毁。
- ERROR — 模型执行以错误结束,模型尚未销毁。
- PLEASE_WAIT — 正在执行一个不可中断的命令,如pause()、step()或stop()。
但是,不能保证这种状态总是如此,因为可以随时进行更改。
boolean getRealTimeMode()N/A返回当前模型执行模式。返回当前模型执行模式。如果当前执行模式是实时的,则返回true;如果是虚拟时间的,则返回false。
void setRealTimeMode(boolean on)N/A设置虚拟或实时执行模式

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

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

相关文章

无人机之交互系统篇

一、系统构成 无人机交互系统通常由多个子系统组成,包括但不限于: 多模式人机交互装置:这是人机交互系统的基础层,通常包括计算机、局域网、传感器等设备,用于实现操作员与无人机之间的数据交互和指令传递。例如&…

MATLAB实现AM调制解调

1.基本概念 1.1 AM调制原理 调幅就是使载波的振幅随调制信号的变化规律而变化。基带信号m(t)与直流分量A0相加,然后和高频载波相乘实现AM信号的调制,如图1所示。 1.2 AM解调原理 AM信号经过信道传输,引入噪声后,再和载波相乘&…

jenkins 插件Publish Over SSH (sskey) 同步文件夹

一、安装插件 Publish Over SSH SSH Pipeline Steps 二、添加sshkey 将ssh免密登录的私钥新建到 二、准备目录 源:images 目标:/root/images2 流水线脚本 pipeline {agent anystages {stage(Dest) {steps {script{def remote [:]remote.name tstr…

【中短文--深度学习笔记】Batchsize的选择、批量归一化、loss是否已经收敛(更新中-ing)

一、如何选择合适的Batchsize&#xff1f; 如果你没有任何参考&#xff0c;那么选择2的n次方&#xff08;即64、128、256、512、1024等&#xff09;可以会更加直接和易于管理。而对于上限来说&#xff0c;batchsize大小最好<数据集样本数*0.1。 why? 梯度下降算法 在更新模…

盈利路上的关键一步:掌握五大交易离场技巧

近期&#xff0c;股市节后短暂的牛市成为了众人瞩目的焦点。有人收获颇丰&#xff0c;也有人因此亏了不少&#xff0c;时机没抓对&#xff0c;倒是被割了一波韭菜。市场起伏已是常态&#xff0c;但依旧会有很多人中招。围观近况&#xff0c;忽然深刻体会到&#xff0c;适时离场…

二值形态学基本运算的几何解释

Rafael Gonzalez和Richard Woods所著的《数字图像处理》&#xff0c;从集合角度定义膨胀和腐蚀&#xff0c;不易理解。本书从空域滤波角度对二值图像形态学中膨胀和腐蚀的定义和过程进行描述&#xff0c;并给出了动画演示过程。使用结构元素对图像的形态学处理与滤波模板的空域…

HIVE beeline连接报错Operation category READ is not supported in state standby

问题&#xff1a;hive连接报错Operation category READ is not supported in state standby 这个可能是因为hive配置的hdfs连接地址指定的是具体的namenode地址&#xff0c;但是hadoop集群配置的是HA,所以会发生主备切换&#xff0c;那么我们hive元数据配置就需要使用NameNode…

JavaEE-进程与线程

1.进程 1.1什么是进程 每个应⽤程序运⾏于现代操作系统之上时&#xff0c;操作系统会提供⼀种抽象&#xff0c;好像系统上只有这个程序在运 ⾏&#xff0c;所有的硬件资源都被这个程序在使⽤。这种假象是通过抽象了⼀个进程的概念来完成的&#xff0c;进程可 以说是计算机科学…

Arduino IDE 导入库(DallasTemperature.h和OneWire.h)

1打开IDE 2点击项目 3点击导入库 4在点击管理库 5搜索库 在下图的位置输入库名即可 6安装即可

基于Springboot+Vue的医疗废物管理系统 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 在系统…

基于yolov8、yolov5的交通标志检测识别系统(含UI界面、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 &#xff0c; 直接提供最少两个训练好的模型。模型十分重要&#xff0c;因为有些同学的电脑没有 GPU&#xff0…

避免 Python 类型转换错误:实用指南

在 Python 中&#xff0c;变量的类型是明确的&#xff0c;不能在没有显式转换的情况下直接将一种类型的值赋给另一种不同类型的变量。例如&#xff0c;以下将字符串与整数直接相加会报错&#xff0c;这跟其它语言有所差异&#xff0c;其它语言会进行隐式转 a "5" b…

c++类与对象三

C类与对象三 上期我们介绍了类的实例化&#xff0c;大小计算&#xff0c;还有this指针。这期我们继续深入更高层次的用法 类的六个默认函数 如个一个类里面没有成员&#xff0c;就是空类&#xff0c;但是空类里面真的什么都没有吗&#xff0c;并不是&#xff0c;在编译器中&…

大数据新视界 --大数据大厂之大数据环境下的零信任安全架构:构建可靠防护体系

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Javascript 仅允许在异步函数和模块顶级使用 “await“

这个错误的原因&#xff0c;是我们在一个普通函数里调用了async函数&#xff0c;因为async 函数是异步函数&#xff0c;它返回一个 Promis&#xff0c;await必须与async一同出现。所以这里普通函数无法调用它。 async和await只是使函数调用看起来像同步而已&#xff0c;比如下…

【MMMLP】核心方法解读

此方法用于顺序推荐&#xff0c;和我的研究方向不一样&#xff0c;所以这里只探讨值得借鉴的部分 abstract&#xff1a; 现有的顺序推荐方法要么不能直接处理多模态&#xff0c;要么计算量大。为了解决这个问题&#xff0c;我们提出了一种新的多模态多层感知器&#xff08;MM…

MYSQL-windows安装配置两个或多个版本MYSQL

安装第一个mysql很简单&#xff0c;这里不再赘述。主要说说第二个怎么安装&#xff0c;服务怎么配置。 1. 从官网下载第二个MySQL并安装 一般都是免安装版了&#xff0c;下载解压到某个文件目录下(路径中尽量不要带空格或中文)&#xff0c;再新建一个my.ini文件&#xff08;或…

QGroundControl最新版本MacOS平台编译(使用CMakeLists.txt)

1.下载源码: git clone https://github.com/mavlink/qgroundcontrol.git --recursive 2.安装依赖: brew install GStreamer 设置环境变量:GST_PLUGIN_PATH 安装SDL2: brew install SDL2

C#自定义特性

特性的用处 一般用来影响某一个类的个别字段或者方法 定义特性 需要将类继承Attribute 可以通过构造函数的方式影响使用特性的方法 可以通过给自定义的特性通过加AttributeUsage特性的方法进行进一步管理 AttributeUsage特性默认传三个参数 第一个参数一般用来约束此自定义…

怎么把m4a转换成mp3?8种关于m4a转成MP3格式的转换方法

怎么把m4a转换成mp3&#xff1f;尽管m4a格式在音质上表现突出&#xff0c;但并不是所有设备和软件都能支持&#xff0c;给一些用户带来了不便。为了保证音乐文件能够在更多设备和平台上播放&#xff0c;许多人选择将m4a转换为MP3格式。MP3几乎可以在所有播放器和设备上使用&…