-
Notifications
You must be signed in to change notification settings - Fork 172
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
Showing
8 changed files
with
126 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 0 to 10. | ||
# Level 0 means that power optimization is not needed, all functionality can behave "normally". | ||
# Level 10 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 (1-9) indicates intermediate states, where a higher 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 low level have limited impact on the driver experience, | ||
# but power optimizations on higher 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 above this value */ | ||
# | ||
# if (Vehicle.Cabin.Infotainment.PowerOptimizeLevel > 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 using overlays by: | ||
# | ||
# 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. |