Anylogic - 状态图 - 连续设置值
Anylogic - statechart - set value continuously
我正在尝试使用系统动力学对蒸汽网络进行建模。
有一只股票A流入股票B。
我已经实现了一个具有以下状态 "FillLevelMin"、"FillLevelOk" 和 "FillLevelMax" 的状态图。当状态图进入某个状态时,我希望它影响流量的大小。到目前为止,我已经使用了 set_Parameter(number)。如果我想将流量设置为恒定数量,那效果很好,例如1000.
但是,我想在状态为 "FillLevelMax" 时将流设置为动态变量。现在,当进入状态并保持这种状态时,流正在呈现动态值的值。但是,只要状态图处于状态 "FillLevelMax",我希望流程根据动态变量更新它的值。
知道这是否可能吗?
是的,有一种优雅的方式叫做"internal transitions"。设置你的状态如下:
确保转换 100% 处于状态内,并将超时设置为一个合适的值(对于您的情况来说相当频繁,但请记住,您重新评估的次数越多,您的模型就越慢)。将其设置为仍然可以接受的最不频繁的重复。
在操作代码中,您可以更新您的流量值。
PS:请注意,无论您更新多少次,这仍然是一种离散方法,而不是像系统动力学本身那样连续!
我正在尝试使用系统动力学对蒸汽网络进行建模。
有一只股票A流入股票B。
我已经实现了一个具有以下状态 "FillLevelMin"、"FillLevelOk" 和 "FillLevelMax" 的状态图。当状态图进入某个状态时,我希望它影响流量的大小。到目前为止,我已经使用了 set_Parameter(number)。如果我想将流量设置为恒定数量,那效果很好,例如1000.
但是,我想在状态为 "FillLevelMax" 时将流设置为动态变量。现在,当进入状态并保持这种状态时,流正在呈现动态值的值。但是,只要状态图处于状态 "FillLevelMax",我希望流程根据动态变量更新它的值。
知道这是否可能吗?
是的,有一种优雅的方式叫做"internal transitions"。设置你的状态如下:
确保转换 100% 处于状态内,并将超时设置为一个合适的值(对于您的情况来说相当频繁,但请记住,您重新评估的次数越多,您的模型就越慢)。将其设置为仍然可以接受的最不频繁的重复。
在操作代码中,您可以更新您的流量值。
PS:请注意,无论您更新多少次,这仍然是一种离散方法,而不是像系统动力学本身那样连续!