Я симулирую классную комнату.В классе около 90 мест, 20 ламп, 20 вентиляторов и 4 кондиционера.Я создаю количество учеников, где каждому ученику назначается случайное время входа.Когда каждый ученик входит через произвольное время и садится на место, включается соответствующий (в радиусе) свет или вентилятор или переменный ток, и устанавливается связь между учеником и прибором в радиусе.Каждый прибор (например, свет, вентилятор и переменный ток) имеет собственную мощность.После того, как все учащиеся сядут, общее энергопотребление (в кВтч) будет рассчитано для всех вентиляторов, ламп и кондиционеров.
Как сохранить время включения каждого устройства, например (время минус время входа), где время - это общее время занятий.Так что после этого я могу суммировать все время включения каждого устройства (например, вентилятора) и умножить его на его значение в ваттах.Это часть кода.
globals[
temp1 simulation-timer number-of-seats number-of-lights number-
of-fans number-of-acs ]
breed [lights light]
breed [fans fan]
breed [acs ac ]
breed [students student ]
to setup
...
...
place-seats-students
place-lights
place-fans
place-acs
create-students-classroom
end
to create-students-classroom
create-students number-of-students [
set entry-time random threshold + 1
let stu-no sort-on [who] students
foreach stu-no [x -> ask x [ show (word x " -> " entry-time )
] ]
ask students [
set shape "person"
set color 3
] ]
end
to go
set simulation-timer 0
output-show (word "timer = "simulation-timer )
tick
move-students
while [simulation-timer < time ] [
set simulation-timer simulation-timer + 1
output-show (word "timer = "simulation-timer )
end
to move-students
let s sort [who] of seats
let a first s
let l length s
while [ l > (number-of-seats - number-of-students )] [
set temp1 simulation-timer
tick
tick
ask students [ if ( entry-time = temp1 ) [
move-to seat a
set color red
ask students
[create-links-with lights in-radius 5
create-links-with fans in-radius 5
create-links-with acs in-radius 9 ]
show (word "number of links is" count links)
appliance-on
store-on-time
show (word temp1 "," l "," a)
set s remove a s
set a a + 1
set l length s
]
]
set simulation-timer simulation-timer + 1
output-show (word "timer = "simulation-timer )]
end
to appliance-on
ask students with [color = red ]
[ask my-links
[ask other-end [set color green] ] ]
stop
end
to store-on-time
ask students [
ask link-neighbor fan ifelse it is on [
let on-time [ time - entry-time ]
[do nothing]
ask students [
ask link-neighbor light ifelse it is on [
let on-time [ time - entry-time ]
[do nothing]
end
Как я могу написать процедуру сохранения времени, чтобы позже я смог суммировать все времена включения для всего устройства для расчетаКВтч потребляется.Любая помощь будет оценена.