The present invention will become more fully understood from the detailed description and the accompanying drawings, wherein:
The following description of the preferred embodiment is merely exemplary in nature and is in no way intended to limit the invention, its application, or uses. For purposes of clarity, the same reference numbers will be used in the drawings to identify similar elements. As used herein, the term “module” refers to an application specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and memory that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
Referring now to
The engine 128 includes a cylinder 132 having a fuel injector 134 and a spark plug 136. Although a single cylinder 132 is shown, it will be appreciated that the engine 128 typically includes multiple cylinders 132 with associated fuel injectors 134 and spark plugs 136. For example, the engine 128 may include 4, 5, 6, 8, 10, or 12 cylinders 132.
Air is drawn into an intake manifold 138 of the engine 128 through an inlet 140. A throttle 142 regulates the airflow through the inlet 140. Fuel and air are combined in the cylinder 132 and are ignited by the spark plug 136. The throttle 142 is actuated to control air flowing into the intake manifold 138. The controller 130 adjusts the flow of fuel through the fuel injector 134 based on the air flowing into the cylinder 132 to control the air-to-fuel (A/F) ratio within the cylinder 132.
The controller 130 communicates with an engine speed sensor 144, which generates an engine speed signal. The controller 130 also communicates with mass air flow (MAF) and manifold absolute pressure (MAP) sensors 146 and 148, which generate MAF and MAP signals, respectively. The controller 130 communicates with a throttle position sensor (TPS) 150, which generates a TPS signal.
Referring now to
An electronic throttle control correction system 50 includes an initialization module 62 that monitors the initialization flag 54. If the initialization flag 54 is set true, the initialization module 62 determines an air-learn threshold by examining a NV histogram 56. The air-learn threshold is based the lowest cell index of a correction array 58 where a learned-correction value was calculated or “learned” during a previous key cycle. Learned-correction values are used to correct for airflow variation by repositioning a throttle blade. The NV histogram 56 stores the number of times a given learned airflow correction cell was updated during a previous key cycle.
The initialization module 62 initializes the values of an old air-learn index and an air-learn value to zero and clears the cells of a volatile (V) histogram. The air-learn index is a pointer to the correction array 58. The air-learn value stores the number of continuous writes that occur at a given air-learn index during a single key cycle. The second air-learn index represents a one-loop old value of the air-learn index while executing the air-learn correction routine 200 depicted in
A correction module 64 writes a learned-correction value to the correction array 58 at a first air-learn index. The generator module 61 generates the learned-correction value that corresponds to the first air-learn index that is determined by the indexing module 60. An indexing module 60 determines the first air-learn index as a function of a desired throttle level and passes the air-learn index to the correction module 64. The indexing module 60 communicates with the TPS 150 to determine the current desired throttle level.
The correction module 64 then checks whether the first air-learn index meets three conditions: (1) whether the air-learn threshold exceeds or is equal to the first air-learn index; (2) whether the first air-learn index is equal to the second air-learn index; and (3) whether the first air-learn index is greater than zero. If all three conditions are met, the correction module 64 increments the air-learn value and the correction module 64 determines whether the air-learn value exceeds or is equal to a stability threshold. In an exemplary embodiment, the stability threshold can be calibrated. If the value exceeds or is equal to the stability threshold, the air-learn threshold is updated to the cell referenced by the first air-learn index, and the correction module 64 writes the learned-correction value to additional cells of the correction array 58. In an exemplary embodiment, the correction module 64 can write the learned-correction value from a first cell of the correction array 58, cell0, to the cell of the correction array 58 adjacent to the first air learn index that has not been written to during the current key cycle, cellfirst air-learn index-1.
In an alternate embodiment, the correction module 64 can write a calibrated percentage of the learned-correction value determined for the first air-learn index to a calibrated number of cells adjacent to the cell of the correction array 58 referenced by the first air learn index.
If any of the three conditions are not met, the correction module 64 sets the air-learn value equal to zero and sets the second air-learn index equal to the first air-learn index.
Whether or not the three conditions are satisfied, the correction module 64 increments the V histogram upon the initial write of the learned-correction value to the correction array 58.
The shutdown module 66 determines whether a cell of the V histogram contains a value equal to zero for each cell of the V histogram. In an exemplary embodiment, the shutdown module 66 begins by determining whether all cells of the V histogram equal zero. If all cells of the V histogram do not equal zero, then the shutdown controller 66 begins reading the V histogram at a first cell, cell0. If the value of the first cell of the V histogram does not equal to zero, the shutdown module 66 determines whether the sum of the values of the first cell of the V histogram and the corresponding cell of the NV histogram 56 exceeds a NV histogram threshold.
If the NV histogram threshold exceeds the sum, then the shutdown module 66 increments the NV histogram 56 cell value by the corresponding V histogram cell value. If the sum exceeds the NV histogram threshold, then the shutdown module 66 sets the current cell value of the NV histogram 56 equal to the NV threshold. The shutdown module 66 proceeds to increment a loop pointer to move to the next cell of the NV histogram 56.
If the current cell value of the V histogram does equal zero, the shutdown module 66 decrements the current cell of the NV histogram 56 by a calibrated value. The shutdown module 66 proceeds to increment a loop pointer to move to the next cell of the NV histogram 56.
The shutdown module 66 determines whether the loop pointer of the NV histogram is greater than or equal to zero and less than or equal to a predetermined value, n. In an exemplary embodiment, n can equal 16. If the loop pointer is equal to or exceeds zero and less than or equal to n, the shutdown module 66 determines whether the next cell value of the V histogram is equal to zero and the above procedure is repeated for all cells up to value n.
In an alternate embodiment, the controller 130 updates the correction array 58 based on residual values. The controller 130 examines a stored residual value that equals the difference between the actual airflow measured by the MAF 146 and an estimated air flow calculated from a predetermined compressible flow equation (not shown). The stored residual values are maintained in a residual array (not shown) for each corresponding cell of the correction array 58 in which a learned-correction value has been stored. The controller 130 compares the value of each cell of the residual array stored below the first air-learn index of the correction array 58 to a predetermined residual threshold. The controller 130 writes the learned-correction value of the first air-learn index to each lower cell of the correction array 58 in which the corresponding residual value of that cell exceeds the predetermined residual threshold. After each write of the learned-correction value performed by the controller 130 to the lower cells of the correction array 58, the controller 130 clears the residual array in preparation for the next learn event.
Referring now to
In step 206, the initialization module 62 determines the maximum value for an air-learn threshold. In step 208, the initialization module 62 clears the values of an air-learn value, a second air-learn index, and the values contained in a V histogram.
In step 210, the initialization module 62 determines the lowest cell index of a correction array 58 where a learned-correction value was stored during a previous key cycle. In step 212, the initialization module 62 sets the air-learn threshold equal to the lowest cell index where learning previously occurred in step 210. The method 200 ends in step 214.
Referring now to
If all three conditions are satisfied, then in step 262, the air-learn value is incremented. In step 264, the correction module 64 determines whether the value of the air-learn value is equal to or has exceeded a stability threshold. If the value of the air-learn value is not equal to or greater than the stability threshold, then the correction module 64 returns to step 254. If in step 264, the air-learn value is equal to or has exceeded the stability threshold, then in step 266, the correction module 64 sets the air-learn threshold equal to first air-learn index.
In step 268, the correction module 64 writes the learned-correction value from step 254 to other cells of the correction array 58. In an exemplary embodiment, the correction module 64 can write the learned-correction value from cell0 to cellfirst air-learn index-1. In step 270, the correction module 64 increments the V histogram, and the method 250 ends in step 272.
If any of the three conditions in steps 256, 258, 260 are not met, then in step 274, the correction module 64 sets the air-learn value equal to zero. In step 278, the correction module 64 sets the second air-learn index equal to the first air-learn index. In step 270, the correction module 64 increments the V histogram, and the method 250 ends in step 272. In an exemplary embodiment, the method 250 may be periodically repeated during a single key cycle.
Referring now to
In step 316, the shutdown module 66 determines whether the sum of the values of the current cell of the NV histogram 56 and the corresponding cell of the V histogram exceed a NV histogram threshold. If the NV histogram threshold exceeds the sum, then the shutdown module 66 increments the NV histogram cell value by the V histogram value in step 320. If the sum exceeds the NV histogram threshold, then the shutdown module 66 sets the current cell value of the NV histogram 56 equal to the NV histogram threshold in step 318. The shutdown module 66 then proceeds to step 310.
However, in step 304, if the current cell is equal to zero, the shutdown module 66 decrements the current cell of the NV histogram 56 by a calibrated value in step 308. In step 310, the shutdown module 66 increments a loop pointer to move to the next cell of the NV histogram 56. In step 312, the shutdown module 66 determines whether the loop pointer exceeds or is equal to zero and below or equal to a predetermined value, n. In an exemplary embodiment, the value of n can equal but is not limited to 16. If the loop counter is greater than or equal to zero and less than or equal to n, the shutdown module 66 returns to step 304. If the loop counter is not greater than or equal to zero and less than or equal to n, the shutdown ends in step 314.
Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the present invention can be implemented in a variety of forms. Therefore, while this invention has been described in connection with particular examples thereof, the true scope of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, the specification and the following claims.