|
|
@@ -270,13 +270,13 @@ static void soc_update_by_current_and_time(float current_now, float delta_time,
|
|
|
if (chargering){
|
|
|
delta_q = delta_q * _charger_coefficient;
|
|
|
_soc.charger_coulomb += abs(delta_q);
|
|
|
- if (est_capaticy < 100 ){ //充电,容量不能等于100,需要靠电压和充电电流来矫正到100
|
|
|
+ if ((est_capaticy < 100) && (est_capaticy >= _soc.capacity)){ //充电,容量不能等于100,需要靠电压和充电电流来矫正到100
|
|
|
update_capticy = 1;
|
|
|
}
|
|
|
}else {
|
|
|
delta_q = delta_q * _discharger_coefficient;
|
|
|
_soc.dischrger_coulomb += abs(delta_q);
|
|
|
- if (est_capaticy > 0) { //放电,容量不能等于0,需要靠欠压或者PowerDown 矫正到0
|
|
|
+ if ((est_capaticy > 0) && (est_capaticy <= _soc.capacity)) { //放电,容量不能等于0,需要靠欠压或者PowerDown 矫正到0
|
|
|
update_capticy = 1;
|
|
|
}
|
|
|
}
|