|
|
@@ -343,7 +343,6 @@ static void _force_capacity_full(void){
|
|
|
_discharger_no_full_coef = 1.0f + delta_min/(_soc.coulomb_max - _soc.coulomb_min);
|
|
|
}
|
|
|
|
|
|
- push_event(Charger_no_full_ceof, (u32)(_discharger_no_full_coef * 10000));
|
|
|
u32 cap_x10 = (u32)(_soc.current_real_coulomb / 3600.0f * 10);
|
|
|
u32 min_x10 = (u32)(curr_min_cap / 3600.0f * 10);
|
|
|
push_event(Charger_Full_cap2, ((min_x10 & 0xFFFF) << 16) | (cap_x10 & 0xFFFF));
|
|
|
@@ -351,7 +350,16 @@ static void _force_capacity_full(void){
|
|
|
if (bms_state_get()->pack_voltage >= 53000) {
|
|
|
_soc.current_real_coulomb = _soc.coulomb_max - _soc.coulomb_min;
|
|
|
_discharger_no_full_coef = 1.0f;
|
|
|
+ }else if (bms_state_get()->pack_voltage >= (53000 - 200)) {
|
|
|
+ _discharger_no_full_coef = MIN(_discharger_no_full_coef, 1.05f);
|
|
|
+ }else if (bms_state_get()->pack_voltage >= (53000 - 400)) {
|
|
|
+ _discharger_no_full_coef = MIN(_discharger_no_full_coef, 1.1f);
|
|
|
+ }else if (bms_state_get()->pack_voltage >= (53000 - 800)) {
|
|
|
+ _discharger_no_full_coef = MIN(_discharger_no_full_coef, 1.15f);
|
|
|
+ }else if (bms_state_get()->pack_voltage >= (53000 - 1000)) {
|
|
|
+ _discharger_no_full_coef = MIN(_discharger_no_full_coef, 1.2f);
|
|
|
}
|
|
|
+ push_event(Charger_no_full_ceof, (u32)(_discharger_no_full_coef * 10000));
|
|
|
|
|
|
//充满后,当前容量设置为最大容量
|
|
|
_soc.capacity = 100;
|