Force control for vehicles
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- VOLVO TRUCK CORP
- Filing Date
- 2023-08-17
- Publication Date
- 2026-06-24
AI Technical Summary
Existing vehicle motion management systems often result in unfeasible control inputs due to limitations in actuator capability and tyre constraints, leading to inefficiencies and potential safety issues.
The system represents requested forces in a vector space, determines a line from zero to the requested force vector, and finds the intersection of this line with a representation of attainable forces to derive a feasible force control input.
This approach ensures that the allocated force control input can always be realised, even if the initial request is unfeasible, thereby optimizing force control inputs without risking unrealizability.
Smart Images

Figure EP2023072695_20022025_PF_FP_ABST
Abstract
Description
FORCE CONTROL FOR VEHICLESTECHNICAL FIELD
[0001] The disclosure relates generally to vehicle motion management. In particular aspects, the disclosure relates force control for vehicles. 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 vehicle motion management, a control system of a vehicle may determine control signals for actuators of the vehicle in order to satisfy the requested global forces of the vehicle. For example, the control system may receive an input related to a requested manoeuvre for the vehicle and determine control signals, for example in the form of propulsion and braking instructions, that meet the requested global forces of the vehicle subject to certain constraints, for example energy and safety constraints.
[0003] In some vehicle operations, such control signals are optimised in a certain way, for example to decrease power usage or losses of the vehicle as it carries out the requested motion. For example, in the case of power losses, a cost function describing power losses as a function of torque may be employed, and the actuator torque corresponding to the smallest power losses are found by setting up an optimisation problem to minimise the cost function. Such optimisation problems also employ constraints in order to determine a safe and / or useful input, for example a requirement for force equivalence between requested global forces of the vehicle and forces allocated to the vehicle’s individual actuators. However, in some instances, the solution to an optimisation problem may be an unfeasible control input, for example a control input that cannot be realised due to limits in actuator capability, tyre capability, and the like.
[0004] It is therefore desired to develop a solution for vehicle motion management that addresses or at least mitigates some of these issues.SUMMARY
[0005] This disclosure attempts to address the problems noted above by providing systems, methods and other approaches for determining a force control input for a vehicle by representing the requested forces in a vector space and determining a line from zero to a vector representing the requested force control input. The intersection between the line and arepresentation, in the vector space, of attainable forces can then be used to determine a feasible force control input. This ensures that an allocated force control input, including the solution to any optimisation problem, can always be realised, even when the initial requested force control input is unfeasible.
[0006] According to a first aspect of the disclosure, there is provided a computer system for determining a force control input for a vehicle, the computer system comprising processing circuitry configured to receive a requested force control input for the vehicle, determine a line in a vector space from zero to a vector representing the requested force control input, determine an intersection between the line and a representation, in the vector space, of attainable forces, and implement a vector from zero to the intersection as an allocated force control input for the vehicle.
[0007] The first aspect of the disclosure may seek to alleviate current issues with vehicle motion management. A technical benefit may include determining a feasible force control input regardless of a requested force control input. This ensures that an allocated force control input, including the solution to any optimisation problem, can always be realised. Feasible force control inputs for vehicles can therefore be optimised in any desired way without the risk of them becoming unrealisable.
[0008] Optionally in some examples, including in at least one preferred example, the processing circuitry is configured to determine the line in response to determining that the requested force control input is unfeasible. A technical benefit may include the ability to turn unfeasible force control inputs into feasible force control inputs.
[0009] Optionally in some examples, including in at least one preferred example, the processing circuitry is configured to determine that the requested force control input is unfeasible by determining that no feasible allocated force control input corresponds to the requested force control input, or determining that a solution to a first optimisation problem based on the requested force control input is empty. A technical benefit may include the provision of a robust mathematical way to determine whether a requested force control input is unfeasible.
[0010] Optionally in some examples, including in at least one preferred example, the number of dimensions of the vector space is equal to the number of dimensions of the vector representing the requested force control input. A technical benefit may include the provision of an exact solution to allocation of the requested force control input.
[0011] Optionally in some examples, including in at least one preferred example, the number of dimensions of the line is equal to the number of dimensions of the vectorrepresenting the requested force control input. A technical benefit may include the provision of an exact solution to allocation of the requested force control input. Alternatively, by reducing the number of dimension of the line, the solution may be simplified.
[0012] Optionally in some examples, including in at least one preferred example, the processing circuitry is configured to solve a second optimisation problem to determine the intersection, wherein the second optimisation problem is based on the line and a mapping between the requested force control input and the allocated force control input. A technical benefit may include allowing different solutions to be found in an efficient manner. This approach allows certain parameters to be changed on the fly, for example the number of actuators, the constraints, a mapping function, meaning different scenarios do not need to be precomputed and stored in a memory. Furthermore, this approach can handle a large number of actuators in an efficient way (e.g. in terms of memory), and therefore handle the mapping between the requested force control input and the allocated force control input efficiently.
[0013] Optionally in some examples, including in at least one preferred example, the representation of attainable forces is a convex hull, and the processing circuitry is configured to determine the intersection by determining an intersection between the line and the convex hull. A technical benefit may include that, when linear inequality constraints are considered, a convex hull does not provide an overestimation of the attainable global forces.
[0014] Optionally in some examples, including in at least one preferred example, the convex hull is determined using a polytope. A technical benefit may include that various n- polytopes can be generated to represent variations in constraints, meaning that it is not necessary to run an optimisation problem online.
[0015] Optionally in some examples, including in at least one preferred example, the processing circuitry is further configured to apply the vector to the intersection to a third optimisation problem to provide an optimised allocated force control input. A technical benefit may include enabling further optimisation of the force control in order to achieve a particular goal, for example the reduction of power losses.
[0016] According to a second aspect of the disclosure, there is provided a vehicle comprising the system.
[0017] According to a third aspect of the disclosure, there is provided a computer- implemented method for determining a force control input for a vehicle, the method comprising, receiving, by processing circuitry of a computer system, a requested force control input for the vehicle, determining, by the processing circuitry, a line in a vector space from zero to a vector representing the requested force control input, determining, by the processingcircuitry, an intersection between the line and a representation, in the vector space, of attainable forces, and implementing, by the processing circuitry, a vector from zero to the intersection as an allocated force control input for the vehicle.
[0018] The third aspect of the disclosure may seek to alleviate current issues with vehicle motion management. A technical benefit may include determining a feasible force control input regardless of a requested force control input. This ensures that an allocated force control input, including the solution to any optimisation problem, can always be realised. Feasible force control inputs for vehicles can therefore be optimised in any desired way without the risk of them becoming unrealisable.
[0019] Optionally in some examples, including in at least one preferred example, the computer-implemented method comprises determining, by the processing circuitry, the line in response to determining that the requested force control input is unfeasible. A technical benefit may include the ability to turn unfeasible control inputs into feasible inputs.
[0020] Optionally in some examples, including in at least one preferred example, the computer-implemented method further comprises determining, by the processing circuitry, that the requested force control input is unfeasible by determining that no feasible allocated force control input corresponds to the requested force control input, or determining that a solution to a first optimisation problem based on the requested force control input is empty. A technical benefit may include the provision of a robust mathematical way to determine whether a requested force control input is unfeasible.
[0021] Optionally in some examples, including in at least one preferred example, the number of dimensions of the vector space is equal to the number of dimensions of the vector representing the requested force control input. A technical benefit may include the provision of an exact solution to allocation of the requested force control input.
[0022] Optionally in some examples, including in at least one preferred example, the number of dimensions of the line is equal to the number of dimensions of the vector representing the requested force control input. A technical benefit may include the provision of an exact solution to allocation of the requested force control input. Alternatively, by reducing the number of dimension of the line, the solution may be simplified.
[0023] Optionally in some examples, including in at least one preferred example, the computer-implemented method further comprises solving, by the processing circuitry, a second optimisation problem to determine the intersection, wherein the second optimisation problem is based on the line and a mapping between the requested force control input and the allocated force control input. A technical benefit may include allowing different solutions to be found inan efficient manner. This approach allows certain parameters to be changed on the fly, for example the number of actuators, the constraints, a mapping function, meaning different scenarios do not need to be precomputed and stored in a memory. Furthermore, this approach can handle a large number of actuators in an efficient way (e.g. in terms of memory), and therefore handle the mapping between the requested force control input and the allocated force control input efficiently.
[0024] Optionally in some examples, including in at least one preferred example, representation of attainable forces is a convex hull, and the computer-implemented method comprises determining, by the processing circuitry, the intersection by determining an intersection between the line and the convex hull. A technical benefit may include that, when linear inequality constraints are considered, a convex hull does not provide an overestimation of the attainable global forces.
[0025] Optionally in some examples, including in at least one preferred example, the computer-implemented method further comprises applying, by the processing circuitry, the vector to the intersection to a third optimisation problem to provide an optimised allocated force control input. A technical benefit may include enabling further optimisation of the force control in order to achieve a particular goal, for example the reduction of power losses.
[0026] According to a fourth aspect of the disclosure, there is provided a computer program product comprising program code for performing, when executed by processing circuitry, the computer-implemented method.
[0027] According to a fifth aspect of the disclosure, there is provided a non-transitory computer-readable storage medium comprising instructions, which when executed by processing circuitry, cause the processing circuitry to perform the computer-implemented method.
[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.
[0029] 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
[0030] Examples are described in more detail below with reference to the appended drawings.
[0031] FIG. 1 schematically shows a top-view of a vehicle, according to an example.
[0032] FIG. 2 schematically shows, in terms of functional blocks, a control system for a vehicle, according to an example.
[0033] FIG. 3 is a flow chart of an example computer-implemented method according to an example.
[0034] FIG. 4 is a schematic diagram of an exemplary computer system for implementing examples disclosed herein, according to an example.
[0035] Like reference numerals refer to like elements throughout the description.DETAILED DESCRIPTION
[0036] 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.
[0037] In certain vehicle operations, optimised control signals that are determined by solving an optimisation problem may include an unfeasible global force request, for example a global force request that cannot be realised due to limits in actuator capability, tyre capability, and the like. One approach to address this is to limit the forces in the allocated control input one-by-one based on heuristic assumptions (for example that it is not possible to propel a vehicle such that the sum of the forces exceeds that allowed by the mass-friction relation). However, it is not possible to achieve this with the desired accuracy when the number of dimensions of the control input increases, for example due to the complex coupling between the global forces. Another approach is to re-configure the optimisation problem such that the force equivalence constraint is part of the cost function itself. However, a drawback with this solution is that it is uncertain what the resultant forces will be.
[0038] To remedy this, systems, methods and other approaches are provided for determining a force control input for a vehicle by representing the forces in a vector space, and determining a line from zero to a vector representing the requested force control input. The intersection between the line and a representation, in the vector space, of attainable forces can then be used to determine a feasible force control input. This force control input can be allocated directly, or further optimised. This ensures that the solution to any optimisation problem can always be realised, even when the initial requested force control input is unfeasible.
[0039] FIG. 1 schematically shows a top-view of an example vehicle 100 of the type considered in this disclosure. FIG. 1 shows the requested global forces of the vehicle 100 as a whole. Examples of requested global forces of the vehicle 100 may e.g. include a total longitudinal / axial force Fx, a total lateral / radial force Fy, and / or a yaw moment M. In order to control motion of the vehicle 100, it is desired that the requested global forces of the vehicle 100 be determined and resolved. This may be achieved by a control system 200 (shown in FIG. 2) of the vehicle 100 that determines control signals based on a requested reference input and certain operating conditions of the vehicle 100.
[0040] The vehicle 100 may comprise one or more sources of propulsion. For example, the vehicle 100 may comprise one or more electrical machines 110 such as electric motors. The vehicle 100 may comprise one or more batteries 120 configured to provide power to the electrical machines 110. In some examples, the vehicle 100 may also include another source of propulsion, for example an internal combustion engine (ICE). The vehicle 100 also comprises a drivetrain (not shown) to deliver mechanical power from the propulsion source (the electrical machines 110 or the ICE) to the wheels 130.
[0041] The electrical machines 110 are configured to drive, e.g. provide torque and / or steering to, one or more axles or individual wheels 130 of the vehicle 100. The electrical machines 110 of the vehicle 100 can supply either a positive (propulsion) or negative (braking) force. In some examples, the electrical machines 110 may also be operated as generators, in order for the electrical machines 110 to generate braking force when desired. The use of the electrical machines 110 to supply a negative force is known as regenerative braking.
[0042] Furthermore, the vehicle 100 may comprise one or more sets of service brakes (not shown). The service brakes of the vehicle 100 can supply a negative (braking) force. The service brakes may be, for example, frictional brakes such as pneumatic brakes. Pneumatic brakes use a compressor to fill the brake with air, which may be powered by the batteries 120. In some examples, the service brakes may be electro-mechanical or hydraulic brakes. The energy recovered from regenerative braking can be stored in the batteries 120, and so regenerative braking by the electrical machines 110 may generally be preferred over using service brakes.
[0043] The ICE, electrical machines 110 and service brakes are considered as actuators of the vehicle 100. Other actuators may also be present, such as steering servo arrangements and suspension systems. The total number of actuators in the vehicle 100 is designated m.
[0044] The systems and methods disclosed herein can be used with any suitable form of vehicle. For example, the disclosure can be applied in heavy-duty vehicles, such as trucks,buses, and construction equipment, in personal vehicles such as cars, vans, or motorbikes, or in any other suitable form of vehicle. In some examples, the vehicle 100 may be a vehicle combination comprising a number of units, including a tractor unit and at least one trailing unit. In such examples, each unit may comprise its own electrical machines 110, batteries 120, and service brakes.
[0045] In the example of FIG. 1, the vehicle 100 includes a control allocator 210. In examples where the vehicle 100 is a vehicle combination, the vehicle 100 may include a control allocator 210 and a plurality of unit control allocators. The control allocator 210 and the various unit specific control allocators together form a distributed control allocation system for the vehicle 100. In this system, the control allocation may be performed on multiple levels, i.e. first on a level of the vehicle 100 as a whole, and then on a level of each vehicle unit individually. The control allocator 210 may be provided as part of the tractor unit while the unit control allocators are provided as part of each individual unit. It will be appreciated that the control allocator 210 may be provided as part of any unit of the vehicle 100.
[0046] FIG. 2 schematically shows, in terms of functional blocks, an example control system 200 for a vehicle, such as the vehicle 100. The control system 200 serves to perform various functions of the vehicle 100, such as power management and motion coordination. The control system 200 comprises a target generator 202, a tactical layer 204, a state estimator 206, an energy manager 208, and a control allocator 210. The various modules may e.g. be implemented as code running on a processing circuitry, or similar. The various modules may comprise processing circuitry configured to implement various operations disclosed below. The various modules may may include a memory storing instructions that, when executed by the processing circuitry, cause the processing circuitry to perform the various operations. The various modules may be communicatively connected or connectable to each other, for example as known in the art.
[0047] The purpose of the target generator 202 is to determine a requested motion control input freq and a requested force control input vreqfor the vehicle 100. The requested motion control input rreqis determined based on an input related to a manoeuvre for the vehicle 100 and represents a requested movement of the vehicle 100. The requested force control input vreqis determined based on the requested motion control input rreqand a motion capability vcapfor the vehicle 100. The target generator 202 comprises a path planner / controller 214 and a force generator 216.
[0048] The target generator 202 may receive an input related to a manoeuvre for the vehicle 100. The manoeuvre may be, for example, straight-line driving, cornering, braking and the like.The target generator 202 may receive a message from, for example, a steering wheel and / or gas / brake pedal of the vehicle 100, indicating that the driver (or some other system of the vehicle 100) wants to change the direction and / or the speed of the vehicle 100 in a certain way. In some examples, the message may originate from elsewhere, for example any other system that may provide some indication of how the overall forces of the vehicle 100 are to be influenced (e.g. steered, propelled or braked). For example, the message may originate from a lane assist system, a lane following system, an emergency steering system, an emergency braking system, an automated or semi-automated drive system. Based on this input, the target generator 202 outputs a requested motion control input rreq. In particular, the path planner / controller 214 determines the requested motion control input rreq. The requested motion control input rreqmay comprise at least one of a longitudinal acceleration axof the vehicle 100, a longitudinal velocity vxof the vehicle 100, a lateral velocity vyof the vehicle 100, and a steering anglereqof the vehicle 100.
[0049] The requested force control input vreqis determined based on the requested motion control input rreq. In particular, the force generator 216 determines the requested force control input Vreq. The requested force control input vreqmay include requested motion parameters for the vehicle 100. In particular, the forces Freqand / or moments Mz,reqthat need to be applied to the vehicle 100 in order to follow the requested motion control input rreqare determined. The requested motion parameters included in the requested force control input vreqof the vehicle 100 may comprise at least one of a requested longitudinal force Fx,reqof the vehicle 100, and a requested lateral force Fy.req of the vehicle 100. These make up the total force Freq to be applied for the vehicle 100. The requested motion parameters included in the requested force control input Vreq of the vehicle 100 may also comprise a requested yaw moment Mz.req for the vehicle 100
[0050] The requested force control input vreqmay also be determined based on state information yi from the vehicle 100 and a motion capability vcapfor the vehicle 100. The state information yi may include information from sensors of the vehicle 100 such as wheel speed sensors, inertial measurement units, articulation angle sensors and the like. The motion capability vcapof the vehicle 100 may describe the limits of motion parameters for safe operation of the vehicle 100. The motion capability vcapmay comprise at least one of a longitudinal force capability Fx.,caPof the vehicle 100, a lateral force capability Fy,capof the vehicle 100, and a yaw moment capability Mz,caPfor the vehicle 100.
[0051] The requested force control input vreqmay be determined based on a vehicle model. The vehicle model can be any suitable model, for example a model known in the art. The modelcan be based on real tests, computer model simulations, a machine-learning model, or other suitable vehicle models known in the art. The vehicle model may provide motion prediction of the vehicle 100 by looking at previous steering input and acceleration input. The prediction may include instabilities such as understeer or rollover risk, for example within a one second horizon. The prediction may also be used to counteract deterministic communication delays and actuator dynamics. The model may be, for example, a single-track model, i.e., left and right wheels on a given axle are considered together. The real units can have axle groups with several axles, but in the model they are considered together. A tyre model can be used in combination with the vehicle model. The tyre model may take into account the cornering stiffness of the tyres of the vehicle 100.
[0052] The tactical layer 204 is responsible for ensuring that the trajectory for the vehicle 100 is obstacle free and collision free. The tactical layer 204 may also provide a requested force control input in an autonomous driving case. The tactical layer 204 may also include predictive energy management, including battery targets, capabilities and statuses that determine how the energy sources of the vehicle 100 should be used for a whole mission.
[0053] In some examples, the tactical layer 204 can decide on state of charge (SoC) targets for batteries of the vehicle 100 as a function of distance, in some cases considering slope changes, etc. For example, the tactical layer 204 can request a battery having a higher SoC be drained for an uphill slope, as it can foresee that all batteries can be charged fully with regenerative braking at a following downhill slope. In some examples, an SoC controller (not shown) can calculate weighting factors for SoC targets. In some examples, the tactical layer 204 can send targets for the state of energy rate (SoE) directly to the control allocator 210. In another example, the tactical layer 204 request that one battery be drained faster than another based on the number of available chargers in a following charge station or due to equalizing the charging time of all batteries or decreasing the total charging time at the charging station.
[0054] The state estimator 206 is responsible for processing state information \’2 from the vehicle 100. For example, the state estimator 206 may receive information from sensors of the vehicle 100 such as wheel speed sensors, inertial measurement units, articulation angle sensors and the like and use this information to determine states for the vehicle 100. The state estimator 206 may then output state information xPto the energy manager 208 and state information xcto the control allocator 210.
[0055] The energy manager 208 determines a preferred power split between the different power sources of the vehicle 100, for example how the power demand is divided between theactuators of the vehicle 100 (e.g. an ICE, electrical machines 110, service brakes 140, steering servo arrangements and / or suspension systems). In the case of a vehicle combination, the energy manager 208 may determine a power split between the different units of the vehicle 100 and / or within each unit 110. Inputs to the energy manager 208 include the requested motion control input rreqfrom the target generator 202 and the statuses SoX of the batteries of the vehicle 100. The energy manager 208 determines a power allocation and an associated power allocation input Udes. The power split may be determined based on the state of energy rate (SoE) for each actuator and / or the longitudinal part of the requested force for the actuator. The energy manager 208 may consider factors that affect long-term energy consumption, such as road slopes, SoC states, charger locations, and the like, and determine power behavior as a function of the energy over time. The energy manager 208 may also be configured as a power manger. For example when a time horizon is considered, it may handle energy. When instantaneous values are considered, it may handle power.
[0056] Based on these values, the control allocator 210 may determine control signals that meet the requested global forces of the vehicle 100 to meet certain constraints, such as power management (optimising battery usage) and safety constraints (ensuring that the trajectory for the vehicle 100 is obstacle free and collision free). In particular, the control allocator 210 determines how various actuators (for example, the ICE, the electrical machines 110, service brakes 140, steering servo arrangements and / or suspension systems) of the vehicle 100 are to be controlled in order to generate requested global forces of the vehicle 100 as a whole.
[0057] The control allocator 210 transforms the requested force control input vreqfrom the target generator 202 into a true control input u for the vehicle 100, describing appropriate motion parameters for each actuator. The true control input u of the vehicle 100 comprises the force F to be applied for the vehicle 100. For example, the control allocator 210 maps the forces and moments of the vehicle 100 into the steering and drive / brake torques to be applied at the wheels 130. The true control input u for the vehicle 100 therefore also referred to as an allocated force control input for the vehicle 100.
[0058] In some examples, each actuator may be capable of estimating its own capabilities, e.g. how much force the actuator can provide at a current time instant. The actuators provide the actuator capability ucapto the control allocator 210. These capabilities may be expressed as a maximum, Umax, and a minimum, umin that represent bounds of force, torque or other parameters with the same physical unit as the true control input u. The control allocator 210 may also receive capabilities of the power input / output of the batteries 120. In this way, thecontrol allocator 210 can determine the motion capability vcapfor the vehicle 100. Each actuator may also be capable of estimating its own power losses. The actuators provide the power losses to the control allocator 210. The control allocator 210 may also receive other power losses, such as power losses in the batteries and the drivetrain. In this way, the control allocator 210 cam receive the total power losses Pioss for the vehicle 100.
[0059] In examples where the vehicle 100 is a vehicle combination comprising two or more units, the requested motion control input rreqmay comprise at least one of a longitudinal acceleration, a longitudinal velocity, a lateral velocity, and a yaw rate of one or more units of the vehicle 100. The control allocator 210 may be exemplified as a combination control allocator and a plurality of unit control allocators, which together form a distributed control allocation system for the vehicle 100. In this system, the control allocation may be performed on multiple levels, i .e. first on a level of the vehicle 100 as a whole, and then on a level of each vehicle unit individually. In this case, the combination control allocator transforms the requested force combination control input vreqfrom the target generator 202 into a true control input u for the whole vehicle 100, describing appropriate motion parameters for each unit, and into unit-specific force control inputs describing the forces that each respective unit is to produce in order to provide the true control input u of the whole vehicle 100. The unit control allocators transform the unit-specific force control inputs from the combination control allocator into unit-specific true control inputs describing actual actuator commands. In some examples, each unit may be capable of estimating its own capabilities and power losses. This is described in more detail in PCT patent application PCT / EP2022 / 082338, which was filed in the name of the same applicant (Volvo Truck Corporation) on 11 November 2022.
[0060] As discussed above, global force requests, for example the requested force control input vreqdetermined by the target generator 202, may be unfeasible. As such, the true control input u determined by the control allocator 210 cannot be realised. To remedy this, the control allocator 210 is configured to determine a line in a vector space from zero to a vector representing the requested force control input, and determine an intersection between the line and a representation, in the vector space, of attainable forces that can then be used to determine a feasible force control input.
[0061] FIG. 3 is a flowchart of an example computer-implemented method 300 for determining a force control input for a vehicle combination 100. The method 300 may be performed by the control system 200 of a vehicle 100, for example by the control allocator 210.
[0062] At 302, a requested force control input for the vehicle 100 is received. As discussed above, the requested force control input vreqmay be received by the control allocator 210 fromthe target generator 202. The requested force control input is related to a manoeuvre for the vehicle 100, and may comprise the forces Freq and / or moments Mz.req that need to be applied to the vehicle 100 in order to follow the requested motion control input rreq. The requested motion parameters included in the requested force control input vreqof the vehicle 100 may comprise at least one of a requested longitudinal force Fx,req of the vehicle 100, a requested lateral force Fy,req of the vehicle 100, and a requested yaw moment Mz.req for the vehicle 100.
[0063] At 304, it may be determined if the requested force control input for the vehicle 100 is unfeasible. This can be achieved by determining if there is a feasible allocated force control input u that corresponds to the requested force control input Vreq. In this case, all possible combinations of force control input elements in the allocated force control input u can be determined, and it can be verified whether any of these combinations corresponds to the requested force control input Vreq. This can be achieved by determining if there is a solution to an optimisation problem based on the requested force control input vreqor if that solution is empty. This provides a robust mathematical way to determine whether a requested force control input is unfeasible.
[0064] For the second approach, a requested force control input is defined Vreq [Vl.req, V2,req, vn,req] where n is the number of forces in the requested force control input vre?. Actuator constraints (um, Umax) are defined as discussed above. Inter-actuator constraints (amtn, amax) may include tyre limitations, for example road friction, actual lateral force and slip, as well as information about other couplings between the actuators, for example the sum of the torque from several actuators that operate through the same gear. Moreover, the inter-actuator constraints (amin, amax) may include a power limitation where the sum of the torque divided with the individual actuator speeds corresponds to the total power. It can then be determined whether there is a feasible solution to the following problem:Uf = arg min PZoss(u)where Uf is the optimized version of the true control input u for the vehicle 100, B is an (n x m) efficiency matrix, and A is a matrix that determines the constraints in how the actuators are coupled. The matrix B is determined based on the geometry of the vehicle 100 which maps the actuator requests with dimension m in the allocated force control input u to the requested forcecontrol input vreqwith dimension n. Typically, n « m. The matrix .4 determines the constraints in how the actuators are coupled. The coupling can be nonlinear, in which case the term Au is replaced with f(u,p) where p are parameters such as tire-road friction coefficient, normal loads (if they can be considered as time-varying), or maximum wheel force limits. Both d and B may be predetermined and stored in the control system 200 of the vehicle 100. In this case, it is intended to decrease the total power losses Pioss for the vehicle 100, but it will be appreciated that any other suitable form of optimisation could be employed. In some examples, the power allocation input Udes can be added an extra term in equation (1) to also decrease the errors u- Udes.
[0065] If the result of this optimisation problem is an empty space, then there is no feasible solution for u to corresponding to vreq. As such, it can be determined that the requested force control input vreqfor the vehicle 100 is unfeasible.
[0066] At 306, a line is determined in a vector space. The line extends from zero to a vector representing the requested force control input vreqin the vector space. In some examples, the number of dimensions of the vector space may be equal to the number of dimensions of the vector representing the requested force control input vreq, that is to say, the vector space has dimension n. This will give an exact solution for the allocated force control input u. In other examples, the vector space may be determined to have fewer dimensions, for example by removing dimensions that have a low importance relative to other dimensions. In some examples, one or more of the components in the requested force control input vreqmay be sufficiently small to be discounted, for example straight-line driving with almost zero lateral force request. In another example, a dimension may be removed if it is considered sufficiently important that is should not be relaxed by the line, for example when the requested moment Mz.req is considered for stability reasons. This can help to simplify the solution.
[0067] The line represents a solution of global forces in the direction of the requested forces. The question of the line can be given in terms of the requested force control input vreqas follows:As such, (n-1) equations and n parameters describe the line in an n-dimensional space of global forces. Equation (2) cab be reformulated as follows:where L is an (n-1) x n matrix and contains the information of the line from zero to the requested force control input Vreq.
[0068] The line may therefore be a multi-dimensional line. In some examples, the number of dimensions of the line may be equal to the number of dimensions of the vector representing the requested force control input vreq, that is to say, the number of columns of L is n. This will give an exact solution for the allocated force control input u. In other examples, the line may be determined to have fewer dimensions, for example by removing dimensions that have a low importance relative to other dimensions. This can help to simplify the solution.
[0069] In the case that one or more of the components in the requested force control inputVreq is a sufficiently small or even zero, the corresponding terms in equation (2) can be removed, which means the number of rows of L is less than (n-1). Any reformulation of equation (2) may change the formulation of the matrix L. For example, equation (5) may be reformulated as follows:where either equation (5) or (7) could be implemented dependent on the values of the requested force control input Vreq.
[0070] In some examples, 306 is performed in response to determining that the requested force control input is unfeasible at 304. This allows unfeasible control inputs to be turned into feasible inputs. In some examples, where is 304 omitted, 306 is performed on any type of requested force control input Vreq.
[0071] At 308, an intersection is determined between the line and a representation of attainable forces in the vector space. This is performed in order to limit the allocated force control input u to attainable forces. The attainable forces are the set of force control inputs the vector space of control inputs that are feasible, and can be represented by the actuator constraints (umin, Umax) and the inter-actuator constraints (cimm, cimax). The intersection can be determined by solving the following:where Bu-Vreq is a mapping between the requested force control input and the allocated force control input. This means that a solution uum is found that is feasible and in the direction of requested force control inputThe global force control input corresponding to uumis v / ™, which is given by Buum. The solution uumis one set of values for the actuators that will give the global force control input Vlim.
[0072] As discussed above, the attainable forces can be represented by the actuator constraints (umtn, Umax) and the inter-actuator constraints (amm, amax). This can be represented in the vector space as a convex hull, such that the intersection is the intersection between the line and the convex hull. When linear inequality constraints are considered, the set of solutions ofthe inequalities is a convex set, meaning the convex hull does not provide an overestimation of the attainable global forces. The convex hull can be determined using any suitable method known in the art, for example a polytope, e.g., a n-polytope. The intersection by the n-polytope and the line then corresponds to the limited global force vum. Various n-polytopes can be generated to represent variations the actuator constraints (umm, Umax) and the inter-actuator constraints (amin, amax), meaning that it is not necessary to run an optimisation problem online. This approach allows certain parameters to be changed on the fly, for example the number of actuators, the constraints, a mapping function, meaning different scenarios do not need to be precomputed and stored in a memory. Furthermore, this approach can handle a large number of actuators in an efficient way (e.g. in terms of memory), and therefore handle the mapping between the requested force control input and the allocated force control input efficiently.
[0073] At 310, the vector from zero to the determined intersection vummay be applied to an optimisation problem to provide a force control input that is optimised in some way. For example, whilst the solution unmis feasible, it may not be correspond to sufficiently decreased power losses. In this case, there is redundancy in how to reach Viimwe apply a final optimisation step to find the power minimal solution.where uPis an optimised allocated force control input. Whilst the solution uPmay no longer exactly fulfil the requested force control input vreq, it is feasible and gives a global force in the same direction of the requested force control input vreq that is power optimal. In this case, it is intended to decrease the total power losses Piossfor the vehicle 100, but it will be appreciated that any other suitable form of optimisation could be employed. This enables further optimisation of the force control in order to achieve a particular goal, for example the reduction of power losses.
[0074] At 312, the vector from zero to the determined intersection is implemented as an allocated force control input for the vehicle. In the case that the optimisation has been performed at 310, the solution uPis the request that is sent to the actuators. In the case that the optimisation at 310 is omitted, the solution uumis the request that is sent to the actuators. In thecase that the requested force control input for the vehicle 100 is determined as feasible at 304, the solution w / is the request that is sent to the actuators.
[0075] The systems, methods and other approaches disclosed herein provide a force control input that can always be realised, even when the initial requested force control input is unfeasible. The force control input can be allocated directly, or further optimised. The enables optimisation of a force control input, for example minimisation of power losses, for overactuated vehicles such as electrified trucks.
[0076] FIG. 4 is a schematic diagram of a computer system 400 for implementing examples disclosed herein. The computer system 400 is adapted to execute instructions from a computer-readable medium to perform these and / or any of the functions or processing described herein. The computer system 400 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 400 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.
[0077] The computer system 400 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 400 may include processing circuitry 402 (e.g., processing circuitry including one or more processor devices or control units), a memory 404, and a system bus 406. The computer system 400 may include at least one computing device having the processing circuitry 402. The system bus 406 provides an interface for system components including, but not limited to, the memory 404 and the processing circuitry 402. The processing circuitry 402 may include any number of hardware components for conducting data or signal processing or for executing computer code stored in memory 404. The processing circuitry 402 may, for example, include a general-purposeprocessor, 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 functions described herein. The processing circuitry 402 may further include computer executable code that controls operation of the programmable device.
[0078] The system bus 406 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 404 may be one or more devices for storing data and / or computer code for completing or facilitating methods described herein. The memory 404 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 404 may be communicably connected to the processing circuitry 402 (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 404 may include non-volatile memory 408 (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory 410 (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 machineexecutable instructions or data structures and which can be accessed by a computer or other machine with processing circuitry 402. A basic input / output system (BIOS) 412 may be stored in the non-volatile memory 408 and can include the basic routines that help to transfer information between elements within the computer system 400.
[0079] The computer system 400 may further include or be coupled to a non-transitory computer-readable storage medium such as the storage device 414, 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 414 and other drives associated with computer-readable media and computer-usable media may provide nonvolatile storage of data, data structures, computer-executable instructions, and the like.
[0080] 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 circuitryto implement the functionality described herein in whole or in part. The modules may be stored in the storage device 414 and / or in the volatile memory 410, which may include an operating system 416 and / or one or more program modules 418. All or a portion of the examples disclosed herein may be implemented as a computer program 420 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 414, which includes complex programming instructions (e.g., complex computer-readable program code) to cause the processing circuitry 402 to carry out actions described herein. Thus, the computer-readable program code of the computer program 420 can comprise software instructions for implementing the functionality of the examples described herein when executed by the processing circuitry 402. In some examples, the storage device 414 may be a computer program product (e.g., readable storage medium) storing the computer program 420 thereon, where at least a portion of a computer program 420 may be loadable (e.g., into a processor) for implementing the functionality of the examples described herein when executed by the processing circuitry 402. The processing circuitry 402 may serve as a controller or control system for the computer system 400 that is to implement the functionality described herein.
[0081] The computer system 400 may include an input device interface 422 configured to receive input and selections to be communicated to the computer system 400 when executing instructions, such as from a keyboard, mouse, touch-sensitive surface, etc. Such input devices may be connected to the processing circuitry 402 through the input device interface 422 coupled to the system bus 406 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 400 may include an output device interface 424 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 400 may include a communications interface 426 suitable for communicating with a network as appropriate or desired.
[0082] 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 exemplified 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.
[0083] According to certain examples, there is also disclosed:Example 1. A computer system (210) for determining a force control input for a vehicle (100), the computer system comprising processing circuitry configured to: receive a requested force control input for the vehicle; determine a line in a vector space from zero to a vector representing the requested force control input; determine an intersection between the line and a representation, in the vector space, of attainable forces; and implement a vector from zero to the intersection as an allocated force control input for the vehicle.Example 2. The computer system (210) of example 1, wherein the processing circuitry is configured to determine the line in response to determining that the requested force control input is unfeasible.Example 3. The computer system (210) of example 2, wherein the processing circuitry is configured to determine that the requested force control input is unfeasible by: determining that no feasible allocated force control input corresponds to the requested force control input; or determining that a solution to a first optimisation problem based on the requested force control input is empty.Example 4. The computer system (210) of any preceding example, wherein the number of dimensions of the vector space is equal to the number of dimensions of the vector representing the requested force control input.Example 5. The computer system (210) of any preceding example, wherein the number of dimensions of the line is equal to the number of dimensions of the vector representing the requested force control input.Example 6. The computer system (210) of any preceding example, wherein the processing circuitry is configured to solve a second optimisation problem to determine theintersection, wherein the second optimisation problem is based on the line and a mapping between the requested force control input and the allocated force control input.Example 7. The computer system (210) of any preceding example, wherein the representation of attainable forces is a convex hull, and the processing circuitry is configured to determine the intersection by determining an intersection between the line and the convex hull.Example 8. The computer system (210) of example 7, wherein the convex hull is determined using a polytope.Example 9. The computer system (210) of any preceding example, wherein the processing circuitry is further configured to apply the vector to the intersection to a third optimisation problem to provide an optimised allocated force control input.Example 10. A vehicle (100) comprising the computer system (210) of any preceding example.Example 11. A computer-implemented method (300) for determining a force control input for a vehicle (100), the method comprising: receiving (302), by processing circuitry of a computer system, a requested force control input for the vehicle; determining (306), by the processing circuitry, a line in a vector space from zero to a vector representing the requested force control input; determining (308), by the processing circuitry, an intersection between the line and a representation, in the vector space, of attainable forces; and implementing (312), by the processing circuitry, a vector from zero to the intersection as an allocated force control input for the vehicle.Example 12. The computer-implemented method (300) of example 11, comprising determining, by the processing circuitry, the line in response to determining (304) that the requested force control input is unfeasible.Example 13. The computer-implemented method (300) of example 12, comprising determining (304), by the processing circuitry, that the requested force control input is unfeasible by: determining that no feasible allocated force control input corresponds to the requested force control input; or determining that a solution to a first optimisation problem based on the requested force control input is empty.Example 14. The computer-implemented method (300) of any of examples 11 to 13, wherein the number of dimensions of the vector space is equal to the number of dimensions of the vector representing the requested force control input.Example 15. The computer-implemented method (300) of any of examples 11 to 14, wherein the number of dimensions of the line is equal to the number of dimensions of the vector representing the requested force control input.Example 16. The computer-implemented method (300) of any of examples 11 to 15, comprising solving, by the processing circuitry, a second optimisation problem to determine the intersection, wherein the second optimisation problem is based on the line and a mapping between the requested force control input and the allocated force control input.Example 17. The computer-implemented method (300) of any of examples 11 to 16, wherein the representation of attainable forces is a convex hull, the computer- implemented method comprising determining, by the processing circuitry, the intersection by determining an intersection between the line and the convex hull.Example 18. The computer-implemented method (300) of any of examples 11 to 17, further comprising applying (310), by the processing circuitry, the vector to the intersection to a third optimisation problem to provide an optimised allocated force control input.Example 19. A computer program product comprising program code for performing, when executed by processing circuitry, the computer-implemented method (300) of any of examples 11 to 18.Example 20. A non-transitory computer-readable storage medium comprising instructions, which when executed by processing circuitry, cause the processing circuitry to perform the computer-implemented method (300) of any of examples 11 to 18.
[0084] 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.
[0085] 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.
[0086] 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 element 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.
[0087] 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 towhich 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.
[0088] 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
CLAIMSWhat is claimed is:
1. A computer system (210) for determining a force control input for a vehicle (100), the computer system (210) comprising processing circuitry configured to: receive a requested force control input for the vehicle (100); determine a line in a vector space from zero to a vector representing the requested force control input; determine an intersection between the line and a representation, in the vector space, of attainable forces; and implement a vector from zero to the intersection as an allocated force control input for the vehicle (100).
2. The computer system (210) of claim 1, wherein the processing circuitry is configured to determine the line in response to determining that the requested force control input is unfeasible.
3. The computer system (210) of claim 2, wherein the processing circuitry is configured to determine that the requested force control input is unfeasible by: determining that no feasible allocated force control input corresponds to the requested force control input; or determining that a solution to a first optimisation problem based on the requested force control input is empty.
4. The computer system (210) of any of claims 1-3, wherein the number of dimensions of the vector space is equal to the number of dimensions of the vector representing the requested force control input.
5. The computer system (210) of any of claims 1-4, wherein the number of dimensions of the line is equal to the number of dimensions of the vector representing the requested force control input.
6. The computer system (210) of any of claims 1-5, wherein the processing circuitry is further configured to solve a second optimisation problem to determine the intersection, wherein the second optimisation problem is based on the line and a mapping between the requested force control input and the allocated force control input.
7. The computer system (210) of any of claims 1 -6, wherein the representation of attainable forces is a convex hull, and the processing circuitry is configured to determine the intersection by determining an intersection between the line and the convex hull.
8. The computer system (210) of claim 7, wherein the convex hull is determined using a polytope.
9. The computer system (210) of any of claims 1-8, wherein the processing circuitry is further configured to apply the vector to the intersection to a third optimisation problem to provide an optimised allocated force control input.
10. A vehicle (100) comprising the computer system (210) of any of claims 1-9.
11. A computer-implemented method (300) for determining a force control input for a vehicle (100), the method comprising: receiving (302), by processing circuitry of a computer system, a requested force control input for the vehicle (100); determining (306), by the processing circuitry, a line in a vector space from zero to a vector representing the requested force control input; determining (308), by the processing circuitry, an intersection between the line and a representation, in the vector space, of attainable forces; and implementing (312), by the processing circuitry, a vector from zero to the intersection as an allocated force control input for the vehicle (100).
12. The computer-implemented method (300) of claim 11, comprising determining, by the processing circuitry, the line in response to determining (304) that the requested force control input is unfeasible.
13. The computer-implemented method (300) of claim 12, comprising determining (304), by the processing circuitry, that the requested force control input is unfeasible by: determining that no feasible allocated force control input corresponds to the requested force control input; or determining that a solution to a first optimisation problem based on the requested force control input is empty.
14. The computer-implemented method (300) of any of claims 11-13, wherein the number of dimensions of the vector space is equal to the number of dimensions of the vector representing the requested force control input.
15. The computer-implemented method (300) of any of claims 11-14, wherein the number of dimensions of the line is equal to the number of dimensions of the vector representing the requested force control input.
16. The computer-implemented method (300) of any of claims 11-15, comprising solving, by the processing circuitry, a second optimisation problem to determine the intersection, wherein the second optimisation problem is based on the line and a mapping between the requested force control input and the allocated force control input.
17. The computer-implemented method (300) of any of claims 11-16, wherein the representation of attainable forces is a convex hull, the computer-implemented method comprising determining, by the processing circuitry, the intersection by determining an intersection between the line and the convex hull.
18. The computer-implemented method (300) of any of claims 11-17, further comprising applying (310), by the processing circuitry, the vector to the intersection to a third optimisation problem to provide an optimised allocated force control input.
19. A computer program product comprising program code for performing, when executed by processing circuitry, the computer-implemented method (300) of any of claims I lls.
0. A non-transitory computer-readable storage medium comprising instructions, which when executed by processing circuitry, cause the processing circuitry to perform the computer-implemented method (300) of any of claims 11-18.