Add powerfactor, testing needed

This commit is contained in:
Carsten Schmiemann 2022-04-20 23:45:03 +02:00
parent 6195129baa
commit 6300314851
2 changed files with 19 additions and 2 deletions

View File

@ -178,7 +178,23 @@ void OvmsVehicleRenaultZoePh2::IncomingEVC(uint16_t type, uint16_t pid, const ch
}
case 0x300D: { // AC input current
StandardMetrics.ms_v_charge_current->SetValue((float) (CAN_UINT(0) * 0.1), Amps);
StandardMetrics.ms_v_charge_power->SetValue((float) (StandardMetrics.ms_v_charge_current->AsFloat() * StandardMetrics.ms_v_charge_voltage->AsFloat() * mt_main_phases_num->AsFloat()), kW);
//Power factor measured with simple power meter, using later a Janitza UMG512 Class A power analyser to get more precision
if (StandardMetrics.ms_v_charge_current->AsFloat() > 30.0f) {
ACInputPowerFactor = 0.9;
} else if (StandardMetrics.ms_v_charge_current->AsFloat() > 25.0f) {
ACInputPowerFactor = 0.8;
} else if (StandardMetrics.ms_v_charge_current->AsFloat() > 20.0f) {
ACInputPowerFactor = 0.7;
} else if (StandardMetrics.ms_v_charge_current->AsFloat() > 10.0f) {
ACInputPowerFactor = 0.6;
} else if (StandardMetrics.ms_v_charge_current->AsFloat() > 8.0f) {
ACInputPowerFactor = 0.5;
} else if (StandardMetrics.ms_v_charge_current->AsFloat() > 7.0f) {
ACInputPowerFactor = 0.1;
} else if (StandardMetrics.ms_v_charge_current->AsFloat() < 6.0f) {
ACInputPowerFactor = 0.05;
}
StandardMetrics.ms_v_charge_power->SetValue((float) (StandardMetrics.ms_v_charge_current->AsFloat() * StandardMetrics.ms_v_charge_voltage->AsFloat() * mt_main_phases_num->AsFloat() * ACInputPowerFactor), kW);
//ESP_LOGD(TAG, "300D EVC mt_main_current: %f", (CAN_UINT(0) * 0.1));
break;
}
@ -204,7 +220,7 @@ void OvmsVehicleRenaultZoePh2::IncomingEVC(uint16_t type, uint16_t pid, const ch
}
case 0x2B8A: { // AC mains voltage
StandardMetrics.ms_v_charge_voltage->SetValue((float) (CAN_UINT(0) * 0.5), Volts);
StandardMetrics.ms_v_charge_power->SetValue((float) (StandardMetrics.ms_v_charge_current->AsFloat() * StandardMetrics.ms_v_charge_voltage->AsFloat() * mt_main_phases_num->AsFloat()), kW);
StandardMetrics.ms_v_charge_power->SetValue((float) (StandardMetrics.ms_v_charge_current->AsFloat() * StandardMetrics.ms_v_charge_voltage->AsFloat() * mt_main_phases_num->AsFloat() * ACInputPowerFactor), kW);
//ESP_LOGD(TAG, "2B8A EVC ms_v_charge_voltage: %f", (CAN_UINT(0) * 0.5));
break;
}

View File

@ -74,6 +74,7 @@ class OvmsVehicleRenaultZoePh2 : public OvmsVehicle {
bool CarLastCharging = false;
bool CarIsDriving = false;
bool CarIsDrivingInit = false;
float ACInputPowerFactor = 0.0;
protected:
int m_range_ideal;