Netlogo中的模型离散系统

时间:2018-02-23 09:03:40

标签: netlogo multi-agent

我想要模拟n辆车。每辆车由第一个离散模型表示:

P_i [k + 1] = P_i [k] + T * v_i [k]

P_i [k + 1],P_i [k]分别是车辆i在采样时间(k + 1)T和kT

的位置

T是采样时间

v_i [k]是在采样时间kT

的车辆i的速度

车辆之间的关系遵循以下等式:

P_i [k + 1] = T *(P_(i + 1)[k + 1] + P_(i-1)[k] -2 * P_i [k])

我不知道如何在此处表示采样时间T

1 个答案:

答案 0 :(得分:2)

有点不清楚你的'采样时间'是什么意思。但是,根据您的符号,我认为您的意思是T是当前时间,并且您正在根据当前位置和速度计算下一个时间点的位置。在这种情况下,您不需要明确表示时间,您只需要通过它。在NetLogo中tick是向前推进一步的命令(ticks是记者所采用的时间步数,但我认为你不需要它。)

评论更新:

我认为我们正在谈论交叉目的。采样点是找到连续函数或函数集的离散近似。一旦处于离散时间,您可以使用tick作为时间标记。每次勾选,都可以计算出状态。您需要记住,如果您的采样时间为0.5秒,则需要执行(例如)20个滴答以在10秒内找到状态。

以下是一个例子:

globals [ticks-per-sec]
turtles-own [velocity]

to setup
  clear-all
  set ticks-per-sec 2
  create-turtles 10
  [ setxy random-xcor random-ycor
    set velocity (1 + random 4) / ticks-per-sec
    set heading 90
  ]
  reset-ticks
end

to go
  ask turtles
  [ forward velocity
    set velocity 0.9 * velocity + 0.1 * mean [velocity] of other turtles
  ]
  tick
end

我已将所有海龟设置在同一方向,以便您可以看到它们的速度收敛。您的方程式具有恒定的速度,但此示例旨在向您展示如何在您的车辆之间进行交互。