У меня много разных электромобилей (car1...carN) с состоянием заряда (SOC) в начале поездки (start_trip) и в конце (end_trip). В промежутках между поездками автомобиль загружается по максимуму. Я знаю емкость заряда для зарядки аккумулятора (~ 0,35 / мин) и необходимую емкость на каждый километр (0,22 / км). Между двумя поездками у нас есть несколько минут для загрузки, и во время поездки емкость уменьшается.
Я хочу оценить необходимое время между поездками, чтобы удовлетворить потребность в 99% бронирований, если я предполагаю предоставлять такую же услугу с электронными автомобилями в будущем.
У меня есть список из почти 1 миллиона бронирований автомобилей с ДВС. время запуска автомобиля время остановки км ...
Я рассчитываю возможное время между окончанием поездки и началом последнего использования с помощью loadtime = starttime - lag(stoptime), поэтому я знаю, что такое SOC_S в начале поездки.
Я рассчитываю необходимую мощность для поездки и вычитаю ее из SOC_S. Так что я получаю SOC_E в конце поездки.
Теперь я хочу принять во внимание, что батарея не совсем разряжена в конце поездки. Итак, состояние заряда — это SOC_E с последней поездки + возможная нагрузка между поездками.
Теперь у меня есть некоторые проблемы:
максимальная нагрузка 22 кВтч. Таким образом, нагрузка равна max("загруженный заряд по времени" или "maxLoad". Первый - это вектор, а второй - постоянное число. max(a, b) не работает.
Я хочу установить первый SOC_S для первого бронирования для каждого автомобиля на 22 кВтч. Он начинается с полной загрузки. Как поместить значение в специальный столбец первой строки group_by в R для каждой машины?
Как я могу рассчитать значение времени загрузки, необходимого для выполнения 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 ‹- (Nutzungsbeginn - lag(Nutzungsende))/60"
Последние два, кажется, приходят к неправильной петле.
С уважением
Рюдигер
head(B_ES)
- пример ваших данных - person pogibas   schedule 30.09.2017