如何有效地创建所有代理具有的一个变量的数据

问题描述 投票:0回答:1

我正在使用NetLogo模型研究电动汽车的充电行为。所有(500个)代理每次变动都会监控他们的my-charging-demand,我想找出当我更改有效的策略干预(在这种情况下为电费)时这种紧急情况发生了什么。我试图显示充电特性的变化,例如充电时间,充电功率等。

及时在座席的my-charging-demand上创建数据的最佳方法是什么?

现在,我正在使用以下代码在一张图中绘制所有数据:

ask adopters 
 [ create-temporary-plot-pen (word-who)
   set-plot-pen-color color
   plotxy ticks my-charging-demand
 ]

[它可以工作,但不幸的是,它也使模型变得异常缓慢,因为每个刻度都需要更新500支笔。整个年度/运行完成之前,模型需要105120滴答,因为模型中的每个滴答都代表5分钟。因此,速度很重要:-)

是否有更有效的方法来跟踪/创建所有代理具有的一个变量的数据?

netlogo agent
1个回答
1
投票

如果我理解正确,您希望每个代理始终记住其变量my-charging-demand的值。如果是这样,最简单的方法(但我不知道它是否更有效)是将列表作为乌龟变量。因此,修改您的turtles-own以添加另一个变量:

adopters-own
[ ....
  my-charging-demand
  my-charging-demand-series
]

并且无论您拥有用于计算需求的代码,都将结果添加到列表中

ask adopters
[ ...
  set my-charging-demand ...
  set my-charging-demand lput my-charging-demand my-charging-demand-series
  ...
]

我无法想象有500条线的图是可读的。该地块应该做一些类似我的充电需求的平均值或我的充电需求大于某个阈值的海龟的比例。

© www.soinside.com 2019 - 2024. All rights reserved.