Wiki source code of 3.4 Battery parameters
Show last authors
author | version | line-number | content |
---|---|---|---|
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 | R = (U-Uocv) / Istable, | ||
77 | |||
78 | 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. | ||
79 | |||
80 | The second method is used for a stepwise change in the current through the cell, while the value of the cell resistance: | ||
81 | |||
82 | R = (U,,2,,-U,,1,,) / (I,,stable2,,-I,,stable1,,) provided that | I,,stable2,,-I,,stable1,, | > 0.2 × Q,,max,, | ||
83 | |||
84 | (Q,,max,, is the maximum cell capacity), | ||
85 | |||
86 | where 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. | ||
87 | |||
88 | 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. | ||
89 | |||
90 | To change parameters of the algorithm for calculating the cell resistance, select the menu "Cells → Cell resistance estimation": | ||
91 | |||
92 | [[image:1732207338609-903.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="187" width="337"]] | ||
93 | |||
94 | In this section: | ||
95 | |||
96 | * Current stabilization time, second; | ||
97 | * 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; | ||
98 | * Maximum resistance factor – the coefficient of calculation of the maximum acceptable resistance of the cell; | ||
99 | * Minimum SOC – minimum cell SOC value for resistance calculation; | ||
100 | * Maximum SOC – maximum cell SOC value for resistance calculation. | ||
101 | |||
102 | 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). | ||
103 | |||
104 | === Cell balancing === | ||
105 | |||
106 | The BMS Main 2.x supports two cell balancing algorithms: | ||
107 | |||
108 | * balancing stacks individually; | ||
109 | * balancing the entire battery (used by default). | ||
110 | |||
111 | 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**. | ||
112 | |||
113 | Balancing the entire battery makes the voltage of all cells be equal to the minimum cell voltage. | ||
114 | |||
115 | The following balancing rules are supported: | ||
116 | |||
117 | * only when the battery is charging (current I > 0); | ||
118 | * when the battery is charging (current I > 0) or when the battery is in a state of relaxation; | ||
119 | * always (regardless of battery state). | ||
120 | |||
121 | A balancing resistor is connected to the cell if: | ||
122 | |||
123 | * the voltage on the cell is higher than the starting voltage of the balancing; | ||
124 | * the difference between the cell voltage and the minimum voltage among the cells of the battery is greater than the balancing threshold. | ||
125 | |||
126 | A balancing resistor is disconnected from the cell if any of the following conditions are met: | ||
127 | |||
128 | * the voltage on the cell is less than the balancing stop voltage; | ||
129 | * the difference between the voltage on the cell and the minimum voltage among the battery cells is less than the balancing stop threshold. | ||
130 | |||
131 | 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"]]). | ||
132 | |||
133 | 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. | ||
134 | |||
135 | BMS Main 2.1 can force a cell balancing, if its voltage is higher than estimated value. | ||
136 | |||
137 | To change the cell balancing parameters, select the menu "Cell → Cell balancing": | ||
138 | |||
139 | [[image:1739812799920-892.png||alt="1732207485773-804.png" data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="264" width="387"]] | ||
140 | |||
141 | In this section: | ||
142 | |||
143 | * Enable – a flag to enable cell balancing; | ||
144 | * Algorithm – a balancing algorithm: | ||
145 | ** Balancing stacks individually; | ||
146 | ** Balancing the entire battery; | ||
147 | * Constrain (rule): | ||
148 | ** Charging; | ||
149 | ** Charging or relaxed; | ||
150 | ** Always (regardless of battery state); | ||
151 | * Balancing condition: | ||
152 | ** Automatic – balancing will be performed automatically if needed conditions are met; | ||
153 | ** 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; | ||
154 | * Minimum cell voltage to start balancing, V; | ||
155 | * Deviation to start balancing; | ||
156 | * Deviation to stop balancing; | ||
157 | * Voltage for forced balancing – if cell voltage is above this value, it will start discharging through balancing resistor; | ||
158 | * Start cell discharging – a command to start forced balancing of all battery cells (used for service purposes); | ||
159 | * Stop cell discharging – a command to stop forced balancing of all battery cells (used for service purposes). | ||
160 | |||
161 | === Series balancing === | ||
162 | |||
163 | 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. | ||
164 | |||
165 | 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. | ||
166 | |||
167 | When charging the battery, balancing is performed based on the voltage of the series. A balancing resistor is connected to the cell series if: | ||
168 | |||
169 | * the series voltage is higher than the starting voltage of the balancing; | ||
170 | * the difference between the voltage of a series of cells and the minimum voltage among the battery series is greater than the balancing threshold. | ||
171 | |||
172 | 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. | ||
173 | |||
174 | To change the series balancing parameters, select the menu "Cell → Series balancing": | ||
175 | |||
176 | [[image:1732207584941-447.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="258" width="438"]] | ||
177 | |||
178 | In this section: | ||
179 | |||
180 | * Enable – a flag to enable series balancing; | ||
181 | * Number of BMS Logic boards in a series; | ||
182 | * Minimum series voltage to start balancing, V; | ||
183 | * Balancing threshold, V; | ||
184 | * Coulomb threshold – the difference of the charges Qthr, given by a series of cells, above which balancing to be started, Ah; | ||
185 | * Period – period to reset of charge counters for each series (to avoid accumulation of error), second. | ||
186 | |||
187 | === Cell analysis === | ||
188 | |||
189 | 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. | ||
190 | |||
191 | The BMS Main 2.x board can automatically determine the battery discharge characteristic. | ||
192 | |||
193 | Before starting the process of determining the discharge characteristic, it is necessary to prepare a BMS: | ||
194 | |||
195 | 1. Charge the battery. | ||
196 | 1. Connect a contactor to the discharging relay which switches the resistive load to the battery. | ||
197 | 1. Connect a resistive load to the contactor, which will provide a discharge current of 0.5C (where C is the cell capacitance). | ||
198 | |||
199 | To configure parameters for determining the discharge characteristic of the battery, select the menu "Cells → Cell analysis": | ||
200 | |||
201 | [[image:1732207696322-587.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="213" width="258"]] | ||
202 | |||
203 | In this section: | ||
204 | |||
205 | * Enable – a flag to enable cell analysis; | ||
206 | * Discharge step, Ah; | ||
207 | * Delta voltage – a maximum allowable voltage drop for the cell, V; | ||
208 | * Logic index – an address of the BMS Logic board to which the analyzed cell is connected; | ||
209 | * Cell index – a position of the analyzed cell connected to the BMS Logic board; | ||
210 | * 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). | ||
211 | |||
212 | Discharge step should be set equal to | ||
213 | |||
214 | Discharge step = С/21, | ||
215 | |||
216 | where C is the cell capacity. | ||
217 | |||
218 | The discharge characteristic will be constructed for the given cell (its position is determined by the fields Logic index and Cell index). | ||
219 | |||
220 | 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. | ||
221 | |||
222 | Algorithm steps: | ||
223 | |||
224 | 1. DOD = 0. | ||
225 | 1. Disconnecting the discharge relay. | ||
226 | 1. Waiting for the relaxation of the battery. | ||
227 | 1. Measuring Uocv = U. | ||
228 | 1. Saving the point of the discharge characteristic (Q, U,,OCV,,). | ||
229 | 1. Activation of the discharge relay. DOD,,1,, = DOD + Discharge step, U,,1,, = U | ||
230 | 1. If DOD = DOD,,1,, or U < (U,,1,, – Delta voltage), then go to step 2. | ||
231 | 1. If the "Undervoltage" error is detected, then the end of the algorithm. | ||
232 | |||
233 | During the operation of the algorithm, a file with the name "CELLANALYSIS.TXT" in the CSV format will be created on the SD card. | ||
234 | |||
235 | File structure: | ||
236 | |||
237 | |**Time**|**DOD**|**Logic**|**Cell**|**OCV**|**Resistance** | ||
238 | |**10.11.2017 12:28:34**|0.0|1|1|4.180|0.080000 | ||
239 | |**...**|...|…|…|...|... | ||
240 | |||
241 | Parameter names: | ||
242 | |||
243 | * Time – date and time; | ||
244 | * DOD – depth of discharge, Ah; | ||
245 | * Logic – the address of the BMS Logic board to which the analyzed cell is connected; | ||
246 | * Cell – position of the analyzed cell for which OCV and Resistance values are provided; | ||
247 | * OCV – cell voltage Uocv, V; | ||
248 | * Resistance – cell resistance, Ohm. | ||
249 | |||
250 | === Charge current map === | ||
251 | |||
252 | The BMS Main 2.x board calculates maximum allowable charge current values in respect to SOC and battery temperature, contactor temperature and maximum cell voltage. | ||
253 | |||
254 | Calculated currents values are sending to chargers over the CAN bus. | ||
255 | |||
256 | To configure parameters for determining the charge current limit, select the menu "Cells → Charge current map": | ||
257 | |||
258 | [[image:1732208033738-498.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="655" width="453"]] | ||
259 | |||
260 | In this section: | ||
261 | |||
262 | * Enable – a flag to start calculation of the charge current limit; | ||
263 | * Maximum charging current – a maximum allowable value of the charge current (under normal conditions): | ||
264 | * Limit charging current by the battery SOC and temperature – a flag to enable correction of maximum allowable charging current Kcs depending on SOC and temperature; | ||
265 | * Limit charging current by the contactor temperature – a flag to enable correction of maximum allowable charging current Kcc depending on the contactor temperature; | ||
266 | * Limit charging current by the maximum cell voltage – a flag to enable correction of maximum allowable charging current Kcv depending on maximum cell voltage; | ||
267 | * Limit charging current by the maximum cell temperature – a flag to enable correction of maximum allowable charging current Kct depending on cell temperature. | ||
268 | |||
269 | Value of the charge current limit at given SOC, temperature, contactors temperature and maximum cell voltage is calculated as follows: | ||
270 | |||
271 | Charging current limit = Maximum charging current × Kcs × Kcc × Kcv × Kct. | ||
272 | |||
273 | === Discharge current map === | ||
274 | |||
275 | The BMS Main 2.x board calculates maximum allowable discharge current values in respect to SOC and battery temperature, contactor temperature and maximum cell voltage. | ||
276 | |||
277 | Calculated currents values are sending or intellectual loads over the CAN bus. | ||
278 | |||
279 | To configure parameters for determining the charge current limit, select the menu "Cells → Charge current map": | ||
280 | |||
281 | [[image:1732208218667-968.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="631" width="434"]] | ||
282 | |||
283 | In this section: | ||
284 | |||
285 | * Enable – a flag to start calculation of the discharge current limit; | ||
286 | * Maximum discharging current – a maximum allowable value of the discharge current (under normal conditions): | ||
287 | * Current factor – the dependence of the correction factor on SOC and the battery temperature – Kdischarge=Kdischarge (SOC, t°C). | ||
288 | * Limit discharging current by the battery SOC and temperature – a flag to enable correction of maximum allowable discharging current Kds depending on SOC and temperature; | ||
289 | * Limit discharging current by the contactor temperature – a flag to enable correction of maximum allowable discharging current Kdc depending on the contactor temperature; | ||
290 | * Limit discharging current by the maximum cell voltage - a flag to enable correction of maximum allowable discharging current Kdv depending on maximum cell voltage; | ||
291 | * Limit discharging current by the maximum cell temperature - a flag to enable correction of maximum allowable discharging current Kdt depending on cell temperature . | ||
292 | |||
293 | Value of the discharge current limit at given SOC, temperature, contactors temperature and maximum cell voltage is calculated as follows: | ||
294 | |||
295 | Discharging current limit = Maximum discharging current × Kds × Kdc × Kdv × Kdt. | ||
296 | |||
297 | === SOC correction === | ||
298 | |||
299 | 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"]]). | ||
300 | |||
301 | To configure parameters for periodically correcting the battery state of charge, select the menu "Cells → SOC correction": | ||
302 | |||
303 | [[image:1732206262509-786.png||data-xwiki-image-style-alignment="center" data-xwiki-image-style-border="true" height="291" width="298"]] | ||
304 | |||
305 | In this section: | ||
306 | |||
307 | * Enable – a flag to enable SOC correction; | ||
308 | * 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); | ||
309 | * 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”; | ||
310 | * SOC change time – a duration of the linear changing the battery SOC to the value calculated by the correction algorithm, minute; | ||
311 | * Ignore the linear zone – a flag to ignore linear zone while calculating SOC correction. | ||
312 | |||
313 |