是否可以在任何逻辑中动态更新功能?

Is it possible to dynamically update if functions in anylogic?

我在 Anylogic 中结合使用状态图和时间表(见图)。时间表的输出在工作时间等于 1,否则为 0。现在我希望在计划变为 1 或等于 1 时发生从 state1 到 state2 的转换(否则等到工作时间)。

我试过使用 if 语句

   if( main.plannerSchedule()==1 )(<perform action>) 

但是,通过这种方法,状态转换仅在语句为真时发生,而不是等待它变为真。有没有办法不断更新状态转换或者有没有“等到”功能可以解决这个问题?

最好让日程表在切换时向您的状态图发送消息。这假设状态图与时间表存在相同的代理类型。在时间表的操作代码框中写入此代码:

if (value==1) {
    statechart.fireEvent("go to state 2");
} 

显然,您的消息转换需要等待“转到状态 2”消息。

注意 value 关键字。有关详细信息,请参阅 https://www.benjamin-schumann.com/blog/2016/2/4/the-magic-lightbulb-and-how-it-can-help-your-anylogic-modelling