Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
VEHICLE HANDLING MANAGEMENT SYSTEM
Document Type and Number:
WIPO Patent Application WO/2017/044756
Kind Code:
A1
Abstract:
A method of operating a vehicle handling management system includes the determination of whether a torque capability of a first axle is greater than a prescribed value. If greater than the prescribed value, the system establishes a first value for a first axle slip threshold and a first value for a second axle slip threshold that is associated with a second axle. If the torque capability is greater than the prescribed value, the system establishes a second value for the first axle slip threshold and a second value for the second axle slip threshold.

Inventors:
WHITE MARSELLA L (US)
PETRUCCI MICHAEL G (US)
Application Number:
PCT/US2016/050958
Publication Date:
March 16, 2017
Filing Date:
September 09, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GM GLOBAL TECH OPERATIONS LLC (US)
International Classes:
B60K17/22; B60K17/02
Foreign References:
US20140005864A12014-01-02
US20130289811A12013-10-31
US20140121870A12014-05-01
US20050284683A12005-12-29
US20010015299A12001-08-23
Attorney, Agent or Firm:
BURNS, David, A. (US)
Download PDF:
Claims:
CLAIMS:

What is claimed is:

1. A method of operating a vehicle handling management system comprising: determining whether a torque capability of a first axle is greater than a prescribed value;

establishing a first value for a first axle slip threshold and a first value for a second axle slip threshold associated with a second axle if the torque capability is greater than the prescribed value; and

establishing a second value for the first axle slip threshold and a second value for the second axle slip threshold if the torque capability is less than the prescribed value.

2. The method set forth in claim 1, wherein the first axle is driven by a first powertrain and the second axle is driven by a second powertrain that is decoupled from the first powertrain.

3. The method set forth in claim 2, wherein the first axle is a front axle and the second axle is a rear axle.

4. The method set forth in claim 2, wherein establishing the first values of the first and second axle slip thresholds are based in-part on baseline first and second axle slip thresholds.

5. The method set forth in claim 4, wherein the baseline first and second axle slip thresholds are each based in-part on vehicle speed.

6. The method set forth in claim 5, wherein the baseline first axle slip threshold is based in-part on first axle slip, and the baseline second axle slip threshold is based in-part on second axle slip.

7. The method set forth in claim 6, wherein establishing the first values of the first and second slip thresholds are based in-part on establishing a front axle slip factor based on an operators desired lateral acceleration and the first axle slip.

8. The method set forth in claim 7, wherein establishing the first values of the first and second slip thresholds are based in-part on establishing first and second axle slip base thresholds based at least in-part on a first-second axle slip factor derived from the operator desired lateral acceleration and a product of the baseline first axle slip threshold and the first axle slip factor.

9. The method set forth in claim 8, wherein the first values of the first and second slip thresholds are based in-part on a modified first axle slip threshold derived from the product of the baseline first axle slip threshold and a first axle slip factor, and a modified second axle slip threshold derived from the product of the baseline second axle slip threshold and a second-second axle slip factor.

10. The method set forth in claim 9, wherein the first axle slip factor is derived from the operator desired lateral acceleration and a maximum second axle torque capability, and the second-second axle slip factor is derived from the operator desired lateral acceleration and a maximum first axle torque capability.

11. The method set forth in claim 10, wherein the first values of the first and second slip thresholds are based in part on actual first axle torque, actual second axle torque, actual first axle slip and actual second axle slip.

12. The method set forth in claim 11, wherein the second values of the first and second slip thresholds are derived from the product of the baseline second axle slip threshold and the second axle slip factor.

13. The method set forth in claim 1, wherein the method is executed by a controller including a processor and a computer readable storage media.

14. The method set forth in claim 2, wherein the prescribed value is about zero.

15. The method set forth in claim 14, wherein the prescribed value is indicative of a condition associated with the first powertrain.

16. The method set forth in claim 15, wherein the condition is unavailability of the first powertrain.

17. The method set forth in claim 16, wherein the first powertrain includes an electric motor and an electric energy storage unit, and the condition is depletion of the electric energy storage unit.

18. A vehicle comprising:

a front axle;

a front powertrain constructed and arranged to drive the front axle;

a rear axle;

a rear powertrain constructed and arranged to drive the rear axle, wherein the front powertrain is decoupled from the rear powertrain; and

a handling management system including a controller configured to determine whether a torque capability of a front axle is greater than a prescribed value, establish a first value for a front axle slip threshold and a first value for a rear axle slip threshold if the torque capability is greater than the prescribed value, and establish a second value for the front axle slip threshold and a second value for the rear axle slip threshold if the torque capability is less than the prescribed value.

19. The vehicle set forth in claim 18, wherein the front powertrain includes an electric motor and the rear powertrain includes a combustion engine.

20. A method by a vehicle dynamics influencing controller of a vehicle to compensate for a change in a behavior of the vehicle during a change in availability of a propulsion mechanism, comprising:

determining, by the vehicle dynamics influencing controller, a status of a clutch of the vehicle;

determining, by the vehicle dynamics influencing controller, a pending change in a yaw rate in accordance with the status of the clutch;

controlling, by the vehicle dynamics influencing controller, an axle torque based on the pending change in the yaw rate; and

outputting, by the vehicle dynamics influencing controller, a propulsion yaw disturbance in accordance with a change of the axle torque responsive to the controlling.

21. The method of claim 20, wherein the vehicle dynamics influencing controller utilizes a first processing heuristic to calculate the propulsion yaw disturbance when the clutch is disconnecting, or disconnected from, axles or wheels of the vehicle with respect to a predetermined amount of time.

22. The method of claim 20, wherein the vehicle dynamics influencing controller utilizes a first processing heuristic to calculate the propulsion yaw disturbance when the state of the charge is less than or equal to a predetermined percentage.

23. The method of claim 20, wherein the vehicle dynamics influencing controller utilizes a second processing heuristic to calculate the propulsion yaw disturbance when the clutch is connecting or connected to axles or wheels of the vehicle with respect to a predetermined amount of time.

24. The method of claim 20, wherein the vehicle dynamics influencing controller utilizes a second processing heuristic to calculate the propulsion yaw disturbance when the state of the charge is greater than a predetermined percentage.

25. The method of claim 20, wherein the vehicle dynamics influencing controller utilizes a first processing heuristic to calculate the propulsion yaw disturbance when the status of the clutch is disconnecting or is disconnected, and

wherein the vehicle dynamics influencing controller utilizes a second processing heuristic to calculate the propulsion yaw disturbance when the status of the clutch is connecting or is connected.

26. The method of claim 25, further comprising:

calculating, according to the first processing heuristic, the propulsion yaw disturbance due to an impending engagement of an axle of the vehicle that results in zero torque contribution from the axle, when an actual axle torque is greater than zero.

27. The method of claim 25, further comprising:

calculating, according to the second processing heuristic, the propulsion yaw disturbance due to an impending engagement of an axle of the vehicle that results in increased torque contribution from the axle, when an actual axle torque is less than a predicted reconnect torque or an axle torque request.

28. The method of claim 25, wherein a plurality of the inputs are partially divided across the first processing heuristic and the second processing heuristic.

29. The method of claim 20, wherein the vehicle comprises a plurality of propulsion mechanisms, and

wherein the propulsion mechanism is a second propulsion mechanism of the plurality of propulsion mechanisms.

30. The method of claim 20, wherein the propulsion mechanism is included in a decoupled propulsion system of the vehicle.

31. The method of claim 20, further comprising:

receiving a plurality of inputs comprising a clutch signal; and

determining the status of the clutch of the vehicle from the clutch signal.

32. The method of claim 20, further comprising:

receiving a plurality of inputs comprising a charge signal; and

determining a status of a charge of the propulsion mechanism of the vehicle from the charge signal, alternative to the determining of the status of the clutch of the vehicle.

33. A system, comprising a processor and a memory storing program instructions to compensate for a change in a behavior of the vehicle during a change in availability of a propulsion mechanism thereon, the program instructions executable by a vehicle dynamics influencing controller of a vehicle to cause the system to perform:

determining a status of a clutch of the vehicle;

determining a pending change in yaw rate in accordance with the status of the clutch; controlling an axle torque based on the pending change in the yaw rate; and outputting a propulsion yaw disturbance in accordance with a change of the axle torque responsive to the controlling.

34. The system of claim 33, wherein the vehicle dynamics influencing controller utilizes a first processing heuristic to calculate the propulsion yaw disturbance when the clutch is disconnecting or disconnected from axles or wheels of the vehicle with respect to a predetermined amount of time.

35. The system of claim 33, wherein the vehicle dynamics influencing controller utilizes a first processing heuristic to calculate the propulsion yaw disturbance when the state of the charge is less than or equal to a predetermined percentage.

36. The system of claim 33, wherein the vehicle dynamics influencing controller utilizes a second processing heuristic to calculate the propulsion yaw disturbance when the clutch is connecting or connected to axles or wheels of the vehicle with respect to a predetermined amount of time.

37. The system of claim 33, wherein the vehicle dynamics influencing controller utilizes a second processing heuristic to calculate the propulsion yaw disturbance when the state of the charge is greater than a predetermined percentage.

38. The system of claim 33, wherein the vehicle dynamics influencing controller utilizes a first processing heuristic to calculate the propulsion yaw disturbance when the status of the clutch is disconnecting or is disconnected, and

wherein the vehicle dynamics influencing controller utilizes a second processing heuristic to calculate the propulsion yaw disturbance when the status of the clutch is connecting or is connected.

Description:
VEHICLE HANDLING MANAGEMENT SYSTEM

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority to U.S. Provisional Patent Application Serial No. 62/217,937, filed on September 13, 2015, and U.S. Provisional Patent Application Serial No. 62/217,847, filed on September 12, 2015, which are incorporated herein by reference in their entireties.

FIELD OF THE INVENTION

[0002] The present disclosure relates to vehicles, and more particularly to a handling management system of the vehicle and method of operating the same.

BACKGROUND

[0003] Traditional, vehicle, traction slip, management systems may manage real-time slip characteristics of vehicle wheels and/or axles. Such management systems may calculate an optimum slip level to achieve a balance of vehicle acceleration and vehicle handling. However, there may be condition under which various types of propulsion drive systems of the vehicle may not have a torque capacity to achieve optimum slip levels. This inability to achieve optimum slip levels especially while the vehicle is cornering and accelerating may lead to less than ideal vehicle handling characteristics.

[0004] Accordingly, it is desirable to provide a traction slip threshold modification strategy for vehicles with decoupled propulsion actuators when not all wheels are being torque managed.

SUMMARY OF THE INVENTION

[0005] In one exemplary embodiment of the present disclosure, a method of operating a vehicle handling management system includes the determination of whether a torque capability of a first axle is greater than a prescribed value. If greater than the prescribed value, the system establishes a first value for a first axle slip threshold and a first value for a second axle slip threshold that is associated with a second axle. If the torque capability is greater than the prescribed value, the system establishes a second value for the first axle slip threshold and a second value for the second axle slip threshold. The vehicle handling management system may further be implemented as part of a computer program product. [0006] In another embodiment, a vehicle includes front and rear axles, and decoupled front and rear powertrains constructed and arranged to drive the respective front and rear axles. A handling management system of the vehicle includes a controller configured to determine whether a torque capability of a front axle is greater than a prescribed value, establish a first value for a front axle slip threshold and a first value for a rear axle slip threshold if the torque capability is greater than the prescribed value, and establish a second value for the front axle slip threshold and a second value for the rear axle slip threshold if the torque capability is less than the prescribed value.

[0007] In another embodiment, a method by a vehicle dynamics influencing controller of a vehicle to compensate for a change in a behavior of the vehicle during a change in availability of a propulsion mechanism is provided. The method comprising determining a status of a clutch of the vehicle; determining a pending change in yaw rate in accordance with the status of the clutch; controlling an axle torque based on the pending change in the yaw rate; and outputting a propulsion yaw disturbance in accordance with a change of the axle torque responsive to the controlling. The method may be implemented in a system and/or a computer program product as further described herein

[0008] The above features and advantages are readily apparent from the following detailed description when taken in connection with the accompanying drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Other features, advantages and details appear, by way of example only, in the following detailed description of embodiments, the detailed description referring to the drawings in which:

[0010] FIG. 1 is a schematic of a vehicle utilizing a handling management system in accordance with the present disclosure;

[0011] FIG. 2 is a schematic of the vehicle handling management system; and

[0012] FIG. 3 is a schematic of a computer implemented portion of the vehicle handling management system;

[0013] FIG. 4 depicts a schematic plan view of a vehicle according to an

embodiment;

[0014] FIG. 5 depicts another schematic plan view of a vehicle according to an embodiment; and

[0015] FIG. 6 depicts a process flow schematic for compensating for a change in vehicle behavior according to an embodiment. DESCRIPTION OF THE EMBODIMENTS

[0016] The following description is merely exemplary in nature and is not intended to limit the present disclosure, its application or uses. It should be understood that throughout the drawings, corresponding reference numerals indicate like or corresponding parts and features.

[0017] Referring to FIG. 1, a vehicle 20 is illustrated as one, non- limiting, application of the present disclosure. The vehicle 20 may include a frame or chassis structure 22, a propulsion drive system 24 supported, at least in-part, by the chassis structure 22, at least one front wheel (i.e., two illustrated as 24, 26), at least one rear wheel (i.e., two illustrated as 28, 30), and front and rear axles 32, 34 both mounted for rotation to the chassis structure 22. The front axle 32 may generally extend between and is coupled to the front wheels 24, 26; and, the rear axle 34 may generally extend between and is coupled to the rear wheels 28, 30. In one embodiment, the front axle 32 and/or wheels 28, 30 may be adapted to facilitate steering of the vehicle 20 in any variety of ways as is known by one having skill in the art. The front and/or rear axles 32, 34 may be divided into, for example, left and right members coupled to respective wheels and interconnected by a geared differential. Non-limiting examples of the vehicle 20 may include a racing vehicle, an automobile, a truck, a van, a sport utility vehicle, and others.

[0018] The propulsion drive system 24 may include a front powertrain 36 and a rear powertrain 38 that may be decoupled from the front powertrain 36. The front and rear powertrains 36, 38 are coupled to the respective front and rear axles 32, 34. The front powertrain 36 outputs power, which may be measured as torque, to the front axle 32, and the rear powertrain 38 outputs power to the rear axle 34. It is contemplated and understood that the propulsion drive system 24 may include other configurations with multiple powertrains that are generally decoupled from one another. For example, each wheel 24, 26, 28, 30 may be associated with a dedicated powertrain, thus the propulsion drive system 24 may include four powertrains that may be decoupled from one- another. Examples of a powertrain may include powertrains having a combustion engine (e.g., gasoline or diesel fueled) and powertrains having an electric motor.

[0019] In one example, the front powertrain 36 of the propulsion drive system 24 may be an electric powertrain having an electric motor 40, an electrical energy storage unit 42 (i.e., battery pack), and other components known to one having skill in the art. The rear powertrain 38 may be an internal combustion powertrain having an internal combustion engine 44, a fuel storage tank 46, and other components known to one having skill in the art.

[0020] The vehicle 20 may further include a controller 48 that may receive a multitude of electrical inputs from any variety of sensors that may include wheel speed sensors 50, a vehicle speed sensor 52, a vehicle direction sensor 54 (i.e., actual vehicle direction), a steering assembly position sensor 55 indicative of intended vehicle direction by an operator, and an accelerator pedal position sensor 58. In general, the controller 48 may include a processor (e.g., microprocessor) and a computer readable and writeable storage media. By knowing the vehicle speed via the sensor 52 and the individual wheel speeds via respective sensors 50, the controller 48 may be configured to calculate wheel slip at each associated wheel 24, 26, 28, 30. In general, the controller 48 may be configured to control the output power or torque of the decoupled powertrains 36, 38 based, in-part, on input signals 56, 57 from the respective accelerator pedal position sensor 58 and the steering assembly position sensor 55 respectively indicative of intended operator speed and/or acceleration, and intended operator steering direction. Another sensor that may send a signal to the controller 48 for benefit of the present disclosure may include an Inertia Measurement Unit (IMU).

[0021] Referring to FIGS. 1 and 2, the vehicle 20 may further include a handling management system 60 that may be configured to optimize handling of vehicles utilizing the decoupled propulsion drive system 24. Utilization of the handling management system 60 is best understood by first understanding the handling dynamics of a vehicle utilizing the decoupled propulsion drive system 24. More specifically, vehicle dynamic parameters may entail concepts such as traction, wheel slip, oversteering, understeering, maximum available torque, and other parameters.

[0022] Traction, understeer, and oversteer conditions may be managed by controlling the front and rear wheel slip and the torque delivered to the front and rear axles. Traditional traction slip management systems may calculate the optimum slip level to achieve the appropriate balance of vehicle acceleration and vehicle handling. For example, in a performance vehicle that is cornering and accelerating, the vehicle handling is governed by the level relationship of right to left and front to rear slip with the intent to reduce or alleviate understeer and oversteer conditions. Slip control strategies may vary from stability oriented strategies such as known Traction Control (TCS) to race track orientated driver aids like known Performance Traction Management (PTM).

[0023] In an example of an all well drive vehicle (4WD) with torque vectoring differentials, the handling system of the vehicle may be configured to individually control the torque delivered to each wheel. During standard driving conditions, the torque delivered to the front wheels may be about ninety percent (90%) of the available torque, and the torque delivered to the rear wheels may be about ten percent (10%). Under harsh vehicle conditions, the torque may be distributed evenly across all four wheels thus providing the vehicle with less wheel slip and greater traction.

[0024] More traditional torque vectoring principles may be applied during a vehicle understeer condition where the vehicle may, otherwise, steer less than that commanded by the operator (i.e., wider radius turn). Factors that contribute toward understeer in traditional vehicles may include tire cornering stiffness, camber thrust, lateral force compliance steer, self-aligning torque, lateral load transfer, and compliance in the steering system. When the grip limits of the front tires/wheels are exceeded, the vehicle is in the understeer condition and any increase in lateral acceleration is no longer achievable. Although the operator may not be traveling in an intended direction and the vehicle cannot increase lateral acceleration, the vehicle is dynamically stable. To reduce or alleviate an understeer condition, a vehicle capable of torque vectoring may sense the understeer condition and increase the torque at the outer front and rear wheels. In an oversteer scenario, the same principles may apply except that the inner wheels may receive a greater torque. The term 'lateral acceleration' may be viewed as the frictional force exerted by the tires upon a road and when traveling around a curve.

[0025] More specific to the present disclosure, the decoupled propulsion drive system 24 presents unique and novel opportunities in the design and application of the handling management system 60. For example, the handling management system 60 may cause one series of events to occur if both powertrains 42, 44 are operating at maximum capacity, and may cause another series of events to occur if one of the powertrains are not operating at maximum, capacity (e.g., the electric energy storage unit 42 is depleted). More specifically, any series of events may be handled via a traction management strategy that may further depend on the vehicle operating conditions and/or performance demands commanded by an operator. Such strategies may be dependent upon the available torque at a specific axle 32, 34 and/or wheel 24, 26, 28, 30 and wheel slip, in any given moment in time.

[0026] The traction management strategies may be facilitated via the handling management system 60 that may include, or at least aspects of, the controller 48, the wheel speed sensors 50, the vehicle speed sensor 52, the vehicle direction sensor 54, and the accelerator pedal assembly 58. For any given vehicle operating condition (e.g., harsh road conditions, understeer conditions, oversteer conditions, speed and acceleration conditions, and others), the handling management system 60 may be configured to individually control axle torque at the front and rear axles 32, 34 to control front and rear wheel slip with reference to wheel slip thresholds that may be variable to optimize vehicle handling for any variety of vehicle operating conditions. More specifically, the handling management system 60 is configured to recognize the available torque provided by the front and rear powertrains 40, 44 at the respective front and rear axles 32, 34 in any given moment in time, and as a function of the available torques, establish an axle or wheel slip strategy with reference to the wheel slip thresholds calculated by the controller 48. It is contemplated and understood that many vehicle operating factors may influence the available torque at a given axle. Examples of such factors monitored or received by the controller 48 may include depletion of electrical energy stored in the electrical energy storage unit 42, depletion of liquid fuel stored in tank 46, and thermal or overheat conditions.

[0027] Referring to FIG. 3, a process flow schematic is illustrated that depicts one embodiment of a process conducted by the handling management system 60. In general, when a particular wheel 24, 26, 28, 30 exceeds a variable slip threshold established by the controller 48, the handling management system 60 proceeds in a torque manage mode for that particular wheel. When none of the wheels have exceeded their respective, variable, slip threshold, the handling management system 60 is not in the torque manage mode, and instead, may operate in a slip threshold modification mode of operation. By modifying the slip thresholds, the vehicle handling balance may be favorably maintained. That is, vehicle handling is optimized by modifying the slip thresholds to achieve the vehicle dynamic requested by the operator in an improved and faster fashion than that typically performed manually by the operator.

[0028] In general, the handling management system 60 is configured to determine whether a given wheel is operating at maximum capacity (i.e., ideal torque and slip) and whether or not that wheel has exceeded a previously established slip threshold for that wheel. If the slip threshold is exceeded, the handling management system 60 converts to the slip threshold modification mode to evaluate and modify the slip thresholds previously established for the other/remaining wheels with additional capacity (i.e., additional torque is available) to maintain a favorable vehicle handling balance. It is contemplated and understood that the maximum capability of the powertrains 40, 44 may be continuously monitored, as conditions, such as elevated temperatures, or other limiting operating condition, may reduce maximum capability. It is understood that for any given wheel, the torque may be increased if additional slip is the optimal solution for the given wheel, or the torque may be decreased if the optimal solution is a reduction in wheel slip for a given wheel.

[0029] The handling management system 60 may include a plurality of modules 100, 102, 104, 106, 108, 110, 112, 114 that may represent various computer executable subroutines, software, programs and electronic data stored and/or executed by a computer readable and writeable storage media and a processor (e.g., microprocessor) of the controller 48. It is further understood that various data and commands may be transferred between modules as represented by the various arrows in FIG. 3. Such data or commands may be described as 'signals,' or simply may be called out for what the data represents. If the data and/or commands are termed signals, such signals may simply be the transference of data within, for example, the microprocessor of the controller 48.

[0030] In operation of the handling management system 60, module 100 of the controller 48 may be configured to receive a signal 116 indicative of the maximum front axle 32 torque capability (i.e., availability). Utilizing signal 116, the module 100 may determine if the maximum front axle torque capability is greater than a prescribed value. In one example, this prescribed value may be about zero. If the front axle torque capability is greater than the prescribed value, the module 100 may output a 'yes' signal 118 for receipt by the module 102. If not greater than the prescribed value, the module 100 may output a 'no' signal 120 for receipt by the module 104. It is contemplated and understood that the maximum front axle torque capability may be zero if, for example, the electrical energy stored in the energy storage unit 42 is depleted and/or the front powertrain 40 is inoperative.

[0031] If the maximum front axle torque capability is greater than zero (i.e., as one example of the prescribed value), the controller 48 may utilize module 102. Module 102 may be configured to receive a vehicle speed signal 126 from the vehicle speed sensor 52 (also see FIG. 1) and an operator desired lateral acceleration signal 128 derived from, for example, the signals 56, 57 of the respective accelerator pedal position sensor 58 and the steering assembly position sensor 55, or a lateral acceleration sensor. The module 102 may include, at least in- part, pre-programmed data stored in the computer readable and writeable storage media of the controller 48. The pre-programmed data may include a baseline front axle slip threshold graph 122 and a baseline rear axle slip threshold graph 124. The baseline front axle slip threshold graph 122 may include an x-axis that represents a range of vehicle speeds and a y- axis that represents a range of a percent of front axle or wheel slip. Therefore, for a given vehicle speed, the module 102 is configured to determine and output a baseline front axle slip threshold 123 from graph 122. It is understood that the term 'percent of front wheel slip' is generally a percent of vehicle speed in order to represent wheel slip at the front axis.

[0032] The baseline rear axle slip threshold graph 124 of module 102 may include an x-axis that represents the range of vehicle speeds and a y-axis that represents a range of a percent of rear axle or wheel slip. Therefore, for a given vehicle speed, the module 102 is configured to determine and output a baseline rear axle slip threshold 125 from graph 124. In one embodiment, the module 102 may output a combined signal 129 indicative of the baseline slip thresholds 123, 125, the vehicle speed signal 126, and the operator desired lateral acceleration signal 128.

[0033] Module 106 of the controller 48 may be configured to receive the combined signal 129. Module 106 may include, at least in-part, pre-programmed data stored in the computer readable and writeable storage media of the controller 48. The pre-programmed data may include a front axle slip factor graph 130 that has an x-axis representative of a range of operator desired lateral acceleration (i.e., signal 128), and a y-axis that is representative of a range of the percent of front axle or wheel slip. Therefore, for a given operator desired lateral acceleration (i.e., signal 128), the module 106 is configured to determine and output a front axle slip factor 131 from graph 130. In one embodiment, the module 106 may output a combined signal 132 indicative of the front axle slip factor 131, the baseline front axle slip threshold 123, and the operator desired lateral acceleration 128.

[0034] Module 108 of the controller 48 may be configured to receive the combined signal 132. Module 108 may include, at least in-part, pre-programmed data stored in the computer readable and writeable storage media of the controller 48. The pre-programmed data may include a rear axle slip factor table 134 that generally cross references a range of the operator desired lateral accelerations (i.e., signal 128) to a range of the product of the baseline front axle slip threshold 123 and the front axle slip factor 131 (i.e., baseline front axle slip threshold multiplied by the front axle slip factor). By cross referencing the two, the module 108 is able to determine and output both a front axle slip base threshold 136 and a rear axle slip base threshold 138 to module 110. It is contemplated and understood that the 'front' and 'rear' terms utilized herein may be interchanged with other terms such as 'left' and 'right' , thus providing numerous configurations of driven wheels that may utilize the present traction and/or handling management strategies.

[0035] Module 112 of the controller 48 may receive the 'yes' signal 118, the vehicle speed signal 126, and the operator desired lateral acceleration signal 128; and, may be configured to utilize the baseline front axle slip threshold graph 122 of the module 102 to derive a series of baseline front axle slip thresholds 123. Module 112 may include a front axle slip factor table 140 that generally cross references a range of the operator desired lateral accelerations (i.e., signal 128) to a range of maximum rear axle torque capabilities. The graph 122 and the table 140 are generally, integrally, multiplied such that for a given operator desired lateral acceleration, a given speed, and a given maximum rear axle torque capability in any given moment in time, the module 112 may output a modified front axle slip threshold 142 that is received by the module 110.

[0036] Module 114 of the controller 48 may receive the 'yes' signal 118, the vehicle speed signal 126, and the operator desired lateral acceleration signal 128; and, may be configured to utilize the baseline rear axle slip threshold graph 124 of the module 102 to derive a series of baseline rear axle slip thresholds 125. Module 114 may include a rear axle slip factor table 144 that generally cross references a range of the operator desired lateral accelerations (i.e., signal 128) to a range of maximum front axle torque capabilities. The graph 124 and the table 144 are generally, integrally, multiplied such that for a given operator desired lateral acceleration, a given speed, and a given maximum front axle torque capability in any given moment in time, the module 114 may output a modified rear axle slip threshold 146.

[0037] Module 110 of the controller 48 may be configured to receive the front and rear axle slip base thresholds 136, 138, the modified front and rear axle slip thresholds 142, 146, a maximum front axle torque capacity signal 150, a front axle torque actual signal 152, a maximum rear axle torque capacity signal 154, a rear axle torque actual signal 156, a front axle slip actual signal 158, and a rear axle slip actual signal 160. Utilizing these thresholds and signals, the module 110 is configured to execute a program or routine and output adjusted front and rear axle slip thresholds 162, 164 (i.e., adjusted values thereof). The program or processing heuristic 165 executed by the controller 48 may generally be:

Processing Heuristic 165:

IF (maximum front axle torque capability (thermal, etc., condition dependent) = front axle torque actual)

THEN

IF (rear axle slip actual < rear axle slip threshold)

THEN

rear axle slip threshold = modified rear axle slip threshold

ELSE

IF (front axle slip actual > front axle slip threshold) THEN

front axle slip threshold = front axle slip base threshold

AND

rear axle slip threshold = rear axle slip base threshold

ELSE

rear axle slip threshold = (rear axle slip threshold - modified rear axle slip) * TBD slip reduction gradient + modified rear axle slip threshold

END END ELSE

IF (front axle slip actual > front axle slip threshold)

THEN

IF (maximum rear axle torque capability = rear axle torque actual)

THEN

IF (rear axle slip actual > rear axle slip threshold)

THEN

front axle slip threshold = front axle slip base threshold

AND

rear axle slip threshold = rear axle slip base threshold

ELSE

front axle slip threshold = (front axle slip threshold - modified front axle slip threshold) * TBD slip reduction gradient + modified front axle slip threshold

END END END END

[0038] Returning to module 100, if the maximum front axle torque capability is not greater than zero, the controller 48 may utilize module 104 as oppose to module 102 and 110- 118. Module 104 may be configured to receive the 'no' signal 120, receive the vehicle speed signal 126, receive the operator desired lateral acceleration signal 128, utilize the baseline rear axle slip threshold graph 124 of module 102, and apply an included rear axle slip factor graph 166. The rear axle slip factor graph 166 may have an x-axis representative of a range of operator desired lateral accelerations (i.e., signal 128), and a y-axis that is representative of a range of the percent of rear wheel slip. The baseline rear axle slip threshold graph 124 is generally, integrally, multiplied by the rear axle slip factor graph 166 to obtain and output the front axle slip threshold 162 and the rear axle slip threshold 164 when the maximum front axle torque is zero. In one example, and in order to output the front axle slip threshold 162 in addition to the rear axle slip threshold 164, the controller 48 may be preprogrammed to set a large default value for the front axle slip threshold 162. In-other-words, the system when utilizing module 104 may not attempt to accomplish any slip control on the front axle because the preprogrammed default value is set so high that the front axle slip may never exceed it.

[0039] The technical effects and benefits of the present disclosure include vehicle handling, acceleration, and deceleration performance optimization through the integration of vehicle dynamics influencing subsystems. The technical effects and benefits may also include the ability to modify front and rear wheel slip thresholds that may be dependent upon the available torque capability of each wheel at any given moment in time.

[0040] In accordance with an embodiment, FIG. 4 illustrates a vehicle 220 having a differential assembly 222. The differential assembly 222 may sometimes be referred to as a rear drive module. It should be appreciated that the vehicle 220 may be, for example, an automobile, a truck, a van or a sport utility vehicle. As used herein, the term vehicle is not limited to just an automobile, a truck, a van or a sport utility vehicle, but may also include any self-propelled or towed conveyance suitable for transporting a burden. The vehicle 220 may include an engine 224. The engine 224, for example, may be a gasoline or diesel fueled internal combustion engine or may be a hybrid type engine that combines an internal combustion engine with an electric motor or be a fully electric motor. The engine 224 and differential assembly 222 are coupled to a frame or other chassis structure 226. The engine 224 is coupled to the differential assembly 222 by a transmission 228 and a driveshaft 230. The transmission 228 may be configured to reduce the rotational velocity and increase a torque of an engine output. This modified output is then transmitted to the differential assembly 222 via the driveshaft 230. The differential assembly 222 transmits the output torque from the driveshaft 230 through a differential gear set 232 to a pair of driven-wheels 234 via axles 236.

[0041] The differential gear set 232 is arranged within a differential housing 242. The differential gear set 232 receives the output from the driveshaft 230 via a pinion gear 240 that transmits the torque to a ring gear 244. The pinion gear 240 includes a shaft that is coupled to the driveshaft 230 by a flange 246. The differential gear set 232 is supported for rotation within the housing 242 by a pair of differential bearings. The differential gear set 232 includes side gears 238 arranged within the housing 242 that are coupled to and support one end of the axles 236. The coupling of rotational components, such as the flange 246 to the pinion gear 240 or the side gears 238 to the axles 236 for example, may be accomplished using a spline connection. Note that the differential assembly 222, in an embodiment, can be an electronically controlled limited-slip differential (type of automotive differential gear arrangement that allows for some difference in angular velocity, but imposes a mechanical limit on the disparity).

[0042] In an embodiment, each axle 236 extends through an axle tube 254. The axle tube 254 includes a hollow interior that extends the length thereof. At one end of the axle tube 254 a bearing 256 is mounted to support the end of the axle 236 adjacent the driven- wheel 234. A shaft seal 257 is located between the bearing 256 and the driven-wheel 234. A brake assembly 258 is coupled to the end of the axle 236, adjacent the bearing 256. The brake assembly 258 is configured to selectively slow the rotation of the wheel 234 in response to an action by the operator, such as applying a brake pedal or activating a parking brake. The brake assembly 258 may be any known braking system used with vehicles, such as a caliper/rotor assembly. In an embodiment, the brake assembly 258 can be connected to a hydraulic circuit that is driven by a hydraulic system 259. The hydraulic system 259 may include a booster device that increases the amount of hydraulic force that is applied to the brakes 258, 261. The hydraulic system 259 may be driven by the engine 224 or electrically driven by a separate electrical motor (not shown). Note that in other embodiments the brake assembly 258 may include other systems in combination with (or rather than) the hydraulic system 259.

[0043] The brake assembly 258 is also configured to function as a parking brake. In an embodiment, the brake assembly includes an electronic parking brake system 269 having an electrical motor 263 that is coupled to a brake caliper. When a parking brake is activated by the operator (such as with a button or lever 265) the electric motors 263 actuate to engage the calipers with the rotor. The electronic parking brake system 269 and the actuator 265 can be coupled to a controller 267.

[0044] The vehicle 220 further includes a second set of wheels 260 arranged adjacent the engine 224. In an embodiment, the second set of wheels 260 is also configured to receive output from the engine 224. This is sometimes referred to as a four-wheel or an all-wheel drive configuration. In this embodiment, the vehicle 220 may include a transfer case 262 that divides the output from the transmission 228 between the front and rear driven wheels 234, 260. The transfer case 262 transmits a portion of the output to a front differential assembly 264, which may include additional components such as a differential gear set 266 and axles 268 that transmit the output to the wheels 260. In another embodiment, the transfer case 262 can be omitted from the vehicle and the axles 268 may be de-coupled. Similar to the rear wheels 234, the front wheels 260 include brakes 261. The brakes 261 are configured to selectively slow the rotation of the front wheels 260 in response to an action by the operator. In an embodiment, the brakes 261 are also coupled to and actuated by the hydraulic system 259. In an embodiment, the hydraulic system 259 is configured to selectively isolate the front brakes 261 and the rear brakes 258.

[0045] The vehicle 220 further includes a yaw rate control system 280 (e.g., a vehicle dynamics influencing subsystem) that can measure and/or control a yaw rotation of the vehicle 220. A yaw rotation is a movement around a yaw axis of the vehicle 220 that changes a pointing direction of the vehicle 220, to a left or right of a direction of motion of the vehicle 220. The yaw rate of the vehicle 220 is an angular velocity of this rotation (or rate of change of a heading angle). Thus, the yaw rate control system 280, in an embodiment, maintains/controls the yaw rate, and variations thereof, of the vehicle 220 according to input values, such as measurements from yaw rate sensors (or from any sensors of any system or subsystem throughout the vehicle 220).

[0046] Yaw rate sensors of the yaw rate control system 280 can be utilized to determine the yaw rate of the vehicle 220 in degrees per second or radians per second.

Examples of a yaw rate sensor include accelerometers, gyroscopes, etc. Further, for example, the yaw rate can be measured by the ground velocity at two geometrically separated points on the vehicle 220 by or synthesized from accelerometers (e.g., the yaw rate can be measured with accelerometers in a vertical axis). The yaw rate control system 280 can utilize yaw rate sensors to measure an angular velocity of the vehicle 220 around the vertical axis (or z-axis) of the vehicle 220. The yaw rate is directly related to a lateral acceleration of the vehicle 220 turning at constant or varying speed around a constant or varying radius. Note that an angle between a heading of the vehicle 220 and an actual movement direction of the vehicle 220 is a slip angle, which is related to the yaw rate.

[0047] The yaw rate can be controlled through actuators (not shown). In general, an actuator is any motor type responsible for moving or controlling a mechanism or system of the vehicle 220. Examples of actuators include but are not limited to hydraulic actuators, pneumatic actuators, electric actuators, thermal actuators, magnetic actuators, and mechanical actuators. In an embodiment, the vehicle 220 can employ vehicle dynamics influencing actuators that manage vehicle handling and corrects vehicle handling characteristics associated with a primary propulsion mechanism, a secondary propulsion mechanism, a torque vectoring differential, an active steering system, etc. These actuators can be integrated into the yaw rate control system 280, integrated into another vehicle dynamics influencing system of the vehicle 220, or be any actuator of any system or subsystem throughout the vehicle 220. In this way, the yaw rate control system 280 (or other controller of the vehicle 220) can, based on the measurements/inputs from sensors, as noted above, and calculations performed by the yaw rate control system 280, control actuators to apply forces to the vehicle 220. Note that the vehicle 220 may not have to specifically rely on the actuators of the yaw rate control system 280 to maintain stability, as distribution of mass may also be accounted for and be utilized by the yaw rate control system 280 when performing the calculations.

[0048] Referring now to FIG. 5, another type of vehicle 220 is shown. In this embodiment, the vehicle 220 includes a rear drive system 300 that uses electrical power from a battery system 302 (e.g., a cell pack) to provide drive torque to the rear wheels 234. The rear drive system 300 includes one or more electrical motors that are coupled to the rear axles 236 to transfer torque to the rear wheels 234. The battery system 302 is connected to the rear drive system 300 via a power controller 304. A charging system 306 (e.g. an alternator or generator) may be connected between the engine 224 and the power controller 304 to provide electrical power for replenishing the battery system 302. It should be appreciated that the vehicle 220 can be any combination or variation of an electric motor and an internal combustion engine (front or rear, coupled or decoupled propulsion system). Note that coupled includes a 'mechanically connected' system. Further note that decoupled includes a

'mechanically separate' system, e.g., the mechanical flywheel kinetic energy storage device that could be creating the regenerative braking or propulsion disturbance. It should also be appreciated that the yaw rate control system 280 described herein may be used with any type of vehicle, such as the vehicles 220 shown in FIG. 4 and FIG. 5.

[0049] In accordance with an embodiment, as a yaw rate of the vehicle 220 varies, the controller 267 may utilize the yaw rate control system 280 to maintain the yaw rate of the vehicle 220. For example, the controller 267 can be configured to operate actuators of the yaw rate control system 280 in response to measurements of the yaw rate sensors, as the vehicle 220 is operated. In this way, it should be appreciated that any operation of the yaw rate control system 280 can be adjusted based on operational characteristics of the vehicle 220. For instance, when the vehicle 220 is turning at a faster speed, the controller 267 may operate and control the actuators of the yaw rate control system 280 to cause the actuators to apply an increased amount of stabilizing force to portions of the vehicle than if the vehicle 220 is turning at a slower speed. Note that the controller 267 and the yaw rate control system 280 (as well as other systems and subsystems of the vehicle 220) can be separate systems or integrated into a single processing system (i.e., controller having a processor and a computer readable and writeable storage media).

[0050] FIG. 6 depicts a process flow schematic 400 executed by a vehicle dynamics influencing subsystem (e.g., the yaw rate control system 280 implemented by the controller also referred to as a vehicle dynamics influencing controller). The vehicle dynamics influencing subsystem, according to an embodiment, can compensate for change in vehicle behavior during a change in availability of a secondary propulsion mechanism in a decoupled propulsion system. For example, a primary propulsion mechanism can be a combustion engine and a secondary propulsion mechanism can be an electric motor. A clutch is a mechanical device that engages and disengages the primary and/or secondary propulsion mechanisms from driveshaft 230 of FIG. 4 and FIG5 to control whether the primary or secondary propulsion mechanisms transmits power to the wheels 234. Note that, while the below embodiment discusses the decoupled propulsion system, coupled propulsion systems are also contemplated. In general, process flow schematic 400 determines what to do when a secondary propulsion mechanism is coupled, coupling, decoupled, or decoupling from the axles 236, 268 and/or wheels 234, 260.

[0051] In an embodiment, in a decoupled propulsion architecture where the secondary propulsion mechanism can change from available to unavailable and vice versa, during these changing states, vehicle handling characteristic can be adversely effected. The process flow schematic 400 provides a logic and method to correct the adverse vehicle handling characteristic generated. Thus, while an alternative is to do nothing and require the driver to react to the change in vehicle handling due to change in availability of the secondary propulsion actuator, the process flow schematic 400 determines when the change in availability of the secondary propulsion actuator may adversely affect the vehicle handling and corrects vehicle handling characteristics by operating components of the vehicle (actuators or the like) based on the determined change. Note that, in these conditions, other vehicle dynamics influencing actuators can be used to compensate for this effect.

[0052] In operation, the process flow schematic 400 begins at block 410, where a plurality of inputs (e.g., 1-1 through 1-10) is received by the controller. These plurality of inputs can include, but are not limited to, a torque decay exit gradient (e.g., 1-1), a yaw disturbance decay exit gradient (e.g., 1-2), a yaw disturbance factor (e.g., 1-3), an actual front axle torque (e.g., 1-4), a front axle torque request (e.g., 1-5), a predicted reconnect torque (e.g., 1-6), a vehicle dynamic allowed yaw propulsion target (e.g., 1-7), a state of a charge (e.g., 1-8; SOC), a yaw disturbance apply gradient (e.g., 1-9), and a torque apply gradient (e.g., I- 10). Inputs I-l through I- 10 can be partially divided across sub-blocks 420 and 430 in any combination. For instance, as shown in FIG. 6, Inputs I-l through 1-8 can be utilized by Sub-block 420, while Inputs 1-3 through 1-10 can be utilized by Sub-block 430.

[0053] Next, with the Inputs I-l through I- 10 received, the process flow schematic 400 proceeds to determine a status of the clutch of the secondary propulsion mechanism of the vehicle 220. The status of the clutch can be determined based on signals from

components of the vehicle, such as sensors associated with the clutch. For instance, the plurality of inputs can include a clutch signal from which the status of the clutch can be determined. The status of the clutch can fall into four categories: coupled, coupling, decoupled, or decoupling from the axles 236, 268 and/or wheels 234, 260. In turn, the clutch signal can indicate one of these four categories.

[0054] Further, in the alternative, the process flow schematic 400 proceeds to determine a status of a state of a charge with respect to a predefined characteristic (e.g., To Be Determined (TBD) %, which may be software or user defined). The state of the charge can be determined based on signals from components of the vehicle, such as sensors associated with the secondary propulsion mechanism of the vehicle 220. For instance, the plurality of inputs can include a charge signal from which the status of the charge can be determined (e.g., note that the state of the charge is listed as Input 8). Based on the status of the clutch or the status of the state of charge, the process flow schematic 400 proceeds to either Sub-block 420 or Sub-block 430. Sub-blocks 420 and 430 can be implemented as hardware, software, or combination thereof within the vehicle dynamics influencing subsystem, the yaw rate control system 280.

[0055] Operations within Sub-block 420 are executed when the clutch is

disconnecting, or disconnected, from the axles 236 and/or wheels 260 of FIGS. 4 and 5 with respect to a predetermined amount of time (e.g., TBD seconds) or when the state of the charge is less than or equal to a predetermined percentage (e.g., TBD%). Operations within Sub-block 430 are executed when the clutch is connecting ,or connected to the axles 236 and/or wheels 260 of FIGS. 4 and 5 with respect to a predetermined amount of time (e.g., TBD seconds) or when the state of the charge is greater than a predetermined percentage (e.g., TBD%). For ease of explanation, sub-blocks 420 and 430 will now be described with respect to how the controller performs based on whether or not a front torque is available on a front axle (e.g., axle 268 of the vehicle 220 of FIGS. 4 and 5) from a secondary propulsion mechanism. Note that it is contemplated that the operations of sub-blocks 420 and 430 can be performed by the controller based on whether or not a rear torque is available on a rear axle (e.g., axle 236 of the vehicle 220 of FIGS. 4 and 5) from a secondary propulsion mechanism.

[0056] With respect to Sub-block 420 (e.g., when the clutch is disconnecting or disconnected), the controller utilizes inputs 1-1 though 1-8 in a Processing Heuristic #1 described below to calculate a rear axle torque override (e.g., O-l), a propulsion yaw disturbance (e.g., 0-2), and a front axle torque override (e.g., 0-3). In turn, the process flow schematic 400 can supply at least one of outputs O-l, 0-2, and 0-3 produced from Sub-block 420 as needed to other operations, systems, and/or subsystems of the vehicle 220 of FIGS. 4 and 5, such as to compensate for change in vehicle behavior during a change in availability of a secondary propulsion mechanism in a decoupled propulsion system.

Processing Heuristic #1:

IF (clutch status = disconnecting OR disconnected + TBD seconds, OR SOC < TBD%)

THEN

IF (actual front axle torque > 0)

THEN

calculate front axle yaw disturbance (due to the impending disengagement of the front axle, resulting in 0 Nm torque contribution from the front axle)

IF (front axle yaw disturbance > vehicle dynamics allowed yaw propulsion target) THEN

front axle torque override = actual front axle torque * TBD torque decay gradient AND

propulsion yaw disturbance = vehicle dynamics allowed yaw propulsion target * yaw disturbance factor * yaw disturbance exit gradient

END

ELSE

front axle torque override = actual front axle torque * TBD torque decay gradient AND

propulsion yaw disturbance = front axle yaw disturbance * yaw disturbance factor * yaw disturbance exit gradient

END ELSE propulsion disturbance = front axle yaw disturbance * yaw disturbance factor * yaw disturbance exit gradient

END ELSE

front axle override = 0

AND

propulsion yaw disturbance=0

END

[0057] With respect to sub-block 430 (e.g., when the clutch is connecting or connected), the controller utilizes inputs 1-3 through 1-10 in a Processing Heuristic #2 to calculate a rear axle torque override (e.g., O-l), a propulsion yaw disturbance (e.g., 0-2), and a front axle torque override (e.g., 0-3). In turn, the process flow schematic 400 can supply at least one of outputs O-l, 0-2, and 0-3 produced from sub-block 430 as needed to other operations, systems, and/or subsystems of the vehicle 220 of FIGS. 4 and 5, such as to compensate for change in vehicle behavior during a change in availability of a secondary propulsion mechanism in a decoupled propulsion system.

Processing Heuristic #2:

IF (clutch status = reconnecting OR reconnected + TBD seconds OR SOC > TBD%) THEN

IF (actual front axle torque < (predicted reconnect torque OR front axle torque request))

THEN

calculate front axle yaw disturbance (due to the impending engagement of the front axle, resulting in increased torque contribution from the front axle)

IF (predicted reconnect torque > front axle torque request)

THEN

front axle yaw disturbance = front axle yaw disturbance (predicted torque)

AND

available torque = predicted reconnect torque

END

ELSE

front axle yaw disturbance = front axle yaw disturbance (front axle torque request) AND

available torque = front axle torque request END

IF (front axle yaw disturbance > vehicle dynamics allowed yaw propulsion target) THEN

front axle torque override = available front axle torque * TBD torque apply gradient AND

propulsion yaw disturbance = vehicle dynamics allowed yaw propulsion target* yaw disturbance factor * yaw disturbance apply gradient

END ELSE

front axle torque override = available front axle torque * TBD torque apply gradient AND

propulsion yaw disturbance = front axle yaw disturbance * yaw disturbance Factor * yaw disturbance apply gradient

END ELSE

front axle override = 0

AND

propulsion yaw disturbance = 0

END

ELSE

front axle override = 0

AND

propulsion yaw disturbance = 0

END

[0058] In view of the above, an embodiment can include a method by a vehicle dynamics influencing controller of a vehicle to compensate for change in a behavior of the vehicle during a change in availability of a secondary propulsion mechanism in a decoupled propulsion system of the vehicle is provided. The method includes determining a status of a clutch of the vehicle and determining a pending change in yaw rate in accordance with the status of the clutch. Further, the method includes controlling a front axle torque based on the pending change in yaw rate and outputting a yaw disturbance in accordance with a change of the front axle torque responsive to the controlling. The method may be implemented in a system and/or a computer program product as further described herein. [0059] In view of the above, an embodiment can include a method by a vehicle dynamics influencing controller of a vehicle to compensate for a change in a behavior of the vehicle during a change in availability of a propulsion mechanism. The method includes determining a status of a clutch of the vehicle; determining a pending change in yaw rate in accordance with the status of the clutch; controlling an axle torque based on the pending change in the yaw rate; and outputting a propulsion yaw disturbance in accordance with a change of the axle torque responsive to the controlling. The method may be implemented in a system and/or a computer program product as further described herein.

[0060] The technical effects and benefits of the embodiments herein include minimizing change to the vehicle handling characteristics during a change in availability of a secondary propulsion actuator and efficiently coordinating all vehicle dynamics influencing actuators on a vehicle. The embodiments herein, including the above mentioned processing heuristics, are necessarily rooted in the processing system (e.g., via hardware, software, or combinations thereof) to provide the above technical effects and benefits to overcome problems specifically arising in vehicle control. Embodiments herein include a system, a method, and/or a computer program product

[0061] The computer program product can include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of embodiments herein.

[0062] The computer readable storage medium can be a tangible device that can retain and store the computer readable program instructions for use by an instruction execution device (e.g., a processor). The computer readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

[0063] The computer readable program instructions can be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages, for carrying out operations described herein. The computer readable program instructions can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.

[0064] The computer readable program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the operations/acts specified in the flowchart and/or block diagram block or blocks. The computer readable program instructions can also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to operate in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the operation/act specified in the flowchart and/or block diagram block or blocks. In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, to perform aspects of embodiments herein. The computer readable program instructions can be downloaded to respective

computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network.

[0065] The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. Examples of the network include the Internet, a local area network (LAN), a wide area network (WAN), controller area network (CAN), and/or a wireless network. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

[0066] Aspects described herein are with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

[0067] The flowchart and block diagrams in the FIGS, illustrate the architecture, operability, and operation of possible implementations of systems, methods, and computer program products according to various embodiments. Further, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical operation(s). In some alternative implementations, the operations noted in the block may occur out of the order noted in the FIGS. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the operability involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware- based systems that perform the specified operations or acts or carry out combinations of special purpose hardware and computer instructions.

[0068] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and/or

"comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one more other features, integers, steps, operations, element components, and/or groups thereof.

[0069] While the embodiments have been described, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the embodiments. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the embodiments without departing from the essential scope thereof. Therefore, it is intended that the disclosure not be limited to the particular embodiments disclosed, but that the disclosure will include all embodiments falling within the scope of the application.