The disclosure relates to a control system and method for a propulsion system of a motor vehicle having an engine and a transmission, and more particularly to a control system and method that uses a multivariable controller.
Propulsion system control in a motor vehicle generally involves reading driver and vehicle inputs, such as accelerator pedal position, vehicle sensor data, and torque requests, and communicating these inputs to an Engine Control Module (ECM) and a Transmission Control Module (TCM). The ECM may calculate a driver axle torque requested from the driver and vehicle inputs. The driver axle torque requested may then be communicated to the engine and to the ECM. The engine is controlled based on the desired driver axle torque to produce an actual axle torque. Meanwhile, and typically concurrently with calculating desired engine and axle torques, a desired speed or gear ratio is calculated from the desired axle torque and the vehicle speed. The desired gear ratio, or CVT pulley ratio, is then communicated to the transmission. The transmission is controlled based on the desired gear ratio (or CVT pulley ratio) to produce an actual gear or pulley ratio. The actual axle torque and the actual gear or pulley ratio define the operating conditions of the motor vehicle.
While this system of propulsion system control is useful for its intended purpose, there is room in the art for improvements that provide dynamic control of the axle torque to balance drivability, performance, and fuel economy, especially in propulsion systems having a continuously variable transmission. Engine control systems have been developed to control engine output torque to achieve a desired torque. Traditional engine control systems, however, may not control the engine output torque as accurately as desired.
A method and system are provided to control a parameter, such as a vehicle acceleration, in a vehicle propulsion system while optimizing fuel economy, through the use of model predictive control. Minimization of fuel is achieved by minimizing engine power for a requested axle torque. Thus, a fuel consumption rate requested is determined based on an air-per-cylinder (APC) requested value.
In one form, which may be combined with or separate from other forms disclosed herein, a method for controlling a propulsion system of a motor vehicle is provided. The method includes generating a plurality of sets of possible command values and determining a cost for each set of possible command values based on a first predetermined weighting value, a second predetermined weighting value, a plurality of predicted values, and a plurality of requested values. The plurality of requested values includes a fuel consumption rate requested value. The method includes determining the fuel consumption rate requested value based on an air-per-cylinder (APC) requested value. The method further includes determining which set of possible command values of the plurality of sets of possible command values has a lowest cost and selecting the set of possible command values that has the lowest cost to define a set of selected command values.
In another form, which may be combined with or separate from the other forms disclosed herein, a control system is provided for a propulsion system of a motor vehicle having a transmission and an engine. The control system includes a command generator module configured to generate a plurality of sets of possible command values. The control system further includes a cost module configured to determine a cost for each set of possible command values based on a first predetermined weighting value, a second predetermined weighting value, a plurality of predicted values, and a plurality of requested values, where the plurality of requested values includes a fuel consumption rate requested value determined based on an air-per-cylinder (APC) requested value. The cost module is further configured to determine which set of possible command values of the plurality of sets of possible command values has a lowest cost. A selection module is configured to select the set of possible command values that has the lowest cost to define a set of selected command values.
In yet another form, which may be combined with or separate from the other forms disclosed herein, a propulsion system for a motor vehicle is provided. The propulsion system includes an engine operable to power the motor vehicle, the engine having an engine output shaft configured to transfer engine output torque. The propulsion system also includes a continuously variable transmission having a variator assembly including a first pulley and a second pulley. The first and second pulleys are rotatably coupled by a rotatable member, at least one of the first and second pulleys including a movable sheave translatable along an axis to selectively change a transmission ratio between the engine output shaft and a transmission output shaft. A drive axle os configured to be driven via the transmission output shaft, the drive axle being configured to output axle torque to a set of wheels. The propulsion system further includes a control system having a prediction module, a steady state optimizer module, a cost module, and a selection module. The prediction module is configured to generate a plurality of predicted actual axle torque values and a plurality of predicted actual fuel consumption rate values based on a plurality of sets of possible command values, where the plurality of sets of possible command values includes a plurality of possible commanded transmission ratio values and a plurality of possible commanded engine torque values. The steady-state optimizer module is configured to determine a fuel consumption rate requested value based on an air-to-cylinder (APC) requested value determined based at least in part on a raw APC reference value. The raw APC reference value is determined based on the following equation:
where APCr_raw is the raw APC reference value, k is a constant, Pa_r is an axle power requested value, FP is a firing period, AF is an air/fuel ratio, c is an engine power-to-fuel ratio, and RPM is an estimated engine speed. The cost module configured to determine a cost for each set of possible command values based on a predicted actual axle torque value, a predicted actual fuel consumption rate value, a first predetermined weighting value, a second predetermined weighting value, and a plurality of requested values, where the plurality of requested values includes an axle torque requested value, an engine output torque requested value, a transmission ratio requested value, and the fuel consumption rate requested value. The cost module is further configured to determine which set of possible command values has a lowest cost. The selection module is configured to select the set of possible command values that has the lowest cost to define a set of selected command values.
Further additional features may be provided, including but not limited to the following: the method and/or control system being configured to select the APC requested value from the lower of a computed APC reference value and a measured APC value; the method and/or control system being configured to determine the computed APC reference value based on an estimated engine speed and an axle power requested value; and the method and/or control system being configured to determine the computed APC reference value based on a raw APC reference value (APCr_raw).
Furthermore, the method and/or control system may be configured to determine the raw APC reference value (APCr_raw) based on the following equation:
where APCr_raw is the raw APC reference value, k is a constant, Pa_r is an axle power requested value, FP is a firing period, AF is an air/fuel ratio, c is an engine power-to-fuel ratio, and RPM is an estimated engine speed. The method and/or control system may be configured to determine the axle power requested value (Pa_r) based on the following equation:
where Pa_r is the axle power requested value, Ta_r is an axle torque requested value, V is vehicle speed, and radius is wheel radius.
Further additional features may include: the method and/or control system being configured to determine the engine power-to-fuel ratio c based on an engine power requested value divided by a fuel requested value, wherein each of the engine power requested value and the fuel requested value may be functions of the estimated engine speed (RPM) and an engine torque requested value; the method and/or control system being configured to determine the estimated engine speed (RPM) based on the vehicle speed (V) and a transmission ratio requested value; wherein the plurality of sets of possible command values includes a plurality of commanded engine output torque values and the set of selected command values includes a selected engine output torque value; the method and/or control system being configured to generate a plurality of predicted actual axle torque values and a plurality of predicted actual fuel consumption rate values based on the plurality of sets of possible command values; the plurality of sets of possible command values including a plurality of possible commanded transmission ratio values; the method and/or control system being configured to determine the cost for each set of possible command values further based on a predicted actual axle torque value of the plurality of predicted axle torque values and a predicted actual fuel consumption rate value of the plurality of predicted actual fuel consumption rate values.
In addition, the method and/or control system may be configured to determine the plurality of predicted actual axle torque values and the plurality of predicted actual fuel consumption rate values with the following set of equations:
where
xk+1=state variable at a prediction step k+1;
xk=state variable at a prediction step k;
A=a state matrix;
B=an input matrix;
Te_c=engine output torque commanded at the prediction step k;
Rat_ck=transmission ratio commanded at the prediction step k;
KKF=Kalman filter gain;
Te_ak=predicted actual engine output torque at the prediction step k;
FR_ak=predicted actual fuel consumption rate at the prediction step k;
Rat_ak=predicted actual transmission ratio at the prediction step k;
Ta_ak=predicted actual axle torque at the prediction step k;
Te_mk=measured engine output torque at the prediction step k;
FR_mk=measured fuel consumption rate at the prediction step k;
Rat_mk=measured transmission ratio at the prediction step k;
Ta_mk=measured axle torque at the prediction step k;
Ta_ak+1=predicted actual axle torque at the prediction step k+1;
FR_ak+1=predicted actual fuel consumption rate at the prediction step k+1;
C=an output matrix;
v=process noise; and
w=measurement noise.
Further, the method and control system may be configured to determine the plurality of costs with the following cost equation:
where
Te_a=predicted actual engine output torque;
FR_a=predicted actual fuel consumption rate;
Rat_a=predicted actual transmission ratio;
Ta_a=predicted actual axle torque;
Te_r=engine output torque requested;
FR_r=fuel consumption rate requested;
Rat_r=transmission ratio requested;
Ta_r=axle torque requested;
Te_c=commanded engine output torque;
Rat_c=commanded transmission ratio;
Qy=the first predetermined weighting value;
Qu=the second predetermined weighting value;
QΔu=a third predetermined weighting value;
i=index value;
k=prediction step; and
T=transposed vector.
Further additional features may include: the control system further comprising a prediction module configured to generate a plurality of predicted actual axle torque values and a plurality of predicted actual fuel consumption rate values based on the plurality of sets of possible command values; the plurality of requested values including the fuel consumption rate requested value, an axle torque requested value, an engine output torque requested value, and a transmission ratio requested value; and the control system further comprising a steady state optimizer module configured to: determine an accelerator pedal position (PP), determine the estimated engine speed (RPM), determine the vehicle speed (V), determine the air-fuel ratio (AF), determine the axle torque requested value (Ta_r) based on the accelerator pedal position (PP) and the vehicle speed (V), determine the transmission ratio requested value (Rat_r) based on the axle torque requested value (Ta_r) and the vehicle speed (V), determine the engine output torque requested value (Te_r) based on the axle torque requested value (Ta_r), the transmission ratio requested value (Rat_r), and a final drive ratio (FD), and determine the APC requested value.
Additional features, aspects and advantages will become apparent by reference to the following description and appended drawings wherein like reference numbers refer to the same component, element or feature.
The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.
With reference to
The propulsion system 10 generally includes an engine 12 interconnected with a transmission 14 and a final drive unit 16. The engine 12 may be a conventional internal combustion engine or an electric engine, hybrid engine, or any other type of prime mover, without departing from the spirit and scope of the present disclosure. The engine 12 supplies a driving engine output torque to the transmission 14 via a crankshaft or engine output shaft 18. The driving engine output torque may be transmitted through a flexplate and/or starting device 20 to the transmission 14. The starting device 20 may be a hydrodynamic device, such as a fluid coupling or torque converter, a wet dual clutch, or an electric motor, by way of example. Torque is then transmitted from the starting device 20 to at least one transmission input shaft 22.
The transmission 14 may be a stepped transmission having planetary gears, a countershaft transmission, a continuously variable transmission, or an infinitely variable transmission. Torque from the transmission input shaft 22 is communicated through a ratio control unit 24 to a transmission output shaft 26. Generally, the ratio control unit 24 provides a plurality of forward or reverse speed or gear ratios, or an infinite number of forward or reverse speed or gear ratios, between the transmission input shaft 22 and the transmission output shaft 26.
Where the transmission 14 is a continuously variable transmission, the ratio control unit 24 may include a variator assembly 24a having first and second pulleys 24b, 24c that are rotatably coupled by an endless rotatable member 24d wrapped around the variable diameter pulleys 24b, 24c. At least one of the first and second pulleys 24b, 24c includes a movable sheave 24e translatable along an axis to selectively change a gear ratio between the engine output shaft 18 and the transmission output shaft 26.
The transmission output shaft 26 communicates output torque to the final drive unit 16. The final drive unit 16 generally includes a differential 28 that transfers axle torque through drive axles 30 to drive wheels 32.
Turning now to
The supervisory control module 36 is a non-generalized, electronic control device having a preprogrammed digital computer or processor 42, memory or non-transitory computer readable medium 44 used to store data such as control logic, instructions, image data, lookup tables, etc., and a plurality of input/output peripherals or ports 46. The processor 42 is configured to execute the control logic or instructions.
The engine control module 38 is a non-generalized, electronic control device having a preprogrammed digital computer or processor 48, memory or non-transitory computer readable medium 50 used to store data such as control logic, instructions, image data, lookup tables, etc., and a plurality of input/output peripherals or ports 52. The processor 48 is configured to execute the control logic or instructions. The engine control module 38 communicates with, and controls, the engine 12.
The transmission control module 40 is a non-generalized, electronic control device having a preprogrammed digital computer or processor 54, memory or non-transitory computer readable medium 56 used to store data such as control logic, instructions, image data, lookup tables, etc., and a plurality of input/output peripherals or ports 58. The processor 54 is configured to execute the control logic or instructions. The transmission control module 40 communicates with, and controls, the transmission 14.
The vehicle propulsion control system 34 communicates with a plurality of sensors connected to the propulsion system 10 including an air flow sensor S2 in the engine 12, an engine speed sensor S4, a transmission input shaft speed sensor S6, a transmission output shaft speed sensor S8, a vehicle speed sensor S10, and a pedal position sensor S12. The air flow sensor S2 and the engine speed sensor S4 communicate with the engine control module 38. The transmission input shaft speed sensor S6 and the transmission output shaft speed sensor S8 communicate with the transmission control module 40. The vehicle speed sensor S10 and the pedal position sensor S12 communicate with both the engine control module 38 and the transmission control module 40.
With reference to
The control system 100 may include an engine torque controller 108, a transmission ratio controller 110 (which may be a variator controller for CVTs), and a vehicle dynamics module 112. In some examples, the multivariable controller 102 is stored and executed by the supervisory control module 36, the engine torque controller 108 is stored and executed by the engine control module 38, and the transmission ratio controller 110 is stored and executed by the transmission control module 40. The vehicle dynamics module 112 may be stored and executed by the engine control module 38, the transmission control module 40, or any other control module or a combination of control modules.
The multivariable controller 102 may optionally receive system limitations 105 from the engine controller 108 including a maximum engine output torque Temax, a minimum engine output torque Temin, a maximum rate of change of engine output torque ΔTemax, and a minimum rate of change of engine output torque ΔTemin. The multivariable controller 102 may also optionally receive system limitations 107 from the transmission ratio controller 110 including a maximum transmission ratio Ratmax, a minimum transmission ratio Ratmin, a maximum rate of change of transmission ratio ΔRmax, and a minimum rate of change of transmission ratio ΔRmin.
Referring now to
The engine output torque commanded Te_c is used to control the engine 12 to result in an actual engine output torque, which is the measured engine output torque Te_m. The transmission ratio commanded Rat_c is used to control the transmission 14 to provide an actual measured gear ratio or pulley ratio Rat_m between the transmission input shaft 22 and the transmission output shaft 26. Thus, the plant 103 outputs the “y” variables, the values that may be tracked, which may include actual measured engine torque Te_m, actual measured fuel consumption rate FR_m, actual measured transmission ratio (or pulley ratio) Rat_m, and actual measured axle torque Ta_m.
Referring now to
The axle torque requested value Ta_r may be determined (e.g., in the sub-module 200C) based on the accelerator pedal position PP and the vehicle speed V. For example,
Ta_r=f(PP,V). (1)
In some examples, the axle torque requested value Ta_r may be determined from a lookup table or 2D map from a vehicle speed V sensed by vehicle speed sensor S10 and an accelerator pedal position PP sensed by the pedal position sensor S12.
The transmission ratio requested value Rat_r may be determined (e.g., in the sub-module 200B) based on the axle torque requested value Ta_r and the vehicle speed V. For example,
Rat_r=f(Ta_r,V). (2)
The engine output torque requested value Te_r may be determined (e.g., in the sub-module 200A) based on the axle torque requested value Ta_r, the transmission ratio requested value Rat_r, and the final drive ratio FD (which is constant for a given vehicle). For example,
The “loss” factor may encompass mechanical losses, such as friction and pulley clamping losses, by way of example.
Minimization of fuel is achieved by minimizing engine power for requested axle power. Accordingly, the fuel consumption rate requested value FR_r may be based on an air-per-cylinder (APC) requested value. In some forms, the FR_r used may be unequal to the APC requested. One exemplary method and control module system for determining the APC requested is illustrated in
For example, the sub-module 200D may include a control, step, or module 302 configured to compute a firing period, or a period between firing events of the engine cylinders. The firing period may be determined, by way of example, from the following equation:
where FP is the firing period, #Cy1 is the number of active engine cylinders, and 120,000 is a constant that could be substituted with any other suitable constant, depending on the parameters of the particular engine. In addition, it should be understood that the firing period FP could be calculated in any other suitable way without falling beyond the spirit and scope of the present disclosure.
To ultimately determine the APC requested, the sub-module may further include a control, step, or module 304 configured to compute an estimated engine speed. The estimated engine speed may be calculated from the vehicle speed, the transmission ratio requested value Rat_r, and a constant, such as with the following equation (6):
RPM=V*Rat_r*α1 (6)
where RPM is the estimated engine speed, V is the vehicle speed, Rat_r is the transmission ratio requested value, and α1 is a coefficient relating estimated engine speed to the transmission ratio requested. In the alternative, the engine speed RPM could be determined from the engine speed sensor S4 or in any other suitable way. If the measured or estimated engine speed is less than an idle speed, the sub-module 304 may be configured to set the estimated engine speed equal to the idle speed.
The module 200D may then be configured, in a control, step, or module 306, to determine an engine power-to-fuel ratio c based on an engine power requested value divided by a fuel requested value, wherein each of the engine power requested value and the fuel requested value are functions of the estimated engine speed (RPM) and the engine torque requested value Te_r. For example, the engine power-to-fuel ratio c may be determined from the following equation (7):
where c is a ratio value that is computed based on the relationship of engine power requested or required to fuel requested or required. Thus, Power is the engine power requested or required, and Fuel is the fuel requested or required. Each of Power and Fuel are functions of estimated engine speed and engine torque requested. In practice, the c ratio or its components may be stored in a lookup table or other database of values within the system.
The module 200D may further include a control or step 308 configured to determine an axle power requested value, such as from the following equation (8):
Where Pa_r is an axle power requested value, Ta_r is an axle torque requested value, V is vehicle speed, and radius is wheel radius. 3600 is a constant, and other constants could be used depending on the particular parameters of the engine used.
The module 200D may also include a control or step 310, in which a raw APC reference value is determined based on the estimated engine speed and the axle power requested value Pa_r. For example, the raw APC reference value (APCr_raw) may be determined based on the following equation (9):
where APCr_raw is the raw APC reference value, k is a constant, Pa_r is the axle power requested value, FP is the firing period, AF is the air/fuel ratio, c is the engine power-to-fuel ratio (described above), and RPM is the estimated engine speed. In some forms, the numerator may also be multiplied by an additional coefficient, α2. The air-fuel ratio AF is the ratio of the mass of air to the mass of fuel, which may be reported by a fuel control module, by way of example.
The raw APC reference value APCr_raw may be rate limited, if desired. For example, the sub-module 200D may include a sub-module, control, or step 312 where the raw APC reference value is bounded or limited by a minimum APC and a maximum APC, for example:
APCmin<APCr_raw<APCmax (10).
In addition, the APCr_raw value may be further refined by using a first-order low-pass filter to computer a refined APC value, APCr. For example, equation (11) may be applied:
In sub-module, control, or step 314, an APC requested value APCr_f may be determined by selecting the APC requested value from the lower of a computed APC reference value and an estimated APC value. The computed APC reference value may be the raw APC reference value APCr_raw or the refined APC reference value APCr. For example, equation (12) may be applied:
APCr_f=mm(APCr,APCestimate) (12).
where APCr_f is the computed APC reference value, APC is the refined APC value computed from equation (11) (in the alternative, APCr_raw could be used), and APCestimate is an estimated APC value that may also sometimes be referred to as a measured APC.
Referring back to
A prediction module 204 is configured to predict at least an actual axle torque and an actual fuel consumption rate for use in the MPC module 202. The prediction module 204 may also be referred to as a state observer, which uses a Kalman filter. The predicted actual values 206 are output from the prediction module 204 to the MPC module 202.
The prediction module 204 is configured to generate a plurality of predicted actual axle torque values and fuel consumption rate values. For example, the prediction module generates at least a first predicted actual axle torque value and a first predicted actual fuel consumption rate value based on a first set of possible command values (which may be generated, for example, by a command generator module formed as part of the prediction module 204 or the MPC module 202), where the first set of possible command values includes a first commanded engine output torque value Te_c and a first commanded transmission ratio value Rat_c. The prediction module 204 is further configured to generate at least a second predicted actual axle torque value and a second predicted actual fuel consumption rate value based on a second set of possible command values, where the second set of possible command values includes a second commanded engine output torque value Te_c and a second commanded transmission ratio value Rat_c. In practice, a much larger number of predicted values may be generated based on additional sets of possible command values (third, fourth, fifth, etc. sets of possible Te_c and Rat_c values). The predicted actual values 206 are output to the MPC module 202.
The MPC module 202 contains a cost module 208 that is configured to determine a first cost for the first set of possible command values Te_c, Rat_c based on at least first and second predetermined weighting values, the first predicted actual axle torque value, the first predicted actual fuel consumption rate value, the axle torque requested value Ta_r, the engine output torque requested value Te_r, the transmission ratio requested value Rat_r, and the fuel consumption rate requested value FR_r. Similarly, the cost module 208 is configured to determine a second cost for the second set of possible command values Te_c, Rat_c based on at least the first and second predetermined weighting values, the second predicted actual axle torque, the second predicted actual fuel consumption rate value, the axle torque requested value Ta_r, the engine output torque requested value Te_r, the transmission ratio requested value Rat_r, and the fuel consumption rate requested value FR_r. Likewise, many more additional costs may be determined based on additional sets of predicted values and command values, in order to optimize for the lowest cost.
The MPC module 202 may also include a selection module 210 configured to select one of the plurality of sets of possible command values Te_c, Rat_c based on the lowest of the determined costs and set a selected engine output torque value Te_c and a selected transmission ratio value Rat_c equal to, or based on, the possible command values Te_c, Rat_c of the selected one of the plurality of possible sets.
The cost module 202 may be configured to determine the plurality of costs, with the following cost equation (13):
where Te_a=predicted actual engine output torque; FR_a=predicted actual fuel consumption rate; Rat_a=predicted actual transmission ratio; Ta_a=predicted actual axle torque; Te_r=engine output torque requested; FR_r=fuel consumption rate requested; Rat_r=transmission ratio requested; Ta_dr=driver axle torque requested; Te_c=commanded engine output torque; Rat_c=commanded transmission ratio; Qy=a first predetermined weighting value; Qu=a second predetermined weighting value; QΔu=a third predetermined weighting value; i=index value; k=prediction step; and T=transposed vector. In this case, there are two values for the “u” variables, u1 and u2, such that i=1, 2, and there may be four values for the “y” variables, y1, y2, y3, y4, such that i=1, 2, 3, 4. As explained above, the yref and uref values may be determined by the steady state optimizer module 200.
The plurality of costs may be determined even more particularly with the following equation (14), which is an MPC equation having a prediction horizon of three and a control horizon of two:
Cost={λa*(Ta_ak−Ta_dr)2+λa*(Ta_ak+1−Ta_dr)2+λa*(Ta_ak+2−Ta_dr)2}+{λf*(FR_ak−FR_r)2+λf*(FR_ak+1−FR_r)2+λf*(FR_ak+2−FR_r)2}+{λe*(Te_ck−Te_r)2+λe*(Te_ck+1−Te_r)2}+{λr*(Rat_ck−Rat_r)2+λr*(Rat_ck+1−Rat_r)2}+{λΔr*(ΔRat_ck)2+λΔr*(ΔRat_ck+1)2}+{λΔe*(ΔTe_ck)2+λΔe*(ΔTe_ck+1)2} (14)
where λa=a first predetermined weighting value; Ta_ak=predicted actual axle torque at a prediction step k; Ta_dr=driver axle torque requested; Ta_ak+1=predicted actual axle torque at a prediction step k+1; Ta_ak+2=predicted actual axle torque at a prediction step k+2; λf=a second predetermined weighting value; FR_ak=predicted actual fuel consumption rate at the prediction step k; FR_r=fuel consumption rate requested; FR_ak+1=predicted actual fuel consumption rate at the prediction step k+1; FR_ak+2=predicted actual fuel consumption rate at the prediction step k+2; λe=a third predetermined weighting value; Te_ck=engine output torque commanded at the prediction step k; Te_r=engine output torque requested; Te_ck+1=engine output torque commanded at the prediction step k+1; λr=a fourth predetermined weighting value; Rat_ck=transmission ratio commanded at the prediction step k; Rat_r=transmission ratio requested; Rat_ck+1=transmission ratio commanded at the prediction step k+1; λΔr=a fifth predetermined weighting value; ΔRat_ck=change in transmission ratio commanded at the prediction step k; ΔRat_ck+1=change in transmission ratio commanded at the prediction step k+1; λΔe=a sixth predetermined weighting value; ΔTe_ck=change in engine output torque commanded at the prediction step k; and ΔTe_ck+1=change in engine output torque commanded at the prediction step k+1. The prediction step k is the prediction at a current step, the prediction step k+1 is a prediction one step ahead, and the prediction step k+2 is a prediction two steps ahead. As explained above, the yref and uref values may be determined by the steady state optimizer module 200.
The cost equation (e.g., equation (13) or (14)) may be applied iteratively to arrive at the lowest cost for a plurality of sets of possible command values Te_c, Rat_c, where the plurality of sets of possible command values Te_c, Rat_c include the first and second sets of possible command values as well as a number of other possible sets of command values for Te_c, Rat_c. Then, the selection module 210 may select the set of possible command values Te_c, Rat_c of the plurality of command values having the lowest cost, where the set of possible command values Te_c, Rat_c having the lowest cost may be defined as the selected set, including the selected transmission ratio value Rat_c and the selected engine output torque value Te_c. Similarly, the cost module 208 may generate a surface representing the cost of possible sets of command values Te_c, Rat_c. The cost module 208 and/or the selection module 210 may then identify the possible set that has the lowest cost based on the slope of the cost surface.
The prediction module 204 may provide a number of predicted actual values 206 to the MPC module 202 for use in the cost equation (e.g., equation (13) or (14)) by the cost module 208. The prediction module 204 may use equations such as the following to determine the predicted actual values 206:
where A=a state (or transmission) matrix; B=an input matrix; C=an output (or measured) matrix; Te_ak=predicted actual engine output torque at the prediction step k; FR_ak=predicted actual fuel consumption rate at the prediction step k; Rat_ak=predicted actual transmission ratio at the prediction step k; Ta_ak=predicted actual axle torque at the prediction step k; xk=state variable at a prediction step k; Te_ak+1=predicted actual engine output torque at the prediction step k+1; FR_ak+1=predicted actual fuel consumption rate at the prediction step k+1; Rat_ak+1=predicted actual transmission ratio at the prediction step k+1; Ta_ak+i=predicted actual axle torque at the prediction step k+1; xk+1=state variable at a prediction step k+1; Te_ck=engine output torque commanded at the prediction step k, which could be substituted by Te_c_arb=arbitrated engine output torque commanded; Rat_ck=transmission ratio commanded at the prediction step k; KKF=a Kalman filter gain; Te_a_mk=measured engine output torque at the prediction step k; FR_a_mk=measured fuel consumption rate at the prediction step k; Rat_a_mk=measured transmission ratio at the prediction step k; Ta_a_mk=measured axle torque at the prediction step k; v=process noise; and w=measurement noise. The prediction step k is a prediction step at the current time (e.g., now), and the prediction step k+1 is a prediction one step ahead.
Measured engine output torque Te_m may be sensed from the engine torque sensor S4. The measured transmission ratio, or pulley ratio, Rat_m may be determined from the speed of the transmission input shaft 22 sensed by the transmission input shaft speed sensor S6 and the speed of the transmission output shaft 26 sensed by the transmission output shaft speed sensor S8, and may be provided by the TCM 40.
Ta_ak+1 and FR_ak+1 may be defined as or equal to the first predicted actual axle torque value and the first predicted actual fuel consumption rate value, respectively, when generated based on the first set of possible command values for Te_ck and Rat_ck, and Ta_ak+1 and FR_ak+1 may be defined as or equal to the second predicted actual axle torque value and the second predicted actual fuel consumption rate value, respectively, when generated based on the second set of possible command values for Te_ck and Rat_ck, and so on.
The cost equation (e.g., equation (13) or (14)) may be subject to the following constraints 105, 107:
Temin≤Te_ck≤Temax;
Temin≤Te_ck+1≤Temax;
Ratmin≤Rat_ck+1≤Ratmax;
Ratmin≤Rat_ck+1≤Ratmax;
ΔRat_cmin≤ΔRat_ck≤ΔRat_cmax;
ΔRat_cmin≤ΔRat_ck+1≤ΔRat_cmax;
ΔTe_cmin≤ΔTe_ck≤ΔTe_cmax; and
ΔTe_cmin≤ΔTe_ck+1≤ΔTe_cmax,
where Temin=a minimum possible engine output torque, Temax=a maximum possible engine output torque, Ratmin=a minimum possible transmission ratio, Ratmax=a maximum possible transmission ratio, ΔRat_cmin=a minimum possible rate of change in transmission ratio; ΔRat_cmax=a maximum possible rate of change in transmission ratio, ΔTe_cmin=a minimum possible rate of change in engine output torque, and ΔTe_cmax=a maximum possible rate of change in engine output torque, where the constraints 105, 107 may be provided by the ECM 38 and the TCM 40, by way of example.
The constants, matrices, and gain referred to above, including A, B, C, KKF, Qy, Qu, QΔu, λa, λf, λe, λr, λΔe, λΔr, are parameters of the system determined through testing, physical models, or other means. In some variations, a system identification procedure is run offline, for example, during a calibration, to identify the constants, matrices, and gain, and also to define u0 and y0. Once u0 and y0 are known, then x0 can be computed from the prediction module equations (e.g., equations (15)-(17) or a subset thereof). Thereafter, each of the prediction module 204 and MPC module 202 equations (e.g., equations (13)-(17) or a subset thereof) can be run to obtain initial values offline. Then, the control system 102 can be run online to constantly optimize the controlled parameters Te_c and Rat_c as the vehicle 9 is running through steady state and transient states. The constants allow the cost to be determined based on the relationship between and relative importance of each of the commanded values Te_c, Rat_c and tracked values (e.g., FR_m, Ta_m, Rat_m, Te_m). The relationships are weighted to control the effect that each relationship has on the cost.
In some forms, the MPC module 202 may generate the possible sets of command values Te_c, Rat_c by determining possible sequences, sets, or a surface containing the command values Te_c, Rat_c that could be used for N future control loops. The prediction module 204 may determine predicted responses to the possible sets of the command values Te_c, Rat_c using the prediction module equations (e.g., equations (15)-(17) or a subset thereof). For example, the prediction module 204 may determine a set of predicted actual axle torques Ta_a and a set of predicted actual fuel consumption rates FR_a for N control loops.
More particularly, a set of N values for each command value Te_c, Rat_c may be determined, and a set of M values for each predicted actual value Ta_a, FR_a may be determined based on the N command values Te_c, Rat_c. The cost module 208 may then determine the cost value for each of the possible sets of command values Te_c, Rat_c based on the predicted actual parameters Ta_a, FR_a (which may include Ta_ak, Ta_ak+1, Ta_ak+2, FR_ak, FR_ak+1, and FR_ak+2, depending on the particular cost equation (13), (14) used). The selection module 210 may then select one of the possible sets of the command values Te_c, Rat_c based on the costs of the possible sets, respectively. For example, the selection module 210 may select the possible set of command values Te_c, Rat_c having the lowest cost while satisfying the system constraints 105, 107 (e.g., Temin<Te_ck<Temax; Temin<Te_ck+1<Temax; Ratmin<Rat_ck<Ratmax; Ratmin<Rat_ck+1<Ratmax; ΔTe_cmin<ΔTe_ck<ΔTe_cmax; ΔTe_cmin<ΔTe_ck+1<ΔTe_cmax; ΔRat_cmin<ΔRat_ck<ΔRat_cmax; ΔRat_cmin<ΔRat_ck+1<ΔRat_cmax).
In some forms, satisfaction of the constraints 105, 107 may be considered in the cost determination. For example, the cost module 208 may determine the cost values further based on the constraints 105, 107, and the selection module 210 may select the possible set of command values Te_c, Rat_c that best achieves the axle torque request Ta while minimizing fuel consumption rate FR that has been determined to comply with the constraints 105, 107.
During steady-state operation, the command values Te_c, Rat_c may settle at or near the reference, or requested, values Te_r, Rat_r, respectively. During transient operation, however, the MPC module 202 may adjust the command values Te_c, Rat_c away from the reference values Te_r, Rat_r in order to best achieve the torque request Ta_r, while minimizing the fuel consumption rate FR and satisfying the constraints 105, 107.
In operation, the MPC module 202 may determine the cost values for the possible sets of controlled and predicted values (u, y). The MPC module 202 may then select the one of the possible sets having the lowest cost. The MPC module 202 may next determine whether the selected possible set satisfies the constraints 105, 107. If so, the possible set may be defined as the selected set. If not, the MPC module 202 determines the set with the lowest cost that satisfies the constraints 105, 107 and defines that set as the selected set. The selected Rat_c command value is output from the MPC module 202 to the plant 103 (see
The terms controller, control module, module, control, control unit, processor and similar terms refer to any one or various combinations of Application Specific Integrated Circuit(s) (ASIC), electronic circuit(s), central processing unit(s), e.g., microprocessor(s) and associated non-transitory memory component in the form of memory and storage devices (read only, programmable read only, random access, hard drive, etc.). The non-transitory memory component may be capable of storing machine readable instructions in the form of one or more software or firmware programs or routines, combinational logic circuit(s), input/output circuit(s) and devices, signal conditioning and buffer circuitry and other components that can be accessed by one or more processors to provide a described functionality.
Input/output circuit(s) and devices include analog/digital converters and related devices that monitor inputs from sensors, with such inputs monitored at a preset sampling frequency or in response to a triggering event. Software, firmware, programs, instructions, control routines, code, algorithms and similar terms can include any controller-executable instruction sets including calibrations and look-up tables. Each controller executes control routine(s) to provide desired functions, including monitoring inputs from sensing devices and other networked controllers and executing control and diagnostic instructions to control operation of actuators. Routines may be executed at regular intervals, for example each 100 microseconds during ongoing operation. Alternatively, routines may be executed in response to occurrence of a triggering event.
Communication between controllers, and communication between controllers, actuators and/or sensors may be accomplished using a direct wired link, a networked communication bus link, a wireless link or any another suitable communication link. Communication includes exchanging data signals in any suitable form, including, for example, electrical signals via a conductive medium, electromagnetic signals via air, optical signals via optical waveguides, and the like.
Data signals may include signals representing inputs from sensors, signals representing actuator commands, and communication signals between controllers. The term ‘model’ refers to a processor-based or processor-executable code and associated calibration that simulates a physical existence of a device or a physical process. As used herein, the terms ‘dynamic’ and ‘dynamically’ describe steps or processes that are executed in real-time and are characterized by monitoring or otherwise determining states of parameters and regularly or periodically updating the states of the parameters during execution of a routine or between iterations of execution of the routine.
The control system 100 may be configured to execute each of the steps of a method, as defined in the claims. Thus, the entire description with respect to
The controller(s) of the control system 100 may include a computer-readable medium (also referred to as a processor-readable medium), including any non-transitory (e.g., tangible) medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a medium may take many forms, including, but not limited to, non-volatile media and volatile media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random access memory (DRAM), which may constitute a main memory. Such instructions may be transmitted by one or more transmission media, including coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to a processor of a computer. Some forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
Look-up tables, databases, data repositories or other data stores described herein may include various kinds of mechanisms for storing, accessing, and retrieving various kinds of data, including a hierarchical database, a set of files in a file system, an application database in a proprietary format, a relational database management system (RDBMS), etc. Each such data store may be included within a computing device employing a computer operating system such as one of those mentioned above, and may be accessed via a network in any one or more of a variety of manners. A file system may be accessible from a computer operating system, and may include files stored in various formats. An RDBMS may employ the Structured Query Language (SQL) in addition to a language for creating, storing, editing, and executing stored procedures, such as the PL/SQL language mentioned above.
The detailed description and the drawings or figures are supportive and descriptive of the many aspects of the present disclosure. While certain aspects have been described in detail, various alternative aspects exist for practicing the disclosure as defined in the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4161929 | Nohira et al. | Jul 1979 | A |
5101786 | Kamio et al. | Apr 1992 | A |
5706780 | Shirakawa | Jan 1998 | A |
5727528 | Hori et al. | Mar 1998 | A |
5775293 | Kresse | Jul 1998 | A |
5921219 | Frohlich et al. | Jul 1999 | A |
6014955 | Hosotani et al. | Jan 2000 | A |
6155230 | Iwano et al. | Dec 2000 | A |
6173226 | Yoshida | Jan 2001 | B1 |
6532935 | Ganser et al. | Mar 2003 | B2 |
6606981 | Itovama | Aug 2003 | B2 |
6704638 | Livshiz et al. | Mar 2004 | B2 |
6704641 | Tashiro et al. | Mar 2004 | B2 |
6826904 | Miura | Dec 2004 | B2 |
6840215 | Livshiz et al. | Jan 2005 | B1 |
6953024 | Linna et al. | Oct 2005 | B2 |
6993901 | Shirakawa | Feb 2006 | B2 |
7016779 | Bowyer | Mar 2006 | B2 |
7021282 | Livshiz et al. | Apr 2006 | B1 |
7051058 | Wagner et al. | May 2006 | B2 |
7222012 | Simon, Jr. | May 2007 | B2 |
7235034 | Berglund et al. | Jun 2007 | B2 |
7236874 | Ichihara | Jun 2007 | B2 |
7274986 | Petridis et al. | Sep 2007 | B1 |
7356403 | Yoshioka et al. | Apr 2008 | B2 |
7395147 | Livshiz et al. | Jul 2008 | B2 |
7400967 | Ueno et al. | Jul 2008 | B2 |
7433775 | Livshiz et al. | Oct 2008 | B2 |
7441544 | Hagari | Oct 2008 | B2 |
7563194 | Murray | Jul 2009 | B2 |
7614384 | Livshiz et al. | Nov 2009 | B2 |
7698048 | Jung | Apr 2010 | B2 |
7703439 | Russell et al. | Apr 2010 | B2 |
7715975 | Yamaoka et al. | May 2010 | B2 |
7775195 | Schondorf et al. | Aug 2010 | B2 |
7777439 | Falkenstein | Aug 2010 | B2 |
7813869 | Grichnik et al. | Oct 2010 | B2 |
7885756 | Livshiz et al. | Feb 2011 | B2 |
7941260 | Lee et al. | May 2011 | B2 |
7949459 | Yoshikawa et al. | May 2011 | B2 |
7967720 | Martin et al. | Jun 2011 | B2 |
7967729 | Martin et al. | Jun 2011 | B2 |
7975668 | Ramappan et al. | Jul 2011 | B2 |
7980221 | Baur et al. | Jul 2011 | B2 |
8010272 | Kuwahara et al. | Aug 2011 | B2 |
8027780 | Whitney et al. | Sep 2011 | B2 |
8041487 | Worthing et al. | Oct 2011 | B2 |
8050841 | Costin et al. | Nov 2011 | B2 |
8073610 | Heap et al. | Dec 2011 | B2 |
8078371 | Cawthorne | Dec 2011 | B2 |
8086390 | Whitney et al. | Dec 2011 | B2 |
8103425 | Choi et al. | Jan 2012 | B2 |
8103428 | Russ et al. | Jan 2012 | B2 |
8116954 | Livshiz et al. | Feb 2012 | B2 |
8121763 | Hou | Feb 2012 | B2 |
8176735 | Komatsu | May 2012 | B2 |
8181627 | Sharples et al. | May 2012 | B2 |
8209104 | Soejima et al. | Jun 2012 | B2 |
8219304 | Soma | Jul 2012 | B2 |
8241177 | Doering et al. | Aug 2012 | B2 |
8307814 | Leroy et al. | Nov 2012 | B2 |
8316828 | Whitney et al. | Nov 2012 | B2 |
8447492 | Watanabe et al. | May 2013 | B2 |
8468821 | Liu et al. | Jun 2013 | B2 |
8483935 | Whitney et al. | Jul 2013 | B2 |
8527120 | Matthews et al. | Sep 2013 | B2 |
8560204 | Simon et al. | Oct 2013 | B2 |
8566008 | Soejima et al. | Oct 2013 | B2 |
8593806 | Huang | Nov 2013 | B2 |
8594904 | Livshiz et al. | Nov 2013 | B2 |
8635001 | Doering et al. | Jan 2014 | B2 |
8739766 | Jentz et al. | Jun 2014 | B2 |
8744716 | Kar | Jun 2014 | B2 |
8862248 | Yasui | Oct 2014 | B2 |
8954257 | Livshiz et al. | Feb 2015 | B2 |
8977457 | Robinette et al. | Mar 2015 | B2 |
9062631 | Kinugawa et al. | Jun 2015 | B2 |
9067593 | Dufford | Jun 2015 | B2 |
9075406 | Nakada | Jul 2015 | B2 |
9145841 | Miyazaki et al. | Sep 2015 | B2 |
9175622 | Seiberlich et al. | Nov 2015 | B2 |
9175628 | Livshiz et al. | Nov 2015 | B2 |
9222426 | Rollinger et al. | Dec 2015 | B2 |
9243524 | Whitney et al. | Jan 2016 | B2 |
9328671 | Whitney et al. | May 2016 | B2 |
9334815 | Cygan, Jr. et al. | May 2016 | B2 |
9347381 | Long et al. | May 2016 | B2 |
9376965 | Whitney et al. | Jun 2016 | B2 |
9378594 | Wong et al. | Jun 2016 | B2 |
9382865 | Genslak et al. | Jul 2016 | B2 |
9388754 | Cygan, Jr. et al. | Jul 2016 | B2 |
9388758 | Pochner et al. | Jul 2016 | B2 |
9399959 | Whitney et al. | Jul 2016 | B2 |
9429085 | Whitney et al. | Aug 2016 | B2 |
9435274 | Wong et al. | Sep 2016 | B2 |
9447632 | LeBlanc | Sep 2016 | B2 |
9528453 | Whitney et al. | Dec 2016 | B2 |
9534547 | Livshiz et al. | Jan 2017 | B2 |
9541019 | Verdejo et al. | Jan 2017 | B2 |
9587573 | Genslak et al. | Mar 2017 | B2 |
9599049 | Zavala Jurado et al. | Mar 2017 | B2 |
9599053 | Long et al. | Mar 2017 | B2 |
9605615 | Long et al. | Mar 2017 | B2 |
9669822 | Piper et al. | Jun 2017 | B2 |
9714616 | Jin et al. | Jul 2017 | B2 |
9732499 | Miyamoto et al. | Aug 2017 | B2 |
9732688 | Cygan, Jr. et al. | Aug 2017 | B2 |
9765703 | Whitney et al. | Sep 2017 | B2 |
9784198 | Long et al. | Oct 2017 | B2 |
9789876 | Livshiz et al. | Oct 2017 | B1 |
9797318 | Storch et al. | Oct 2017 | B2 |
9863345 | Wong et al. | Jan 2018 | B2 |
9920697 | Pochner et al. | Mar 2018 | B2 |
9927780 | Sun et al. | Mar 2018 | B2 |
20040116220 | Yamamoto et al. | Jun 2004 | A1 |
20050065691 | Cho | Mar 2005 | A1 |
20070191181 | Burns | Aug 2007 | A1 |
20090288899 | Belloso | Nov 2009 | A1 |
20100211294 | Soejima | Aug 2010 | A1 |
20120010860 | Kirkling et al. | Jan 2012 | A1 |
20170306819 | Alfieri et al. | Oct 2017 | A1 |
20170361842 | Livshiz et al. | Dec 2017 | A1 |
Number | Date | Country |
---|---|---|
1594846 | Mar 2005 | CN |
2003065135 | Aug 2003 | WO |
Entry |
---|
John C.G. Boot, “Quadratic Programming: Algorithms, Anomalies, Applications, vol. 2 of Studies in Mathematical and Managerial Economics,” North Holland Publ. Comp., 1964; 213 pages. |
N. Lawrence Ricker, “Use of Quadratic Programming for Constrained Internal Model Control,” Ind. Eng. Chem. Process Des. Dev., 1985, pp. 925-936. |
C. E. Lemke, “A Method of Solution for Quadratic Programs,” Rensselaer Polytechnic Institute, Troy, New York, Published Online: Jul. 1, 1962, pp. 442-453. |
Kolmanovsky I., “Towards Engine and Powertrain Control Based on Model Predictive Control,” Sep. 28, 2012, Powerpoint Presentation, 47 slides. |
Gorinevsky, Lecture 14—Model Predictive Control Part 1: The Concept, Spring 2005, Powerpoint Presentation, 26 slides. |
Bemporad, Alberto, “Model Predictive Control,” Spring 2005, Powerpoint Presentation, 94 slides. |
Boyd, S., “Model Predictive Control,” Powerpoint Presentation, 25 slides. |
U.S. Appl. No. 15/436,235, filed Feb. 17, 2017; Applicant: GM Global Technology Operations LLC; Title: Torque Security of MPC-Based Powertrain Control. |
U.S. Appl. No. 15/465,647, filed Mar. 22, 2017; Applicant: GM Global Technology Operations LLC; Title: Coordination of Torque Interventions in MPC-Based Powertrain Control. |
Number | Date | Country | |
---|---|---|---|
20190071097 A1 | Mar 2019 | US |