Skip to content

Commit

Permalink
Add Power Optimize concept
Browse files Browse the repository at this point in the history
This is a power optimization concept based on discussions in the
COVESA power optimization project

Signed-off-by: Erik Jaegervall <erik.jaegervall@se.bosch.com>
  • Loading branch information
erikbosch committed Feb 8, 2023
1 parent 015dd15 commit 0e85c76
Show file tree
Hide file tree
Showing 8 changed files with 126 additions and 4 deletions.
2 changes: 2 additions & 0 deletions spec/ADAS/ADAS.vspec
Original file line number Diff line number Diff line change
Expand Up @@ -285,3 +285,5 @@ EBA.IsEngaged:
type: sensor
description: Indicates if EBA is currently regulating brake pressure. True = Engaged. False = Not Engaged.

#include include/PowerOptimize.vspec

2 changes: 2 additions & 0 deletions spec/Body/Body.vspec
Original file line number Diff line number Diff line change
Expand Up @@ -258,3 +258,5 @@ RearMainSpoilerPosition:
min: 0
max: 100
description: Rear spoiler position, 0% = Spoiler fully stowed. 100% = Spoiler fully exposed.

#include include/PowerOptimize.vspec
2 changes: 2 additions & 0 deletions spec/Cabin/Cabin.vspec
Original file line number Diff line number Diff line change
Expand Up @@ -185,3 +185,5 @@ Convertible.Status:
type: sensor
allowed: ['UNDEFINED', 'CLOSED', 'OPEN', 'CLOSING', 'OPENING', 'STALLED']
description: Roof status on convertible vehicles.

#include include/PowerOptimize.vspec
2 changes: 2 additions & 0 deletions spec/Cabin/HVAC.vspec
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,5 @@ AmbientAirTemperature:
type: sensor
unit: celsius
description: Ambient air temperature inside the vehicle.

#include include/PowerOptimize.vspec
4 changes: 3 additions & 1 deletion spec/Cabin/Infotainment.vspec
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ HMI.DayNightMode:
type: actuator
allowed: ['DAY', 'NIGHT']
description: Current display theme

SmartphoneProjection:
type: branch
description: All smartphone projection actions.
Expand All @@ -211,3 +211,5 @@ SmartphoneProjection.SupportedMode:
type: attribute
allowed: [ 'ANDROID_AUTO', 'APPLE_CARPLAY', 'MIRROR_LINK', 'OTHER' ]
description: Supportable list for projection.

#include include/PowerOptimize.vspec
3 changes: 2 additions & 1 deletion spec/Powertrain/Powertrain.vspec
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,5 @@ Type:
description: Defines the powertrain type of the vehicle.
comment: For vehicles with a combustion engine (including hybrids) more detailed information on fuels supported can
be found in FuelSystem.SupportedFuelTypes and FuelSystem.SupportedFuels.


#include include/PowerOptimize.vspec
6 changes: 4 additions & 2 deletions spec/Vehicle/Vehicle.vspec
Original file line number Diff line number Diff line change
Expand Up @@ -498,12 +498,14 @@ CurrentLocation.GNSSReceiver.MountingPosition.Y:
Axis definitions according to ISO 8855. Origin at center of (first) rear axle.
Positive values = left of origin. Negative values = right of origin.
Left/Right is as seen from driver perspective, i.e. by a person looking forward.

CurrentLocation.GNSSReceiver.MountingPosition.Z:
datatype: int16
type: attribute
unit: mm
description: Mounting position of GNSS receiver on Z-axis.
Axis definitions according to ISO 8855. Origin at center of (first) rear axle.
Positive values = above center of rear axle. Negative values = below center of rear axle.


#include include/PowerOptimize.vspec

109 changes: 109 additions & 0 deletions spec/include/PowerOptimize.vspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
#
# (C) 2023 Robert Bosch GmbH
#
# All files and artifacts in this repository are licensed under the
# provisions of the license provided by the LICENSE file in this repository.
#

#
# Architectural Concept
#
# A vehicle may have a power optimization system to control functionality in order to extend available range of the vehicle.
# It is assumed that the power optimization system does not know in detail which functionalities that exist in the vehicle
# and which functionalities that can be turned off without causing interruptions to essential functionality.
#
# This is proposed to be handled by a distributed system where the power optimization system only gives recommendations
# on power optimization for different areas.
# The areas are in standard VSS catalog initially assumed to correspond to branches in VSS, and are represented as a signal in the corresponding branch,
# like `Vehicle.[<Branch>.]*PowerOptimizeLevel`.
# A global signal `Vehicle.PowerOptimizeLevel` also exists for features that does not have a matching signal in sub-branches.
#
# The signal can be added to a branch by including this file, like:
#
# "#include include/PowerOptimize.vspec"
#
#
# Initially the standard VSS catalog contains the following level signals:
#
#Vehicle.PowerOptimizeLevel
#Vehicle.Powertrain.PowerOptimizeLevel
#Vehicle.Body.PowerOptimizeLevel
#Vehicle.Cabin.PowerOptimizeLevel
#Vehicle.Cabin.HVAC.PowerOptimizeLevel
#Vehicle.Cabin.Infotainment.PowerOptimizeLevel
#Vehicle.ADAS.PowerOptimizeLevel
#
# When there are multiple level signals in a subtree (like for the Cabin subtree) a feature may typically consider the "closest" level signal.
#
# Example 1: HVAC functionality (signals in branch Vehicle.Cabin.HVAC) may consider Vehicle.Cabin.HVAC.PowerOptimizeLevel
# Example 2: Sunroof functionality (signals in branch Vehicle.Cabin.Sunroof) may consider Vehicle.Cabin.PowerOptimizeLevel
# as there is no specific level signal in Vehicle.Cabin.Sunroof.
# Example 3: Tire monitoring systems may consider Vehicle.PowerOptimizeLevel as there is no dedicated signal for Chassis branch.
#
# The power optimization level has a numerical value from 1 to 10.
# Level 10 means that power optimization is not needed, all functionality can behave "normally".
# Level 1 means that power consumption shall be minimized. Non-essential functionality shall be disabled.
# Essential functionality to fulfill legal and safety requirements shall still be enabled.
# Intermediate numbers (2-9) indicates intermediate states, where a lower number indicates a more aggressive power optimization policy.
#
# This allows for subsystems to implement their own power saving logic.
# It is totally up to the subsystem to know "what to do" for different power optimize levels.
# It is also assumed that the subsystem knows what is required for legal and safety reasons and does not turn off
# essential functionality regardless of power optimization level.
# It is up to the OEM to configure subsystems to achieve the wanted behavior.
# It is expected that power optimizations that are activated already at a high level have limited impact on the driver experience,
# but power optimizations on lower levels will have significant impact on driver experience.
#
# A hypothetical example for Display/HMI brightness could be as follows
#
# There is a signal Vehicle.Cabin.Infotainment.HMI.Brightness that for example the driver could use to change HMI Brightness.
# The signal has a range 0-100 percent, where 0% means the lowest value allowed from legal/safety-reasons as well as usability reasons.
# To allow for energy optimization an OEM might want to change the actual brightness based on power optimization level for cabin.
#
# A possible schema could be as follows
#

# REAL_MIN = 30 /* Lowest allowed value for safety/legal/convenience-reasons */
# REAL_MAX = 90 /* Maximum allowed value for safety/legal/convenience/technical-reasons */
# POWERSAVE_MAX_RELATIVE = 45 /* Maximum relative brightness during power optimize */
# POWERSAVE_LIMIT = 5 /* Reduce brightness if level is below this value */
#
# if (Vehicle.Cabin.PowerOptimize. < POWERSAVE_LIMIT):
# old_value = Vehicle.Cabin.Infotainment.HMI.Brightness;
# if (Vehicle.Cabin.Infotainment.HMI.Brightness > POWERSAVE_MAX_RELATIVE):
# Vehicle.Cabin.Infotainment.HMI.Brightness = POWERSAVE_MAX_RELATIVE;
# else
# // Revert to old value
# Vehicle.Cabin.Infotainment.HMI.Brightness = old_value;
#
#
# Note that no additional VSS signals is added to represent wanted brightness at power optimization.
# It is possible that a such signal may be needed in individual deployments, but if so it can be handled by a vehicle specific overlay.
#
# Customization
#
# In addition to power optimize signals added in standard VSS catalog a project/OEM may customize the model by overlay by e.g.
#
# 1. Adding additional power optimize level signals
#
# For instance by adding `#include include/PowerOptimize.vspec` in additional files
#
# 2. Adding signals for supporting data
#
# In specific deployments there might be a need for private signals with additional data for the power optimization strategy used.
# This could for instance be signals to specify maximum speed for a specific power optimization levels.

##
# Power Optimization
##


PowerOptimizeLevel:
datatype: uint8
type: actuator
min: 0
max: 10
description: Power optimization level for this branch/subsystem.
A higher number indicates more aggressive power optimization.
Level 0 indicates that all functionality is enabled, no power optimization enabled.
Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.

0 comments on commit 0e85c76

Please sign in to comment.