The disclosure relates generally to vehicle control. In particular aspects, the disclosure relates to safe control of vehicle combinations. 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.
Vehicle combinations comprising a tractor and one or more trailers are often over-actuated, which means there are more actuators than number of controlled motions. This means that it is possible to allocate torque (i.e. braking or acceleration torque) differently between the tractor and the trailer(s). This can be used to optimise the torque allocation in some way, for example by maximising energy efficiency. However, to be able to do this, one must first know which allocations are safe. There is currently no quick and efficient way to implement such an assessment online for different vehicle operating points.
It is therefore desired to provide systems, methods and other approaches that attempt to resolve or at least mitigate one or more of these issues.
This disclosure provides systems, methods and other approaches for determining a safe torque allocation for a vehicle combination. In particular, a number of simulations for motion of the vehicle combination are performed. The simulations are performed for different combinations of torque allocations and vehicle states, and are each classified as either safe or unsafe. A machine learning model can then be trained using the results of the simulation. The trained model can then be used to output which torque allocations are safe and which are unsafe for a given operating point of the vehicle combination.
According to a first aspect of the disclosure, there is provided a computer system for training a machine learning model to determine a safe torque allocation for a vehicle combination comprising a tractor unit and at least one trailing unit, the computer system comprising processing circuitry configured to perform a plurality of simulations for motion of the vehicle combination based on a plurality of torque allocations and a plurality of operating points for the vehicle combination, classify each simulation as safe or unsafe, and train a machine learning model using the plurality of simulations to determine a safe torque allocation for the vehicle combination based on an operating point of the vehicle combination.
The first aspect of the disclosure may seek to provide a machine learning model that can quickly and reliably output safe torque allocations based on a state of a vehicle combination. This can be implemented in a vehicle combination so that it can be controlled in a safe manner dependent on parameters of the vehicle combination and/or its environment.
Optionally in some examples, including in at least one preferred example, each torque allocation comprises a respective torque allocation for each unit of the vehicle combination, and the sum of the respective torque allocations meets a total torque allocation for the vehicle combination. A technical benefit may include that the machine learning model is capable of providing safe torque allocations for vehicle combinations having different configurations of units, and that a chosen allocation can be implemented at a unit level.
Optionally in some examples, including in at least one preferred example, each operating point is defined based on one or more of a velocity v of the vehicle combination, a lateral acceleration αy of the vehicle combination, one or more axle loads Fz of one or more units of the vehicle combination, a yaw rate ψ of one or more units of the vehicle combination a slip angle α of one or more units of the vehicle combination, a slip angular rate {grave over (α)} of one or more units of the vehicle combination, a road wheel angle δ of one or more units of the vehicle combination, a surface friction μ, a curve radius r, and/or a path gradient. A technical benefit may include that the machine learning model is capable of providing safe torque allocations for operating points of vehicle combinations that are defined in different ways, enabling the model to be used in various different scenarios.
Optionally in some examples, including in at least one preferred example the processing circuitry is configured to classify a simulation as unsafe if the motion simulated by the simulation comprises an instability of the vehicle combination. A technical benefit may include that the machine learning model is capable of providing torque allocations that avoid unsafe and/or unstable operating modes of the vehicle combination, ensuring safe operation.
According to a second aspect of the disclosure, there is provided a computer system for determining a safe torque allocation for a vehicle combination comprising a tractor unit and at least one trailing unit, the computer system comprising processing circuitry configured to receive a plurality of torque allocations that meet a torque request for the vehicle combination, receive an operating point of a vehicle combination, and output, using a machine learning model trained according to the first aspect, one or more safe torque allocations for the vehicle combination based on the received torque allocations and operating point.
The second aspect of the disclosure may seek to output safe torque allocations based on a state of a vehicle combination in a fast and reliable manner. This can be implemented online, so that the vehicle combination can be controlled to meet a torque request in a safe manner dependent on parameters of the vehicle combination and/or its environment.
Optionally in some examples, including in at least one preferred example the received operating point is a current operating point of the vehicle combination. A technical benefit may include that safe torque allocations can be output based on current operating parameters and travelling conditions, ensuring that the vehicle combination can be controlled in an adaptive manner.
Optionally in some examples, including in at least one preferred example, the processing circuitry is configured to generate an alert or modify the torque request if the one or more output safe torque allocations does not meet one or more second criteria. A technical benefit may include that an operator of the vehicle may be informed that no optimal torque allocations are available, or that the vehicle can be controlled in a different manner to satisfy the one or more second criteria.
Optionally in some examples, including in at least one preferred example, the machine learning model is configured to output a plurality of safe torque allocations for the vehicle combination, and the processing circuitry is configured to determine a safe torque allocation from the plurality of safe torque allocations based on one or more first criteria. A technical benefit may include that a range of possible safe torque allocations can be provided, from which one can be chosen based on a given parameter, for example selecting a safe torque allocation that provides good energy efficiency.
Optionally in some examples, including in at least one preferred example, the processing circuitry is configured to apply a safety margin to the one or more output safe torque allocations. A technical benefit may include that operation of the vehicle combination is maintained comfortably within a safe operating envelope and not near a limit of unsafe or unstable operation.
Optionally in some examples, including in at least one preferred example, the processing circuitry is configured to cause an output safe torque allocation to be implemented as a torque allocation for the vehicle combination. A technical benefit may include that the vehicle combination can be controlled in a safe manner in a fast and reliable way.
According to a third aspect of the disclosure, there is provided a vehicle comprising the computer system of the first and/or second aspects. The third aspect of the disclosure may seek to provide a vehicle capable of determining a safe torque allocation based on a given operating point.
According to a fourth aspect of the disclosure, there is provided a computer-implemented method for training a machine learning model to determine a safe torque allocation for a vehicle combination comprising a tractor unit and at least one trailing unit, the method comprising performing, by processing circuitry of a computer system, a plurality of simulations for motion of the vehicle combination based on a plurality of torque allocations and a plurality of operating points for the vehicle combination, classifying, by the processing circuitry, each simulation as safe or unsafe, and training, by the processing circuitry, a machine learning model using the plurality of simulations to determine a safe torque allocation for the vehicle combination based on an operating point of the vehicle combination.
The fourth aspect of the disclosure may seek to provide a machine learning model that can quickly and reliably output safe torque allocations based on a state of a vehicle combination. This can be implemented in a vehicle combination so that it can be controlled in a safe manner dependent on parameters of the vehicle combination and/or its environment.
According to a fifth aspect of the disclosure, there is provided a computer-implemented method for determining a safe torque allocation for a vehicle combination comprising a tractor unit and at least one trailing unit, the method comprising receiving, by processing circuitry of a computer system, a plurality of torque allocations that meet a torque request for the vehicle combination, receiving, by the processing circuitry an operating point of a vehicle combination, and outputting, by the processing circuitry and using a machine learning model trained according to the fourth aspect, one or more safe torque allocations for the vehicle combination based on the received torque allocations and operating point.
The fifth aspect of the disclosure may seek to output safe torque allocations based on a state of a vehicle combination in a fast and reliable manner. This can be implemented online, so that the vehicle combination can be controlled in a safe manner dependent parameters of the vehicle combination and/or its environment.
According to a sixth 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 of the fourth and/or fifth aspects. The sixth aspect of the disclosure may seek to enable new vehicles and/or legacy vehicles to be conveniently configured, by software installation/update, to determine a safe torque allocation based on a given operating point in a fast and reliable manner.
According to a seventh 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 of the fourth and/or fifth aspects. The seventh aspect of the disclosure may seek to enable new vehicles and/or legacy vehicles to be conveniently configured, by software installation/update, to determine a safe torque allocation based on a given operating point in a fast and reliable manner.
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.
Examples are described in more detail below with reference to the appended drawings.
Like reference numerals refer to like elements throughout the description.
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.
Vehicle combinations comprising a tractor and one or more trailers are often over-actuated, which means there are more actuators than number of controlled motions. This means that it is possible to allocate torque (i.e. braking or acceleration torque) differently between tractor and trailer. This can be used to optimise the torque allocation in some way, for example by maximising energy efficiency. However, to be able to do this, one must first know which allocations are safe. There is currently no quick and efficient way to implement such an assessment online for different vehicle operating points.
To remedy this, systems, methods and other approaches are provided for determining a safe torque allocation for a vehicle combination. In particular, a number of simulations for motion of the vehicle combination are performed. The simulations are performed for different combinations of torque allocations and vehicle states, and are each classified as either safe or unsafe. A machine learning model can then be trained using the results of the simulation. The trained model can then be used online and, based on a current state of the vehicle, output which torque allocations are safe and which are unsafe.
By training and implementing a machine learning model in this way, a vehicle combination can be provided with a fast and reliable way to output safe torque allocations based on a state of the vehicle combination. This can be implemented online, so that the vehicle combination can be controlled in a safe manner dependent on current operating parameters and travelling conditions. This implementation also allows a range of possible safe torque allocations to be provided, from which one can be chosen based on a given parameter, for example selecting a safe torque allocation that provides good energy efficiency.
A tractor unit, such as the tractor unit 110-1, is generally the foremost unit in a vehicle combination 100, and may comprise the cabin for the driver, including steering controls, dashboard displays and the like. Generally, the tractor unit 110-1 is used to provide propulsion power for the vehicle combination 100. In the example of
A trailing unit, such as the trailing unit 110-2, is generally used to store goods that are being transported by the vehicle combination 100. A trailing unit may be a truck, trailer, dolly and the like. A trailing unit may also provide propulsion to the vehicle combination 100. In vehicle combinations such as that shown in
Each unit 110 comprises a number of axles 120, each having a number of wheels 130. It will be appreciated that any suitable number of axles 120 may be provided on the respective units 110. A trailing unit 110-2 without a front axle is known as a semi-trailer. It will also be appreciated that any number of the tractor axles and/or trailer axles may be driven axles, including zero (i.e. one of the units 110 may include at least one driven axle while the other does not).
The slip angle may also be known as the side slip angle.
The various parameters illustrated in
At any given operating point 140, a torque request may be received for the vehicle combination 100, for example from a manual or virtual driver, relating to some desired motion of the vehicle combination 100. The torque request may be at a global (vehicle) level. A global torque request can be divided into respective torque requests for each unit 110. The sum of the respective unit torque requests meets the total global torque request for the vehicle combination 100. For example, the torque request for the vehicle combination 100 may be considered as a total torque request T (covering braking and/or propulsion), comprising a torque request Treq,tractor for the tractor unit 110-1 and a torque request Treq,trailer for the trailing unit 110-2. The torque request is translated into a torque allocation for the vehicle combination 100, comprising the actual signals provided to the motion support devices of the vehicle combination 100, for example one or more electrical machines of a propulsion or braking system of the vehicle combination 100 configured to drive, e.g. provide torque and/or steering to, one or more axles 120 or individual wheels 130 of the vehicle combination 100. The torque allocation may also be at a vehicle or a unit level. This allocation of torque may be performed by a vehicle motion manager (VMM) of the vehicle combination 100.
The ability to allocate torque (i.e. braking or acceleration torque) differently between a tractor unit 110-1 and a trailing unit 110-2 can be used to optimise the torque allocation in some way, for example by maximising energy efficiency. However, to be able to do this, one must first know which allocations are safe. There is currently no quick and efficient way to implement such an assessment online for different operating points 140 of a vehicle combination 100. To remedy this, the present disclosure provides systems, methods and other approaches for training and implementing a machine learning model to determine a safe torque allocation for a vehicle combination 100.
At 210, a plurality of simulations are performed for motion of the vehicle combination 100. Each simulation is based on a torque allocation and an operating point 140 for the vehicle combination 100. That is to say, each simulation models the motion of the vehicle combination 100 in response to receiving a particular torque allocation at an operating point 140 defined by one or parameters of the vehicle combination 100 and/or its environment. The simulations may be performed using a suitable vehicle model. A suitable vehicle model should preferably be a vehicle model that captures vehicle dynamics such as longitudinal, lateral, and vertical dynamics (depending on instabilities that are under consideration). The model should preferably include a sufficient number of parameters and factors to provide an accurate representation of the vehicle's behaviour, especially under conditions associated with instability. Examples of such models include lower fidelity models such as single track or two track models and higher fidelity models such as the Volvo Transport Model. The model should preferably include a sufficiently accurate tyre model, such as a Pajecka tyre model, a brush tyre model, or the like.
As discussed above, each torque allocation may be a global torque allocation for the vehicle combination 100 or may comprise a respective torque allocation for each unit 110 of the vehicle combination 100, where the sum of the respective torque allocations meets a total torque allocation for the vehicle combination 100. The torque allocations used in the simulations may relate to braking and/or acceleration of the vehicle combination 100. As also discussed above, each operating point 140 is defined based on one or more of a velocity v of the vehicle combination 100, a lateral acceleration dy of the vehicle combination 100, one or more axle loads one or more units 110 of the vehicle combination 100, a yaw rate up of one or more units 110 of the vehicle combination 100, a slip angle α of one or more units 110 of the vehicle combination 100, a slip angular rate {grave over (α)} of one or more units 110 of the vehicle combination 100, a road wheel angle δ of one or more units 110 of the vehicle combination 100, a surface friction u, a curve radius r, and a path gradient. In some examples, a slip angle α of one or more axles 120 or one or more wheels 130 may additionally or alternatively be used.
At 220, each simulation is classified as either safe or unsafe. For example, a simulation may be classified as unsafe if the simulated motion of the vehicle combination 100 includes an instability of the vehicle combination 100. In some examples, if any state of the vehicle combination 100 during the simulation is considered unsafe, every time instance of that simulation is classified as unsafe. May different types of instability may be identified. In some examples, an instability is the occurrence of jack-knifing, when the tractor unit 110-1 starts to skid sideways and pushes the tractor unit 110-2 causing the tractor unit 110-1 to turn around a vertical axis until it hits the trailing unit 110-2. In some examples, an instability is the occurrence of trailer swing, when the wheels of the trailing unit 110-2 slip while the wheels of the tractor unit 110-1 do not, causing the trailing unit 110-2 to swing around a vertical axis. In some examples, an instability is the occurrence of combinational spin-out, where both jack-knifing and trailer swing occur. In some examples, an instability is the occurrence of rollover, where one or more units 110 of the vehicle combination 100 tips over. In some examples, an instability is the occurrence of off-tracking, where one or more units 110 of the vehicle combination 100 travels outside of its intended path. In some examples, an instability may be identified based on the slip angular rate {grave over (α)} and/or the yaw rate ψ of one or more units 110 of the vehicle combination 100. This captures whether a unit experiences a fast change of yaw angle ψ within a short amount of time, which indicates unstable behaviour. In some examples, an inability may include rearward amplification, which is a measure of signal oscillation (such as the yaw rate ψ of one or more units 110) during sudden steering.
If a simulation does not result in an instability of the vehicle combination 100, it is classified as safe. In these examples, the simulated motion of the vehicle combination 100 may be as intended or expected for a corresponding motion request.
In this way, each pair of a torque allocation and an operating point 140 is classified based on the resulting simulated motion. As such, a number of data points are defined comprising a torque allocation and operating point pair and an associated safety or stability classification. These data points can then be used as training data for a machine learning model. It will be appreciated that a significant number of data points may be required to train the machine learning model to a sufficiently accurate and reliable level.
At 230, a machine learning model is trained using the data points to determine a safe torque allocation for the vehicle combination 100. In particular, at least some of the data points are used to train the machine learning model such that the model adapts its parameters (weights and biases) in order to minimize the error between predictions and actual values. In some embodiments, as the machine learning model is trained, at least some the data points are used to monitor the model's performance in terms of hyperparameters (e.g., learning rate, regularization strength). This helps prevent overfitting by providing an independent dataset for tuning. Additionally, the validation data can be used to compare different models and select the best one.
Any suitable machine learning model may be used. Some suitable models include decision tree models, random forest models, and neural networks. In some examples, a neural network having one, two, or three hidden layers may be used. In one example, a feed-forward neural network having three hidden layers is used. Neural networks can capture intricate patterns with potential for improved understanding through hyperparameter adjustments.
Due to the classification of the various simulations, the trained machine learning model is capable of providing safe torque allocations that avoid unsafe and/or unstable operating modes of the vehicle combination. Once the machine learning model has been trained, it can be used to determine a safe torque allocation based on an input operating point 140 of the vehicle combination 100. This will be explained in relation to
At 310, a torque request for the vehicle combination 100 is received. As discussed above, the torque request for the vehicle combination 100 may be received, for example, from a manual or virtual driver. The torque request may be a global torque request that can be divided into respective torque requests for each unit 110. The sum of the respective unit torque requests meets the total global torque request for the vehicle combination 100.
At 320, a number of different torque allocations are determined that meet the torque request. This may be performed by a VMM of the vehicle combination 100, as known in the art. The torque allocations may be global torque allocations for the vehicle combination 100 or may comprise a respective torque allocation for each unit 110 of the vehicle combination 100. In some examples, it may be ensured that the torque allocations has a sufficient resolution. This may relate to the number of torque allocations determined for the torque request, and/or their distribution between maximum and minimum values.
At 330, a machine learning model receives the torque allocations determined at 320 from the torque request received at 310. The machine learning model may be trained according to the method 200. The machine learning model may be implemented as a software module in a computer system, for example a control system of the vehicle combination 100, as will be discussed in relation to
At 340, the machine learning model receives an input in the form of an operating point 140 of a vehicle combination 100. As discussed above, an operating point 140 may be defined based on a number of different parameters of the vehicle combination 100 and/or its environment.
At 350, the machine learning model outputs one or more safe torque allocations for the vehicle combination 100. In particular, due to the training performed in the method 200, the machine learning model is able to output one or more safe torque allocations for the input operating point 140 from the number of torque allocations received at 330. Depending on how the machine learning model is trained and how the input torque allocations are determined, the output safe torque allocations may be global torque allocations for the vehicle combination 100 or may comprise a respective torque allocation for each unit 110 of the vehicle combination 100. As such, the machine learning model is capable of providing safe torque allocations for vehicle combinations having different configurations of units, and a chosen allocation can be implemented at a global or a unit level.
The input operating point 140 may be a current operating point 140 of the vehicle combination 100. In this way, a number of safe torque allocations can be provided online, i.e. as the vehicle combination 100 is in motion and a torque request is received. This ensures that the vehicle combination is controlled in an adaptive manner based on current operating parameters and travelling conditions.
Where the machine learning model outputs a plurality of safe torque allocations, at 360, a single one 404a, 404b of the plurality of safe torque allocations 404 is determined based on one or more first criteria. For example, a criteria may be set relating to a maximum level 410 of braking for the tractor unit 110-1, and any of the plurality of safe torque allocations 404 that involve braking above this level may be disregarded. In the example of
In some examples, at 370, a safety margin may be applied to the one or more output safe torque allocations. In particular, a safety margin may be applied at the limit between safe and unsafe torque allocations. In some examples, the safety margin may be an absolute value. In some examples, the safety margin may be a function of a parameter. In the example of
In some examples, at 380, a check may be performed on the one or more output safe torque allocations 404 based on one or more second criteria, and a resulting action can be taken. In one example, it may be required that a minimum number of safe torque allocations 404 are output by the machine learning model. In one example, it may be required that the torque allocations have sufficient resolution (e.g. a sufficiently even distribution between maximum and minimum values). In one example, it may be required that all measurements adhere to a maximum uncertainty and/or minimum accuracy. If the one or more second criteria are not met, a resulting action may include generating an alert for the operator of the vehicle combination 100, or modifying the torque request for the vehicle combination 100. In this way, an operator of the vehicle may be informed that no optimal torque allocations are available, or that the vehicle combination 100 can be controlled in a different manner to satisfy the one or more second criteria. If the one or more second criteria are met, the method 300 may proceed.
In some examples, at 390, an output safe torque allocation 404 may be caused to be implemented as a torque allocation for the vehicle combination 100. This may be performed by a VMM of the vehicle combination 100, as will be discussed in relation to
By training and implementing a machine learning model in this way, a vehicle combination 100 can be provided with a fast and reliable way to output safe torque allocations based on a state of the vehicle combination. The training of the model avoids the output of unsafe and/or unstable operating modes of the vehicle combination. The model may be implemented online, so that the vehicle combination 100 can be controlled in a safe manner dependent on parameters of the vehicle combination and/or its environment. This implementation also allows a range of possible safe torque allocations to be provided, from which one can be chosen based on a given parameter, for example selecting a safe torque allocation that provides good energy efficiency. A safe torque allocation can be maintained comfortably within a safe operating envelope and not near a limit of unsafe or unstable operation.
The first computer system 502 comprises processing circuitry 506 configured to perform the steps of the method 200. To this end, the first computer system 502 may perform a plurality of simulations for motion of the vehicle combination 100, classify each simulation as either safe or unsafe, and train a machine learning model using the resulting data points. The trained machine learning model may then be implemented by the first computer system 502, or by another computer system, such as the second computer system 504. In some examples, the first computer system 502 may be a remote system, implemented at a distance from the vehicle combination 100, for example in a central operating facility associated with the vehicle combination 100.
The second computer system 504 comprises processing circuitry 508 configured to perform the steps of the method 300. To this end, the first computer system 502 may receive an input in the form of an operating point 140 of a vehicle combination 100, and output one or more safe torque allocations for the vehicle combination 100. The second computer system 504 may be a vehicle control unit configured to perform various vehicle control functions, such as vehicle motion management. In some examples, the second computer system 504 may be local to the vehicle combination 100.
The first computer system 502 may be communicatively coupled to the second computer system 504 in any suitable way, for example via a circuit or any other wired, wireless, or network connection known in the art. Furthermore, the communicative coupling may be implemented as a direct connection between the first computer system 502 and the second computer system 504, or may be implemented as a connection via one or more intermediate entities
The second computer system 504 may also be communicatively coupled to a VMM 510 comprising processing circuitry 512 configured to control components of the vehicle combination 100, for example propulsion and/or braking systems of the vehicle combination 100. The VMM 510 is implemented locally to the vehicle combination 100. The VMM 510 may be implemented on a vehicle and/or a unit level, for example as a consolidated controller or a set of distributed controllers across the units 110 of the vehicle combination 100. The VMM 510 may receive a safe torque allocation from the second computer system 504, and implement it in the relevant systems of the vehicle combination 100. For example, the VMM 510 may receive a safe torque allocation from the second computer system 504 for the vehicle combination 100, which it translates into a torque allocation for each unit 110 of the vehicle combination 100. Alternatively, the VMM 510 may receive a safe torque allocation from the second computer system 504 for each unit 110 of the vehicle combination 100.
In some examples, the computer environment 500 may be implemented in a single location. That is to say the first computer system 502 and the second computer system 504 may be collocated, or may indeed be implemented as a single computer system. As such, the training of the machine learning model and its implementation may be performed at the same location. In one example, this combined system is implemented remotely from the vehicle combination 100, for example in a central operating facility associated with the vehicle combination 100. The implementation of the trained machine learning model could be used to generate a database or look-up table of safe torque allocations for different operating points, which could then be stored in a control system of the vehicle combination 100 for querying when necessary. This could reduce the computational resources required in the vehicle combination 100. In another example, this combined system is implemented locally to the vehicle combination 100, for example in a control system of the vehicle combination 100. This means that all functions of the approached disclosed herein can be implemented in a self-contained manner on board the vehicle combination 100.
The computer system 600 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 600 may include processing circuitry 602 (e.g., processing circuitry including one or more processor devices or control units), a memory 604, and a system bus 606. The computer system 600 may include at least one computing device having the processing circuitry 602. The system bus 606 provides an interface for system components including, but not limited to, the memory 604 and the processing circuitry 602. The processing circuitry 602 may include any number of hardware components for conducting data or signal processing or for executing computer code stored in memory 604. The processing circuitry 602 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 functions described herein. The processing circuitry 602 may further include computer executable code that controls operation of the programmable device.
The system bus 606 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 604 may be one or more devices for storing data and/or computer code for completing or facilitating methods described herein. The memory 604 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 604 may be communicably connected to the processing circuitry 602 (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 604 may include non-volatile memory 608 (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory 610 (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 602. A basic input/output system (BIOS) 612 may be stored in the non-volatile memory 608 and can include the basic routines that help to transfer information between elements within the computer system 600.
The computer system 600 may further include or be coupled to a non-transitory computer-readable storage medium such as the storage device 614, 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 614 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.
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 614 and/or in the volatile memory 610, which may include an operating system 616 and/or one or more program modules 618. All or a portion of the examples disclosed herein may be implemented as a computer program 620 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 614, which includes complex programming instructions (e.g., complex computer-readable program code) to cause the processing circuitry 602 to carry out actions described herein. Thus, the computer-readable program code of the computer program 620 can comprise software instructions for implementing the functionality of the examples described herein when executed by the processing circuitry 602. In some examples, the storage device 614 may be a computer program product (e.g., readable storage medium) storing the computer program 620 thereon, where at least a portion of a computer program 620 may be loadable (e.g., into a processor) for implementing the functionality of the examples described herein when executed by the processing circuitry 602. The processing circuitry 602 may serve as a controller or control system for the computer system 600 that is to implement the functionality described herein.
The computer system 600 may include an input device interface 622 configured to receive input and selections to be communicated to the computer system 600 when executing instructions, such as from a keyboard, mouse, touch-sensitive surface, etc. Such input devices may be connected to the processing circuitry 602 through the input device interface 622 coupled to the system bus 606 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 600 may include an output device interface 624 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 600 may include a communications interface 626 suitable for communicating with a network as appropriate or desired.
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.
According to certain examples, there is also disclosed:
Example 1: A computer system (500, 502, 504) for training a machine learning model to determine a safe torque allocation (404) for a vehicle combination (100) comprising a tractor unit (110-1) and at least one trailing unit (110-2), the computer system (500, 502, 504) comprising processing circuitry (506, 508) configured to: perform a plurality of simulations for motion of the vehicle combination (100) based on a plurality of torque allocations and a plurality of operating points (140) for the vehicle combination (100); classify each simulation as safe or unsafe; and train a machine learning model using the plurality of simulations to determine a safe torque allocation (404) for the vehicle combination (100) based on an operating point (140) of the vehicle combination (100).
Example 2: The computer system (500, 502, 504) of example 1, wherein: each torque allocation comprises a respective torque allocation for each unit (110) of the vehicle combination (100); and the sum of the respective torque allocations meets a total torque allocation for the vehicle combination (100).
Example 3: The computer system (500, 502, 504) of example 1 or 2, wherein each operating point (140) is defined based on one or more of a velocity v of the vehicle combination (100), a lateral acceleration dy of the vehicle combination (100), one or more axle loads Fz of one or more units (110) of the vehicle combination (100), a yaw rate y of one or more units (110) of the vehicle combination (100), a slip angle α of one or more units (110) of the vehicle combination (100), a slip angular rate {grave over (α)} of one or more units (110) of the vehicle combination (100), a road wheel angle δ of one or more units (110) of the vehicle combination (100), a surface friction u, a curve radius r, and/or a path gradient.
Example 4: The computer system (500, 502, 504) of any preceding example, wherein the processing circuitry (506, 508) is configured to classify a simulation as unsafe if the simulation results in an instability of the vehicle combination (100).
Example 5: A computer system (500, 502, 504) for determining a safe torque allocation (404) for a vehicle combination (100) comprising a tractor unit (110-1) and at least one trailing unit (110-2), the computer system (500, 502, 504) comprising processing circuitry (506, 508) configured to: receive a plurality of torque allocations (402) that meet a torque request for the vehicle combination (100); receive an operating point (140) of a vehicle combination (100); and output, using a machine learning model trained according to any of examples 1 to 4, one or more safe torque allocations (404) for the vehicle combination (100) based on the received torque allocations (402) and operating point (140).
Example 6: The computer system (500, 502, 504) of example 5, wherein the received operating point (140) is a current operating point of the vehicle combination (100).
Example 7: The computer system (500, 502, 504) of example 5 or 6, wherein: the machine learning model is configured to output a plurality of safe torque allocations (404) for the vehicle combination (100); and the processing circuitry (506, 508) is configured to determine a safe torque allocation (404a, 404b) from the plurality of safe torque allocations based on one or more first criteria.
Example 8: The computer system (500, 502, 504) of any of examples 5 to 7, wherein the processing circuitry (506, 508) is configured to generate an alert or modify the torque request if the one or more output safe torque allocations (404) does not meet one or more second criteria.
Example 9: The computer system (500, 502, 504) of any of examples 5 to 8, wherein the processing circuitry (506, 508) is configured to apply a safety margin to the one or more output safe torque allocations (404).
Example 10: The computer system (500, 502, 504) of any of examples 5 to 9, wherein the processing circuitry (506, 508) is configured to cause an output safe torque allocation (404) to be implemented as a torque allocation for the vehicle combination (100).
Example 11: A computer system (500, 502, 504) for determining a safe torque allocation (404) for a vehicle combination (100) comprising a tractor unit (110-1) and at least one trailing unit (110-2), the computer system (500, 502, 504) comprising processing circuitry (506, 508) configured to: perform a plurality of simulations for motion of the vehicle combination (100) based on a plurality of torque allocations and a plurality of operating points (140) for the vehicle combination (100); classify each simulation as safe or unsafe; train a machine learning model using the plurality of simulations; receive a plurality of torque allocations (402) that meet a torque request for the vehicle combination (100); receive an operating point (140) of a vehicle combination (100); and output, using the trained machine learning model, one or more safe torque allocations (404) for the vehicle combination (100) based on the received torque allocations (402) and operating point (140).
Example 12: A vehicle (100) comprising the computer system (500, 502, 504) of any preceding example.
Example 13: A computer-implemented method (200) for training a machine learning model to determine a safe torque allocation (404) for a vehicle combination (100) comprising a tractor unit (110-1) and at least one trailing unit (110-2), the method (200) comprising: performing (210), by processing circuitry (506, 508) of a computer system (500, 502, 504), a plurality of simulations for motion of the vehicle combination (100) based on a plurality of torque allocations and a plurality of operating points (140) for the vehicle combination (100); classifying (220), by the processing circuitry (506, 508), each simulation as safe or unsafe; and training (230), by the processing circuitry (506, 508), a machine learning model using the plurality of simulations to determine a safe torque allocation (404) for the vehicle combination (100) based on an operating point (140) of the vehicle combination (100).
Example 14: The computer-implemented method (200) of example 13, wherein: each torque allocation comprises a respective torque allocation for each unit (110) of the vehicle combination (100); and the sum of the respective torque allocations meets a total torque allocation for the vehicle combination (100).
Example 15: The computer-implemented method (200) of example 13 or 14, wherein each operating point (140) is defined based on one or more of a velocity v of the vehicle combination (100), a lateral acceleration dy of the vehicle combination (100), one or more axle loads Fz of one or more units (110) of the vehicle combination (100), a yaw rate up of one or more units (110) of the vehicle combination (100), a slip angle α of one or more units (110) of the vehicle combination (100), a slip angular rate {grave over (α)} of one or more units (110) of the vehicle combination (100), a road wheel angle δ of one or more units (110) of the vehicle combination (100), a surface friction u, a curve radius r, and/or a path gradient.
Example 16: The computer-implemented method (200) of any of examples 13 to 15, comprising classifying, by the processing circuitry (506, 508), a simulation as unsafe if the simulation results in an instability of the vehicle combination (100).
Example 17: A computer-implemented method (300) for determining a safe torque allocation (404) for a vehicle combination (100) comprising a tractor unit (110-1) and at least one trailing unit (110-2), the method (300) comprising: receiving (330), by processing circuitry (506, 508) of a computer system (500, 502, 504), a plurality of torque allocations (402) that meet a torque request for the vehicle combination (100); receiving (340), by the processing circuitry (506, 508), an operating point (140) of a vehicle combination (100); and outputting (350), by the processing circuitry (506, 508) and using a machine learning model trained according to example 12, one or more safe torque allocations (404) for the vehicle combination (100) based on the received torque allocations (402) and operating point (140).
Example 18: The computer-implemented method (300) example 17, comprising receiving (340), by the processing circuitry (506, 508), a current operating point (140) of the vehicle combination (100).
Example 19: The computer-implemented method (300) of example 17 or 18 comprising: outputting (350), by the processing circuitry (506, 508) and using the trained machine learning model, a plurality of safe torque allocations (404) for the vehicle combination (100); and determining (360), by the processing circuitry (506, 508), a safe torque allocation (404a, 404b) from the plurality of safe torque allocations (404) based on one or more first criteria.
Example 20: The computer-implemented method (300) of any of examples 17 to 19, further comprising, by the processing circuitry (506, 508), generating an alert or modify the torque request if the one or more output safe torque allocations (404) does not meet one or more second criteria.
Example 21: The computer-implemented method (300) of any of examples 17 to 20, further comprising, by the processing circuitry (506, 508), applying (370) a safety margin to the one or more output safe torque allocations (404).
Example 22: The computer-implemented method (300) of any of examples 17 to 21, further comprising, by the processing circuitry (506, 508), causing (380) an output safe torque allocation (404) to be implemented as a torque allocation for the vehicle combination (100).
Example 23: A computer-implemented method (200, 300) for determining a safe torque allocation (404) for a vehicle combination (100) comprising a tractor unit (110-1) and at least one trailing unit (110-2), the method comprising: performing (210), by processing circuitry (506, 508) of a computer system (500, 502, 504), a plurality of simulations for motion of the vehicle combination (100) based on a plurality of torque allocations and a plurality of operating points (140) for the vehicle combination (100); classifying (220), by the processing circuitry (506, 508), each simulation as safe or unsafe; training (230), by the processing circuitry (506, 508), a machine learning model using the plurality of simulations; receiving (330), by the processing circuitry (506, 508), a plurality of torque allocations (402) that meet a torque request for the vehicle combination (100); receiving (340), by the processing circuitry (506, 508), an operating point (140) of a vehicle combination (100); and outputting (350), by the processing circuitry (506, 508) and using the trained machine learning model, one or more safe torque allocations (404) for the vehicle combination (100) based on the received torque allocations (402) and operating point (140).
Example 24: A computer program product comprising program code for performing, when executed by processing circuitry (506, 508), the computer-implemented method (200, 300) of examples 13 to 23.
Example 25: A non-transitory computer-readable storage medium comprising instructions, which when executed by processing circuitry (506, 508), cause the processing circuitry to perform the computer-implemented method (200, 300) of any of examples 13 to 23.
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.
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.
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.
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.
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.
Number | Date | Country | Kind |
---|---|---|---|
24151599.8 | Jan 2024 | EP | regional |