Wiki source code of 3.4 Battery parameters

Version 34.2 by Admin on 2025/04/09 12:02

Show last authors
1 (% data-numbered-headings-start="3" style="--numbered-headings-start: 2;font-size: 0px;color: rgba(0, 0, 0, 0.0);margin-bottom: 0px; margin-top: 0px;" %)
2 = Configuration =
3
4 (% data-numbered-headings-start="4" style="--numbered-headings-start: 3;font-size: 0px;color: rgba(0, 0, 0, 0.0);margin-bottom: 0px; margin-top: 0px;" %)
5 == Battery parameters ==
6
7 === Cell defaults ===
8
9 To change the default cell settings, select the menu "Cells → Cell defaults":
10
11 [[image:1732205873121-893.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="281" width="374"]]
12
13 In this section:
14
15 * Capacity – nominal capacity of cells, Ah;
16 * Resistance – nominal (maximum) internal resistance of the cell, Ohm;
17 * Relax time (after charging) – a relaxation time after charging, second;
18 * Relax time (atfer discharging) – the relaxation time after discharging, second;
19 * Cycles – a number of charge-discharge cycles;
20 * Reset battery cycles – a command to reset charge-discharge cycles;
21 * Reset cell parameters (SOC, capacity, resistance) – a command to reset cells state of charge, capacity, and resistance.
22
23 The values “Capacity”, “Resistance”, “Cycles” are used to calculate the SOC of cells and battery.
24
25 The values of “Relax time” are used to determine the state of the battery. If the battery is in a state of relaxation, the system recalculates the voltage on the cells to the state of charge of the battery.
26
27 The “Reset cell parameters” command is used for starting-up and adjustment of battery.
28
29 === SOC estimation ===
30
31 The BMS Main 2.x board calculates the state of charge of the battery (SOC) using two algorithms:
32
33 * by open circuit voltage;
34 * by current and voltage.
35
36 It is recommended to use the algorithm of calculation of SOC by voltage and current.
37
38 To change the parameters of the algorithm for calculating the battery SOC, select the menu "Cells → SOC estimation":
39
40 [[image:1732206031847-819.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="849" width="356"]]
41
42 In this section:
43
44 * Estimation algorithm – SOC calculation algorithm:
45 ** Voltage – by open circuit voltage;
46 ** Current and voltage (simplified);
47 ** Current and voltage (enhanced);
48 * Final SOC – a method of calculating the battery SOC:
49 ** Minimum cell SOC – the battery SOC is assumed to be equal to the minimum SOC of cells;
50 ** Average cell SOC – the battery SOC is assumed to be equal to the average SOC of cells;
51 ** Min-Max SOC – the battery SOC is calculated based on the minimum and maximum SOC of the cells. Final SOC will be a) 100% if any cell has 100% SOC, b) 0% if any cell has 0% SOC;
52 ** Max-Min SOC – the battery SOC is calculated based on the minimum and maximum SOC of the cells. Final SOC will be a) 100% if all cells have 100% SOC, b) 0% if all cells have 0% SOC;
53 * Scale the final SOC – flag to scale the battery SOC by the following values;
54 * Internal SOC corresponding to 0% – battery SOC that sets to be 0%;
55 * Internal SOC corresponding to 100% – battery SOC that sets to be 100%.
56 * Uocv = Uocv(SOC, t °C) – the dependence of the cell open circuit voltage Uocv on SOC and the cell temperature (selected for specific batteries, can be established experimentally – see [[Cell analysis>>doc:||anchor="HCellanalysis"]]);
57 * Linear zone – linear zone of dependence Uocv = Uocv(SOC, t °C):
58 ** Uocv ,,[point 1],, – starting point of the linear zone;
59 ** Uocv ,,[point 2],, – end point of the linear zone;
60 * Temperature correction – the dependence of battery capacity on temperature;
61 * Cycle correction – the dependence of battery capacity on the number of charge-discharge cycles.
62
63 The SOC calculation algorithm for voltage calculates SOC cells based on the tabular dependence Uocv = Uocv(SOC, t °C) .
64
65 The SOC calculation algorithm “Current and voltage (simplified)” works as follows:
66
67 * if I = 0, the battery is in a state of relaxation and the cell voltage Uocv is outside the [U,,ocv[point 1],,; U,,ocv[point 2],,], the SOC calculation based on the tabular dependence Uocv = Uocv(SOC, t °C);
68 * in any other cases, the SOC value is proportional to the charge (coulomb) passed through the battery (current time integral).
69
70 The SOC calculation algorithm “Current and voltage (enhanced)” differs from the simplified algorithm by online correction of effective capacitance. When using this algorithm, it is necessary to fine tune the tabular dependence Uocv = Uocv (SOC, t °C).
71
72 === Cell resistance estimation ===
73
74 Calculation of the resistance of cells is carried out in two ways. The first method is used when the battery passes from a relaxation state to a charge or discharge state, wherein the cell resistance value
75
76 {{formula fontSize="SMALL" imageType="PNG"}}
77 R = \frac{U-U_{ocv}}{I_{stable}}
78 {{/formula}}
79
80 where U is the cell voltage measured in the charge or discharge state, V; Uocv is the cell voltage measured in the state of relaxation (before switching to the state of charge or discharge); Istable – stabilized current through the cell in the state of charge or discharge.
81
82 The second method is used for a stepwise change in the current through the cell, while the value of the cell resistance:
83
84 {{formula fontSize="SMALL"}}
85 R = \frac{U_2-U_1}{I_{stable2}-I_{stable1}}
86 {{/formula}}
87
88 provided that
89
90 {{formula fontSize="SMALL"}}
91 | I_{stable2}-I_{stable1} | > 0.2 × Q_{max}
92 {{/formula}}
93
94 where Q,,max,, is the maximum cell capacity; U,,2,, is the voltage on the cell at the moment when the stabilized current I,,stable2,, is flowing through it; U,,1,, – the voltage on the cell at the moment when the stabilized current I,,stable1,, flowing through it.
95
96 The stabilized current I,,stable,, = I, if during the stabilization time the instantaneous current I is in the range from 0.95 × I to 1.05 × I.
97
98 To change parameters of the algorithm for calculating the cell resistance, select the menu "Cells → Cell resistance estimation":
99
100 [[image:1732207338609-903.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="187" width="337"]]
101
102 In this section:
103
104 * Current stabilization time, second;
105 * Maximum estimation period – maximum time between resistance measurements. If more time has elapsed since the last determination of the stabilized current Istable than is determined in this field, the resistance calculation is not performed, second;
106 * Maximum resistance factor – the coefficient of calculation of the maximum acceptable resistance of the cell;
107 * Minimum SOC – minimum cell SOC value for resistance calculation;
108 * Maximum SOC – maximum cell SOC value for resistance calculation.
109
110 The calculated resistance is accepted by the system as valid (and therefore updated) if its value is in the range from Resistance/2 to “Maximum resistance factor” × Resistance, where "Resistance" is the nominal resistance of the cell (see [[Cell defaults>>doc:||anchor="HCelldefaults"]]). If the calculated resistance value is greater than the value (Maximum resistance factor × Resistance), the updated resistance value will be equal to the value (Maximum resistance factor × Resistance).
111
112 === Cell balancing ===
113
114 The BMS Main 2.x supports two cell balancing algorithms:
115
116 * balancing stacks individually;
117 * balancing the entire battery (used by default).
118
119 Balancing stacks individually balances the voltage within a group of cells that are connected to the same BMS Logic board. **It is not recommended to use this algorithm in typical battery designs**.
120
121 Balancing the entire battery makes the voltage of all cells be equal to the minimum cell voltage.
122
123 The following balancing rules are supported:
124
125 * only when the battery is charging (current I > 0);
126 * when the battery is charging (current I > 0) or when the battery is in a state of relaxation;
127 * always (regardless of battery state).
128
129 A balancing resistor is connected to the cell if:
130
131 * the voltage on the cell is higher than the starting voltage of the balancing;
132 * the difference between the cell voltage and the minimum voltage among the cells of the battery is greater than the balancing threshold.
133
134 A balancing resistor is disconnected from the cell if any of the following conditions are met:
135
136 * the voltage on the cell is less than the balancing stop voltage;
137 * the difference between the voltage on the cell and the minimum voltage among the battery cells is less than the balancing stop threshold.
138
139 If the BMS Logic board overheats, then the balancing of the cells connected to this board will not be performed (see [[Logic high temperature protection>>doc:Battery management systems.BMS Main 2\.1.3\. Configuration.3\.6 Battery protection.WebHome||anchor="HLogichightemperatureprotection"]]).
140
141 The BMS Main 2.1 can enable the cell balancing by the external “Balancing request” signal. Balancing process will be started to cells which the voltage is higher than the balancing start voltage and the difference between the cell voltage and the minimum voltage among all the cells is greater than the balancing stop threshold.
142
143 BMS Main 2.1 can force a cell balancing, if its voltage is higher than estimated value.
144
145 To change the cell balancing parameters, select the menu "Cell → Cell balancing":
146
147 [[image:1739812799920-892.png||alt="1732207485773-804.png" data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="264" width="387"]]
148
149 In this section:
150
151 * Enable – a flag to enable cell balancing;
152 * Algorithm – a balancing algorithm:
153 ** Balancing stacks individually;
154 ** Balancing the entire battery;
155 * Constrain (rule):
156 ** Charging;
157 ** Charging or relaxed;
158 ** Always (regardless of battery state);
159 * Balancing condition:
160 ** Automatic – balancing will be performed automatically if needed conditions are met;
161 ** On balancing request – balancing will start only if a remote request is received. In this case cells will start to balance regardless the "Voltage deviation to start balancing" value;
162 * Minimum cell voltage to start balancing, V;
163 * Deviation to start balancing;
164 * Deviation to stop balancing;
165 * Voltage for forced balancing – if cell voltage is above this value, it will start discharging through balancing resistor;
166 * Start cell discharging – a command to start forced balancing of all battery cells (used for service purposes);
167 * Stop cell discharging – a command to stop forced balancing of all battery cells (used for service purposes).
168
169 === Series balancing ===
170
171 The BMS Main 2.x board supports work with two independent (galvanically unrelated) cell series. To monitor the status of two series, two current sensors are used: primary and secondary (AUX). A series of cells must be equivalent: they must have the same number of cells and the same capacity.
172
173 Since the series of cells can operate at different loads, they must be balanced. For this, the BMS Main 2.x provides two relays: “Balancing series 1” and “Balancing series 2” (see [[Input and output signals>>doc:Battery management systems.BMS Main 2\.1.3\. Configuration.3\.3 Input and output signals.WebHome]]), as well as a combined algorithm that considers both the voltage of each series and the charge that these series gave load. “Balancing series 1” and “Balancing series 2” relays are used to connect high-power balancing resistors in parallel with cells series 1 and 2.
174
175 When charging the battery, balancing is performed based on the voltage of the series. A balancing resistor is connected to the cell series if:
176
177 * the series voltage is higher than the starting voltage of the balancing;
178 * the difference between the voltage of a series of cells and the minimum voltage among the battery series is greater than the balancing threshold.
179
180 When the battery is discharging (work on load), balancing is turned on if one of the series gives the load a charge (Ah), which is more by the amount Qthr of the charge given off by another series.
181
182 To change the series balancing parameters, select the menu "Cell → Series balancing":
183
184 [[image:1732207584941-447.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="258" width="438"]]
185
186 In this section:
187
188 * Enable – a flag to enable series balancing;
189 * Number of BMS Logic boards in a series;
190 * Minimum series voltage to start balancing, V;
191 * Balancing threshold, V;
192 * Coulomb threshold – the difference of the charges Qthr, given by a series of cells, above which balancing to be started, Ah;
193 * Period – period to reset of charge counters for each series (to avoid accumulation of error), second.
194
195 === Cell analysis ===
196
197 Discharge characteristics of the battery – the dependence Uocv = Uocv (DOD) – is used to determine the tabular dependence Uocv = Uocv (SOC, t °C) (see [[SOC estimation>>doc:||anchor="HSOCestimation"]]), which is necessary for calculating the state of charge of the battery.
198
199 The BMS Main 2.x board can automatically determine the battery discharge characteristic.
200
201 Before starting the process of determining the discharge characteristic, it is necessary to prepare a BMS:
202
203 1. Charge the battery.
204 1. Connect a contactor to the discharging relay which switches the resistive load to the battery.
205 1. Connect a resistive load to the contactor, which will provide a discharge current of 0.5C (where C is the cell capacitance).
206
207 To configure parameters for determining the discharge characteristic of the battery, select the menu "Cells → Cell analysis":
208
209 [[image:1732207696322-587.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="213" width="258"]]
210
211 In this section:
212
213 * Enable – a flag to enable cell analysis;
214 * Discharge step, Ah;
215 * Delta voltage – a maximum allowable voltage drop for the cell, V;
216 * Logic index – an address of the BMS Logic board to which the analyzed cell is connected;
217 * Cell index – a position of the analyzed cell connected to the BMS Logic board;
218 * Analyse cell with minimum voltage – a flag to analyse of the least charged cell (in this case, the values of Logic index and Cell index are ignored).
219
220 Discharge step should be set equal to
221
222 Discharge step = С/21,
223
224 where C is the cell capacity.
225
226 The discharge characteristic will be constructed for the given cell (its position is determined by the fields Logic index and Cell index).
227
228 The algorithm for determining the discharge characteristic of the battery will be started if the Enable flag is set. From this moment, the control of the discharge relay is performed by this algorithm.
229
230 Algorithm steps:
231
232 1. DOD = 0.
233 1. Disconnecting the discharge relay.
234 1. Waiting for the relaxation of the battery.
235 1. Measuring Uocv = U.
236 1. Saving the point of the discharge characteristic (Q, U,,OCV,,).
237 1. Activation of the discharge relay. DOD,,1,, = DOD + Discharge step, U,,1,, = U
238 1. If DOD = DOD,,1,, or U < (U,,1,, – Delta voltage), then go to step 2.
239 1. If the "Undervoltage" error is detected, then the end of the algorithm.
240
241 During the operation of the algorithm, a file with the name "CELLANALYSIS.TXT" in the CSV format will be created on the SD card.
242
243 File structure:
244
245 |**Time**|**DOD**|**Logic**|**Cell**|**OCV**|**Resistance**
246 |**10.11.2017 12:28:34**|0.0|1|1|4.180|0.080000
247 |**...**|...|…|…|...|...
248
249 Parameter names:
250
251 * Time – date and time;
252 * DOD – depth of discharge, Ah;
253 * Logic – the address of the BMS Logic board to which the analyzed cell is connected;
254 * Cell – position of the analyzed cell for which OCV and Resistance values are provided;
255 * OCV – cell voltage Uocv, V;
256 * Resistance – cell resistance, Ohm.
257
258 === Charge current map ===
259
260 The BMS Main 2.x board calculates maximum allowable charge current values in respect to cell SOC and battery temperature, contactor temperature and maximum cell voltage.
261
262 Calculated currents values are sending to chargers over the CAN bus.
263
264 To configure parameters for determining the charge current limit, select the menu "Cells → Charge current map":
265
266 [[image:1732208033738-498.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="655" width="453"]]
267
268 In this section:
269
270 * Enable – a flag to start calculation of the charge current limit;
271 * Maximum charging current – a maximum allowable value of the charge current (under normal conditions):
272 * Limit charging current by the battery SOC and temperature – a flag to enable correction of maximum allowable charging current Kcs depending on the __maximum cell SOC__ and temperature;
273 * Limit charging current by the contactor temperature – a flag to enable correction of maximum allowable charging current Kcc depending on the contactor temperature;
274 * Limit charging current by the maximum cell voltage – a flag to enable correction of maximum allowable charging current Kcv depending on __the maximum cell voltage __;
275 * Limit charging current by the maximum cell temperature – a flag to enable correction of maximum allowable charging current Kct depending on cell temperature.
276
277 Value of the charge current limit at given SOC, temperature, contactors temperature and maximum cell voltage is calculated as follows:
278
279 Charging current limit = Maximum charging current × Kcs × Kcc × Kcv × Kct.
280
281 === Discharge current map ===
282
283 The BMS Main 2.x board calculates maximum allowable discharge current values in respect to cell SOC and battery temperature, contactor temperature and minimum cell voltage.
284
285 Calculated currents values are sending or intellectual loads over the CAN bus.
286
287 To configure parameters for determining the discharge current limit, select the menu "Cells → Charge current map":
288
289 [[image:1732208218667-968.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="631" width="434"]]
290
291 In this section:
292
293 * Enable – a flag to start calculation of the discharge current limit;
294 * Maximum discharging current – a maximum allowable value of the discharge current (under normal conditions):
295 * Current factor – the dependence of the correction factor on SOC and the battery temperature – Kdischarge=Kdischarge (SOC, t°C).
296 * Limit discharging current by the battery SOC and temperature – a flag to enable correction of maximum allowable discharging current Kds depending __on the minimum cell SOC__ and temperature;
297 * Limit discharging current by the contactor temperature – a flag to enable correction of maximum allowable discharging current Kdc depending on the contactor temperature;
298 * Limit discharging current by the maximum cell voltage - a flag to enable correction of maximum allowable discharging current Kdv depending __on the minimum cell voltage__;
299 * Limit discharging current by the maximum cell temperature - a flag to enable correction of maximum allowable discharging current Kdt depending on cell temperature .
300
301 Value of the discharge current limit at given SOC, temperature, contactors temperature and maximum cell voltage is calculated as follows:
302
303 Discharging current limit = Maximum discharging current × Kds × Kdc × Kdv × Kdt.
304
305 === SOC correction ===
306
307 The BMS Main 2.x board can recalculate the battery SOC after long-term storage or after long-term working in the case when the battery was not charged fully or discharged totally. Recalculation is done based on the tabular dependency Uocv = Uocv (SOC, t) (see [[SOC estimation>>doc:||anchor="HSOCestimation"]]).
308
309 To configure parameters for periodically correcting the battery state of charge, select the menu "Cells → SOC correction":
310
311 [[image:1732206262509-786.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="291" width="298"]]
312
313 In this section:
314
315 * Enable – a flag to enable SOC correction;
316 * Shutdown period – a time the battery is off, day. If the BMS detects on its startup that it was off during the “Shutdown period” time, the BMS recalculates the battery state of charge base on the tabular dependency Uocv = Uocv (SOC, t);
317 * Correction period – a period of correcting the battery SOC, day. If the BMS detects that the last correction was more than the “Correction period” ago, the BMS recalculates the battery state of charge base on the tabular dependency Uocv = Uocv (SOC, t) and tunes it gradually during the “SOC change time”;
318 * SOC change time – a duration of the linear changing the battery SOC to the value calculated by the correction algorithm, minute;
319 * Ignore the linear zone – a flag to ignore linear zone while calculating SOC correction.
320
321