CA2216122A1 - Electronic control unit and method for fuel delivery - Google Patents

Electronic control unit and method for fuel delivery Download PDF

Info

Publication number
CA2216122A1
CA2216122A1 CA002216122A CA2216122A CA2216122A1 CA 2216122 A1 CA2216122 A1 CA 2216122A1 CA 002216122 A CA002216122 A CA 002216122A CA 2216122 A CA2216122 A CA 2216122A CA 2216122 A1 CA2216122 A1 CA 2216122A1
Authority
CA
Canada
Prior art keywords
fuel
engine
map
pulse width
template
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002216122A
Other languages
French (fr)
Inventor
David K. Cutler
Stephen R. Bickham
Todd Halvorson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hirel Holdings Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2216122A1 publication Critical patent/CA2216122A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/02Circuit arrangements for generating control signals
    • F02D41/14Introducing closed-loop corrections
    • F02D41/1401Introducing closed-loop corrections characterised by the control or regulation method
    • F02D41/1406Introducing closed-loop corrections characterised by the control or regulation method with use of a optimisation method, e.g. iteration

Abstract

A method and apparatus are disclosed for controlling the operation of a fuelinjected, spark-ignited internal combustion engine by adjusting the pulse width of the fuel injection signal. An initial fuel injection pulse is set (ECU) for respective, preselected pairs of engine operating parameters such as engine speed (38) and manifold pressure (24). The injection pulse width is then adjusted by a computer control (ECU) for each preselected pair of parameters to obtain optimum performance for example, as might be indicated by detection of engine torque. Each time a pulse width is adjusted (ECU), all previously adjusted pulse widths are compared (ECU) with respect to corresponding pulse widths in stored-template fuel maps (ECU). The bestmatched template fuel map is then used in conjunction with all previoulsy adjusted points to create a new operational fuel map (ECU) to run the engine until a more updated operational fuel map can be created upon additional fuel pulse widths being tuned.

Description

CA 02216122 1997-08-l~
Wo 96/26361 PCT/US96102536 ELECTRONIC CONTROL UNIT AND METHOD FOR FUEL DELIVERY
s TEC~INICAL FIELD
'' This invention relates to a self-pro~ """i"~ electronic control unit for controlling operation of an electronic injector fuel delivery system, for example, of the type used on one or more cylinder internal combustion engines, particularly spark ignited (SI) internal combustion engines. The invention further relates to a method of controlling such electronic injector fuel delivery systems on such engines.

BACKGROUND ART
In control or regulation of SI internal combustion engines, cc,lll~uLels and like culllL,uLeli~ed controllers are increasingly being used to enable the furnishing of precise control signals for individual fuel control elements, such as fuel injectors, especially with a view to obtaining (J~Lilllulll engine performance and minimzll fuel con~ulll~Lion, with a consequent advantage being reduced toxic exhaust gas.
One prior art approach has involved irnproving the combustion timing of diesel or spark ignition (SI) engines. In such a system, a m~rhin~ control parameter is oscillated (dithered) back and for~ on either side of a given setting of the m~hinP control parameter, with the period of the dithering being in synchl~,ni~lll with the natural cycle of the m~(~hin.-.
Changes in the control system error signal due to normal speed changes of the machine are minimi7e-1 or elimin~t~d in this manner. When applied to a spark ignition of a gasoline engine or the injection timing on a diesel engine, the timing is advanced and retarded in synchronism with rotation of the engine's shaft such that each phase of the dither cycle CA 02216122 1997-08-l~
Wo 96/26361 PCT/US96/02536 includes an equal number of complete engine cycles. The problem with such a system is that it relies upon a somewhat random approach to dithering without providing real-time measurements and adjllctmP-ntc of critical parameters to result in opLilllulll operation of the engine. Another disadvantage of this type of system is that the colll~uLel controlling it is 5 already preprogrammed and there is limited ability to vary the parameters affecting operation of the system.
An alternative approach has involved ge~ d~hlg a time-duration signal intended, in particular, for controlling fuel metering or ignition processes in an intern~l combustion engine. Such an approach has typically o~Li,l"~d around a time-duration signal formed in 10 accordance with a fixed formula. The problem with such an approach is that it is not adaptive and cannot adjust for dirre~e"L engine operating parameters in a particular engine's operating profile.
Yet still another approach has involved controlling the air/fuel mixture delivered to an internal combustion engine to regulate what has been described as the "rollghnPsc" of 15 the engine at a pre~leL~-~ ",i~P~l level. The control system receives as an input signal, a signal indicative of the engine ro~lghnPsc, and processes the signal to generate an output control signal for controlling the fuel delivery mechanism to operate the engine at the leanest possible air/fuel mixture ratio compatible with a pred~tellllhled level of engine ro~-ghnPsc.
Such a system is not adaptive to dirrcle"L types of engines and is, as noted above with 20 respect to other systems, incapable of adjusting for different engine operating parameters throughout the life of the engine and for different operating conditions thereof.
More recently, it has been known to provide an engine fuel delivery control system in which the fuel injectors of the engine respond to electronic control signals for delivering fuel to the engine cylinders. A plurality of sensors apply electrical sensor signals 25 indicative of various functions of engine operating conditions. An engine control unit includes an electronic memory which stores engine control parameters in tables. In a progr:~mming mode of operation, the engine operation is monitored with an external Co~ uL~l and, for example, engine gauges. The control parameters in the tables are varied as the engine is monitored with the external co~ uL~l through which the control pal~"et~
30 are programmed by a knowledgeable operator using the c(Jlll~uLel as he observes the effects of parameter variation. The operator then makes further adjnctmPntc to thereby change the tables for regular engine operation. A problem with such a system, however, is that it CA 02216122 1997-08-l~
wo 96/26361 PCT/US96/02536 requires providing service to the engine with an external operator who views the various variables of operation of the engine with some kind of input device, i.e., a c~ uLcl. The input device is used to update the tables within the electronic control unit to o~ c for the particular engine at that point in time. To remain accurate, this system requires periodic 5 updating and removing the engine from regular operation, and the involvement of an external, knowledgeable operator. This operation requires time-consuming initialprogl~.. il-g as well as periodic updating to account for engine changes over time.
In accordance with the invention, the problems of the prior art are avoided and there is provided an electronic control unit and method of controlling operation of an 10 electronic fuel injection system for an SI internal combustion engine of one or more cylinders, which is self-pro~ llllillg and which continuously updates the fuel parameters supplied to the engine as a function of various sensed operating conditions of the engine in real-time. By the term "self-proglA...."i.~g" is meant the ability of the system to construct a fuel table using predefined fuel metering tables in accordance with an established set of rules, and based upon sensed engine operation parameters, for operating a particular engine at peak pclro~ ce. In this disclosure, the terms "fuel table(s)" or "fuel map(s)" refer to a tl~t~h~e correlating injector pulse width to particular engine speed and load conditions.

DISCLOSU~E OF INVENTION
In accordance with its broadest aspect the invention relates to a method and apparatus for controlling an electronic injector fuel delivery system. The method involves tuning an engine upon start up in accordance with an initial predetermined fuel map in which pairs of specific engine operating parameters have a specific injector pulse width value associated therewith. In a L~lcÇellcd aspect, the pair of parameters are engine speed, i.e., RPMs, and manifold intake pressure, i.e., MAP. The initial fuel map is set to operate for a broad range of engines without optimi7ing for a particular engine.
The pulse width for a particular pair of parameters is either increased or decreased by a specific value, e.g., 3%, 6%, or 12%, toward the rich side of operation of the engine. If no improvement in engine performance is in~ t~-l, for example, by a change in engine speed, or change in torque as measured in a dynamometer (an engine parameter), is noted, or if a decrease is noted, then the direction of adjustment is reversed in the opposite direction, i.e., one of lean or rich. Other ways of measuring performance CA 02216l22 1997-08-l~
Wo 96/26361 PCT/US96/02536 change can include ~lett~cting change in engine sound, or change in manifold vacuum, etc., as will be readily aL~aLelll to those of oldil~ y skill in the art. Adjustment toward the lean side is likely to cause a drop more quickly than when adjusted toward the rich side, so that upon an initial drop after adjustment toward the lean side, the adjustment is then reversed S one increment toward rich to arrive at opLilllulll ~lrollllance.
Preferably, if the initial adjll~tml-ntc are in sizes of 12%, then upon a move toward the rich side of one increment after a drop in performance, the next move toward lean can be 6% until a drop is seen. Reversal toward rich of 6% can then be followed by a move toward lean of 3 %, etc., until an OptilllUlll is reached.
Upon at least two injector pulse widths being tuned for the initial fuel map, tuning is preferably inhibited, and the points tuned are compared to corresponding points with respective ones of a plurality predetermined template fuel maps, and a new fuel map is created based in part upon the closest template fuel map, for running the engine.
Preferably, the m~trhing is done by comparing pulse widths previously tuned and adding sufficient pulse width size to every point in the m~tchPd template fuel maps so that every tuned point in the original fuel map is equal to or less than the corresponding point of the current template fuel map being compared. The total variance for this template fuel map is obtained by taking the sum of the difference between each tuned pulse width and the corresponding pulse width in this template fuel map. It is then determined of the new fuel map resulting from each comparison above for each one of said plurality of fuel maps has less total variance than the new fuel map from each comparison. The lowest variance results in selection of the template fuel map to be used, to replace all llnhmPd points in the operational fuel map. The tuned points remain as previously tuned in the operational fuel map.
Due to limitations of the currently used injectors, pulse width sizes are set at no greater than a specified value, e.g., 15 milli~econds, and no less than a specified value, e.g., 2 milliseconds.
At time of injection, the injected pulse widths are modified by predetermined correction factors for environm~nt~l conditions, i.e., air temperature, engine temperature, battery voltage, etc., as will be readily apparent to those of ordinary skill in the art.
In another aspect, the invention relates to an ~al~Lus for con~lllcting the above-described method. Appropriate means are provided in the context of a microprocessor CA 022l6l22 l997-08-l~
wo 96/26361 PCTIUS96/02536 based system, with applopliate sensors, to conduct the method.

BRIEF DESCRIPTION OF DRAWINGS
Having briefly described the invention, the same will become better understood 5 from the following detailed discussion, taken in conjunction with reference to the attached drawings in which:
Figure 1 is a schem~tic diagram in partial exploded side view illustrating an internal combustion engine, in incomplete form, and illustrating various components and sensors thereof which are used in implementing the appal~Lus and method of the invention;
Figure 2 is a partial perspective view, in exploded form, of the engine of Figure 1 showing additional components not shown in Figure l;
Figure 4 is a block diagram, in greater detail than that of Figure 2, illustrating the specific components of the electronic conkol unit and the various inputs and outputs to dirrclcllL parts of an internal combustion engine upon which the control unit is implement~
Figure 5 is a graph illustrating a typical fuel map profile for pulse width of operation for the fuel injectors, as matched to revolutions per minute and intake manifold pressure, of an engine running on which the invention is implemented;
Figure 6 is a graph more clearly illustrating the relationship between torque and an engine operating between rich and lean conditions to better illustrate how the adjustment 20 in pulse width in accordance with the system and method of the invention is implemented;
Figure 7 is a graph illustrating in greater detail the tolerances available withrespect to pulse width of operation for the fuel injector as a function of revolutions per minute of operation on an engine upon which the invention is implemented;
Figures 8-10 illustrate respectively the effects of water temperature, air 25 temperature, and battery voltage on the pulse width of the fuel injectors on which the system of the invention is implemented;
Figure 11 is a block diagram illustrating the interrelationship between the various subroutines for operation of the system and method in accordance with the invention;
Figures 12 and 13 together make up a flow chart of the main program routine for 30 implementing the system and method of the invention on an internal combustion engine;
Figure 14 is a flow chart illustrating a routine previously for predicting nntlln points based upon the results of having tuned a number of points;

CA 02216122 1997-08-l~

Figure 15 is a flow chart illustrating the idle air control valve routine, shown in one of the blocks of the main program of Figure 4;
Figure 16 is a flow chart illustrating the tachometer hlLellu~t routine for syncl~oni~ g fuel injector pulses with tachometer pulses, and for allowing the electronic control unit to compute engine speed for adjustment of the fuel pulses;
Figures 17 and 18 are flow charts illustrating the start of injection of fuel, respectively, through first and second injector banks, each time one engine revolution is completed;
Figures 19-23 together constitute a flow chart illustrating how self-tuning is achieved with the system and method;
Figure 24 is a flow chart illustrating how pulse width is selected for a selected manifold pressure and selected revolutions per minute of operation of an engine;Figure 25 is a flow chart illustrating how a fuel map is selected after a self-timing operation in accordance with Figures 19-23;
Figure 26 is a block diagram illustrating the method of fuel injector pulse width adjustment con~ ctecl within the system of the invention;
Figures 27-30 together constitute a flow chart showing operation of a time synchronized analog-to-digital (A/D) hlLt:llu~L routine of the system and method of the invention; and Figure 31 is a flow chart illustrating the timed hlL~llu~t which occurs at predetermined intervals to ensure that counters in the system do not overflow and timing of the operation of the software is m~int~int~cl accurately.

BEST MODES FOR CARRYING OUT THE INVENTION
Figures 1 and 2 illustrate, respectively, in exploded side view, and in explodedperspective view, a typical combustion engine 10 on which the electronic control unit 40 (Figure 3) of the invention is implem~ntto-l The engine is typically an eight cylinder engine, although as will be readily apparent to those of ordinary skill in the art, can be any configuration of an internal SI combustion engine readily adaptable to the system.
The engine 10 includes an intake manifold 12 and an exhaust manifold 14 of conventional construction. An air intake valve 16 includes a throttle position sensor 32 for in~ ting throttle or valve position, and has a lead conn~-cte~l to the electronic control unit CA 022l6l22 l997-08-l~
wo 96/2636l PCT/US96/02536 40. The air intake valve 16 includes an idle air controller 18 of conventional construction for use upon initial start up to ~llgmt-nt the amount of air fed to the air/fuel mixture during warm up of the engine and control idle speed for load variations when throttle blades are closed in a conventional manner. A distributor 20 has spark plug wires 28 leading to spark S plugs 34 and includes means for ~l~t~cting ignition pulses or some other signal indicative of engine speed, for example, an engine speed sensor 38 (not shown) for Aetecting revolutions per minute, RPMs, of the engine, and inrlllA~s a lead connecting it to the electronic control unit 40 to provide a "tachometer" input for practicing the method in accordance with the invention. As will be appreciated by those of ordinary skill in the art, this is only one 10 example of (letrcting engine speed, and a mllltihl~lf of other such devices can be used within the system of the invention.
Fuel injectors 22 are arranged to inject fuel into each cylinder of the internalcombustion engine 10, and are controlled by the electronic control unit 40 as will be described hereafter. In addition, the intake manifold 12 includes an intake manifold 15 pressure sensor 24 and lead also conn~cteA to the control unit 40. A water jacket temperature sensor 26 is also provided to detect the water temperature in the engine 10.
As further shown in Figure 3 in block diagram form, the electronic control unit 40, i.e., ECU 40, receives inputs from water jacket l~ el~lul~ sensor 26, intake manifold pressure sensor 24, i.e., MAP, air valve position sensor or throttle position sensor 32 ("air 20 valve position sensor" and "throttle position sensor" are terms used interchangeably and mean the same thing), i.e., TPS, intake air L~ ldlul~ sensor 36, and engine speed sensor 38, for example, on the distributor of the engine, which provides a value inAic~tive of revolutions per minute, i.e., RPM, as tachometer pulses.
In addition to the above-Ai.~cl-~seA sensors, additional input to the ECU 40 is 25 provided by the battery of the engine through a battery voltage level sensor 44. A key sensor 48 from the ignition switch of the engine 10 serves to activate the entire unit when the ignition for the internal combustion engine 10 is turned on.
Output from the electronic control unit 40 serves primarily to control the fuel injectors 22 and the amount of time each injector is opened to inject fuel into a respective 30 cylinder, and controls when the injectors are opened. In addition, the electronic control unit 40 controls the idle air control valve 18, particularly at the time the motor 10 is started and when the throttle blades are closed to control idle speed for load variation.

CA 02216122 1997-08-l~

Figure 4 illustrates in block diagram the electronic control unit 40 in accordance with the invention showing the various components thereof and their connection to various parts of the engine 10. The electronic control unit 40 includes a central processing unit, i.e., CPU 50, of conventional construction such as, for example, a Motorola MC68HCllFl S processor, which is an off-the-shelf central processing unit and which is generally commercially available. The CPU 50 is timed by, typically, a 16 megahertz oscillator 52.
It is noted that other central processing units and controllers adaptable to the practice of the invention can be readily sllbstitlltP~l as will be readily a~pal~llt to those of ordinary skill in the art. A control module 54 serves to set the various settings of the control unit 40 and consists, for example, of DIP switches, hex rotary switches (HRS), or equivalents, which serve to preset the electronic control unit 40, for example, for engine idle speed, number of cylinders of the engine, etc. Program memory 56, typically EEPROM rnemory of 32 kilobytes by 8 bits, serves to store the program for conducting the method in accordance with the invention and for controlling the operation of the engine 10. Both the control module 54 and the EEPROM 56 are connt-cte~l in a conventional manner by address and data buses to the central processing unit 50. Conventional auto-save random access memory 58, i.e., RAM, for example, an off-the-shelf Simtec memory, is provided which includes a separate EEPROM section 60 for perm~n~?ntly storing data when power is shut off, and provides data to run the program in accordance with the invention in a conventional manner, by storing the system fuel map, status, and other like information, and serves to facilitate reprog, ~ " ,. "i"g in a self-pro~,.~ l ll l lil~g mode, of the electronic control unit 40, as will become more readily a~a,~llL hereafter. The reprograrnmed changes occurring during each reprogr~mming operation are stored in the separate EEPROM section 60 of the auto-save RAM 58 when the electronic control unit 40 is turned off.
A header interface 62, of conventional construction, serves to connect the central processing unit 50 to an external input, for example, personal co",~uler or like device, which can be used to initially load program memory at the factory, update and/or change the system program in memory 56, or for factory testing of the system. The inputs and outputs to the various other systems of the engine 10 are shown on the left side of Figure 3, which clarifies the previously shown engine speed sensor 38 input which is passed through an off-the-shelf filter and transient protection circuit 39 and through a pulse shaping circuit 41, of conventional construction, for input into the central processing unit 50.

CA 022l6l22 l997-08-l~
Wo 96/26361 PCT/US96/02536 g Figure 5 further illustrates the relationship between the primary operating parameters, which are typically RPM and MAP, and how the pulse width for each pair of parameters is set throughout the entire engine operating profile. As ~ cllcsed hereafter with reference to Figure 14, each pair of RPM range and MAP range value for a specific pulse S width co~ Li~ r~ an index. As can be appreciated, for any pulse width d~ l~lation, after running the program of the invention when the engine is running, preset standard pulse widths are replaced with u~ ed pulse width for particular RPM and MAP pair, i.e., index, as determined with the subroutine of Figure 14, discussed hereafter.
To further illustrate how the program of the invention operates in its various 10 aspects, reference is made to Figures 6 and 7. In one alternative, once the engine is operating at a pulse width range for a particular det.octt-d RPM and MAP, then as shown in Figure 6, the engine will show a particular torque versus pulse width operation curve for that particular RPM and MAP pair, i.e., index.
There is a direct relationship between torque and acceleration for a particular 15 motor. More specifically, the greater the ability of the motor to accelerate, the higher the torque value. As shown in Figure 6, as pulse width is varied from peak torque, acceleration ability of the motor will decrease, i.e., decrease in RPM for a set amount of time. In accordance with this operation, engine speed will increase, or MAP will decrease, as peak torque is approached, and both will reverse rapidly as the peak torque has been passed.
20 This effect is particularly pronounced when adjusting in the rich to lean direction, i.e., decreasing the pulse width.
In one aspect of the invention, the point' s initial tuning will be done by incrementing the fuel pulse width numbers of, typically, either 3 % or 6% toward the rich side of operation of the engine. The change in torque as reflected by change in engine speed 25 is detected and if no improvement in torque is noted, or a decrease in torque is noted, then the direction of adjll~tm~nt is reversed toward the lean side. Since the operation on the lean side is likely to drop much more quickly than when adjusted towards the rich side, upon an initial drop in performance after changes in pulse width toward the lean side, the changes of pulse width toward the lean side are then reversed one increment, and it has been 30 determined empirically, in accordance with the method of the invention, that the operation of the engine will then be at or near oL~Liul~ulll performance. By "ol~LilllUlll" iS meant the operating condition of the engine at which the most torque is produced for given operational CA 02216122 1997-08-1~
WO 96/26361 PCTIUS96102~36 parameters, e.g., in this particular case, MAP and RPM pair, as adjusted for effects of engine temperature, air temperature, etc. As may be appreciated, alternative implem~nt~ions may involve initial adjustment toward the lean side, or dirrt ~ percentage size adjustments used to arrive at peak torque. It is noted that under certain engine S operating conditions, e.g., above certain RPM, it is desirable to operate the engine on the rich side of peak torque an amount effective to pl~vell~ excessive. Figure 7 illustrates that the higher the RPM of the engine, the greater the range of pulse widths, i.e., air/fuel ratio, at which the engine will operate at or near ~LilllUlll L~lrol.l-ance. Therefore, bigger pulse adjustments can be used in tuning at higher RPMs than those that can be used in tuning at 10 lower RPMs .
Other parameters which are employed in making corrections to pulse width due to environm.ont~l conditions, are more clearly illustrated with reference to Figures 8, 9, and 10, which are indicative respectively of the effect of water temperature, air temperature, and battery voltage on pulse width correction. Depending upon the location relative to 15 water temperature, air te~ .alul~, or battery voltage, the pulse width is corrected either upward or dowl.w~.d by a predetel.llilled percentage after the pulse width for a particular RPM and MAP has been obtained from the operational fuel map.
Figure 11 illustrates in general block diagram form the system software 101 of the invention. In a hierarchy, the electronic control unit software 103 includes as 20 subcomponents thereof a main program 105, a tachometer hlLt:llu~L routine 107, an A/D
interrupt routine 109 and a timed illL~llU~l routine 111. The main program 105 is made up of multiple components. Of particular importance in the main program 105 are: 1) the curve fit routine 113, and 2) the idle speed control routine 115, i.e., IAC routine. The tachometer hl~ lupt routine 107 is also part of the ECU software 103, and includes 25 subroutines 117 and 119 which respectively control the opening and closing of the first and second banks of injectors. A self-tuning routine 121 is also part of the tachometer interrupt routine 107 and includes a component 123 for d~L~;llllillillg a test pulse width size and a component 125 for detellllhlillg whether self-tuning was effective to improve engine performance, and will be contimle~l By "test pulse" is meant a pulse width which is tried 30 for the purpose of determining if engine performance is improved, and provides the basis for modifying the fuel table until a pulse is obtained for achieving o~ llulll engine performance for particular engine operation parameters. The test pulse width is initially CA 022l6l22 l997-08-l~
wo 96t26361 PCTIUS96/02536 determined by the standard fuel map pulse width for current operating parameters, as modified in accordance with the status map for the current operating parameters, as will be discussed hereafter. Also included in part of the electronic control unit software 103 are an analog-to-digital (A/D) hlLellu~t subroutine 109 and a timed interrupt subroutine 111.
5 All of these components of the system software 101 are described in greater detail hereafter.
Turning now to Figure 12, the main program 105 for running the electronic control unit 103 of the system 101 is illustrated. The main program 105 consists of a first step 201 which is the start of the main program 105. Upon starting the main program at step 201, at a step 203, the microprocessor and system configuration is set, including 10 memory addresses, co~ tion speeds, and I/O port behavior. This is a conventional step with all microprocessor controlled systems and is what is typically known as ordinary housekeeping routines which must be ~elrolllled in order to permit the central processing unit, i.e., CPU, to run. This step is common to all microprocessor-based systems, and is well known to those of ~ldhlal.y skill in the art.
At step 205, the fuel pump of the engine is turned on to prime the fuel system thereof. At step 207, program variables are initi~li7tod and user-adjustable switches, e.g., DIP switches, 16 position hex rotary switches (HRS), or equivalent switches, in the controls 54, for the system are read. The first several injector pulses, i.e., start-up pulses, are set (initi~1i7~-1 ) to be double their normal size to prime the engine for easier starting.
All of the previous steps are conventional and the steps ll~ces~.y to implement them would be readily apparent to those of oldillaly skill in the art from this description. At step 209, if the proper sequence is set on the switches found in the controls 54, then error codes, if any, are blinked out on two on-board LEDs 42. At step 211, if the proper sequence is set on the switches in controls 54, the error codes are then cleared.
At step 213, random access memory, i.e., RAM, is checked to identify a string of information therein for errors. If errors are ~lP-tect~ d at step 213, the initial fuel map and status map (both described hereafter) from program read-only memory 56 are reloaded. In this regard, at this step the auto-store random access memory 60 should never lose data once it is loaded unless its life expectancy has been reached. If this has occurred, errors will become more and more frequent and the electronic control unit 40 should be replaced on the engine. Thereafter, at step 215, the switches in the controls 54 are checked for a specified or unique reset sequence. If the switches have been set in accordance with the specified or CA 022l6l22 l997-08-l~

unique reset sequence, then the initial fuel map is reloaded along with the status map from program read-only memory 56. More specifically, at this step, for some reason the operator may wish to reset the electronic control unit 40. This may be n~ce~s~ry if the system is transferred to another engine or if a major modification is made to the exi.~ting engine.
Thereafter, the acceleration enrichment buffer is cleared at step 317. This buffer is used to store pulse-width enrichment values based upon movement of the throttle pedal.
This mimics the accelerator pump on a calbul~Lor and will be described in greater detail in the A/D hllellu~L subroutine described with reference to Figures 27-30 hereafter.
At step 221, once the initial configuration steps are performed in the main program 105, the main loop of the main program 105 is started. It should be appreciated that the electronic control unit 40 remains in this loop until power is turned off.
At step 223, a determination is made as to whether the electronic control unit is tuning. If the answer is "yes, " the tuning in-lie~tor light is turned on, and if the answer is "no," the tuning indicator light is turned off. The tuning in~lie~tor light is a light within the driver's compartment which is used to tell the operator that the electronic control unit is tuning a new point, and as previously described, to blink out errors, i.e., go into a blinking mode if an error occurs at any time during operation. This will allow the driver to seek out nnhln.o~ operational ranges by ch~nging throttle position to vary RPM and load on the engine so that the electronic control unit 40 can tune as many points as possible.
At step 225, a (lrlr~ tion is made as to whether the engine is running, if the answer is "yes, " the system checks to make sure the fuel pump is turned on.
Moving to Figure 13, at step 227, if the electronic control unit 40 has not yet received tachometer pulses, and the throKle is at a position which is more than three quarters open, fuel injection is prevented. This allows the operator to clear out excess fuel if it is believed the engine is flooded. Alternatively, if the throttle is less than three quarters open, as determined at step 229, fuel injection is then enabled. At step 231, if the throttle is more than three quarters open, power to the idle air control motor 18 is turned off to keep the idle air control motor 18 from heating up and to reduce power consumption. This is because the idle air control motor 18 is only used when the throttle is closed or nearly closed, so that anytime the throttle is more than three quarters open, the idle air control motor 18 is turned off since it is no longer n~c~ ry for operation. Alternatively, if the throttle is less than three quarters open, the idle air control motor 18 is turned on. If the CA 022l6l22 l997-08-l~
Wo 96/26361 PCT/US96/02536 idle air control motor 18 is turned on, then the idle air control routine is executed at step 233, as described with greater detail with reference to Figure 15 hereafter.
At step 235, it is determined if the timed hllellu~t, as described in greater detail with reference to Figure 31 hereafter, has occurred five or more times since the last engine revolution. If the answer is ~fflrm~tive, then it is assumed that the engine is no longer rurlI~ing and if the electronic control unit 40 is in the middle of the tuning process, the process will be cancelled. More particularly, the timed hlLcllùpL is set to occur about every 0.262 seconds so that five illLtllu~L~i will take about 1.31 seconds. If the timed hlLcllu~L has occurred ten or more times since the last engine revolution, at step 237, the fuel pump is turned off and the number of start-up pulses is reset. At this step, ten illLellu~l~ will take approximately 2.62 seconds. When the engine begins to turn over, after engine stalling, start-up pulses are reiniti~li7Prl, and the first several injector pulses are again set to be double their normal size to prime the engine for easier starting. The tuned hllclluL,t, as described later with lcfclcllce to Figure 31, is used because registers in the system are 16 bit registers and will overflow if the time between tachometer pulses is greater than a set amount. This occurs at, for example, low RPMs. On the other hand, if other haldw~lc configurations are used, such as 32 bit lc~ lcl~, the timed illLcUlu~L iS not nPce~ry, as will be readily apparent to those of ordinary skill in the art.
At step 239, the curve fit routine described hclcarLcl with lcrcucllce to Figure 14, is implemented. Providing that if the electronic control unit 40 has just tuned a point, it then adjusts the rest of the lmtllnP~l points accordingly by using pre-stored fuel maps within the system. These curves are known as "template fuel maps" and consist of a database of pulse width values for injecting fuel corresponding to specific engine operating parameters, and are designed to meet approximately the operational needs of a vast assortment of engines, without being optirnized for any particular engine. If desired, step 241 serial commnnic~tions can be implemPntP-l, for in-house testing only, through the header interface 62. More particularly, the electronic control unit 40 has the ability to collllllllllir~tP with factory test collll.uLcl~. This step is used only for product testing and will not be used in the actual running of the system by a typical user.
At step 243, it is determined if the voltage is too low or if there is still some acceleration enrichment and if the answer is "yes," self-tuning is suspended for one second.
At step 245, if the electronic control unit 40 is tuning and the throttle position sensor, CA 022l6l22 l997-08-l~
WO 96/26361 PCTrUS96/02536 revolutions per minute or manifold absolute pressure changes significantly, tuning is cancelled and inhibited to cause a delay of one second. At step 247, the electronic control unit 40 remains operating in the loop leading back to step 221 until power is turned off.
The instruction sequence of the main program ends at step 249. This is a conventional 5 termin~tor step well known to those of ordhlal y skill in the art of pro~ g.
Figure 14 illustrates the curve fit routine 113 which is implem~o-nr~l at step 239 of the main program 105 as ~ cl~se~l with reference to Figures 12 and 13 previously. The curve fit routine 113 is commenced at step 251. At step 253 the self-tuning process is inhibited while curve fitting is performed in accordance with the method of the invention.
10 At step 255 a curve fit loop is commenced for each one of the standard template curves originally stored in program memory 56. In colllpalillg the points previously tuned, enough is added to every point in the template fuel map, i.e., standard fuel map, so that every tuned point in the operational fuel map is equal to or less than the corresponding point of the template fuel map at step 257. At step 259 the total variance for the template fuel map is 15 obtained by taking the sum of the difference between each tuned fuel map point, and the corresponding point inthe template fuel map. At step 261, a ~l~l~"lli"i11ion is made whether the modified template fuel map, i.e., temporary fuel map, has less total variance than any temporary fuel map previously determined in this iteration of the curve fit routine 113. If the answer is "yes, " this new fuel map is saved as the new best-fit fuel map. At step 263, 20 the curve fit loop is L~l "~i"~ l, after having gone through each one of the standard template fuel maps At step 265, the subroutine goes through the fuel map determined to have been the best-fit, i.e., the best-fit fuel map, and makes sure that there are no injection times of less than, for example, about 2 milli~econds or greater than about 15 milliceconds. These 25 values are determined in accordance with the particular injectors and speed of operation of the engine and can be varied in accordance with the components on which the invention is implemented. For example, present fuel injectors do not work properly with a duty cycle of less than about 2 milliseconds and the fuel map of the system does not allow numbers greater than 16 milliseconds. In order to keep the injection times in the range noted, the 30 injector size for each engine must be determined based upon its peak horsepower.
At step 267, for the engine speed, i.e., revolutions per minute, range in the fuel map, as illustrated with reference to Figure 5 set forth previously, if there are two or more CA 022l6l22 l997-08-l~
wo 96/26361 PCTtUS96/02536 tuned points in the range, the values of all the llnl~ln.ocl points between them are interpolated to obtain specific values for each lln11ln~-1 point which provides a smooth transition from the lowest to the highest tuned values. If there are one or more tuned points in the range, then all points with a map index less than that of the lowest map index tuned point are checked.
5 If their pulse width value is greater than the pulse width value of the tuned point with the lowest map index, it is then set equal to the pulse width value of the lowest map index tuned point for the particular RPM. For all points in the particular RPM range with higher indices than the highest index tuned point, their pulse width values are decreased by an amount equal to the difference between the actual pulse width value of the highest index tuned point 10 and the corresponding pulse width value in the best-fit fuel map. By index is meant the location of a given pulse width in a particular fuel map. Viewed with reference to Figure 5, each index is based upon a pair of a particular MAP range value (representative of engine load) and a particular RPM range value to define the pulse width location within the fuel map.
Thereafter, at step 269, all llnllm~A values in the operational fuel map are replaced with the corresponding points in the best-fit fuel map. The changed operational fuel map is saved to EEPROM 60 when power is turned off. At step 271, if a particular point was tuned when the engine t~ C~dlUl~ was too low, the status map (discussed hereafter) is reset so that it will be retuned. At step 273 tuning is then reenabled and norrnal pulse width 20 calculations continue. The fuel map or curve fit routine is ended at step 275. In this context, fuel map fit and curve fit refer to the same thing.
Figure 26 illustrates in better detail how the tuning algorithm is implemented to optimize fuel injector pulse width for a particular MAP and RPM pair, i.e., index, and is shown implemented by Figures 19-25, ~licclls.se-l hereafter. This Figure is believed self-25 explanatory and the replacement of the pulse width associated with the pair of engineoperating parameters, in particular, RPM and manifold pressure (MAP), are employed to update and optimize operation of the engine in a self-pro~ .",i,~g manner. Thus, it is not necessary to discuss this figure further at this point.
In Figure 15, the routine for controlling the idle air control motor 115, i.e., IAC, 30 is illustrated. It is started at a step 277 with first step 279 of checking the idle air control switch (Switch 1) position for the idle air control motor. Switch 1 is one of the user adjustable switches, e.g., 16-position hex rotary switches, described previously. Since it CA 022l6l22 l997-08-l~

is a 16-position switch, at Switch 1 position 0, the program goes to step 281, at Switch 1 position 1, the program goes to step 283, and at Switch 1 positions 2-15, the program goes to step 285.
At step 281, the idle air control motor 115 is caused to close its associated idle 5 air control valve completely. The idle air control motors coils are shut off to conserve power and reduce heat build up. The current speed of the motor is stored as the desired idle speed and the current throttle position (TPS reading) is stored as "throttle closed" position..
At step 283 the idle air control valve is closed completely and the idle air control coils are shut off. This position is selected by a user if it is desired to deactivate operation 10 of the IAC completely.
At step 285 if the switch position is at one of Switch 0 positions 2-15, an inquiry is made as to whether the engine is running. If the answer is "yes, " a check is made to determine if the engine is running too fast or too slow, and the steps "open" or "closed" are set to the a~pl~liat~ number of steps based upon the amount that the speed is out of range.
15 At Switch 0 position 2, IAC response time is fastest, and at Switch 0 position 15, IAC
response time is slowest. The position selected depends upon the response of the particular engine on which the system is implem~-ntt~d to the movement of the IAC.
At steps 287 and 289, if the number of steps open is greater than zero, one set of a plurality of a proper set of coils of the idle air control motor 18, is inverted so as to cause 20 the valve to step toward the open or closed position, and the steps open or closed are decremented. An idle air control delay is then set to the a~plopliate delay time based upon the position of Switch 1, as ~ c~ ed hereafter with reference to Figure 30. In this regard, it is noted that the idle air control delay is used to allow the idle air control motor time to move after a step is taken and to give the engine time to respond. The idle air control delay 25 is decremented once every one milli~econd in the A/D interrupt routine discussed hereafter with reference to Figures 27-30.
With respect to idle air control valve movement, there are two sets of coils in the idle air control motor 18 (typically a stepper motor). The polarity of the coils is kept track of in order to know the position of the allllalul~ thereof. By inverting the polarity of the 30 ~ opliate set of coils, the armature is caused to move one step to change the position of the idle air control valve in the applu~ t~ direction. The idle air control routine is ended at step 291.

CA 022l6l22 l997-08-l~
wo 96/26361 PCT/US96/02536 Figure 16 illustrates in detail the tachometer hl~ upt routine 107, which beginsat a step 301. The time between a particular tachometer pulse and the previous one is calculated at step 303. This time is used to compute the revolutions per minute (RPMs) of operation of the engine. At step 305, it is det~rmin~d if the curve fit or fuel map fit process 5 described previously has ended and if the conditions are satisfactory for tuning. If it is determined that the curve fit process has ended and conditions are satisfactory for tuning, another step of the self-tuning algc~ described hereafter with reference to Figures 19-23 is executed. At step 307, it is determined if there has been less than two timed ill~ llU~
since the last full revolution. If the answer is "yes," it is assumed that the engine is 10 runr~ing. At step 309, it is d~"llilled if there have been any timed illLt~llU~J~i since the last full revolution, as described in detail with reference to Figure 31 hereafter. If the answer is "yes, " the RPM index is set to zero. If the answer is "no, " the RPM index is determined using the time for the last complete revolution. At step 311, it is de~ ed if there have been enough tachometer pulses to open (the terms "open" and "fire" are used 15 interchangeably) the first injector bank (of two injector banks). For example, in the case of V-8 engine, an injector bank is made up of a set of half of the nozzles for the engine, for example, one bank is made up of the nozzles on the left side of the engine, and another bank is made up of the nozzles on the right side of the engine. If the answer is "yes," then the first bank of injectors is opened, as described hereafter with reference to Figure 17. Step 20 313 employs the same methodology of step 311, in this case, to control operation of the second bank of injectors.
At step 315, it is dt?l~ ."i,-~-cl if a complete revolution of the engine has occurred and if so, the timed interrupt is set to occur, for example, about 262 milli~econds (this value is dependent upon hardware selected) from the time the particular tachometer pulse came 25 in. The timed hl~ellu~t count is reset to zero and the tachometer pulse count is reset to zero. The time for the most recent complete revolution is then computed.
With respect to steps 307-315, as described above, the timed h.Le-lu~t occurs about every 262 milli.ceconds and is reset after every complete revolution. The purpose of this ullellu~t routine is to compensate for the fact that at low engine speeds, the amount of 30 time between tachometer pulses will overflow the counters of the particular hardware employed and give wildly inaccurate readings. By counting the number of timed h~Le~lu~
that occur between revolutions, the accuracy of the value in the counter can be checked.

CA 022l6l22 l997-08-l~

At step 317, the hlL~llul~t flag which was set by the previous tachometer pulse which caused this routine to occur is reset to be triggered by the next incoming tachometer pulse and the tachometer illL~llu~t routine is then ended at step 319.
Figure 17 shows the subroutine 117 for opening or firing nozzles in the first 5 injector bank. This subroutine 117 commences at step 321. At step 323, it is determined if the electronic control unit 40 is tuning. If the answer is "no," the fuel map index is calculated from the manifold vacuum pressure and the RPM index. The base pulse width in the fuel map is found, and the injector pulse width is computed using the base pulse width and correction factors for engine temperature, air temperature, system voltage, and throttle 10 movement. If the particular pulse is one of the first few pulses, i.e., start-up pulses, as described previously with ler~lellce to Figures 12 and 13, the pulse width is doubled. In this step 323, engine temperature is used to d~L~llllhle cold-start and warm-up enrichment.
Air temperature is used to compensate for air density, system voltage is used to compensate for slower injector opening times under low-voltage conditions, and throttle movement 15 (TPS) is used to d~L~lmille extra enrichment required under transient conditions caused by any quick opening of the air valve throttle blades.
At step 325, the computed and corrected pulse width is added to the value of thesystem clock and loaded into the output compare register controlling the first bank of injectors. Output compare registers are provided and are standard features of the type of 20 microcontroller chip with which the invention is implemented, as discussed previously, which causes the injector nozzles to turn off when the system timer reaches the specified value that was previously loaded in the output compare register. At step 327, the first bank of injector nozzles is started and the subroutine is te....i..~ l at step 329, which results in the first injector bank being fired. Figure 18 illustrates a similar subroutine as that of 25 Figure 17, with respect to the second injector bank through steps 331-339, and need not be described in greater detail herein since it is self-evident from a reading thereof.
Figure 19 illustrates a self-tuning algorithm 121 which is part of the tachometer llup~ subroutine 107. The self-tuning algorithm 121 is commenced at step 401, which leads into a step 403 at which the ap~rolJliate step of the self-tuning algorithm 121 is 30 selected as will be readily apparent to those of ol-lhlal y skill in the art from the following description, made with reference to the steps 0-15 set forth throughout Figures 19-23. A
predetermined number of tachometer pulses are used to separate each step. thus, step 0 CA 022l6l22 l997-08-l~

corresponds to the first tachometer pulse of a particular tuning cycle.
At this time, a tuning status variable is set to zero. This variable is used to keep track of the results of each iteration of tuning contl~lc-tç~l with the tuning algoliLlllll 121.
Every time a modified pulse width is used, and results in an increase in performance, this S variable (the "tuning status variable") is increm~nt~l by a value of one. Every time a modified pulse width is used, and results in a decrease in pelÇ~llllallce, this variable (the "tuning status variable") is decremented by a value of one. The tuning status variable is used at the end of the tuning algorithm 121 in tuning step 15 to determine if an overall performance gain has occurred when using the modified pulse width for a particular iteration 10 of the tuning algorithm 121, as implemented for a particular fuel map index. If the end result is increased performance, the modified pulse width is substituted into the fuel map, and replaces the base pulse width in the operational fuel map. The status map is updated to reflect the results of the self-tuning algoliLl,lll 121.
After step 0, a delay time is set. Step 1 (Figures 19 and 26), occurs at the first 15 tachometer pulse after the delay. The methodology for the rem~ining steps is the same.
Thus, at tuning step 0 (Figures 19 and 26), an inquiry is made at step 405 to determine if engine revolution has just completed. If the answer is "yes," at step 407, the recording of tachometer pulse times is inhibited and the tuning status variables are cleared.
At step 409, the base pulse width is obtained from the fuel map and the cell status is 20 obtained from the status map. The pulse width is c~lc~ t~ using the base pulse width and the two temperature correction factors (inlet air temperature and engine coolanttemperature). As noted previously, the fuel map is an array of base injector pulse values indexed on RPM ranges and manifold air pressure ranges. The status map is an array of values that is used to keep track of the tuning status of each point in the fuel map, i.e., is 25 a particular pulse width value, tuned, interpolated or nntlln~l. In addition, if a point is untuned the status map contains hlfc,llllation on the tuning direction and percentage of increase or decrease to vary the pulse width to be used to tune the particular pulse width in the next tuning cycle at the particular load and engine speed. Thus, when the self-tuning cycle (15 steps) begins, the status map is consulted for the proper action. Each time a cycle 30 of the self-tuning al~olilhlll 121 is completed, a decision is made based upon the observed results and the value of the status map as to whether or not to continue tuning this point and, if so, whether to tune towards the rich or the leaner side. A value representing the decision CA 022l6l22 l997-08-l~

is stored in the status map to be used in the next tuning cycle.
At step 411, it is determined if the point has been tuned and if the ~ iate amount of time has elapsed since the last point was tuned. If the answer is "yes," the current point's cell status, i.e., a temporary value set up and equal to the value of a 5 particular point in the status map to avoid having to continually index the status map, is set back to the default value at the status map in EEPROM 56 so that it will be retuned. A
delay time of approximately two mimlt~s is used.
At step 413, it is deterrnined if the status in~ t~-s that the point has been fully tuned. If the answer is "yes, " the tuning cycle is aborted and is inhibited for one second.
10 If "no," the modified pulse width is calculated using the cell status as a guide. A delay is set to an a~p~ iate number of tachometer pulses based upon a particular fuel map index, and the algorithm proceeds to tuning step 1 (Figures 19 and 26) on the next tachometer pulse. More particularly, at 413, the delay is used to give the engine time to react to a change in pulse width before any times for a series of tachometer pulses are recorded as 15 shown in Figure 26.
As can be seen, at the end of this operation, from step 413 it moves to step 500to the end of the self-tuning algoliLl..,l (STA). After step 413, we then proceed to tuning step 1 (Figures 19 and 26). Tuning step 1 (Figures 19 and 26) is illustrated by step 415, which requires that the delay be decremented by one. At step 417, it is determined if the 20 delay has reached zero. If the answer is "no," the subroutine proceeds to the end of the self-tuning al~,(J,illl", at step 500. If it has reached zero, then an STA timed cycle is set to zero at step 419. There are four STA time cycles that are used to keep running totals of the time it takes for a set number of tachometer pulses to occur during the tuning algorithm.
The first STA time cycle, i.e., time cycle zero, is set to zero at step 419, and recording of 25 tachometer pulse times commences. A delay is set to allow recording of the time for an app~ ,iate number of tachometer pulses to occur based upon the fuel map index. At the end of step 419, the next time self-tuning is to be con~lllcte~l~ it commences at tuning step 2 (Figures 19 and 26), as is self-explanatory from a reading of Figures 19-23 viewed with reference to Figure 26. In step 419, the delay is used to in~ t~. how many time samples 30 are to be recorded. As can be appreciated from a reading of the block diagram of Figures 19-23, the algorithm 121 operates in an incremental manner through steps 500, with, at the completion of the next step, the next time tuning is implemented, it moves onto the CA 022l6l22 l997-08-l~
Wo 96/2636l pcTluss6lo2536 following step to a m~ximllm of 15 tuning steps (Figures 20-23 and 26).
It will be appreciated from Figures 19-23 and 26, that at tuning step 7, the time cycles corresponding to tuning steps 1 and 5 (time 0 and time 2) are averaged and compared to the time cycle corresponding to step 3 (time 1). If this average is less than the time cycle 5 corresponding to step 3 (time 1), this means the engine slowed down when employing the modified pulse width. This in~ t~s a degradation in performance. If this occurs, the tur~ing status variable is decr~mt--ntl-d by a value of one. If the average is greater, then the tuning status variable is increm~nt~d by a value of one.
At tuning step 11, the same methodology is followed using the average of the time 10 cycles corresponding to tuning steps 5 and 9 (time 0 and time 2), and compared to the time corresponding to tuning step 7 (time 3). The tuning status variable is then decremtontt~-l or incremented in the manner described above.
At tuning step 14, the average of time cycles corresponding to tuning steps 9 and 13 (time 0 and time 2), is co~ aled to the time cycle corresponding to tuning step 11 (time 15 1). The tuning status variable is then de~;lc~ d or incremented in the manner described above.
Figure 24 illustrates the self-tuning algoliLlllll pulse width determin~tion routine 123 of the self-tuning algoliLlllll 121. Step 519 begins the self-tuning al~,~liLl..ll pulse width determination. At step 521, the a~lo~liaLe section is executed based upon the cell status 20 as previously described. Depending upon the cell status, if the cell status code equals "rich 12," then pulse width adjustment towards the rich side is initially conrl~lct~o~l at block 523.
In block 523, ff the fuel map entry is greater than 14 milli~econds, the status map code entry is set equal to "lean 12," and an error code is set to indicate the injector nozzle size is too small, resulting in too large a pulse width. The modified pulse width for the tuning 25 algol iLlllll 121 iteration is equal to the base pulse reduced by 6 % . If the answer is "no, " the modified pulse width is the base pulse width increased by 6%. If set to "lean 12," as described above, block 525 shows that if the fuel map entry is less than 2.25 milli~econds, then the status map entry code is set equal to "tuned" and tur~ing is cancelled, an error code - is set indicating the injector size is too big, thus rçsnlting in too small a pulse width. If the 30 answer is "no," then the modified pulse width is set equal to the base pulse width reduced by 6%. The adjustments are self-evident from a reading of the rem~ining steps of this Figure as described above. In this regard, it is important to appreciate that the fuel map is CA 022l6l22 l997-08-l~

an array of base pulse width values indexed on RPM and manifold pressure as noted previously. Again, the status map is an array of values that is used to keep track of the tuning status of each point in the fuel map. When a self-tuning algo.iLl",l cycle (15 steps) begins, this table is consulted for the proper action. Each time a cycle of the self-tuning 5 algorithm is completed, a decision is made based upon the observed results as to whether or not to continue tuning the point and, if so, whether to tune it in the rich or lean direction.
A value representing this decision is stored in the table to be used in the next cycle.
Figure 25 discloses a ~ul~ouline for the self-tuning algorithm decision steps 125 of Figure 11, and is part of the self-tuning algorithm 121. It corresponds to step 499 of 10 algorithm 121, and to tuning step 15. Subroutine 125 is started at step 501, leading to step 503 in which the ~L~lup~iate section based upon the cell status before this tuning cycle is execl-te-l In this regard, it is again noted that the cell status is the value in the status map for the engine load and speed at the beginning of the self-tuning algo-iLl-u~ tuning cycle.
Rased upon the cell status code for a particular tuning iteration, one of blocks 505-515 is 15 e~PclltPcl If the cell status code is set at "rich 12, " the block 505 iS executed. An inquiry is made as to whether the engine sped up in~ tP~l by a positive value of the tuned status variable. If the answer is "yes," 6% is added to the base pulse in the fuel map to replace the current fuel map entry. If the answer is "no," then the status map entry for this fuel map index will be set equal to "lean 12." At "lean 12," block 507 iS exPclltPd At block 20 507 an inquiry is made as to whether the engine slowed down. If the answer is "yes," 12%
is added to the base pulse width in the fuel map. The status map entry is set to "tuned," and a signal is generated to start the curve fit routine 113. If the answer is "no," 6% is subtracted from the fuel map base pulse width. The status map is left at "lean 12." Similar adjustments are made in blocks 509-515, with varied adjnctmPnt~ in terms of the adjll~tmPnt 25 towards the lean or to the rich side as shown.
Figures 27-30 illustrate the subroutine of the analog-to-digital (A/D) service illLt:llupt 109. Microcontrollers such as the Motorola MC68HCllFl contain built-in circuitry to convert analog input signals to digital values based upon the analog voltage applied to input pins. The digital values will range from 0 to 255, with 0 representing zero 30 volts and 255 representing five volts, with a linear scale in between. There are eight input channels and four output registers. In this system, each time the A/D service illLellu~t 109 occurs, four readings are taken on a selected one input chz~nn.-l, with the results being stored CA 022l6l22 l997-08-l~
Wo 96/26361 PCT/US96l02536 respectively in each one of four output registers.
The A/D service hlLe~luL,t 109 begins at a step 601, and at step 603, the valuesof four analog-to-digital registers (A/D registers) are averaged and the results, i.e., average, saved. In this regard, it is important to appreciate that the analog-to-digital registers are 5 illustrated in Figure 4 as being part of the central proces~in~ unit having various input thereinto as shown respectively, at inputs 24, 26, 30, 32, 36, and 44 of Figure 4.
At step 605, a d~le"~ ation is made whether this is the first reading on a particular sensor which is conn~cte~ to the ECU 40. If the answer is "yes, " at step 607 a determination is made as to which sensor is being read. These sensors are typically, a 10 battery voltage sensor, engine temperature (coolant passage), intake air temperature, manifold absolute ~ ule, throttle position, and sensor lere,ellce voltage, as well as any other additional sensors which are desirable to implement in the system as will be readily ~pa,e"l to those of (Jl-lillaly skill in the art.
On the left side of the Figure, a reading is made and the al?~rvl,liate one of the 15 blocks 609-623 is executed, depending upon which sensor was read. For example, if sensor 0 is read, which corresponds to system voltage and block 609, this reading is accepted as an actual reading. After execllting the a~ instruction, the ~ul>louLille for each block respectively moves to step 711, in which the acceleration enrichment buffer is checked to see if there is any enrichment n~erlerl If the answer is "yes," the enrichment is added to 20 the pulse width and it is deleted from the buffer. In this regard, it is important to appreciate that the acceleration enrirhm~nt buffer is an array that is used to mimic the accelerator pump of a ca,l,u,~lol. If the throttle is opened quickly, extra fuel must be injected to compensate for the sudden change in manifold vacuum. The extra enrirhm~nt is added for a set amount of time. By taking advantage of the fact that this part of the subroutine occurs once every 25 one milli~econd, each element of the array can be used to store the enrichment for one unit of time following the initial throttle movement. This A/D service hlLtllu~L iS conventional, well known to those of ordinary skill in the art, and can be implemented in various ways depending upon h~ldw~l~ selected. Sensors 1, 3, and 6 are ~,i",a,y sensors and read more frequently than others as shown. Sensors 0, 2, 4, 5, and 7 are less important and read less 30 frequently. A different sensor is read each time this i"l~"u~t is executed. The primary sensors are read once every 4 milli~econds. The secondary sensors are read once every 20 milliseconds.

CA 022l6l22 l997-08-l~
WO 96/26361 PCTrUS96/02536 For each h~ lupt, a different sensor is read in accordance with the above-described convention. The first step for each is to add the average of the four registers to the sensor running total. The number of readings taken on that sensor is incremented. It is determined if enough readings have been taken on the particular sensor. If the answer 5 is "yes," the average reading for the particular sensor is computed in the manner specified in the respective blocks 631,641,653,663,673,683,695, and 705 The running totalsof the reading and the count of the readings for the particular sensor are then cleared and set to zero. With all sensor readings, a hysteresis has been built in to filter out noise and to prevent the sensor readings from oscillating between two values. This is done by 10 requiring the sensor reading to increase by more than a threshold amount before it is considered to be a positive change. Any decrease is considered to be a negative change.
The threshold amount is set between 2 and 5, on a scale between 0-255. This amount is essentially specific to the specific cil~;ui~ly and CPU identified herein, and can vary with other hardware.
Irrespective of whether the answer at blocks 629,639,561,661,671,681,693, and 703 iS "yes" or "no," for each particular sensor read, the next sensor to be read at the next ill~llU~ iS set according to setting for any one of blocks 635,647,657,667,677,689, 699, and 709.
The only two additions to the above sequence is set forth with respect to the TPS
20 (block 643) and engine temperature (block 687), as described hereafter.
Turning now to step 605, if this is not the first reading on each of the sensors, at step 625, a d~tellllillation is made as to which sensor is being read. Depending upon the sensor as shown respectively at blocks 627,637,649,659,669,679,691, and 701, a series of steps are followed for each sensor as previously outlined. For example, if sensor O
25 (voltage) is being read, beginning at block 627, the results are added to the running total of re~ling.~ for that sensor, and the number of readings for this sensor is incremented. An inquiry is then made at step 629 as to whether 32 readings have been taken on this sensor, and if the answer is "yes, " the average of the 32 readings is taken at step 631. At step 633 it is determined if the reading has increased signific~ntly or decreased. If the answer is 30 "yes," the results are said to equal the average divided by four and then the old average is set to the new average. It is noted that at step 633, the system voltage is sensed in order to ensure that the battery voltage is sufficient for proper operation of the injectors. Step 635 CA 022l6l22 l997-08-l~
wo 96/26361 PCT/US96/02536 then sets the routine to look at the next sensor, in this case sensor 1, the TPS, on the next hJ~ lu~L. The results are then passed to step 711, and the hardware is configured in step 719 to read the next sensor, i.e., the TPS, as described hereafter.
If the next i ul~ pl, directs the reading to step 637, as noted above, this portion relates to the throttle position, i.e., the TPS, sensor. At step 643, the throttle position is sensed by the throttle position sensor. As with all sensor readings, again hy~ ie~is has been built in to filter out noise and to prevent the sensor readings from oscillating between two values. The sensor reading is required to increase by more than a threshold amount before it is considered to be a positive change. Any decrease is considered to be a negative change. The threshold amount is between 2 and 5 on a scale of 0-255, as with respect to step 633 above. This amount is essçnti~lly specific to the particular cil-;uiLly and can vary with other hardware.
The acceleration enrichment buffer, set forth at step 643, is an array of values that is used to keep track of enrirhmf nt needed to c~ ellsdt~ for quick opening of the throttle.
Each element of the array represents the enrichmtont required for 10 milli~econds of an engine operation. If the throttle is opened quickly, an amount is added to each of the next several elements of the array. The amount of the increase is based upon the amount the throttle was opened. The value of the current pulse width and the position of the second switch.
If in the next hlL~llul,t, sensor 2 is read, steps 649 through 657 relate to theauxiliary sensor. This sensor is an available analog input that is not nPcess~rily used, but is read anyway in order to keep the timing of the hlL~llul)~ intact. At step 655, it is determined if the reading has increased signific~ntly or decreased. As with all sensor reaclings, hysteresis is again built in to filter out noise and prevent sensor readings from oscillating between two values. This is done in the same manner as ~ c~ e~l above with reference to steps 633 and 643.
The d~Lellllillation at step 655 relates to the exhaust gas oxygen content, which is the amount of unused oxygen in the engine's exhaust. By sensing this value, it is possible to tell whether the engine is running rich or lean. While not necessary, this sensor may be used for racing purposes or for reducing exhaust emissions. Again, with respect to the above-other ~ cn~se~l sensors, hy~Lelesis has been built in, in the same manner as described above. Beginning at steps 669 through 677, the air temperature is measured. The air CA 022l6l22 l997-08-l~
WO 96/26361 PCTrUS96/02536 temperature is the manifold air temperature and is sensed in order to compensate for air density. Again, as with all sensor readings, hysteresis has also been built in to ~fllter out noise and prevent sensor readings from oscillating in the manner discussed above.
Steps 679 through 689 relate to the engine temperature which is the coolant 5 temperature sensed in order to d~L~lll~ille engine warm-up enrichm~nt The same hysteresis is built in as described above. The retune delay set forth in step 687 is a counter that is used to time the intervals between the retuning of points that have already been tuned. It takes advantage of the fact that this part of the hlLel,upt routine happens once every 20 milliseconds, with a count of 1,000 equaling 20 seconds, and a count of 50,000 equalling 10 20 mimltt~s, etc.
At steps 701 through 709, the reference voltage is cletecte~l. This is the voltage going to the sensors. If the voltage drops signific~ntly, it in~lic~t~s that there is a short in one of the sensor leads. This is used for ~ gnc)stir purposes. Hysteresis is built in the manner described above.
The actual sequence of sensors read is in the following order: 1, 3,6,0, 1,3, 6,2,1,3,6 ,4,1,3,6,5,1,3,6,7, as shown in Figures 27-30. This sequence is then continuously repeated. As can be appreciated, the ~1 ..ll~y sensors read most frequently are 1,3, and 6.
Turning now to step 711, as ~ c l~se~, the acceleration enrichment buffer is 20 checked to see if there is enrichmPnt nl-e~e~l Then step 713 ~l~termin~s whether the IAC delay counter has reached zero. If theanswer is "no," the counter is decremented. The IAC delay is a counter that takes advantage of the fact that this part of the code occurs once every one milli~econd. It is used to time delays in the IAC routine for the IAC valve to physically move a step and to allow 25 the engine to respond. Thereafter, at step 715, a .lrl~l ,lli"~tion is made whether the inhibit STA counter for the self-tuning algorithm has reached zero. If the answer is "yes, " and the IAC is not moving, then self-tuning is allowed to begin. The inhibit STA is a counter that takes advantage of the fact that this part of the subroutine occurs once every millisecond.
It is used to time delays in the self-tuning while the engine reacts to changes in load, throttle 30 position, etc. If the answer is "no," the counter is decremented at step 715 and self-tuning remains inhibited. Thereafter, switches, i.e., 16 position hex rotary switches or DIP
switches, are read at step 717. The switches are user-adjustable inputs for the system as CA 022l6l22 l997-08-l~
wo 96/26361 PCT/US96/02536 previously discussed. At step 719, the A/D circuitry is set to scan the next applol.liate sensor and the next A/D illl~llu~l is set to occur one milli~econd from the time this interrupt occurred. The subroutine is then ended at step 721.
The Time Illl~llupt Routine 111 of the Electronic Control Unit Software 103 5 (Figure 11) is shown in Figure 31 and is now described herein. More specifically, because of the limit of the haL-lwal~ that is used to implement the invention, it is impossible to obtain an accurate RPM reading when the engine speed is very low. This is caused by an overflow of the 16-bit timing registers. In order to obtain an accurate reading, the Time Interrupt Routine 111 is implemPnte~l. When an engine revolution has completed, a 10 haldw~l~ illlellu~l is set to occur at a time coinciding with the overflow point of the system timer register (approximately 262 ms). The haLdw~l~ hllellu~t causes the Timed Illlellu~l Routine 111 to be executed. After the illlellu~l is begun at step 801, the timed hll~llu~t count is increment~-~l at step 803, and the haldwdl~ hll~llu~l is reset at step 805 to occur at a time coinciding with the next overflow of the system timer register. The Time Illl~llupl 15 Routine 111 is then ended at step 807.
Having thus described the invention, the same will become better understood fromthe appended claims, in which it is described, and intended to be described, in a broad and non-limiting manner.

Claims (12)

What is claimed is:
1. A method for controlling an electronic fuel delivery system, comprising:
a) running an engine by at least injecting fuel into said engine in fuel pulse width amounts for specific pairs of engine operating parameters corresponding to fuel pulse widths in an initial fuel map defining a plurality of fuel pulse widths for corresponding pairs of defined engine operating parameters;
b) adjusting pulse width size in one of a rich and lean direction of operation and determining if engine performance is one of improved and degraded, and if improvement is detected continuing said adjustments until one of no improvement is detected and degradation in performance is detected;
c) reversing direction of adjustment at least one increment when degradation in performance is detected; and d) repeating said steps "a" through "c" for any additional pairs of engine parameters at which said engine is operated.
2. The method as in claim 1 wherein said pairs of engine parameters detected are engine speed and manifold pressure, and said detected parameter indicative of engine performance is a change in torque as reflected by at least a detected change in one of engine speed and acceleration.
3. The method as in claim 1 further comprising:
temporarily stopping said adjustment of pulse widths each time a pulse width is adjusted from the corresponding pulse width in said initial fuel map;
matching adjusted pulse widths to corresponding ones of fuel pulse widths in a plurality of template fuel maps to determine the closest match to said adjusted fuel pulse widths; and creating an operational fuel map for operating said engine by replacing unadjusted pulse widths with those of the closest matched template fuel map.
4. The method as in claim 3 wherein said matching is conducted by adding sufficient pulse width size to every point in the template fuel map compared to result in an adjusted template fuel map for each one of said plurality of template fuel maps so that every point in the adjusted template fuel map compared is equal to or greater than thecorresponding point of the operational fuel map; obtaining the total variance between each adjusted template fuel map and the initial fuel map; and operating the engine in accordance with the adjusted template fuel map having the less total variance from the initial fuel map.
5. The method as in claim 1 wherein pulse width adjustment in step "b" is initially done in the rich direction.
6. The method as in claim 1 further comprising adjusting fuel pulse widths of operation by correction factors determined in accordance with detected at least one of air temperature, engine temperature and battery voltage.
7. An apparatus for controlling an electronic injector fuel delivery system, comprising:
means for controlling fuel pulse widths for fuel being fed to a running engine in accordance with an initial stored fuel map correlating fuel pulse widths to respective pairs of a plurality of pairs of engine operating parameters;
means for adjusting a fuel pulse width for a pair of engine operating parameters at which said engine is operating in one of a rich and a lean direction of operation;
means for receiving input from a detector for detecting at least one of whether engine operation improves does not improve and degrades upon each pulse width adjustment, and including means for causing said means for adjusting to reverse direction of adjustment upon one of no improvement and a degradation being detected; and means for causing reversal of said adjustment at least one increment upon a degradation being detected after adjustments being done in said reversed direction.
8. The apparatus as in claim 7 further comprising means for receiving inputsindicative of engine speed and manifold air pressure as said respective pairs of engine operating parameters associated with corresponding fuel pulse widths.
9. The apparatus as in claim 7 further comprising:
means for temporarily stopping tuning of pulse widths each time a fuel pulse width is adjusted;
comparing means for comparing all previously adjusted fuel pulse widths to corresponding fuel pulse widths in respective ones of a plurality of template fuel maps for determining the closest fuel map to said tuned fuel pulse widths; and means for creating a new fuel map for operating said engine corresponding the closest matched template fuel map and all previously adjusted points, with said new fuel map being an operational fuel map for running said engine.
10. The apparatus as in claim 9 further comprising:
variance determining means for matching said template fuel maps to said tuned fuel pulse widths by adding sufficient pulse width size to every point in each template fuel map compared to result in an adjusted template fuel map for each compared so that every point in each adjusted template fuel map compared is equal to or greater than the corresponding point of the operational fuel map;
means for obtaining the total variance between each adjusted template fuel map and the initial fuel map; and means for causing the engine to be operated in accordance with the operational fuel map, said operational fuel map being comprised of all previously tuned points and others obtained from the template fuel map having the least total variance from the previously tuned points.
11. The apparatus as in claim 7 wherein said means for adjusting is for initially adjusting in the rich direction of operation.
12. The apparatus as in claim 1 further comprising at least one of means for detecting at least one of air temperature, engine temperature, and battery voltage during engine operation; and means for adjusting each fuel pulse width in accordance with a predetermined correction factor corresponding to electrical at least one of air temperature, engine temperature, and battery voltage.
CA002216122A 1995-02-23 1996-02-23 Electronic control unit and method for fuel delivery Abandoned CA2216122A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/393,315 US5749346A (en) 1995-02-23 1995-02-23 Electronic control unit for controlling an electronic injector fuel delivery system and method of controlling an electronic injector fuel delivery system
US08/393,315 1995-02-23

Publications (1)

Publication Number Publication Date
CA2216122A1 true CA2216122A1 (en) 1996-08-29

Family

ID=23554194

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002216122A Abandoned CA2216122A1 (en) 1995-02-23 1996-02-23 Electronic control unit and method for fuel delivery

Country Status (6)

Country Link
US (1) US5749346A (en)
EP (1) EP0811118A4 (en)
JP (1) JPH11506510A (en)
AU (1) AU4995896A (en)
CA (1) CA2216122A1 (en)
WO (1) WO1996026361A1 (en)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3677954B2 (en) * 1997-07-23 2005-08-03 日産自動車株式会社 Control device for internal combustion engine
US5983156A (en) * 1997-09-03 1999-11-09 Cummins Engine Company System for controlling engine fueling according to vehicle location
US6151549A (en) * 1997-09-03 2000-11-21 Cummins Engine Co Inc System for controlling engine fueling according to vehicle location
US6539299B2 (en) 2000-02-18 2003-03-25 Optimum Power Technology Apparatus and method for calibrating an engine management system
US6298827B1 (en) 2000-03-08 2001-10-09 Caterpillar Inc. Method and system to monitor and control the activation stage in a hydraulically actuated device
US6460526B1 (en) 2000-11-02 2002-10-08 Tci Automotive, L.L.C. Electronic distributor and method of operating same
US6705294B2 (en) 2001-09-04 2004-03-16 Caterpiller Inc Adaptive control of fuel quantity limiting maps in an electronically controlled engine
US6947823B2 (en) * 2002-12-03 2005-09-20 Caterpillar Inc Air/fuel ratio control using a display interface
AU2004201718B1 (en) * 2004-04-27 2005-02-24 Larry Lin Feng Weng Engine optimisation method and apparatus
US7737655B1 (en) * 2006-07-26 2010-06-15 Koehler-Bright Star, Inc. Electronic control module for a lithium-ion battery powered lantern
CN101285426B (en) * 2007-04-09 2010-10-06 山东申普汽车控制技术有限公司 Method for combined pulse spectrum controlling engine idle speed
US8150576B2 (en) * 2007-06-25 2012-04-03 International Engine Intellectual Property Company Llc Engine glow plug diagnosis using crankshaft sensor data
US7562649B2 (en) * 2007-07-05 2009-07-21 Southwest Research Institute Combustion control system based on in-cylinder condition
DE102008027151B4 (en) * 2008-06-06 2019-07-18 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Method for controlling an internal combustion engine with a temperature-dependent injection parameter
WO2010042660A2 (en) * 2008-10-08 2010-04-15 Applied Materials, Inc. Method and apparatus for detecting an idle mode of processing equipment
US8688337B2 (en) * 2009-04-13 2014-04-01 Toyota Jidosha Kabushiki Kaisha Driving force control device
GB2491348A (en) * 2011-05-24 2012-12-05 Gm Global Tech Operations Inc Method for optimising the performance of an internal combustion engine based on fuel blend level
US9200587B2 (en) * 2012-04-27 2015-12-01 Tula Technology, Inc. Look-up table based skip fire engine control
US9638117B2 (en) * 2013-03-15 2017-05-02 Honda Motor Co., Ltd. Method for controlling an amount of fuel and vehicle including same
US9279392B2 (en) 2013-08-28 2016-03-08 Kohler Co. Gaseous engine fuel delivery
US9689336B2 (en) 2014-11-10 2017-06-27 Caterpillar Inc. Engine system utilizing modal weighted engine optimization

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2457436C2 (en) * 1974-12-05 1984-09-06 Robert Bosch Gmbh, 7000 Stuttgart Fuel metering device for internal combustion engines
US4084240A (en) * 1976-07-28 1978-04-11 Chrysler Corporation Mass production of electronic control units for engines
JPS55138101A (en) * 1979-04-13 1980-10-28 Hitachi Ltd Engine controller
JPS55138104A (en) * 1979-04-13 1980-10-28 Hitachi Ltd Engine controller
JPS55162104A (en) * 1979-06-06 1980-12-17 Hitachi Ltd Electronic controller of internal combustion engine
US4306529A (en) * 1980-04-21 1981-12-22 General Motors Corporation Adaptive air/fuel ratio controller for internal combustion engine
JPS5746033A (en) * 1980-09-05 1982-03-16 Toyota Motor Corp Method of injecting fuel under electronic control
JPS57105530A (en) * 1980-12-23 1982-07-01 Toyota Motor Corp Air-fuel ratio controlling method for internal combustion engine
JPS58160528A (en) * 1982-03-19 1983-09-24 Honda Motor Co Ltd Air fuel ratio feedback controller of internal-combustion engine
JPS59138738A (en) * 1983-01-28 1984-08-09 Nippon Denso Co Ltd Control of air-fuel ratio of internal-combustion engine
JPS6067744A (en) * 1983-09-21 1985-04-18 Nippon Denso Co Ltd Air-fuel ratio controlling method
KR890000497B1 (en) * 1983-11-21 1989-03-20 가부시기가이샤 히다찌세이사꾸쇼 Method of controlling air fuel ratio
JPS60142031A (en) * 1983-12-29 1985-07-27 Toyota Motor Corp Air/fuel ratio learning control of internal-combustion engine
DE3408223A1 (en) * 1984-02-01 1985-08-01 Robert Bosch Gmbh, 7000 Stuttgart CONTROL AND REGULATING METHOD FOR THE OPERATING CHARACTERISTICS OF AN INTERNAL COMBUSTION ENGINE
DE3407920A1 (en) * 1984-03-03 1985-09-05 Robert Bosch Gmbh, 7000 Stuttgart ELECTRONIC CONTROL SYSTEM FOR CONTROLLING TECHNICAL PLANTS AND MACHINES AND CONTROL METHODS USING THEM
DE3410082A1 (en) * 1984-03-20 1985-09-26 Robert Bosch Gmbh, 7000 Stuttgart CONTROL UNIT FOR MOTOR VEHICLES
DE3419559A1 (en) * 1984-05-25 1985-11-28 Robert Bosch Gmbh, 7000 Stuttgart CONTROL DEVICE FOR FUNCTIONS IN THE MOTOR VEHICLE
JPH0792018B2 (en) * 1984-07-04 1995-10-09 日本電装株式会社 Vehicle control device
JPS6350643A (en) * 1986-08-13 1988-03-03 Fuji Heavy Ind Ltd Air-fuel ratio control system for engine
JPS6350644A (en) * 1986-08-13 1988-03-03 Fuji Heavy Ind Ltd Air-fuel ratio control system for engine
US4789939A (en) * 1986-11-04 1988-12-06 Ford Motor Company Adaptive air fuel control using hydrocarbon variability feedback
JPH0751907B2 (en) * 1987-03-11 1995-06-05 株式会社日立製作所 Air-fuel ratio learning controller
JPS63285239A (en) * 1987-05-15 1988-11-22 Hitachi Ltd Transient air-fuel ratio learning control device in internal combustion engine
US5123397A (en) * 1988-07-29 1992-06-23 North American Philips Corporation Vehicle management computer
JP2581775B2 (en) * 1988-09-05 1997-02-12 株式会社日立製作所 Fuel injection control method for internal combustion engine and control apparatus therefor
JPH02104930A (en) * 1988-10-13 1990-04-17 Fuji Heavy Ind Ltd Device for controlling fuel injection of internal combustion engine
US5019989A (en) * 1988-12-01 1991-05-28 Mitsubishi Jidosha Kogyo Kabushiki Kaisha Vehicle engine output control method and apparatus
US5091858A (en) * 1989-01-09 1992-02-25 Digital Fuel Injection Electronic control of engine fuel delivery
US4999781A (en) * 1989-07-17 1991-03-12 General Motors Corporation Closed loop mass airflow determination via throttle position
DE4019574A1 (en) * 1989-08-18 1991-02-21 Avl Verbrennungskraft Messtech Fuel injection adaptive electronic control for combustion engine - adjusting quantity between lower and upper threshold values with storage of new value of target quantity
JPH0826805B2 (en) * 1989-11-01 1996-03-21 株式会社ユニシアジェックス Air-fuel ratio learning controller for internal combustion engine
US5335493A (en) * 1990-01-24 1994-08-09 Nissan Motor Co., Ltd. Dual sensor type air fuel ratio control system for internal combustion engine
US5200900A (en) * 1990-09-06 1993-04-06 John B. Adrain Automotive multiple memory selector apparatus with human interactive control
US5446665A (en) * 1993-03-18 1995-08-29 John B. Adrain Automotive multiple memory selector apparatus
US5297046A (en) * 1991-04-17 1994-03-22 Japan Electronic Control Systems Co., Ltd. System and method for learning and controlling air/fuel mixture ratio for internal combustion engine
AU2768592A (en) * 1991-09-30 1993-05-03 University Of Hawaii New scytophycin compounds, compositions and methods for their production and use
PH30377A (en) * 1992-02-11 1997-04-15 Orbital Eng Pty Air fuel ratio control
DE69329668T2 (en) * 1992-07-03 2001-03-15 Honda Motor Co Ltd Fuel metering control system and method for estimating cylinder air flow in internal combustion engines
US5341785A (en) * 1992-07-20 1994-08-30 Echlin, Inc. Fuel delivery system for internal combustion engines
US5497329A (en) * 1992-09-23 1996-03-05 General Motors Corporation Prediction method for engine mass air flow per cylinder
US5375577A (en) * 1993-07-23 1994-12-27 Caterpillar Inc. Apparatus and method for controlling engine response versus exhaust smoke

Also Published As

Publication number Publication date
US5749346A (en) 1998-05-12
AU4995896A (en) 1996-09-11
WO1996026361A1 (en) 1996-08-29
JPH11506510A (en) 1999-06-08
EP0811118A4 (en) 1999-09-22
EP0811118A1 (en) 1997-12-10

Similar Documents

Publication Publication Date Title
US5749346A (en) Electronic control unit for controlling an electronic injector fuel delivery system and method of controlling an electronic injector fuel delivery system
US4658787A (en) Method and apparatus for engine control
EP0980469B1 (en) Method for balancing the air/fuel ratio to each cylinder of an engine
US4436073A (en) Method of and apparatus for controlling the fuel feeding rate of an internal combustion engine
EP0135176A2 (en) Engine control apparatus
US4475507A (en) Fuel injection amount control
GB2285147A (en) Monitoring exhaust catayst effectiveness
US4550705A (en) Electrical fuel injector
US4924836A (en) Air/fuel ratio control system for internal combustion engine with correction coefficient learning feature
EP1284363B1 (en) Ignition timing control device for internal combustion engine
US4911129A (en) Air/fuel mixture ratio control system in internal combustion engine with _engine operation range dependent _optimum correction coefficient learning feature
US4655179A (en) Method and apparatus for controlling air-fuel ratio in internal combustion engine
US5448975A (en) Ignition timing control system for internal combustion engine
EP0534506B1 (en) Air/fuel ratio control system for internal combustion engine with asynchronous fuel delivery control
US4800860A (en) Fuel injection control system for internal combustion engine with precisely engine load dependent fuel injection amount adjustment feature
US4796591A (en) Internal combustion engine control system
US4889099A (en) Air/fuel mixture ratio control system for internal combustion engine with feature of learning correction coefficient including altitude dependent factor
US4987877A (en) Method and apparatus for detecting intake air state quantity in an internal combustion engine
JP2577211B2 (en) Basic fuel injection amount setting device for internal combustion engine
EP0316772B1 (en) Control system for internal combustion engine with improved transition characteristcs
US5517968A (en) Automobile engine control system
US5065727A (en) Air/fuel ratio control system for internal combustion engine
EP0440211A2 (en) An air-fuel ratio control device for a vehicle engine
US4787358A (en) Fuel supply control system for an engine
JPS60249651A (en) Electronic control type fuel injector

Legal Events

Date Code Title Description
EEER Examination request
FZDE Discontinued