CO2MPAS Model

CO2MPAS model is plotted here below: you can explore the diagram nests by clicking on them.

digraph dmap { node [style=filled] label = <dmap> splines = ortho style = filled 8443 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2" href="./dispatcher-e27b5cc64e8ff1efb5749350a386d32d56a1e46d/CO2MPAS_physical_model.html">calibrate_with_wltp_h</TD></TR></TABLE>> fillcolor=yellow shape=note style=filled tooltip="\"Wraps all functions needed to calibrate the models to predict CO2 emissions.\""] 8444 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2" href="./dispatcher-e27b5cc64e8ff1efb5749350a386d32d56a1e46d/CO2MPAS_physical_model-0.html">calibrate_with_wltp_l</TD></TR></TABLE>> fillcolor=yellow shape=note style=filled tooltip="\"Wraps all functions needed to calibrate the models to predict CO2 emissions.\""] 8445 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">data.calibration.model_scores</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Scores of calibrated models.\""] 8446 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">data.prediction.models_nedc_h</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Calibrated models for NEDC-H prediction stage.\""] 8447 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">data.prediction.models_nedc_l</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Calibrated models for NEDC-L prediction stage.\""] 8448 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">data.prediction.models_wltp_h</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Calibrated models for WLTP-H prediction stage.\""] 8449 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">data.prediction.models_wltp_l</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Calibrated models for WLTP-L prediction stage.\""] 8450 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">data.prediction.wltp_h</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Input data of WLTP-H prediction stage.\""] 8451 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">data.prediction.wltp_l</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Input data of WLTP-L prediction stage.\""] 8452 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">enable_selector</TD></TR><TR><TD align="RIGHT" border="1">default</TD><TD align="LEFT" border="1">False</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Enable the selection of the best model to predict both H/L cycles.\""] 8453 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2" href="./dispatcher-e27b5cc64e8ff1efb5749350a386d32d56a1e46d/extract_calibrated_models.html">extract_calibrated_models</TD></TR></TABLE>> fillcolor=greenyellow shape=note style=filled tooltip="\"Select the calibrated models.\""] 8454 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">input.calibration.wltp_h</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"User input data of WLTP-H calibration stage.\""] 8455 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">input.calibration.wltp_l</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"User input data of WLTP-L calibration stage.\""] 8456 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">input.prediction.models</TD></TR><TR><TD align="RIGHT" border="1">default</TD><TD align="LEFT" border="1">{}</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"User input models for prediction stages.\""] 8457 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">input.prediction.nedc_h</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"User input data of NEDC-H prediction stage.\""] 8458 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">input.prediction.nedc_l</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"User input data of NEDC-L prediction stage.\""] 8459 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">input.prediction.wltp_h</TD></TR><TR><TD align="RIGHT" border="1">default</TD><TD align="LEFT" border="1">{}</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"User input data of WLTP-H prediction stage.\""] 8460 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">input.prediction.wltp_l</TD></TR><TR><TD align="RIGHT" border="1">default</TD><TD align="LEFT" border="1">{}</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"User input data of WLTP-L prediction stage.\""] 8461 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">output.calibration.wltp_h</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Output data of WLTP-H calibration stage.\""] 8462 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">output.calibration.wltp_l</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Output data of WLTP-L calibration stage.\""] 8463 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">output.prediction.nedc_h</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Output data of NEDC-H prediction stage.\""] 8464 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">output.prediction.nedc_l</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Output data of NEDC-L prediction stage.\""] 8465 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">output.prediction.wltp_h</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Output data of WLTP-H prediction stage.\""] 8466 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2">output.prediction.wltp_l</TD></TR></TABLE>> fillcolor=cyan shape=box style="rounded,filled" tooltip="\"Output data of WLTP-L prediction stage.\""] 8467 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2" href="./dispatcher-e27b5cc64e8ff1efb5749350a386d32d56a1e46d/CO2MPAS_physical_model-1.html">predict_nedc_h</TD></TR></TABLE>> fillcolor=yellow shape=note style=filled tooltip="\"Wraps all functions needed to predict CO2 emissions.\""] 8468 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2" href="./dispatcher-e27b5cc64e8ff1efb5749350a386d32d56a1e46d/CO2MPAS_physical_model-2.html">predict_nedc_l</TD></TR></TABLE>> fillcolor=yellow shape=note style=filled tooltip="\"Wraps all functions needed to predict CO2 emissions.\""] 8469 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2" href="./dispatcher-e27b5cc64e8ff1efb5749350a386d32d56a1e46d/CO2MPAS_physical_model-3.html">predict_wltp_h</TD></TR></TABLE>> fillcolor=yellow shape=note style=filled tooltip="\"Wraps all functions needed to predict CO2 emissions.\""] 8470 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2" href="./dispatcher-e27b5cc64e8ff1efb5749350a386d32d56a1e46d/CO2MPAS_physical_model-4.html">predict_wltp_l</TD></TR></TABLE>> fillcolor=yellow shape=note style=filled tooltip="\"Wraps all functions needed to predict CO2 emissions.\""] 8471 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2" href="./dispatcher-e27b5cc64e8ff1efb5749350a386d32d56a1e46d/select_prediction_data.html">select_prediction_data</TD></TR></TABLE>> fillcolor=springgreen shape=box tooltip="\"Selects the data required to predict the CO2 emissions with CO2MPAS model.\""] 8472 [label=<<TABLE border="0" cellspacing="0"><TR><TD border="0" colspan="2" href="./dispatcher-e27b5cc64e8ff1efb5749350a386d32d56a1e46d/select_prediction_data-0.html">select_prediction_data&lt;0&gt;</TD></TR></TABLE>> fillcolor=springgreen shape=box tooltip="\"Selects the data required to predict the CO2 emissions with CO2MPAS model.\""] 8454 -> 8443 8455 -> 8444 8461 -> 8472 8461 -> 8453 8462 -> 8471 8462 -> 8453 8443 -> 8461 8444 -> 8462 8459 -> 8472 8460 -> 8471 8448 -> 8472 8449 -> 8471 8450 -> 8469 8451 -> 8470 8471 -> 8451 8472 -> 8450 8456 -> 8453 8452 -> 8453 8453 -> 8445 8453 -> 8446 8453 -> 8447 8453 -> 8448 8453 -> 8449 8446 -> 8467 8447 -> 8468 8469 -> 8465 8470 -> 8466 8457 -> 8467 8458 -> 8468 8467 -> 8463 8468 -> 8464 }

The execution of CO2MPAS model for a single vehicle is a procedure in three sequential stages:

  • Calibration stage: identifies, calibrates, and selects the best physical models (see next section Model selection) from WLTP input data (i.e., input.calibration.<cycle>).
  • Model selection stage: selects the best calibrated models (i.e., data.prediction.models_<cycle>) to be used in the prediction stage.
  • Prediction stage: forecasts the CO2 emissions using the user’s inputs (i.e., input.prediction.<cycle>) and the calibrated models. If some/all WLTP inputs are not provided, the function select_prediction_data chooses those required to predict CO2 emissions from output.calibration.<cycle>.

The physical model is used in both stages: calibration (i.e., calibrate_with_<cycle>) and prediction (i.e., predict_<cycle>). The identified/calibrated parameters from WLTP data (i.e., data.prediction.models_<cycle>) can be grouped by functionality in eight macro-models:

  1. A/T: gear shifting strategy for automatic transmission,
  2. electrics: vehicle electric components ( i.e., alternator, service battery, drive battery, and DC/DC converter),
  3. clutch-torque-converter: speed model for clutch or torque converter,
  4. co2_params: extended willans lines parameters,
  5. after-treatment: warm up strategy of after treatment,
  6. engine-coolant-temperature: warm up and cooling models of the engine,
  7. engine-speed: correlation from velocity to engine speed,
  8. control: start/stop strategy or ECMS.

Model selection

The default model selection criteria (i.e., when enable_selector == False) are to use the calibrated models from WLTP-H data to predict WLTP-H and NEDC-H and from WLTP_L data to predict WLTP-L and NEDC-L (this logic is applied in type-approval mode).

On the contrary, if the selector is enabled, the function extract_calibrated_model detects/selects the best macro-model for prediction (from WLTP-H or WLTP-L). The selection is performed according to the model’s score, which is the model capability to reproduce the input data, i.e. a weighted average of all computed metrics.

In other words, the calibrated models are used to recalculate (predict) the inputs of the WLTP-H and WLTP-L cycles, while the scores are derived from various metrics comparing inputs against predictions.

Note

A success flag is defined according to upper or lower limits of scores which have been defined empirically by the JRC. If a score is outside the model fails the calibration and a warning is logged.

Hybrid electric vehicles model

Hybrid Electric Vehicles (HEVs) have more complex driveline layouts and control strategies compared to conventional vehicles. Their driveline integrates one or more electric machines for supporting propulsion and/or charging the drive battery, to regenerate braking power, using the engine at a more optimal operating point or even switching it off when appropriate. Therefore, additional components are needed for the simulation of their operation: electric machines, drive battery and DC/DC converter. The vehicle powertrain model of CO2MPAS is developed in a way to capture and replicate the operation of as many different vehicle architectures as possible through a unique driveline virtual architecture.

Hybrid electric architectures

Three main architectures can be identified for HEVs driveline:

  1. Parallel hybrids are similar to conventional vehicles as the engine produces mechanical power that is directly used for propulsion; also, engine rotational speed is a function of the rotational speed of the wheels according to the reduction/multiplication effect applied by final drive and gearbox (when present). The electrical machines are used to regenerate braking energy and optimise the load of the engine, but they cannot adjust the rotational speed of the engine when a gear is selected.
  2. Serial hybrids have an additional degree of freedom for the optimisation, as both the load and the rotational speed of the engine can be selected by the controller. This is possible due to the lack of a mechanical coupling between the engine and the wheels. Therefore, a serial hybrid is always propelled by the electric machines and the engine is used to generate electrical energy that is used for propulsion or battery charging.
  3. Planetary architecture is instead a driveline configuration that can accomplish, to some extent, the operation of the two architectures previously mentioned. The engine can provide mechanical power that is directly used for propulsion, but at the same time, its rotational speed can be adjusted by the controller becoming independent from wheel speed. This system normally replaces the conventional transmissions (gearboxes and CVTs) as it can adjust the reduction gear ratios to any wanted value, and it integrates two electric machines (one generating and the other one consuming electrical energy).
|co2mpas| driveline configurations for hybrid electric vehicles

Electric power system

The Electric Power System (EPS) of HEVs is composed by three main components:

  • Electric machines (P0, P1, P2, P2_pla, P3f, P3r, P4f, and P4r),
  • Batteries (Drive and Service, i.e. high and low voltage batteries), and
  • DC/DC converter

The electric machines convert electrical energy into mechanical energy when they need to propel the vehicle and mechanical energy into electrical during regenerative braking or battery charging. This electrical energy, consumed or generated, is exchanged with the drive battery. The DC/DC converter is the component in charge of allowing the energy exchange between the drive battery and the low-voltage electric system of the vehicle, to supply the electrical consumers and charge the service battery when needed.

|co2mpas| electric power system for hybrid electric vehicles

The efficiency of the drive battery is modeled using the equivalent-circuit cell model (see image below). The drive battery is seen as a set of battery cells with equal characteristics and size, with a certain combination of cells in series and circuits in parallel. Each cell of the battery suffers of a power loss that is proportional to the cell internal resistance R0 and the current flowing through it, that is transformed to heat. The performance obtained by the battery is then calculated by considering how many cells in series and parallel are constituting the battery.

|co2mpas| drive battery efficiency modeling

Control strategy

The control unit of an HEV runs an optimisation strategy to control the hybrid powertrain and assign the target power to each component (engine and electric machines). The adopted strategy adopted in CO2MPAS is the Equivalent Consumption Minimisation Strategy (ECMS), which assigns an equivalent cost - in terms of fuel - to electrical energy use. The strategy evaluates the combination of engine and drive battery power that minimises the overall equivalent energy consumption.