Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Power Optimize concept #528

Merged
merged 1 commit into from
Feb 9, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 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
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Meeting notes: Info from EV Power optimize group, shall be refactored, 0 =no power optimize, 10= maximum. If redefined no problem to be merged.

Way forward:

  • Erik to update PR
  • Mobis/Umang to review after change
  • If OK, Erik can merge

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR updated, @UmangSharmaMobis please review

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.