(19)
(11) EP 0 452 996 A2

(12) EUROPEAN PATENT APPLICATION

(43) Date of publication:
23.10.1991 Bulletin 1991/43

(21) Application number: 91111421.3

(22) Date of filing: 26.05.1988
(51) International Patent Classification (IPC)5F02D 41/04, F02D 41/26, F02D 41/14, F02D 41/34
(84) Designated Contracting States:
DE GB

(30) Priority: 28.05.1987 JP 129893/87
29.05.1987 JP 131826/87

(62) Application number of the earlier application in accordance with Art. 76 EPC:
88108437.0 / 0292973

(71) Applicant: JAPAN ELECTRONIC CONTROL SYSTEMS CO., LTD.
Isesaki-shi Gunma-ken, 372 (JP)

(72) Inventor:
  • Tomisawa, Naoki, c/o Japan Electronic
    Isesaki-shi, Gunma-ken, 372 (JP)

(74) Representative: Schoppe, Fritz, Dipl.-Ing. et al
Patentanwalt, Georg-Kalb-Strasse 9
D-82049 Pullach
D-82049 Pullach (DE)


(56) References cited: : 
   
     
    Remarks:
    This application was filed on 09 - 07 - 1991 as a divisional application to the application mentioned under INID code 60.
     


    (54) Air/fuel mixture ratio control system for internal combustion engine with feature of learning correction coefficient including altitude dependent factor


    (57) A method for controlling a mixture ratio of an air/fuel mixture for an engine, comprises the steps of: monitoring (1002) preselected basic first engine operation parameter to produce a first sensor signal indicative thereof; monitoring (1204) an air/fuel mixture ratio indicative parameter (Vox) for producing a second sensor signal indicative of a deviation of the air/fuel mixture from a stoichiometric value; deriving (1002, 1006) a basic fuel metering amount (Tp) on the basis of said first sensor signal value; deriving (1008) an air/fuel ratio dependent correction factor (COEF) from said second sensor signal value; deriving (1610) a first correction coefficient (KALT) on the basis of said air/fuel ratio dependent correction factor (COEF), which first correction coefficient is commonly applicable for correcting said basic fuel metering amount (Tp) in all engine driving ranges, said step (1610) comprising the updating of the first correction coefficient (KALT) when a feedback condition is satisfied; deriving (1012) a second correction coefficient (KMAP) which is variable depending upon the engine driving range on the basis of said air/fuel ratio dependent correction factor (COEF) and setting a plurality of second correction coefficients (KMAP) for respective engine driving ranges and updating each of said second correction coefficients with an instantaneous value derived based on said air/fuel ratio dependent correction factor in the corresponding engine driving range; detecting (1002-1014) an engine driving condition on the basis of said first sensor values and governing said steps (1610, 1012) of deriving said first and second correction coefficients (KALT, KMAP) depending upon the detected engine driving condition; and correcting (1018, 1020) said basic fuel metering amount (Tp) with said first and second correction coefficients (KALT, KMAP).
    For achieving an enhanced accuracy in determining the fuel metering amount the step of deriving the first correction coefficient (KALT) further comprises the steps of determining (1724) a first component ratio indicative value (k1) based on at least one of an engine load indicative signal (α, Q), a basic fuel injection amount (Tp) and the engine speed (N); determining a predetermined number of engine driving ranges for which the second correction coefficient (KMAP) was recently updated; detecting (1726) for each range the difference between a present second correction coefficient (KMAP) and a previous one for distinguishing between positive difference regions, where the difference between the present and the previous second correction coefficient (KMAP) for this region is positive, and negative difference regions; determining (1726-1732) a second component ratio indicative value (k2) based on the number of positive and/or negative difference regions; and modifying (1732-1736) the first correction coefficient (KALT) based on said first and second component ratio indicative values (k1, k2).




    Description


    [0001] The present invention relates to a method for controlling a mixture ratio of an air/fuel mixture for an engine in accordance with the prior art portion of claim 1 and to a air/fuel ratio control system in accordance with the prior art portion of claim 5.

    [0002] A method for controlling the mixture ratio of an air/fuel mixture for an engine of the above-mentioned type and a system for controlling the air/fuel ratio of the above-mentioned type are known from EP-A-191923 and from the prior, non-prepublished EP-A-0265078.

    [0003] In a control method of the above-mentioned type, a lambda-sensor generates a signal indicative of the deviation of the actual air/fuel mixture from a stoichiometric value. A correction factor is derived from this sensor signal. Thereinafter, the first correction coefficient which can be regarded as an altitude dependent correction coefficient which is commonly applicable for correcting the basic fuel metering amount in all engine driving ranges is derived from the correction coefficient when a feedback condition is fulfilled. Furthermore, a number of second correction coefficients which can be regarded as areal learning correction coefficients are determined for each engine driving range on the basis of the actual value of the air/fuel ratio dependent correction factor. The actual fuel metering amount is derived from the basic fuel metering amount on the basis of said first and second correction coefficients. The accuracy in determining the actual fuel metering amount is negatively affected by numerous factors such as errors in the measurement of the throttle angle position and tolerances of various components of the overall system.

    [0004] Starting from the above prior art, the present invention is based on the object of providing a method for controlling a mixture ratio of an air/fuel mixture for an engine of the above-mentioned type and an air/fuel ratio control system of the above-mentioned type having a higher degree of accuracy in determining the fuel metering amount.

    [0005] This object is achieved by a method in accordance with claim 1 and by a system in accordance with claim 5.

    BRIEF DESCRIPTION OF THE DRAWINGS



    [0006] The present invention will be understood more fully from the detailed description given herebelow and from the accompanying drawings of the preferred embodiment of the invention, which, however, should not be taken to limit the invention to the specific embodiment but are for explanation and understanding only.

    [0007] In the drawings:

    Fig. 1 is a diagram of the preferred embodiment of a learning air/fuel ratio control system according to the invention;

    Fig. 2 is a block diagram of a control unit employed in the preferred embodiment of the air/fuel ratio control system of the invention;

    Fig. 3 is a flowchart of a routine for deriving and setting a fuel injection pulse width representative of a fuel injection amount;

    Fig. 4 is a block diagram of an input/output unit in the control unit to be employed in the preferred embodiment of the air/fuel ratio control system of Fig. 2;

    Fig. 5 is a flowchart of a routine for discriminating engine operating condition for governing control operation mode between FEEDBACK control mode and OPEN LOOP control mode;

    Fig. 6 is a flowchart of a routine for deriving feedback correction coefficient composed of a proportional component and an integral component;

    Fig. 7 is a flowchart of a learning governing routine for governing learning of KALT and KMAP;

    Fig. 8 is a flowchart of a KALT learning routine for updating a map storing an air density dependent uniform correction coefficients;

    Figs. 9 is a flowchart showing a KMAP learning routine for updating an engine driving range based correction coefficients;

    Fig. 10 is a timing chart showing operation of the preferred embodiment of the air/fuel ratio control system of the invention;

    Fig. 11 is a flowchart of an automatically modifying routine for KALT for modifying the KALT automatically;

    Fig. 12 is a chart showing FEEDBACK control range which is defined in terms of engine speed N and engine load Tp;

    Fig. 13 is a chart showing range to perform learning of KALT which is defined by throttle angular position ϑth, intake air flow rate Q and engine speed N;

    Figs. 14 and 15 are flowcharts showing a sequence of KMAP learning routine as modification of the routine of Fig. 8.


    DESCRIPTION OF THE PREFERRED EMBODIMENT



    [0008] Referring now to the drawings, particularly to Figs. 1 and 2, the preferred embodiment of an air/fuel ratio control system, according to the invention, is applied to a fuel injection internal combustion engine which is generally represented by the reference numeral "1". The engine 1 has an air induction system including an air cleaner 2, a throttle body 3 and an intake manifold 4. A throttle valve 5 is disposed within the throttle body 3 for adjusting induction rate of an air/fuel mixture.

    [0009] In the shown embodiment, a fuel injection valve 6 is disposed within the throttle body 3 and upstream of the throttle valve 5. Therefore, the air/fuel mixture is formed at the position in the induction system upstream of the throttle valve. The air/fuel mixture flows through the throttle body 3 and introduced into an engine combustion chamber via the intake manifold 4 and an intake port which is open and closed by means of an intake valve.

    [0010] The air/fuel mixture introduced into the engine combustion chamber is combustioned by spark ignition taken place by means of an ignition plug 7 which receives an ignition power from an ignition coil unit 8 via a distributor 9.

    [0011] The engine 1 also has an exhaust system including an exhaust manifold 10, an exhaust duct 11, a catalytic converter unit 12 and a muffler 13.

    [0012] In order to monitor the angular position of the throttle valve 5, a throttle angle sensor 15 is associated with the throttle valve 5 to produce a throttle angle indicative signal ϑth having a value indicative of the monitored throttle angle. In practice, the throttle angle sensor 15 comprises a potentiometer producing analog form throttle angle indicative signal having a voltage variable depending upon the throttle valve angular position. Also, an an engine idling condition detector switch 16 is associated with the throttle valve 5 for detecting fully closed or approximately fully closed position of the throttle valve. The engine idling condition detector switch 16 outputs an engine idling condition indicative signal IDL which is held LOW level while the throttle valve 5 is not in fully closed or approximately fully closed position and is held HIGH level while the throttle valve is maintained at fully closed or approximately fully closed position.

    [0013] A crank angle sensor 17 is coupled with the distributor 9 for monitoring a crank shaft angular position. For this, the crank angle sensor 17 has a rotary disc which is so designed as to rotate synchroneously with rotation of a rotor of the distributor. The crank angle sensor 17 produces a crank reference signal ϑref at each of predetermined angular position and a crank position signal ϑpos at every time of predetermined angle of angular displacement of the crank shaft. In practice, the crank reference signal is generated every time the crank shaft is rotated at an angular position corresponding on 70o or 66o before top-dead-center (BTDC) in compression stroke of one of engine cylinder. Therefore, in case of the 6-cylinder engine, the crank reference signal ϑref is produced at every 120o of the crank shaft angular displacement. On other hand, the crank position ϑpos is generated every given angular displacement, i.e. 1o or 2o, of the crank shaft.

    [0014] An engine coolant temperature sensor 18 is disposed within an engine cooling chamber to monitor a temperature of an engine coolant filled in the cooling chamber. The engine coolant temperature sensor 18 is designed for monitoring the temperature of the engine coolant to produce an engine coolant temperature indicative signal Tw. In practice, the engine coolant temperature sensor 18 produces an analog form signal having a voltage variable depending upon the engine coolant temperature condition. A vehicle speed sensor 19 monitors a vehicle speed for producing a vehicle speed indicative signal Vs. Furthermore, the shown embodiment of the air/fuel ratio control system includes an oxygen sensor 20 disposed in the exhaust manifold 10. The oxygen sensor 20 monitors oxygen concentration contained in the exhaust gas to produce an oxygen concentration indicative signal Vox indicative of the monitored oxygen concentration. The oxygen concentration indicative signal Vox is a voltage signal variable of the voltage depending upon the oxygen concentration. In practice, the voltage of the oxygen concentration indicative signal varies across a zero voltage depending on rich and lean of the air/fuel ratio relative to a stoichiometric value.

    [0015] In addition, the preferred embodiment of the air/fuel ratio control system, according to the invention, has a control unit 100 which comprises a microprocessor. The control unit 100 is connected to a vehicular battery 21 to receive power supply therefrom. An ignition switch 22 is interposed between the control unit 100 and the vehicular battery 21 to establish and block power supply.

    [0016] As shown in Fig. 2, the control unit 100 comprises CPU 102, RAM 104, ROM 106 and an input/output unit 108. The input/output unit 108 has an analog-to-digital converter 110 for converting analog inputs, such as the throttle angle indicative signal ϑth, the engine coolant temperature indicative signal Tw and so forth, into digital signals.

    [0017] The control unit 100 receives the throttle angle indicative signal ϑth, the engine idling position indicative signal IDL, the crank reference signal ϑref, the crank position signal ϑpos, the engine coolant temperature indicative signal Tw, the vehicle speed indicative signal Vs and oxygen concentration indicative signal Vox. The control unit 100 derives an engine revolution speed data N on the basis of a period of the crank reference signal ϑpos. Namely, the period of the crank reference signal ϑref is inversely proportional to the engine speed, the engine speed data N can be derived from reciprocal of the period of the crank reference signal ϑre. Also, the control unit 100 projects an intake air flow amount indicative data Q on the basis of the throttle angle position indicative signal value ϑth.

    [0018] Although the shown embodiment projects the intake air flow rate indicative data Q based on the throttle angle position indicative signal, it is, of course, possible to obtain the air flow rate indicative data Q directly by a known air flow meter. In the alternative, the intake air flow rate indicative data may also be obtained from intake vaccum pressure which may be monitored by a vaccum sensor to be disposed within the induction system.

    [0019] Generally, the control unit 100 derives a basic fuel injection amount or a basic fuel injection pulse width Tp on the basis of the engine speed data N and the intake air flow rate indicative data Q which serves to represents an engine load. The basic fuel injection amount Tp is corrected by a correction factors derived on the basis of the engine coolant temperature Tw, the rich/lean mixture ratio indicative oxygen concentration indicative signal Vox of the oxygen sensor 20, a battery voltage and so forth, and an enrichment factor, such as engine start up enrichment factor, acceleration enrichment factor. The fuel injection amount modified with the correction factors and enrichment factors set forth above, is further corrected by a air/fuel ratio dependent correction coefficient derived on the basis of the oxygen concentration indicative signal Vox for adjusting the air/fuel ratio toward the stoichiometric value.

    [0020] The practical operation to be performed in the control unit 100 of the preferred embodiment of the air/fuel ratio control system according to the invention, will be discussed herebelow with reference to Figs. 3 to 9. In the following discussion, components of the control unit 100 which are not discussed in the preceding disclosure will be discussed with the functions thereof.

    [0021] Fig. 3 shows a flowchart of a fuel injection pulse setting routine for setting a fuel injection pulse width Ti in the input/output unit 108 of the control unit 100. The fuel injection pulse width Ti setting routine may be triggered at every given timing for updating fuel injection pulse width data Ti in the input/output unit 108.

    [0022] At a step 1002, the throttle angle indicative signal value ϑth and the engine speed data N are read out. With the throttle angle indicative signal value ϑth and the engine speed data N as read at the step 1002, search is performed against an intake air flow rate map stored in a memory block 130 of ROM 104 to project an intake air flow rate indicative data Q, which map will be hereafter referred to as "Q map", at a step 1004.

    [0023] In practice, the Q map contains various intake flow rate indicative data Q, each of which data is accessible in terms of the throttle angle indicative signal value ϑth and the engine speed data N. Each of the intake air flow rate indicative data Q is determined through experimentation. Relationship between the throttle angle indicative data ϑth, the engine speed data N and the intake air flow rate Q is as shown in the block representing the step 1004.

    [0024] Based on the engine speed data N as read at the step 1002 and the intake air flow rate indicative data Q as projected at the step 1004, the basic fuel injection amount Tp is derived at a step 1006. Practically, the basic fuel injection amount Tp can be calculated by the following equation:





    where K is constant
       At a step 1008, correction coefficients COEF is set. In practice, the correction coefficient COEF to be set here is constituted by an engine coolant temperature dependent component which will be hereafter referred to as "Tw correction coefficient", an engine start-up acceleration enrichment component which will be hereafter referred to as "start-up enrichment correction coefficient", an acceleration enrichment component which will be hereafter referred to as "acceleration enrichment correction coefficient" and so forth. The Tw correction coefficient may be derived on the basis of the engine coolant temperature indicative signal Tw. The start-up enrichment correction coefficient may be derived in response to the ignition switch operated to a cranking position. In addition, the acceleration enrichment correction coefficient can be derived in response to an acceleration demand which may be detected from variation of the throttle angle indicative signal values. Manner of derivation of these correction coefficients are per se well known and unnecessary to be discussed in detail. For example, manner of derivation of the acceleration enrichment coefficient has been disclosed in the co-pending United States Patent Application Serial No. 115,371, filed on November 2, 1987, assigned to the common assignee to the present invention, for example. The disclosure of the above-identified co-pending U. S. Patent Application is herein incorporated by reference for the sake of disclosure.

    [0025] At a step 1010, a correction coefficient KALT is read out. The correction coefficient KALT is stored in a given address of memory block 131 in RAM 106 and continuously updated through learning process. This correction coefficient will be applicable for air/fuel ratio control for maintaining the air/fuel ratio of the air/fuel mixture at a stoichiometric value at any engine driving range. Therefore, the correction coefficient KALT will be hereafter referred to as "air density dependent uniform correction coefficient". Furthermore, address of the memory block 131 storing the air density dependent uniform correction coefficient KALT will be hereafter referred to as "KALT address". At the initial stage before learning, the air density dependent uniform correction coefficient KALT is set at a value "0". After the process at the step 1010, a correction coefficient KMAP is determined by map search in terms of the engine speed indicative data N and the basic fuel injection amount Tp, at a step 1012. In the process of map search, the engine speed indicative data N and the basic fuel injection amount Tp are used as parameters identifying the engine driving range.

    [0026] A map containing a plurality of mutually distinct correction coefficients KMAP is stored in a memory block 132 RAM 106. This map will be hereafter referred to as "KMAP map". The KMAP map storing memory block 132 is constituted by a plurality of memory addresses each storing individual correction coefficient KMAP. Each memory block storing individual correction coefficient KMAP is identified by known address which will be hereafter referred to as "KMAP address". The KMAP address to be accessed is identified in terms of the engine speed indicative data N and the basic fuel injection amount Tp. The correction coefficient KMAP stored in each KMAP address is determined in relation to the engine driving range defined by the engine speed data N and the fuel injection amount Tp and continuously updated through learning process. Therefore, this correction coefficient KMAP will be hereafter referred to as "driving range based learnt correction coefficient". Imaginally, the KMAP map is formed by setting the engine speed data N in x-axis and the basic fuel injection amount Tp in y-axis. The x-axis component is divided into a given number nN of engine speed ranges. Similarly, the y-axis component is divided into a given number nTp of basic fuel injection ranges. Therefore, the KMAP map is provided (nN x nTp) addresses. Practically, the x-axis component and y-axis component are divided into 8 ranges respectively. Therefore, 64 (8 x 8) addresses are formed to store the driving range based learnt correction coefficient respectively.

    [0027] It should be noted that each KMAP address in the KMAP initially stores a value "0" before learning process is initiated.

    [0028] At a step 1014, a feedback correction coefficient KLAMBDA is read out. Process of derivation of the feedback correction coefficient KLAMBDA will be discussed later with reference to Fig. 6. At a step 1016, a battery voltage dependent correction value Ts is set in relation to a voltage of the vehicular battery 21.

    [0029] Based on the basic fuel injection amount Tp derived at the step 1006, the correction coefficient coefficient COEF derived at the step 1008, the air density dependent uniform correction coefficient KALT read at the step 1010, the driving range based learnt correction coefficient KMAP derived at the step 1012, the feedback correction coefficient KLAMBDA read at the step 1014 and the battery voltage dependent correction value Ts set at the step 1016, a fuel injection amount Ti is calculated at a step 1018 according to the following equation:





    A fuel injection pulse width data corresponding to the fuel injection amount Ti derived at the step 1018, which will be hereafter referred to as "Ti data", is set in the input/out unit 108.

    [0030] Fig. 4 shows one example of construction of part of the input/output unit 108 which is used for controlling fuel injection timing and fuel injection amount according to the set Ti data.

    [0031] Fig. 4 shows detailed construction of the relevant section of the input/output unit 108. The input/output unit 108 has a fuel injection start timing control section 124. The fuel injection start timing control section 124 has an angle (ANG) register 121, to which a fuel injection start timing derived by CPU during process of fuel injection control data, e.g. the air flow rate, throttle angle position, the engine speed and so forth. The fuel injection start timing control section 124 also has a crank position signal counter 122. The crank position signal counter 122 is designed to count up the crank position signals ϑpos and to be reset in response to the crank reference signal ϑref. A comparator 123 is also provided in the fuel injection start timing control section 124. The comparator 123 compares the fuel injection start timing indicative value set in the ANG register 121 and the crank position signal counter value in the counter 122. The comparator 123 outputs HIGH level comparator signal when the crank position signal counter value becomes the same as that of the fuel injection start timing indicative value. The HIGH level comparator signal of the comparator 123 is fed to a fuel injection pulse output section 127.

    [0032] The fuel injection pulse output section 130 has a fuel injection pulse generator 127a. The fuel injection pulse generator 127a comprises a fuel injection (EGI) register 125, a clock counter 126, a comparator 128 and a power transistor 129. A fuel injection pulse width data which is determined through data processing during execution of fuel injection control program to be discussed later, is set in the EGI register 125.

    [0033] The output of the comparator 123 is connected to the clock counter 126. The clock counter 126 is responsive to the leading edge of HIGH level output of the comparator to be reset. On the other hand, the clock counter 126 is connected to a clock generator 112 in the control unit 100 to receive therefrom a clock pulse. The clock counter 126 counts up the clock pulse as triggered by the HIGH level gate signal. At the same time, the comparator 128 is triggered in response to resetting of the clock counter 126 to output HIGH level comparator signal to the base electrode of the power transistor 129. The power transistor 129 is thus turned ON to open the fuel injection valve 6 to perform furl injection.

    [0034] When the counter value of the clock counter 126 reaches the fuel injection pulse width value set in the EGI register 125, the comparator signal of the comparator 128 turns into LOW level to turn OFF the power transistor 129. By turning OFF of the power transistor 129, the fuel injection valve 4 closes to terminate fuel injection.

    [0035] The ANG register 121 in the fuel injection start timing control section 124 updates the set fuel injection start timing data at every occurrence of the crank reference signal ϑref.

    [0036] With this arrangement, fuel injection starts at the timing set in the ANG register 121 and is maintained for a period as set in the EGI register 125. By this, the fuel injection amount can be controlled by adjusting the fuel injection pulse width.

    [0037] Fig. 5 shows a routine governing control mode to switch the mode between FEEDBACK control mode and OPEN LOOP control mode based on the engine driving condition. Basically, FEEDBACK control of air/fuel ratio is taken place while the engine is driven under load load and at low speed and OPEN LOOP control is performed otherwise. In order to selectively perform FEEDBACK control and OPEN LOOP control, the basic fuel injection amount Tp is taken as a parameter for detecting the engine driving condition. For distinguishing the engine driving condition, a map containing FEEDBACK condition indicative criteria Tpref is set in a memory block 133 of ROM 104. The map is designed to be searched in terms of the engine speed N, at a step 1102. The FEEDBACK condition indicative criteria set in the map are experimentarily obtained and define the engine driving range to perform FEEDBACK control, which engine driving range is explanatorily shown by the hatched area of the map illustrated within the process block 1102 of Fig. 5.

    [0038] At a step 1104, the basic fuel injection amount Tp derived in the process of the step 1006 is then compared with the FEEDBACK condition indicative criterion Tpref, at a step 1104. When the basic fuel injection amount Tp is smaller than or equal to the FEEDBACK condition indicative criterion Tpref as checked at the step 1104, a delay timer 134 in the control unit 100 and connected to a clock generator 135, is reset to clear a delay timer value tDELAY, at a step 1106. On the other hand, when the basic fuel injection amount Tp is greater than the FEEDBACK condition indicative criterion Tpref as checked at the step 1104, the delay timer value tDELAY is read and compared with a timer reference value tref, at a step 1108. If the delay timer value tDELAY is smaller than or equal to the timer reference value tref, the engine speed data N is read and compared with an engine speed reference Nref, at a step 1110. The engine speed reference Nref represents the engine speed criterion between high engine speed range and low engine speed range. Practically, the engine speed reference Nref is set at a value corresponding to a high/low engine speed criteria, e.g. 3800 r.p.m. When the engine speed indicative data N is smaller than the engine speed reference Nref, or after the step 1106, a FEEDBACK condition indicative flag FLFEEDBACK which is to be set in a flag register 136 in the control unit 100, is set at a step 1112. When the delay timer value tDELAY is greater than The timer reference value tref, a FEEDBACK condition indicative flag FLFEEDBACK is reset, at a step 1114. After one of the step 1112 and 1114, process goes END and is returned to a background job which governs execution of various routines.

    [0039] By providing the delay timer to switch mode of control between FEEDBACK control and OPEN LOOP control, hunting in selection of the control mode can be successfully prevented. Furthermore, by providing the delay timer for delaying switching timing of control mode from FEEDBACK control to OPEN LOOP mode, FEEDBACK control can be maintained for the period of time corresponding to the period defined by the timer reference value. This expands period to perform FEEDBACK control and to perform learning.

    [0040] For example, during hill or mountain climbing, FEEDBACK control can be maintained for the given period corresponding to the set delay time to learning of correction coefficient for adapting the air/fuel ratio to the air density even though the engine driving condition is in transition state.

    [0041] Fig. 6 shows a routine for deriving the feedback correction coefficient KLAMBDA. The feedback correction coefficient KLAMBDA is composed of a proportional (P) component and an integral (I) component. The shown routine is triggered every given timing, i. e. every 10 ms., in order to regularly update the feedback control coefficient KLAMBDA. The feedback control coefficient KLAMBDA is stored in a memory block 137 and cyclically updated during a period in which FEEDBACK control is performed.

    [0042] At a step 1202, the FEEDBACK condition indicative flag FLFEEDBACK is checked. When the FEEDBACK condition indicative flag FLFEEDBACK is not set as checked at the step 1202, which indicates that the on-going control mode is OPEN LOOP. Therefore, process directly goes END. At this occasion, since the feedback correction coefficient KLAMBDA is not updated, the content in the memory block 137 storing the feedback correction coefficient is held in unchanged.

    [0043] When the FEEDBACK condition indicative flag FLFEEDBACK is set as checked at a step 1202, the oxygen concentration indicative signal Vox from the oxygen sensor 20 is read out at a step 1204. The oxygen concentration indicative signal value Vox is then compared with a predetermined rich/lean criterion Vref which corresponding to the air/fuel ratio of stoichiometric value, at a step 1206. In practice, in the process, judgment is made that the air/fuel mixture is lean when the oxygen concentration indicative signal value Vox is smaller than the rich/lean criterion Vref, a lean mixture indicative flag FLLEAN which is set in a lean mixture indicative flag register 138 in the control unit 100, is checked at a step 1208.

    [0044] On the other hand, when the lean mixture indicative flag FLLEAN is set as checked at the step 1208, a counter value C of a faulty sensor detecting timer 148 in the control unit 100 is incremented by one (1), at a step 1210. The counter value C will be hereafter referred to as "faulty timer value". The, the faulty timer value C is compared with a preset faulty timer criterion C₀ which represents acceptable maximum period of time to maintain lean mixture indicative O₂ sensor signal while the oxygen sensor 20 operates in normal state, at a step 1212. When the faulty timer value C is smaller than the faulty timer criterion C₀, the rich/lean inversion indicative flag FLINV is reset at a step 1214. Thereafter, the feedback correction coefficient KLAMBDA is updated by adding a given integral constant (I constant), at a step 1216. On the other hand, when the faulty timer value C as checked at the step 1212 is greater than or equal to the faulty timer criterion C₀, a faulty sensor indicative flag FLABNORMAL is set in a flag register 156 at a step 1218. After setting the faulty sensor indicative flag FLABNORMAL process goes END.

    [0045] On the other hand, when the lean mixture indicative flag FLLEAN is not set as checked at the step 1208, fact of which represents that the air/fuel mixture ratio is adjusted changed from rich to lean, an rich/lean inversion indicative flag FLINV which is set in a flag register 139 in the control unit 100, is set at a step 1220. Thereafter, a rich mixture indicative flag FLRICH which is set in a flag register 139, is reset and the lean mixture indicative flag FLLEAN is set, at a step 1222. Thereafter, the faulty timer value C in the faulty sensor detecting timer 148 is reset and the faulty sensor indicative flag FLABNORMAL is reset, at a step 1224. Then, the feedback correction coefficient KLAMBDA is modified by adding a proportional constant (P constant), at a step 1226.

    [0046] On the other hand, when the oxygen concentration indicative signal value Vox is greater than the rich/lean criterion Vref as checked at the step 1206, a rich mixture indicative flag FLRICH which is set in a rich mixture indicative flag register 141 in the control unit 100, is checked at a step 1228.

    [0047] When the rich mixture indicative flag FLRICH is set as checked at the step 1228, the counter value C of the faulty sensor detecting timer 148 in the control unit 100 is incremented by one (1), at a step 1230. The, the faulty timer value C is compared with the preset faulty timer criterion C₀, at a step 1232. When the faulty timer value C is smaller than the faulty timer criterion C₀, the rich/lean inversion indicative flag FLINV is reset at a step 1234. Thereafter, the feedback correction coefficient KLAMBDA is updated by subtracting the I constant, at a step 1236.

    [0048] On the other hand, when the faulty timer value C as checked at the step 1232 is greater than or equal to the faulty timer criterion C₀, a faulty sensor indicative flag FLABNORMAL is set at a step 1238. After setting the faulty sensor indicative flag FLABNORMAL process goes END.

    [0049] When the rich mixture indicative flag FLRICH is not set as checked at the step 1228, fact of which represents that the air/fuel mixture ratio is just changed from lean to rich, an rich/lean inversion indicative flag FLINV which is set in a flag register 139 in the control unit 100, is set at a step 1240. Thereafter, a rich mixture indicative flag FLLEAN is reset and the rich mixture indicative flag FLRICH is set, at a step 1242. Thereafter, the faulty timer value C in the faulty sensor detecting timer 148 is reset and the faulty sensor indicative flag FLABNORMAL is reset, at a step 1244 Then, the feedback correction coefficient KLAMBDA is modified by subtracting the P constant, at a step 1246.

    [0050] After one of the process of the steps 1216, 1218, 1226, 1236, 1238 and 1246, process goes to the END.

    [0051] It should be noted that, in the shown embodiment, the P component is set at a value far greater than that of I component.

    [0052] Fig. 7 shows a learning governing routine for selectively updating air density dependent uniform correction coefficient KALT and the driving range based learnt correction coefficient KMAP. Since learning of the correction coefficients KALT and KMAP can be performed only when the FEEDBACK control is performed. The FEEDBACK condition indicative flag FLFEEDBACK is checked at a step 1302. When the FEEDBACK condition indicative flag FLFEEDBACK is not set as checked at the step 1302, a KALT learning cycle counter value CALT in a KALT counter 149 in RAM 106 and a KMAP learning cycle counter value CMAP in a KMAP counter 142 are cleared at a step 1304 and thereafter process goes END.

    [0053] On the other hand, when the FEEDBACK condition indicative flag FLFEEDBACK as checked at the step 1302 is set, a throttle angle reference value ϑthref is derived on the basis of the engine speed data N, at a step 1306. The throttle angle reference value ϑthref is set in a form of a table data to be read in terms of the engine speed N. Each value of the throttle angle reference value ϑthref is representative of high engine load condition criteria at respective engine speed range, above which the intake air flow rate Q is held unchanged. Namely, when the throttle angle position ϑth is greater than or equal to the throttle angle reference value ϑthref, the air flow rate is held substantially unchanged. In such engine driving condition, air density dependent uniform correction coefficient KALT is to be updated. The throttle angle reference value ϑthref will be hereafter referred to as "Q flat range threshold".

    [0054] At a step 1308, the throttle angle indicative signal value ϑth is compared with the Q flat range threshold ϑthref derived at the step 1306. If the throttle angle indicative signal value ϑth is greater than or equal to the Q flat range threshold ϑthref, another throttle angle reference value ϑthinhibit is derived in terms of the engine speed data N at a step 1310. In the practice, the throttle angle reference value ϑthinhibit represents substantially high engine load range where flow velocity of the intake is lowered to make distribution of the air/fuel mixture worse. This may cause substantial fluctuation of the air/fuel ratio to cause significant variation of the oxygen concentration indicative signal value Vox. Therefore, when the throttle angle indicative signal value ϑth is greater than or equal to this throttle angle reference value ϑthinhibit, updating of the air density dependent uniform correction coefficient KALT is better not to be performed. This throttle angle reference value ϑthinhibit as derived at the step 1310, will be hereafter referred to as "learning inhibiting threshold".

    [0055] At a step 1312, the throttle angle indicative signal value ϑth is compared with the learning inhibiting threshold ϑthinhibit. When the the throttle angle indicative signal value ϑth is smaller than or equal to the learning inhibiting threshold ϑthinhibit, check is performed whether a timer value tACC of a timer 150 in the control unit 100 is greater than or equal to a timer reference value tenable, at a step 1314. The timer reference value tenable represents possible maximum period required after recovery of stability after rapid acceleration. Namely, during rapid acceleration, part of the fuel injection through the fuel injection valve 6 flows on the inner periphery of the induction passage to influence of stability of the air/fuel ratio. This peripheral flow of the fuel may be maintained even after termination of the engine acceleration. Therefore, in order to avoid influence of unstability of the air/fuel radio during the engine acceleration period and subsequent period required for stabilization, it is better not to perform learning of the air density dependent uniform correction coefficient KALT.

    [0056] When the timer value tACC is greater than or equal to the timer reference value tenable as compared at, the KMAP learning cycle counter value CMAP is cleared at the step 1316. Then, at a step 1318, KALT learning sub-routine of Fig. 8 is triggered.

    [0057] On the other hand, when the throttle angle indicative signal value ϑth is smaller than the Q flat range threshold ϑthref as checked at the step 1308, when the throttle angle indicative signal value ϑth is greater than the learning inhibiting threshold ϑthinhibit or when the timer value tACC is smaller than the timer reference value tenable, the KALT learning cycle counter value CALT is cleared at a step 1320 and then a KMAP learning sub-routine of Fig. 9 id triggered at a step 1322.

    [0058] Fig. 8 shows the KALT learning sub-routine to be triggered at the step 1318 of the learning governing routine of Fig. 7. Here, as will be seen from Fig. 13, KALT learning is performed in the hatched area which is defined by the throttle angular position ϑth' the intake air flow rate Q and the engine speed. In the shown embodiment, the air density dependent uniform correction coefficient KALT is updated every occurrence of inversion of polarity of the oxygen concentration indicative signal Vox. Therefore, immediately after execution of the sub-routine of Fig. 8, the rich/lean inversion indicative flag FLINV which is set and reset through the steps 1214, 1220, 1234 and 1244 of the routine of Fig. 6, is checked, at a step 1402, so as to detect whether inversion of the rich/lean of the air/fuel mixture occurs or not. When the rich/lean inversion indicative flag FLINV is not set as checked at the step 1402, an updating indicative flag FLUPDATE to be set in a flag register 155 of the control unit 100, is reset, at a step 1404. Thereafter, the process directly goes END and returns to the background job. On the other hand, when the rich/lean inversion indicative flag FLINV is set as checked at the step 1402, the KALT learning cycle counter value CALT is incremented by one (1) at a step 1406. Then, the KALT learning cycle counter value CALT is checked at a step 1408. When the KALT learning cycle counter value CALT is 1 or 2 as checked at the step 1408, process goes to the step 1404 to reset the updating indicative flag FLUPDATE. Thereafter, process goes END. This is required for obtaining reliable air density dependent uniform correction coefficient KALT by deriving the coefficient based on a greater number of the feedback correction coefficient KLAMBDA.

    [0059] When the KALT learning cycle counter value CALT is 3, a first correction coefficient error value ELAMBDA₁ is derived at a step 1410. The first correction coefficient error value ELAMBDA₁ represents a difference between the feedback correction coefficient KLAMBDA and a coefficient reference value LAMBDAref, e.g. 1, and is temporarily stored in a memory block 143 of RAM 106. After this the updating flag FLUPDATE is reset at a step 1412. Thereafter, process goes END.

    [0060] It should be appreciated that, as shown in Fig. 10, first and second correction coefficient error value ELAMBDA₁ and ELAMBDA₂ represents upper and lower peaks of difference of the feedback correction coefficient KLAMBDA and the reference value, which peak values appear at zero-crossing of the the oxygen concentration indicative signal value Vox.

    [0061] On the other hand, when the KALT learning cycle counter value CALT is greater than or equal to 4, the second correction coefficient error value ELAMBDA₂ is derived on the basis of the instantaneous feedback correction coefficient KLAMBDA and the coefficient reference value LAMBDAref, at a step 1412. An average value LAMBDAave of the first and second correction coefficient error values ELAMBDA₁ and ELAMBDA₂ is then calculated at a step 1416.

    [0062] At a step 1418, the relevant air density dependent uniform correction coefficient KALT is read in terms of the engine speed data N and the basic fuel injection value Tp. Based on the average value LAMBDAave derived at the step 1416, read relevant air density dependent uniform correction coefficient KALT as read at the step 1418, is modified, at a step 1420. Modification of the engine driving range based correction coefficient KALT is performed by:





    where KALT' is a modified correction coefficient; and
       MALT is a constant determining the correction coefficient KALT modification rate, which is set in a value range of 0 < MALT < 1.

    [0063] The modified correction coefficient KALT' is temporarily stored in a temporary register 144. After the step 1420, the updating indicative flag FLUPDATE is set at a step 1422 and the second correction coefficient error value ELAMBDA₂ is set in the memory block 143 as the first correction coefficient error value ELAMBDA₁ for next cycle of execution, at a step 1424. Then, KALT learning counter value LKALT in a KALT learning counter 151 in RAM 106 is incremented by 1, at a step 1426. After the step 1426, process goes END.

    [0064] By providing the updating counter CALT, updating of the correction coefficient KALT in the KALT map is performed only when the learning routine is repeated four cycles or more under substantially the same engine driving condition in the same engine driving range.

    [0065] Fig. 9 shows a process for learning the engine driving range based learnt correction coefficient KMAP. As set forth above, learning of the correction coefficient is performed only when the control mode is FEEDBACK mode. Therefore, at a step 1502, check is performed whether the FEEDBACK condition indicative flag FLFEEDBACK is set or not. If the FEEDBACK condition indicative flag FLFEEDBACK is set as checked at the step 1502, check is performed whether the engine speed data N and the basic fuel injection amount Tp identifies the same engine driving range as that identified in the former execution cycle, at a step 1504. In practice, check in the step 1504 is performed by comparing the address data identifying corresponding memory block in the KMAP map. The address data identified by the engine speed data N and the basic fuel injection amount Tp is temporarily stored in a memory block 141 of RAM 106. When FEEDBACK condition indicative flag FLFEEDBACK is not set as checked at the step 1502 or when the address data as compared at the step 1504 do no match with the address data stored in the memory block 141 which means that the engine speed data N and the basic fuel injection amount Tp identifies different engine driving range than that identified in the former execution cycle, an updating counter 142 in the control unit 100 is reset to clear the KMAP learning cycle counter value CMAP, at a step 1506. At a step 1508, the updating indicative flag FLUPDATE is reset.

    [0066] On the other hand, when the address data compared the address data stored in the memory block 142 matches with the latter, the inversion indicative flag FLINV is checked at a step 1510. When the inversion indicative flag FLINV is not set as checked at the step 1510, process goes to the step 1508 to reset the updating indicative flag FLUPDATE.

    [0067] When the inversion indicative flag FLINV is set as checked at the step 1510, the KMAP learning cycle counter CMAP is incremented by 1, at a step 1512. After this, the KMAP learning cycle counter value CMAP is checked at a step 1514. This KMAP learning cycle counter CMAP serves to count up occurrence of updating of updating of the feedback correction coefficient KLAMBDA while the engine driving range is held in the one range.

    [0068] When the KMAP learning cycle counter value CMAP is 1 or 2, process goes to the step 1508. On the other hand, when the KMAP learning cycle counter value CMAP is 3, a first correction coefficient error value ELAMBDA₁ is derived at a step 1516. The first correction coefficient error value ELAMBDA represents a difference between the feedback correction coefficient KLAMBDA and a coefficient reference value LAMBDAref, e.g. 1, and is temporarily stored in a memory block 143 of RAM 106. After this the updating flag FLUPDATE is reset at a step 1518.

    [0069] After the process at the step 1508 or 1518, process goes END.

    [0070] On the other hand, when the KMAP learning cycle counter value CMAP is greater than or equal to 4, a second correction coefficient error value ELAMBDA₂ is derived on the basis of the instantaneous feedback correction coefficient KLAMBDA and the coefficient reference value LAMBDAref, at a step 1520. An average value LAMBDAave of the first and second correction coefficient error values ELAMBDA₁ and ELAMBDA₂ is then calculated at a step 1522.

    [0071] At a step 1524, the engine driving range based learnt correction coefficient KMAP is read in terms of the engine speed data N and the basic fuel injection value Tp. At a step 1526, the KALT learning counter value LKALT is read out from the KALT learning counter 151 and compared with a KALT learning threshold value LKALTref. When the KALT learning counter value LKALT is greater than or equal to the KALT learning threshold LKALTref, a KMAP modification rate indicative constant MMAP is set at a given first value, at a step 1528. On the other hand, when the KALT learning counter value LKALT is smaller than the KALT learning threshold LKALTref, a KMAP modification rate indicative constant MMAP is set at a given second value which is smaller than the first value at a step 1530.

    [0072] Based on the average value LAMBDAave derived at the step 1522 and the KMAP modification rate indicative constant MMAP as derived at the step 1528 or 1530, data of the engine driving range based learnt correction coefficient KMAP as read at the step 1524, is modified, at a step 1532. Modification of the engine driving range based correction coefficient KMAP is performed by:





    where KMAP' is a modified correction coefficient.

    [0073] The modified correction coefficient KMAP' is temporarily stored in a temporary register 144. After the step 1532, the updating indicative flag FLUPDATE is set at a step 1534 and the second correction coefficient error value ELAMBDA₂ is set in the memory block 143 as the first correction coefficient error value ELAMBDA₁ for next cycle of execution, at a step 1536.

    [0074] By providing the KMAP learning cycle counter CMAP, updating of the correction coefficient KMAP in the KMAP map is performed only when the learning routine is repeated four cycles or more under substantially the same engine driving condition in the same engine driving range.

    [0075] Fig. 11 shows a routine for automatically modifying the learnt uniform correction coefficient KALT during engine driving at substantially high engine speed and high engine load condition. Such automatic modification of the air density dependent uniform correction coefficient KALT becomes necessary when the engine is held at high speed and high load condition where FEEDBACK control is held inactive for a long period of time. Such engine driving condition tends to appear during hill or mountain climbing, for example.

    [0076] Immediately after starting execution, the faulty sensor indicative flag FLABNORMAL is checked at a step 1602. When the faulty sensor indicative flag FLABNORMAL is set as checked at the step 1602, a FEEDBACK OFF timer value TIM of a FEEDBACK OFF timer 152 is cleared at a step 1604. Thereafter, process goes END.

    [0077] On the other hand, when the faulty sensor indicative flag FLABNORMAL is not set as checked at the step 1602, the engine speed data N and the engine load data Tp are checked so as to check whether the engine is driven in high speed and high load condition, at a step 1606. In the practice, distinction of the engine driving condition is performed with respect to the air/fuel ratio FEEDBACK control criteria set with respect to the engine speed N and the engine load indicative basic fuel injection amount value Tp, as shown in Fig. 12. As will be seen from Fig. 12, when the engine driving condition as defined by the engine speed data N and the engine load Tp is out of the hatched region where air/fuel ratio FEEDBACK control is to be performed, judgement is to be made that the engine is in high speed and high load range. In the chart of Fig. 12, the high speed and high load range is set to include part of the engine medium speed and medium load range which is possible to perform air/fuel ratio FEEDBACK control and thus is possible to perform KALT learning during driving in high altitude area.

    [0078] When the engine driving condition as checked at the step 1606 is not the high speed and high load range, process goes to the step 1604 and subsequently goes END. On the other hand, when the engine driving condition is within high speed and high load range, the FEEDBACK OFF timer value TIM is incremented by one (1), at a step 1608. Then, the FEEDBACK OFF timer value TIM is compared with a predetermined FEEDBACK OFF timer threshold TIMref at a step 1610. If the FEEDBACK OFF timer value TIM is smaller than the FEEDBACK OFF timer threshold TIMref as checked at the step 1610, process goes END. On the other hand, when the FEEDBACK OFF timer value TIM is greater than or equal to the FEEDBACK OFF timer threshold TIMref, a given value KALTmodi is subtracted from the air density dependent uniform cirrection coefficient KALT, at a step 1612 for modification. After modifying the air density dependent uniform correction coefficient at the step 1612, the FEEDBACK OFF timer value TIM is cleared at a step 1614. Then, process goes END.

    [0079] As will be appreciated herefrom, according to the shown process to be performed by the preferred embodiment of the air/fuel ratio control system, according to the invention, air density dependent uniform correction coefficient can be learnt even at high speed and high load engine driving condition so as to follow the air/fuel mixture ratio control to the air density at any environmental condition.

    [0080] Figs. 14 and 15 shows a modification of the KMAP learning routine, which modification is intended to divide correction coefficient error value ELAMBDA to be used in derivation of the engine driving range based learnt correction coefficient KMAP into first altitude dependent component and second component depending on other factors in order to introduce fuzzy inference factor in air/fuel ratio control.

    [0081] In Figs. 14 and 15, there is shown a sequence of routine for learning the engine driving range based learnt correction coefficient KMAP. As set forth above, learning of the correction coefficient is performed only when the control mode is FEEDBACK mode. Therefore, at a step 1702, check is performed whether the FEEDBACK condition indicative flag FLFEEDBACK is set or not. If the FEEDBACK condition indicative flag FLFEEDBACK is set as checked at the step 1702, check is performed whether the engine speed data N and the basic fuel injection amount Tp identifies the same engine driving range as that identified in the former execution cycle, at a step 1704. In practice, check in the step 1704 is performed by comparing the address data identifying corresponding memory block in the KMAP map. The address data identified by the engine speed data N and the basic fuel injection amount Tp is temporarily stored in a memory block 141 of RAM 106. When FEEDBACK condition indicative flag FLFEEDBACK is not set as checked at the step 1702 or when the address data as compared at the step 1704 do no match with the address data stored in the memory block 141 which means that the engine speed data N and the basic fuel injection amount Tp identifies different engine driving range than that identified in the former execution cycle, an updating counter 142 in the control unit 100 is reset to clear the KMAP learning cycle counter value CMAP, at a step 1706. At a step 1708, the updating indicative flag FLUPDATE is reset.

    [0082] On the other hand, when the address data compared the address data stored in the memory block 142 matches with the latter, the inversion indicative flag FLINV is checked at a step 1710. When the inversion indicative flag FLINV is not set as checked at the step 1710, process goes to the step 1708 to reset the updating indicative flag FLUPDATE.

    [0083] When the inversion indicative flag FLINV is set as checked at the step 1710, the KMAP learning cycle counter CMAP is incremented by 1, at a step 1712. After this, the KMAP learning cycle counter value CMAP is checked at a step 1714. This KMAP learning cycle counter CMAP serves to count up occurrence of updating of updating of the feedback correction coefficient KLAMBDA while the engine driving range is held in the one range.

    [0084] When the KMAP learning cycle counter value CMAP is 1 or 2, process goes to the step 1708. On the other hand, when the KMAP learning cycle counter value CMAP is 3, a first correction coefficient error value ELAMBDA₁ is derived at a step 1716. The first correction coefficient error value ELAMBDA represents a difference between the feedback correction coefficient KLAMBDA and a coefficient reference value LAMBDAref, e.g. 1, and is temporarily stored in a memory block 143 of RAM 106. After this the updating flag FLUPDATE is reset at a step 1718.

    [0085] After the process at the step 1708 or 1718, process goes END.

    [0086] On the other hand, when the KMAP learning cycle counter value CMAP is greater than or equal to 4, a second correction coefficient error value ELAMBDA₂ is derived on the basis of the instantaneous feedback correction coefficient KLAMBDA and the coefficient reference value LAMBDAref, at a step 1720. An average value LAMBDAave of the first and second correction coefficient error values ELAMBDA₁ and ELAMBDA₂ is then calculated at a step 1722.

    [0087] The average value LAMBDAave may includes the first altitude dependent component and the second component depending upon other factors. Therefore, in the shown process, a ratio k of the first component versus the second component is derived through steps 1724 through 1734 which will be discussed later.

    [0088] At the step 1724, a throttle angle dependent first component ratio indicative value k₁ is derived in terms of the throttle angle indicative signal value ϑth utilizing a k₁ map 153 set in ROM 104. This k₁ table 153 contains experimentarily obtained values, which becomes greater at greater throttle open angle range, as shown in the block of the step 1724 in Fig. 15. This k₁ value corresponds to membership coefficient in fuzzy inference. Since the influence to the air/fuel ratio fluctuation of error in fuel injection amount, error in measurement of the throttle angle position, tolerance of various components and so forth is relatively great in engine low load condition, the k₁ ratio representing ratio of the first altitude dependent component versus the second component depending on the other factor is held small. Since the influence of the second component to the air/fuel ratio fluctuation becomes smaller in the engine high load range, the influence of the altitude become greater as shown.

    [0089] Though the shown embodiment employs the throttle angle position as a factor representing the engine load condition, it may possible to take other equivalent factor, such as basic fuel injection amount Tp, the intake air flow rate Q. Furthermore, the k₁ value may also be derived in terms of a combination of the engine speed and the engine load.

    [0090] At a step 1726, number of KMAP table areas which is recently updated is checked for a given number of most recently updated areas. In the process of the step 1726, polarities of differences between previously set values and the updated values in respective of the KMAP table areas to be checked, are detected. Namely, when the engine driving range based learnt correction coefficient KMAP is increased in updating, the polarity of the difference becomes positive, and, on the other hand, when the the engine driving range based learnt correction coefficient KMAP is decreased in updating, the polarity of the difference becomes negative. The area in which the positive difference is detected will be hereafter referred to as "positive difference area" and the area in which the negative difference is detected will be hereafter referred to as "negative difference area". In operation of the step 1726, numbers of the positive difference areas and the negative difference areas are counted. One of the greater number of the positive difference area number and the negative difference area number is taken as a same difference polarity area number A₁. Based on the same difference polarity area number A₁ as derived at the step 1726, a second component ratio indicative value k₂ is derived by utilizing a k₂ map 154 in ROM 104, at a step 1728. As will be seen in the block 1728 of Fig. 15, the second component ratio indicative value k₂ increases according to increasing of the same difference polarity area number A₁. Namely, during up-hill driving or down-hill driving, updating area tends to incline to one of the the positive difference areas and the negative difference area. For instance, during up-hill driving where altitude is gradually increased and air density is gradually decreased, number of the negative difference areas becomes substantially greater than that of the positive difference areas. On the other hand, during downhill driving, the number of positive difference areas is increased to be substantially greater than the negative difference area.

    [0091] At a step 1730, number of KMAP areas having the same polarity with respect to a reference value (0). Namely, number of the positive polarity areas and number of the negative polarity areas are compared. Greater number of one of the positive polarity areas and the negative polarity areas will be taken as same polarity area number A₂. Based on this same polarity area number A₂, a third component ratio indicative value k₃ is determined at a step 1732, by utilizing k₃ map 154 set in ROM 104. At the high altitude region, the air/fuel ratio tends to be richer due to lower air density to cause increasing of lean-side correction coefficient. Therefore, in such high altitude region, negative polarity area tends to be increased. In the alternative, at low altitude region, the air/fuel ratio tends to become leaner due to higher air density to require richer-side air/fuel ratio control. Therefore, in this region, positive polarity area is increased. In this view, the k₃ map is designed to increase the value according to increasing of the same polarity area number A₂.

    [0092] After the step 1732, an average component ratio value which serves as a fuzzy control coefficient k, is derived by obtaining average value of the first, second and third component ratio indicative values k₁, k₂ and k₃, at a step 1734.

    [0093] At a step 1736, the air density dependent uniform correction coefficient KALT is read. Based on the average value LAMBDAave derived at the step 1722 and the fuzzy control coefficient k as derived at the step 1734, data of the air density dependent uniform correction coefficient KALT as read at the step 1736, is modified, at a step 1738. Modification of the air density dependent uniform correction coefficient KALT is performed by:





    where KALT' is a modified correction coefficient.

    [0094] The modified correction coefficient KALT' is temporarily stored in a temporary register 144.

    [0095] At a step 1740, the engine driving range based learnt correction coefficient KMAP is read in terms of the engine speed data N and the basic fuel injection value Tp. Based on the average value LAMBDAave derived at the step 1722 and the fuzzy control coefficient k as derived at the step 1734, data of the engine driving range based learnt correction coefficient KMAP as read at the step 1740, is modified, at a step 1742. Modification of the engine driving range based correction coefficient KMAP is performed by:





    where KMAP' is a modified correction coefficient.

    [0096] The modified correction coefficient KMAP' is temporarily stored in a temporary register 144. After the step 1742, the updating indicative flag FLUPDATE is set at a step 1744 and the second correction coefficient error value ELAMBDA₂ is set in the memory block 143 as the first correction coefficient error value ELAMBDA₁ for next cycle of execution, at a step 1746.

    [0097] By the modifies process shown in Figs. 14 and 15, fuzzy control feature can be introduced in learning of the air density dependent uniform correction coefficient KALT.

    [0098] It should be appreciated that, though the shown embodiment takes three component ratio indicative values k₁, k₂ and k₃, fuzzy control feature may be introduced in derivation of the air density dependent uniform correction coefficient KALT by utilizing two of three values.


    Claims

    1. Method for controlling a mixture ratio of an air/fuel mixture for an engine, comprising the steps of:

       monitoring (1002) preselected basic first engine operation parameter to produce a first sensor signal indicative thereof;

       monitoring (1204) an air/fuel mixture ratio indicative parameter (Vox) for producing a second sensor signal indicative of a deviation of the air/fuel mixture from a stoichiometric value;

       deriving (1002, 1006) a basic fuel metering amount (Tp) on the basis of said first sensor signal value;

       deriving (1008) an air/fuel ratio dependent correction factor (COEF) from said second sensor signal value;

       deriving (1610) a first correction coefficient (KALT) on the basis of said air/fuel ratio dependent correction factor (COEF), which first correction coefficient is commonly applicable for correcting said basic fuel metering amount (Tp) in all engine driving ranges, said step (1610) comprising the updating of the first correction coefficient (KALT) when a feedback condition is satisfied;

       deriving (1012) a second correction coefficient (KMAP) which is variable depending upon the engine driving range on the basis of said air/fuel ratio dependent correction factor (COEF) and setting a plurality of second correction coefficients (KMAP) for respective engine driving ranges and updating each of said second correction coefficients with an instantaneous value derived based on said air/fuel ratio dependent correction factor in the corresponding engine driving range;

       detecting (1002-1014) an engine driving condition on the basis of said first sensor values and governing said steps (1610, 1012) of deriving said first and second correction coefficients (KALT, KMAP) depending upon the detected engine driving condition; and

       correcting (1018, 1020) said basic fuel metering amount (Tp) with said first and second correction coefficients (KALT, KMAP)

    characterized in

       that the step of deriving the first correction coefficient (KALT) further comprises the steps of:

    - determining (1724) a first component ratio indicative value (k1) based on at least one of an engine load indicative signal (α, Q), a basic fuel injection amount (Tp) and the engine speed (N);

    - determining a predetermined number of engine driving ranges for which the second correction coefficient (KMAP) was recently updated;

    - detecting (1726) for each range the difference between a present second correction coefficient (KMAP) and a previous one for distinguishing between positive difference regions, where the difference between the present and the previous second correction coefficient (KMAP) for this region is positive, and negative difference regions;

    - determining (1726-1732) a second component ratio indicative value (k2) based on the number of positive and/or negative difference regions; and

    - modifying (1732-1736) the first correction coefficient (KALT) based on said first and second component ratio indicative values (k1, k2).


     
    2. Method as claimed in claim 1, characterized in

       that the step of detecting second component ratio indicative value comprises the steps of:

    - counting (1726) the numbers of positive difference regions and negative difference regions, and

    - deriving (1728) the second component ratio indicative value (k2) based on the greater number (A1) among these numbers.


     
    3. Method as claimed in claim 2, characterized by

       the step of deriving a third component ratio indicative value (k3) based on the number (A2) of positive or negative difference regions having the same polarity as a reference value;

       wherein the step of modifying the first correction coefficient (KALT) is also based on the third component ratio indicative value (K3).
     
    4. Method as claimed in claim 3, characterized in

       that the step of modifying the first correction coefficient (KALT) comprises:

    - determining a fuzzy correction coefficient (K) based on said first, second and third component ratio indicative values (k1, k2, k3).


     
    5. An air/fuel ratio control system comprising:

       an air/fuel mixture induction system (6, 14) for introducing an intake air and a controlled amount (Ti) of fuel to an engine;

       a first sensor means (15, 17) for monitoring a preselected basic first engine operation parameter to produce a first sensor signal indicative thereof;

       a second sensor means (20) for monitoring a air/fuel mixture ratio indicative parameter for producing a second sensor signal indicative of deviation of the air/fuel mixture from a stoichiometric value;

       third means (1002-1006) for deriving a basic fuel metering amount on the basis of said first sensor signal value;

       fourth means (1008) for deriving an air/fuel ratio dependent correction factor (COEF) from said second sensor signal value;

       fifth means (1610) for deriving a first correction coefficient (KALT) on the basis of said air/fuel ratio dependent correction factor (COEF), which first correction coefficient is commonly applicable for correction of said basic fuel metering amount in all engine driving ranges, said fifth means (1610) updating said first correction coefficient when a feedback condition is satisfied;

       a sixth means (1012) for deriving a second correction coefficient (KMAP) which is variable depending upon the engine driving range on the basis of said air/fuel ratio dependent correction factor (COEF), said sixth means setting a plurality of said second correction coefficients (KMAP) for respective engine driving ranges and updating each of said second correction coefficients with an instantaneous value derived based on said air/fuel ratio dependent correction factor in the corresponding engine driving range;

       a seventh means (1002-1004) for detecting an engine driving condition on the basis of said first sensor signal values and governing said fifth and sixth means (1610, 1012) depending upon the detected engine driving condition; and

       an eighth means (1018, 1020) for correcting said basic fuel metering amount with said first and second correction coefficients (KALT, KMAP);

    characterized in

       that said fifth means (1610) for deriving the first correction coefficient (KALT) further comprises:

    - means (1724) for determining a first component ratio indicative value (k1) based on at least one of an engine load indicative signal (α ,Q), a basic fuel injection amount (Tp) and the engine speed (N);

    - means for determining a predetermined number of engine driving ranges for which the second correction coefficient (KMAP) was recently updated;

    - means (1726) for determining for each range the difference between a present second correction coefficient (KMAP) and a previous one for distinguishing between positive difference regions, where the difference between the present and the previous second correction coefficient (KMAP) for this region is positive, and negative difference regions;

    - means (1726-1732) for determining the second component ratio indicative value (k2) based on the number of positive and/or negative difference regions; and

    - means (1732-1736) for modifying the first correction coefficient (KALT) based on said first and second component ratio indicative values (k1, k2).


     




    Drawing