【发布时间】:2020-04-13 13:28:05
【问题描述】:
globals [ demand1 stimer energy_c_evehicle1 energy_b_evehicle1 scaling_factor]
breed[endusers1 enduser1]
to setup
clear-all
reset-timer
reset-ticks
set stimer 0
world_scaling
create-clusters
create-enddistributor
dec_timer
set energy_b_evehicle1 5 * 1.56
to create-clusters
ask patches with [pxcor <= -70 and pycor <= 30 and pycor > 20] [set pcolor green]
ask patches with [pxcor = -70 and pycor = 25] [set plabel "cluster 1"]
end
to create-enddistributor
ask patches with [pxcor = -69 and pycor = 25] [set pcolor brown]
end
to world_scaling
set scaling_factor (world-width / (world_scale * 1000)) ;; patches per meter
end
to create_endusers1
create-endusers1 numcluster1
[
move-to one-of patches with [ pcolor = green ]
set color white
set shape "triangle"
set size 2
]
end
to call_dist1
foreach sort endusers1 [ ?1 ->
ask ?1
[
set demand1 demand1 + 1
]
]
end
to calculate_endusers1
every 1 [ ask endusers1[ set energy_c_evehicle1 avgspeed_evehicle * 0.147]]; each evehicle consumes
every 1 [ set energy_b_evehicle1 energy_b_evehicle1 - energy_c_evehicle1]; energy left in battery
; each battery= 1.56kWh, 5 such battery needed
end
to demand_battery
ask endusers1
[if energy_b_evehicle1 < 1.56 [call_dist1]]
end
to dec_timer
every 1
[
set stimer stimer + 1
]
end
to-report timer-expired?
report ( stimer >= 24 )
end
to go
calculate_endusers1
demand_battery
dec_timer
tick
if timer-expired? [ stop]
end
在我的模拟中,我正在建造一座太阳能发电厂,如果energy _b _evehicle1
【问题讨论】:
-
在阅读您的代码时,我有点困惑。每个最终用户1都应该有自己的电池吗?我们的代码中没有,但您的 cmets 建议他们应该这样做。
-
是的,每个最终用户 1 都将获得一块电池以供使用。
-
那么,您的哪些变量指的是单个电池?我假设
energy_c_evehicle1和energy_b_evehicle1。还有其他人吗?