1. Changes

1.1. v1.7.4.post3, 10 Aug 2018

Settles dependencies for pip and conda.

1.2. v1.7.4.post2, 8 Aug 2018

  • Fixed regression by “piping to stdout” of previous broken release 1.7.1.post1.

  • Pinned dependencies needed for downgrading from v1.9.x.

    Transitive dependencies are now served from 2 places:

    • setup.py: contains bounded dependency versions to ensure proper functioning, but not reprodicibility.

      These bounded versions apply when installing from PyPi with command pip instal co2mpas==1.7.4.post2; then pip will install dependencies with as few as possible transitive re-installations.

    • requirements/exe.pip: contains the pinned versions of all calculation-important dependent libraries (see #463).

      You need to get the sources (e.g. git-clone the repo) to access this file, and then run the command pip install -r <git-repo>/requirements/exe.pip.

1.2.1. v1.7.4.post1, 3 Aug 2018 (BROKEN!)

Backport fixes to facilitate comparisons with forthcoming release 1.9+.

  • Support pip >= 10+ (fixes #26).
  • Fix conflicting dill requirement.
  • Fix piping dice-commands to stdout.

1.3. v1.7.4.post0, 11 Dec 2017

  • feat(wstamp): cache last sender+recipient in cookies.

1.4. v1.7.4, 15 Nov 2017: “Toketos”

  • feat(dice, #447): Allow skipping tsend -n command to facilitate WebStamper, and transition from tagged –> sample / nosample.
  • fix(co2p, #448): tparse checks stamp is on last-tag (unless forced). Was a “Known limitation” of previous versions.
  • feat(model): minor utility to design generic equidistant gearbox ratios based on maximum_velocity and maximum_vehicle_laden_mass.

1.5. v1.7.3.post0, 16 Oct 2017

  • feat(co2p): The new option --recertify to co2dice project append allows to extend certification files for some vehile-family with new ones


    The old declaration-files are ALWAYS retained in the history of “re-certified” projects. You may control whether they old files will be also visible in the new Dice-report or not.

    For the new dice-report to contain ALL files (and in in alphabetical-order), use different file names - otherwise, the old-files will be overwritten. In the later case, the old files will be visible only to those having access to the whole project, such as the TAAs after receiving the project’s exported archive.

  • fix(co2p): co2dice project commands were raising NPE exception when iterating existing dice tags, e.g. co2dice project export . to export only the current project raised:

    AttributeError: 'NoneType' object has no attribute 'startswith'
  • fix(tstamp): co2dice tstamp were raising NPE exceptions when -force used on invalid signatures.

1.5.1. Known Limitations

co2dice(#448): if more than one dice-report is generated for a project, it is still possible to parse anyone tstamp on the project - no check against the hash-1 performed. So practically in this case, the history of the project is corrupted.

1.6. v1.7.3, 16 August 2017: “T-REA” Release

  • Dice & model fine-tuning.
  • Includes changes also from RETRACTED v1.6.1.post0, 13 July 2017, “T-bone” release.

1.6.1. The Dice:

  • feat(config): stop accepting test-key ('CBBB52FF'); you would receive this error message:

    After July 27 2017 you cannot use test-key for official runs!
    Generate a new key, and remember to re-encrypt your passwords with it.
    If you still want to run an experiment, add `--GpgSpec.allow_test_key=True`
    command-line option.

    You have to modify your configurations and set GpgSpec.master_key to your newly-generated key, and re-encrypt your passowords in persist file.

  • feat(config): dice commands would complain if config-file(s) missing; remember to transfer your configurations from your old AIO (with all changes needed).

  • feat(AIO): prepare for installing AIO in multi-user/shared environments; the important environment variable is HOME (read [AIO]/.co2mpad_env.bat file and run co2dice config paths command). Enhanced Cmd.config_paths parameter to properly work with persistent JSON file even if a list of “overlayed” files/folders is given.

  • feat(config): enhance co2dice config (desc | show | paths) commands to provide help-text and configured values for specific classes & params and all interesting variables affecting configurations. (alternatives to the much coarser --help and --help-all options).

  • Tstamping & networking:

    • feat(#382): enhance handling of email encodings on send/recv:

      • add configurations choices for Content-Transfer-Enconding when sending non-ASCII emails or working with Outlook (usually ‘=0A=0D=0E’ chars scattered in the email); read help on those parameters, with this command:

        co2dice config desc transfer_enc  quote_printable
      • add TstampSender.scramble_tag & TstampReceiver.un_quote_printable options for dealing with non-ASCII dice-reports.

    • (t)recv cmds: add --subject, --on and --wait-criteria options for search criteria on the tstamp recv and project trecv subcmds;

    • (t)recv cmds: renamed email_criteria-->rfc-criteria, enhancing their syntax help;

    • (t)parse can guess if a “naked” dice-reports tags is given (specify --tag to be explicit).

    • (t)recv cmd: added --page option to download a “slice” of from the server.

    • improve (t)parse command’s dice printout to include project/issuer/dates.

    • (t)recv: BCC-addresses were treated as CCs; --raw STDOUT was corrupted; emails received

    • feat(report): print out the key used to sign dice-report.

  • Projects:

    • feat(project): store tstamp-email verbatim, and sign 2nd HASH report.

    • refact(git): compatible-bump of dice-report format-version: 1.0.0-->1.0.1.

    • feat(log): possible to modify selectively logging output with ~/logconf.yaml file; generally improve error handling and logging of commands.

    • co2dice project export:

      • fix(#18): fix command not to include dices from all projects.

      • feat(#423, #435): add --out option to set the out-fpath of the archive, and the --erase-afterwards to facilitate starting a project.


        Do not (ab)use project export --erase-afterwards on diced projects.

    • co2dice project open: auto-deduce project to open if only one exists.

    • co2dice project backup: add --erase-afterwards option. Known Limitations

  • Microsoft Outlook Servers are known to corrupt the dice-emails; depending on the version and the configurations, most of the times they can be fixed. If not, as a last resort, another email-account may be used.

    A permanent solution to the problem is will be provided when the the Exchange Web Services (EWS) protocol is implemented in co2mpas.

  • On Yahoo servers, the TstampReceiver.subject_prefix param must not contain any brackets ([]). The are included by default, so you have to modify that in your configs.

  • Using GMail accounts to send Dice may not(!) receive the reply-back “Proof of Posting” reply (or it may delay up to days). Please perform tests to discover that, and use another email-provided if that’s the case.

    Additionally, Google’s security provisions for some countries may be too strict to allow SMTP/IMAP access. In all cases, you need to enable allow less secure apps to access your account.

  • Some combinations of outbound & inbound accounts for dice reports and timsestamps may not work due to DMARC restrictions. JRC will offer more alternative “paths” for running Dices. All major providers (Google, Yahoo, Microsoft) will not allow your dice-report to be stamped and forwarded to TstampSender.stamp_recipients other than the Comission; you may (or may not) receive “bounce” emails explaining that.

  • There is no high level command to view the stamp for some project; Assuming your project is in sample or nosample state, use this cmd:

    cat %HOME%/.co2dice/repo/tstamp.txt
  • The decision-number generated never includes the nmumbers 10, 20, ...90. This does not change the odds for SAMPLE/NOSAMPLE but it does affect the odds for double-testing Low vs High vehicles (4 vs 5).

1.6.2. Datasync

  • #390: Datasync was producing 0 values in the first and/or in the last cells. This has been fixed extending the given signal with the first and last values.
  • #424: remove buggy interpolation methods.

1.6.3. Model-changes

  • d21b665, 5f8f58b, 33538be: Speedup the model avoiding useless identifications during the prediction phase. Vehicle model

  • d90c697: Add road loads calculation from vehicle and tyre category.
  • 952f16b: Update the rolling_resistance_coeff according to table A4/1 of EU legislation not world wide.
  • 952f16b: Add function to calculate aerodynamic_drag_coefficient from vehicle_body. Thermal model

  • #169: Add a filter to remove invalid temperature derivatives (i.e., abs(DT) >= 0.7) during the cold phase. Clutch model

  • #330: Some extra RPM (peaks) has been verified before the engine’s stops. This problem has been resolved filtering out clutch_delta > 0 when acc < 0 and adding a features selection in the calibration of the model. Engine model

  • 4c07751: The auxiliaries_torque_losses are function of engine_capacity. CO2 model

  • #350: Complete fuel default characteristics (LHV, Carbon Content, and Density).
  • 2e890f0: Fix of the bug in tau_function when a hot cycle is given.
  • #399: Implement a fuzzy rescaling function to improve the stability of the model when rounding the WLTP bag values.
  • #401: Set co2_params limits to avoid unfeasible results.
  • #402: Rewrite of calibrate_co2_params function.
  • #391, #403: Use the identified_co2_params as initial guess of the calibrate_co2_params. Update co2 optimizer enabling all steps in the identification and disabling the first two steps in the calibration. Optimize the parameters that define the gearbox, torque, and power losses.

1.6.4. IO & Data:

  • fix(xlsx, #426): excel validation formulas on input-template & demos did not accept vehicle-family-id with single-digit TA-ids.
  • #314, gh:410: MOVED MOST DEMO-FILES to AIO archive - 2 files are left. Updated co2mpas demo command to use them if found; add --download option to get the very latest from Internet.
  • main: rename logging option --quite –> --quiet.
  • #380: Add cycle scores to output template.
  • #391: Add model scores to summary file.
  • #399: Report co2_rescaling_scores to output and summary files.
  • #407: Disable input-file caching by default (renamed option --override-cache --> use-cache. Known Limitations

  • The co2mpas modelgraph command cannot plot flow-diagrams if Internet Explorer (IE) is the default browser.

1.6.5. GUI

  • feat: co2gui command does not block, and stores logs in temporary-file. It launches this file in a text-editor in case of failures.
  • feat: remember position and size between launches (stored in persistent JSON file).

1.6.6. AIO:

  • Detect 32bit Windows early, and notify user with an error-popup.
  • Possible to extract archive into path with SPACES (not recommended though).
  • Switched from Cygwin–>MSYS2 for the POSIX layer, for better support in Windows paths, and pacman update manager. Size increased from ~350MB –> ~530MB.
    • feat(install): reimplement cygwin’s mkshortcut.exe in VBScript.
    • fix(git): use cygpath.exe to convert Windows paths and respect mount-points (see GitPython#639).
  • Use [AIO] to signify the ALLINONE base-folder in the documentation; use it in co2mpas to suppress excessive development warnings.

1.7. v1.5.7.b3, 14 May 2017: Dice networking features for Ispra Workshop

Pre-released just a new co2mpas python package - not a new AIO.

1.7.1. The Dice:

  • fix(crypto, #382): GPG-signing failed with non ASCII encodings, so had to leave gpg-encoding as is (‘Latin-1’) for STDIN/OUT streams to work in foreign locales; fix crash when tstamp-sig did not pass (crash apparent only with -fd options).

  • fix(report, #370): was always accepting dice-reports, even if TA-flags were “engineering”.

  • refact(tstamp): rename configuration params (old names issue deprecation warnings):

    x_recipients           --> tstamp_recipients
    timestamping_addresses --> tstamper_address           ## Not a list anymore!
    TstampReceiver.subject --> TstampSpec.subject_prefix  ## Also used by `recv` cmd.
  • feat: renamed command: project tstamp -- > project tsend. Now there is symmetricity between co2dice tstamp and co2dice project cmds:

    tstamp send <--> project tsend
    tstamp recv <--> project recv
  • feat: new commands:

    • tstamp recv: Fetch tstamps from IMAP server and derive decisions OK/SAMPLE flags.
    • tstamp mailbox: Lists mailboxes in IMAP server.
    • project trecv: Fetch tstamps from IMAP server, derive decisions OK/SAMPLE flags and store them (or compare with existing).
    • config desc: Describe config-params searched by '<class>.<param>' (case-insensitive).
  • feat(tstamp, #368): Support STARTTLS, enhance DiceSpec.ssl config param:

    Bool/enumeration for what encryption to use when connecting to SMTP/IMAP
    - 'SSL/TLS':  Connect only through TLS/SSL, fail if server supports it
                  (usual ports SMTP:465 IMAP:993).
    - 'STARTTLS': Connect plain & upgrade to TLS/SSL later, fail if server
                  supports it (usual ports SMTP:587 IMAP:143).
    - True:       enforce most secure encryption, based on server port above;
                  If port is `None`, identical to 'SSL/TLS'.
    - False:      Do not use any encryption;  better use `skip_auth` param,
                  not to reveal credentials in plain-text.
  • feat(tstamp, #384): support SOCKSv4/v5 for tunneling SMTP/IMAP through firewalls.

  • feat(tstamp): Add tstamp recv and project trecv commands that connect to IMAP server, search for tstamp emails, parse them and derive the decisions OK/SAMPLE flags. Can work also in “daemon” mode, waiting for new emails to arrive.

  • feat(tstamp, #394): Unify the initial project sub-cmds init, append and report, so now it’s possible to run all three of them:

    co2dice project init --inp co2mpas_input.xlsx --out co2mpas_results.xlsx --report

    The project append supports also the new --report option.

  • feat(tstamp): tstamp login can check SMTP/IMAP server connection selectively. Projects:

  • fix(#371): export cmd produces an archive with local branches without all dice-report tags.
  • deprecate --reset-git-settings, now resetting by default (inverted functionality possible with --preserved list).
  • fix(main, logconf.yml): crash logging.config is a module, not a module attribute, (apparent only with``–logconf``).
  • fix(io.schema, #379): could not handle user-given bag-phases column.
  • feat(tkui, #357): harmonize GUI-logs colors with AIO-console’s, add Copy popup-meny item.
  • fix(baseapp): fix various logic flaws & minor bugs when autoencrypting ciphered config traits.
  • chore(dep): vendorize traitlets lib. add PySocks private dep.

1.7.2. Docs:

  • Add “Requirements” in installation section.

1.8. v1.5.5, file-ver: 2.2.6, 10-February 2017: “Stamp” release


This CO2MPAS release contains few model changes; software updates; and the random sampling (DICE) command-line application.

Results validated against real vehicles, are described in the validation report; together with the classic validation report for simulated manual transmission vehicles and automatic transmission vehicles.

1.8.1. The DICE

The new command-line tool co2dice reads CO2MPAS input and output files, packs them together, send their Hash-ID in a request to a time-stamp server, and decodes the response to a random number of (1/100 cases) to arrive to these cases: - SAMPLE, meaning “do sample, and double-test in NEDC”, or - OK, meaning no-sample.

For its usage tkuidelines, visit the Wiki <https://github.com/JRCSTU/CO2MPAS-TA/wiki/CO2MPAS-user-tkuidelines>.

1.8.2. Model-changes

  • #325: An additional check has been set for the input file to prevent CO2MPAS run when the input file states has_torque_converter = True and gear_box_type = manual.
  • #264: CO2MPAS glossary has been completely revised and it has migrated to the main webpage following ReStructured Text format. Electric model

  • #281, #329: Improved prediction of the electric model of CO2MPAS, by setting a balance SOC threshold when the alternator is always on. Clutch model

  • #330: The clutch model has been updated to be fed with the Torque converter model.
  • #330: The clutch model prediction has been enhanced during gearshifts by remove clutch phases when (gears == 0……) | (velocities <= stop_velocity). Final drive

  • #342: Enable an option to use more than one final_drive_ratios for vehicles equipped with dual/variable clutch.

1.8.3. IO

  • #341: Input template & demo files include now the vehicle_family_id as a set of concatenated codes that are required to run the model in Type Approval mode.
  • #356: enhancements of the output and dice reports have been made.
  • The demo-files are starting to move gradually from within CO2MPAS to the site.

1.8.4. GUI

  • #359: Don’t keep files that do not exist in the output list after simulation.
  • GUI launches with co2tkui command (not with co2mpas gui). Software and Build chores(build, site, etc)

  • Only on CONSOLE command left - use [Ctrl+F2] to open bash console tab.

  • Launch commands use .vbs scripts to avoid an empty console window.

  • Reduced the length of the AIO archive name:

    co2mpas_ALLINONE-64bit-v1.5.0.b0  --> co2mpas_AIO-v1.5.0
  • Enhanced plotting of the plot_workflow for faster navigation on CO2MPAS model.

  • The Dispatcher library has been moved to a separate package (schedula).

  • Enhanced desktop GUI to launch CO2MPAS to perform the random sampling for TA in addition to launch simulations (engineering and type approval modes), synchronize time series, generate templates and demo-files.

  • UPGRADES from CORPORATE ENVIRONMENTS is not supported any more.

  • Dependencies: +schedula, +formulas, -keyring

1.8.5. Known Limitations

  1. DICE is considered to be in an early alpha stage of development, and not all bugs have been ironed out.
  2. Concerning the threat model for the DICE, it is relying “roughly” on following premises:
    1. A single cryptographic key will be shared among all TS personnel, not to hinder usability at this early stage.
    2. There are no measures to ensure the trust of the procedure BEFORE the time-stamping. The TS personnel running DICE, and its PC are to be trusted for non-tampering;
    3. The (owner of the) time-stamp service is assumed not to collude with the OEMs (or if doubts are raised, more elaborate measures can be gradually introduced).
    4. The DICE does not strive to be tamper-resistant but rather tamper-evident.
    5. The denial-of-service is not considered at this stage; but given a choice between blocking the Type Approval, and compromising IT-security, at the moment we choose the later - according to the above premise, humans interventions are acceptable, as long as they are recorded in the Hash DB keeping a detectable non-reputable trace.
  3. DICE needs an email server that is capable to send cleat-text emails through. Having an account-password & hostname of an SMTP server will suffice - most web-email clients might spoil the encoding of the message (i.e. Web Outlook is known to cause problems, GMail work OK if set to plain-text).
  4. Not all DICE operations have been implemented yet - in particular, you have to use a regular Git client to extract files from it ([1], [2], [3]). Take care not to modify the a project after it has been diced!
  5. There is no expiration timeout enforced yet on the tstamp-requests - in the case that a request is lost, or it takes arbitrary long time to return back, the TS may force another tstamp-request. At this early stage, human witnesses will reconcile which should be the authoritative tstamp-response, should they eventually arrive both. For this decision, the Hash DB records are to be relied.
  6. The last part of DICE, re-importing projects archives and/or dice-reports into TAA registry has not yet been implemented completely (i.e. not working at all or not validating if hash-ids have changed).
  7. There are currently 4 cmd-line tools: co2mpas, co2gui, co2dice & datasync. It is expected that in a next release they will be united under a single co2 cmd.
  8. Regarding the “CO2MPAS model, all limitations from previous “Rally” release still apply.

1.9. v1.4.1, file-ver: 2.2.5, 17-November 2016: “Rally” release


This CO2MPAS release contains both key model and software updates; additional capabilities have been added for the user, namely:

  • the Declaration mode: template & demo files now contain just the minimum inputs required to run under Type Approval (TA) command;

  • a desktop GUI to launch CO2MPAS and perform selected tasks (i.e. simulate, datasync time-series for a specific cycle, generate templates);

  • several model changes:

    • improved handling of real-measurement data-series - results validated against real vehicles, are described in the this release’s validation report ;

    • support of a series of technologies, some marked as “untested” due to the lack of sufficient experimental data for their validation:

        petrol diesel
      Variable Valve Actuation (VVA): X  
      Lean Burn: X  
      Cylinder Deactivation: untested untested
      Exhaust Gas Recirculation (EGR): untested X
      Selective Catalytic Reduction (SCR):   untested
      Gearbox Thermal Management: untested untested
  • enhancements and diagrams for the result files, very few, backward-compatible changes in the Input files;

  • the project’s sources are now “practically” open in GitHub, so many of the serving URLs have changed:

The study of this release’s results are contained in these 3 reports: manual, automatic, and real cars, respectively.


Actually v1.4.1 is NOT published in PyPi due to corrupted .whl archive. v1.4.2 has been published in its place, and v1.4.3 in the site.

1.9.1. Model-changes

  • #250, #276: Implementation of the type approval command, defining declaration and engineering data.

  • #228: Add an option to bash cmd -D, --override to vary the data model from the cmd instead modifying the input file. Moreover with the new option --modelconf also the constant parameters can be modified.

    The cmd options --out-template=<xlsx-file>, --plot-workflow, --only-summary, and --engineering-mode=<n> have been transformed as internal flags that can be input from the input file or from the cmd (e.g., -D flag.xxx).

    Add special plan id run_base. If it is false, the base model is just parsed but not evaluated.

  • #251: The model-selector can enabled or disabled (default). Moreover, model-selector preferences can be defined in order to select arbitrary calibration models for each predictions. Wheels model

  • #272 (b52bb51, 8b9ee77): Select the tyre code with the minimum difference but with \(r_wheels > r_dynamic\). Update the default tyre_dynamic_rolling_coefficient  from \(0.975 --> 3.05 / 3.14\). Electrics model

  • #259, #268 (7855e1f, 0d647ad, 9ab380b): Add initial_state_of_charge in the input file of physical model and remove the preconditioning sheet. Use the initial_state_of_charge just to calibrate the model on WLTP and not to predict. The prediction is done selecting initial_state_of_charge according to cycle_type: + WLTP: 90, + NEDC: 99.
  • #281: Various improvements on the electric model:
    • Identification of charging statuses. This correct the model calibration.
    • Correct min and max charging SOC when a plateau (balance point) is fount.
    • Correct electric_loads when \(|off load| > |on load|\), choosing that with the minimum mean absolute error. Vehicle model

  • b6318e2, c218b53, 991df88: Add new data node angle_slopes. This allows a prediction with variable slope, while before was constant value for all the simulation. The average slope (av_slope) is calculated per each phase and it is added to the output.
  • #255: Force velocities to math:be >= -1 km. Engine model

  • #210 (5438d49,:git:7630832): Improve identification of idle_engine_speed_median and identify_idle_engine_speed_std, using the DBSCAN algorithm. Correct the identification of idle_engine_speed_std and set maximum limit (\(0.3 * idle_engine_speed_median\)).
  • #265 (8da5eb4): Add identify_engine_max_speed function to get the maximum engine speed from the T1 map speed vector.
  • #202 (5792ae7): Add a function to calculate hot idling fuel consumption based on co2mpas solution.
  • #283 (70bd182): Calculation of engine mass with respect to ignition_type and engine_max_power. Gearbox model

  • #255 (32e6923): Add warning log when gear-shift profile is generated from WLTP pkg.
  • #288 (11f5ad5): Link the gear_box_efficiency_constants to the parameter has_torque_converter.
  • #299: Implement the gearbox thermal management (not validated, not enough data). CO2 model

  • 370ca2c: Fix of a minor bug on the calibration status when cycle is purely cold.
  • #205, #207: Calibrate co2_params using co2 emission identified in the third step.
  • #301: Implement the exhaust gas recirculation and selective catalytic reduction technologies (EGR for petrol and SCR for diesel not validated, not enough data).
  • #295: Implement the lean burn technology. (partially validated on synthetic data)
  • #285: Implement the cylinder deactivation strategy.(not validated, not enough data)
  • #287: Implement the variable valve activation strategy.
  • #259 (119fa28): Implement ki factor correction for vehicle with periodically regenerating systems. Now the model predicts the declared CO2 value.
  • #271 (0972723): Add a check for idle fuel consumption different than 0 in the input. Cycle model

  • 444087b: Add new data node max_time. This allows to replicate the theoretical velocity profile when \(max_time > theoretical time\).
  • #279 (8880d9d,:git:93b78db): Add input vector variable bag_phases to extract the integration times for bags phases. Move select_phases_integration_times from co2_emissions to cycle. Clutch model

  • #256 (0e9bc3e): FIX waring 'No inliers found by ransac.py', implementing SafeRANSACRegressor.
  • #288,`251` (93c4212): Use has_torque_converter to set the torque converter. IO

  • #259 (beecf14): Update the new input template 2.2.5.
  • #278: Implement a default output template file.
  • #249 (12384c9): Sort outputs according to workflow distance.
  • #254 (08eac81): FIX check for input file version.
  • #251 (893f8aa, f5a75b2, c52886f): Update outputs with new model-selector. Add default selector. Use a separate flag to enable the selector: use_selector configuration in case of declaration mode.
  • #278 (0da7c72, 35134f1): Add info table into summary sheet. Add named reference for each value inside a table. Naming conventions

  • b8ce65f: : If cycle is not given the defaults are nedc-h, nedc-l, wltp-h and wltp-l. Build Chores(build, site, etc)

  • #189: Open public GitHub repo; clone old releases.
  • Use ReadTheDocs for automated building of project-site, SSL-proxied by https://co2mpas.io.
  • Depracated
  • Allow to run only under Python-3.5, set trove-classifiers accordingly.
  • Dependencies: +toolz, +Pillow, +openpyxl, +python-gnupg, +gitpython +keyring, +transitions, -easygui, -cachetool, -cycler. - Changes of URLs, opensourcing repository.

1.9.2. Known Limitations

  1. Model sensitivity: The sensitivity of CO2MPAS to moderately differing input time-series has been tested and found within expected ranges when a single measured WLTP cycle is given as input on each run - if both WLTP H & L cycles are given, even small changes in those paired time-series may force the model-selector to choose different combinations of calibrated model, thus arriving in significantly different fuel-consumption figures between the runs.
  2. Theoretical WLTP: The theoretical WLTP cycles produced MUST NOT be used for declaration - the profiles, both for Velocities and GearShifts are not up-to-date with the GTR. Specifically, these profiles are generated by the python WLTP project which it still produces GTR phase-1a profiles.

1.10. v1.3.1, file-ver: 2.2.1, 18-Jul 2016: “Qube” release


This release contains both key model and software changes; additional capabilities have been added for the user, namely:

  • the prediction (by default) of WLTP cycle with the theoretical velocity and gear shifting profiles (do not use it for declaration purposes, read “Known Limitations” for this release, below);
  • predict in a single run both High/Low NEDC cycles from WLTP ones;
  • the datasync command supports more interpolation methods and templates for the typical need to synchronize dyno/OBD data;
  • the new template file follows the regulation for the “declaration mode” (among others, tire-codes);

while several model changes improved the handling of real-measurement data-series.

The study of this release’s results are contained in these 3 reports: manual, automatic, and real cars, respectively.

1.10.1. Model-changes

  • #100: Now co2mpas can predict bot NEDC H/L cycles. If just one NEDC is needed, the user can fill the fields of the relative NEDC and leave others blank.
  • #225 (178d9f5): Implement the WLTP pkg within CO2MPAS for calculating theoretical velocities and gear shifting. Now co2mpas is predicting by default the WLTP cycle with the theoretical velocity and gear shifting profiles. If velocity and/or gear shifting profiles are not respecting the profiles declared by the manufacturer, the correct theoretical profiles can be provided (as in the previous version) using the prediction.WLTP sheet. Thermal model

  • #242: Update of the thermal model and the thermostat temperature identification. This is needed to fix some instabilities of the model, when the data provided has not a conventional behaviour. The changes applied to the model are the followings:
    1. Filter outliers in thermal model calibration.
    2. Select major features thermal model calibration.
    3. Use final_drive_powers_in as input of the thermal model instead the gear_box_powers_in.
    4. Update the identify_engine_thermostat_temperature using a simplified thermal model. Engine model

  • bfbbb75: Add auxiliaries_power_loss calculation node for engine power losses due to engine auxiliaries [kW]. By default, no auxiliaries assumed (0 kW).
  • 0816e64: Add functions to calculate the max_available_engine_powers and the missing_powers. The latest tells if the vehicle has sufficient power to drive the cycle.
  • 71baf52: Add inverse function to calculate engine nominal power [kW] from engine_max_torque and engine_max_speed_at_max_power. Vehicle model

  • 1a700b6: Add function to treat obd_velocities and produce the velocities. This function uses a Kalman Filter in order to smooth the noise in the OBD velocities [km/h], and it takes a considerable time to run (~5min is not uncommon, depending on the sampling frequency).
  • 8ded622: FIX acceleration when adjacent velocities are zero. This error was due to the interpolation function that does not like discontinuities. Electrics model

  • f17a7bc, 70fbef3, e7e3198: Enhance calibration and identification of the alternator model. A new model has been added to model the initialization of the alternator. This is used for the first seconds of the alternator’s operation. It corresponds to a new alternator status: 3.
  • #213: Link alternator nominal power to max allowable energy recuperation. The amount of energy recuperated should not exceed the maximum alternator power provided by the user or calculated by the model.
  • 5d8e644: In order to link the start stop model with the electric model, the latest uses as input the gear_box_powers instead of the clutch_tc_powers. Clutch /Torque-converter/AT models

  • 48a836e: FIX identification of the clutch and torque converter delta speeds. This has corrected the calculation of the power that flows to the engine. Wheels model

  • 73b3eff: FIX function to identify the r_dynamic from velocity_speed_ratios, gear_box_ratios, and final_drive_ratio.
  • #229: Add functions to calculate/identify the r_dynamic from tyre_code. A new parameter tyre_dynamic_rolling_coefficient has been introduced to calculate the r_dynamic from the r_wheels. This new calibrated coefficient belong to the engine_speed_model. Start/Stop model

  • 4362cca, b8db380, 5d8e644: Improve identification and performance of start stop model:
    • Add a DefaultStartStopModel if this cannot be identified from the data.
    • Impose that during a vehicle stop (i.e., vel == 0) the engine cannot be switched on and off (just on).
    • Move start/stop functions in a separate module.
    • Add two nodes use_basic_start_stop and is_hybrid.
    • Differentiate the start stop model behavior: basic and complex models. The basic start stop model is function of velocity and acceleration. While, the complex model is function of velocity, acceleration, temperature, and battery state of charge. If use_basic_start_stop is not defined, the basic model is used as default, except when the vehicle is hybrid. CO2 model

  • #210: The definition of the fuel cut off boundary has been modified. Now idle_cutoff=idle * 1.1
  • #230: Add a function to calculate fuel_carbon_content from fuel_carbon_content_percentage.
  • fef1cc5, fef1cc5, 94469c7: minor reorganizations of the model Engine cold start model

  • #244: Update cold start RPM model. Now there is a single model that is a three linear model function of the temperature and three coefficients that are calibrated.

1.10.2. Datasync

  • #231: The synchronization done by technical services is not as precise as expected for CO2MPAS. Thus, the tool provides custom template according to the cycle to be synchronized.
  • #232: Add more interpolation methods that the user can use for the signals’ resampling.

1.10.3. IO Input

  • #214: Check the initial temperature provided by the user with that of the OBD time series. If the difference is greater than 0.5C a message is raised to the user and simulation does not take place. This can be disabled with adding to cmd --soft-validation.
  • #240: Update the comments of the parameters in the input template.
  • #240: Add ignition_type node and rename eco_mode with fuel_saving_at_strategy. New fuel_types: LPG, NG, ethanol, and biodiesel. Output

  • 2024df7: Update chart format as scatter type.
  • #248: FIX Delta Calculation following the regulation. delta = co2_wltp - co2_nedc.
  • 26f994c: Replace comparison sheet with summary sheet.
  • #246, 368caca: Remove fuel consumption in l/100km from the outputs.
  • #197: Remove --charts flag. Now the output excel-file always contains charts by default.

1.10.4. ALLINONE

  • Upgraded WinPython from 3.4.1 –> 3.5.2.
  • Include VS-redistributable & GPG4Win installable archives.
  • Add node.js and have npm & bower installed, so that the declarativewidgets extension for jupyter notebook works ok. (not used yet by any of the ipython files in co2mpas).

1.10.5. Known Limitations

  1. Model sensitivity: The sensitivity of CO2MPAS to moderately differing input time-series has been tested and found within expected ranges when a single measured WLTP cycle is given as input on each run - if both WLTP H & L cycles are given, even small changes in those paired time-series may force the model-selector to choose different combinations of calibrated model, thus arriving in significantly different fuel-consumption figures between the runs.
  2. Theoretical WLTP: The theoretical WLTP cycles produced MUST NOT be used for declaration - the profiles, both for Velocities and GearShifts are not up-to-date with the GTR. Specifically, these profiles are generated by the python WLTP project which it still produces GTR phase-1a profiles.

1.11. v1.2.5, file-ver: 2.2, 25-May 2016: “Panino/Sandwich” release (“PS”)


3nd POST-Panino release. It contains a bug fix in for creating directories.

It is not accompanied by an ALLINONE archive.

1.12. v1.2.4, file-ver: 2.2, 12-May 2016: retracted release

2nd POST-Panino release. It contains the minor filtering fixes from 1.2.3 EXCEPT from the thermal changes, so as to maintain the model behavior of 1.2.2.

It is not accompanied by an ALLINONE archive.

1.13. v1.2.3, file-ver: 2.2, 11-May 2016: retracted release

1st POST-Panino release, retracted due to unwanted thermal model changes, and not accompanied by a ALLINONE archive.

  • Thermal model calibration is done filtering out dT/dt outliers,
  • the validation of currents’ signs has been relaxed, accepting small errors in the inputs, and
  • Minor fixes in calculate_extended_integration_times function, used for hot-cycles.

1.14. v1.2.2, file-ver: 2.2, 19-Apr 2016: “Panino” release


This release contains both key model and software changes; additional capabilities have been added for the user, namely,

  • the capability to accept a theoretical WLTP cycle and predict its difference from the predicted NEDC (#186, #211),
  • the synchronization datasync command tool (#144, #218), and
  • improve and explain the naming-conventions used in the model and in the input/output excel files (#215);

while other changes improve the quality of model runs, namely,

  • the introduction of schema to check input values(#60, #80),
  • several model changes improving the handling of real-measurement data-series, and
  • several crucial engineering fixes and enhancements on the model-calculations, including fixes based on LAT’s assessment of the “O’Snow” release.

The study of this release’s results are contained in these 3 report files for manual, automatic and real cars, respectively.

1.14.1. Model-changes

  • #6: Confirmed that co2mpas results are reproducible in various setups (py2.4, py2.5, with fairly recent combinations of numpy/scipy libraries); results are still expected to differ between 32bit-64bit platforms. Engine model

  • #110: Add a function to identify on_idle as engine_speeds_out > MIN_ENGINE_SPEED and gears = 0, or engine_speeds_out > MIN_ENGINE_SPEED and velocities <= VEL_EPS. When engine is idling, power flowing towards the engine is disengaged, and thus engine power is greater than or equal to zero. This correction is applied only for cars not equiped with Torque Converter.

  • 7340700: Remove limits from the first step co2_params optimization.

  • #195: Enable calibration of co2_params with vectorial inputs in addition to bag values (in order of priority):

    • fuel_consumptions,
    • co2_emissions,
    • co2_normalization_references (e.g. engine loads)

    When either fuel_consumptions or co2_emissions are available, a direct calibration of the co2_emissions model is performed. When those are not available, the optimization takes place using the reference normalization signal - if available - to redefine the initial solution and then optimize based on the bag values.

  • 346963a: Add tau_function and make thermal exponent (parameter t) a function of temperature.

  • 9d7dd77: Remove parameter trg from the optimization, keep temperature target as defined by the identification phase.

  • 079642e: Use scipy.interpolate.InterpolatedUnivariateSpline.derivative for the calculation of accelerations.

  • 31f8ccc: Fix prediction of unreliable rpm taking max gear and idle into account.

  • #169: Add derivative function for conditioning the temperature signal (resolves resolution issues).

  • #153: Add correct_start_stop_with_gears function and flag; default value True for manuals and False for automatics. The functions forces the engine to start when gear goes from zero to one, independent of the status of the clutch.

  • #47: Exclude first seconds when the engine is off before performing the temperature model calibration. Electrics model

  • #200: Fix identification of alternator_status_threshold and charging_statuses for cars with no break energy-recuperation-system(BERS). Engine start windows and positive alternator currents are now excluded from the calibration.
  • #192: Add alternator_current_threshold in the identification of the charging_statuses.
  • #149: Fix identification of the charging status at the beginning of the cycle.
  • #149, #157: Fix identification of minimum and maximum state of charge.
  • #149: Add previous state of charge to the alternator current model calibration. Use GradientBoostingRegressor instead of DecisionTreeRegressor, due to over-fitting of the later. Clutch /Torque-converter/AT models

  • #179: Add lock up mode in the torque converter module.
  • #161: Apply correct_gear_shifts function before clearing the fluctuations on the AT_gear model.

1.14.2. IO

  • #215: improve and explain the naming-conventions used in the model and in the input/output excel files; on model parameters internally and on model parameters used on the Input/Output excel files. Input

  • #186, #211: Add a theoretical_WLTP sheet on the inputs. If inputs are provided, calculate the additional theoretical cycles on the prediction and add the results on the outputs.
  • #60, #80: Add schema to validate shape/type/bounds/etc of input data. As an example, the sign of the electric currents is now validated before running the model. The user can add the flag --soft-validation to skip this validation.
  • 113b09b: Fix pinning of co2_params, add capability to fix parameters outside predefined limits.
  • #104: Add eco_mode flag. Apply correct_gear function when eco_mode = True.
  • #143: Use electrics from the preconditioning cycle to calculate initial state of charge for the WLTP. Default initial state of charge is set equal to 99%. Output

  • #198: Add calculation of willans factors for each phase.
  • #164: Add fuel consumption [l/100km], total and per subphase, in the output file.
  • #173: Fix metrics and error messages on the calibration of the clutch model (specifically related to calibration failures when data are not of adequate quality).
  • #180: Remove calibration outputs from the charts. Target signals are not presented if not provided by the user.
  • #158: Add apply_f0_correction function and report correct_f0 in the summary, when the flag for the preconditioning correction is True in the input.
  • #168: Add flag/error message when input data are missing and/or vectors have not the same length or contain empty cells.
  • #154: Add calculate_optimal_efficiency function. The function returns the engine piston speeds and bmep for the calibrated co2 params, when the efficiency is maximum.
  • #155: Add simple willans factors calculation on the physical model and on the outputs, along with average positive power, average speed when power is positive, and average fuel consumption.
  • #160: Add process bar to the console when running batch simulations.
  • #163: Add sample logconf-file with all loggers; pandalone.xleash.io logger silenced bye default.

1.14.3. Jupyter notebooks

  • #171: Fix simVehicle.ipynb notebook of O’snow.

1.14.4. Cmd-line

  • #60, #80: Add flag --soft-validation to skip schema validation of the inputs.
  • #144, #145, #148, #29, #218: Add datasync command. It performs re-sampling and shifting of the provided signals read from excel-tables. Foreseen application is to resync dyno times/velocities with OBD ones as reference.
  • #152: Add --overwrite-cache flag.
  • : Add sa command, allowing to perform Sensitivity Analysis runs on fuel parameters.
  • #140, #162, #198, 99530cb: Add sa command that builds and run batches with slightly modified values on each run, useful for sensitivity-analysis; not fully documented yet.
  • 284a7df: Add output folder option for the model graphs.

1.14.5. Internals

  • #135: Merge physical calibration and prediction models in a unique physical model.
  • #134: Probable fix for generating dispatcher docs under Cygwin.
  • e562551, 3fcd6ce: Dispatcher: Boost and fix SubDispatchPipe, fix check wait_in for sub-dispatcher nodes.
  • #131: test_sub_modules.py deleted. Not actually used and difficult in the maintenance. To be re-drafted when will be of use.

1.14.6. Documentation

1.14.7. Known Limitations

  • Model sensitivity: The sensitivity of CO2MPAS to moderately differing input time-series has been tested and found within expected ranges when a single measured WLTP cycle is given as input on each run - if both WLTP H & L cycles are given, even small changes in those paired time-series may force the model-selector to choose different combinations of calibrated model, thus arriving in significantly different fuel-consumption figures between the runs.

1.15. v1.1.1.fix2, file-ver: 2.1, 09-March 2016: “O’Udo” 2nd release

2nd POSTFIX release.

  • electrics, #143: Add default value initial_state_of_charge := 99.
  • clutch, #173: FIX calibration failures with a No inliers found by ransac.py error.

1.16. v1.1.1.fix1, file-ver: 2.1, 03-March 2016: “O’Udo” 1st release

1st POSTFIX release.

  • #169, #169: modified theta-filtering for real-data.
  • #171: update forgotten simVehicle.ipynb notebook to run ok.

1.17. v1.1.1, file-ver: 2.1, 09-Feb 2016: “O’snow” release


This release contains mostly model changes; some internal restructurings have not affected the final user.

Several crucial bugs and enhancements have been been implemented based on assessments performed by LAT. A concise study of this release’s results and a high-level description of the model changes is contained in this JRC-LAT presentation.

1.17.1. Model-changes Engine model

  • Fix extrapolation in engine.get_full_load(), keeping constant the boundary values.
  • Update engine.get_engine_motoring_curve_default(). The default motoring curve is now determined from the engine’s friction losses parameters.
  • Add engine speed cut-off limits.
  • #104: Apply derivative scikit-function for smoothing real data to acceleration & temperature.
  • #82, #50: Add (partial) engine-inertia & auxiliaries torque/power losses.
  • Optimizer:
    • 84cc3ae8: Fix co2_emission.calibrate_model_params() results selection.
    • #58: Change error functions: mean-abs-error is used instead of mean-squared-error.
    • #56: Cold/hot parts distinction based on the first occurrence of trg; trg not optimized.
    • #25: Simplify calibration method for hot part of the cycle, imposing t=0. Temperature model

  • #118, #53: Possible to run hot start cycles & fixed temperature cycles.
  • #94: Fix bug in co2_emission.calculate_normalized_engine_coolant_temperatures(), that returned 0 when target_Theta > max-Theta in NEDC.
  • #79: Enhance temperature model: the calibration does not take into account the first 10secs and the points where Delta-Theta = 0.
  • #55: Add an additional temperature model, f(previous_T, S, P, A); chose the one which gives the best results. Gearbox model

  • #49: Fix bug in the estimation of the gear box efficiency for negative power, leading to an overestimation of the gear box temperature. (still open)
  • #45: ATs: Fix bug in the GSPV matrix leading to vertical up-shifting lines. S/S model

  • #85: Correct internal gear-shifting profiles according to legislation.
  • #81: MTs: correct S/S model output -start engine- when gear > 0.
  • #75, 3def98f3: Fix gear-identification for initial time-steps for real-data; add warning message if WLTP does not respect input S/S activation time. Electrics model

  • #78, #46: Fix bug in electrics.calibrate_alternator_current_model() for real cars, fix fitting error when alternator is always off.
  • #17: Add new alternator status model, bypassing the DT when battery_SOC_balance is given, has_energy_recuperation equals to one, but BERS is not identified in WLTP. Clutch/Torque-converter models

  • #83: Add a second clutch model, equals to no-clutch, when clutch model fails.
  • #16: Add torque converter. Vehicle model

  • #76: Remove first 30 seconds for the engine speed model selection.
  • e8cabe10, 016e7060: Rework model-selection code.

1.17.2. IO Inputs:

  • #62: New compulsory fields in input data:

  • Add fuel_carbon_content input values for each cycle.

  • Correct units in initial_SOC_NEDC.

  • Replace Battery SOC [%] time series with target state_of_charges.

  • #61, #119: Add dyno type and driveline type (2WD, 4WD) for each cycle. Those are used to specify inertia coefficients and drivetrain efficiency (default efficiency for final_drive_efficiency changed to 0.98). (still open)

  • #44: Correct battery_SOC_balance and battery_SOC_window as not compulsory.

  • #25: Add option of ‘freezing’ the optimization parameters. Outputs:

  • #96: Produce a single excel with all infos in multiple sheets.
  • #20: Produce html report with basic interactive graphs (unfinished).
  • 5064efd3: Add charts in excel output.
  • #120, #123: Use excel named-ranges for all columns - possible to use specific xl-file as output template, utilizing those named-ranges.
  • a03c6805: Add status_start_stop_activation_time to cycle results.
  • f8b85d98: Add comparison between WLTP prediction vs WLTP inputs & WLTP calibration.
  • #102: Write errors/warnings in the output.(still open)
  • #101: Add target UDC and target EUDC to the summary.
  • #97, #114, #64: Add packages and CO2MPAS versions, functions run info, and models’ scores to the proc_info sheet.(still open)
  • #93, #52: Add success/fail flags related to the optimization steps for each cycle, and global success/fail flags on the summary.

1.17.3. Cmd-line (running CO2MPAS)

  • Normalize main() syntax (see co2mpas --help):
    • Always require a subcommand (tip: try co2mpas batch <input-file-1>...).
    • Drop the -I option, support multiple input files & folders as simple positional arguments in the command-line - -O now defaults to current-folder!
    • Report and halt if no input-files found.
    • GUI dialog-boxes kick-in only if invoked with the --gui option. Added new dialog-box for cmd-line options (total GUIs 3 in number).
    • Autocomomplete cmd-line with [Tab] both for cmd.exe and bash (consoles pre-configured in ALLINONE).
    • Support logging-configuration with a file.
    • Other minor options renames and improvements.
  • 5e91993c: Add option to skip saving WLTP-prediction.
  • #88: Raise warning (console & summary-file) if incompatible VERSION detected in input-file.
  • #102: Remove UI pop-up boxes when running - users have to check the scores tables in the result xl-file.
  • #91: Disallow installation and/or execution under python < 3.4.
  • 5e91993c: Add option to skip saving WLTP-prediction.
  • #130: Possible to plot workflow int the output folder with --plot-workflow option.

1.17.4. Documentation

  • #136: Add section explaining the CO2MPAS selector model.
  • Comprehensive JRC-LAT presentation for validation and high-level summary of model changes (mentioned above).
  • New section on how to setup autocompletion for bash and clink on cmd.exe.
  • Link to the “fatty” (~40Mb) tutorial input xl-file.

1.17.5. Internals

  • dispatcher: Functionality, performance, documentation and debugging enhancements for the central module that is executing model-nodes.
  • 1a6a901f6c: Implemented new architecture for IO files.
  • #103: Problem with simulation time resolved (caused by new IO).
  • #94, #99: Fixed error related to argmax() function.
  • #25: Retrofit optimizer code to use lmfit library to provide for easily playing with parameters and optimization-methods.
  • #107: Add Seatbelt-TC reporting sources of discrepancies, to investigate repeatability(#7) and reproducibility(#6) problems.
  • #63: Add TCs for the core models. (still open)

1.18. v1.1.0-dev1, 18-Dec-2015: “Natale” internal JRC version

Distributed before Christmas and included assessments from LAT. Model changes reported in “O’snow” release, above.

1.19. v1.0.5, 11-Dec 2015: “No more console” release, no model changes

  • main: Failback to GUI when demo/template/ipynb folder not specified in cmdline (prepare for Window’s start-menu shortcuts).
  • Install from official PyPi repo (simply type pip install co2mpas).
  • Add logo.
    • FIX “empty” folder-selection lists bug.
    • Renamed cmd-console.bat –> CONSOLE.bat.
    • By default store app’s process STDOUT/STDERR into logs-files.
    • Add INSTALL.bat script that creates menu-entries for most common CO2MPAS task into window StartMenu.
    • Known Issue: Folder-selection dialogs still might appear beneath current window sometimes.

1.20. v1.0.4, 9-Nov 2015: 3rd public release, mostly model changes

Model-changes in comparison to v1.0.1:

  • Vehicle/Engine/Gearbox/Transmission:
    • #13: If no r_dynamic given, attempt to identify it from G/V/N ratios.
    • #14: Added clutch model for correcting RPMs. Power/losses still pending.
    • #9: Start-Stop: new model based on the given start_stop_activation_time, failing back to previous model if not provided. It allows engine stops after the ‘start_stop_activation_time’.
    • #21: Set default value of k5 equal to max_gear to resolve high rpm at EUDC deceleration.
    • #18: FIX bug in calculate_engine_start_current function (zero division).
  • Alternator:
    • #13: Predict alternator/battery currents if not privded.
    • #17: Impose no_BERS option when has_energy_recuperation == False.
  • A/T:
    • #28: Change selection criteria for A/T model (accuracy_score-->mean_abs_error); not tested due to lack of data.
    • #34: Update gspv approach (cloud interpolation -> vertical limit).
    • #35: Add eco mode (MVL) in the A/T model for velocity plateau. It selects the highest possible gear.
    • Add option to the input file in order to use a specific A/T model ( specific_gear_shifting=A/T model name).
  • Thermal:
    • #33, #19: More improvements when fitting of the thermal model.
  • Input files:
    • Input-files specify their own version number (currently at 2).
    • #9: Enabled Start-Stop activation time cell.
    • #25, #38: Add separate sheet for overriding engine’s fuel-consumption and thermal fitting parameters (trg, t) (currently ALL or NONE have to be specified).
    • Added Engine load (%) signal from OBD as input vector. Currently not used but will improve significantly the accuracy of the cold start model and the execution speed of the program. JRC is working on a micro-phases like approach based on this signal.
    • Gears vector not necessary anymore. However providing gears vector improves the results for A/Ts and may also lead to better accuracies in M/Ts in case the RPM or gear ratios values are not of good quality. JRC is still analyzing the issue.
  • Output & Summary files:
    • #23: Add units and descriptions into output files as a 2nd header-line.
    • #36, #37: Add comparison-metrics into the summary (target vs output). New cmd-line option --only-summary to skip saving vehicle-files.
  • Miscellaneous:
    • Fixes for when input is 10 Hz.
    • #20: Possible to plot workflows of nested models (see Ipython-notebook).
    • Cache input-files in pickles, and read with up-to-date check.
    • Speedup workflow dispatcher internals.

1.21. v1.0.3, 13-Oct 2015, CWG release

Still no model-changes in comparison to v1.0.1; released just to distribute the all-in-one archive, provide better instructions, and demonstrate ipython UI.

  • Note that the CO2MPAS contained in the ALLINONE archive is 1.0.3b0, which does not affect the results or the UI in any way.

1.22. v1.0.2, 6-Oct 2015: “Renata” release, unpublished

No model-changes, beta-testing “all-in-one” archive for Windows distributed to selected active users only:

  • Distributed directly from newly-established project-home on http://co2mpas.io/ instead of emailing docs/sources/executable (to deal with blocked emails and corporate proxies)
  • Prepare a pre-populated folder with WinPython + CO2MPAS + Consoles for Windows 64bit & 32bit (ALLINONE).
  • ALLINONE actually contains co2mpas command versioned as 1.0.2b3.
  • Add ipython notebook for running a single vehicle from the browser (see respective Usage-section in the documents) but fails!
  • docs:
    • Update Usage instructions based on all-in-one archive.
    • Tip for installing behind corporate proxies (thanks to Michael Gratzke),
      and provide link to pandalone dependency.
    • Docs distributed actually from v1.0.2-hotfix.0 describing also IPython instructions, which, as noted above, fails.

1.22.1. Breaking Changes

  • Rename co2mpas subcommand: examples --> demo.
  • Rename internal package, et all compas --> co2mpas.
  • Log timestamps when printing messages.

1.23. v1.0.1, 1-Oct 2015: 2nd release

  • Comprehensive modeling with multiple alternative routes depending on available data.
  • Tested against a sample of 1800 artificially generated vehicles (simulations).
  • The model is currently optimized to calculate directly the NEDC CO2 emissions.

1.23.1. Known Limitations

  1. When data from both WLTP H & L cycles are provided, the model results in average NEDC error of ~0.3gCO2/km +- 5.5g/km (stdev) over the 1800 cases available to the JRC. Currently no significant systematic errors are observed for UDC and EUDC cycles. No apparent correlations to specific engine or vehicle characteristics have been observed in the present release. Additional effort is necessary in order to improve the stability of the tool and reduce the standard deviation of the error.
  2. It has been observed that CO2MPAS tends to underestimate the power requirements due to accelerations in WLTP. More feedback is needed from real test cases.
  3. The current gearbox thermal model overestimates the warm up rate of the gearbox. The bug is identified and will be fixed in future versions.
  4. Simulation runs may under certain circumstances produce different families of solutions for the same inputs (i.e. for the CO2 it is in the max range of 0.5 g/km). The bug is identified and will be fixed in future versions.
  5. The calculations are sensitive to the input data provided, and in particular the time-series. Time series should originate from measurements/simulations that correspond to specific tests from which the input data were derived. Mixing time series from different vehicles, tests or cycles may produce results that lay outside the expected error band.
  6. Heavily quantized velocity time-series may affect the accuracy of the results.
  7. Ill-formatted input data may NOT produce warnings. Should you find a case where a warning should have been raised, we kindly ask you to communicate the finding to the developers.
  8. Misspelled input-data which are not compulsory, are SILENTLY ignored, and the calculations proceed with alternative routes or default-values. Check that all your input-data are also contained in the output data (calibration files).
  9. The A/T module has NOT been tested by the JRC due to the lack of respective test-data.
  10. The A/T module should be further optimized with respect to the gear-shifting method applied for the simulations. An additional error of 0.5-1.5g/km in the NEDC prediction is expected under the current configuration based on previous indications.
  11. The model lacks a torque-converter / clutch module. JRC requested additional feedback on the necessity of such modules.
  12. The electric systems module has not been tested with real test data. Cruise time series result in quantized squared-shaped signals which are, in general, different from analog currents recorded in real tests. More test cases are necessary.
  13. Currently the electric system module requires input regarding both alternator current and battery current in order to operate. Battery current vector can be set to zero but this may reduce the accuracy of the tool.
  14. The preconditioning cycle and the respective functions has not been tested due to lack of corresponding data.

1.24. v0, Aug 2015: 1st unofficial release

Bugs reported from v0 with their status up to date:

  1. 1s before acceleration “press clutch” not applied in WLTP: not fixed, lacking clutch module, problem not clear in Cruise time series, under investigation
  2. Strange engine speed increase before and after standstill: partly corrected, lack of clutch, need further feedback on issue
  3. Upshifting seems to be too early, also observed in WLTP, probably gearshift point is not “in the middle” of shifting: not fixed, will be revisited in future versions after comparing with cruise results
  4. RPM peaks after stop don’t match the real ones: pending, cannot correct based on Cruise inputs
  5. Although temperature profile is simulated quite good, the consumption between urban and extra-urban part of NEDC is completely wrong: problem partly fixed, further optimization in UDC CO2 prediction will be attempted for future versions.
  6. Delta-RCB is not simulated correctly due to a too high recuperation energy and wrong application down to standstill: fixed, the present release has a completely new module for calculating electric systems. Battery currents are necessary.
  7. Output of more signals for analysis would be necessary: fixed, additional signals are added to the output file. Additional signals could be made available if necessary (which ones?)
  8. Check whether a mechanical load (pumps, alternator and climate offset losses) as torque-input at the crankshaft is applied: pending, mechanical loads to be reviewed in future versions after more feedback is received.
  9. Missing chassis dyno setting for warm-up delta correction: unclear how this should be treated (as a correction inside the tool or as a correction in the input data)
  10. SOC Simulation: the simulation without the SOC input is much too optimistic in terms of recuperation / providing the SOC signals does not work as intended with the current version: fixed, please review new module for electrics.
  11. The gearshift module 0.5.5 miscalculates gearshifts: partially fixed, the module is now included in CO2MPAS v1 but due to lack in test cases has not been further optimized.
  12. Overestimation of engine-power in comparison to measurements: indeterminate, in fact this problem is vehicle specific. In the test-cases provided to the JRC both higher and lower power demands are experienced. Small deviations are expected to have a limited effect on the final calculation. What remains open is the amount of power demand over WLTP transient phases which so far appears to be systematically underestimated in the test cases available to the JRC.
  13. Overestimation of fuel-consumption during cold start: partially fixed, cold start over UDC has been improved since V0.
  14. CO2MPAS has a pronounced fuel cut-off resulting in zero fuel consumption during over-runs: fixed, indeed there was a bug in the cut-off operation associated to the amount of power flowing back to the engine while braking. A limiting function is now applied. Residual fuel consumption is foreseen for relatively low negative engine power demands (engine power> -2kW)
  15. A 5 second start-stop anticipation should not occur in the case of A/T vehicles: fixed.