gpt4 book ai didi

Anylogic 系统动力学 : Stock capacity

转载 作者:行者123 更新时间:2023-12-01 12:57:37 27 4
gpt4 key购买 nike

Anylogic system dyanmics

股票初始值为 1
流量为0.1
Stock1 初始值为 0。

当我运行模拟时,我意识到股票的值(value)低于 0(获得负值)。当 Stock 的值达到零时如何停止流动。

最佳答案

一个应该有一个非常明显的答案的问题,但没有。

首先也是最重要的:没有选项可以设置为将 0 定义为库存的最小值,因为无论如何流量都会继续想要从库存中获取,所以您必须做的是在什么时候改变流量股票为 0(或接近 0)。

记住系统动力学是一种连续模拟技术,因为它使用步骤,所以它并不完美......所以我将向您展示两种可能的技巧来做到这一点

技巧一:
这个技巧会给你一个接近零的不精确数字,但它总是足够好:
轻松,在流程中,输入以下公式:

stock-(getEngine().getNextStepTime()-time())*0.1<0 ? 0 : 0.1

getEngine().getNextStepTime() 是下一次计算发生的时间,所以 getEngine().getNextStepTime()-time()将告诉您下一次迭代的时间步长(计算每次迭代的任何逻辑更改所使用的步数的数值方法,因此您必须这样做)。我将时间步长乘以 0.1,因为这是您选择的流速。流量从不为0.1,实际值为0.1*(时间步长)/(时间单位)。在这种情况下,时间单位是 1 秒,所以我除以 1,所以我不需要放置那个除法。
公式最后指出,如果下一次迭代会给你一个负库存,那么让流量等于 0 而不是 0.1

技巧二:
使用以下配置:
new structure
流量会有 flowrate在公式
flowRate 变量等于 0.1
并且该事件是具有以下条件的条件事件:
stock<=0

以及以下操作:
flowRate=0;
stock1=stock1+stock;
stock=0;

在这种情况下,股票将在一个时间步长(大约 1-10 毫秒)内为负值。我们人为地设置了实际值。

(如果你愿意,你可以结合技巧 1 和技巧 2)

关于Anylogic 系统动力学 : Stock capacity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49818546/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com