4.7 离散事件仿真

MicroCity有一个内置的仿真时间计数和事件调度机制。它提供了几个嵌入的Lua函数来方便创建离散事件仿真,这对于动态系统分析非常有用。本章的示例代码可以在项目选项卡的“simulation_samples”文件夹中的iconScriptEditor找到。

随机数生成

CreateRandEng (seed, "uniform_01")

使用种子创建一个二进制分布的随机数生成引擎,并返回该对象。

CreateRandEng (seed, "uniform_real" [, min = 0, max = 1])

使用种子创建一个服从均匀分布的实数随机数生成引擎,并返回该对象。

CreateRandEng (seed, "uniform_int" [, min = 0, max = 1])

使用种子创建一个服从均匀分布的整数随机数生成引擎,并返回该对象。

CreateRandEng (seed, "triangle" [, a = 0, b = 1, c = 2])

使用种子创建一个服从三角分布的随机数生成引擎,并返回该对象。

CreateRandEng (seed, "bernoulli" [, p = 0])

使用种子创建一个服从伯努利分布的随机数生成引擎,并返回该对象。

CreateRandEng (seed, "cauchy" [, median = 0, sigma = 1])

使用种子创建一个服从柯西分布的随机数生成引擎,并返回该对象。

CreateRandEng (seed, "exponential" [, lambda = 1])

使用种子创建一个服从指数分布的随机数生成引擎,并返回该对象。

CreateRandEng (seed, "geometric" [, p = 0])

使用种子创建一个服从几何分布的随机数生成引擎,并返回该对象。

CreateRandEng (seed, "normal" [, mean = 0, sigma = 1])

使用种子创建一个服从正态分布的随机数生成引擎,并返回该对象。

CreateRandEng (seed, "lognormal" [, mean = 0, sigma = 1])

使用种子创建一个服从对数正态分布的随机数生成引擎,并返回该对象。

GetNextRandom (Engine)

从随机数生成引擎中获取一个随机数。

仿真控制

CreateEvent (time, Funcion [, arg1, arg2, ...])

Lua FunctionLua Coroutine创建一个将来的事件,并返回一个Coroutine对象。

ExecAllEvents ()

最后调用这个函数。它会将所有事件作为Lua Coroutines执行。

Delay ([relativeTime = 0])

Lua Coroutine中调用这个函数,让它先暂停一段指定的相对时间,然后再恢复执行。如果没有设置参数relativeTime,当前的Coroutine将暂停而不会自动恢复。

Resume ([time, ] Coroutine [, arg1, arg2, ...])

立即或在指定的时间恢复一个已暂停的协程。

GetSimTime ()

返回当前的仿真时间。

这篇文章使用ChatGPT翻译自其他语言,如果有问题请在反馈open in new window页面提交反馈。

Last Updated:
Contributors: huuhghhgyg