|
@@ -409,13 +409,14 @@ static void soc_update_by_current_and_time(float current_now, float delta_time,
|
|
|
int update_capticy = 0;
|
|
int update_capticy = 0;
|
|
|
double est_coulomb = _soc.coulomb_now + delta_q;//计算当前容量,充电加, 放电减
|
|
double est_coulomb = _soc.coulomb_now + delta_q;//计算当前容量,充电加, 放电减
|
|
|
|
|
|
|
|
- if (est_coulomb < _soc.coulomb_min){
|
|
|
|
|
- est_coulomb = _soc.coulomb_min;
|
|
|
|
|
|
|
+ if (est_coulomb < 0){
|
|
|
|
|
+ est_coulomb = 0;
|
|
|
}else if (est_coulomb > _soc.coulomb_max) {
|
|
}else if (est_coulomb > _soc.coulomb_max) {
|
|
|
est_coulomb = _soc.coulomb_max;
|
|
est_coulomb = _soc.coulomb_max;
|
|
|
}
|
|
}
|
|
|
- est_capaticy = ((est_coulomb - _soc.coulomb_min)/(_soc.coulomb_max - _soc.coulomb_min) + 0.005f) * 100;//四舍五入
|
|
|
|
|
-
|
|
|
|
|
|
|
+ if (est_coulomb >= _soc.coulomb_min) {
|
|
|
|
|
+ est_capaticy = ((est_coulomb - _soc.coulomb_min)/(_soc.coulomb_max - _soc.coulomb_min) + 0.005f) * 100;//四舍五入
|
|
|
|
|
+ }
|
|
|
if (chargering){
|
|
if (chargering){
|
|
|
delta_q = delta_q * _charger_coefficient;
|
|
delta_q = delta_q * _charger_coefficient;
|
|
|
_soc.charger_coulomb += abs(delta_q);
|
|
_soc.charger_coulomb += abs(delta_q);
|