From 3553cec2892a27d7623b93eb81bb1027fe614932 Mon Sep 17 00:00:00 2001 From: Erik Jaegervall Date: Wed, 13 Dec 2023 16:04:48 +0100 Subject: [PATCH] Add precondition signals Signed-off-by: Erik Jaegervall --- spec/Powertrain/TractionBattery.vspec | 3 + .../TractionBattery/BatteryConditioning.vspec | 112 ++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 spec/Powertrain/TractionBattery/BatteryConditioning.vspec diff --git a/spec/Powertrain/TractionBattery.vspec b/spec/Powertrain/TractionBattery.vspec index ddf097f25..e16ce9d2e 100644 --- a/spec/Powertrain/TractionBattery.vspec +++ b/spec/Powertrain/TractionBattery.vspec @@ -592,3 +592,6 @@ DCDC.Temperature: unit: celsius description: Current temperature of DC/DC converter converting battery high voltage to vehicle low voltage (typically 12 Volts). + + +#include TractionBattery/BatteryConditioning.vspec diff --git a/spec/Powertrain/TractionBattery/BatteryConditioning.vspec b/spec/Powertrain/TractionBattery/BatteryConditioning.vspec new file mode 100644 index 000000000..ffac13133 --- /dev/null +++ b/spec/Powertrain/TractionBattery/BatteryConditioning.vspec @@ -0,0 +1,112 @@ +# Copyright (c) 2023 Contributors to COVESA +# +# This program and the accompanying materials are made available under the +# terms of the Mozilla Public License 2.0 which is available at +# https://www.mozilla.org/en-US/MPL/2.0/ +# +# SPDX-License-Identifier: MPL-2.0 + +############# Battery Conditioning Feature ########################## +# +# It may be beneficial to heat or cool a traction battery as preparation for +# charging or driving, as that could reduce time needed for charging or could +# improve battery performance. This file specifies signals that could be used for +# a battery condition feature. +# +# VSS does not specify business logic for battery conditioning but a possible usage +# of the signals could be like this: +# +# 1. The vehicle user specifies upcoming mode (Driving/Charging) and TargetTime, +# i.e the time for planned departure or when charging will start. +# 2. Based on this and other factors like current battery temperature and outside temperature +# the battery condition system (onboard or offboard) calculates +# StartTime and wanted TargetTemperature. +# 3. At StartTime the system is woken up (if not already awake), checks settings and if needed +# and feasible starts heating/cooling. +# 4. When TargetTemperature is reached (possibly allowing range, like +-X degrees) +# the system will keep temperature within allowed range. +# 5. At TargetTime, or possibly when other conditions occur like charging started or trip started, +# the system will be deactivated. + +############## START OF PART NOT TO BE MERGED ######################## + +# New proposed signals for battery conditioning below +# +# Existing signals that may be of interest for battery conditioning: +# Vehicle.Exterior.AirTemperature +# Vehicle.LowVoltageSystemState +# Vehicle.Powertrain.TractionBattery.Temperature.Average +# Vehicle.Powertrain.TractionBattery.CurrentCurrent +# Vehicle.Powertrain.TractionBattery.Charging.ChargeLimit +# Vehicle.Powertrain.TractionBattery.Charging.MaximumChargingCurrent.* +# Vehicle.Powertrain.TractionBattery.Charging.EvseId (to be able to know charger capabilities) + +############## END OF PART NOT TO BE MERGED ######################## + +BatteryConditioning: + type: branch + description: Properties related to preparing the vehicle battery for charging or driving. + +BatteryConditioning.IsActive: + datatype: boolean + type: sensor + description: Indicates if battery conditioning is active (i.e. actively monitors battery temperature). + True = Active. False = Inactive. + comment: This signal is typically true when mode is not INACTIVE and time is within defined + start/end times. + +BatteryConditioning.IsOngoing: + datatype: boolean + type: sensor + description: Indicating if battery conditioning is currently ongoing. + Battery conditioning is considered ongoing when the battery conditioning system + is actively heating or cooling the battery, or requesting heating or cooling. + comment: When battery conditioning is active, but temperature is already within acceptable range so that + no cooling or heating is needed then IsOngoing shall report False. + +# Mode names aligned to indicate "target status" rather than "current status" +# E.g. when parked you can theoretically prepare for both charging and driving + +# Also using an enum/allowed and not two boolean (IsFastChargingRequested,IsDrivingRequested) as +# both modes cannot be active at the same time +# An alternative approach could be to have a boolean "IsBatteryConditionRequested" +# and then a separate enum (or boolean) indicate what type of charging preparation is requested + +BatteryConditioning.RequestedMode: + datatype: string + type: actuator + allowed: ['INACTIVE', 'FAST_CHARGING_PREPARATION', 'DRIVING_PREPARATION'] + description: Defines requested mode for battery conditioning. + INACTIVE - Battery conditioning inactive. + FAST_CHARGING_PREPARATION - Battery conditioning for fast charging. + DRIVING_PREPARATION - Battery conditioning for driving. + comment: The Mode and End Time can be used to calculate target temperature and Start Time + + +# Proposed to use unix time rather than time remaining (seconds) in VSS. +# That does not prevent that time remaining is used internally, + +BatteryConditioning.StartTime: + type: actuator + datatype: uint64 + description: Start time for battery conditioning, if Mode is not INACTIVE. + unit: unix-time + comment: If the vehicle is asleep, this is the time the vehicle and the battery conditioning system must wake up + and start monitoring the battery and if necessary start heating/cooling of the battery. + +BatteryConditioning.TargetTime: + type: actuator + datatype: uint64 + description: Target time when conditioning shall be finished. + unit: unix-time + comment: For FAST_CHARGING mode this is typically the time when charging is supposed to start. + For DRIVING mode this is typically the expected departure time. + Battery conditioning will be deactivated when this time has passed. + +BatteryConditioning.TargetTemperature: + datatype: float + type: actuator + unit: celsius + description: Target temperature for battery conditioning. + comment: Target temperature possibly differs between different modes as well as other factors. + Allowed deviation from target temperature is implementation dependent.