【发布时间】:2017-09-29 22:58:34
【问题描述】:
我有很多不同的电动汽车 (car1 ... carN),在行程开始 (start_trip) 和结束 (end_trip) 时都有充电状态 (SOC)。在旅行之间,汽车被装载到最大水平。我知道充电电池的充电容量(~0.35 / 分钟)以及每公里所需的容量(0.22 / 公里)。在两次旅行之间,我们有几分钟的时间来加载,而在一次旅行中,容量会减少。
如果我假设将来使用电动汽车提供相同的服务,我想估计出行之间的必要时间以满足 99% 的预订需求。
我有一份近 100 万份燃烧车辆预订的清单。 carN starttime stoptimedrivenkm ...
我使用 loadtime = starttime - lag(stoptime) 计算行程结束和最后一次使用开始之间的可能时间,所以我知道行程开始时的 SOC_S 是多少。
我计算了一次旅行所需的容量并将其从 SOC_S 中减去。所以我在旅行结束时得到了 SOC_E。
现在我想考虑一下,在旅行结束时电池并不是真的没电了。因此,充电状态是上次行程的 SOC_E + 行程之间的可能负载。
现在我有一些问题:
最大负载为 22 kWh。所以负载是max("按时间加载的电荷"或"maxLoad"。第一个是向量,第二个是常数。max(a,b)不起作用。
我想将每辆车首次预订的第一个 SOC_S 设置为 22 kWh。它开始满载。如何为每辆车在 R 中 group_by 的第一行的特殊列中放置一个值?
-
如何计算满足 99% 的使用所需的加载时间值?像 excel 中的求解器之类的东西?
B_ES <- B_ES %>% arrange(car, start_trip) %>% group_by(car) %>% mutate( preTime <- (start_trip - lag(end_trip))/60, useTime <- (end_trip - start_trip)/60, postTime <- (lead(start_trip) - end_trip)/60, SOC_S <- preTime * ZOE_charge, E_consumption <- km * ZOE_consumption, SOC_E <- SOC_S - E_consumption SOC_S <- SOC_S + lag(SOC_E) )
此代码不起作用。问题是
如何使用新变量?有这样的名称:“preTime
最后两个似乎进入了不规则循环。
问候
吕迪格
【问题讨论】:
-
你能发帖
head(B_ES)- 你的数据示例 -
# A tibble: 6 x 5 place car start_trip end_trip km
1 680000104 201 2014-04-30 19:42:00 2014- 05-01 00:58:00 22 2 680000125 222 2014-04-30 19:28:00 2014-05-01 00:55:00 45 3 681690121 1310 2014-04-30 20:05:00 2014-05- 01 00:55:00 36 4 680000128 225 2014-04-30 20:48:00 2014-05-01 00:52:00 31 5 691240301 1350 2014-04-30 18:59:00 2014-05-01 00 :46:00 42 6 680000120 217 2014-04-30 20:53:00 2014-05-01 00:46:00 11 -
ZOE_bat
标签: r dplyr lag lubridate lead