2017-09-29 69 views
0

我有很多不同的電動汽車(car1 ... carN),在開始行程(start_trip)時帶有充電狀態(SOC)和結束(end_trip)。之間的一輛車被裝載,到最高水平。我知道裝載電池的充電容量(〜0.35 /分鐘)是每公里所需容量(0.22 /公里)。在兩次旅行之間,我們有幾分鐘的時間加載,在旅行期間,容量下降。如何在R的第一行中放置一個值

如果我假設未來能夠提供與電動汽車相同的服務,我想估計在滿足99%預訂需求的旅行之間所需的時間。

我有一個近100萬燃燒車輛預訂名單。 卡恩開始時間停止時間drivenkm ...

我計算之旅的結束,以及加載時=開始時間最後一次使用的開始之間的時間 - 滯後(停止時間),所以我知道,在什麼`在SOC_S旅行的開始。

我計算旅行所需的容量並從SOC_S中減去它。所以我在旅行結束時得到SOC_E。

現在我想要考慮一下,在行程結束時電池並非真的是空的。因此,充電狀態是來自上次行程+行程之間的可能負載的SOC_E。

現在我有一些問題:

  1. 最大載荷爲22千瓦時。因此,負載是最大值(「按時間加載費用」或「maxLoad」),第一個是矢量,第二個是常數,max(a,b)不起作用

  2. 我想設置首先SOC_S首先爲每輛車預定22KWh,然後開始滿負荷運行,如何在R車的第一排特殊列中爲evvery車輛設置一個特殊的列值

  3. 我該如何計算對於需要加載時的值,以滿足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) 
    ) 
    

此代碼不起作用。問題是

  1. 如何使用新變量?有有colnames這樣的: 「preTime < - (Nutzungsbeginn - 滯後(Nutzungsende))/ 60」

  2. 最後兩個似乎走到了一個不規則的循環。

問候

Ruediger

+0

能否請您發佈'頭(B_ES)' - 例如,你的數據 – PoGibas

+1

#A tibble的:6×5 地方汽車start_trip end_trip公里 1 680000104 201二零一四年四月三十零日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 –

+0

ZOE_bat < - 22#Maximale Ladung ZOE ZOE_consumption < - 0.233#千瓦時親公里 ZOE_charge < - 0.366#千瓦時親分鐘 –

回答

1

重複的例子:

foo <- data_frame(group = c('A','A','A','B','B','C','C') 
      , x1 = c(1,2,3,1,2,1,2) 
      , SOC_S = c(4,5,6,4,5,4,5)) 

在問候您的第二個目標:

  • 我想要設置第一個SOC_S首先爲每輛車預訂22千瓦時。它開始完全加載。如何爲R ev車中的group_by的第一行的特殊列中添加值?
  • library(tidyverse) 
    
    dd <- foo %>% group_by(group) %>% 
        mutate(rownumber = 1:n()  ## a helper column to find first row 
        , special = ifelse(rownumber == 1, 22, SOC_S)) ## vectorized edits based on rownumber 
    

    注意:您還可以用SOC_S替代special如果首選。

    無法真正地跟隨問題的其餘部分,但這可能會讓你更遠一點。

    +0

    謝謝 我沒有realizie,有 X1 <之間的差異 - ç (1,2,3,1,2,1,2)和 x1 = c(1,2,3,1,2,1,2) 導致不同的col_names。 –

    0

    基於該答案,我發現了以下解決方案:

    ZOE_battery <- 22 # kWh 
    ZOE_consumption <- 0.233 # kWh/Kilometer 
    ZOE_chargeflow <- 0.366 # kWh/Minute 
    
    ZOE <- ZOE %>% 
        arrange(car, start_trip) %>% 
        group_by(car) %>% 
        mutate(
        seq_id = row_number(), 
        preTime = (start_trip - lag(end_trip))/60, 
        useTime = (end_trip - start_trip)/60, 
        postTime = (lead(start_trip) - end_trip)/60, 
        SOC_S = ifelse(seq_id == 1, ZOE_battery, 
            ifelse(preTime * ZOE_chargeflow > ZOE_battery, ZOE_battery, preTime * ZOE_chargeflow)), 
        consumption = km * ZOE_consumption, 
        SOC_E = SOC_S - consumption 
    ) 
    ZOE_P <- ZOE %>% # Trips with possible problems 
        filter(SOC_S <= 0 | SOC_E <0) 
    

    其結果是:

    甲tibble:6×12

    羣組:轎廂[1]

    place car   start_trip   end_trip km seq_id preTime useTime postTime SOC_S consumption 
    <fctr> <int>    <dttm>    <dttm> <int> <int> <time> <time> <time> <dbl>  <dbl> 
    1 681990401 171 2014-04-30 20:31:00 2014-05-01 12:08:00 43  1 NA secs 937 secs 1350 secs 22  10.019 
    2 681990401 171 2014-05-02 10:38:00 2014-05-02 14:03:00 32  2 1350 secs 205 secs 1512 secs 22  7.456 
    3 681990401 171 2014-05-03 15:15:00 2014-05-03 22:49:00 25  3 1512 secs 454 secs 791 secs 22  5.825 
    4 681990401 171 2014-05-04 12:00:00 2014-05-04 17:07:00 71  4 791 secs 307 secs 879 secs 22  16.543 
    5 681990401 171 2014-05-05 07:46:00 2014-05-05 13:38:00 71  5 879 secs 352 secs 1418 secs 22  16.543 
    6 681990401 171 2014-05-06 13:16:00 2014-05-06 19:20:00 52  6 1418 secs 364 secs 19 secs 22  12.116 
    

    現在我知道,只有1.5%的旅行會有問題,因爲開始時的充電狀態是對於預期的行程低。

    相關問題