This seems like a great data set, and will get more helpful as it gets larger. One question about the data summary: is the kWh the same as what's shown on the touchscreen after a charge? If so, that the energy pulled from the wall, not the energy added to the battery. From a quick look at the data summary, that seems like what it is. To be useful to timing the charges I care the most about, the model needs to take into account the tapering that occurs near the top of the charge, which is especially critical for range mode charges. If you look at the graph "Current vs SOC" on my blog about Roadster charging rates and efficiency, you can see the shape of the envelope that limits the current draw as a function of SOC. http://www.saxton.org/tom_saxton/2010/07/tesla-roadster-charging-rates.html That graph isn't quite right; what we really want is maximum charge rate as a function of SOC, but I think we can get that pretty easily. So, I think the right model is to parameterize energy loss to overhead and cooling as a function of ambient temperature (and perhaps battery temperature), reduce the available power by that amount, to get the maximum available charge rate, then cap that charge rate by the Roadster's maximum charge rate envelope. There are a few things that make this more complex. 1. How does reduced battery capacity affect the charge rate envelope? At the very least, OVMS will need to have an idea the car's capacity. 2. Range mode prioritizes cooling the battery pack, which affects the charging overhead. 3. Do we care about Performance mode charging? I haven't studied that at all. 4. It seems to me that cooling is reduced when charging at 120V, so that may also require some special handling. Recently, Rod (of Rod and Barbara on TMC) pointed out that the spreadsheet on JB's blog about Roadster efficiency and range implies that JB models the usable capacity of a new Roadster battery pack as 55 kWh. http://www.teslamotors.com/blog/roadster-efficiency-and-range This implies that 244 ideal miles = 55 kWh. This agrees very closely with what Rod had calculated empirically from reported energy use via the trip meter. So, that's when I've been using lately to convert between ideal miles and energy. I'm very interested in getting the charge end time feature so I can time range mode charges to end very close to my planned departure time on road trips, but it will be at least a week before I can devote time to working on the data set. Tom on 8/23/12 6:30 AM, Mark Webb-Johnson wrote:
In order to provide a feature 'complete charge by time', we need to be able to estimate how long the charge will take.
Looking at anonymised historical logs from ovms, we have records for a few hundred completed charges, over a range of temperatures and current/voltage conditions. The ovms logs are not perfect, but they do cover a large variety of conditions. Paranoid mode cars are excluded from the results (or, perhaps better written as can't be included because we can't see the data). I have cleaned them to remove overtly wrong data (-1Amp charges, aborted charges, etc). What remains are the records for 360 charges.
For privacy reasons, we've been dumping these logs after a couple of days, so I only have the last few days from TMC and then a several month batch from a few cars early on in the days of OVMS (from the www.openvehicles.com development server). I am going to make arrangements to keep an anonymised form of this (basically the charges.csv format) in future, even from TMC, in order to get as much historical data as possible. I'm guessing that the more data, the better and more accurate model we can build.
I've attached to this eMail a csv containing the data, and a simple perl program I knocked up to display it in various ways. It would probably be better to do this in excel, but I haven't had time to do that yet.
The fields in the charges.csv are:
$key - A unique key for the charge record (assuming no-one starts a charge in the same microsecond :-) $mode - The charge mode $wmax - The maximum Watts (current x voltage) seen as used during the charge $s_tambient - The ambient temperature (celcius) at the start of the charge $s_tbattery - The battery (ESS) temperature (celcius) at the start of the charge $e_tambient - The ambient temperature (celcius) at the end of the charge $e_tbattery - The battery (ESS) temperature (celcius) at the end of the charge $s_soc - The SOC% (varies by mode) at the start of the charge $e_soc - The SOC% (varies by mode) at the end of the charge $soc = $e_soc-$s_soc - The increase in SOC% $s_kmi - The ideal kilometers at the start of the charge $e_kmi - The ideal kilometers at the end of the charge $kmi = $e_kmi - $s_kmi - The increase in ideal kilometers as a result of the charge $duration - The duration (in minutes) of the charge, as indicated by the car $kwh - The kWh put into the battery (ESS), for the charge, as indicated by the car
eg; 20120220062307.716156,standard,5980,4,32,10,21,6,97,91,18,301,283,529,52 5.9kW charge, 4C ambient at start of charge, SOC 6% -> 97% (= +91% SOC), 18kmi -> 301kmi (= +283kmi), 529 minutes, 52kWh
My chargetables.pl code tries to crunch this data in a few ways. Here is the output from the small set we have:
NUMBER OF SAMPLES: kWh,Temp 0 1 2 3 4 5 6 7 8 9 10 11 13 14 16 17 TOTAL 0 0 0 5 0 0 0 0 2 0 1 0 0 0 0 0 0 8 10 0 0 12 5 0 5 0 2 0 1 0 0 0 0 0 0 25 15 2 0 24 7 6 14 1 6 0 0 0 1 0 0 0 0 61 20 4 4 23 12 4 12 2 7 2 1 3 3 1 0 0 0 78 25 3 5 27 6 1 16 5 7 0 3 12 2 1 0 0 0 88 30 2 2 6 4 2 5 1 4 1 6 1 0 1 1 0 0 36 35 0 2 1 1 0 5 1 3 0 21 7 0 2 0 5 0 48 40 0 0 1 1 0 1 0 1 2 4 1 0 0 0 4 1 16
KM(IDEAL)/MINUTE: kWh,Temp 0 1 2 3 4 5 6 7 8 9 10 11 13 14 16 17 0 ----- ----- 0.19 ----- ----- ----- ----- 0.71 ----- 0.45 ----- ----- ----- ----- ----- ----- 10 ----- ----- 0.20 0.32 ----- 0.49 ----- 0.63 ----- 0.78 ----- ----- ----- ----- ----- ----- 15 0.33 ----- 0.18 0.26 0.40 0.60 0.67 0.54 ----- ----- ----- 0.39 ----- ----- ----- ----- 20 0.18 0.11 0.20 0.25 0.44 0.48 0.37 0.63 0.51 0.91 0.78 0.55 0.86 ----- ----- ----- 25 0.12 0.06 0.18 0.29 0.67 0.46 0.52 0.51 ----- 0.68 0.82 0.82 0.99 ----- ----- ----- 30 2.84 0.04 0.20 0.23 0.42 0.51 0.57 0.60 0.56 0.75 0.88 ----- 1.06 1.01 ----- ----- 35 ----- 0.08 0.20 0.19 ----- 0.45 0.28 0.41 ----- 0.78 0.79 ----- 1.11 ----- 0.69 ----- 40 ----- ----- 0.19 0.27 ----- 0.39 ----- 0.59 0.58 0.83 0.62 ----- ----- ----- 1.07 0.37
EFFICIENCY: kWh,Temp 0 1 2 3 4 5 6 7 8 9 10 11 13 14 16 17 0 ----- ----- 74.6 ----- ----- ----- ----- 103.9 ----- 91.5 ----- ----- ----- ----- ----- ----- 10 ----- ----- 78.1 81.9 ----- 90.4 ----- 80.8 ----- 97.2 ----- ----- ----- ----- ----- ----- 15 ----- ----- 70.3 78.7 81.5 95.4 ----- 90.0 ----- ----- ----- 66.2 ----- ----- ----- ----- 20 106.0 79.5 76.7 84.5 ----- 93.1 68.9 91.1 79.5 98.4 95.0 87.3 98.4 ----- ----- ----- 25 0.0 37.5 71.1 86.2 ----- 87.2 72.9 90.4 ----- 80.3 89.2 74.5 90.4 ----- ----- ----- 30 340.7 26.5 79.3 85.3 87.7 87.0 74.0 87.4 79.5 81.7 94.6 ----- 96.4 89.3 ----- ----- 35 ----- 50.4 68.6 69.6 ----- 87.2 71.5 84.1 ----- 89.5 85.0 ----- 94.6 ----- 90.4 ----- 40 ----- ----- 68.4 79.5 ----- 74.8 ----- 89.5 88.3 91.1 53.0 ----- ----- ----- 96.0 86.7
It produces three tables. The axes on all are the same - kW along the top, and battery temperature down the side. The idea is to extract the charge records and put them in the matching bucket based on the rounded-down kW for maximum charge wattage seen, and rounded-down 5Celcius for battery temperature at the start of the charge.
The first table (NUMBER OF SAMPLES) just shows the number of charge records seen for each bucket.
The second table (KM(IDEAL)/MINUTE) shows how many ideal kilometers were added, an average, for each bucket.
The third table (EFFICIENCY) tries to calculate an efficiency by assuming a 53kWh battery (ESS) would be 100% SOC, and then looking at the change in SOC% over the charge to calculate how much was put into the battery (ESS), and comparing that to what the car says was taken from the wall (to the nearest kWh).
The numbers are all over the place in some areas (e.g.; 30C, 0..1kW, where there are only 2 samples).
The hypothesis is that charging efficiency depends primarily on battery/ambient temperature and kW available at the wall.
If we can store such a small table in the OVMS module in the car, when OVMS needs to complete a charge by say 5am, it can plug in the current temperature and available current/voltage and get out a charging efficiency (perhaps how many minutes for each extra 1% of SOC). Then, knowing that it needs 100-currentSOC% to charge, it can work out how many minutes that would be, add on say 1/2 hour for safety, and start the charge at the appropriate time. Neat, and no server connection required.
Thoughts? Anyone good at number crunching to play with this?
Regards, Mark.
_______________________________________________ OvmsDev mailing list OvmsDev@lists.teslaclub.hk http://lists.teslaclub.hk/mailman/listinfo/ovmsdev