Control allocation for vehicle torque
11560130 · 2023-01-24
Assignee
Inventors
- Bernhard E. Westerhof (Brussels, BE)
- Johan N. Van Ginkel (Melden, BE)
- Ahmed H. El-Shaer (Perrysburg, OH, US)
Cpc classification
B60W10/08
PERFORMING OPERATIONS; TRANSPORTING
B60W10/02
PERFORMING OPERATIONS; TRANSPORTING
Y02T10/72
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
B60L15/2036
PERFORMING OPERATIONS; TRANSPORTING
Y02T10/64
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
B60L2220/46
PERFORMING OPERATIONS; TRANSPORTING
B60W10/119
PERFORMING OPERATIONS; TRANSPORTING
B60K6/52
PERFORMING OPERATIONS; TRANSPORTING
B60L15/20
PERFORMING OPERATIONS; TRANSPORTING
B60W2050/0022
PERFORMING OPERATIONS; TRANSPORTING
B60L2260/28
PERFORMING OPERATIONS; TRANSPORTING
International classification
B60W10/119
PERFORMING OPERATIONS; TRANSPORTING
Abstract
Methods and systems are provided for using the weights of cost functions to improve linear-program-based vehicle driveline architectures and systems. In some embodiments, the methods and systems may include establishing values for driveline controls of a linear program based on driveline requests of the linear program. The values of the driveline controls, which may be used to adjust driveline actuators, may be established based on values of a plurality of weights of a cost function of the linear program, the weights respectively corresponding with the plurality of driveline requests.
Claims
1. A method comprising: establishing values for a plurality of driveline controls of a linear program based on values of a plurality of driveline requests of the linear program, the driveline controls respectively corresponding with a plurality of driveline actuators; and adjusting the plurality of driveline actuators based upon the values for the plurality of driveline controls, wherein the values for the plurality of driveline controls are established based on values of a plurality of weights of a cost function of the linear program, the plurality of weights respectively corresponding with the plurality of driveline requests; wherein the linear program includes a constraint vector b, a variable vector x, a matrix of coefficients A, and a cost vector c.sup.T; and wherein the cost function is the product of the cost vector c.sup.T and the variable vector x; wherein the cost vector c.sup.T is a row vector having a number of entries equal to the number N.sub.C of driveline controls and twice the number N.sub.R of driveline requests; wherein the first N.sub.C entries of the cost vector c.sup.T are zero; and wherein the last 2*N.sub.R entries of the cost vector c.sup.T comprise the plurality of weights.
2. The method of claim 1, wherein at least one of the values of the plurality of driveline requests is nullified by assigning arbitrary high values to one or more of a plurality of weights of the cost function.
3. The method of claim 1, wherein values for one or more of the weights of the cost function are based on performance degradation of one or more of the driveline actuators.
4. The method of claim 1, wherein a constraint vector of the linear program constraint vector b contains values respectively corresponding with the plurality of driveline requests.
5. The method of claim 1, wherein the one or more driveline controls includes at least one wheel torque allocation.
6. The method of claim 1, wherein the variable vector x is a column vector having a number of entries equal to the sum of the number Nc of driveline controls and twice the number N.sub.R of driveline requests; wherein the first Nc entries of the variable vector x respectively correspond with the values of the plurality of driveline controls; and wherein the last 2*NR entries of the variable vector x comprise a set of slack variables.
7. A system for controlling drivelines of a vehicle, comprising: four driveline controls for controlling four actuators; and one or more driveline control allocation circuitries operable to establish a distribution of four torque values for the four driveline controls based on values of a plurality of driveline requests, wherein the four torque values correspond with a minimized value of a cost function of a linear program; wherein at least one of the values of the plurality of driveline requests is nullified by assigning arbitrary high values to one or more of a plurality of weights of the cost function; wherein the linear program includes a constraint vector b, a variable vector x, a matrix of coefficients A, and a cost vector c.sup.T; and wherein the cost function is the product of the cost vector c.sup.T and the variable vector x; wherein the matrix of coefficients A is a matrix having a number of rows equal to the number N.sub.R of driveline requests, and having a number of columns equal to the sum of the number N.sub.C of driveline controls and the number 2*N.sub.R of driveline requests; wherein the first N.sub.C columns of the matrix of coefficients A correspond with the plurality of driveline controls; and wherein the last 2*N.sub.R columns of the matrix of coefficients A contain an N.sub.R-by-N.sub.R identity matrix and a negated N.sub.R-by-N.sub.R identity matrix.
8. The system of claim 7, wherein at least one of the four actuators is a torque actuator.
9. The system of claim 7, wherein the distribution of the four torque values is established by a single driveline control allocation circuitry.
10. The system of claim 7, wherein the values of the plurality of the plurality of driveline requests are established by one or more dynamics subsystems.
11. The system of claim 10, wherein the one or more dynamics subsystems comprise at least one of: a subsystem for yaw control, a subsystem for side-slip angle control, and a subsystem for traction control.
12. A method of controlling vehicle drivelines, the method comprising: establishing values for a set of driveline controls for a vehicle based on a set of driveline requests for the vehicle, by minimizing a cost function of a linear program for the set of driveline controls and the set of driveline requests, wherein a set of weights of the cost function corresponds with the set of driveline requests of the vehicle; and nullifying at least one of the driveline requests by assigning arbitrary high values to one or more weights of the set of weights, wherein the linear program includes a constraint vector b, a variable vector x, a matrix of coefficients A, and a cost vector c.sup.T; and wherein the cost function is the product of the cost vector c.sup.T and the variable vector x; wherein the constraint vector b is a column vector having a number of entries equal to the number N.sub.R of driveline requests; and wherein the N.sub.R entries of the constraint vector b respectively correspond with the values of the plurality of driveline requests.
13. The method of claim 12, wherein the linear program includes a matrix of coefficients A, having the matrix of coefficients A has a number of rows equal to the number of driveline requests.
14. The method of claim 12, wherein the set of driveline requests includes one or more of: a total torque request; a total yaw moment request; a traction control target for a wheel; and a torque limit for a wheel.
15. The method of claim 12, wherein values of the set of weights of the cost function establish a prioritization among the set of driveline requests.
16. The method of claim 12, wherein values for one or more of the weights of the cost function are based on performance degradation of one or more driveline actuators of the vehicle.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The disclosure may be better understood from reading the following description of non-limiting embodiments, with reference to the attached drawings, wherein below:
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION
(7) Disclosed herein are methods and systems for using weights of cost functions to improve linear-program-based vehicle driveline architectures and systems.
(8) As used herein, terminology in which “an embodiment,” “some embodiments,” or “various embodiments” are referenced signify that the associated features, structures, or characteristics being described are in at least some embodiments, but are not necessarily in all embodiments. Moreover, the various appearances of such terminology do not necessarily all refer to the same embodiments. Also, terminology in which elements are presented in a list using “and/or” language means any combination of the listed elements. For example, “A, B, and/or C” may mean any of the following: A alone; B alone; C alone; A and B; A and C; B and C; or A, B, and C.
(9)
(10) In accordance with the driveline architecture of vehicle 100, a driveline system of vehicle 100 comprises: (1) a first wheel 112 coupled to a first driveline 114 and a first motor 116; (2) a second wheel 122 coupled to a second driveline 124 and a second motor 126; (3) a third wheel 132 coupled to a third driveline 134 and a third motor 136; and (4) a fourth wheel 142 coupled to a fourth driveline 144 and a fourth motor 146. Drivelines 114, 124, 134, and 144 may apply torque from motors 116, 126, 136, and 146 to wheels 112, 122, 132, and 142.
(11) For some embodiments, motors 116, 126, 136, and 146 may be, or may comprise, electric motors. Accordingly, some embodiments of vehicle 100 may comprise four wheels and four electric motors operative to supply torque independently to the four wheels.
(12) In some embodiments, drivelines 114, 124, 134, and 144 may be, or may comprise, axles that couple motors 116, 126, 136, and 146 to wheels 112, 122, 132, and 142. In various embodiments, drivelines 114, 124, 134, and 144 may comprise any mechanism or assembly through which motors 116, 126, 136, and 146 may supply torque to wheels 112, 122, 132, and 142. In some embodiments, part of or all of drivelines 114, 124, 134, and 144 and/or part of or all of motors 116, 126, 136, and 146, may even be positioned within wheels 112, 122, 132, and 142.
(13) The driveline system of vehicle 100 may comprise a control allocation subsystem, which may be coupled to drivelines 114, 124, 134, and 144. The control allocation subsystem of the driveline system may be implemented in, for example, a driveline control allocation circuitry and/or mechanism. In various embodiments, a control allocation algorithm employed by a control allocation subsystem may optimally distribute vehicle torques, including for possibly-conflicting torque setpoints, and may provide for fault-tolerant control allocation (e.g., for vehicles with four electric motors independently driving four wheels). In various embodiments, any driveline system having more than one independent actuator may advantageously benefit from fault-tolerant control mechanisms and methods such as those disclosed herein (such as driveline systems including clutch packs, twin combustion engines, front and rear electronically-limited slip differentials, and so on).
(14) The driveline system may also comprise one or more dynamics subsystems, which may present various driveline requests (e.g., requested torque setpoints) to the control allocation subsystem. The dynamics subsystems may be coupled to one or more sensors 102 which may be positioned in a variety of locations on vehicle 100. The dynamics subsystems may also be coupled to one or more sensors associated with the motors, such as a first sensor 118, a second sensor 128, a third sensor 138, and a fourth sensor 148. Sensors 102, 118, 128, 138, and/or 148 may provide various types of information to the dynamics subsystems. For example, sensors 102, 118, 128, 138, and/or 148 may indicate to the dynamics subsystems that a driveline actuator (as discussed herein) is failing, or is otherwise functionally limited or impaired.
(15) The various subsystems of the driveline system of vehicle 100 may be integrated within vehicle 100 in a variety of ways. In some embodiments, the control allocation subsystem may be substantially physically compact (e.g., employing a single, central mechanism and/or circuitry coupled individually to the drivelines), while the control allocation subsystem in other embodiments may be physically distributed (e.g., employing a plurality of mechanisms and/or circuitries coupled to the various drivelines). Similarly, the dynamics subsystems may be positioned relatively near to or relatively far from the control allocation subsystem (and/or physically distributed parts of the control allocation subsystem) within vehicle 100.
(16) Vehicle 100 has a communications path 104, which may communicatively interconnect various components of vehicle 100. For example, communications path 104 may extend between first motor 116, second motor 126, third motor 136, fourth motor 146, and/or a centralized computer of vehicle 100, to carry signals, indicators, and so forth between those components. The dynamics subsystem and/or the control allocation subsystem may also be communicatively connected to communications path 104. Various driveline requests and various driveline controls may accordingly be communicated to various subsystems and components of vehicle 100 via communications path 104. Communications path 104 may follow any of a wide a variety of physical paths within vehicle 100, and may have a variety of physical manifestations conforming to a variety of communications architectures (e.g., a shared-bus architecture, or a distributed network architecture).
(17) In some embodiments, signals may be carried by communications path 104 on specific wires (e.g., wires for driveline request signals and/or wires for driveline control signals), and in some embodiments, signals carried by communications path 104 may conform to a more complex signaling protocol. Accordingly, in various embodiments, signals or signaling may be carried on communications path 104 in relatively simple forms such as raw electrical pulses, or may alternatively be carried on communications path 104 in relatively complex forms, such as by electrical pulses that conform to a message-based communications protocol, a transmission-based communications protocol, or another higher-level communications protocol (which may be based ultimately in electrical pulses). Moreover, in various embodiments, the signals used could be analog in nature and/or digital in nature.
(18) As a result of optimizing a linear program based on various driveline requests (as discussed herein), the control allocation subsystem may transmit various driveline controls to the motors and/or drivelines of vehicle 100. In various embodiments, the control allocation subsystem may transmit a first driveline control to first motor 116, a second driveline control to second motor 126, a third driveline control to third driveline motor 136, and a fourth driveline control to fourth motor 146. From there, the driveline controls may control actuators associated with motors 116, 126, 136, and 146; in turn, the actuators may allocate, distribute, or otherwise establish torques provided by motors 116, 126, 136, and 146 to wheels 112, 122, 132, and 142 (e.g., via drivelines 114, 124, 134, and 144). In some cases, the actuators may prevent motors 116, 126, 136, and 146 from providing torques to wheels 112, 122, 132, and 142. In various embodiments, the actuators may be torque actuators which provide specified torques (e.g. from motors 116, 126, 136, and 146 and/or via drivelines 114, 124, 134, and 144) to wheels 112, 122, 132, and 142.
(19) For example, as depicted in
(20) In
(21) Accordingly, based on values of driveline requests (e.g., from subsystems such as the dynamics subsystems), a vehicle driveline system may establish values for various driveline controls corresponding with various driveline actuators. The actuators may then be adjusted based on the values of the driveline controls, e.g., by preventing motors corresponding with the actuators from providing torque to wheels corresponding with the motors.
(22)
(23) On the driveline-request side, driveline control architecture 200 may comprise a high-level vehicle dynamics control subsystem 220, and a fault detection subsystem 230. Control allocation subsystem 210 may receive and/or process various driveline requests from other subsystems (e.g., in the form of signals and/or signaling, which might be carried on a communications path of the vehicle).
(24) The driveline requests may include one or more driveline requests 212 from high-level vehicle dynamics control subsystem 220, one or more driveline requests 214 from fault detection subsystem 230, and/or one or more driveline requests 216 from a low-level driveline/motor control subsystem 240. Driveline requests 212 from high-level vehicle dynamics control subsystem 220 may comprise a total torque request (or another torque request), a yaw moment request, and/or one or more traction control limits. Driveline requests 214 from fault detection subsystem 230 and driveline requests 216 from low-level driveline/motor control subsystem 240 may comprise traction motor torque limits (e.g., by which a torque limit is “0” is a fault is detected).
(25) On the driveline-control side, driveline control architecture 200 may also comprise low-level driveline/motor control subsystem 240. Control allocation subsystem 210 may also generate and/or transmit various driveline controls for other subsystems (e.g., in the form of signals and/or signaling, which might be carried on a communications path of the vehicle). The driveline controls may include one or more driveline controls 218 to low-level driveline/motor control subsystem 240. In some embodiments, low-level driveline/motor control subsystem 240 may comprise a low-level electrical machine control subsystem.
(26) Moreover, as depicted in
(27)
(28) On the driveline-request side, control allocation subsystem 310 may receive and/or process one or more driveline requests 312, which may comprise torque requests (e.g., wheel torque requests) and/or yaw moment requests. Control allocation subsystem 310 may also receive one or more driveline requests 314, which may comprise various limits such as traction control limits, actuator torque limits, and/or actuator rate limits. On the driveline-control side, control allocation subsystem 310 may generate and/or transmit one or more driveline controls 318, which may comprise one or more wheel torques 310 (such as optimized, or optimal wheel torques).
(29) In various embodiments, a control allocation subsystem 310 (which may be in accordance with a driveline architecture 200 and/or a vehicle driveline architecture of vehicle 100) may establish the values for a number N.sub.C of driveline controls based upon a linear program encompassing a number N.sub.R of driveline requests. The linear program may set forth the following relationship between a constraint vector b (which may include values of the driveline requests), a variable vector x (which may include values of the driveline controls, as well as slack variables), a matrix of coefficients A, and a cost vector c.sup.T:
(30)
(In some embodiments, matrix of coefficients A may be referred to as a “control effectiveness matrix.”) The cost function (or objective function) of the linear program may be c.sup.Tx (e.g., the product of cost vector c.sup.T and variable vector x).
(31) Constraint vector b may be a column vector having a number of entries equal to N.sub.R (e.g., the number of driveline requests). The N.sub.R entries of constraint vector b may accordingly correspond with the values of the N.sub.R driveline requests.
(32) Variable vector x may be a column vector having a number of entries equal to N.sub.C plus two times N.sub.R (e.g., the sum of the number of driveline controls and twice the number of driveline requests). The first N.sub.C entries of vector of variables x may accordingly correspond with the values of the N.sub.C driveline controls, and the last 2*N.sub.R entries of the vector of variables x may comprise a set of slack variables.
(33) Matrix of coefficients A may be a matrix having a number of rows equal to N.sub.R, and having a number of columns equal to N.sub.C plus two times N.sub.R (e.g., the sum of the number of driveline controls and twice the number of driveline requests). The first N.sub.C columns of matrix of coefficients A may correspond with the plurality of driveline controls. The last 2*N.sub.R columns of the matrix of coefficients A may comprise an identity matrix having N.sub.R rows and N.sub.R columns (e.g., an N.sub.R-by-N.sub.R identity matrix), and a negated identity matrix having N.sub.R rows and N.sub.R columns (e.g., a negated N.sub.R-by-N.sub.R identity matrix).
(34) Cost vector c.sup.T may be a row vector having a number of entries equal to N.sub.C plus two times N.sub.R (e.g., the sum of the number of driveline controls and twice the number of driveline requests). The first N.sub.C entries of cost vector c.sup.T may be zero, and the last 2*N.sub.R entries of cost vector c.sup.T may comprise a plurality of weights. (Cost vector c.sup.T, which is a row vector, may be a transpose of another cost vector c, which is a column vector; and the columns of cost vector c.sup.T may contain the same entries as the rows of cost vector c.)
(35) Various parameters or features of the linear program may accordingly relate to the number N.sub.R of driveline requests and the number N.sub.C of driveline controls. Parameters or features related to the number N.sub.R may include: the number of entries in vector of constraints b; the number of rows of matrix of coefficients A; and the numbers of rows and columns of each of the identity matrix and the negated identity matrix in the last columns of matrix of coefficients A. Parameters or features related to twice the number N.sub.R may include: the number of slack variables in the last entries of variable vector x; and the numbers columns occupied by the identity matrix and the negated identity matrix in the last columns of matrix of coefficients A; and the number of weights in the last entries of cost vector c.sup.T. The number N.sub.C may correspond to: the first entries of variable vector x; the number of columns before the identity matrix and the negated identity matrix of matrix of coefficients A; and the number of zeroes in the first entries of cost vector c.sup.T.
(36) Control allocation subsystem 310 may establish the values for the N.sub.C driveline controls based upon the linear program encompassing the N.sub.R driveline requests by optimizing (e.g., minimizing) the cost function c.sup.Tx such that Ax=b, for x≥0. The N.sub.R driveline requests may thereby establish a distribution of, for example, torque values for the N.sub.C driveline controls. As a result, the values for the N.sub.C driveline controls may be established based on the weights in last entries of cost vector c.sup.T. In turn, the weights may correspond with the various driveline requests. This may advantageously facilitate a rule-based approach to establishing the driveline controls, and the torques related to them.
(37) For example, in various embodiments, at least one of the value of the N.sub.C driveline controls may be nullified by assigning arbitrary high values to one or more of the weights to the point at which zero torque is the optimal solution (e.g., the lowest resulting cost). In various embodiments, an arbitrary high value may be a relatively high value (e.g., a value that is much greater than the values of other weights). In some embodiments, an arbitrary high value may be a predetermined value. Moreover, for various embodiments in which arbitrary high values are assigned to more than one of the weights, the same value might be assigned to each such weight, or different values might be assigned to each such weight. In some embodiments, if a performance level of an actuator degrades, one or more of the weights may be altered (e.g., by control allocation subsystem 310) to reflect the degraded performance of the actuator. For some embodiments, if an actuator fails, one or more of the weights may be increased, and one or more driveline requests (e.g., associated with that actuator) may thereby be nullified in the linear program. Accordingly, the values of the weights may establish a prioritization among the set of driveline requests, up to and including completely deprioritizing (e.g., nullifying) one or more driveline requests.
(38) As a result, if one or more of motors of a vehicle fail (or if another failure occurs, such as a steering actuator failure), a combination of remaining actuators may advantageously still be able to control the dynamics of vehicle 100 to some extent (and possible even to a full extent). Aside from full failure, actuators may also be limited by electro-mechanical properties (such as rate constraints), reduction in torque capacity (e.g., by temperature, or rotational velocity), or external factors (such as available road-tire friction), and prioritization among driveline requests may advantageously facilitate or enable adaptation to such limits.
(39) In various embodiments, control allocation subsystem 310 may comprise a processor 364 and a memory 366 for storing instructions, which may be arranged to perform various operations, such as operations related to optimizing a linear program as described herein, or operations related to establishing the weights of cost vector c.sup.T. In alternate embodiments, however, control allocation subsystem 310 may comprise logic devices or circuitry to perform the various operations of processor 364 and memory 366. In various embodiments, processor 364 and memory 366 may receive and/or process various driveline requests, and may generate and/or transmit various driveline controls. Moreover, memory 366 of control allocation subsystem 310 may store constraint vector b, variable vector x, matrix of coefficients A, and cost vector c.sup.T, including the weights of cost vector c.sup.T.
(40) Notably, the modification of weights in the cost function may permit the use of an algorithm similar to algorithms used for other driveline systems incorporating linear programs as discussed herein, which may advantageously improve a flexibility of the driveline architecture. By modifying the weights in the cost function, the methods and systems discussed herein may thus advantageously augment the processing and handling of fault-detection and electro-mechanical properties of actuators as well as traction and stability control.
(41) In various embodiments, electric motors of vehicles may have various constraints, which may include: electric-motor control loops (with electro-mechanical limits and rate constraints); fault detection algorithms; and high-level vehicle dynamics with traction control limits. The methods and systems discussed herein may advantageously combine various such constraints for each electric motor.
(42) Although linear programming is described herein as being used to perform the optimization (e.g., the minimization), in other embodiments, other optimization algorithms may be applied as well.
(43) A first example of a linear program in accordance with the systems and methods discussed herein is given as:
(44)
The first linear program includes a first constraint vector b.sub.1, a first variable vector x.sub.1, a first matrix of coefficients A.sub.1, and a first cost vector c.sub.1.sup.T. The first example linear program pertains to 13 driveline requests (N.sub.R=13) and 6 driveline controls (N.sub.C=6).
(45) First constraint vector b.sub.1 of the first linear program is defined as:
(46)
As defined, the 13 entries (the N.sub.R entries) of first constraint vector b.sub.1 are values of various driveline requests: a total torque request (T.sub.req,tot); a total yaw moment request (M.sub.z,tot); a front yaw moment target (M.sub.z,Fr); a rear torque request (T.sub.req,Re); a maximum rear torque (T.sub.max,Re); a front-left-wheel traction control (T.sub.TC,FrL); a front-right-wheel traction control (T.sub.TC,FrR); a rear-left-wheel positive traction control (T.sub.TC+,ReL); a rear-right-wheel positive traction control (T.sub.TC+,ReR); a rear-left-wheel negative traction control (T.sub.TC−,ReL); a rear-right-wheel negative traction control (T.sub.TC−,ReR); a maximum rear-left-wheel torque (T.sub.max,ReL); and a maximum rear-right-wheel torque (T.sub.max,ReR).
(47) First variable vector x.sub.1 of the first linear program is defined as:
(48)
As defined, the first 6 entries (the first N.sub.C entries) of first variable vector x.sub.1 are values of driveline controls for various torques: a front-left-wheel torque (T.sub.FrL), a front-right-wheel torque (T.sub.FrR), a rear-left-wheel positive torque (T.sub.ReL.sup.+), a rear-right-wheel positive toque (T.sub.ReR.sup.+), a rear-left-wheel negative torque (T.sub.ReL.sup.−), and a rear-right-wheel negative torque (T.sub.ReR.sup.−). The last 26 entries (the last 2*N.sub.R entries) of first variable vector x.sub.1 are a set of slack variables s.sub.1.sup.+ to s.sub.13.sup.+ and s.sub.14.sup.− to s.sub.26.sup.−.
(49) First matrix of coefficients A.sub.1 of the first linear program is defined as:
(50)
As defined, first matrix of coefficients A.sub.1 has 13 rows (N.sub.R) and 6+(2*13)=32 columns (N.sub.C plus 2*N.sub.R columns). The first 6 columns (N.sub.C columns) of first matrix of coefficients A.sub.1 may correspond with the driveline controls, and the last 2*13=26 columns (2*N.sub.R columns) of first matrix of coefficients A.sub.1 may comprise a 13-by-13 identity matrix I.sup.13×13 and a 13-by-13 negated identity matrix −I.sup.13×13. The entries of the first 6 columns of first matrix of coefficients A.sub.1 include values based on half of the vehicle track width (r) and an effective wheel radius (R) relating the wheel torques to the yaw moment torques.
(51) First cost vector c.sub.1.sup.T of the first linear program is defined as: c.sub.1.sup.T=[0 0 0 0 0 0 c.sub.1 . . . c.sub.13 c.sub.14 . . . c.sub.26]
As defined, the first 6 entries (the first N.sub.C entries) of first cost vector c.sub.1.sup.T contain zeroes. The last 2*13=26 entries (the last 2*N.sub.R entries) of first cost vector c.sub.1.sup.T contain c.sub.1 to c.sub.13 and c.sub.14 to c.sub.26, which together comprise a set of weights of first cost vector c.sub.1.sup.T.
(52) A control allocation subsystem (such as control allocation subsystem 310) as discussed herein may thus establish the values for the 6 driveline controls (the N.sub.C driveline controls) of first variable vector x.sub.1, based upon the 13 driveline requests (the N.sub.R driveline requests) of first constraint vector b.sub.1, by optimizing (e.g., minimizing) the cost function c.sub.1.sup.Tx.sub.1 (such that A.sub.1x.sub.1=b.sub.1, for x.sub.1≥0) in accordance with the first exemplary linear program. The values of weights c.sub.1 to c.sub.13 and c.sub.14 to c.sub.26 of first cost vector c.sub.1.sup.T may advantageously be adjusted to adjust the priority of the various driveline requests (which may include completely deprioritizing one or more driveline requests).
(53) With reference to the first exemplary linear program, in various embodiments, different wheel torques may be related to different requests (e.g., to a control allocation subsystem) in a linear program via first matrix of coefficients A.sub.1. Each row in first matrix of coefficients A.sub.1 may correspond to a request, such as: a total driver torque; a yaw moment (damping or amplification); or a limit of the driveline technology, such as maximum clutch torque or clutch rate. Changing the values of values of weights c.sub.1 to c.sub.13 and c.sub.14 to c.sub.26 of first cost vector c.sub.1.sup.T may advantageously allow for the enabling and/or prioritizing of different control requests. Accordingly, the first exemplary linear program may accommodate optimization between parameters such as total torque request, rear torque request, maximum rear torque, total yaw moment request, front yaw moment target, traction control for each wheel, max rear clutch torques, and/or clutch torque rates.
(54) A second example of a linear program in accordance with the systems and methods discussed herein is given as:
(55)
The second linear program includes a second constraint vector b.sub.2, a second variable vector x.sub.2, a second matrix of coefficients A.sub.2, and a second cost vector c.sub.2.sup.T. The second example linear program pertains to 6 driveline requests (N.sub.R=6) and 8 driveline controls (N.sub.C=8).
(56) Second constraint vector b.sub.2 of the second linear program is defined as:
(57)
As defined, the 6 entries (the N.sub.R entries) of second constraint vector b.sub.2 are values of driveline requests: a total torque request (T.sub.req,tot); a total yaw moment request (M.sub.z,tot); a front-left-wheel maximum torque (T.sub.max,FrL); a front-right-wheel maximum torque (T.sub.max,FrR); a rear-left-wheel maximum torque (T.sub.max,ReL); and a rear-right-wheel maximum torque (T.sub.max,ReR).sub..
(58) Second variable vector x.sub.2 of the second linear program is defined as:
(59)
As defined, the first 8 entries (the first N.sub.C entries) of second variable vector x.sub.2 are values of driveline controls for various torques: a front-left-wheel positive torque (T.sub.FrL.sup.+); a front-right-wheel positive torque (T.sub.FrR.sup.+); a front-left-wheel negative torque (T.sub.FrL.sup.−); a front-right-wheel negative torque (T.sub.FrR.sup.−); a rear-left-wheel positive torque (T.sub.ReL.sup.+); a rear-right-wheel positive torque (T.sub.ReR.sup.−); a rear-left-wheel negative torque (T.sub.ReL.sup.−); and a rear-right-wheel negative torque (T.sub.ReR.sup.−). The last 12 entries (the last 2*N.sub.R entries) of second variable vector x.sub.2 are a set of slack variables s.sub.1.sup.+ to s.sub.6.sup.+ and s.sub.7.sup.− to s.sub.12.sup.−.
(60) Second matrix of coefficients A.sub.2 of the second linear program is defined as:
(61)
As defined, second matrix of coefficients A.sub.2 has 6 rows (N.sub.R) and 8+(2*6)=20 columns (N.sub.C plus 2*N.sub.R columns). The first 8 columns (N.sub.C columns) of second matrix of coefficients A.sub.2 may correspond with the driveline controls, and the last 2*6=12 columns (2*N.sub.R columns) of second matrix of coefficients A.sub.2 may comprise a 6-by-6 identity matrix I.sup.6×6 and a 6-by-6 negated identity matrix −I.sup.6×6. The entries of the first 8 columns of second matrix of coefficients A.sub.2 include values based on r and R.
(62) Second cost vector c.sub.2.sup.T of the second linear program is defined as: c.sub.2.sup.T=[0 0 0 0 0 0 0 0 c.sub.1 . . . c.sub.6 c.sub.7 . . . c.sub.12]
As defined, the first 8 entries (the first N.sub.C entries) of second cost vector c.sub.2.sup.T contain zeroes. The last 2*6=12 entries (the last 2*N.sub.R entries) of second cost vector c.sub.2.sup.T contain c.sub.1 to c.sub.6 and c.sub.7 to c.sub.12, which together comprise a set of weights of second cost vector c.sub.2.sup.T.
(63) A control allocation subsystem (such as control allocation subsystem 310) as discussed herein may thus establish the values for the 8 driveline controls (the N.sub.C driveline controls) of second variable vector x.sub.2, based upon the 6 driveline requests (the N.sub.R driveline requests) of second constraint vector b.sub.2, by optimizing (e.g., minimizing) the cost function c.sub.2.sup.Tx.sub.2 (such that A.sub.2x.sub.2=b.sub.2, for x.sub.2≥0) in accordance with the second exemplary linear program. The values of weights c.sub.1 to c.sub.6 and c.sub.7 to c.sub.12 of second cost vector c.sub.2.sup.T may advantageously be adjusted to adjust the priority of the various driveline requests (which may include completely deprioritizing one or more driveline requests).
(64) With reference to the second exemplary linear program, in various embodiments, depending on design requirements, a second matrix of coefficients A.sub.2 and a cost function c.sub.2.sup.Tx.sub.2 (and/or cost vector c.sub.1.sup.T) may be extended to prioritize constraints. For example, by adding extra rows in second matrix of coefficients A.sub.2 (e.g., for traction control limits) and assigning those rows lower weights (e.g., via weights c.sub.1 to c.sub.6 and c.sub.7 to c.sub.12), traction control limits may be exceeded in cases in which a driver torque request is high, but the electro-mechanical limits of the electric motors or an actuator failure may still be respected, and the control allocation (e.g., of a control allocation subsystem) may find an optimal solution to track the total torque request and/or the yaw moment request. Moreover, by changing the weights in the linear program, instead of making changes to second matrix of coefficients A.sub.2, the algorithm may be more physically correct, since the kinematic relationship between wheel torques and, e.g., yaw moment might not depend on actuator limits.
(65) In various embodiments, for fault tolerant control in cases in which a steering actuator fails, high-level vehicle dynamics may modify a yaw moment request to compensate for the lack of steering actuation.
(66) Accordingly, with respect to
(67) In some embodiments, at least one of the four actuators may be a torque actuator. For some embodiments, the distribution of the four torque values may be established by a single driveline control allocation circuitry. In some embodiments, the values of the plurality of the plurality of driveline requests may be established by one or more dynamics subsystems. For some embodiments, the one or more dynamics subsystems may comprise a subsystem for yaw control, a subsystem for side-slip angle control, and/or a subsystem for traction control.
(68)
(69) In some embodiments, the values for the plurality of driveline controls may be established based on values of a plurality of weights of a cost function of the linear program, the plurality of weights respectively corresponding with the plurality of driveline requests. For some embodiments, values for one or more of the weights of the cost function may be based on performance degradation of one or more of the driveline actuators.
(70) For some embodiments, at least one of the values of the plurality of driveline requests may be nullified by assigning arbitrary high values to one or more of a plurality of weights of the cost function. In some embodiments, values for one or more of the weights of the cost function may be based on performance degradation of one or more of the driveline actuators. For some embodiments, a constraint vector of the linear program may contain values respectively corresponding with the plurality of driveline requests. In some embodiments, the one or more driveline controls may include at least one wheel torque allocation.
(71) In some embodiments, the linear program may include a constraint vector b, a variable vector x, a matrix of coefficients A, and a cost vector c.sup.T, and the cost function may be the product of the cost vector c.sup.T and the variable vector x.
(72) For some embodiments, the cost vector c.sup.T may be a row vector having a number of entries equal to the number N.sub.C of driveline controls and twice the number N.sub.R of driveline requests. The first N.sub.C entries of the cost vector c.sup.T may be zero, and the last 2*N.sub.R entries of the cost vector c.sup.T may comprise the plurality of weights.
(73) In some embodiments, the variable vector x may be a column vector having a number of entries equal to the sum of the number N.sub.C of driveline controls and twice the number N.sub.R of driveline requests. The first N.sub.C entries of the variable vector x may respectively correspond with the values of the plurality of driveline controls, and the last 2*N.sub.R entries of the variable vector x may comprise a set of slack variables.
(74) For some embodiments, the matrix of coefficients A may be a matrix having a number of rows equal to the number N.sub.R of driveline requests, and having a number of columns equal to the sum of the number N.sub.C of driveline controls and the number 2*N.sub.R of driveline requests. The first N.sub.C columns of the matrix of coefficients A may correspond with the plurality of driveline controls, and the last 2*N.sub.R columns of the matrix of coefficients A may contain an N.sub.R-by-N.sub.R identity matrix and a negated N.sub.R-by-N.sub.R identity matrix.
(75) In some embodiments, the constraint vector b may be a column vector having a number of entries equal to the number N.sub.R of driveline requests, and the N.sub.R entries of the constraint vector b may respectively correspond with the values of the plurality of driveline requests.
(76)
(77) In some embodiments, the linear program may include a matrix of coefficients A having a number of rows equal to the number of driveline requests. For some embodiments, the set of driveline requests may include one or more of: a total torque request; a total yaw moment request; a traction control target for a wheel; and a torque limit for a wheel. In some embodiments, values of the set of weights of the cost function may establish a prioritization among the set of driveline requests. For some embodiments, values for one or more of the weights of the cost function may be based on performance degradation of one or more driveline actuators of the vehicle.
(78) Thus provided herein are methods and systems and for using the weights of cost functions to improve linear-program-based vehicle driveline architectures and systems. In driveline architectures such as architecture depicted in
(79) In a first approach to the methods and systems discussed herein, a first example of a method comprises: establishing values for a plurality of driveline controls of a linear program based on values of a plurality of driveline requests of the linear program, the driveline controls respectively corresponding with a plurality of driveline actuators; and adjusting the plurality of driveline actuators based upon the values for the plurality of driveline controls, wherein the values for the plurality of driveline controls are established based on values of a plurality of weights of a cost function of the linear program, the plurality of weights respectively corresponding with the plurality of driveline requests. In a second example of the method building off of the first example, at least one of the values of the plurality of driveline requests is nullified by assigning arbitrary high values to one or more of a plurality of weights of the cost function. In a third example of the method building off of either the first example or second example, values for one or more of the weights of the cost function are based on performance degradation of one or more of the driveline actuators. In a fourth example of the method building off of any of the first example through the third example, a constraint vector of the linear program contains values respectively corresponding with the plurality of driveline requests. In a fifth example of the method building off of any of the first example through the fourth example, the one or more driveline controls includes at least one wheel torque allocation. In a sixth example of the method building off of any of the first example through the fourth example, the linear program includes constraint vector b, a variable vector x, a matrix of coefficients A, and a cost vector c.sup.T; and the cost function is the product of the cost vector c.sup.T and the variable vector x. In a seventh example of the method building off of the sixth example, the cost vector c.sup.T is a row vector having a number of entries equal to the number N.sub.C of driveline controls and twice the number N.sub.R of driveline requests; the first N.sub.C entries of the cost vector c.sup.T are zero; and the last 2*N.sub.R entries of the cost vector c.sup.T comprise the plurality of weights. In an eighth example of the method building off of either the sixth example or the seventh example, the variable vector x is a column vector having a number of entries equal to the sum of the number N.sub.C of driveline controls and twice the number N.sub.R of driveline requests; the first N.sub.C entries of the variable vector x respectively correspond with the values of the plurality of driveline controls; and the last 2*N.sub.R entries of the variable vector x comprise a set of slack variables. In a ninth example of the method building off of any of the sixth example through the eighth example, the matrix of coefficients A is a matrix having a number of rows equal to the number N.sub.R of driveline requests, and having a number of columns equal to the sum of the number N.sub.C of driveline controls and the number 2*N.sub.R of driveline requests; the first N.sub.C columns of the matrix of coefficients A correspond with the plurality of driveline controls; and the last 2*N.sub.R columns of the matrix of coefficients A contain an N.sub.R-by-N.sub.R identity matrix and a negated N.sub.R-by-N.sub.R identity matrix. In a tenth example of the method building off of any of the sixth example through the ninth example, the constraint vector b is a column vector having a number of entries equal to the number N.sub.R of driveline requests; and the N.sub.R entries of the constraint vector b respectively correspond with the values of the plurality of driveline requests.
(80) In a second approach to the methods and systems discussed herein, a first example of a system for controlling drivelines of a vehicle, comprises: four driveline controls for controlling four actuators; and one or more driveline control allocation circuitries operable to establish a distribution of four torque values for the four driveline controls based on values of a plurality of driveline requests, wherein the four torque values correspond with a minimized value of a cost function of a linear program; and wherein at least one of the values of the plurality of driveline requests is nullified by assigning arbitrary high values to one or more of a plurality of weights of the cost function. In a second example building of the system building off of the first example, at least one of the four actuators is a torque actuator. In a third example building of the system building off of either the first example or the second example, the distribution of the four torque values is established by a single driveline control allocation circuitry. In a fourth example building of the system building off of any of the first example through the third example, the values of the plurality of the plurality of driveline requests are established by one or more dynamics subsystems. In a fifth example of the system building off of the fourth example, the one or more dynamics subsystems comprise at least one of: a subsystem for yaw control, a subsystem for side-slip angle control, and a subsystem for traction control.
(81) In a third approach to the methods and systems discussed herein, a first example of a method of controlling vehicle drivelines comprises: establishing values for a set of driveline controls for a vehicle based on a set of driveline requests for the vehicle, by minimizing a cost function of a linear program for the set of driveline controls and the set of driveline requests, wherein a set of weights of the cost function corresponds with the set of driveline requests of the vehicle; and nullifying at least one of the driveline requests by assigning arbitrary high values to one or more weights of the set of weights. In a second example of the method building off of the first example, the linear program includes a matrix of coefficients A, having a number of rows equal to the number of driveline requests. In a third example of the method building off of either the first example or the second example, the set of driveline requests includes one or more of: a total torque request; a total yaw moment request; a traction control target for a wheel; and a torque limit for a wheel. In a fourth example of the method building off of any of the first example through the third example, values of the set of weights of the cost function establish a prioritization among the set of driveline requests. In a fifth example of the method building off of any of the first example through the fourth example, values for one or more of the weights of the cost function are based on performance degradation of one or more driveline actuators of the vehicle.
(82) The description of embodiments has been presented for purposes of illustration and description. Suitable modifications and variations to the embodiments may be performed in light of the above description or may be acquired from practicing the methods. For example, unless otherwise noted, one or more of the described methods may be performed by a suitable device and/or combination of devices, such as the vehicle and systems described above with respect to
(83) As used in this application, an element or step recited in the singular and proceeded with the word “a” or “an” should be understood as not excluding plural of said elements or steps, unless such exclusion is stated. Furthermore, references to “one embodiment” or “one example” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features. Terms such as “first,” “second,” “third,” and so on are used merely as labels, and are not intended to impose numerical requirements or a particular positional order on their objects. The following claims particularly point out subject matter from the above disclosure that is regarded as novel and non-obvious.