AnyLogic 在一个过程中更改参数值

Posted

技术标签:

【中文标题】AnyLogic 在一个过程中更改参数值【英文标题】:AnyLogic change parameter value at a process 【发布时间】:2020-04-13 19:09:00 【问题描述】:

在 AnyLogic 仿真软件中,我有一个具有一些参数的代理。我只希望每当此代理从特定进程传递时,例如延迟,将其参数值更改为另一个值。此外,如果我有 100 个人(所有相同类型的代理)从这个过程中通过,我会将这些个人的前 40 个参数值更改为 1,将后 60 个值更改为 2。这可能吗?我是否需要在这些框中编写代码:

【问题讨论】:

【参考方案1】:

是的,您必须在其中一个框中编写一些代码。

创建一个名为v_count的整数变量并将初始值设置为0。如果您希望代理的参数在进入块后立即更改,请将此代码写入“输入”框,否则如果您希望它们是当他们离开区块时改变了,写成“退出时打开”:

if(v_count < 40)
    agent.parameter = value1;
else
    agent.parameter = value2;

v_count++;

//reset the count to 0 when 100 agents have passed through this block
if(v_count == 100)
    v_count = 0;

【讨论】:

非常感谢!你知道我如何在运行后检查每个代理的值吗?我不想使用“绘图”模块绘制单个代理的参数值,而是希望获得所有代理的最终参数! 我能想到办法!如果你在另一个问题中问这个会更好,这样我们可以详细解释并附上图片。谢谢! 现在做很酷:)

以上是关于AnyLogic 在一个过程中更改参数值的主要内容,如果未能解决你的问题,请参考以下文章

Anylogic:将参数值写入数据库表

AnyLogic中“代理”类型参数的访问值

启动时在 Anylogic 中更改 GIS 路由

在 Anylogic 中为代理参数分配不同值的正确方法是啥?

更改 AnyLogic 中选择代理的主类参数

在AnyLogic中更改选定代理的主类参数