Я пытаюсь смоделировать расписание движения автомобиля Electri c, чтобы минимизировать счет за электричество. Конечно, электромобиль сможет заряжаться только каждый раз, когда он подключен к зарядной станции (т. Е. Он не может заряжаться во время движения автомобиля). По сути, это стационарный аккумулятор, который можно отсоединить и снова подключить.
Я уже успел смоделировать планирование стационарного аккумулятора раньше, и он работает хорошо, как я ожидал, однако мне трудно установить ограничение для подключения и отключения аккумулятора.
В наборе данных, который я использую, автомобиль подключается в определенные периоды времени, и я использую такой словарь availDict = dict(enumerate(df[avail]))
, который содержит значения 1 = plugged
и 0 = not plugged
в разное время суток. Например, если предположить, что когда автомобиль подключен к сети, когда он не движется, то с 7:00 до 9:00 не подключен, когда автомобиль движется, с 9:00 до 18:00 подключается, поскольку транспортное средство не движется, с 18:00 до 20:00 не подключается, поскольку автомобиль находится за рулем, и с 20:00 до 7:00 он подключен, поскольку автомобиль не движется.
На данный момент я попытался смоделировать ограничение как логическое значение, например: думал использовать BigM, чтобы заставить модель ограничивать зарядку автомобиля в это время, но мне трудно это настроить.
Для дальнейшего объяснения, это уравнения, которые я пытаюсь модель, которую я нашел в статье:
SOCmin(t) <= SOC(t) <= SOCmax(t)
if avail = 0 (not plugged)
SOCmin(t) = SOCmax(t) = 0
if avail = 1 (plugged) but idle
SOCmin(t) = 0 and SOCmax(t) = SOC
if avail = 1 (plugged) and needed by time (t)
SOCmin(t) = SOCmax(t) = SOC
Я надеюсь, что я правильно объяснил свою проблему, и, надеюсь, вы сможете понять, что я имел в виду.
Если есть другое предложение или вам нужна дополнительная информация, дайте мне знать, и я предоставлю ее как можно скорее.