System and method for feedback error learning in non-linear systems
10152037 ยท 2018-12-11
Assignee
Inventors
- Dimitar Petrov Filev (Novi, MI)
- Michio Sugeno (Dai, JP)
- Yan Wang (Ann Arbor, MI)
- Luka Eciolaza (Idiazabal, ES)
- Tadanari Taniguchi (Hadano, JP)
- John Ottavio Michelini (Sterling Heights, MI)
Cpc classification
F02D41/1402
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F02D41/0007
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F02D2041/1434
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F02D2041/141
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F02D2041/001
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F02D41/0002
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
International classification
F02D41/00
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
Abstract
A method for operating an actuator is disclosed. The actuator may be a linear or non-linear actuator. In one example, a pseudo-inverse piecewise bilinear model is adapted in response to output of a feedback controller to improve feed forward control.
Claims
1. A method for controlling a system, comprising: producing, with an engine position sensor, an indication of engine speed; providing a pseudo-inverse piecewise bilinear model of a plant, wherein an axis of a matrix of the pseudo-inverse piecewise bilinear model implemented in a feed forward controller is engine speed; adapting the pseudo-inverse piecewise bilinear model based on an output of a feedback controller; and adjusting operation of an actuator in response to the pseudo-inverse piecewise bilinear model including the sensed engine speed; wherein the actuator is an engine torque actuator.
2. The method of claim 1, where the pseudo-inverse piecewise bilinear model is implemented via a lookup table, and where the plant is the actuator.
3. The method of claim 1, where the pseudo-inverse piecewise bilinear model represents an approximate inverse of a noninvertible plant model.
4. The method of claim 1, where the engine torque actuator is one of a camshaft actuator, a throttle actuator, or a fuel injector.
5. A method for controlling a system, comprising: producing, with an engine position sensor, an indication of engine speed; providing an inverse piecewise bilinear model of a plant, wherein an axis of a matrix of the inverse piecewise bilinear model implemented in a feedforward controller is engine speed; adapting the inverse piecewise bilinear model in response to an output of a feedback controller; and adjusting operation of an actuator in response to the inverse piecewise bilinear model including the sensed engine speed and the output of the feedback controller; wherein the actuator is a vehicle brake system actuator.
6. The method of claim 5, further comprising driving output of the feedback controller toward zero via adapting the inverse piecewise bilinear model.
7. The method of claim 6, where the inverse piecewise bilinear model is in a form of a lookup table, and where the plant is the actuator.
8. The method of claim 7, where adapting the inverse piecewise bilinear model includes adjusting a table entry of the lookup table.
9. The method of claim 7, where adapting the inverse piecewise bilinear model includes adjusting one or more table vertexes.
10. The method of claim 5, where a reference trajectory is input to the inverse piecewise bilinear model of the plant and where an output of the inverse piecewise bilinear model is added to the output of the feedback controller.
11. A method for controlling a non-linear system, comprising: producing, with an engine position sensor, an indication of engine speed; providing a piecewise bilinear model of a non-linear plant, wherein an axis of a matrix of the piecewise bilinear model implemented in a feedforward controller is engine speed; adapting the piecewise bilinear model via minimizing a performance index in response to an output of a feedback controller; and adjusting operation of an actuator in response to the piecewise bilinear model and the output of the feedback controller; wherein the actuator is an actuator of a vehicle.
12. The method of claim 11, further comprising supplying the feedback controller a state of the actuator, and where the actuator is the non-linear plant.
13. The method of claim 11, where the actuator is an engine torque actuator.
Description
BRIEF DESCRIPTION OF THE FIGURES
(1)
(2)
(3)
(4)
DETAILED DESCRIPTION
(5) The present description is related to improving operation of non-linear actuators and systems. The actuators and systems may be part of a larger system. In one example as is shown in
(6) Referring to
(7) Fuel injector 66 is shown positioned to inject fuel directly into combustion chamber 30, which is known to those skilled in the art as direct injection. Fuel injector 66 delivers fuel in proportion to the pulse width signal from controller 12. An air-fuel mixture in combustion chamber 30 may be ignited by spark plug 68. In some examples, throttle 62, spark plug 68, cams 51 and 53, and fuel injector 66 may be referred to as engine torque actuators.
(8) Intake manifold 44 is shown communicating with optional electronic throttle 62 which adjusts a position of throttle plate 64 to control air flow from intake boost chamber 46. Compressor 162 draws air from air intake 42 to supply boost chamber 46. Exhaust gases spin turbine 164 which is coupled to compressor 162 via shaft 161. In some examples, a charge air cooler may be provided. Compressor speed may be adjusted via adjusting a position of variable vane control 72 or compressor bypass valve 158. In alternative examples, a waste gate 74 may replace or be used in addition to variable vane control 72. Variable vane control 72 adjusts a position of variable geometry turbine vanes. Exhaust gases can pass through turbine 164 supplying little energy to rotate turbine 164 when vanes are in an open position. Exhaust gases can pass through turbine 164 and impart increased force on turbine 164 when vanes are in a closed position. Alternatively, wastegate 74 allows exhaust gases to flow around turbine 164 so as to reduce the amount of energy supplied to the turbine. Compressor bypass valve 158 allows compressed air at the outlet of compressor 162 to be returned to the input of compressor 162. In this way, the efficiency of compressor 162 may be reduced so as to affect the flow of compressor 162 and reduce the possibility of compressor surge.
(9) In some examples, a universal Exhaust Gas Oxygen (UEGO) sensor 126 may be coupled to exhaust manifold 48 upstream of emissions device 70 as is shown. In other examples, the UEGO sensor may be located downstream of one or more exhaust after treatment devices.
(10) Emissions device 70 can include a three-way catalyst in the form of multiple catalyst bricks. In another example, multiple emission control devices, each with multiple bricks, can be used. Emissions device 70 can include an oxidation catalyst in one example. In other examples, the emissions device may include a lean NOx trap or a selective catalyst reduction (SCR), and/or a particulate filter (DPF), and/or a hydrocarbon trap.
(11) In examples where engine 10 is a diesel engine, 66 may be a glow plug and 68 may be a fuel injector. Fuel injection timing may be adjusted with respect to a position of crankshaft 40 to control combustion timing.
(12) Controller 12 is shown in
(13) During operation, each cylinder within engine 10 typically undergoes a four stroke cycle: the cycle includes the intake stroke, compression stroke, expansion stroke, and exhaust stroke. During the intake stroke, generally, the exhaust valve 54 closes and intake valve 52 opens. Air is introduced into combustion chamber 30 via intake manifold 44, and piston 36 moves to the bottom of the cylinder so as to increase the volume within combustion chamber 30. The position at which piston 36 is near the bottom of the cylinder and at the end of its stroke (e.g. when combustion chamber 30 is at its largest volume) is typically referred to by those of skill in the art as bottom dead center (BDC). During the compression stroke, intake valve 52 and exhaust valve 54 are closed. Piston 36 moves toward the cylinder head so as to compress the air within combustion chamber 30. The point at which piston 36 is at the end of its stroke and closest to the cylinder head (e.g. when combustion chamber 30 is at its smallest volume) is typically referred to by those of skill in the art as top dead center (TDC). In a process hereinafter referred to as injection, fuel is introduced into the combustion chamber. In some examples, fuel may be injected to a cylinder a plurality of times during a single cylinder cycle. In a process hereinafter referred to as ignition, spark is provided to combust the air-fuel mixture in the cylinder. Alternatively, combustion may be initiated via compression ignition. During the expansion stroke, the expanding gases push piston 36 back to BDC. Crankshaft 40 converts piston movement into a rotational torque of the rotary shaft. Finally, during the exhaust stroke, the exhaust valve 54 opens to release the combusted air-fuel mixture to exhaust manifold 48 and the piston returns to TDC. Note that the above is described merely as an example, and that intake and exhaust valve opening and/or closing timings may vary, such as to provide positive or negative valve overlap, late intake valve closing, or various other examples. Further, in some examples a two-stroke cycle may be used rather than a four-stroke cycle.
(14) Referring now to
(15) Referring now to
(16) Lookup table 302 includes table entries and vertexes that describe an inverse or pseudo-inverse model of plant 320. Lookup table 302 operates as a piecewise bilinear model. In this example, the reference input and its derivative with respect to time are inputs to index lookup table 302. If plant 320 is linear and invertible, lookup table 302 is an inverse of plant 320. If plant 320 is non-linear and not invertible, lookup table 302 is pseudo-inverse or approximated inverse of plant 320 since plant 320 is not invertible. Output from lookup table 302 provides a feed forward component u.sub.ff of the control output u to plant 320. Feedback controller 308 provides a feedback component u.sub.fb of the control output u to plant 320. Parameters u.sub.ff and u.sub.fb are added together at summing junction 310 before being input to plant 320. Plant 320 may be an actuator in the system as is describe in
(17) Referring now to
(18) At 402, method 400 determines a feed forward controller for operating a plant. The plant may be an actuator in a vehicle system as shown in
(19) In one example, the feed forward controller may be identified and constructed from offline plant data. Further, the feed forward controller may be implemented as an inverse or pseudo-inverse piecewise bilinear model. The piecewise bilinear model is always formed by matrices, and each value in the matrix is referred to as a vertex in the piecewise bilinear model. In one example, where the feed forward model uses a piecewise bilinear model that is be expressed and implemented as a lookup table that is indexed via one or more variables, the table axes may be defined as the expected limits of the one or more index variables (e.g., where a Y axis of a table is engine speed and an X axis of the table is engine load, the Y axis may extend from 0 to 1 and the X axis may extend from 0 to 7000 RPM). The lookup table entry vertexes may be evenly divided based on the table dimensions and the X and Y axis extents. However, in other examples, a more sophisticated method for identifying the inverse or pseudo-inverse model may be provided. For example, the piecewise bilinear model may be identified via minimizing a performance index based on m samples of plant inputs and outputs. Method 400 proceeds to 402 after the feed forward controller is determined.
(20) At 404, method 400 determines a feedback controller for commanding the plant and providing input to adapt the feed forward controller. In one example, the feedback controller may be implemented as a proportional/integral controller where a command supplied to a plant is based on an error that is determined from a difference between a plant command and plant response. The plant command is adjusted by a proportionate amount of the error. Further, the plant command is adjusted based on the integrated error. In particular, the proportionate amount of error and the integrated error are added together and input as the control command to the plant. In other examples, other types of controllers may be the basis for the feedback controller. For example, a proportional/integral/derivative (PID) controller may be the feedback controller. In still other examples, the feedback controller is the vehicle driver. For example, the driver may change control actions when vehicle performance does not meet the driver's desired or perceived performance. The error provided to the feedback controller may be due to errors in the nominal plant model, deviation of environmental conditions from nominal environmental conditions, an incorrect nominal feed forward controller, or deviation of the feed forward controller from a nominal calibration. Method 400 proceeds to 406 after determining the feedback controller.
(21) At 406, method 400 receives a desired plant trajectory or command input. The desired plant trajectory may be based on a desired predetermined trajectory that provides a desired plant response. For example, a desired vehicle brake application rate that stops a vehicle without causing wheel skid may be input to the control system at 406. In other examples, other desired command inputs for other actuators such as camshaft actuators, throttle actuators, fuel injectors, vehicle speed actuators, torque control actuators, turbocharger waste gate actuators, climate control actuators, and vehicle suspension actuators may be input to the system depending on the plant being controlled.
(22) The desired plant trajectory is input to the feed forward controller. The desired plant trajectory is also input to a feedback controller as part of an error determined by subtracting the plant's response from the desired plant trajectory as shown in
(23) At 408, method 400 sums the output of the feed forward controller and output of the feedback controller to provide a control command u to the plant. Thus, the command signal to the plant includes a feed forward portion of a command u and a feedback portion of command u. If the feed forward portion of the command includes no error, the feedback portion of the plant command goes to zero. Method 400 proceeds to 410 after the feed forward and feedback control commands are summed together.
(24) At 410, method 400 adjusts operation of the plant. The plant may be an actuator or actuator such as engine torque actuators, vehicle suspension actuators, vehicle speed control actuators, or some other actuators that may be described by a piecewise bilinear model. Further, several actuators of the actuators described herein may be adjusted simultaneously to control vehicle speed, engine torque, engine speed, and vehicle traffic following characteristics. Further still, several versions of the method of
(25) At 412, method 400 determines error between the desired actuator or plant trajectory and actual actuator or plant trajectory. In particular, the plant's trajectory is subtracted from the desired plant trajectory to provide a plant error. Method 400 proceeds to 414 after plant error is determined.
(26) At 414, method 400 adapts lookup table entries and vertexes to improve the inverse or pseudo-inverse piecewise bilinear model that has been presented in the form of a lookup table. In one example, the lookup table may be adapted via an online sequential learning algorithm, and interpolation between lookup table entries and vertexes is based on bilinear interpolation.
(27) A simplified plant model may be expressed as y=p(u) where y is output and u is control input. The inverse may be expressed as u=p.sup.?1(y) assuming that the plant is invertible. The inverse model for the feed forward controller in the FEL may be expressed as u.sub.ff=p.sup.?1(r,{dot over (r)}) where r is a desired output y.sub.d and where {dot over (r)} is {dot over (y)}.sub.d. The feed forward controller in this example includes two inputs y and {dot over (y)} as well as a single output u.sub.ff. Further, the feed forward controller in this example includes a pseudo-inverse model since the plant is generally not invertible unless its relative degree is zero.
(28) The feed forward control parameters are learned to minimize a performance index described by:
(29)
Where u.sub.ff is the feed forward output, u.sub.0 is the ideal feed forward control output, where u.sub.ff=p.sup.?1(r,{dot over (r)},V), and where V is a matrix of vertexes. The piecewise bilinear representation of the feed forward controller is:
(30)
The derivative of I may be expressed as:
(31)
The variable I can be sequentially minimized using its derivative; however, the error (u.sub.ff?u.sub.0) is not available since u.sub.0 is unknown. Instead, the output of the feedback controller u.sub.fb may be used in place of (u.sub.ff?u.sub.0). The derivative of I becomes:
(32)
Sequential learning is applied via the following algorithm:
(33)
Where ? is an adjustable parameter for the adaptive learning rate. If learning is successful, V.sub.new=V.sub.old and u.sub.fb becomes zero. A model parameter corresponding to each vertex of a region is updated as:
(34)
Variables V.sub.new and V.sub.old refer to the values of four vertexes of a region. Therefore, the partial derivative of u.sub.ff with respect to each of the vertexes becomes:
(35)
When the piecewise bilinear model is two dimensional the feed forward output becomes:
u.sub.ff=(1??)(1??)V.sub.(?,?)+(1??)?V.sub.(?,?+1)+?(1??)V.sub.(?+1,?)+??V.sub.(?+1,?+1)
Every value of u.sub.ff is interpolated between the values of four vertexes defining a region. The calculation of partial derivatives becomes:
?p.sup.?1=((1??)(1??),(1??)?,?(1??),??)
The change in each vertex of a region becomes:
V.sub.new(?,?)=V.sub.old(?,?)??(1??)(1??)u.sub.fb
V.sub.new(?,?+1)=V.sub.old(?,?+1)??(1??)?u.sub.fb
V.sub.new(?+1,?)=V.sub.old(?+1,?)???(1??)u.sub.fb
V.sub.new(?+1,?+1)=V.sub.old(?+1,?+1)???u.sub.fb
(36) In this way, the feed forward values and the vertexes of the lookup table are adjusted based on output from the feedback controller. Method 400 proceeds to 416 after the lookup table is adjusted.
(37) At 414, method 400 judges whether or not output of the feedback controller is substantially zero or within a predetermined range of zero depending on the plant being controlled. For example, if the control command to the plant being controlled is between ?100 and 100, method 400 may determine that output of the feedback controller is within a predetermined range of zero when output of the feedback controller is between ?2 and 2. If method 400 judges that output of the feedback controller is substantially zero, the answer is yes and method 400 proceeds to exit. Otherwise, the answer is no and method 400 continues to adapt values in the lookup table. It should be mentioned that if the plant is operating at relatively steady state conditions and output from the feedback controller is determined to be within a predetermined range of zero, method 400 may exit and may further adapt other regions in the lookup table when the plant operating conditions change. Additionally, the feedback controller may continue to operate so that if conditions of the plant change, the system may be driven back to the desired control point. Lookup tables may be adapted if the feedback controller output deviates from zero or from within a predetermined range of zero.
(38) Thus, the method of
(39) In some examples, the method includes controlling multiple actuators controlling engine torque. The method includes where the engine torque actuator is one or a combination of a camshaft actuator, a throttle actuator, a wastegate actuator, spark controller, or a fuel injector. The method includes controlling vehicle speed via multiple actuators. The method includes where the vehicle speed control actuator is one or a combination of a vehicle brake actuator or a throttle actuator. The method also includes where the actuator is a turbocharger waste gate actuator.
(40) The method of
(41) In some examples, the method includes where adapting the piecewise bilinear model includes adjusting one or more table vertexes. The method includes where a reference trajectory is input to the piecewise bilinear model of the plant and where an output of the piecewise bilinear model is added to an output of the feedback controller. The method includes where the actuator is a vehicle brake system actuator. The method includes where the actuator is a vehicle climate control actuator.
(42) The method of
(43) As will be appreciated by one of ordinary skill in the art, the method described in
(44) This concludes the description. The reading of it by those skilled in the art would bring to mind many alterations and modifications without departing from the spirit and the scope of the description. For example, single cylinder, I2, I3, I4, I5, V6, V8, V10, V12 and V16 engines operating in natural gas, gasoline, diesel, or alternative fuel configurations could use the present description to advantage.