Vehicle control allocation with relaxed global force-request
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- VOLVO TRUCK CORP
- Filing Date
- 2023-07-14
- Publication Date
- 2026-05-20
AI Technical Summary
Existing control allocation strategies for over-actuated vehicles often prioritize strictly following driver inputs, leaving little room for optimizations such as efficiency and fuel economy, and may be unnecessary under normal driving conditions.
A controller that coordinates multiple motion actuators by obtaining lower and upper bounds for global forces from higher-level controllers, allowing the expected resulting joint contribution of the actuators to vary within these bounds, thereby providing flexibility to optimize for other parameters beyond strict force following.
This approach enhances the flexibility of the controller to optimize for power loss and improve fuel economy during normal driving situations, while ensuring sufficient control during emergency situations by allowing the lower and upper bounds to converge in severe conditions.
Smart Images

Figure EP2023069694_23012025_PF_FP_ABST
Abstract
Description
Docket No.: P2023-0401WO01 1 VEHICLE CONTROL ALLOCATION WITH RELAXED GLOBAL FORCE-REQUEST TECHNICALFIELD
[0001] The disclosure relates generally to control allocation in vehicles. In particular aspects, the disclosure relates to vehicle control allocation with a relaxed force-request. The disclosure can be applied to heavy-duty vehicles, such as trucks, buses, and construction equipment, among other vehicle types. Although the disclosure may be described with respect to a particular vehicle, the disclosure is not restricted to any particular vehicle. BACKGROUND
[0002] In some vehicles, the number of actuators capable of working together to generate a set of desired forces may exceed the number of such desired forces. For example, in a vehicle having individual motors for each wheel, or at least one motor for each wheel axis, there may be multiple ways in which the motors may be controlled to generate e.g. a same longitudinal force. Such vehicles are referred to as “over-actuated”, and results in an underdetermined set of equations that are to be solved in order to control the vehicle.
[0003] One contemporary strategy for controlling such over-actuated vehicles includes the use of so-called control allocation. As an example, a motion controller may receive a steering input and / or acceleration request from the driver and convert this input to a set of requested global forces, i.e. a set of forces that the vehicle should generate in order to follow the steering input and / or acceleration request from the driver. Examples of such global forces may include longitudinal and lateral forces, as well as one or more yaw moments. As a next step, the set of requested global forces are passed as input to a control allocator that is then given the task of finding a set of actuator control inputs which, if applied to the actuators of the vehicle, would result in the set of requested global forces being generated by the vehicle. When solving such a control allocation problem, the capabilities of the actuators may also be taken into account, and the actuator control inputs may be selected based on a particular optimization strategy.
[0004] The present disclosure seeks to develop the available such control allocation strategies and to mitigate one or more shortcomings thereof.Docket No.: P2023-0401WO01 2 SUMMARY
[0005] Using the set of requested global forces as an equality-constraint in the control allocator may ensure that the actuators are controlled such that the requested global forces, and thereby also the steering input and / or acceleration request from the driver, are met. However, as the inventors have realized, attempting to always strictly follow the input from the driver may leave little or no room for other optimizations (such as of efficiency and fuel economy), and may under at least some normal driving conditions of the vehicle be unnecessary.
[0006] In order to improve on this situation, the present disclosure provides an improved controller for coordination of a plurality of motion actuators of a vehicle or vehicle combination, a motion control system for a plurality of motion actuators of a vehicle or vehicle combination, and corresponding methods, computer program products and computer- readable storage media as defined in and by the accompanying independent claims. Various alternatives of the improved controller, motion control system, methods, computer program products and computer-readable storage media are defined in and by the accompanying dependent claims.
[0007] According to a first aspect of the present disclosure, there is provided a controller for coordination of a plurality of motion actuators of a vehicle or vehicle combination. The controller is configured to obtain, from at least one higher-level controller, lower and upper bounds for at least one global force for the vehicle or vehicle combination as a whole. The controller is configured to provide a solution to a control allocation problem for coordinating the plurality of motion actuators. To provide this solution, the controller is further configured such that an expected resulting joint contribution of the plurality of motion actuators to the at least one global force is not equality-constrained, but instead allowed to vary between the obtained lower and upper bounds. The controller is further configured to directly or indirectly control the plurality of motion actuators in accordance with the provided solution to the control allocation problem. The first aspect may seek to improve the flexibility of the controller to optimize also for other parameters / things than strict following of the requested global forces, in particular during normal driving situations of the vehicle or vehicle combination in which such strict following of the requested global forces is not necessarily required.Docket No.: P2023-0401WO01 3
[0008] As used herein, an “expected resulting joint contribution” is the joint contribution of the plurality of motion actuators that the controller expects will be the result if the motion actuators are controlled in accordance with a particular / candidate solution that is evaluated as part of the optimization / control allocation problem. As used herein, the controller may e.g. be a control allocator, and form part of e.g. an electronic control unit (ECU) or similar of a vehicle or vehicle combination, or be implemented as part of some other unit or as a standalone unit. As used herein, the “global force(s)” for the vehicle or vehicle combination as a whole may also be referred to as “requested global force(s)”, “virtual control input(s)”, or similar. Here, the term “virtual” emphasizes that the controller is not capable to, on its own, generate e.g. propulsion, steering and / or braking forces, but has the job of translating a request for such forces into control signals which can be directly (or indirectly) used to control / coordinate the plurality of motion actuators to generate such propulsion, steering and / or braking forces. In particular, the term “global force(s)” refers to one or more forces (optionally also / instead including one or more yaw moments) generated by the plurality of motion actuators working together, and the controller thus receives a request for such global force(s) from the higher-level controller, and converts this request into one or more control inputs to the plurality of motion actuators by solving the control allocation problem. That the controller “directly” controls a motion actuator means that the controller sends a signal directly to the motion actuator, and that the signal is thus on a form which is understandable by the motion actuator. That the controller “indirectly” controls the motion actuator means that the controller instead sends a signal to another device, which in turn (either directly or indirectly) controls the motion actuator based on the received signal from the controller. Such another device may for example be a dedicated controller for the motion actuator. As used herein, a “motion actuator” may include a device capable of generating force, and which is connected to e.g. one or more wheels or wheel axles of the vehicle or vehicle combination in order to propel the vehicle or vehicle combination. A motion actuator may also include e.g. a steering servo or similar, capable of changing a steering angle of one or more wheels of the vehicle or vehicle combination. A motion actuator may also include e.g. a brake or similar, capable of applying braking force to at least one wheel or wheel axle of the vehicle or vehicle combination. More generally, a motion actuator as used herein is to be understood as any device that may be used to generate the overall motion of the vehicle or vehicle combination, including propulsion, steering, braking and similar.Docket No.: P2023-0401WO01 4
[0009] Optionally in some examples, including in at least one preferred example, the control allocation problem may include a minimization of power loss. By allowing the contribution of the plurality of motion actuators to the at least one global force to vary between the obtained lower and upper bounds, the controller may be provided an increased flexibility to perform the minimization of power loss. Phrased differently, the control allocation problem may include a minimization of power loss subject to the more relaxed global force constraint that the expected resulting joint contribution is to be kept between the lower and upper bounds for the at least one global force. A technical benefit may include an improved fuel-economy of the vehicle or vehicle combination, especially once there are multiple requested global forces involved and thereby multiple variables to optimize for.
[0010] Optionally in some examples, including in at least one preferred example, the controller may be further configured to obtain an indication of an increase in severity of a current or predicted (future) driving situation of the vehicle or vehicle combination. The controller may be configured to, in response to obtaining the prediction, and as part of providing the solution to the control allocation problem, force (i.e., update) the lower and upper bounds (received from the at least one higher-level controller) to approach each other. This may e.g. include to partially or fully converge the lower and upper bounds, and the controller may use the updated, more converged lower and upper bounds when solving the control allocation problem. A technical benefit may include that in an emergency situation, the inequality-constraint on the requested global force(s) may be converted into (or at least towards) an equality-constraint, and thus forcing the controller to prioritize exactly following the input from e.g. the driver above power optimization.
[0011] Optionally in some examples, including in at least one preferred example, the increase in severity may include an imminent vehicle rollover or loss of tire grip.
[0012] Optionally in some examples, including in at least one preferred example, the control allocation problem may be on quadratic programming (QP) form.
[0013] According to a second aspect of the present disclosure, there is provided a motion control system for a plurality of motion actuators of a vehicle or vehicle combination. The motion control system includes a first higher-level controller configured to generate a lower bound for at least one global force for the vehicle or vehicle combination as a whole, and a second higher-level controller configured to generate an upper bound for the at least one global force. The motion control system further includes the controller of the first aspectDocket No.: P2023-0401WO01 5 (including any examples thereof as described and discussed herein), for controlling the plurality of actuators based on the lower and upper bounds. The second aspect may seek to provide an improved motion control system implementing the benefits of the envisaged controller. A technical benefit may include that the relaxed requirement of not strictly having to follow the requested global force(s) allows for more flexibility to optimize also other things, as described earlier herein.
[0014] Optionally in some examples, including in at least one preferred example, the motion control system may further include a first reference (-value) generator configured to generate a first set of one or more references (or reference values) based on a first anticipated driving style of a driver of the vehicle or vehicle combination, and a second reference (- value) generator configured to generate a second set of one or more references (or reference values) based on a second anticipate driving style of the driver different from the first anticipated driving stile. The first higher-level controller may be further configured to generate the lower bound based on the first set of one or more references, and the second higher-level controller may be further configured to generate the upper bound based on the second set of one or more references.
[0015] Optionally in some examples, including in at least one preferred example, the first set of one or more references may include a first yaw-rate reference based on a minimum allowed understeer of the vehicle or vehicle combination. The second set of one or more reference may include a second yaw-rate reference based on a maximum allowed understeer of the vehicle or vehicle combination. A technical benefit may include that in a critical / emergency situation, the solution of the control allocation problem may be forced towards e.g. one of the anticipated driving styles. For example, the more relaxed higher-level controller may be made more aggressive in order to e.g. clear a curve, and the more aggressive controller may be made more relaxed in order to e.g. avoid rollover.
[0016] Optionally in some examples, including in at least one preferred example, each of the first and second higher-level controllers may implement model predictive control (MPC). A technical benefit may include to utilize the capabilities of such technology to more accurately predict what the required input to the controller performing the control allocation should be.
[0017] Optionally in some examples, including in at least one preferred example, the first and second higher-level controllers may be further configured such that, in response to anDocket No.: P2023-0401WO01 6 increase in a severity of a current or predicted driving situation of the vehicle or vehicle combination, the lower and upper bounds provided to the control allocator may be forced to approach each other. This includes e.g. partially or fully converging the lower and upper bounds, thus turning the inequality-constrained to (or at least towards) an equality-constraint on the (requested) global force(s). As mentioned earlier herein, a technical benefit may include that the controller may then prioritize to more strictly follow the requested global forces above optimizing for power. In particular, the envisaged controller and motion control system thus allows to e.g. optimize for power and thus improve fuel economy during normal driving situations, while still providing sufficient control of the vehicle or vehicle combination during emergency situations.
[0018] In some examples, including in at least one preferred example, forcing the lower and upper bounds towards each other may be handled as part of constraints, such as inequality constraints, which are imposed on a QP problem solved by the MPC controllers, such that as the various forces and yaw-rates of the vehicle approaches the limitations of the vehicle (as defined by such constraints) in case of an increased severity-situation, the outputs from the MPC controllers will converge or at least approach each other.
[0019] In some examples, including in at least one preferred example, the first and second higher-level controllers may be configured to use different reference targets for at least one parameter related to the motion control of the vehicle or vehicle combination, and forcing the lower and upper bounds to approach each other may be performed by both of the first and second higher-level controller being further configured to use a same constraint for the at least one parameter when each solving an optimization problem to generate the respective lower and upper bounds. The at least one parameter may e.g. be a yaw-rate, a longitudinal acceleration, a lateral acceleration, or any other parameter relevant to the motion control of the vehicle or vehicle combination. A technical benefit may include that even if the higher-level controllers use different reference targets, the sharing of a same constraint may cause both higher-level controllers to output values (for their respective lower or upper bound) which are similar or equal, as the sharing of the same constraint may cause both controllers to solve a similar or same optimization problem (at least with respect to the at least one parameter inDocket No.: P2023-0401WO01 7
[0020] Optionally in some examples, including in at least one preferred example, the motion control system may further include a driving-severity estimator configured to detect the increase in severity.
[0021] According to a third aspect of the present disclosure, there is provided a vehicle or vehicle combination. The vehicle or vehicle combination includes a plurality of motion actuators. The vehicle or vehicle combination further includes the controller of the first aspect or the motion control system of the second aspect, with the same technical benefits following therefrom as already discussed herein.
[0022] According to a fourth aspect of the present disclosure, there is provided a method performed in a controller (such as that of the first aspect) for coordination of a plurality of motion actuators of a vehicle or vehicle combination. The method includes obtaining, from at least one higher-level controller, lower and upper bounds for at least one global force for the vehicle or vehicle combination as a whole. The method further includes providing a solution to a control allocation problem for coordinating the plurality of motion actuators. In the method, to provide the solution, an expected resulting joint contribution of the plurality of motion actuators to the at least one global force is not equality-constrained but allowed to vary between the obtained lower an upper bounds. The method further includes directly or indirectly controlling the plurality of motion actuators in accordance with the provided solution to the control allocation problem.
[0023] According to a fifth aspect of the present disclosure, there is provided a method performed in a motion control system (such as that of the second aspect) for a plurality of motion actuators of a vehicle or vehicle combination. The method includes generating, using a first higher-level controller, a lower bound for at least one global force for the vehicle or vehicle combination as a whole. The method includes generating, using a second higher-level controller, an upper bound for the at least one global force. The method further includes providing a solution to a control allocation problem for coordinating the plurality of motion actuators. In the method, to provide the solution, an expected resulting joint contribution of the plurality of motion actuators to the at least one global force is not equality-constrained but allowed to vary between the generated lower and upper bounds. The method further includes directly or indirectly controlling the plurality of motion actuators in accordance with the provided solution to the control allocation problem.Docket No.: P2023-0401WO01 8
[0024] According to a sixth aspect of the present disclosure, there is provided a computer program product including program code which, when executed by processing circuitry of a controller (such as that of the first aspect) for coordinating a plurality of motion actuators of a vehicle or vehicle combination, causes the controller to perform the method of the fourth aspect.
[0025] According to a seventh aspect of the present disclosure, there is provided a computer program product including program code which, when executed by processing circuitry of a motion control system for a plurality of motion actuators of a vehicle or vehicle combination, causes the motion control system to perform the method of the fifth aspect.
[0026] According to an eight aspect of the present disclosure, there is provided a computer-readable storage medium including instructions which, when executed by processing circuitry of a controller (such as that of the first aspect) for coordination of a plurality of motion control actuators of a vehicle or vehicle combination, causes the controller to perform the method of the fourth aspect. The storage medium may e.g. be non-transitory.
[0027] According to a ninth aspect of the present disclosure, there is provided a computer-readable storage medium include instruction which, when executed by processing circuitry of a motion control system (such as that of the second aspect) for a plurality of motion actuators of a vehicle or vehicle combination, causes the motion control system to perform the method of the fifth aspect. The storage medium may e.g. be non-transitory.
[0028] The disclosed aspects, examples (including any preferred examples), and / or accompanying claims may be suitably combined with each other as would be apparent to anyone of ordinary skill in the art. Additional features and advantages are disclosed in the following description, claims, and drawings, and in part will be readily apparent therefrom to those skilled in the art or recognized by practicing the disclosure as described herein. There are also disclosed herein computer systems, control units, code modules, computer- implemented methods, computer readable media, and computer program products associated with the above discussed technical benefits. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] Examples are described in more detail below with reference to the appended drawings.Docket No.: P2023-0401WO01 9
[0030] Figure 1A schematically illustrates various examples of forces and moments pertinent to a vehicle or vehicle combination according to the present disclosure.
[0031] Figure 1B schematically illustrates various examples of forces and slip-angles pertinent to a tire / wheel of a vehicle or vehicle combination according to the present disclosure.
[0032] Figure 1C schematically illustrates a bicycle-model simplification of the vehicle of Figure 1A, according to the present disclosure.
[0033] Figure 1D schematically illustrates examples of a vehicle, motion actuators and motion control system according to the present disclosure.
[0034] Figure 2 schematically illustrates an example of a contemporary motion control system for coordinating a plurality of motion actuators of a vehicle.
[0035] Figure 3 schematically illustrates an example of an improved motion control system and lower-level controller according to the present disclosure.
[0036] Figures 4A and 4B illustrate validation test results for a motion control system and lower-level controller according to the present disclosure.
[0037] Figures 5A to 5D illustrate additional validation test results for a motion control system and lower-level controller according to the present disclosure.
[0038] Figure 6 schematically illustrates a flowchart of an exemplary method performed in a (lower-level) controller according to the present disclosure.
[0039] Figure 7 schematically illustrates a flowchart of an exemplary method performed in a motion control system according to the present disclosure.
[0040] Figures 8A and 8B schematically illustrates exemplary (lower-level) controllers according to the present disclosure.
[0041] Figure 9 schematically illustrates an exemplary computer-readable storage medium according to the present disclosure.
[0042] Figure 10 is a schematic diagram of a computer system for implementing examples disclosed herein, according to an example. DETAILED DESCRIPTION
[0043] The detailed description set forth below provides information and examples of the disclosed technology with sufficient detail to enable those skilled in the art to practice the disclosure.Docket No.: P2023-0401WO01 10
[0044] Before describing the improvements to contemporary motion control technology provided herewith, an example vehicle and the forces and moments pertinent thereto (e.g., acting on / generated by the vehicle) of interest will first be described in more detail with reference to Figures 1A-1D.
[0045] Figure 1A illustrates an example vehicle 100 which has a left front wheel 110a and a right front wheel 110b, as well as a left rear wheel 110c and a right rear wheel 110d. As used herein, these wheels may also be referred to as the front-left wheel 110a, the front-right wheel 110b, the rear-left wheel 110c and the rear-right wheel 110d, respectively. In Figure 1A and as used generally herein, the subscripts “l”, “r”, “f” and “a” means “left”, “right”, “front” and “aft / rear”, respectively. Similarly, combined subscripts such as “fl”, “fr”, “al” and “ar” means “front-left”, “front-right”, “rear-left” and “rear-right”, respectively.
[0046] Shown in Figure 1A are also various forces and moments generated by and acting upon the vehicle 100. For example, it is assumed that each wheel 110a-d provides a respective propulsion force ^^^, ^^^, ^^^and ^^^. More specifically, when torque is applied to a wheel, the friction between the ground and the tire of the wheel will give rise to such a propulsion force, and allow the vehicle 100 to be propelled in accordance with such propulsion forces. The front-left and -right wheels 110a and 110b are steerable with corresponding steering angles ^^^and ^^^. The propulsion forces ^^^and ^^^for these wheels are therefore not necessarily in the longitudinal direction (x-direction) of the vehicle 100, but may instead point in a same direction as the respective wheel is currently rotated to. The rear- left and -right wheels 110c and 110d are not steerable, and their corresponding propulsion forces ^^^and ^^^are directed along the longitudinal direction of the vehicle 100. Phrased differently, the propulsion force ^^^has longitudinal and lateral components given by ^^^cos ^^^and ^^^sin ^^^, respectively. Similarly, the propulsion force ^^^has components ^^^cos ^^^and ^^^sin ^^^, respectively. For the rear forces ^^^and ^^^, the lateral components are zero.
[0047] In the vehicle 100, the front wheels 110a and 110b are separated by (i.e., has a track width corresponding to) a distance ^^, and the rear wheels 110c and 110d are separated by (i.e., has a track width corresponding to) a distance ^^. The vehicle 100 also has an assumed center of gravity (COG) 160, and the front wheels 110a and 110b are located at a distance ^^to the COG 160 and the rear wheels 110c and 110d are located at a distance ^^toDocket No.: P2023-0401WO01 11 the COG 160. Although not illustrated in that way in Figure 1B, it may be assumed that the origin of the coordinate system spanned by the axes ^, ^ and ^ coincides with the COG 160. As used herein, the longitudinal axis of the vehicle 100 then coincides with the x-direction, the lateral axis of the vehicle 100 coincides with the y-direction, while the vertical direction of the vehicle 100 coincides with the z-direction. It should be noted that as used herein, the x- , y- and z-directions move with the vehicle 100, and thus turn relative a global coordinate system as the vehicle 100 turns, etc.
[0048] The forces acting upon the vehicle 100 result in a yaw-moment ^^around the vertical axis, a yaw-rate ^^, and total longitudinal and lateral forces ^^and ^^. It is also envisaged that the COG 160 of the vehicle 100 moves with longitudinal and lateral velocities ^^and ^^and with an overall velocity ^ = ^^+ ^^(not shown), and that the longitudinal and lateral forces ^^and ^^provides a longitudinal and lateral acceleration ^^and ^^, respectively, of the COG 160 of the vehicle 100.
[0049] The tire dynamics of the wheels 110a-d of the vehicle will now be discussed with reference to Figure 1B. Figure 1B shows a (steerable) wheel 110, i.e. an ^:th wheel of the vehicle 100 (where ^ = ^^, ^^, ^^, ^^). The steering angle of the wheel 110 is denotedand is assumed to be zero for any non-steerable wheel. The coordinate system of the vehicle 100 is denoted by ^ and ^ and the coordinate system of the wheel 110 is denoted by ^^^and ^^^. The velocity of the wheel hub is indicated by the vector ^^, which may have the speed components ^^^^and ^^^^(not shown) in the coordinate system of the wheel 110, and the speed components ^^^and ^^^(also not shown) in the coordinate system of the vehicle 100.
[0050] If assuming pure longitudinal tire slip, i.e. such that the component ^^^^is zero, the slip for the ^:th wheel may be defined aswhere ^^is the tire radius, ^^is the rotational speed of the tire, and ^^is the vehicle’s longitudinal speed. For a braking tire, the denominator may be replaced with|^^^|, i.e. the magnitude of the longitudinal velocity of the wheel hub of the wheel 110.
[0051] A tire slip angle ^^may be defined as an angular difference between the wheel hub direction of movement and the direction of the wheel’s velocity. Using trigonometry, the tire slip angle can be written asDocket No.: P2023-0401WO01 12where ^^is the steering angle and ^^^^and ^^^^are the wheel hub speed components in the x- and y-directions, respectively, in the wheel coordinate system. For a non-steerable axle, the same equation applies but with ^^set to zero. Lateral tire slip ^^^may also be defined as
[0052] Combined tire slip may be present if the vehicle 100 is accelerating or e.g. braking while cornering. A model for combined tire slip may be used to estimate maximal forces ^^^and ^^^as a result of the corresponding tire slip ^^and ^^. Assuming isotropic friction and tire deformation, an estimate of maximal total tire force may be expressed as ^^^^=^^^ ^^+ ^^ ^^, (4) where ^ is a tire friction coefficient between the road and tire(s) and ^^^is a vertical load on the tire(s). This equation may also be referred to as a “friction circle” of radius ^^^^, if assuming isotropic tire dynamics in both x- and y-directions. Tires may also be unsymmetrical in the x- and y-directions, which is however not considered here. By rearranging the friction circle equation, an estimate of a maximal longitudinal tire force may be calculated, given that the lateral and vertical tire forces are known, aswhere ^^^,^,^^^is the maximum longitudinal force before the tire starts sliding according to the friction circle. It is envisaged herein that the lateral and vertical tire forces and the friction coefficient may be available through e.g. measurements or other estimations. For example, the lateral force may be estimated as ^^^= (^^^ / ^)^^, where ^ is the gravitational acceleration (constant) and ^^the lateral acceleration of the vehicle. Similarly, it is envisaged that the vertical force / load may be estimated based on knowledge about momentary lateral and longitudinal accelerations, taking into account e.g. static distribution, longitudinal- and lateral load-transfers. By separating the longitudinal and lateral forces and using an estimated lateral force ^^^as above, two equilibrium equations may be defined asandDocket No.: P2023-0401WO01 13where ^^is here a measured yaw-rate, ^^^is a measured lateral velocity, ^^^is the estimated tire force / loading on each tire and ^^is a measured lateral acceleration. The measure yaw- rate may also be replaced by a yaw-rate reference estimated from the steering angle ^^, which may make the estimations react faster to changes in yaw-rate. In summary, an expression for maximum longitudinal tire forces may be expressed aswhere ^^,^^^is the reference yaw rate and ^ = ^^, ^^, ^^, ^^.
[0053] As slip ratio increases, lateral forces may naturally increase as well, leading to a change in the characteristics of the longitudinal tire dynamics. Longitudinal forces may be considered independent of the lateral tire slip up to e.g. approximately 50% of the maximum friction circle force. A total planar force may then be split up depending on lateral versus longitudinal slip,where ^^^is the combined slip vector and ^^^is an estimated total force based on the vertical load, the friction and current tire slip. As a result, lateral forces may decrease as the longitudinal forces increase, possibly leading to one or more issues if e.g. attempting to brake the vehicle in corners.
[0054] For the tires of the vehicle 100 provided as part of the wheels 110a-d, a linear tire model may be used to describe a linear relationship between the slip angle and the force it generates, and may be valid at least for smaller slip magnitudes. For a vehicle mostly operating under low-slip conditions, it may be an accurate model for a majority of control situations. The forces generated may be described using two constants: a longitudinal stiffness ^^^and a cornering stiffness ^^^. Cornering stiffness may be considered as a parameter which describes a relationship between lateral force and slip angle. While lateral forces may decrease at higher slip values, a linear relationship is formed at lower slip values. At these lower slip values, the lateral forces may be described as the slip angle multiplied by a constant known as the cornering stiffness, i.e. ^^^= −^^^^^.(10)Docket No.: P2023-0401WO01 14
[0055] The value of the cornering stiffness may be assumed to change with tire types, tire treads, tire pressure, vertical load, and similar. For the purpose of modelling the vehicle 100 and its tires, the cornering stiffness may remain largely unchanged during steady state driving, but may change when accelerating, braking and / or if the truck is loaded differently. To account for such changes, e.g. as part of torque vectoring, the definition of the cornering stiffness may made dependent on e.g. axle weight, such that a cornering stiffness for a ^:th axle, ^^^, can depend on the vertical loads on the tires of that axle, e.g. on the vertical load ^^^^on the axle’s left tire(s) and on the vertical load ^^^^on the axle’s right tire(s). In case of a stronger dependence of cornering force on tire load, the tire cornering properties may also be described using a cornering coefficient ^^^^, which is defined by the relation ^^^= ^^^^^^^^^+ ^^^^^. (11)
[0056] The longitudinal dynamics of the vehicle 100 may be described in terms of various resistances such as rolling resistance, air resistance and gravitational resistance due to a road gradient. There may also be other forces generated by propulsion to counter e.g. the resistances and accelerate the vehicle 100. A tire will provide a positive longitudinal force if accelerating, or a negative longitudinal force if braking. The rolling resistance affecting the vehicle 100 may happen due to deformity and hysteresis of the tire rubber. The rolling resistance may usually be regarded as constant over different vehicle speeds, and may be calculated as ^^^^= ^^^^^,(12)where ^^is a rolling resistance coefficient. Air resistance may be calculated aswhere ^ is air density, ^^is a drag coefficient, and ^^is a (projected) frontal area of the vehicle 100. Gravitational resistance for a road grade angle ^ may be calculated as ^^= ^^ sin ^ ,(14)where ^ is the vehicle’s mass and ^ is the gravitational constant. An equality equation for the longitudinal forces acting on the vehicle 100 may thus be summarized aswhere ^^^,^^^is the resulting motion actuator forces applied on the ^:th wheel.Docket No.: P2023-0401WO01 15
[0057] To consider the lateral dynamics of the vehicle 100, an approximation in form of a single-track model (also referred to as a bicycle model) may be used, such as shown in Figure 1C. In such a model, the vehicle 100 is considered to have a single rear wheel 111b which is non-steerable, and a single front wheel 111a which is steerable with a steering angle ^^. The wheels are separated longitudinally with a distance ^ = ^^+ ^^(where ^^and ^^are the longitudinal distances between the front and rear wheels 111a and 111b, respectively, and the vehicle’s COG 160). For smaller steering angles, the lateral forces acting on the vehicle may be described in terms of the yaw-rate ^^and lateral acceleration ^^according toA small body slip angle ^ may be defined as a ratio between the lateral and longitudinal speed of the vehicle 100, i.e. as ^ = ^^ / ^^. If the longitudinal acceleration ^^is assumed to be small (e.g., if assuming a constant longitudinal speed ^^), the above equation (16) may be rewritten in terms of the body slip angle asFrom this equation, an expression for the first time-derivative of the body slip angle may thus be derived asThe lateral force ^^^acting on a tire may depend on the lateral slip angle and tire cornering stiffness of the respective axles / tire. Assuming that the tires behave linear in accordance with equation (10), lateral slip angles ^^and ^^for the front and rear, respectively, wheels 111a and 111b of the bicycle model may be approximated asandA total lateral force acting on the vehicle 100 may then be summarized asDocket No.: P2023-0401WO01 16
[0058] If using this definition for the total lateral force in the expression for ^̇ provided in equation (18), the first time-derivative of the body slip angle may be redefined as
[0059] A first time-derivative of the yaw-rate may be found from Newton’s second law for rotational bodies, namelywhere ^^^is the vehicle’s moment of inertia around the vertical z-axis (assumed to coincide with the vehicle’s COG 160), where ^^is the yaw-moment, and where ^^^and ^^^are the lateral force on the front and rear wheel 111a and 11b, respectively. After rearranging this equation and inserting the expression for the total lateral forces provided in equation (21), an expression for the time-derivative of the yaw-rate may be obtained as)
[0060] If the lateral forces on the vehicle 100 are large enough, the generated moment may cause the vehicle 100 to roll over. Such roll-over may be significantly more dangerous on heavy vehicles such as trucks, as their COG may be much further above the ground than for e.g. regular automobiles, causing the lateral forces from the tires to generate a larger moment on the vehicle. Roll-over may e.g. be categorized into at least three categories, namely tripped roll-over (caused e.g. by hitting an edge such as pavement), un-tripped roll- over (caused e.g. by sufficiently large tire forces), and transient roll-over (caused e.g. by resonating turns). Roll-over may e.g. be defined as a state in which all wheels on one side of the vehicle 100 are lifted from the round, and control of the vehicle 100 may include to make sure that such a limit is never reached. A critical value for the lateral acceleration at which the wheels on one side of the vehicle 100 starts to lift may e.g. be defined asAs a rule-of-thumb, such a critical limit for the lateral acceleration may be e.g. considered to be somewhere between 0.3g and 0.5g.
[0061] With reference to Figure 1A, it is assumed that a joint contribution of all the propulsion forces ^^^, ^^^,^^^and ^^^results in global forces ^^and ^^acting on the COGDocket No.: P2023-0401WO01 17forces ^^^, ^^^,^^^and ^^^may also act to generate a yaw-moment ^^around the COG 160, i.e. around the vertical axis ^. The resulting global forces ^^and ^^may result in longitudinal and lateral accelerations ^^and ^^of the vehicle 100, and a yaw-rate ^^of the vehicle 100 may depend on the yaw-moment ^^in accordance with ^^^^̇^= ^^, where ^^^is the moment of inertia of the vehicle 100 around the ^-axis (if assumed to coincide with the COG 160) and ^̇^is the first time-derivative of the yaw-rate ^^as described earlier herein.
[0062] The total yaw-moment ^^may be defined as ^^= ^^^+ ^^^, where ^^^is a contribution of the front wheels 110a and 110b defined asand where ^^^is a contribution of the rear wheels 110c and 110d defined as
[0063] For small steering angles ^^^ / ^,≈ ^^^ / ^≈ 0, which may simplify the above equation (26) to
[0064] From the above equations, it is obvious that not only the steering angles for the steered wheels contribute to the yaw-moment of the vehicle 100, but also the individual propulsion forces of the wheels 110a-d.
[0065] Figure 1D schematically illustrates various motion actuators of the vehicle 100. The vehicle 100 is here assumed to be electric, and there are individual electrical machines 120a-d for the wheels 110a-d. Phrased differently, there is provided an electrical machine 120a to drive the wheel 110a, another electrical machine 120b to drive the wheel 110b, another electrical machine 120c to drive the wheel 110c, and yet another electrical machine 120d to drive the wheel 110d. It should be noted that the configuration of the vehicle 100 shown in Figure 1D is only provided to illustrate one of many possible examples of how exactly the vehicle 100 may be configured in terms of number of wheels, number of electrical machines, and similar. There may, for example, be more than four wheels in total, one or more wheels may be provided on a same wheel axle and driven by a same electrical machine, all or only some of the wheels may be driven, etc. The wheels may also instead, or inDocket No.: P2023-0401WO01 18 addition, be propelled by other types of engines, such as e.g. one or more internal combustion engines (ICEs) or similar, and there may be provided one or more transmissions / gearboxes as needed. If provided, the electrical machines 120a-d may for example be induction motors / machines (IMs), permanent-magnet synchronous motors / machines (PMSMs), or a combination of such and other types of electrical machines.
[0066] Providing at least one motion actuator for each of the wheels 110a-d may allow to individually adjust the propulsion forces for the wheels 110a-d, resulting in that the yaw- moment ^^and thereby the steering of the vehicle 100 may also be controlled using the electrical machines 120a-d. This concept may be referred to as so-called “torque vectoring”, and can be utilized to optimize control of the vehicle 100 in terms of power use, tire wear, cornering speed / performance, traction control, stability control, and similar. In particular, such torque vectoring and resulting yaw-moment may be used to intentionally affect the steering of the vehicle 100, as will be described in more detail later herein. It should be noted that the use of torque vectoring introduces the possibility to more suddenly change the yaw- moment then if using only traditional steering, and that the therefrom resulting increase in lateral acceleration may affect also other aspects of the vehicle, such as a risk of roll-over or similar.
[0067] Although not shown in Figure 1D, it is also envisaged that the vehicle 100 is configured such that e.g. the front wheels 110a and 110b may be steered as indicated in Figure 1A, e.g. by changing their steering angles ^^^and ^^^(which, if using the bicycle model of Figure 1C, corresponds to changing a single steering angle ^^). This may be achieved by direct mechanical steering using a steering wheel 150, by the use of one or more steering servos configured to assist in such direct mechanical steering, or e.g. by so-called steer-by-wire in which one or more steering servos are solely responsible for steering the wheels 110a and 110b based only on electronic control signals (and without any physical connection required between the steering wheel 150 and the wheels 110a-d). Also not shown, but envisaged, is that the vehicle 100 may include one or more brakes configured to provide braking force to some or all of the wheels 110a-d. Examples of such brakes may include parking brakes, service brakes, and similar. It is also envisaged that one or more of the electrical machines 120a-d may be operated as generators in order to brake their respective wheels, either for braking of the vehicle 100 alone or e.g. as part of a system for regenerativeDocket No.: P2023-0401WO01 19 braking wherein the energy obtained from such braking is used to charge one or more traction batteries of the vehicle 100.
[0068] The electrical machines 120a-d, brakes, steering servos and similar are examples of motion actuators as envisaged herein, and used to control the motion of the vehicle by propelling, steering and / or braking the vehicle 100.
[0069] To control the operation of the electrical machines 120a-d (and also, if required, the operation of the brakes and / or steering servos), the vehicle 100 further includes a motion control system 130 which may communicate with the electrical machines 120a-d via one or more communication buses and / or direct signal lines, here illustrated by the lines 140, and / or indirectly via one or more dedicated controllers for the electrical machines 120a-d. The communication bus 140 may for example be a CAN-bus or similar. As will be described later herein, the motion control system 130 may be configured to e.g. receive a steering input from the steering wheel 150 of the vehicle 100 (such as an indication about a current steering wheel angle ^^^of the steering wheel 150), input from one or more throttle and / or brake pedals 152 of the vehicle 100, and / or input from one or more other systems such as for example a collision avoidance system, a lane keeping assistance system, an emergency braking system, an (adaptive) cruise control system, one or more cameras, lidars or other sensors, and similar, and to based thereon coordinate / control the plurality of motion actuators (including the electrical machines 120a-d). Such additional systems may of course also be integrated as part of the motion control system 130 itself.
[0070] The electrical machines 120a-d may serve to contribute to the propulsion forces for the respective wheels 110a-d, by applying torque to individually either propel or brake each wheel 110a-d. The “propulsion forces”^^^, ^^^and ^^^may of course also be affected not only by the torque applied to the wheels 110a-d by the electrical machines 120a- d, but also by e.g. a braking force applied to each wheel 110a-d from a brake, the friction between each wheel 110a-d and ground, and similar, as described earlier herein. The propulsion forces ^^^, ^^^, ^^^and ^^^thus symbolize the net forces after taking all such aspects into account.
[0071] For example, it may be assumed that the front electrical machines 120a and 120b of the vehicle 100 are PMSMs, and that the rear electrical machines 120c and 120d of the vehicle 100 are IMs. The resulting motion actuator forces of the front wheels 110a and 110b may then be summarized asDocket No.: P2023-0401WO01 20and the longitudinal motion actuator forces of the rear wheels 110c and 110d may be summarized as
[0072] with a combined motion actuator force ^^,^^^= ^^^,^^^+ ^^^,^^^. In these expressions, ^^,^^is the torque generated by the ^:th electrical machine 120a-d (^ = ^^, ^^, ^^, ^^); ^^,^^^^^is the torque generated by the ^:th brake (where such torque will have a negative sign); ^^^^^and ^^^are gear ratios for the front and rear electrical machines, respectively, and ^^is a wheel radius which is here assumed to be equal for all wheels 110a- d. For other configurations of electrical machines, brakes, etc., these expression should of course be modified accordingly.
[0073] Although electrical machines are often more responsive than e.g. their combustion engine-based counterparts, there may still be rate-of-change limits. Brakes will also have rate-of-change limits, and may usually take a longer amount of time to reach maximum braking force. Such limitations may be taken into account when calculating e.g. torques as part of a motion control process. A simple model may be defined as^^^^^^,− ^ ^̇^^^ ^^^^^^^^^^= . (30^) ^^^^^^If discretized, maximal positive and negative rates-of-change may be defined as
[0074] An example of a motion control system and controller for coordination of the motion actuators (such as the motion control system 130 responsible for coordinating theDocket No.: P2023-0401WO01 21 electrical machines 110a-d) will now be described in more detail with reference also to Figure 2.
[0075] With reference to Figure 2, a motion control system 200 includes a higher-level controller 210 which is configured to receive a reference 222 including one or more requests of e.g. a yaw-rate ^^or longitudinal acceleration ^^. The reference 222 may e.g. be provided to the higher-level controller 210 from an interpreter (or reference generator) 220 that may be configured to decide e.g. the yaw-rate and / or acceleration to be requested based on one or more signals 224 indicative of for example a current steering wheel angle ^^^of the steering wheel 150 of the vehicle 100, a current position of the throttle and / or brake pedals 152 of the vehicle 100. The higher-level controller 210 receives the reference 222 and converts it into one or more requested global forces ^ for the vehicle 100 as a whole, such as e.g. requests for particular longitudinal and lateral forces ^^and ^^, and / or a particular yaw-moment ^^.
[0076] The motion control system 200 further includes a lower-level controller 230 which receives the one or more requested global forces ^ as part of a signal 212 and converts these into one or more control inputs ^ for one or more motion actuators 240 of the vehicle (such as the electrical machines 120a-d of the vehicle 100). The control inputs ^ are sent as part of a signal 232, either directly to the motion actuators 240 or to an intermediate dedicated motion actuator controller (not shown).
[0077] Feedback about a current state of the vehicle is provided in a signal 250, and may be received by for example the lower-level controller 230 and / or the higher-level controller 210, and / or the reference generator 220. The signal 250 may for example include current actuator limitations ^^^^and ^^^^, or at least include enough information about the motion actuators 240 such that such actuator limitations may be derived from the signal 250 by e.g. the lower-level controller 230 and / or the higher-level controller 210. For example, it may be envisaged that the lower-level controller 230 includes a limit determination module (not shown) configured to determine such actuator limitations. Such a limit determination module may also be capable of determining what global force requests ^ that are currently feasible to generate based on the current actuator limitations ^^^^and ^^^^. If determined within the lower-level controller 230, such limitations and feasibility ranges may be provided to e.g. the higher-level controller 210 as part of a signal 234. In other example, the motion actuators 240 may provide their limitations directly to the lower-level controller 230 as part of a signal 242, or output such limitations as part of the vehicle status signal 250. In other examples, it mayDocket No.: P2023-0401WO01 22 be a task of the higher-level controller 210 to calculate the feasible global force requests based on e.g. the limitations of the motion actuators 240 received via the signal 250. In general, it is not important exactly where each of the feasibility range and / or actuator limitations are generated / calculated, as long as the info is in some way provided to where it is needed. The vehicle status signal 250 may also include information about a current velocity and / or speed of the vehicle 100, estimated or measured tire loads / forces, values indicative of a current acceleration of the vehicle 100, and similar.
[0078] As used herein, the output 232 (^) from the lower-level controller 230 is a control “input” in the sense that it is to be used as an input to the motion actuators 240. The output 212 from the higher-level controller 210 may also be referred to as a “virtual control input” to the lower-level controller 230, where the term “virtual” is used to indicate that the lower- level controller 230 is not capable of generating any actuator forces on its own, but rather serves as a coordinator between the higher-level controller 210 and the motion actuators 240.
[0079] As there are usually a greater number of motion actuators 240 than requested global forces ^, the system is over-actuated and the lower-level controller 230 is faced with solving an underdetermined system of equations, as there may be multiple different control inputs to the motion actuators 240 which may result in a same resulting global force ^. The lower-level controller 230 is therefore required to solve some form of optimization problem in order to decide upon one suitable control input ^ based on some particular optimization strategy. Such an optimization problem may be referred to as a control allocation problem for coordinating the plurality of motion actuators 240.
[0080] More formalized, the lower-level controller 230 receives the requested global force vector ^, e.g. ^ = [^^, ^^, ^^], and finds an optimal control input ^ to the motion actuators 240, where the control input ^ may for example include a set of torque and / or steering angle requests. For example, for the vehicle 100, the control input ^ may be ^ = [^^^, ^^^, ^^^, ^^^, ^^^, ^^^], where ^^^ / ^and ^^^ / ^are requested torques to be provided by the front-left and front-right electrical machines 120a and 120b and the rear-left and rear-right electrical machines 120c and 120d, respectively, and where ^^^and ^^^are the requested steering angles for the front wheels 110a and 110b as shown in Figures 1A-1D. The vector ^ may of course also include, in addition or instead, e.g. various brake forces / torques to be applied by one or more brakes, and similar, and the requested torques may e.g. also be braking torques in case of electrical machines capable of also acting as generators.Docket No.: P2023-0401WO01 23
[0081] The optimization (or control allocation) problem solved by the lower-level controller 230 may be formulated as sequential least-squares problem ^ = arg m^in ^^^^^^ − ^^^^^^ ∶ ^ ∈ arg ^^^^^ m^i^n^^^^‖^^(^^ − ^)‖^ ,(31)where ^^^^is a preferred control input, ^^and ^^are (positive definite) weighting matrices, ^ is a control effectiveness matrix, and ^^^^and ^^^^represent the capabilities of the motion actuators 240. The control effectiveness matrix ^ defines how the contribution from each motion actuator 240 contributes to the overall global force ^ of the vehicle 100 as a whole, and ^^ thus represents a joint contribution of all motion actuators to the global force ^. Equation (31) may thus be considered to represent simultaneously attempting to meet two goals in order to find ^, where a first goal is that ^ should be as close to ^^^^as possible, and where a second goal is that ^^ should be as close to ^ as possible while at the same time respecting the capabilities ^^^^and ^^^^of the actuators. The matrix ^^sets the relative priorities of the preferred control input(s) ^^^^, and the matrix ^^sets the relative priorities of the global force(s) and moment(s).
[0082] Solving the problem defined in equation (31) is often not tractable, and in particular not in real-time. For this reason, the lower-level controller 230 may instead resort to solving a weighted least-squares optimization problem defined as ^ = argwhere ^ is a weighting factor, such that if ^ → ∞, the solution of the weighted least-squares problem of equation (47) approaches the solution of the sequential least-squares problem of equation (31).
[0083] By expanding the terms in the cost function in equation (32), i.e.‖^ ^ ^(^^ − ^)‖^= ^^^^^^^^^^^ − 2^^^^^^^^^ + ^^, (34) and neglecting the constantsand ^^, the optimization problem may be rewritten on quadratic programming (QP) form: ^ = arg^^ = ^,Docket No.: P2023-0401WO01 24 where ^ = 2(^^^^^+ ^^^^^^^^^),(36)^^= −2^^ ^ ^^^^^^^^+ ^^^^^^^^^.(37)
[0084] Further additional requirements may be added to make sure that any requested global force ^ provided to the lower-level controller (e.g., control allocator) 230 is actually feasible, i.e. by requiring that the ^ provided to the lower-level controller 230 from the higher-level controller 210 lies between the maximum and minimum values of ^^ that are possible to generate without exceeding the capabilities ^^^^and ^^^^of the actuators. Phrased differently, to guarantee feasibility of ^, it may be required that ^^^^m ^^i^n ^ ^^ ≤ ^ ≤ ma ^^^^^^^^^^x^^^^^^ . (38)As a result, the equality-constraint ^^ = ^ guarantees that any solution to the QP problem (35) is such that the resulting joint contribution ^^ of the plurality of motion actuators matches the requested global force ^, and that only such requests ^ that are feasible are accepted as input to the lower-level controller 230. Checking that the condition (38) is fulfilled before a requested ^ is sent to the lower-level controller / control actuator 230 may e.g. be the responsibility of the higher-level controller 210, and information about the control effectiveness matrix ^ and the capabilities ^^^^and ^^^^of the plurality of motion actuators 240 may be provided to the higher-level controller 210 for this purpose, e.g. from the lower- level controller 230, from the plurality of motion actuators 240, and / or from some other unit of the motion control system 200, e.g. as part of the vehicle status signal 250.
[0085] A QP problem such as defined in equation (35) may be solved using contemporary available solvers, such as for example one or more of interior-point (IP) methods, active-set (AS) methods, alternating direction method of multipliers (ADMM) methods, and similar. The outcome ^ may be an approximate solution to such a problem which do not necessarily need to correspond to an actual optimum, as the degree of accuracy and / or convergence required may be dependent on e.g. an expected accuracy of various sensor signals, an expected accuracy of the actuators themselves, and e.g. on various minor control imperfections in the use case.
[0086] The lower-level controller 230 may also be configured to find the control input ^ for the motion actuators 240 by solving an optimization problem defined as ^ = arg m ^in^^^^^(^) (39)Docket No.: P2023-0401WO01 25Here, ^^^^^(^) may be a function which returns an estimated / calculated power loss of the electrical machines as a function of e.g. motor speed and torque, and the controller 230 thus attempts to find a control input ^ for the electrical machines which minimizes such power loss. Power loss may be defined as the losses that occur in an electrical machine / motor due to heat dissipation. Phrased differently, the power loss may represent the energy provided to the motion actuators that does not contribute to the output of the motion actuators 240, such as to the output of e.g. one or more electrical machines 120a-d. To estimate such losses may include taking into account copper, iron and windage losses, and similar. Estimation of power loss may further require a mapping of each electrical machine’s power loss. Such a mapping may include a combination of motor speed and motor torque to instantaneous power loss, rendering a three-dimensional surface of data points representing the power loss for each combination of speed and torque. Attempting to minimize power loss may be particularly advantageous if the vehicle 100 is equipped with electrical machines of different character, such as a mix of both IMs and PMSMs. For example, IMs may be more efficient at lower speed and higher torque, while PMSMs may be more efficient at higher speed and lower torque
[0087] In case power loss is considered when finding the optimal ^, using a discrete map for the power loss characteristics may not be computationally effective as the map may be considered as a group of discrete points. As a solution to this problem, interpolation may be used. For example, based on discrete data points obtained during e.g. lab experiments, a second degree polynomial may be fitted to the torque values and power loss values the create a function more suitable for a minimization problem. For example, the power loss as a function of torque and speed may be defined as ^^^^^= ^^^ + ^^ + ^,(40)where ^ is wheel torque and at least the coefficients ^ and ^ depend on wheel speed and motor torque. If expressed on QP form, the second-degree coefficient ^ may be included as part of the ^-matrix, while the first-degree coefficient ^ may be included as part of ^^. The constant ^ may represent static losses of the electrical machines which do not depend on applied torque, and may in this example be disregarded and not included as part of the QP problem.Docket No.: P2023-0401WO01 26
[0088] As an example, it is envisaged herein that the front electrical machines 110a and 110b of the vehicle 100 may be PMSMs, and that the rear electrical machines 110c and 110d of the vehicle 100 may be IMs. It may further be assumed that the vehicle 100 also has one or more wheel brakes. The ^-matrix may then be formulated aswhere the second-degree constants ^^^^, ^^^^^and ^^^are for the brakes, PMSMs and IMs, respectively. The term ^^may be formulated as ^^=[−|^^^^^^| ^^^^^^^^],where ^^^^^^is the wheel rotational speed, and ^^^^^and ^^^are the first-order coefficients for the PMSMs and IMs, respectively.
[0089] To enforce the equality-constraint ^^ = ^, knowledge about the control effectiveness matrix ^ is also needed. By considering the vehicle 100 as illustrated in Figures 1A-1D, it may be assumed thatwhere ^^is the radius of each of the wheels 110a-d; ^^^^^and ^^^is the gear ratio for the electrical machines 120a-b and 120c-d, respectively; and ^^and ^^is the front and rear track- width, respectively, as described earlier herein with reference to Figures 1A-D.
[0090] When controlling the vehicle 100 when e.g. cornering, it may be preferable to attempt to maintain a steady-state yaw rate ^^to avoid the driver having to e.g. adjust the steering wheel 150 back and forth to keep the vehicle 100 steady on the road. Phrased differently, maintaining a steady-state yaw-rate would result in minimal required steering wheel angle compensation from the driver. This may be particularly useful in emergency situations, wherein the fine motoric skills of the driver may diminish due to increased stress- levels, and wherein being able to just e.g. depress the brake pedal and hold to steering wheel steady in order to stop the vehicle is desired. For this purpose, satisfying control of the vehicle’s yaw-rate may be desirable, and torque vectoring may be used for this purpose. In an ideal case, the vehicle 100 would follow the steady-state yaw-rate at all times, resulting in minimal steering angle compensation from the driver. As the vehicle 100 brakes, theDocket No.: P2023-0401WO01 27 requested steering angle would preferably decrease e.g. linearly or almost linearly with time. Such a behavior is desirable as it makes the handling of the vehicle 100 more predictable.
[0091] Whether the vehicle 100 is oversteered or understeered may be determined by a steering gradient ^^(also referred to as an understeer coefficient), given bywhere ^ = ^^+ ^^. The understeer coefficient ^^may be assumed to affect the steering angle required to achieve a certain turning radius ^, in accordance with
[0092] A positive understeer coefficient thus results in a larger steering angle as the speed increase for a set turning radius ^. Phrased differently, if ^^is positive, the vehicle 100 is understeered, and if ^^is instead negative, the vehicle 100 is considered as being oversteered. Normally, to avoid instabilities during the control of the vehicle 100, the vehicle 100 is preferably configured such that its understeer coefficient ^^is at least slightly negative. With the use of torque vectoring as described earlier herein, the vehicles yaw-rate ^^may be influenced by individually controlling the electrical machines 120a-d, thus creating an “artificial” steering gradient. A reference (steady-state) yaw-rate may e.g. be defined aswherein ^^is the understeer coefficient introduced above. The reference yaw-rate may e.g. be generated and provided by the reference generator 220.
[0093] As mentioned earlier herein, a task of the higher-level 210 controller may be to construct a suitable vector ^ to be sent to the lower-level controller 230, and to also make sure that any such vector ^ is actually feasible (i.e., it satisfies the requirements of equation (38)). This may e.g. be done by first constructing the control action ^ and then saturate it, or by implementing the higher-level controller 210 as a controller that is capable of handle constraints as part of the control calculation.
[0094] The higher-level controller 210 may e.g. be implemented as a proportional- integral-derivative (PID) controller, a linear-quadratic regulator (LQR) with linear-quadratic-Docket No.: P2023-0401WO01 28 integral (LQI) control, a LQR with a linear-parameter-varying (LPV) model, or e.g. with the use of model-predictive control (MPC).
[0095] In what follows, it is assumed that the higher-level controller 210 is implemented using MPC. To take into account longitudinal force (acceleration), longitudinal velocity and yaw-moment, an expanded state-space model may be defined aswhere ^^is the longitudinal velocity, ^^is the yaw-rate, and ^ is the body slip angle (that may e.g. be estimated (if small) as ^ = ^^ / ^^, where ^^and ^^is the longitudinal and lateral speed, respectively, of the vehicle 100. The first time-derivatives of ^ and ^^may be defined as in equations (22) and (24), and that of ^^may be defined as
[0096] While the changes in velocity and yaw-rate are often trivial to measure, calculating how the acceleration changes over time for the purpose of implementing a time- horizon (as used in MPC) may however be difficult. Because of this, the derivatives themselves may be approximated using e.g. Newton’s method. If assuming that the model in equation (46) has already been discretized as ^[^ + 1]a current rate of change of for example the longitudinal velocity ^^(i.e., the acceleration ^^) may be approximated aswhere ^^,^^^is a sampling time of the MPC controller. A loop time for each time-horizon step may be used, as the difference between one iteration and the next may need to be converted to use a continuous time derivative. A same principle may apply also for how the yaw-rate changes over time.
[0097] Taking the above into account, and returning back to the state equation (46), the matrices ^^, ^^, ^^and ^^may be defined asDocket No.: P2023-0401WO01 29andIn the above, as described earlier herein, ^ is air-density, ^^is the drag coefficient, ^^is the (projected) vehicle frontal area, ^^is the coefficient of rolling-resistance, and ^^is a vertical load on the tires. The upper and lower parts ^^^and ^^^of the matrix ^^may be defined as −1 ^ ^^^^= ^0^^ 55^,^^^^^,^^^0 ( )andwhere the lower part ^^^needs to be discretized.
[0098] As a next step of the MPC procedure, these matrices may be fed into a receding horizon controller formulated as a quadratic minimization problem 1 min ^^^^ +^^ ^ ^ 57 2( )Docket No.: P2023-0401WO01 30 s.t. ^^^^ = ^^^where H and ^ are weighting matrices for the controller; where ^^^and ^^^represent the state space model and ensures that the model follows the state space structure; and where ^^^and ^^^represent inequality constraints, such as e.g. a friction circle and the limitations / capabilities of the motion actuators. Here, ^ represents a set of states ^[^] from sample time ^ = 1 to ^ = ^, followed by a set of optimal control actions ^[t] from sample time ^ = 0 to ^ = ^ − 1, where ^ is an integer representing the number of samples in the prediction-horizon, i.e.where ^[0] is the sought-after control action output from the MPC which is to be fed as the requested global force(s) ^ to the lower-level controller 230.
[0099] In the context of MPC, ^^^and ^^^represents the state space model and ensures that ^ follows the laws set by the model. The evolution of the states in ^^^and ^^^may follow a standard state space structure of the formAssuming no disturbance in the model and a setpoint at zero, ^^^and ^^^may be defined as a set of matrices / vectors which describes the model equation for each timestep across the horizon, e.g.
[0100] Knowing the structure of ^, the inequality-constraints may be summarized as e.g. -a maximum longitudinal force per tire (see e.g. equation (8));Docket No.: P2023-0401WO01 31 - hard actuator limits ^^^^and ^^^^; - roll-over lateral acceleration limits (see e.g. equation (25)); - actuator rate-of-change limits (see eqns. (30a-f)); - state limits, such as e.g. maximum yaw-rate error. Negative limits, such as the maximum negative torque, may be multiplied with -1 to fit the inequality criteria.
[0101] As MPC only uses quadratic minimization, ^ is zero. The matrix ^ is a diagonal matrix with the state and control output weights for the different time instances from 0 to ^. Using ^ to represent state weight and ^ for control weight, the matrix ^ may be written aswhere
[0102] To follow a driver’s request, the matrices may be modified to account for reference tracking and disturbances. For example, the input ^ in the array ^ maybe replaced with an error between the current states and the desired states, e.g.where ^^^^is e.g. provided as part of the reference signal 222 sent to the higher-level (MPC) controller 210 from the reference generator 220, and wherein ^^,^^^, ^^^^^and ^^^^^is a reference longitudinal global force, reference longitudinal velocity and reference yaw-rate, respectively. The discrete state space equation may then be rewritten asor, after adding disturbance matrices ^ and ^, asDocket No.: P2023-0401WO01 32
[0103] The state equations may be reformulated, to fit the syntax for ^^^and ^^^, asThe equality array ^^^may then be expressed aswhere ^^[0] may be fed into the QP problem as the current error. The array ^ no longer describes the states and control action, but rather the error and control action,
[0104] In the equations above, the reference tracking performed in the higher-level (MPC) controller 210 is static, i.e. based on an assumption that the reference signal 222does not change over the time-horizon. To provide a more agile reference tracking, it may e.g. be assumed that the yaw-rate reference ^^^^^will change with time, and this may be implemented by update the steering angle ^^across the horizon by e.g. Taylor-expanding the signal, using derivatives to predict future reference values. For example, a predicted steering angle ^^,^^^^may be expressed aswhere ^^is the current time step. The derivatives of the steering angle may e.g. be found using a Savitzky-Golay filter, which fits a polynomial to a specified amount of datapoints using least-squares minimization. For the more agile reference tracking, the error term may be expressed asDocket No.: P2023-0401WO01 33where ^^^^is now a vector of length ^ (same as the prediction horizon). Such a method may be used to generate dynamic reference points for yaw-rate and velocity as well.
[0105] As a further improvement to the above described MPC-strategy, the inequality constraint of the QP problem solved by the higher-level controller 210 may be modified by introducing a slack variable / vector ^, resulting in a change of the inequality constraint to ^^^^ − ^ ≤ ^^^.(71)
[0106] How to select the slack variable ^ may be decided by the solver, as it does not affect the physics of the problem. It may however be advantageous to prevent selecting a larger slack variable, as the computational cost resulting therefrom may become large. The higher-level controller 210 may instead attempt to keep the slack variable ^ as close to zero as possible, only increasing it when / if the inequality constraint is violated or about to be violated. Implementation of the slack variable ^ may be performed in the QP problem, as long as e.g. the array ^ is extended accordingly, e.g.while e.g. the equality matrix ^^^(which is not relevant to the slack variable ^) may be extended with zeros to match the matrix dimensions. The inequality matrix ^^^may be extended to allow the slack variable to reduce the output to an acceptable level, e.g. asOne slack variable may handle one constraint, and multiple slack variables may be added to handle multiple constraints, at the expense of an increased computational cost.Docket No.: P2023-0401WO01 34
[0107] How the above-presented motion control system 200 and the MPC-strategy may be improved in accordance with the present disclosure will now be described with reference also to Figure 3.
[0108] Using the output ^ from the higher-level controller 210 as an equality constraint in the control allocation problem solved by the lower-level controller 230 (that is, ^^ = ^) may ensure that e.g. the requested global forces / accelerations and / or yaw-moments are met. As the inventors have realized, it is however not always necessary to maintain such strict conditions. For example, during normal driving-conditions for the vehicle 100, it may not be necessary to provide exactly the requested yaw-rate and / or velocity. Instead, the present disclosure proposes to relax the constraint ^^ = ^ in order to allow for the lower-level controller 230 to have more freedom when e.g. attempting to minimize power loss. A proposed change is therefore to replace the equality constraint ^^ = ^ with a more relaxed constraint on the form ^^^^≤ ^^ ≤ ^^^^,where the lower and upper bounds ^^^^and ^^^^define an interval over which the output (i.e., control input ^) from the lower-level controller is allowed to vary. As an example, one may define the lower and upper bounds of the global force(s) asandwhere ^^,^^^ / ^^^, ^^.^^^ / ^^^and ^^,^^^ / ^^^are lower / upper bounds for the global longitudinal force ^^, the global lateral force ^^, and the yaw-moment of the vehicle 100, respectively.
[0109] Figure 3 schematically illustrates an example of an improved motion control system 300 as envisaged herein. In contrast to the motion control system 200 described with reference to Figure 2, the motion control system 300 includes both a first higher-level controller 310 and a second higher-level controller 320. The first higher-level controller 310 is responsible for providing the lower bound ^^^^, which is sent to a lower-level controller 330 as part of a signal 312. The second higher-level controller is responsible for providing the upper bound ^^^^, which is sent to the lower-level controller 330 as part of a signal 322.Docket No.: P2023-0401WO01 35
[0110] The lower-level controller 330 is configured to receive the lower and upper bounds ^^^^and ^^^^, and to solve a control allocation problem as described earlier herein but where the equality-constraint ^^ = ^ is replaced with a more relaxed (inequality-)constraint ^^^^≤ ^^ ≤ ^^^^.
[0111] To implement such a more relaxed constraint, a QP problem solved by the improved lower-level controller 330 may be defined as ^ = args.t. ^^^^≤ ^ ≤ ^^^^^^^= [^; −^]. Such an inequality-constrained optimization problem may for example be handled using an Interior- point method, including the use of e.g. a slack variable and suitable barrier function. For example, a slack variable ^ may be used in accordance with ^^^^− ^^^^ − ^ = 0, with the new requirement that ^ ≥ 0.
[0112] It should be noted that this is not the same as imposing restrictions on which global force-requests ^ that are sent to the lower-level controller 230 of the system 200 in terms of feasibility, e.g. as described earlier herein with reference to equation (38). Although the higher-level controller 230 may choose from a restricted set of feasible requested global forces ^, the lower-level controller 230 still receives a single requested global force vector ^ which is then used to implement the equality-constraint ^^ = ^. In the envisaged improved motion control system 300, the lower-level controller 330 is instead provided with not one ^ but instead two requested global force vectors ^^^^and ^^^^, and is free to find any solution ^ which controls a plurality of motion actuators 340 in a way such that the expected (based on some model of the vehicle) resulting, joint combination of forces from the motion actuators 340 is a global force (or moment) for the vehicle 100 that is somewhere in between (optionally also including) the lower and upper bounds ^^^^and ^^^^. Phrased differently, the proposed improved motion control system 300 is not about feasibility, but rather about providing an increased flexibility for the lower-level controller 330 for e.g. power loss minimization during normal driving-conditions / -situations of the vehicle 100. The resulting control input ^ is then sent by the lower-level controller 330 to the motion actuators 340Docket No.: P2023-0401WO01 36 (either directly as indicated in Figure 3, or e.g. indirectly via one or more additional, intermediate controllers; not shown), as part of a signal 332.
[0113] Just as for the system 200, a vehicle status signal 350 is provided to transfer information about a current state of the vehicle 100 to the various modules. As described earlier herein, the signal 350 may e.g. include limitations ^^^^and ^^^^for the plurality of motion actuators 340, or at least information sufficient to derive such limitations in e.g. one or both of the higher-level and lower-level controllers 310, 320 and 330.
[0114] Although describing herein the higher-level controllers 310 and 320 as separate controllers, it is of course also envisaged that they may both be provided as part of a single higher-level controller, as long as such controller is capable of outputting both of the lower and upper bounds ^^^^and ^^^^to the lower-level controller 330. In yet other examples, the controllers 310 and 320 may be optional, and it is envisaged that the lower-level controller 330 may on its own derive the lower and upper bounds ^^^^and ^^^^based on e.g. information obtained from the vehicle status signal 350.
[0115] The lower-level controller 330 may optionally also receive information directly from the motion actuators 340, including e.g. information about the limitations ^^^^and ^^^^of the motion actuators 340 or similar, for example as part of a signal 342. The lower- level controller 330 may optionally also provide estimates of which requested global forces that are feasible and provide these to the higher-level controllers 310 and 320, as part of e.g. one or more signals 334. In other examples, the higher-level controllers 310 and 320 may instead be capable of estimating the feasible global forces to request from the lower-level controller 330 on their own, based on e.g. information provided in the vehicle status signal 350. In some examples, it is envisaged that the various signals exchanged between the various modules / units of the motion control system 300 may be sent using dedicated signal lines, or by using one or more communication buses (such as a CAN-bus) that is common to all such modules / units.
[0116] In some examples of the motion control system 300, there may also be provided a first reference generator 360 and a second reference generator 370, each configured to generate a respective first and second set of one or more references which are sent to the higher-level controllers 310 and 320 as part of signals 362 and 372, respectively. The first higher-level controller 310 is configured to use the set of one or more references received in the signal 362 to generate the lower bound ^^^^, and the second higher-level controller 320 isDocket No.: P2023-0401WO01 37 likewise configured to use the set of one or more references received in the signal 372 to generate the upper bound ^^^^, before sending the lower and upper bounds ^^^^and ^^^^to the lower-level controller 330 as part of the signals 312 and 322, respectively. In other examples of the envisaged motion control system 300, the first and second reference generators 360 and 370 may be optional, and e.g. one or more of the higher-level controllers 310 and 320 and the lower-level controller 330 may be configured to generate such references on their own.
[0117] The first and second reference generators 360 and 370, if included, may be configured to receive information from the driver and / or one or more automated driver assistance systems, and to based thereon anticipate suitable references that are to be provided to the higher-level controllers 310 and 320. For example, the first and second reference generators 360 and 370 may each be configured to receive one or more signals 380, including e.g. information indicative of a current steering wheel angle ^^^of a steering wheel 152 of the vehicle 100, a position of a throttle and / or brake pedal 152 of the vehicle 100, or similar, just as described earlier herein with reference to the system 200 shown in Figure 2. Such one or more signals 380 may of course also be provided to the first and second higher-level controllers 310 and 320, e.g. in if first and second reference generators 360 and 370 are not available and it is up to the first and second higher-level controllers 310 and 320 to e.g. define the references that will be used to generate the lower and upper bounds ^^^^and ^^^^.
[0118] The set of one or more references 362 and 372 sent to the first and second higher- level controllers 310 and 320 may be different, and generated based on different assumptions about an anticipated driving style of the driver of the vehicle 100. For example, the first reference generator 360 may assume a first anticipated driving style, and the second reference generator 370 may assume as second anticipated driving style different from the first anticipated driving style. For example, the first anticipated driving style may be more relaxed / less aggressive then the second anticipated driving style.
[0119] As envisaged herein, one or both of the first and second higher-level controllers 310 and 320 may implement MPC such as described earlier herein, but with separate reference signals in order to generate different outputs ^ = ^[0]. For example, ^[0] of the first higher-level controller 310 may be used as ^^^^, and ^[0] of the second higher-level controller 320 may be used as ^^^^.Docket No.: P2023-0401WO01 38
[0120] As an example of how different reference signals may be used to generate the lower and upper bounds ^^^^and ^^^^, it may be assumed that different understeer characteristics are assumed and that different yaw-rate requests / references are thus provided to the respective higher-level controllers 310 and 320. For example, a minimum yaw-rate reference may be defined asand a maximum yaw-rate reference may be defined aswhere ^^,^^^ / ^^^are minimum and maximum understeer coefficients. Here, ^^,^^^,^^^may correspond to a more relaxed steering and driving style, while ^^,^^^,^^^may correspond to a more aggressive steering and driving style. The value of ^^is usually constant and based on vehicle parameters. With the improved motion control system 300, it is however possible to use a desired ^^which is the parameter to be determined.
[0121] Although using e.g. two MPC controllers instead of a single one may double the computations required, the two higher-level controllers 310 and 320 (or whatever computational circuitry used to implement the functionality of such controllers) may operate in parallel, such that the time required for each time step remains approximately the same. To take into account the relaxed and aggressive driving styles, the inequality array / vector ^^^may be changed to ensure that the more aggressive controller will not go above ^^,^^^,^^^, and such that the more relaxed controller will not go below ^^,^^^,^^^.
[0122] Implementation of the inequality constraint ^^^^ ≤ ^^^(or ^^^^ − ^ ≤ ^^^, if using a slack variable), may depend on what conditions and constraints that are considered. For example, to constrain the longitudinal forces acting on the tires, one part of the array ^^^may include components for minimum and maximum allowed such forces for each time instance within the horizon. Separate components may be provided for friction forces and for actuator forces (such as actuator torque generated by electrical machines and / or brakes). As such components define maximum positive and negative lateral forces on the wheels, the may also be combined into ^^^^and ^^^^.Docket No.: P2023-0401WO01 39
[0123] The maximum allowed error for the states may also be provided as components in the array ^^^, wherein one component is provided for each time step until the horizon and for each of the state vector components, e.g. ^̇^, ^^̇, ^^, ^^, ^.
[0124] If assuming small body slip, e.g. such that the lateral velocity ^^is low, the roll- over lateral acceleration may be modelled as an inequality constraint, e.g.where ^^^is the initial reference velocity in the longitudinal direction of the vehicle 100.
[0125] The actuator rate-of-change limits may depend both on the current and e.g. the previous time step. For one step, a rate-of-change may e.g. be formulated as an inequality constraint as ^[^ + 1]− ^[^]≤ ^^,^^^Δ^^^^,^^^^^,(80)where ^^,^^^a time step for the MPC, and ΔT^^^,^^^^^a maximum rate-of-change for the torque applied to a wheel. It may also be assumed that for electrical machines in particular, the dynamics of the electrical machines may be so much faster than that of e.g. brakes that it may be ignored.
[0126] Further details about how exactly to implement the inequality constraints for the MPC-controllers will not be elaborated further on herein, as the conditions would differ depending on which variables the skilled person choses to focus on. The main focus of the present disclosure is not exactly how to generate the various references to the higher-level controllers 310 and 320, but that the higher-level controllers 310 and 320 are capable of generating lower and upper bounds for the requested global force(s) provided to the lower- level controller 330, and in particular that the lower-level controller is not required to meet a specific requested global force but instead allowed to instead focus on other optimization (such as that of power loss) as long as the resulting control output is expected to generate the global force(s) which lies / lie within the lower and upper bounds.
[0127] An additional advantage of the improved motion control system is that in a situation in which the severity of a driving situation of the vehicle 100 increases (such as during an emergency situation), the lower and upper bounds on the global force(s) may be brought closer to each other and even be made to converge. Thus, in e.g. an emergency situation, the motion control system 300 (and the lower-level controller 330 in particular) may stop focusing on power loss minimization and instead switch to a strict following of e.g.Docket No.: P2023-0401WO01 40 a driver request or similar. After the emergency situation is over, the lower and upper bounds may be allowed to diverge again, and the lower-level controller 330 may return to put more attention on power loss minimization than strict following of a single requested global force vector. As envisaged herein, bringing the lower and upper bounds closer together during an emergency situation may e.g. be implemented as part of the inequality constraints for the higher-level controllers 310 and 320. For example, in case of e.g. an imminent roll-over or a losing of grip, the constraints in the controller such as e.g. friction limits (^^^) and / or maximum lateral forces (^^) may activate, and e.g. either make the more relaxed controller more aggressive in order to clear a curve, or e.g. by reducing an output of the more aggressive controller to avoid roll-over.
[0128] In particular, it is envisaged herein that bringing the lower and upper bounds ^^^^and ^^^^of the global forces closer together during a situation of increased severity may be performed by providing the first and second higher-level controllers 310 and 320 with different references signals / values for a particular variable (such as e.g. yaw-rate) but with same (or at least sufficiently similar) constraints for that variable. Thus, in a situation of increased severity (e.g., in a situation where a constraint for a particular variable is challenged and about to be violated), the higher-level controllers 310 and 320 may shift their focus from trying to follow a particular reference signal, and instead focus on attempting to keep the variable in question within the constraints for that variable. This may thus force both higher-level controllers to output respective lower and upper bounds ^^^^and ^^^^that are equal (or almost equal), which in turn will have the effect that the lower-level controller 330 starts operating as if it had only a single requested global force (vector) to meet (that is, the lower-level controller 330 moves from operating based on the more relaxed constraint ^^^^≤ ^^ ≤ ^^^^towards the equality-constraint ^ = ^^^^= ^^^^= ^^).
[0129] As an example, during normal driving situations, each of the two higher-level controllers 310 and 320 may attempt to balance yaw-rate and longitudinal acceleration. If hard-braking in a curve, a driver may request a significant negative longitudinal acceleration ^^, which may impede an ability to maintain a steady yaw rate ^^. At the same time, the additional longitudinal forces may reduce the lateral forces due to e.g. combined slip. A constraint for the allowed yaw-rate ^^,^^^,^^^will be the same for both higher-level controllers 310 and 320, and may be implemented as a substantial cost for exceeding ^^,^^^,^^^. If focusing only on the longitudinal acceleration ^^and the yaw-rate ^^, bothDocket No.: P2023-0401WO01 41 higher-level controllers 310 and 320 may e.g. be provided with a same reference ^^,^^^for the longitudinal acceleration ^^, but with different references ^^,^^^,^^^and ^^,^^^,^^^, respectively. If, for the sake of illustrating the concept of converging lower and upper boundsignoring everything in the QP-problem not related to ^^and ^^, a QP- problem faced by the first higher-level controller 310 may be formulated asand a corresponding QP-problem faced by the second higher-level controller 320 as 1 min ^ 2In the above,^^^− ^^,^^^,^^^ / ^^^; ^^− ^^,^^^^= ^ for the first / second higher-level controller 310 and 320, and ^^^^_^^and ^^^^_^^are weighting-factors (costs) indicating the importance of meeting the reference for ^^and ^^, respectively. In the event that the constraint ^^,^^^,^^^is met, the weighting-factor / cost ^^^^_^^may no longer be important, as the constraint for the yaw-rate may put an “infinite” cost on the yaw-rate to ensure that the constraint ^^≤ ^^,^^^,^^^is not violated. As this constraint is the same for both higher-level controllers 310 and 320, the higher-level controllers 310 and 320 will then both move towards a single QP-problem of the form 1 min 2s.t. ^^≤ ^^,^^^,^^^, resulting in a convergence of ^^^^and ^^^^as both higher-level controllers 310 and 320 are now solving a same problem. It should be highlighted that the above formulation of the QP- problems for the higher-level controllers 310 and 320 are only “pseudo”-correct, as all constraints and weighting functions / costs may remain active in all situations. The above formulation does, however, serve to illustrate how convergence of ^^^^and ^^^^may be achieved, and applies also for other types of constraints (such as for rollover, actuator limits, and similar). In summary, even if the targets / references for the first and second higher-level controllers 310 and 320 may be different, the constraints may be the same for both higher- level controllers 310 and 320, and constraints may take priority over targets / references. If one or more constraints are about to be violated due to an increased severity of the current drivingDocket No.: P2023-0401WO01 42 situation of the vehicle 100, both higher-level controllers 310 and 320 may change focus to a same goal, thus converging the lower and upper bounds ^^^^and ^^^^.
[0130] An example of a validation-test to assess the capability of the proposed improved motion control system 300 will now be described in more detail with reference also to Figures 4A and 4B.s
[0131] Figure 4A shows a plot 400 of a curve 401 illustrating a minimum acceptable yaw-rate, a curve 402 illustrating a maximum acceptable yaw-rate, and a curve 403 illustrating an actual yaw-rate as measured. The x-axis corresponds to time t (measured in seconds, ^), and the y-axis corresponds to yaw-rate (measured in radians / second).
[0132] Figure 4B shows a plot 410 of a curve 411 illustrating a yaw-moment requested by one of the higher-level controllers 310 and 320, and a curve 412 illustrating a yaw- moment as requested by the other one of the higher-level controllers 310 and 320. The time- scale on the x-axis is the same as in Figure 4A, and the y-axis in Figure 4B corresponds to requested yaw-moment (measured in Newton meters, ^^). Phrased differently, in Figure 4B, the curve 411 corresponds to an output of a more relaxed higher-level controller, and the curve 412 corresponds to an output of a more aggressive higher-level controller. The lower- level controller 330 is thus allowed to generate a control input ^ which lies between the lower and upper bounds provided by the curves 411 and 412.
[0133] At approximately t=20 seconds, an attempt to brake the vehicle is made. Here, the total forces on the vehicle are on the limit of what is possible, and the controller outputs converge to ensure stability. On the other hand, when the constraints are far from being violated, the power loss algorithm has a much larger range to optimize in, which will be illustrated later herein with reference to Figures 5A-5D. From Figure 4A, it may be derived that whenever possible, the lower-level controller 330 choses to aim for the more relaxed yaw rate of the curve 401, as lower yaw-rate likely reduces the actuator efforts and thereby consumes less power. However, when the vehicle starts braking at approximately t=20 seconds, the higher yaw-rate of the curve 402 is instead used as guidance, as this requires less actuator effort in the opposite direction. At the beginning of the time interval shown in Figures 4A and 4B, the vehicle naturally operates between the yaw-rate limits of the curves 411 and 412. When the time is approximately t=6 seconds, the vehicle accelerates, and the vehicle meets the lower constraint for the minimum acceptable yaw-rate, and the yaw-Docket No.: P2023-0401WO01 43 moment requests spike. For the lower-level controller 330, the difference between these two curves 411 and 412 is the range of possible yaw-moment outputs.
[0134] The results of yet another validation-test of the proposed motion control system 300 are shown in Figures 5A-5D. Here, three types of controllers were tested, including A) a controller configured to only minimize power-loss, B) a controller configured to also optimize for power loss but with a strict equality-constraint ^^ = ^, and C) the improved lower-level controller 330 and motion control system 300 as envisaged herein.
[0135] Figure 5A shows a plot 500 of how well the vehicle managed to stay close to a centerline of the road. In the plot 500, curve 501 illustrates the performance of the controller A), curve 502 illustrates the performance of the controller B), and curve 503 illustrates the performance of controller C). The x-axis corresponds to time t (measured in seconds, ^), and the y-axis corresponds to the error / deviation from the centerline (measured in centimeters, ^^). As can be derived from Figure 5A, the forced controller B) performed best, the unforced controller A) performed worse, while the controller C) as envisaged herein performed more closer to controller A) than controller B).
[0136] Figure 5B shows a plot 510 of how much steering compensation that was required for the various controllers. In the plot 510, curve 511 corresponds to controller A), curve 512 corresponds to controller B), and curve 513 corresponds to controller C). The x-axis is the same as in Figure 5B, while the y-axis corresponds to steering angle (measured in degrees). As can be derived from Figure 5B, the unforced controller A) required the most steering compensation and the forced controller B) required the least steering compensation, while the controller B) as envisaged herein performed closer to the controller B) than the controller A).
[0137] Figure 5C shows a plot 520 of how well each controller was capable of maintaining a reference speed of the vehicle. In the plot 520, curve 521 corresponds to controller A), curve 522 corresponds to controller B), and curve 523 corresponds to controller C). The x-axis is the same as in Figures 5A and 5B, while the y-axis corresponds to speed (measured in kilometers per hour, ^^ / ℎ). As can be derived from Figure C, all controllers performed about equally.
[0138] Figure 5D shows a plot 530 of how well the controllers performed in terms of power loss minimization. In the plot 530, curve 532 corresponds to controller B), and curve 533 corresponds to controller C). No curve is shown for controller A), but the curves 532 and 533 are instead plotted in values normalized to those of controller A). The x-axis is the sameDocket No.: P2023-0401WO01 44 as in Figures 5A-C, while the y-axis corresponds to how well the controllers performed in relation to controller A), in percent (%) of the power loss resulting from controlling the electrical machines / motors of the vehicle using controller A). As can be derived from Figure 5D, when controlled by the forced controller B), the power loss of the electrical machines / motors of the vehicle was up to 50% greater than if controlled by controller A). If controlled by controller C), however, the power loss of the electrical machines / motors of the vehicle was only a few percent more than if controlled by controller A).
[0139] In summary of Figures 5A-D, it may thus be concluded that the difference in performance between the forced controller B) and the lower-level controller C) and motion control system as envisaged herein is not significant. At the same time, the lower-level controller C) and motion control system as envisaged herein provides a significant reduction of power loss and almost matches the power loss reducing performance of the controller A) faced only with such task. It may thus be further concluded that the envisaged (lower-level) controller and motion control system as envisaged and presented herein, utilizing the more relaxed requirement that ^^^^≤ ^^ ≤ ^^^^instead of ^^ = ^, provides a noticeable improvement over contemporary controllers.
[0140] Figure 6 shows a flowchart of a method 600 performed in a (lower-level) controller as envisaged herein, such as the lower-level controller 300 described with reference to Figure 3 and in combination with a plurality of motion actuators of a vehicle (such as the vehicle 100). In a step S610, the method 600 includes obtaining, from at least one higher-level controller (such as the higher-level controllers 310 and 320), lower and upper bounds for at least one global force for the vehicle as a whole. In a step S620, the method 600 includes providing a solution to a control allocation problem for coordinating the plurality of motion actuators, including, to solve this problem, allowing an expected resulting joint contribution of the plurality of motion actuators to (instead of being equality- constrained) vary between the obtained lower and upper bounds. In a step S630, the method 600 further includes directly or indirectly controlling the plurality of motion actuators in accordance with the provided solution to the control allocation problem.
[0141] Figure 7 shows a flowchart of a method 700 performed in a motion control system (such as the system 300 described with reference to Figure 3) for a plurality of motion actuators of a vehicle (such as the vehicle 100). In a step S710, the method includes generating, using a first higher-level controller, a lower bound for at least one global force forDocket No.: P2023-0401WO01 45 the vehicle as a whole. In a step S720, the method 700 includes generating, using a second higher-level controller, an upper bound for the at least one global force. In a step S730, the method 700 includes providing a solution to a control allocation problem for coordinating the plurality of motion actuators, wherein, to provide this solution, an expected resulting joint contribution of the plurality of motion actuators to the at least one global force is not equality-constrained but instead allowed to vary between the lower and upper bounds. In a step S740, the method 700 includes directly or indirectly controlling the motion actuators in accordance with the provided solution to the control allocation problem. Steps S730 and S740 may e.g. be performed by a lower-level controller (e.g.330) in accordance with the steps of the method 600.
[0142] Figure 8A schematically illustrates, in terms of a number of functional units, the components of an example (lower-level) controller 800 (such as the controller 330 described with reference to Figure 3). The controller 800 is configured to obtain the lower and upper bounds for the requested global force(s), to solve the control allocation problem with the relaxed constraint ^^^^≤ ^^ ≤ ^^^^, and to control the motion actuators in accordance with this solution. For this purpose, the controller 800 includes processing circuitry 810. The processing circuitry 810 is provided using any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), etc., capable of executing software instructions stored in a computer program product 910 (see Figure 9 and the description thereof), e.g. in the form of a computer-readable storage medium 820. The processing circuitry 810 may further be provided as at least one application-specific integrated circuit (ASIC), or field-programmable gate array (FPGA).
[0143] Particularly, the processing circuitry 810 is configured to cause the controller 800 to perform a set of operations, or steps, as disclosed above e.g. when describing the method 600 illustrated in Figure 6. For example, the storage medium 820 may store a set of operations, and the processing circuitry 810 may be configured to retrieve the set of operations from the storage medium 820 to cause the controller 800 to perform the set of operations. The set of operations may be provided as a set of executable instructions. Thus, the processing circuitry 810 is thereby arranged to execute methods associated with a controller 330 as disclosed herein e.g. with reference to Figure 3.
[0144] The controller 800 may further include a communications interface 830 for communications with other entities, functions, nodes, and devices of the vehicle 100 and / orDocket No.: P2023-0401WO01 46 motion control system 300, and / or with one or more remote devices such as e.g. a cloud- based service or similar. For example, the communications interface 810 may allow the controller 800 to communicate with higher-level controllers 310 and 320, with the plurality of motion actuators 340, with a vehicle status signal bus 350, or similar, and e.g. with a driver environment in form of steering wheel 150 and brake / throttle pedals 152, etc. As such, the communication interface 830 may include one or more transmitters and receivers, including analogue and / or digital components. For example, the communication interface 830 may be configured to connect to one or more communication buses of the vehicle 100, such as for example one or more CAN-buses or similar.
[0145] The processing circuitry 810 controls the general operation of the controller 800 e.g. by sending data and control signals to the communications interface 830 and the storage medium 820, by receiving data and reports from the communications interface 830, and by retrieving data and instructions from the storage medium 820. Other optional components, as well as their related functionality, of the controller 800 are represented by the dashed box 840, and the description thereof is omitted in order not to obscure the concepts presented herein.
[0146] Generally, a controller (such as the controller 330 and / or 800) may be a separate controller of the vehicle 100, or e.g. be implemented as part of an already existing controller of the vehicle 100, such as for example a vehicle electronic control-unit (ECU), or similar. The same applies to any one of the higher-level controllers 310 and 320 and / or the reference generators 360 and 370, which may be implemented as separate units, as part of a same controller, or as part of some other controller of the vehicle 100.
[0147] Figure 8B schematically illustrates, in terms of a number of functional modules 810a, 810b and 810c, the components of an exemplary controller 800 (such as the controller 330). The controller 800 includes at least an obtain module 810a configured to perform step S610 of the method 600 described with reference to Figure 6. The controller 800 also includes a control allocation problem solution module 810b configured to perform step S620, and a motion actuator coordination module 810c configured to perform step S630. The controller 800 may also include one or more optional functional modules (illustrated by the dashed box 810d), such as for example modules for determining an increased severity of a driving-situation of the vehicle 100 and to converge or at least force closer together the lower and upper bounds of the global force(s).Docket No.: P2023-0401WO01 47
[0148] In general terms, each functional module 810a-d may be implemented in hardware or in software. Preferably, one or more or all functional modules 810a-d may be implemented by the processing circuitry 810, possibly in cooperation with the communications interface 830 and / or the storage medium 820. The processing circuitry 810 may thus be arranged to from the storage medium 820 fetch instructions as provided by a functional module 810a-d, and to execute these instructions and thereby perform any steps of the method 600 performed by / in the controller 800 / 330 as disclosed herein.
[0149] Figure 9 schematically illustrates a computer program product 910 including a computer-readable medium 930. On the medium 930, a computer program 920 may be stored, which computer program 920 may cause the processing circuitry 810 and thereto operatively coupled entities and devices, such as the communication interface 830 and the storage medium 820, to execute method 600 according to examples described herein. The computer program 920 and / or computer program product 910 may thus provide means for performing any steps of e.g. the method 600 performed by the controller 800 as disclosed herein. It is also envisaged herein that the medium 830 may store more than one computer program, such as one program for the method 600, one program for the method 700, or similar.
[0150] In the example of Figure 9, the computer program product 910 is illustrated as an optical disc, such as a CD (compact disc) or a DVD (digital versatile disc) or a Blu-Ray disc. The computer program product 910 may also be embodied as a memory, such as a random- access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), or an electrically erasable programmable read-only memory (EEPROM) and more particularly as a non-volatile storage medium of a device in an external memory such as a USB (Universal Serial Bus) memory or a Flash memory, such as a compact Flash memory. Thus, while the computer program 920 is here schematically shown as a track on the depicted optical disk, the computer program 920 may be stored in any way which is suitable for the computer program product 910.
[0151] The various examples described herein, such as the controller 800 and / or 330, may also be implemented as part of a more generic computer system, as will now be described in more detail.
[0152] Figure 10 is a schematic diagram of a computer system 600 for implementing examples disclosed herein. The computer system 1000 is adapted to execute instructions fromDocket No.: P2023-0401WO01 48 a computer-readable medium to perform these and / or any of the functions or processing described herein. The computer system 1000 may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet. While only a single device is illustrated, the computer system 1000 may include any collection of devices that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. Accordingly, any reference in the disclosure and / or claims to a computer system, computing system, computer device, computing device, control system, control unit, electronic control unit (ECU), processor device, processing circuitry, etc., includes reference to one or more such devices to individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. For example, control system may include a single control unit or a plurality of control units connected or otherwise communicatively coupled to each other, such that any performed function may be distributed between the control units as desired. Further, such devices may communicate with each other or other devices by various system architectures, such as directly or via a Controller Area Network (CAN) bus, etc.
[0153] The computer system 1000 may comprise at least one computing device or electronic device capable of including firmware, hardware, and / or executing software instructions to implement the functionality described herein. The computer system 1000 may include processing circuitry 1002 (e.g., processing circuitry including one or more processor devices or control units), a memory 1004, and a system bus 1006. The computer system 1000 may include at least one computing device having the processing circuitry 1002. The system bus 1006 provides an interface for system components including, but not limited to, the memory 1004 and the processing circuitry 1002. The processing circuitry 1002 may include any number of hardware components for conducting data or signal processing or for executing computer code stored in memory 1004. The processing circuitry 1002 may, for example, include a general-purpose processor, an application specific processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a circuit containing processing components, a group of distributed processing components, a group of distributed computers configured for processing, or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functionsDocket No.: P2023-0401WO01 49 described herein. The processing circuitry 1002 may further include computer executable code that controls operation of the programmable device.
[0154] The system bus 1006 may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and / or a local bus using any of a variety of bus architectures. The memory 1004 may be one or more devices for storing data and / or computer code for completing or facilitating methods described herein. The memory 1004 may include database components, object code components, script components, or other types of information structure for supporting the various activities herein. Any distributed or local memory device may be utilized with the systems and methods of this description. The memory 1004 may be communicably connected to the processing circuitry 1002 (e.g., via a circuit or any other wired, wireless, or network connection) and may include computer code for executing one or more processes described herein. The memory 1004 may include non-volatile memory 1008 (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory 1010 (e.g., random-access memory (RAM)), or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures, and which can be accessed by a computer or other machine with processing circuitry 1002. A basic input / output system (BIOS) 1012 may be stored in the non-volatile memory 1008 and can include the basic routines that help to transfer information between elements within the computer system 1000.
[0155] The computer system 1000 may further include or be coupled to a non-transitory computer-readable storage medium such as the storage device 1014, which may comprise, for example, an internal or external hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)), HDD (e.g., EIDE or SATA) for storage, flash memory, or the like. The storage device 1014 and other drives associated with computer-readable media and computer-usable media may provide non- volatile storage of data, data structures, computer-executable instructions, and the like.
[0156] Computer-code which is hard or soft coded may be provided in the form of one or more modules. The module(s) can be implemented as software and / or hard-coded in circuitry to implement the functionality described herein in whole or in part. The modules may be stored in the storage device 1014 and / or in the volatile memory 1010, which may include anDocket No.: P2023-0401WO01 50 operating system 1016 and / or one or more program modules 1018. All or a portion of the examples disclosed herein may be implemented as a computer program 1020 stored on a transitory or non-transitory computer-usable or computer-readable storage medium (e.g., single medium or multiple media), such as the storage device 1014, which includes complex programming instructions (e.g., complex computer-readable program code) to cause the processing circuitry 1002 to carry out actions described herein. Thus, the computer-readable program code of the computer program 1020 can comprise software instructions for implementing the functionality of the examples described herein when executed by the processing circuitry 1002. In some examples, the storage device 1014 may be a computer program product (e.g., readable storage medium) storing the computer program 1020 thereon, where at least a portion of a computer program 1020 may be loadable (e.g., into a processor) for implementing the functionality of the examples described herein when executed by the processing circuitry 1002. The processing circuitry 1002 may serve as a controller or control system for the computer system 1000 that is to implement the functionality described herein.
[0157] The computer system 1000 may include an input device interface 1022 configured to receive input and selections to be communicated to the computer system 1000 when executing instructions, such as from a keyboard, mouse, touch-sensitive surface, etc. Such input devices may be connected to the processing circuitry 1002 through the input device interface 1022 coupled to the system bus 1006 but can be connected through other interfaces, such as a parallel port, an Institute of Electrical and Electronic Engineers (IEEE) 1394 serial port, a Universal Serial Bus (USB) port, an IR interface, and the like. The computer system 1000 may include an output device interface 1024 configured to forward output, such as to a display, a video display unit (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 1000 may include a communications interface 1026 suitable for communicating with a network as appropriate or desired.
[0158] The operational actions described in any of the exemplary aspects herein are described to provide examples and discussion. The actions may be performed by hardware components, may be embodied in machine-executable instructions to cause a processor to perform the actions, or may be performed by a combination of hardware and software. Although a specific order of method actions may be shown or described, the order of the actions may differ. In addition, two or more actions may be performed concurrently or with partial concurrence.Docket No.: P2023-0401WO01 51
[0159] Although it is herein often referred to as “a vehicle”, it should be noted that all controllers, methods, etc., may just as well be adapted to e.g. a vehicle combination, such as for example a tractor towing one or more trailers. The envisaged controller and methods are therefore not restricted only to single-body vehicles, but is envisaged to work as intendent for any type of vehicle or vehicle combination in which motion control of a plurality of motion actuators is required.
[0160] The following is a list of examples of controllers, automated brake-release systems, vehicles, methods, computer program products and computer readable storage mediums as envisaged herein.
[0161] Example 1: A controller for coordination of a plurality of motion actuators of a vehicle or vehicle combination, configured to: - obtain, from at least one higher-level controller, lower and upper bounds (^^^^, ^^^^) for at least one global force (^) for the vehicle or vehicle combination as a whole; - provide a solution (^) to a control allocation problem for coordinating the plurality of motion actuators, wherein, to provide said solution, an expected resulting joint contribution (^^) of the plurality of motion actuators to said at least one global force is not equality-constrained (^^ = ^) but allowed to vary between the obtained lower and upper bounds (^^^^≤ ^^ ≤ ^^^^), and - directly or indirectly control the plurality of motion actuators in accordance with the provided solution to the control allocation problem.
[0162] Example 2: The controller of example 1, wherein the control allocation problem includes a minimization of power loss, and wherein, by allowing the contribution of the plurality of motion actuators to the at least one global force to vary between the obtained lower and upper bounds, the controller is provided an increased flexibility to perform said minimization of power loss.
[0163] Example 3: The controller of example 1 or 2, further configured to: - obtain an indication of an increase in severity of a current or predicted driving situation of the vehicle or vehicle combination, and - in response to obtaining said indication, and as part of providing the solution to the control allocation problem, force the lower and upper bounds to approach each other.
[0164] Example 4: The controller of example 3, wherein the increase in severity includes an imminent vehicle rollover or loss of tire grip.Docket No.: P2023-0401WO01 52
[0165] Example 5: The controller of any one of the preceding examples, wherein the control allocation problem is on quadratic programming, QP, form.
[0166] Example 6: A motion control system for a plurality of motion actuators of a vehicle or vehicle combination, comprising: - a first higher-level controller configured to generate a lower bound (^^^^) for at least one global force (^) for the vehicle or vehicle combination as a whole; - a second higher-level controller configured to generate an upper bound (^^^^) for said at least one global force, and - the controller of any one of the preceding claims for controlling the plurality of actuators based on the lower and upper bounds.
[0167] Example 7: The motion control system of example 6, further comprising: - a first reference (-value) generator configured to generate a first set of one or more references (or reference values) based on a first anticipated driving style of a driver of the vehicle or vehicle combination, and - a second reference (-value) generator configured to generate a second set of one or more references (or reference values) based on a second anticipated driving style of the driver different from the first anticipated driving style, wherein the first higher-level controller is further configured to generate the lower bound based on the first set of one or more references, and wherein the second higher-level controller is further configured to generate the upper bound based on the second set of one or more references.
[0168] Example 8: The motion control system of example 7, wherein the first set of one or more references includes a first yaw-rate reference based on a minimum allowed understeer of the vehicle or vehicle combination, and wherein the second set of one or more references includes a second yaw-rate reference based on a maximum allowed understeer of the vehicle or vehicle combination.
[0169] Example 9: The motion control system of any one of examples 6 to 8, wherein each of the first and second higher-level controllers implements model predictive control, MPC.
[0170] Example 10: The motion control system of any one of examples 6 to 9, wherein the first and second higher-level controllers are further configured such that, in response to an increase in severity of a current driving situation of the vehicle or vehicle combination, the lower and upper bounds provided to the control allocator are forced to approach each other.
[0171] Example 11: The motion control system of example 10, further comprising a driving-severity estimator configured to detect said increase in severity.Docket No.: P2023-0401WO01 53
[0172] Example 12: The motion control system of example 10 or 11, wherein the first and second higher-level controllers are configured to use different reference targets for at least one parameter related to the motion control of the vehicle or vehicle combination, and wherein forcing the lower and upper bounds to approach each other is performed by both the first and second higher-level controller being further configured to use a same constraint for said at least one parameter when each solving an optimization problem to generate the respective lower and upper bounds.
[0173] Example 13: A vehicle or vehicle combination, comprising: - a plurality of motion actuators, and - the controller of any one of examples 1 to 5 or the motion control system of any one of examples 6 to 12.
[0174] Example 14: A method performed in a controller for coordination of a plurality of motion actuators of a vehicle or vehicle combination, comprising: - obtaining, from at least one higher-level controller, lower and upper bounds (^^^^, ^^^^) for at least one global force (^) for the vehicle or vehicle combination as a whole; - providing a solution (^) to a control allocation problem for coordinating the plurality of motion actuators, wherein, to provide said solution, an expected resulting joint contribution (^^) of the plurality of motion actuators to said at least one global force is not equality-constrained (^^ = ^) but allowed to vary between the obtained lower and upper bounds (^^^^≤ ^^ ≤ ^^^^), and - directly or indirectly controlling the plurality of motion actuators in accordance with the provided solution to the control allocation problem.
[0175] Example 15: A method performed in a motion control system for a plurality of motion actuators of a vehicle or vehicle combination, comprising: - generating, using a first higher-level controller, a lower bound (^^^^) for at least one global force (^) for the vehicle or vehicle combination as a whole; - generating, using a second higher-level controller, an upper bound (^^^^) for said at least one global force; - providing a solution to a control allocation problem for coordinating the plurality of motion actuators, wherein, to provide said solution, an expected resulting joint contribution (^^) of the plurality of motion actuators to said at least one global force is not equality-constrained (^^ = ^) but allowed to vary between the generated lower and upper bounds (^^^^≤ ^^ ≤ ^^^^), and - directly or indirectly controlling the plurality of motion actuators in accordance with the provided solution to the control allocation problem.Docket No.: P2023-0401WO01 54
[0176] Example 16: A computer program product comprising program code which, when executed by processing circuitry of a controller for coordinating a plurality of motion actuators of a vehicle or vehicle combination, causes the controller to perform the method of example 14.
[0177] Example 17: A computer program product comprising program code which, when executed by processing circuitry of a motion control system for a plurality of motion actuators of a vehicle or vehicle combination, causes the motion control system to perform the method of example 15.
[0178] Example 18: A non-transitory computer-readable storage medium comprising instructions which, when executed by processing circuitry of a controller for coordination of a plurality of motion actuators of a vehicle or vehicle combination, causes the controller to perform the method according to example 14.
[0179] Example 19: A non-transitory computer-readable storage medium comprising instructions which, when executed by processing circuitry of a motion control system for a plurality of motion actuators of a vehicle or vehicle combination, causes the motion control system to perform the method according to example 15.
[0180] The terminology used herein is for the purpose of describing particular aspects only and is not intended to be limiting of the disclosure. 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. As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items. It will be further understood that the terms "comprises," "comprising," "includes," and / or "including" when used herein specify the presence of stated features, integers, actions, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, actions, steps, operations, elements, components, and / or groups thereof.
[0181] It will be understood that, although the terms first, second, etc., may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element without departing from the scope of the present disclosure.
[0182] Relative terms such as "below" or "above" or "upper" or "lower" or "horizontal" or "vertical" may be used herein to describe a relationship of one element to another elementDocket No.: P2023-0401WO01 55 as illustrated in the Figures. It will be understood that these terms and those discussed above are intended to encompass different orientations of the device in addition to the orientation depicted in the Figures. It will be understood that when an element is referred to as being "connected" or "coupled" to another element, it can be directly connected or coupled to the other element, or intervening elements may be present. In contrast, when an element is referred to as being "directly connected" or "directly coupled" to another element, there are no intervening elements present.
[0183] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will be further understood that terms used herein should be interpreted as having a meaning consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
[0184] It is to be understood that the present disclosure is not limited to the aspects described above and illustrated in the drawings; rather, the skilled person will recognize that many changes and modifications may be made within the scope of the present disclosure and appended claims. In the drawings and specification, there have been disclosed aspects for purposes of illustration only and not for purposes of limitation, the scope of the disclosure being set forth in the following claims.
Claims
Docket No.: P2023-0401WO01 56 Claims What is claimed is:
1. A controller (330, 800) for coordination of a plurality of motion actuators (340) of a vehicle (100) or vehicle combination, configured to: - obtain, from at least one higher-level controller (310, 320), lower and upper bounds (^^^^, ^^^^) for at least one global force (^) for the vehicle or vehicle combination as a whole; - provide a solution (^) to a control allocation problem for coordinating the plurality of motion actuators, wherein, to provide said solution, an expected resulting joint contribution (^^) of the plurality of motion actuators to said at least one global force is not equality-constrained (^^ = ^) but allowed to vary between the obtained lower and upper bounds (^^^^≤ ^^ ≤ ^^^^), and - directly or indirectly control the plurality of motion actuators in accordance with the provided solution to the control allocation problem.
2. The controller of claim 1, wherein the control allocation problem includes a minimization of power loss, and wherein, by allowing the contribution of the plurality of motion actuators to the at least one global force to vary between the obtained lower and upper bounds, the controller is provided an increased flexibility to perform said minimization of power loss.
3. The controller of claim 1 or 2, further configured to: - obtain an indication of an increase in severity of a current or predicted driving situation of the vehicle or vehicle combination, and - in response to obtaining said indication, and as part of providing the solution to the control allocation problem, force the lower and upper bounds to approach each other.
4. The controller of claim 3, wherein the increase in severity includes an imminent vehicle rollover or loss of tire grip.Docket No.: P2023-0401WO01 57 5. The controller of any one of the preceding claims, wherein the control allocation problem is on quadratic programming, QP, form.
6. A motion control system (300) for a plurality of motion actuators (340) of a vehicle (100) or vehicle combination, comprising: - a first higher-level controller (310) configured to generate a lower bound (^^^^) for at least one global force (^) for the vehicle or vehicle combination as a whole; - a second higher-level controller (320) configured to generate an upper bound (^^^^) for said at least one global force, and - the controller (330, 800) of any one of the preceding claims for controlling the plurality of actuators based on the lower and upper bounds.
7. The motion control system of claim 6, further comprising: - a first reference generator (360) configured to generate a first set of one or more references (362) based on a first anticipated driving style of a driver of the vehicle or vehicle combination, and - a second reference generator (370) configured to generate a second set of one or more references (372) based on a second anticipated driving style of the driver different from the first anticipated driving style, wherein the first higher-level controller is further configured to generate the lower bound based on the first set of one or more references, and wherein the second higher-level controller is further configured to generate the upper bound based on the second set of one or more references.
8. The motion control system of claim 7, wherein the first set of one or more references includes a first yaw-rate reference based on a minimum allowed understeer of the vehicle or vehicle combination, and wherein the second set of one or more references includes a second yaw-rate reference based on a maximum allowed understeer of the vehicle or vehicle combination.
9. The motion control system of any one of claims 6 to 8, wherein each of the first and second higher-level controllers implements model predictive control, MPC.Docket No.: P2023-0401WO01 58 10. The motion control system of any one of claims 6 to 9, wherein the first and second higher-level controllers are further configured such that, in response to an increase in severity of a current driving situation of the vehicle or vehicle combination, the lower and upper bounds provided to the control allocator are forced to approach each other.
11. The motion control system of claim 10, further comprising a driving-severity estimator configured to detect said increase in severity.
12. The motion control system of claim 10 or 11, wherein the first and second higher- level controllers are configured to use different reference targets (^^,^^^,^^^,for at least one parameter (^^) related to the motion control of the vehicle or vehicle combination, and wherein forcing the lower and upper bounds to approach each other is performed by both the first and second higher-level controller being further configured to use a same constraint (^^≤ ^^,^^^,^^^) for said at least one parameter when each solving an optimization problem to generate the respective lower and upper bounds.
13. A vehicle (100) or vehicle combination, comprising: - a plurality of motion actuators (120a-d; 340), and - the controller (330, 800) of any one of claims 1 to 5 or the motion control system (300) of any one of claims 6 to 12.
14. A method (600) performed in a controller (330, 800) for coordination of a plurality of motion actuators of a vehicle or vehicle combination, comprising: - obtaining (S610), from at least one higher-level controller, lower and upper bounds (^^^^, ^^^^) for at least one global force (^) for the vehicle or vehicle combination as a whole; - providing (S620) a solution (^) to a control allocation problem for coordinating the plurality of motion actuators, wherein, to provide said solution, an expected resulting joint contribution (^^) of the plurality of motion actuators to said at least one global force is not equality-constrained (^^ = ^) but allowed to vary between the obtained lower and upper bounds (^^^^≤ ^^ ≤ ^^^^), andDocket No.: P2023-0401WO01 59 - directly or indirectly controlling (S630) the plurality of motion actuators in accordance with the provided solution to the control allocation problem.
15. A method (700) performed in a motion control system (300) for a plurality of motion actuators of a vehicle or vehicle combination, comprising: - generating (S710), using a first higher-level controller, a lower bound (^^^^) for at least one global force (^) for the vehicle or vehicle combination as a whole; - generating (S720), using a second higher-level controller, an upper bound (^^^^) for said at least one global force; - providing (S730) a solution to a control allocation problem for coordinating the plurality of motion actuators, wherein, to provide said solution, an expected resulting joint contribution (^^) of the plurality of motion actuators to said at least one global force is not equality-constrained (^^ = ^) but allowed to vary between the generated lower and upper bounds (^^^^≤ ^^ ≤ ^^^^), and - directly or indirectly controlling (S740) the plurality of motion actuators in accordance with the provided solution to the control allocation problem.
16. A computer program product (910) comprising program code (920) which, when executed by processing circuitry of a controller for coordinating a plurality of motion actuators of a vehicle or vehicle combination, causes the controller to perform the method of claim 14.
17. A computer program product (910) comprising program code (920) which, when executed by processing circuitry of a motion control system for a plurality of motion actuators of a vehicle or vehicle combination, causes the motion control system to perform the method of claim 15.
18. A non-transitory computer-readable storage medium (930) comprising instructions which, when executed by processing circuitry of a controller for coordination of a plurality of motion actuators of a vehicle or vehicle combination, causes the controller to perform the method according to claim 14.Docket No.: P2023-0401WO01 60 19. A non-transitory computer-readable storage medium (930) comprising instructions which, when executed by processing circuitry of a motion control system for a plurality of motion actuators of a vehicle or vehicle combination, causes the motion control system to perform the method according to claim 15.