EP0106366B1 - Control method for internal combustion engines - Google Patents

Control method for internal combustion engines Download PDF

Info

Publication number
EP0106366B1
EP0106366B1 EP83110424A EP83110424A EP0106366B1 EP 0106366 B1 EP0106366 B1 EP 0106366B1 EP 83110424 A EP83110424 A EP 83110424A EP 83110424 A EP83110424 A EP 83110424A EP 0106366 B1 EP0106366 B1 EP 0106366B1
Authority
EP
European Patent Office
Prior art keywords
fuel
task
engine
acceleration
value
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.)
Expired
Application number
EP83110424A
Other languages
German (de)
French (fr)
Other versions
EP0106366A3 (en
EP0106366A2 (en
Inventor
Mineo Kashiwaya
Kiyomi Morita
Masahide Sakamoto
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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
Priority claimed from JP57182904A external-priority patent/JPS5974339A/en
Priority claimed from JP18290282A external-priority patent/JPS5974337A/en
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of EP0106366A2 publication Critical patent/EP0106366A2/en
Publication of EP0106366A3 publication Critical patent/EP0106366A3/en
Application granted granted Critical
Publication of EP0106366B1 publication Critical patent/EP0106366B1/en
Expired legal-status Critical Current

Links

Images

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/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
    • F02D41/263Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor the program execution being modifiable by physical parameters
    • 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/04Introducing corrections for particular operating conditions
    • F02D41/10Introducing corrections for particular operating conditions for acceleration
    • F02D41/105Introducing corrections for particular operating conditions for acceleration using asynchronous injection

Definitions

  • the invention relates to a control method for internal combustion engines according to the pre-characterizing parts of the independent claims 1 and 2.
  • a general purpose software that is a software in which correction, modification or addition can be effected onto the various control functions depending on the kind/use of car, is required in view of improvement in cost and/or in controllability.
  • the amount of suction air in an engine has been indirectly detected on the basis of the pressure in a suction manifold, or the total amount of sucked air per suction stroke has been obtained by directly detecting the air flow rate.
  • the accuracy is poor, the variations and/or deterioration in performance of engine may affect the detection, and the responsibility is not so good.
  • the latter method also has a disadvantage that a flow rate sensor having high accuracy (error: within +1% of read value) and a wide dynamic range (1:50) is required, resulting in increase in cost.
  • a hot-wire air flow rate sensor hereinafter referred to as a hot-wire sensor because the hot-wire sensor has a characteristic allowing a wide dynamic range and reduction in cost can be expected.
  • the suction air flow rate in engine is not constant but has pulsations, so that the output signal from the flow rate sensor has a non-linear characteristic with respect to the suction air flow, it becomes necessary to obtain the air flow rate in suction stroke in the form of integration of instantaneous air flow rates, and complex operations are required for the integration. That is, the hot-wire output voltages v shown in Fig. 1 can be obtained according to the following equation (1): where q A represents the mass flow rate and C" C 2 represent constants determined by the shape of intake manifold etc.
  • the amount of fuel injection Q F for one suction stroke can be expressed by the following equation (7): where N represents the number of engine revolution and k a constant. This means that the amount of fuel injection Q F for one stroke can be determined on the basis of the obtained value of Q A and the number of engine revolution N.
  • the basic fuel injection amount Q F can be obtained in such a manner as described above, acceleration cannot be smoothly effected by using only the thus obtained basic fuel injection amount Q F when acceleration becomes necessary, because of delay in computation of the value Q A , etc.
  • the US-A-4184485 therefore proposed, to compensate the basic fuel injection amount upon the detection of the state of acceleration on the basis of the change in the mean air flow rate Q A or the intake air pressure.
  • the air flow rate Q A has pulsations as described above and an error may occur in detection of the state of acceleration. This applies to the case of decelerating operation. Therefore, the state of acceleration or deceleration should be advantageously detected on the basis of the detection of the opening of the throttle valve.
  • the throttle opening TH is sampled at a predetermined regular interval of time, for example every 10 msec, (by interval interruption) so that the sampling value TH at present is compared every 10 msec with the sampling value TH(OLD) to botain the difference ATH therebetween (EP-A-0047969).
  • the engine is in the state of acceleration when ⁇ TH>0.
  • the additional fuel injection has been performed at the time of acceleration in accordnce with the predetermined condition of the throttle opening change rate regardless of the operating conditions such as the engine speed or load.
  • the basic amount of fuel injection at low engine speed is smaller than that at high engine speed, it is difficult to accelerate the car sufficiently when the engine speed is low just before acceleration. This is because, at low engine speed, the basic amount of fuel injection is so small that it takes some time to wet the intake manifold well thereby making the fuel air mixture lean at the beginning of acceleration. This is also the case with the acceleration from an idle or decelerating state.
  • the US ⁇ A ⁇ 4 227 490 discloses an electronic control fuel injection system which compensates for fuel drying in an intake passage.
  • a small load operation is detected by a throttle switch.
  • a pulse width of a fuel injection pulse is prolonged for a predetermined time.
  • the pulse width is not modified in accordance with both the load or the engine speed.
  • the GB-A-20 30 730 discloses a correction of the basic fuel amount on the basis of an acceleration enrichment which is responsible to the operating condition of the engine before the acceleration such as the engine rotational speed and the amount of sucked air.
  • Claim 3 includes features characterizing an advantageous development of claim 1 or 2.
  • a control apparatus for the whole of an engine system is illustrated.
  • suction air is supplied to a cylinder 8 through an air cleaner 2, a throttle chamber 4, and a suction pipe 6.
  • a gas burnt in the cylinder 8 is discharged from the cylinder 8 to the atmosphere through an exhaust pipe 10.
  • An injector 12 for injecting fuel is provided in the throttle chamber 4. The fuel injected from the injector 12 is atomized in an air path of the throttle chamber 4 and mixed with the suction air to form a fuel-air mixture which is in turn supplied to a combustion chamber of the cylinder 8 through the suction pipe 6 when a suction valve 20 is opened.
  • Throttle valves 14 and 16 are provided.in the vicinity of the output of the injector 12.
  • the throttle valve 14 is arranged so as to mechanically interlocked with an accelerator pedal (not shown) so as to be driven by the driver.
  • the throttle valve 16 is arranged to be driven by a diaphragm 18 such that it becomes its fully close state in a range where the air flow rate is small, and as the air flow rate increases the negative pressure applied to the diaphragm 18 also increases so that the throttle valve 16 begins to open, thereby suppressing the increase of suction resistance.
  • An air path 22 is provided at the upper stream of the throttle valves 14 and 16 of the throttle chamber 4 and an electrical heater 24 constituting a thermal air flow rate meter is provided in the air path 22 so as to derive from the heater 24 and electric signal which changes in accordance with the air flow velocity which is determined by the relation between the air flow velocity and the amount of heat transmission of the heater 24.
  • the heater 24 Being provided in the air path 22, the heater 24 is protected from the high temperature gas generated in the period of back fire of the cylinder 8 as well as from the pollution by dust or the like in the suction air.
  • the outlet of the air path 22 is opened in the vicinity of the narrowest portion of the venturi and the inlet of the same is opened at the upper stream of the venturi.
  • Throttle opening sensors (not shown in Fig. 3 but generally represented by a throttle opening sensor 116 in Fig. 5) are respectively provided in the throttle valves 14 and 16 for detecting the opening thereof and the detection signals from these throttle opening sensors, that is the sensor 116, are taken into a multiplexer 120 of a first analog-to-digital converter as shown in Fig. 5.
  • the fuel to be supplied to the injector 12 is first supplied to a fuel pressure regulator 38 from a fuel tank 30 through a fuel pump 32, a fuel damper 34, and a filter 36. Pressurized fuel is supplied from the fuel pressure regulator 38 to the injector 12 through a pipe 40 on one hand and fuel is returned on the other hand from the fuel pressure regulator 38 to the fuel tank 30 through a return pipe 42 so as to maintain constant the difference between the pressure in the suction pipe 6 into which fuel is injected from the injector 12 and the pressure of the fuel supplied to the injector 12.
  • the fuel-air mixture sucked through the suction valve 20 is compressed by a piston 50, burnt by a spark produced by an ignition plug 52, and the combustion is converted into kinetic energy.
  • the cylinder 8 is cooled by cooling water 54, the temperature of the cooling water is measured by a water temperature sensor 56, and the measured value is utilized as an engine temperature.
  • a high voltage is applied from an ignition coil 58 to the ignition plug 52 in agreement with the ignition timing.
  • a crank angle sensor (not shown) for producing a reference angle signal at a regular interval of predetermined crank angles (for example 180 degrees) and a position signal at a regular interval of a predetermined unit crank angle (for example 0.5 degrees) in accordance with the rotation of engine, is provided on a not-shown crank shaft.
  • the output of the crank angle sensor, the output 56A of the water temperature sensor 56, and the electrical signal from the heater 24 are inputted into a control circuit 64 constituted by a microcomputer or the like so that the injector 12 and the ignition coil 58 are driven by the output of this control circuit 64.
  • a bypass 26 bypassing the throttle valve 16 to communicate with the suction pipe 6 is provided and a bypass valve 62 is provided in the bypass 26.
  • a control signal is inputted to a drive scetion of the bypass valve 62 from the control circuit 64 to control the opening of the bypass valve 62.
  • the opening of the bypass valve 62 is controlled by a pulse current such that the cross-sectional area of the bypass 26 is changed by the amount of lift of valve which is in turn controlled by a drive system driven by the output of the control circuit 64. That is, the control circuit 64 produces an open/close period signal for controlling the drive system so that the drive system responds to this open/close period signal to apply a control signal for controlling the amount of lift of the bypass valve 62 to the drive section of the bypass valve 62.
  • a pulse current is supplied to a power transistor 72 through an amplifier 68 to energize this transistor 72 so that a primary coil pulse current flows into an ignition coil 58 from a battery 66.
  • the transistor 74 is turned off so as to generate a high voltage at the secondary coil of the ignition coil 58.
  • This high voltage is distributed through a distributor 70 to ignition plugs 52 provided at the respective cylinders in the engine, in synchronism with the rotation of the engine.
  • a predetermined negative pressure of a negative pressure source 80 is applied to an EGR control valve 86 through a pressure control valve 84.
  • the pressure control valve 84 controls the ratio with which the predetermined negative pressure of the negative pressure source is released to the atmosphere 88, in response to the ON duty factor of the repetitive pulse applied to a transistor 90, so as to control the state of application of the negative pressure pulse to the EGR control valve 86. Accordingly, the negative pressure applied to the EGR control valve 86 is determined by the ON duty factor of the transistor 90 per se.
  • the amount of EGR from the exhaust pipe 10 to the suction pipe 6 is controlled by the controlled negative pressure of the pressure control valve 84.
  • Fig. 5 is a diagram showing-the whole configuration of the control system which is constituted by a central processing unit (hereinafter abbreviated as CPU) 102, a read only memory (hereinafter abbreviated as a ROM) 104, a random access memory (hereinafter abbreviated as RAM) 106, and an input/output (hereinafter abbreviated as I/O) circuit 108.
  • the CPU 102 operates input date from the I/O circuit 108 in accordance with various program stored in the ROM 104 and returns the result of operation to the I/0 circuit 108. Temporary data storage necessary for such an operation is performed by using the RAM 106. Exchange of various data among the CPU 102, the ROM 104, the RAM 106, and the I/O circuit 108 is performed through a bus line 110 constituted by a data bus, a control bus, and an address bus.
  • a bus line 110 constituted by a data bus, a control bus, and an address bus.
  • the I/O circuit 108 includes input means such as the above-mentioned first analog-to-digital converter (hereinafter abbreviated as ADC1), a second analog-to-digital converter (hereinafter abbreviated as ADC2), an angular signal processing circuit 126, and a discrete I/0 circuit (hereinafter abbreviated as DIO) for inputting/outputting one bit information.
  • ADC1 first analog-to-digital converter
  • ADC2 second analog-to-digital converter
  • DIO discrete I/0 circuit
  • the digital value of the output of the ADC 122 is stored in a register (hereinafter abbreviated as REG) 124.
  • An output signal of an air flow rate sensor (hereinafter abbreviated as AFS) 24 is inputted to the ADC2 in which the signal is A/D converted in an ADC 128 and set in a REG 130.
  • AFS air flow rate sensor
  • An angle sensor (hereinafter abbreviated as ANGS) 146 produces a reference signal representing a reference crank angle (hereinafter abbreviated as REF), for example as a signal generated at an interval of 180 degrees of crank angle, and a position signal representing a small crank angle (hereinafter abbreviated as POS), for example 1 (one) degree.
  • REF reference crank angle
  • POS position signal representing a small crank angle
  • IDLE-SW idle switch 148
  • TOP-SW top gear switch
  • START-SW starter switch
  • An injector circuit (hereinafter abbreviated as INJC) 134 is provided for converting the digital value of the result of operation into a pulse output. Accordingly, a pulse having a pulse width corresponding to the amount of fuel injection is generated in the INJC 134 and applied to the injector 12 through an AND gate 136.
  • An ignition pulse generating circuit (hereinafter abbreviated as IGNC) 138 includes a register (hereinafter referred to as ADV) for setting ignition timing and another register (hereinafter referred to as DWL) for setting initiating timing of the primary current conduction of the ignition coil 58 and these data are set by the CPU 102.
  • the ignition pulse generating circuit 138 produces a pulse on the basis of the thus set data and supplies this pulse through an AND gate 140 to the amplifier 68 described in detail with respect to Fig. 3.
  • the rate of opening of the bypass valve 62 is controlled by a pulse supplied thereto by a control circuit (hereinafter referred to as ISCC) 142 through an AND gate 144.
  • the ISCC 142 has a register ISCD for setting a pulse width and another register ISCP for setting a repetitive pulse period.
  • the output pulse of the EGRC 154 is applied to the transistor 90 through an AND gate 156.
  • the one-bit I/0 signals are controlled by the circuit DIO.
  • the I/O signals include the respective output signals of the IDLE-SW 148, the TOP-SW 150 and the START-SW 152 as input signals, and include a pulse signal for controlling the fuel pump 32 as an output signal.
  • the DIO includes a register DDR for determining whether a terminal be used as a data inputting one or a data outputting one, and another register DOUT for latching the output data.
  • a register (hereinafter referred to as MOD) 160 is provided for holding commands instructing various internal states of the I/0 circuit 108 and arranged such that, for example, all the AND gates 136, 140, 144, and 156 are turned on/off by setting a command into the NOD 160.
  • the stoppage/start of the respective outputs of the INJC 134, IGNC 138, and ISCC 142 can be thus controlled by setting a command into the MOD 160.
  • Fig. 6 is a diagram illustrating a basic configuration of a program system of the control circuit of Fig. 6.
  • an initial processing program 202 is for executing preprocessing for causing a microcomputer to operate.
  • the initial processing program 202 for example, the contents of storage of the RAM 106 is cleared, the initial values of registers in the I/O interface circuit 108 are set, and processing for taking-in data, such as the cooling water temperature Tw, the battery voltage, for performing the preprocessing necessary for performing the engine control is executed.
  • the interruption processing program 206 receives various interruptions, analyzes the factors of the interruptions, and produces a request for causing a desired one of tasks 210 and 226 to the task dispatacher 208.
  • the interruption factors include an A/D conversion interruption (ADC) generated upon the completion of A/D conversion of the input data such as the power source voltage, the cooling water temperature as described later, an initial interruption (INTL) generated in synchronism with the engine revolution, an interval interruption (INTV) generated at a predetermined interval of time, for example every 10 msec, an engine stoppage interruption (ENST) generated upon the detection of the engine stoppage, or the like.
  • ADC A/D conversion interruption
  • INTL initial interruption
  • INTV interval interruption
  • ENST engine stoppage interruption
  • Task numbers representing priority are allotted to the tasks 210 to 226, and the respective tasks belong to any one of the task levels "0", "1", and "2". That is, the task Nos. 0 to 2 belong to the task level "0", the task Nos. 3 to 5 belong to the task level "1", and the task Nos. 6 to 8 belong to the task level "2".
  • the task dispatcher 208 Upon the reception of the activation requests by the above-mentioned various interruptions, the task dispatcher 208 responds to the activation requests to allot occupation time onto the CPU to the respective tasks in accordance with the priority rank attached to the respective tasks correspondnig to the activation requests.
  • the task priority control by the task dispatcher 208 is performed by the following method:
  • FIG. 7 shows task blocks of the same number as that of the task levels, that is three in this embodiment since there are three task levels "0" to "2", are provided in the RAM controlled by the dispatcher 208.
  • Eight bits are allotted to each control block.
  • Three of the eight bits, that is 0-th to 2nd bits (Q 0 ⁇ Q 2 ) are the activation bits for performing activation request task indication and the 7-th bit (R) is used for execution bit for indicating whether any one of the same task level is being executed or being interrupted.
  • the activation bits Q 0 ⁇ Q 2 are arranged in the order of decreasing the priority rank.
  • the activation bit corresponding to the task No. 4 in Fig. 6 is Q 0 in the task level "1".
  • a flag "1" is set to any one of the activation bits, and at the same time the task dispatcher 208 searches for the issued activation request in the activation bits in the order from the activation bit corresponding to the task of higher level so that the flag corresponding to the issued activation request is reset and flag "1" is set to the execution bit to thereby execute the processing for activating the task corresponding thereto.
  • Fig. 8 shows an activation address table provided in the RAM 106 controlled by the task dispatcher 208.
  • SAO to SA8 represent the activation addresses correspond to the task Nos. 0 to 8 of the tasks 210 to 226 as shown in Fig. 6.
  • Sixteen bits are allotted to each activation address information which is used for the task dispather 208, as described later, to activate the task corresponding to the issued activation request.
  • Figs. 9 and 10 show flowcharts for the processing performed by the task dispatcher 208.
  • judgement is made as to whether the tasks belonging to the task level I are being exeucted or interrupted in a step 302. That is, if flag "1" is detected in the execution bit, the flag "1" indicates the state that the macro processing program 228 does not yet issue the task completion information to the task dispatcher 208 and the task which had been executed is being interrupted because interruption of higher priority rank has been generated. Accordingly, if flag "1" is detected in the execution bit, the processing is jumped to a step 314 in which the interrupted task is reactivated.
  • the processing is shifted to the step 304 in which judgement is made as to whether there is any task waiting for activation in the level I. That is, the activation bits in the level I are searched for in the order of decreasing the priority rank of the tasks corresponding to the activation bits, that is in the order of Q o , Q, and Q 2 . If no flag "1" is detected in any one of the activation bits belonging to the level 1, the processing comes to a step 306 in which the task level is altered. That is, the task level I is incremented by +1 so as to be I+1.
  • the processing comes to a step 308 in which judgement is made as to whether all the task levels have been checked. In the case where all the task levels have been not yet checked, that is, when 1 ⁇ 2 in this embodiment, the processing comes back to the step 302 and the above-mentioned processing is repeated. In the case where the result of judgement proves that all the task levels have been checked in the step 308, the processing comes to a step 310 in which inhibit to interruption is released because interruption has been inhibited during the processing in the steps 302 to 308. Thereafter, in the next step 312, next issued interruption is waited for.
  • step 400 If there is a task waiting for activation in the level I in the step 304, that is if flag "1" is detected in one of the activation bits belonging to the task level the processing comes to a step 400.
  • search is made as to which one of the activation bits in which one of the task levels is provided with flag "1", in the order of decreasing the priority rank of the task levels, that is in the order of Q o , Q i , and Q 2 .
  • the processing comes to a step 404 in which the activation bit provided with flag "1” is reset and flag "1" is set to the execution bit (hereinafter referred to R) of the same task level.
  • step 406 the number of the activated task is detected, and in a step 408, the activation address information as to the activated task is derived in accordance with the activation address table provided in the RAM as shown in Fig. 8.
  • a step 410 judgement is made as to whether the activated task be executed or not.
  • the necessity of the execution is judged on the basis of the value of the activation address information. That is, when the activation address information has a specific value, for example "0", the judgement is such that the execution is not necessary. It is necessary to provide this judgement step in order to cause a car to have a function of performing only a specific one of the task functions for performing engine control selected depending on the kind of the car.
  • the processing comes to a step 414 in which the R-bit of the specific task level I is reset. Then, the processing comes back to the step 302 in which judgment is made as to whether the task level I is being interrupted or not. This is because there may be a case where a plurality of activation bits are provided with flag "1".
  • the processing comes to a step 412 in which jump is made to the specific task so as to execute the task.
  • Fig. 11 shows a flowchart for processing the macro processing program 228.
  • This program is constituted by steps 562 and 564.
  • the task levels are searched in the order of increasing the task level, that is in the order from the level "0" so as to find completed task level or levels.
  • the processing comes to a step 568 in which the execution (RUN) flag provided in the 7th bit in the task control block of the completed task is reset.
  • the execution of the task has been completed.
  • the processing comes back to the task dispatcher 208 in which the next execution task is determined.
  • the execution is shifted to the control program OS and after predetermined processing has been performed as already described, the execution of the task corresponding to the activation request N 01 , that is the execution of the task No. 0, is initiated at the time T 3 .
  • the execution is once shifted to the control program OS and after a predetermined processing has been executed, the execution of the task No. 0 which has been so far interrupted is restarted at the time T s .
  • the execution is shifted again to the control program OS, the completion of execution of the task No.
  • the execution of the CPU is shifted to the control program OS, the completion of execution of the task No. 3 is reported by the macro program 228 to the task dispatcher 208, the execution of the task No. 4 corresponding to the activation request N 12 of lower priority rank is initiated at the time T 11 , the execution is shifted to the control program OS upon the completion of execution of the task No. 4 at the time T 12 , and after a predetermined processing has been performed the execution of the task No. 6 which corresponds to the activation request N 2 , and which has been so far interrupted is restarted at the time T 13 .
  • the task priority control is performed in the manner as described above.
  • the state of transition in the task priority control is illustrated in Fig. 13 "Idle" represents the state in which activation is waited for an no task activation request has been issued. Then, if an activation request is issued, flag "1" is set to the activation bit of the task control block so as to indicate the necessity of activation.
  • the time required for shifting from the state “Idle” to the state “Queue” is determined by the level of the respective task. In the state "Queue", the order of execution is determined on the basis of the rank of priority.
  • the specific task is brought into the state of execution after the flag of the activation bit of the task control block has been reset by the task dispatcher 208 in accordance with the control program OS and a flag "1" has been set to the R-bit (7th bit).
  • the execution of task is initiated. This is the state "Run”.
  • the flag of the R-bit of the task control block is cleared and the completion report is terminated.
  • the state "Run” ends and the state "Idle” is recovered to wait for the issuance of the next activation request.
  • IRQ is generated in executing a task, that is in the state "Run"
  • the execution of the task has to be interrupted. For this, the contents of the CPU is shunted and the execution is interrupted.
  • Fig. 13 shows a typical flow.
  • a flag "1" is set to the activation bit of the task control block in the state "Ready”. This is the case, for example, in the state of interruption of activation of a task, the next activation request timing of the task is reached. In this case the flag in the R-bit takes preference and the task which is being interrupted is terminated.
  • each of the tasks Nos. 0 to 7 is in any one of the four states of Fig. 13.
  • Fig. 14 shows a particular embodiment of the program system as shown in Fig. 6.
  • a control program OS includes an initial processing program 202, an interruption processing program 206, a task dispatcher 208, and a macro processing program 228.
  • the interruption program 206 includes various kinds of interruption processing programs in which an initial interruption processing (hereinafter referred to as an INTL interruption processing) 602 generates initial interruptions in the number of half the number of the engine cylinders per revolution, for example twice per revolution in the case of four cylinders, due to an initial interruption signal generated in synchronism with the engine revolution.
  • the data indicative of the fuel injection timing computed by an EGI task 612 in response to the above-mentioned INTL interruption is set in a register INJD in the INJC 134 included in the I/O interface circuit 108 (Fig. 5).
  • An AID conversion interruption processing 604 includes two kinds of interruption, that is, an ADC1 (Fig. 5) interruption and an ADC2 (Fig. 5) interruption.
  • the ADC1 (Fig. 5)
  • the ADC1 starts the AID conversion as soon as the input point to the MPX 120 (Fig. 5) is assigned, and issues the ADC1 interruption upon the completion of the A/D conversion.
  • the ADC1 interruption is used only before cranking.
  • the ADC 128 in the ADC2 (Fig 5) is used for inputting the data indicative of the air flow rate and generates the ADC2 interruption immediately after the AID conversion.
  • the ADC2 interruption is also used only before cranking.
  • an INTV interruption signal is generated at a time interval of a predetermined time of, for example, 10m sec set in an INTV register (not shown) and is used as a basic signal for monitoring the activating timing of tasks to be activated at a predetermined interval of time.
  • This INTV interruption signal updates the soft timer thereby activating the mask now ready to be activated.
  • interruption processing program 608 is for detecting state of ENST and starts counting in response to the detection of an INTL interruption signal so as to issue an ENST interruption when no INTL interruption signal cannot be detected within a predetermined period of time of, for example, 1 sec.
  • the processing steps are performed in the manner as described above.
  • Tasks belonging to the task level "0" include a fuel cutting processing task (hereinafter referred to as an AC task), a fuel injection control task (hereinafter referred to as an EGI task), and a starting timing monitoring task (hereinafter referred to as an MONIT task).
  • Tasks belonging to the task level "1” include an AD1 input task (hereinafter referred to as an ADIN1 task) and a time coefficient processing task (hereinafter referred to a an AFCIA task).
  • Tasks belonging to the task level "2" include an idling rotation control task (hereinafter referred to as an ISC task), a compensation computation task (hereinafter referred to as an HOSEI task), and a pre-starting processing task (hereinafter referred to as an ISTRT task).
  • ISC task idling rotation control task
  • HOSEI task compensation computation task
  • ISTRT task pre-starting processing task
  • Table 2 shows the allocation of the task levels and the functions of the individual tasks.
  • Fig. 15 shows the manner of processing of the output signal from the hot-wire type flow rate sensor employed in the present invention.
  • the instantaneous air flow rate q A can be computed from the hot-wire sensor output voltage v from the equation (5). Since the instananeous air flow rate q A is an instananeous value in the pulsating state as shown in Fig. 15, it is sampled at a predetermined time interval At.
  • the mean air flow rate Q A can be computed from the respective sampled values of the instantaneous air flow rate q A according to the following equation:
  • the air flow rate sucked into the cylinder can be obtained as from the equation (8).
  • the integrated air flow rate can be obtained by the above-mentioned signal processing.
  • the fuel injection may be performed in such a manner that the amount of fuel injected per revolution of the engine is computed on the basis of the equation (7), to thereby perform fuel injection once per one suction stroke in each cylinder, for example, once every 180° rotation of the crank in the case of engine provided with 4 cylinders.
  • the fuel injection may be performed when the integrated air flow rate actual value attains a given level.
  • Fig. 16 shows the timing of fuel injection according to the above-mentioned latter fuel injection system.
  • the instantaneous air flow rate q A is integrated for a predetermined period of time, and, when the integrated air flow rate actual value attains or exceeds an integrated air flow rate reference level q, fuel is injected for a predetermined period of time t as seen in Fig. 16. That is, fuel is injected at the timing at which the integrated instantaneous air flow rate actual value has attained the integrated air flow rate reference level Q,.
  • FIG. 16 there are shown three integrated air flow reference levels Q " , Q, 2 and Q, 3 .
  • the integrated air flow rate reference value Q is suitably shifted so as to adjust the air-fuel ratio (A/F) as described.
  • a rich fuel-in mixture is required during warming-up in the engine starting stage, and this can be achieved by reducing the integrated air flow rate reference level Q,.
  • the integrated air flow rate reference level Q can be suitably adjusted by the ON-OFF of the output from an O2 sensor (not shown).
  • Fig. 17 is a flowchart for processing the taking-in of the output signal of the hot-wire type flow rate sensor and the timing of the fuel injection.
  • step 801 judgement is made in a step 801 as to whether the interruption is an INTL interruption or not.
  • the ADV REG in IGNC 138 is set so as to complete the INTL interruption processing program.
  • step 801 When the result of judgement in the step 801 proves that the interruption is a Q A timer interruption, activation is made for taking-in the output of the hot-wire type flow rate sensor in a step 806, and taking-in of the output of the hot-wire type flow rate sensor is performed in a step 807.
  • the instantaneous air flow rate q A as shown in the equation (5) is computed in a step 808 and the integration processing is performed in a step 809.
  • Judgement is made in a step 810 as to whether the integrated value of instantaneous air flow rate has reached the integrated air flow rate reference level.
  • a period of time of fuel injection t corresponding to the integrated air flow rate reference level is set in a step 811 into the INJD REG of INJC 134 (Fig. 5), and basic injection pulse is produced in a step 812 from the INJD REG of INJC 134 to the injector 12 through the AND gate 136 to initiate the injection with the basic fuel amount Tp.
  • the width of the basic injection pulse is determined by the period of time t for injection, and the amount of basic fuel injection Tp is determined by the integrated air flow rate reference level.
  • a step 813 the difference between the integrated air flow rate actual value and the integrated air flow rate reference level is computed to regard it as the present integrated air flow rate.
  • the hot-wire type flow rate sensor is activated and the output of the same is taken-in in a step 817.
  • the thus taken-in value of the air flow rate is used for detection of the engine start due to rotation torque of wheels.
  • the processing is shifted to the INTV interruption processing 606 in Fig. 14.
  • Fig. 18 shows the relation between the temperature TW of engine cooling water sensed by the cooling water temperature sensor 56 and the air flow rate reference level. That is, Fig. 18 shows how the reference level is varied relative to the output signal of the water temperature sensor 56.
  • the temperature range of from -40°C to 40°C corresponds to the warming-up level in which the engine is started from its cold state.
  • the temperature range from 40°C to 85°C corresponds to the normal starting level, and the temperature range higher than 85°C corresponds to the hot re-starting level.
  • the sensor output signal indicative of the temperature of the engine cooling water is taken into the ADC1 so that the air amount reference level corresponding to the sensed temperature can be set by comparison according to the relation shown in Fig. 18.
  • the INTST program 624 shown in Fig. 14 is executed for this purpose.
  • Fig. 19 shows a fuel control processing flow in acceleration from an idle or deceleration state.
  • the amount of additional fuel injection is increased when the engine is accelerated from an idle or deceleration state. This process is executed at intervals of the 10 msec.
  • OLD throttle valve opening TH
  • step 910 If it is decided that ATH is larger than zero, by contrast, the compensation factor K for acceleration injection is computed on the basis of ATH in step 905. Then, in step 906, it is decided whether or not the idle switch flag is "1". If the flag is "1", it is decided that the acceleration from idle or deceleration state is involved, and in step 907, the product of the compensation facktor K and a predetermined value n (n>1) is determined, so that the factor nK is multiplied by the basic amount of injection T determined in step 812 in Fig. 17, thus computing the additional amount of fuel injection To. When the flag is not "1 ", on the other hand, the additional amount of fuel injection To is computed from the compensation factor K.
  • step 909 the additional amount of fuel injection To is injected. Namely, an interruption injection pulse c is produced after the basic pulse a and an additional injection pulse b in addition to the basic injection pulse a is produced.
  • Step 910 decides whether or not the idle switch is off, and if the switch is off, the flag "1" is reset. Thus, in the acceleration just after an idle or deceleration state, a greater amount of fuel injection than at other acceleration states is injected.
  • interruption injection pulses c are produced at step 909 at intervals of 10 msec after the basic injection pulse a produced at step 812 of Fig. 17. Further, an additional injection pulse b is produced in addition to the basic injection pulse a.
  • the pulse widths of the interruption injection pulse c and the additional injection pulse b are determined by the additional injection amount To and are set to a value larger than in the conventional systems.
  • the additional injection amount To is computed on the basis of ATH so that an interruption injection pulse and an additional injection pulse with the pulse width determined by the additional injection amount To are produced.
  • the fuel air mixture is prevented from being lean near the start of acceleration (initial state of acceleration corresponding to a period t i -t 2 ) thereby improving acceleration.
  • additional injection may be performed either by the interruption injection pulse or by the additional injection pulse.
  • the first embodiment of the present invention will be explained with reference to the flowchart of Fig. 21.
  • the amount of additional injection in acceleration is changed in accordance with the engine load thereby to prevent the mixture from being lean near the start of acceleration from small load state.
  • This flowchart is executed at intervals of 10 msec.
  • step 921 fetches and subjects the throttle opening TH to AID conversion and the result is stored in the RAM.
  • step 922 the difference ATH between the value TH fetched presently and the value TH (OLD) introduced 30 msec before is determined, followed by step 924 for deciding whether or not the difference ATH is larger than zero, that is, whether or not an acceleration is involved. If it is decided that an acceleration is involved, step 923 computes the compensation factor K, for acceleration injection from the throttle opening change rate ATH.
  • step 925 multiplies the compensation factor K, for acceleration injection by the basic injection amount Tp to compute the additional fuel amount To for acceleration.
  • a value representing the engine load that is, the negative pressure Pn at or about the throttle valve is detected from the output of the negative pressure sensor 119 (Fig. 5).
  • the embodiment under consideration uses the negative pressure as a value representing the load so that the smaller the negative pressure, that is, the nearer to the atmospheric pressure, it is decided that the opening of the throttle valve is larger, that is, the load is larger.
  • the load may be measured from the basic fuel injection amount (K Q/N).
  • step 928 the compensated additional fuel injection amount T for acceleration is injected.
  • an interruption injection pulse c and an additional injection pulse b are produced.
  • the X-axis represents the negative pressure Pn and the Y-axis the cooling water temperature Tw and the Z-axis the compensation factor K for acceleration.
  • the compensation factor K is determined continuously for all the load conditions by use of a three-dimensional map.
  • the additional fuel injection amount alternatively be increased only when the load is below a predetermined value (such as when the negative pressure Pn is more than a predetermined value).
  • step 926 decides whether or not the load is smaller than a predetermined value, and only when it is decided that the load is smaller than the predetermined value, the compensation factor K determined by the cooling water temperature Tw may be read from a two-dimensional map.
  • the additional injection amount To may be injected in step 928. In this embodiment, the additional injection amount may be obtained without regard to the cooling water temperature Tw.
  • a sufficient amount of additional fuel is injected in acceleration from small load state, so that the mixture is prevented from being lean near the start of acceleration, thus achieving a superior acceleration.
  • Fig. 23 is a flowchart for achieving a satisfactory acceleration by preventing the mixture from being lean near the start of acceleration from low engine speed by changing the amount of additional fuel injection in accordance with the engine speed.
  • the flowchart of Fig. 23 is executed at intervals of 10 msec.
  • Step 943 determines whether or not this value ATH is larger than zero, and if it is decided that it is larger than zero, that is, an acceleration is involved, then step 944 computes the compensation factor K, for acceleration injection from the throttle opening change rate ATH. Then, step 945 computes the additional fuel injection amount To for acceleration from the basic fuel injection amount Tp and the compensation factor K, for accelerating injection. That is, To is determined from TpxK,.
  • the amount of additional fuel injection is large near the start of acceleration and decreases with increase in the load or engine speed, thereby maintaining a proper air-fuel ratio and performing satisfactory acceleration.
  • the amount of fuel injection is increased in order to prevent the mixture gas from being lean near the start of acceleration.
  • the air-fuel ratio is likely to be reduced, that is, the mixture is likely to become rich near the end of acceleration (i.e., during the period from t 2 to t 3 ).
  • the air-fuel ratio can be maintained at a proper value by increasing the additional fuel injection amount near the start of acceleration and then by reducing the same gradually.
  • step 950 decides whether or not the throttle opening change rate ATH is positive, that is, an acceleration is involved. If it is decided that an acceleration is involved, step 951 determines the number of compensations for additional fuel injection amount on the basis of ATH and sets the number in a soft counter in the RAM. This number of compensations is proportional substantially to the value ATH.
  • step 952 the compensation factor K, for acceleration injection is computed on the basis of ATH, followed by step 953 for computing the initial value To of the additional fuel injection amount for acceleration by multiplying the basic fuel injection amount T by K,.
  • Step 954 computes the additional fuel injection amount T from the initial value To and the content of the counter for counting the number of compensations provided in the RAM.
  • the additional injection amount T is substantially proportional to the product of the initial value To and the content of the counter, and is reduced with the decrease of the content of the counter.
  • next step 955 the additional fuel injection amount T is set in the register 134, and an additional injection pulse and an interruption injection pulse are produced on the basis of the value T.
  • step 956 it is decided whether or not the data in the counter is zero, and if it is zero, the additional injection is ended, while if the data in the counter is not zero, the process is passed to step 957.
  • step 957 it is decided whether or not a predetermined time (10 msec in this case) has passed, and if the predetermined time has passed, the data in the counter is reduced by one in step 958.
  • the counter data may be reduced in accordance with the reference angle pulse REF produced for crank revolution of each 180 degrees in steps 957 and 958.
  • the fuel air mixture is likely to be rich because the additional fuel injection responding to the interruption injection pulse c is performed each 10 msec even though the suction air flow rate increases very slowly.
  • the acceleration involves a small value of the throttle opening change rate ATH
  • the additional injection compensation factor K is not computed according to the value ATH, but is determined according to the opening range to which the value ATH belongs. Further, when the value ATH is less than a. predetermined value, it is decided that it is a slow acceleration to thereby perform the additional injection only once for one acceleration. Alternatively, when the value ATH is not less than the predetermined value, it is decided that it is a normal acceleration to thereby perform the additional acceleration every 10 msec.
  • step 1001 fetches the throttle opening TH by interruption at 10 msec intervals, which throttle opening TH subjected to AID conversion and is stored in the RAM.
  • step 1002 fetches the throttle opening TH by interruption at 10 msec intervals, which throttle opening TH subjected to AID conversion and is stored in the RAM.
  • step 1003 decides whether or not the value ATH is larger than a predetermined value ⁇ 1 , it is decided that it is not an acceleration state so that step 1004 resets the flag 1 for non-execution of additional injection.
  • step 1005 decides whether or not ATH is a predetermined value a 2 ( ⁇ 2 > ⁇ 1 ) or more. If step 1005 decides that ATH is smaller than a 2 , it is decided that the value ATH belongs to a throttle opening range "1" that is ⁇ 2 > ⁇ TH ⁇ 1 . Further, it is decided that it is a slow acceleration state, so that the value of the compensation factor K, determined from the opening range "1" and water temperature Tw is retrieved from the map in step 1006. Then in step 1007, the amount of additional fuel injection for acceleration commensurate with the compensation factor K, is computed, followed by step 1008 for deciding whether the flag 1 is "0" or not. If it is decided in step 1008 that the flag 1 is not "0", that is, the flag is set, then the decision is that one additional injection based on the range "1" has already been completed and therefore no additional injection is effected any more.
  • step 1009 effects additional injection once, followed by step 1010 for setting the flag 1. As a result, the additional injection for the range "1" is indicated.
  • step 1011 decides whether or not ATH is a3 (a 3 >a 2 ) or more. It is decided at this step 1011 that ATH is less than a3, the resulting decision is that ATH is belongs to an opening range "2", that is, ⁇ 3 > ⁇ TH ⁇ 2 . Further, it is decided that it is a slow acceleration and so in step 1012, the compensation factor K, is determined from the water temperature Tw and the range "2". The additional fuel injection amount for acceleration based on this compensation factor K, is computed at step 1013, followed by step 1014 where it is decided whether or not the flag 2 is "0".
  • step 1014 decides that the flag 2 is not "0", that is, the flag is set, then no additional fuel injection is effected.
  • step 1015 performs additional fuel injection once so that the flag 2 is set to in step 1016.
  • step 1017 decides whether or not ATH is not less than a predetermined value a4 (a 4 >a 3 ). If step 1017 decides that ATH is smaller than a4, the resulting decision is that ATH belongs to an opening range "3", that is, ⁇ 4 > ⁇ TH ⁇ 3 . Further, it is decided that it is a slow acceleration, so that step 1018 retrieves the map for the compensation factor K, determined from the range "3" and the water temperature Tw, followed by step 1019 where the additional fuel injection amount for acceleration is computed. Next, in step 1020, it is decided whether or not the flag 3 is "0", and if it is decided that the flag 3 is "0", step 1021 effects an additional injection, followed by step 1022 for setting the flag 3.
  • step 1020 decides that the flag 3 is not "0", on the other hand, no additional fuel injection is effected.
  • step 1017 decides that ATH is a4 or more, the resulting decision is that ATH belongs to an opening range "4". Further, it is decided that it is not a slow acceleration but a normal acceleration, so that step 1023 retrieves the map for the compensation factor K 1 determined from the range "4" and the water temperature Tw, followed by step 1024 for computing the additional fuel injection amount for acceleration, further followed by step 1025 for additional injection.
  • the compensation factor K may be modified in accordance with the cooling water temperature Tw.
  • the additional fuel injection amount To may be obtained from a map.
  • Fig. 29 shows a soft timer table which is provided in the RAM 106 and which is provided with timer blocks in the same number as that of different activation periods activated by various kinds of interruptions.
  • the term "timer block” is defined as a storage area into which time information with respect to the activation period of the task stored in the ROM 104.
  • TMB described as the left end represents the head address of the soft timer table in the RAM 106.
  • the time information with respect to the above-mentioned activation period is stored from the ROM 104 in starting the engine. That is, when the INTV interruption is performed, for example, at a regular period of time of 10 msec, a value which is integral multiplies of 10 ms and which represents the respective activation period is transferred and stored in the respective timer block.
  • Fig. 30 shows a flowchart for executing the INTV interruption processing 606.
  • the judgement is concluded that the soft timer is in the state of stoppage and that the corresponding task to be activated by the specific soft timer is in the state of stoppage, so that processing is jumped to a step 640 in which the soft timer table is renewed. That is, the above-mentioned judgement is made on the basis of the fact that when the task is stopped, the residual timer is left it as it is without being initialized when it becomes 0 (zero).
  • the processing is shifted to a step 632 in which the residual timer in the time block is renewed.
  • the residual timer T 1 is decremented by 1 (one).
  • judgement is made in a step 634 as to whether the soft timer has reached the activation period or not.
  • the residual time T 1 is the soft timer table is initialized in the step 636. That is, the timer information with respect to the activation period of the specific task is transferred from the ROM 104 to the RAM 106.
  • an activation request for the task corresponding to the soft timer table is issued in a step 638.
  • the soft timer table is renewed in the step 640. That is, the contents of the soft timer table is incremented by 1 (one). Further judgement is made in a step 642 as to whether all the soft timers have been checked or not.
  • the task ADIN1 is first activated so that the data, such as the cooling water temperature, the battery voltage, necessary for the starting of the engine are taken from the various sensors into the ADC 122 through the MPX 120, and every time all these data have been successively inputted, the task HOSEI, that is, the compensation task, is activated so that compensation is computed on the basis of the inputted data. Further, every time all the data from the various sensors have been successively inputted to the ADC 122 in accordance with the ADIN1, the task ISTRT is activated so that the fuel injection amount necessary in starting of the engine is computed.
  • the above-mentioned three tasks, that is, the task ADIN1, the task HOSEI and the task ISTRT are activated in accordance with the initial processing program 202.
  • the three tasks that is, the task ADIN1, the task HOSEI and the task ISTRT are activated by the interruption signal of the task ISTRT. That is, these tasks have to be executed only in the period in which the START-SW 152 is in its ON state (in the period of cranking of the engine).
  • pieces of time information with respect to the predetermined activation periods are transferred from the ROM 104 to the soft timer tables corresponding to the respective tasks provided in the RAM 106. Further, in this period, the residual time T, in the respective soft timer table is initialized and the setting of activation period is repeatedly performed.
  • the task MONIT Being provided for computing the fuel injection amount in the starting of the engine, the task MONIT becomes unnecessary after the engine starting, and therefore after the task has been executed predetermined times, the activation of the soft timer is stopped and tasks necessary in the post-starting state of the engine other than the task MONIT are activated in response to a stoppage signal produced upon the termination of the task MONIT.
  • "0" is stored in the soft timer table corresponding to the task in response to a signal indicating the termination of the task at the judgement point of time at the end of the task. That is, the stoppage of task is effected by clearing the contents of the soft timer corresponding to the task.
  • Fig. 32 shows an IRQ generating circuit.
  • An INTV IRQ generating circuit is constituted by a register 735, a counter 736, a comparator 737, and a flip-flop 738, and a period for generating INTV IRQ, for example 10 msec, is set into the register 735.
  • a clock pulse is set into the counter 736, and when the count of the counter 736 becomes coincident with the contents of the register 735, the flip-flop 738 is set. In this set state of the flip-flop 738, the counter 736 is cleared and the counting is restarted. Therefore, the INTV IRQ is generated at a predetermined regular interval of time (10 msec).
  • An ENST IRQ generating circuit for detecting engine stoppage is constituted by a register 741, a counter 742, a comparator 743, and a flip-flop 744.
  • the register 741, the counter 742 and the comparator 743 operate in the same manner as described above in the INTV IRQ generating circuit so that when the count of the counter 742 has reached the contents of the register 741, an ENST IRQ is generated.
  • the counter 742 is cleared by an REF pulse generated by a crank angle sensor at a predetermined interval of crank angles during the rotation of engine, the count of the counter 742 cannot reach the contents of the register 741 so that no ENST IRQ is generated.
  • An INTV IRQ generated by the flip-flop 738, an ENST IRQ generated by the flip-flop 744, and IRQs generated by the ADC1 and ADC2 are set into flip-flops 740, 746, 764 and 768 respectively.
  • a signal for generating/inhibiting IRQ is set into each of flip-flops 739, 745, 762, and 766. If "H” is set in any one of the flip-flops 739, 745, 762, and 766, corresponding one of AND gates 748, 750, 770, and 772 is enabled so that an IRQ is immediately generated through an OR gate 751.
  • an IRQ can be inhibited from generation or released from inhibition by setting "H” or "L” into the respective flip-flops 739, 745, 762 and 766.
  • the cause of generation of IRQ is removed by taking the contents of the flip-flop 740, 746, 764 and 768 into the CPU.

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Description

  • The invention relates to a control method for internal combustion engines according to the pre-characterizing parts of the independent claims 1 and 2.
  • Such a control method for internal combustion engines is known from the US-A-4 184 458.
  • Recently, general control for an engine is performed by using a digital processor such as a microcomputer for the purpose of improvement in engine control performance.
  • Various functions are required for the engine control depending on the kind of type/use of car, and, therefore, in the engine control system utilizing a microcomputer, a general purpose software, that is a software in which correction, modification or addition can be effected onto the various control functions depending on the kind/use of car, is required in view of improvement in cost and/or in controllability.
  • Conventionally, the amount of suction air in an engine has been indirectly detected on the basis of the pressure in a suction manifold, or the total amount of sucked air per suction stroke has been obtained by directly detecting the air flow rate. In the former, since it is an indirect method, there is a disadvantage that the accuracy is poor, the variations and/or deterioration in performance of engine may affect the detection, and the responsibility is not so good. The latter method also has a disadvantage that a flow rate sensor having high accuracy (error: within +1% of read value) and a wide dynamic range (1:50) is required, resulting in increase in cost. It is preferable to use a hot-wire air flow rate sensor (hereinafter referred to as a hot-wire sensor) because the hot-wire sensor has a characteristic allowing a wide dynamic range and reduction in cost can be expected.
  • However, the suction air flow rate in engine is not constant but has pulsations, so that the output signal from the flow rate sensor has a non-linear characteristic with respect to the suction air flow, it becomes necessary to obtain the air flow rate in suction stroke in the form of integration of instantaneous air flow rates, and complex operations are required for the integration. That is, the hot-wire output voltages v shown in Fig. 1 can be obtained according to the following equation (1):
    Figure imgb0001
    where qA represents the mass flow rate and C" C2 represent constants determined by the shape of intake manifold etc. This equation (1) can be changed into the following equation (2):
    Figure imgb0002
    Assuming now that v=vo when the rotational number of engine N=0 and the mass flow rate qA=0, the equation (2) is expressed as follows:
    Figure imgb0003
    Thus, the following equations (4) and (5) are derived from the equations (2) and (3) and an instantaneous value of mass flow rate qA can be obtained from the equation (5).
    Figure imgb0004
    Figure imgb0005
    Thus, the average or mean air flow rate in one suction stroke QA can be expressed as follows:
    Figure imgb0006
    where Δθ represents a crank angle between two adjacent sampling points of qA.
  • Further, the amount of fuel injection QF for one suction stroke can be expressed by the following equation (7):
    Figure imgb0007
    where N represents the number of engine revolution and k a constant. This means that the amount of fuel injection QF for one stroke can be determined on the basis of the obtained value of QA and the number of engine revolution N.
  • Although the basic fuel injection amount QF can be obtained in such a manner as described above, acceleration cannot be smoothly effected by using only the thus obtained basic fuel injection amount QF when acceleration becomes necessary, because of delay in computation of the value QA, etc. The US-A-4184485 therefore proposed, to compensate the basic fuel injection amount upon the detection of the state of acceleration on the basis of the change in the mean air flow rate QA or the intake air pressure. However, the air flow rate QA has pulsations as described above and an error may occur in detection of the state of acceleration. This applies to the case of decelerating operation. Therefore, the state of acceleration or deceleration should be advantageously detected on the basis of the detection of the opening of the throttle valve. That is, in case of using a digital processor the throttle opening TH is sampled at a predetermined regular interval of time, for example every 10 msec, (by interval interruption) so that the sampling value TH at present is compared every 10 msec with the sampling value TH(OLD) to botain the difference ATH therebetween (EP-A-0047969). The engine is in the state of acceleration when ΔTH>0.
  • In response to the detection of this state of acceleration, additional fuel for the compensation for acceleration is additionally injected. Such a system for detecting the acceleration and injecting the additional fuel is shown in Japanese Patent Publication No. 49-45653 and U.S.P. No. 3,898,962.
  • In convention systems, the additional fuel injection has been performed at the time of acceleration in accordnce with the predetermined condition of the throttle opening change rate regardless of the operating conditions such as the engine speed or load.
  • The disadvantage is, however, that since the intake manifold is still dry at low engine speeds or under small load conditions, the additional fuel injection in acceleration determined on the basis of the throttle opening change rate is not sufficient for wetting the intake manifold, thereby making it impossible to achieve sufficient acceleration.
  • Specifically, since the basic amount of fuel injection under low loads is smaller than that under heavy loads, it is difficult to accelerate the car sufficiently when the load of the engine is small just before acceleration.
  • This is because when the load is small before acceleration, the intake manifold is not sufficiently wetted due to small basic amount of fuel injection, so that it takes some time to wet the intake manifold thereby making the fuel air mixture lean at the beginning of acceleration.
  • Also, since the basic amount of fuel injection at low engine speed is smaller than that at high engine speed, it is difficult to accelerate the car sufficiently when the engine speed is low just before acceleration. This is because, at low engine speed, the basic amount of fuel injection is so small that it takes some time to wet the intake manifold well thereby making the fuel air mixture lean at the beginning of acceleration. This is also the case with the acceleration from an idle or decelerating state.
  • The US―A―4 227 490 discloses an electronic control fuel injection system which compensates for fuel drying in an intake passage. A small load operation is detected by a throttle switch. At the beginning of the acceleration after deceleration state a pulse width of a fuel injection pulse is prolonged for a predetermined time. However, the pulse width is not modified in accordance with both the load or the engine speed.
  • The GB-A-20 30 730 discloses a correction of the basic fuel amount on the basis of an acceleration enrichment which is responsible to the operating condition of the engine before the acceleration such as the engine rotational speed and the amount of sucked air.
  • It is an object of the present invention to provide a control method for internal combustion engines for controlling the fuel injection upon an acceleration from a small load state or from low engine speed in an optimized manner so that additional fuel injection at the time of acceleration can be immediately carried out in detecting the common occurrence of acceleration condition and small load state or the common occurrence of acceleration condition and low engine speed.
  • The above object is solved by the features of the independent claims 1 and 2 respectively.
  • Claim 3 includes features characterizing an advantageous development of claim 1 or 2.
  • The above and other objects, features and advantages of the present invention will become more apparent from the following description taken in conjunction with the accompanying drawings, in which:
    • Fig. 1 is a characteristic diagram of the hot-wire sensor output voltage with respect to the crank shaft rotational angle;
    • Fig. 2 is a schematic diagram of the control device for the whole of the engine system;
    • Fig. 3 is a diagram for explaining the ignition device in Fig. 2;
    • Fig. 4 is a diagram for explaining the exhaust gas recirculation system;
    • Fig. 5 is a block diagram generally illustrating the engine control system;
    • Fig. 6 is a block diagram illustrating the basic construction of the program system for the engine control process according to the present invention;
    • Fig. 7 is a diagram showing a table of task control blocks provided in RAM controlled by a task dispatcher;
    • Fig. 8 is a diagram showing a start address table for the tasks actuatable by various interruptions;
    • Figs. 9 and 10 are flowcharts for the processes of the task dispatcher;
    • Fig. 11 is a flowchart for executing a macro processing program;
    • Fig. 12 is a diagram showing an example of task priority control;
    • Fig. 13 is a diagram showing the transition of state of the task in the above-mentioned task priority control;
    • Fig. 14 is a particular flowchart in Fig. 6;
    • Fig. 15 is a diagram showing the timing for taking-in the hot-wire output voltage;
    • Fig. 16(A)-(C) is a diagram showing the relation between the suction air flow rate and the injection timing in the fuel injection system to which the present invention is applied;
    • Fig. 17 is a flowchart for processing interruptions;
    • Fig. 18 is a diagram showing the alteration of an air flow rate reference value with respect to the temperature of engine cooling water;
    • Fig. 19 is a flowchart showing the processing of fuel injection control in acceleration;
    • Fig. 20(A)-(C) are time charts showing the relation between throttle valve opening, injection pulses and fuel air mixture according to the embodiment of Fig. 19;
    • Fig. 21 is a flowchart showing a first embodiment of the present invention;
    • Fig. 22 is a three-dimensional map showing the relation between the cooling water temperature, negative pressure and compensation factor;
    • Fig. 23 is a flowchart showing another embodiment of the present invention;
    • Fig. 24 is a diagram showing the relation between engine speed and compensation factor;
    • Fig. 25 is a flowchart showing a further embodiment of the present invention;
    • Fig. 26(A), (B), (C), (D), (E) is time charts showing the relation between the throttle valve opening, injection pulse, amount of additional injection, fuel air mixture, etc. in the embodiment of Fig. 25;
    • Fig. 27 is a flowchart showing still another embodiment of the present invention;
    • Fig. 28 is a time chart showing the relation between the throttle valve opening and the injection pulses in the embodiment of Fig. 27.
    • Fig. 29 is a diagram showing a soft timer table provided in RAM;
    • Fig. 30 is a flowchart for executing the processing of interval (INTV) interruption;
    • Fig. 31 is a time chart showing various states of start/stoppage of various tasks effected in accordance with the engine state; and
    • Fig. 32 is a block diagram of the interruption request (IRQ) generating circuit.
  • Referring to the drawings, preferred embodiments of the present invention will be described hereunder.
  • In Fig. 2, a control apparatus for the whole of an engine system is illustrated. In Fig. 2, suction air is supplied to a cylinder 8 through an air cleaner 2, a throttle chamber 4, and a suction pipe 6. A gas burnt in the cylinder 8 is discharged from the cylinder 8 to the atmosphere through an exhaust pipe 10. An injector 12 for injecting fuel is provided in the throttle chamber 4. The fuel injected from the injector 12 is atomized in an air path of the throttle chamber 4 and mixed with the suction air to form a fuel-air mixture which is in turn supplied to a combustion chamber of the cylinder 8 through the suction pipe 6 when a suction valve 20 is opened.
  • Throttle valves 14 and 16 are provided.in the vicinity of the output of the injector 12. The throttle valve 14 is arranged so as to mechanically interlocked with an accelerator pedal (not shown) so as to be driven by the driver. The throttle valve 16 is arranged to be driven by a diaphragm 18 such that it becomes its fully close state in a range where the air flow rate is small, and as the air flow rate increases the negative pressure applied to the diaphragm 18 also increases so that the throttle valve 16 begins to open, thereby suppressing the increase of suction resistance.
  • An air path 22 is provided at the upper stream of the throttle valves 14 and 16 of the throttle chamber 4 and an electrical heater 24 constituting a thermal air flow rate meter is provided in the air path 22 so as to derive from the heater 24 and electric signal which changes in accordance with the air flow velocity which is determined by the relation between the air flow velocity and the amount of heat transmission of the heater 24. Being provided in the air path 22, the heater 24 is protected from the high temperature gas generated in the period of back fire of the cylinder 8 as well as from the pollution by dust or the like in the suction air. The outlet of the air path 22 is opened in the vicinity of the narrowest portion of the venturi and the inlet of the same is opened at the upper stream of the venturi.
  • Throttle opening sensors (not shown in Fig. 3 but generally represented by a throttle opening sensor 116 in Fig. 5) are respectively provided in the throttle valves 14 and 16 for detecting the opening thereof and the detection signals from these throttle opening sensors, that is the sensor 116, are taken into a multiplexer 120 of a first analog-to-digital converter as shown in Fig. 5.
  • The fuel to be supplied to the injector 12 is first supplied to a fuel pressure regulator 38 from a fuel tank 30 through a fuel pump 32, a fuel damper 34, and a filter 36. Pressurized fuel is supplied from the fuel pressure regulator 38 to the injector 12 through a pipe 40 on one hand and fuel is returned on the other hand from the fuel pressure regulator 38 to the fuel tank 30 through a return pipe 42 so as to maintain constant the difference between the pressure in the suction pipe 6 into which fuel is injected from the injector 12 and the pressure of the fuel supplied to the injector 12.
  • The fuel-air mixture sucked through the suction valve 20 is compressed by a piston 50, burnt by a spark produced by an ignition plug 52, and the combustion is converted into kinetic energy. The cylinder 8 is cooled by cooling water 54, the temperature of the cooling water is measured by a water temperature sensor 56, and the measured value is utilized as an engine temperature. A high voltage is applied from an ignition coil 58 to the ignition plug 52 in agreement with the ignition timing.
  • A crank angle sensor (not shown) for producing a reference angle signal at a regular interval of predetermined crank angles (for example 180 degrees) and a position signal at a regular interval of a predetermined unit crank angle (for example 0.5 degrees) in accordance with the rotation of engine, is provided on a not-shown crank shaft.
  • The output of the crank angle sensor, the output 56A of the water temperature sensor 56, and the electrical signal from the heater 24 are inputted into a control circuit 64 constituted by a microcomputer or the like so that the injector 12 and the ignition coil 58 are driven by the output of this control circuit 64.
  • In the engine system controlled by the arrangement as described above, a bypass 26 bypassing the throttle valve 16 to communicate with the suction pipe 6 is provided and a bypass valve 62 is provided in the bypass 26. A control signal is inputted to a drive scetion of the bypass valve 62 from the control circuit 64 to control the opening of the bypass valve 62.
  • That is, the opening of the bypass valve 62 is controlled by a pulse current such that the cross-sectional area of the bypass 26 is changed by the amount of lift of valve which is in turn controlled by a drive system driven by the output of the control circuit 64. That is, the control circuit 64 produces an open/close period signal for controlling the drive system so that the drive system responds to this open/close period signal to apply a control signal for controlling the amount of lift of the bypass valve 62 to the drive section of the bypass valve 62.
  • In Fig. 3, which is an explanatory diagram of the ignition device of Fig. 2, a pulse current is supplied to a power transistor 72 through an amplifier 68 to energize this transistor 72 so that a primary coil pulse current flows into an ignition coil 58 from a battery 66. At the trailing edge of this pulse current, the transistor 74 is turned off so as to generate a high voltage at the secondary coil of the ignition coil 58.
  • This high voltage is distributed through a distributor 70 to ignition plugs 52 provided at the respective cylinders in the engine, in synchronism with the rotation of the engine.
  • In Fig. 4, which is an explanatory diagram of an exhaust gas reflux (hereinafter abbreviated as EGR) system, a predetermined negative pressure of a negative pressure source 80 is applied to an EGR control valve 86 through a pressure control valve 84. The pressure control valve 84 controls the ratio with which the predetermined negative pressure of the negative pressure source is released to the atmosphere 88, in response to the ON duty factor of the repetitive pulse applied to a transistor 90, so as to control the state of application of the negative pressure pulse to the EGR control valve 86. Accordingly, the negative pressure applied to the EGR control valve 86 is determined by the ON duty factor of the transistor 90 per se. The amount of EGR from the exhaust pipe 10 to the suction pipe 6 is controlled by the controlled negative pressure of the pressure control valve 84.
  • Fig. 5 is a diagram showing-the whole configuration of the control system which is constituted by a central processing unit (hereinafter abbreviated as CPU) 102, a read only memory (hereinafter abbreviated as a ROM) 104, a random access memory (hereinafter abbreviated as RAM) 106, and an input/output (hereinafter abbreviated as I/O) circuit 108. The CPU 102 operates input date from the I/O circuit 108 in accordance with various program stored in the ROM 104 and returns the result of operation to the I/0 circuit 108. Temporary data storage necessary for such an operation is performed by using the RAM 106. Exchange of various data among the CPU 102, the ROM 104, the RAM 106, and the I/O circuit 108 is performed through a bus line 110 constituted by a data bus, a control bus, and an address bus.
  • The I/O circuit 108 includes input means such as the above-mentioned first analog-to-digital converter (hereinafter abbreviated as ADC1), a second analog-to-digital converter (hereinafter abbreviated as ADC2), an angular signal processing circuit 126, and a discrete I/0 circuit (hereinafter abbreviated as DIO) for inputting/outputting one bit information.
  • In the ADC1, the respective output signals of a battery voltage sensor (hereinafter abbreviated as VBS) 132, the above-mentioned cooling water temperature sensor (hereinafter abbreviated as TWS) 56, an atmosphere temperature sensor (hereinafter abbreviated as TAS) 112, a regulation voltage generator (hereinafter abbreviated as VRS) 114, the above-mentioned throttle opening sensor (hereinafter referred to as 8THS) 116, and a λ sensor (hereinafter abbreviated as AS 118) are applied to the above-mentioned multiplexer 120 (hereinafter abbreviated as MPX) 120 which selects one of the respective input signals and inputs the selected signal to an analog-to-digital converter circuit (hereinafter abbreviated as ADC) 122. The digital value of the output of the ADC 122 is stored in a register (hereinafter abbreviated as REG) 124.
  • An output signal of an air flow rate sensor (hereinafter abbreviated as AFS) 24 is inputted to the ADC2 in which the signal is A/D converted in an ADC 128 and set in a REG 130.
  • An angle sensor (hereinafter abbreviated as ANGS) 146 produces a reference signal representing a reference crank angle (hereinafter abbreviated as REF), for example as a signal generated at an interval of 180 degrees of crank angle, and a position signal representing a small crank angle (hereinafter abbreviated as POS), for example 1 (one) degree. The REF and POS are applied to the angular signal processing circuit 126 to be waveform-shaped therein:
  • The respective output signals of an idle switch 148 (hereinafter abbreviated as IDLE-SW) 148, a top gear switch (hereinafter abbreviated as TOP-SW) 150, and a starter switch 152 (hereinafter abbreviated as START-SW) are inputted into the DIO.
  • Next, a circuit for outputting pulses in accordance with the result of operation of the CPU 102 and an object to be controlled will be described hereunder. An injector circuit (hereinafter abbreviated as INJC) 134 is provided for converting the digital value of the result of operation into a pulse output. Accordingly, a pulse having a pulse width corresponding to the amount of fuel injection is generated in the INJC 134 and applied to the injector 12 through an AND gate 136.
  • An ignition pulse generating circuit (hereinafter abbreviated as IGNC) 138 includes a register (hereinafter referred to as ADV) for setting ignition timing and another register (hereinafter referred to as DWL) for setting initiating timing of the primary current conduction of the ignition coil 58 and these data are set by the CPU 102. The ignition pulse generating circuit 138 produces a pulse on the basis of the thus set data and supplies this pulse through an AND gate 140 to the amplifier 68 described in detail with respect to Fig. 3.
  • The rate of opening of the bypass valve 62 is controlled by a pulse supplied thereto by a control circuit (hereinafter referred to as ISCC) 142 through an AND gate 144. The ISCC 142 has a register ISCD for setting a pulse width and another register ISCP for setting a repetitive pulse period.
  • An EGR amount controlling pulse generating circuit (hereinafter abbreviated as EGRC) 180 for controlling the transistor 90 which controls the EGR control valve 86 as shown in Fig. 4, has a register EGRD for setting a value representing the duty factor of the pulse and another register EGRP for setting a value representing the repetitive period of the pulse. The output pulse of the EGRC 154 is applied to the transistor 90 through an AND gate 156.
  • The one-bit I/0 signals are controlled by the circuit DIO. The I/O signals include the respective output signals of the IDLE-SW 148, the TOP-SW 150 and the START-SW 152 as input signals, and include a pulse signal for controlling the fuel pump 32 as an output signal. The DIO includes a register DDR for determining whether a terminal be used as a data inputting one or a data outputting one, and another register DOUT for latching the output data.
  • A register (hereinafter referred to as MOD) 160 is provided for holding commands instructing various internal states of the I/0 circuit 108 and arranged such that, for example, all the AND gates 136, 140, 144, and 156 are turned on/off by setting a command into the NOD 160. The stoppage/start of the respective outputs of the INJC 134, IGNC 138, and ISCC 142 can be thus controlled by setting a command into the MOD 160.
  • Fig. 6 is a diagram illustrating a basic configuration of a program system of the control circuit of Fig. 6.
  • In Fig. 6, an initial processing program 202, an interruption processing program 206, a macroprocessing program 228, and a task dispatcher 208 are programs for controlling various tasks. The initial processing program 202 is for executing preprocessing for causing a microcomputer to operate. According to the initial processing program 202, for example, the contents of storage of the RAM 106 is cleared, the initial values of registers in the I/O interface circuit 108 are set, and processing for taking-in data, such as the cooling water temperature Tw, the battery voltage, for performing the preprocessing necessary for performing the engine control is executed. The interruption processing program 206 receives various interruptions, analyzes the factors of the interruptions, and produces a request for causing a desired one of tasks 210 and 226 to the task dispatacher 208. The interruption factors include an A/D conversion interruption (ADC) generated upon the completion of A/D conversion of the input data such as the power source voltage, the cooling water temperature as described later, an initial interruption (INTL) generated in synchronism with the engine revolution, an interval interruption (INTV) generated at a predetermined interval of time, for example every 10 msec, an engine stoppage interruption (ENST) generated upon the detection of the engine stoppage, or the like.
  • Task numbers representing priority are allotted to the tasks 210 to 226, and the respective tasks belong to any one of the task levels "0", "1", and "2". That is, the task Nos. 0 to 2 belong to the task level "0", the task Nos. 3 to 5 belong to the task level "1", and the task Nos. 6 to 8 belong to the task level "2".
  • Upon the reception of the activation requests by the above-mentioned various interruptions, the task dispatcher 208 responds to the activation requests to allot occupation time onto the CPU to the respective tasks in accordance with the priority rank attached to the respective tasks correspondnig to the activation requests.
  • The task priority control by the task dispatcher 208 is performed by the following method:
    • (1) The task of low priority rank is interrupted and the displacement of the right of execution to the task of higher priority rank is effected between different task levels. It is assumed here that the task belonging to the level "0" has the highest priority rank;
    • (2) In the case there is a task which is executing or being interrupted at present in the same task level, the task has the highest priority rank and other tasks cannot be operated before the task has been completed; and
    • (3) In the case there are activation requests for a plurality of tasks in the same task levels, a task having a smaller task number has a higher priority rank. In order to perform the above-mentioned priority control, according to the present invention, a soft timer is provided in the RAM 106 for each task and control blocks for controlling tasks are set in the RAM for each task level, while the contents of processing of the task dispatcher 208 will be described later. Every time each of the tasks has been executed, the task dispatcher 208 is informed of the completion of execution of the task by the macro processing program 228.
  • Referring to Figs. 7 to 13, the contents of processing of the task dispatacher 208 will be described. Fig. 7 shows task blocks of the same number as that of the task levels, that is three in this embodiment since there are three task levels "0" to "2", are provided in the RAM controlled by the dispatcher 208. Eight bits are allotted to each control block. Three of the eight bits, that is 0-th to 2nd bits (Q0―Q2), are the activation bits for performing activation request task indication and the 7-th bit (R) is used for execution bit for indicating whether any one of the same task level is being executed or being interrupted. The activation bits Q0―Q2 are arranged in the order of decreasing the priority rank. For example, the activation bit corresponding to the task No. 4 in Fig. 6 is Q0 in the task level "1". When a task activation request is issued, a flag "1" is set to any one of the activation bits, and at the same time the task dispatcher 208 searches for the issued activation request in the activation bits in the order from the activation bit corresponding to the task of higher level so that the flag corresponding to the issued activation request is reset and flag "1" is set to the execution bit to thereby execute the processing for activating the task corresponding thereto.
  • Fig. 8 shows an activation address table provided in the RAM 106 controlled by the task dispatcher 208. SAO to SA8 represent the activation addresses correspond to the task Nos. 0 to 8 of the tasks 210 to 226 as shown in Fig. 6. Sixteen bits are allotted to each activation address information which is used for the task dispather 208, as described later, to activate the task corresponding to the issued activation request.
  • Figs. 9 and 10 show flowcharts for the processing performed by the task dispatcher 208. Upon initiation of the processing by the task dispatcher 208 in a step 300 in Fig. 9, judgement is made as to whether the tasks belonging to the task level I are being exeucted or interrupted in a step 302. That is, if flag "1" is detected in the execution bit, the flag "1" indicates the state that the macro processing program 228 does not yet issue the task completion information to the task dispatcher 208 and the task which had been executed is being interrupted because interruption of higher priority rank has been generated. Accordingly, if flag "1" is detected in the execution bit, the processing is jumped to a step 314 in which the interrupted task is reactivated.
  • In the case no flag "1" is detected in the execution bit, on the contrary, that is when the execution indication flag is reset, the processing is shifted to the step 304 in which judgement is made as to whether there is any task waiting for activation in the level I. That is, the activation bits in the level I are searched for in the order of decreasing the priority rank of the tasks corresponding to the activation bits, that is in the order of Qo, Q, and Q2. If no flag "1" is detected in any one of the activation bits belonging to the level 1, the processing comes to a step 306 in which the task level is altered. That is, the task level I is incremented by +1 so as to be I+1. Upon the alteration of the task level in the step 306, the processing comes to a step 308 in which judgement is made as to whether all the task levels have been checked. In the case where all the task levels have been not yet checked, that is, when 1≠2 in this embodiment, the processing comes back to the step 302 and the above-mentioned processing is repeated. In the case where the result of judgement proves that all the task levels have been checked in the step 308, the processing comes to a step 310 in which inhibit to interruption is released because interruption has been inhibited during the processing in the steps 302 to 308. Thereafter, in the next step 312, next issued interruption is waited for.
  • If there is a task waiting for activation in the level I in the step 304, that is if flag "1" is detected in one of the activation bits belonging to the task level the processing comes to a step 400. In the loop constituted by the step 400 and the next step 402, search is made as to which one of the activation bits in which one of the task levels is provided with flag "1", in the order of decreasing the priority rank of the task levels, that is in the order of Qo, Qi, and Q2. When the activation bit provided with flag "1" is detected, the processing comes to a step 404 in which the activation bit provided with flag "1" is reset and flag "1" is set to the execution bit (hereinafter referred to R) of the same task level. In a step 406, the number of the activated task is detected, and in a step 408, the activation address information as to the activated task is derived in accordance with the activation address table provided in the RAM as shown in Fig. 8.
  • In a step 410, judgement is made as to whether the activated task be executed or not. In this case, the necessity of the execution is judged on the basis of the value of the activation address information. That is, when the activation address information has a specific value, for example "0", the judgement is such that the execution is not necessary. It is necessary to provide this judgement step in order to cause a car to have a function of performing only a specific one of the task functions for performing engine control selected depending on the kind of the car. When judgement is made in the step 410 such that the execution of the specific task is stopped, the processing comes to a step 414 in which the R-bit of the specific task level I is reset. Then, the processing comes back to the step 302 in which judgment is made as to whether the task level I is being interrupted or not. This is because there may be a case where a plurality of activation bits are provided with flag "1".
  • In the case where the execution of the specific task is not inhibited, that is when the specific task be executed, the processing comes to a step 412 in which jump is made to the specific task so as to execute the task.
  • Fig. 11 shows a flowchart for processing the macro processing program 228. This program is constituted by steps 562 and 564. In these steps 562 and 564, the task levels are searched in the order of increasing the task level, that is in the order from the level "0" so as to find completed task level or levels. Then the processing comes to a step 568 in which the execution (RUN) flag provided in the 7th bit in the task control block of the completed task is reset. Thus, the execution of the task has been completed. Then, the processing comes back to the task dispatcher 208 in which the next execution task is determined.
  • Referring to Fig. 12, the execution and interruption of task will be explained as to the case where the task priority control is performed by the task dispatcher 208. Assume that in the activation request Nmn, m represents the task level and n represents the rank of priority in the task level m, and that the CPU is executing the control program OS. Then, when an activation request N21 is generated in executing this control program OS, the execution of the task corresponding to the activation request N21, that is the execution of the task No. 6, is initiated at the time T,. If another activation request No, for the task having a higher execution priority rank is issued at the time T2 in executing the task No. 6, the execution is shifted to the control program OS and after predetermined processing has been performed as already described, the execution of the task corresponding to the activation request N01, that is the execution of the task No. 0, is initiated at the time T3. When a further activation request N11 is issued at the time T4 in executing the task No. 0, the execution is once shifted to the control program OS and after a predetermined processing has been executed, the execution of the task No. 0 which has been so far interrupted is restarted at the time Ts. When the execution of the task No. 0 is completed at the time T6, the execution is shifted again to the control program OS, the completion of execution of the task No. 0 is reported by the macro processing program 228 to the task dispatcher 208, and then the execution of the task No. 3 which corresponds to the activation request Nll and which has been so far waiting for reactivation is initiated at the time T7. When an activation request N12 having a lower priority rank in the same task level "1" is issued at the time Ta in executing the task No. 3, the exeuction of the task No. 3 is once interrupted, the execution is once shifted to the control program OS, and after a predetermined processing has been performed, the execution of the task No. 3 is restarted at the time Tg. Upon the completion of the execution of the task No. 3 at the time Tio, the execution of the CPU is shifted to the control program OS, the completion of execution of the task No. 3 is reported by the macro program 228 to the task dispatcher 208, the execution of the task No. 4 corresponding to the activation request N12 of lower priority rank is initiated at the time T11, the execution is shifted to the control program OS upon the completion of execution of the task No. 4 at the time T12, and after a predetermined processing has been performed the execution of the task No. 6 which corresponds to the activation request N2, and which has been so far interrupted is restarted at the time T13.
  • The task priority control is performed in the manner as described above.
  • The state of transition in the task priority control is illustrated in Fig. 13 "Idle" represents the state in which activation is waited for an no task activation request has been issued. Then, if an activation request is issued, flag "1" is set to the activation bit of the task control block so as to indicate the necessity of activation. The time required for shifting from the state "Idle" to the state "Queue" is determined by the level of the respective task. In the state "Queue", the order of execution is determined on the basis of the rank of priority. The specific task is brought into the state of execution after the flag of the activation bit of the task control block has been reset by the task dispatcher 208 in accordance with the control program OS and a flag "1" has been set to the R-bit (7th bit). Thus the execution of task is initiated. This is the state "Run". Upon the completion of execution, the flag of the R-bit of the task control block is cleared and the completion report is terminated. Thus, the state "Run" ends and the state "Idle" is recovered to wait for the issuance of the next activation request. In an interruption request IRQ is generated in executing a task, that is in the state "Run", the execution of the task has to be interrupted. For this, the contents of the CPU is shunted and the execution is interrupted. This state is "Ready". Next, when the state in which the task is to be executed is recovered, the shunted contents is required back to the CPU and execution is restarted. That is, the state "Run" is recovered from the state "Ready". Thus, the respective level program repeats the four states of Fig. 13. Fig. 13 shows a typical flow. However, there may be a case where a flag "1" is set to the activation bit of the task control block in the state "Ready". This is the case, for example, in the state of interruption of activation of a task, the next activation request timing of the task is reached. In this case the flag in the R-bit takes preference and the task which is being interrupted is terminated. Thus, the flag in the R-bit is cleared and the state becomes "Quene" bypassing the state "Idle" due to the flag in the activation bit. Thus, each of the tasks Nos. 0 to 7 is in any one of the four states of Fig. 13.
  • Fig. 14 shows a particular embodiment of the program system as shown in Fig. 6. In Fig. 14, a control program OS includes an initial processing program 202, an interruption processing program 206, a task dispatcher 208, and a macro processing program 228.
  • The interruption program 206 includes various kinds of interruption processing programs in which an initial interruption processing (hereinafter referred to as an INTL interruption processing) 602 generates initial interruptions in the number of half the number of the engine cylinders per revolution, for example twice per revolution in the case of four cylinders, due to an initial interruption signal generated in synchronism with the engine revolution. The data indicative of the fuel injection timing computed by an EGI task 612 in response to the above-mentioned INTL interruption is set in a register INJD in the INJC 134 included in the I/O interface circuit 108 (Fig. 5). An AID conversion interruption processing 604 includes two kinds of interruption, that is, an ADC1 (Fig. 5) interruption and an ADC2 (Fig. 5) interruption. The ADC1 (Fig. 5) has the accuracy of 8 bits, and is used for inputting data such as the battery voltage, the cooling water temperature, the suction air temperature, the regulated voltage, etc., applied thereto. The ADC1 starts the AID conversion as soon as the input point to the MPX 120 (Fig. 5) is assigned, and issues the ADC1 interruption upon the completion of the A/D conversion. The ADC1 interruption is used only before cranking. The ADC 128 in the ADC2 (Fig 5) is used for inputting the data indicative of the air flow rate and generates the ADC2 interruption immediately after the AID conversion. The ADC2 interruption is also used only before cranking.
  • In an interval (hereinafter abbreviated as INTV) interruption processing program 606, an INTV interruption signal is generated at a time interval of a predetermined time of, for example, 10m sec set in an INTV register (not shown) and is used as a basic signal for monitoring the activating timing of tasks to be activated at a predetermined interval of time. This INTV interruption signal updates the soft timer thereby activating the mask now ready to be activated. In an engine stoppage task (hereinafter referred to as an ENST task) interruption processing program 608 is for detecting state of ENST and starts counting in response to the detection of an INTL interruption signal so as to issue an ENST interruption when no INTL interruption signal cannot be detected within a predetermined period of time of, for example, 1 sec. When the ENST interruption is issued three times, that is, when no INTL interruption can be detected within a period of time of, for example, 3 sec, the engine is judged as having stopped, and energization of the ignition coil 58 and operation of the fuel pump 32 are ceased. After execution of these processing steps, the microcomputer stands by until the START-SW 152 is turned on. Table 1 shows the outline of processing executed in response to the interruption signals described above.
    Figure imgb0008
  • As to the INTL processing program 202 and the macro processing program 228, the processing steps are performed in the manner as described above.
  • The following tasks are activated in response to the various interruptions as described above. Tasks belonging to the task level "0" include a fuel cutting processing task (hereinafter referred to as an AC task), a fuel injection control task (hereinafter referred to as an EGI task), and a starting timing monitoring task (hereinafter referred to as an MONIT task). Tasks belonging to the task level "1" include an AD1 input task (hereinafter referred to as an ADIN1 task) and a time coefficient processing task (hereinafter referred to a an AFCIA task). Tasks belonging to the task level "2" include an idling rotation control task (hereinafter referred to as an ISC task), a compensation computation task (hereinafter referred to as an HOSEI task), and a pre-starting processing task (hereinafter referred to as an ISTRT task).
  • Table 2 shows the allocation of the task levels and the functions of the individual tasks.
    Figure imgb0009
  • As will be apparent from Table 2, the activation periods of the individual tasks activated in response to the various interruptions are previously determined, and this information is stored in the ROM 104.
  • Description will now be directed as to the processing of the output signal from the hot-wire type flow rate sensor and the fuel injection centrol. Fig. 15 shows the manner of processing of the output signal from the hot-wire type flow rate sensor employed in the present invention. The instantaneous air flow rate qA can be computed from the hot-wire sensor output voltage v from the equation (5). Since the instananeous air flow rate qA is an instananeous value in the pulsating state as shown in Fig. 15, it is sampled at a predetermined time interval At. The mean air flow rate QA can be computed from the respective sampled values of the instantaneous air flow rate qA according to the following equation:
    Figure imgb0010
  • Thus, the air flow rate sucked into the cylinder can be obtained as
    Figure imgb0011
    from the equation (8). Thus, the integrated air flow rate can be obtained by the above-mentioned signal processing.
  • The control of fuel injection will be next described. According to the present invention, the fuel injection may be performed in such a manner that the amount of fuel injected per revolution of the engine is computed on the basis of the equation (7), to thereby perform fuel injection once per one suction stroke in each cylinder, for example, once every 180° rotation of the crank in the case of engine provided with 4 cylinders. Alternatively, the fuel injection may be performed when the integrated air flow rate actual value attains a given level. Although an embodiment in which the present invention is applied to the latter fuel injection system, the present invention can be applied to the former one.
  • Fig. 16 shows the timing of fuel injection according to the above-mentioned latter fuel injection system. The instantaneous air flow rate qA is integrated for a predetermined period of time, and, when the integrated air flow rate actual value attains or exceeds an integrated air flow rate reference level q, fuel is injected for a predetermined period of time t as seen in Fig. 16. That is, fuel is injected at the timing at which the integrated instantaneous air flow rate actual value has attained the integrated air flow rate reference level Q,. In Fig. 16, there are shown three integrated air flow reference levels Q", Q,2 and Q,3. When the integrated air flow rate reference level is shifted from Q,i to Q12, the fuel-air mixture becomes richer, while when it is shifted from Q2 to Q3, the fuel-air mixture becomes leaner. According to this system, the integrated air flow rate reference value Q, is suitably shifted so as to adjust the air-fuel ratio (A/F) as described. A rich fuel-in mixture is required during warming-up in the engine starting stage, and this can be achieved by reducing the integrated air flow rate reference level Q,. For the optimized control of the air-fuel ratio, the integrated air flow rate reference level Q, can be suitably adjusted by the ON-OFF of the output from an O2 sensor (not shown).
  • Fig. 17 is a flowchart for processing the taking-in of the output signal of the hot-wire type flow rate sensor and the timing of the fuel injection.
  • Referring to Fig. 17, judgement is made in a step 801 as to whether the interruption is an INTL interruption or not. When the result of judgement in the step 801 proves that the interruption is an INTL one, the ADV REG in IGNC 138 is set so as to complete the INTL interruption processing program. When the result of judgement in the step 801 proves, on the contrary, that the interruption is not the INTL one, judgement is made in a step 805 as to whether the interruption is the QA timer interruption or not. When the result of judgement in the step 801 proves that the interruption is a QA timer interruption, activation is made for taking-in the output of the hot-wire type flow rate sensor in a step 806, and taking-in of the output of the hot-wire type flow rate sensor is performed in a step 807. The instantaneous air flow rate qA as shown in the equation (5) is computed in a step 808 and the integration processing is performed in a step 809. Judgement is made in a step 810 as to whether the integrated value of instantaneous air flow rate has reached the integrated air flow rate reference level. When the result of judgement in the step 810 proves that the integrated air flow rate reference level has been reached, a period of time of fuel injection t corresponding to the integrated air flow rate reference level is set in a step 811 into the INJD REG of INJC 134 (Fig. 5), and basic injection pulse is produced in a step 812 from the INJD REG of INJC 134 to the injector 12 through the AND gate 136 to initiate the injection with the basic fuel amount Tp. At this time, the width of the basic injection pulse is determined by the period of time t for injection, and the amount of basic fuel injection Tp is determined by the integrated air flow rate reference level. In a step 813, the difference between the integrated air flow rate actual value and the integrated air flow rate reference level is computed to regard it as the present integrated air flow rate. When the result of judgement in the step 805 proves that the interruption is not a QA timer interruption, judgement is made in a step 815 as to whether the interruption is an ADC interruption or not. When the result of judgement in the step 815 proves that it is an ADC one, judgement is made in a step 816 as to whether or not the IST flag is in the state "1". When the result of judgement in the step 816 is "YES", the hot-wire type flow rate sensor is activated and the output of the same is taken-in in a step 817. The thus taken-in value of the air flow rate is used for detection of the engine start due to rotation torque of wheels. When the result of judgement in the step 815 proves that the interruption is not an ADC one, as well as when the result of judgement in the step 816 is "NO", the processing is shifted to the INTV interruption processing 606 in Fig. 14.
  • Fig. 18 shows the relation between the temperature TW of engine cooling water sensed by the cooling water temperature sensor 56 and the air flow rate reference level. That is, Fig. 18 shows how the reference level is varied relative to the output signal of the water temperature sensor 56. The temperature range of from -40°C to 40°C corresponds to the warming-up level in which the engine is started from its cold state. The temperature range from 40°C to 85°C corresponds to the normal starting level, and the temperature range higher than 85°C corresponds to the hot re-starting level. As soon as the engine key is turned on to start the engine, the sensor output signal indicative of the temperature of the engine cooling water is taken into the ADC1 so that the air amount reference level corresponding to the sensed temperature can be set by comparison according to the relation shown in Fig. 18. The INTST program 624 shown in Fig. 14 is executed for this purpose.
  • Now, the fuel injection control processing in acceleration using a fuel injection control apparatus will be explained with reference to Figs. 19 to 28.
  • Fig. 19 shows a fuel control processing flow in acceleration from an idle or deceleration state. In the embodiment under consideration, the amount of additional fuel injection is increased when the engine is accelerated from an idle or deceleration state. This process is executed at intervals of the 10 msec.
  • First, step 901 decides whether or not the idle siwtch 148 shown in Fig. 5 is turned on, and if it is on, in step 902 the idle switch flag "1" is set in RAM, followed by step 903. If it is proved that the idle switch is off in step 901, on the other hand, the process is passed to step 903, where the throttle valve opening TH is detected by the throttle valve opening sensor 116 and is stored in RAM. Then, the throttle valve opening TH detected at step 904 is compared with the throttle valve opening TH (OLD) which has been detected and stored in RAM 30 msec before, and it is decided whether the throttle opening change rate ATH (ATH=TH-TH (OLD)) is positive or not, that is, the acceleration state is involved or not. If ATHáO, that is, the acceleration state is not involved, the process proceeds to step 910. If it is decided that ATH is larger than zero, by contrast, the compensation factor K for acceleration injection is computed on the basis of ATH in step 905. Then, in step 906, it is decided whether or not the idle switch flag is "1". If the flag is "1", it is decided that the acceleration from idle or deceleration state is involved, and in step 907, the product of the compensation facktor K and a predetermined value n (n>1) is determined, so that the factor nK is multiplied by the basic amount of injection T determined in step 812 in Fig. 17, thus computing the additional amount of fuel injection To. When the flag is not "1 ", on the other hand, the additional amount of fuel injection To is computed from the compensation factor K.
  • . In step 909, the additional amount of fuel injection To is injected. Namely, an interruption injection pulse c is produced after the basic pulse a and an additional injection pulse b in addition to the basic injection pulse a is produced.
  • Step 910 decides whether or not the idle switch is off, and if the switch is off, the flag "1" is reset. Thus, in the acceleration just after an idle or deceleration state, a greater amount of fuel injection than at other acceleration states is injected.
  • This obviates the disadvantage of the conventional systems that the basic amount of fuel injection in an idle or deceleration state is so small that the intake manifoJd is not sufficiently wetted and therefore it takes some time to sufficiently wet the intake manifold in acceleration in spite of the additional fuel. injection, resulting in an insufficient acceleration.
  • If it is decided at time point t, that the throttle opening change rate ATH is positive as shown in the time chart of Fig. 20, interruption injection pulses c are produced at step 909 at intervals of 10 msec after the basic injection pulse a produced at step 812 of Fig. 17. Further, an additional injection pulse b is produced in addition to the basic injection pulse a. The pulse widths of the interruption injection pulse c and the additional injection pulse b are determined by the additional injection amount To and are set to a value larger than in the conventional systems.
  • Thereafter, as long as it is decided that ATH is larger than zero, the additional injection amount To is computed on the basis of ATH so that an interruption injection pulse and an additional injection pulse with the pulse width determined by the additional injection amount To are produced.
  • After that, in response to the decision at time point t3 that ATHáO, the additional injection is stopped and only the basic injection pulse a is produced.
  • In this way, as shown in Fig. 20 (C), the fuel air mixture is prevented from being lean near the start of acceleration (initial state of acceleration corresponding to a period ti-t2) thereby improving acceleration.
  • In each embodiment of the present invention, additional injection may be performed either by the interruption injection pulse or by the additional injection pulse.
  • The first embodiment of the present invention will be explained with reference to the flowchart of Fig. 21. In this embodiment, the amount of additional injection in acceleration is changed in accordance with the engine load thereby to prevent the mixture from being lean near the start of acceleration from small load state. This flowchart is executed at intervals of 10 msec.
  • In this diagram, step 921 fetches and subjects the throttle opening TH to AID conversion and the result is stored in the RAM. In next step 922, the difference ATH between the value TH fetched presently and the value TH (OLD) introduced 30 msec before is determined, followed by step 924 for deciding whether or not the difference ATH is larger than zero, that is, whether or not an acceleration is involved. If it is decided that an acceleration is involved, step 923 computes the compensation factor K, for acceleration injection from the throttle opening change rate ATH.
  • Then, step 925 multiplies the compensation factor K, for acceleration injection by the basic injection amount Tp to compute the additional fuel amount To for acceleration.
  • In next step 926, a value representing the engine load, that is, the negative pressure Pn at or about the throttle valve is detected from the output of the negative pressure sensor 119 (Fig. 5). In this way, the embodiment under consideration uses the negative pressure as a value representing the load so that the smaller the negative pressure, that is, the nearer to the atmospheric pressure, it is decided that the opening of the throttle valve is larger, that is, the load is larger. In a system for producing the basic injection pulse at each 180° in crank rotation according to equation (7), on the other hand, the load may be measured from the basic fuel injection amount (K Q/N).
  • Step 926 determines the compensation factor K for additional fuel injection from the three-dimensional map as shown in Fig. 22 on the basis of the negative pressure Pn and the cooling water temperature Tw, followed by step 927 where the compensated additional fuel injection amount T is determined from the additional fuel injection amount To for acceleration and the compensation factor K as T=ToxK. In step 928, the compensated additional fuel injection amount T for acceleration is injected.
  • In other words, an interruption injection pulse c and an additional injection pulse b, the pulse widths of which are determined by the additional injection amount T, are produced.
  • In Fig. 22, the X-axis represents the negative pressure Pn and the Y-axis the cooling water temperature Tw and the Z-axis the compensation factor K for acceleration.
  • In this embodiment, the compensation factor K is determined continuously for all the load conditions by use of a three-dimensional map. The additional fuel injection amount alternatively be increased only when the load is below a predetermined value (such as when the negative pressure Pn is more than a predetermined value). In this case, step 926 decides whether or not the load is smaller than a predetermined value, and only when it is decided that the load is smaller than the predetermined value, the compensation factor K determined by the cooling water temperature Tw may be read from a two-dimensional map. Alternatively, when it is decided that the load is not smaller than the predetermined value, the additional injection amount To may be injected in step 928. In this embodiment, the additional injection amount may be obtained without regard to the cooling water temperature Tw.
  • In this way, according to the present embodiment, a sufficient amount of additional fuel is injected in acceleration from small load state, so that the mixture is prevented from being lean near the start of acceleration, thus achieving a superior acceleration.
  • Fig. 23 is a flowchart for achieving a satisfactory acceleration by preventing the mixture from being lean near the start of acceleration from low engine speed by changing the amount of additional fuel injection in accordance with the engine speed. In this second embodiment also, the flowchart of Fig. 23 is executed at intervals of 10 msec.
  • In this diagram, step 941 fetches a throttle opening and subjects the value TH thereof to A/D conversion and the result of conversion is stored in the RAM. Then, in step 942, the difference ATH between the value TH presently fetched and the value TH (OLD) fetched 30 msec previously, that is, the value ATH=TH-TH (OLD) is determined.
  • Step 943 determines whether or not this value ATH is larger than zero, and if it is decided that it is larger than zero, that is, an acceleration is involved, then step 944 computes the compensation factor K, for acceleration injection from the throttle opening change rate ATH. Then, step 945 computes the additional fuel injection amount To for acceleration from the basic fuel injection amount Tp and the compensation factor K, for accelerating injection. That is, To is determined from TpxK,.
  • In next step 946, the compensation factor K is retrieved from the map as shown in Fig. 24 on the basis of the engine speed N, followed by the step 947 for computing the additional fuel injection amount T for acceleration, from ToxK=T. Then, in step 948, the additional fuel injection amount T for acceleration is injected.
  • In the embodiments of Fig. 21 and 23, the amount of additional fuel injection is large near the start of acceleration and decreases with increase in the load or engine speed, thereby maintaining a proper air-fuel ratio and performing satisfactory acceleration.
  • As seen from the above description, according to the present invention, the amount of fuel injection is increased in order to prevent the mixture gas from being lean near the start of acceleration.
  • Now, assuming that as in the embodiment of Fig. 19, the additional fuel injection amount is maintained constant during the acceleration period (namely, during the time points between t, and t3 in Fig. 20), the air-fuel ratio is likely to be reduced, that is, the mixture is likely to become rich near the end of acceleration (i.e., during the period from t2 to t3). The air-fuel ratio can be maintained at a proper value by increasing the additional fuel injection amount near the start of acceleration and then by reducing the same gradually.
  • An embodiment for processing the fuel control in this manner will be explained with reference to the flowchart of Fig. 25.
  • The operation of this flowchart is activated by the interrruption at intervals of 10 msec. First, step 950 decides whether or not the throttle opening change rate ATH is positive, that is, an acceleration is involved. If it is decided that an acceleration is involved, step 951 determines the number of compensations for additional fuel injection amount on the basis of ATH and sets the number in a soft counter in the RAM. This number of compensations is proportional substantially to the value ATH.
  • Next in step 952, the compensation factor K, for acceleration injection is computed on the basis of ATH, followed by step 953 for computing the initial value To of the additional fuel injection amount for acceleration by multiplying the basic fuel injection amount T by K,.
  • Step 954 computes the additional fuel injection amount T from the initial value To and the content of the counter for counting the number of compensations provided in the RAM. The additional injection amount T is substantially proportional to the product of the initial value To and the content of the counter, and is reduced with the decrease of the content of the counter.
  • In next step 955, the additional fuel injection amount T is set in the register 134, and an additional injection pulse and an interruption injection pulse are produced on the basis of the value T.
  • In step 956, it is decided whether or not the data in the counter is zero, and if it is zero, the additional injection is ended, while if the data in the counter is not zero, the process is passed to step 957. In step 957, it is decided whether or not a predetermined time (10 msec in this case) has passed, and if the predetermined time has passed, the data in the counter is reduced by one in step 958.
  • On the basis of the data in the counter after this subtraction, the additional fuel is injected. In this way, the amount of additional fuel injection is steadily reduced from the start of acceleration as shown in Fig. 26 (C) thereby to prevent the mixture from being rich near the end of acceleration. As apparent from Fig. 26 (D), the width of the additional injection pulse and the interruption injection pulse is reduced with the lapse of time of acceleration.
  • In the case where the basic injection pulse is produced at the crank revolution of each 180 degrees, the counter data may be reduced in accordance with the reference angle pulse REF produced for crank revolution of each 180 degrees in steps 957 and 958.
  • In this embodiment, in the event of a slow acceleration, wherein the value ATH is relatively small and the acceleration time is almost in a range of 200 msec to 500 msec, the fuel air mixture is likely to be rich because the additional fuel injection responding to the interruption injection pulse c is performed each 10 msec even though the suction air flow rate increases very slowly. Thus, in the case where the acceleration involves a small value of the throttle opening change rate ATH, it is proposed that only the first additional injection is effected for one acceleration, but no additional injection is performed thereafter even if the throttle opening change rate is detected to be positive every 10 msec, to thereby prevent the mixture from being rich.
  • In this embodiment, unlike in the aforementioned embodiments, the additional injection compensation factor K, is not computed according to the value ATH, but is determined according to the opening range to which the value ATH belongs. Further, when the value ATH is less than a. predetermined value, it is decided that it is a slow acceleration to thereby perform the additional injection only once for one acceleration. Alternatively, when the value ATH is not less than the predetermined value, it is decided that it is a normal acceleration to thereby perform the additional acceleration every 10 msec.
  • The flowchart of this control is shown in Fig. 27. Specifically step 1001 fetches the throttle opening TH by interruption at 10 msec intervals, which throttle opening TH subjected to AID conversion and is stored in the RAM. Next, the difference ATH between the presently fetched throttle opening TH and the throttle opening TH (OLD) fetched 30 msec before is determined in step 1002. Step 1003 decides whether or not the value ATH is larger than a predetermined value α1, it is decided that it is not an acceleration state so that step 1004 resets the flag 1 for non-execution of additional injection. If the value ATH is a, or more, on the other hand, step 1005 decides whether or not ATH is a predetermined value a221) or more. If step 1005 decides that ATH is smaller than a2, it is decided that the value ATH belongs to a throttle opening range "1" that is α2>ΔTH≧α1. Further, it is decided that it is a slow acceleration state, so that the value of the compensation factor K, determined from the opening range "1" and water temperature Tw is retrieved from the map in step 1006. Then in step 1007, the amount of additional fuel injection for acceleration commensurate with the compensation factor K, is computed, followed by step 1008 for deciding whether the flag 1 is "0" or not. If it is decided in step 1008 that the flag 1 is not "0", that is, the flag is set, then the decision is that one additional injection based on the range "1" has already been completed and therefore no additional injection is effected any more.
  • If it is decided that the flag 1 is "0", on the other hand, step 1009 effects additional injection once, followed by step 1010 for setting the flag 1. As a result, the additional injection for the range "1" is indicated.
  • When step 1005 decides that the value ATH is a2 or larger, step 1011 decides whether or not ATH is a3 (a3>a2) or more. It is decided at this step 1011 that ATH is less than a3, the resulting decision is that ATH is belongs to an opening range "2", that is, α3>ΔTH≧α2. Further, it is decided that it is a slow acceleration and so in step 1012, the compensation factor K, is determined from the water temperature Tw and the range "2". The additional fuel injection amount for acceleration based on this compensation factor K, is computed at step 1013, followed by step 1014 where it is decided whether or not the flag 2 is "0". If step 1014 decides that the flag 2 is not "0", that is, the flag is set, then no additional fuel injection is effected. When it is decided that the flag 2 is "0", by contrast, step 1015 performs additional fuel injection once so that the flag 2 is set to in step 1016.
  • When step 1011 decides that the value ATH is a3 or more, on the other hand, step 1017 decides whether or not ATH is not less than a predetermined value a4 (a4>a3). If step 1017 decides that ATH is smaller than a4, the resulting decision is that ATH belongs to an opening range "3", that is, α4>ΔTH≧α3. Further, it is decided that it is a slow acceleration, so that step 1018 retrieves the map for the compensation factor K, determined from the range "3" and the water temperature Tw, followed by step 1019 where the additional fuel injection amount for acceleration is computed. Next, in step 1020, it is decided whether or not the flag 3 is "0", and if it is decided that the flag 3 is "0", step 1021 effects an additional injection, followed by step 1022 for setting the flag 3.
  • When step 1020 decides that the flag 3 is not "0", on the other hand, no additional fuel injection is effected.
  • If step 1017 decides that ATH is a4 or more, the resulting decision is that ATH belongs to an opening range "4". Further, it is decided that it is not a slow acceleration but a normal acceleration, so that step 1023 retrieves the map for the compensation factor K1 determined from the range "4" and the water temperature Tw, followed by step 1024 for computing the additional fuel injection amount for acceleration, further followed by step 1025 for additional injection.
  • As seen from above, in the case where α4>ΔTH≧α1, the additional fuel injection according to the range "1", "2" or "3" is effected once as shown in Fig. 28 (B), while when ΔTH≧α4, it is decided that the slow acceleration is not involved, so that the additional fuel injection is repeated as long as the relation OTH?a4 is maintained.
  • The amount of additional fuel injection is larger, the higher the range. In the embodiments of Figs. 19, 23 and 25, like in the embodiments of Figs. 21 and 27, the compensation factor K may be modified in accordance with the cooling water temperature Tw.
  • Now, in any embodiments, the additional fuel injection amount To may be obtained from a map.
  • Referring to Figs. 29 to 31, the INTV interruption processing will be now described. Fig. 29 shows a soft timer table which is provided in the RAM 106 and which is provided with timer blocks in the same number as that of different activation periods activated by various kinds of interruptions. The term "timer block" is defined as a storage area into which time information with respect to the activation period of the task stored in the ROM 104. In Fig. 29, "TMB" described as the left end represents the head address of the soft timer table in the RAM 106. Into each of the timer blocks of the soft timer table, the time information with respect to the above-mentioned activation period is stored from the ROM 104 in starting the engine. That is, when the INTV interruption is performed, for example, at a regular period of time of 10 msec, a value which is integral multiplies of 10 ms and which represents the respective activation period is transferred and stored in the respective timer block.
  • Fig. 30 shows a flowchart for executing the INTV interruption processing 606. In Fig. 30, if the program is activated at a step 626, the soft timer table provided in the RAM 106 is initialized in a step 628. That is, the contents i of the index register is made 0 (zero) and the residual timer T1 stored in the timer block of the address TMB+0 in the timer table is checked. In this case T1 = To. Next, judgement is made in a step 630 as to whether the soft timer checked in the step 628 is in the state of stoppage or not. That is, when the residual time T1 stored in the soft timer table is 0 (zero), the judgement is concluded that the soft timer is in the state of stoppage and that the corresponding task to be activated by the specific soft timer is in the state of stoppage, so that processing is jumped to a step 640 in which the soft timer table is renewed. That is, the above-mentioned judgement is made on the basis of the fact that when the task is stopped, the residual timer is left it as it is without being initialized when it becomes 0 (zero).
  • In the case where the residual timer T,-*O, the processing is shifted to a step 632 in which the residual timer in the time block is renewed. In particular, the residual timer T1 is decremented by 1 (one). Next, judgement is made in a step 634 as to whether the soft timer has reached the activation period or not. When the residual timer T,=0, the judgement is concluded that the activation period has been reached and the processing is shifted to a step 636. If the judgement is concluded that the soft timer has not reached the activation period, on the contrary, the processing is jumped to the step 640 in which the soft timer table is renewed. When the soft timer table has reached the activation period, the residual time T1 is the soft timer table is initialized in the step 636. That is, the timer information with respect to the activation period of the specific task is transferred from the ROM 104 to the RAM 106. After the residual timer T, of the soft timer table has been initialized in the step 636, an activation request for the task corresponding to the soft timer table is issued in a step 638. Then, the soft timer table is renewed in the step 640. That is, the contents of the soft timer table is incremented by 1 (one). Further judgement is made in a step 642 as to whether all the soft timers have been checked or not. That is, since (n+1) soft timer tables are provided in this embodiment as seen in Fig. 30, the judgement is concluded that all the soft timer tables have checked when the contents i of the index register is i=n+1 and the INTV interruption processing program 606 is terminated in a step 644. When the judgement is concluded in the step 642 that not all the soft timer tables has been checked, on the contrary, the processing is returned back to the step 630 so that the above-mentioned processings are performed.
  • As described above, in accordance with various kinds of interruptions activation requests for specific tasks corresponding to the interruptions are issued and the specific tasks are executed in response to the activation requests. However, all the tasks listed up in Table 2 are not always executed, but pieces of time information with respect to activation periods of the respective tasks provided in the ROM 104 are selected on the basis of the running information as to the engine and the selected time information is stored in the RAM 106. Assuming that the activation period of a given task is, for example 20 msec, the task is activated at the regular period of time of 20 msec, and if the activation of the task is necessary to be continuously effected in accordance with the running condition of engine, the soft timer table corresponding to the specific task is always renewed so as to be initialized.
  • Next, the status in which the activation of tasks is stopped due to various interruptions in accordance with the running condition of the engine will be described by referring to the time chart of Fig. 31. Upon the actuation of the START-SW 152 (Fig. 5), the CPU 102 is actuated and "1" is set to each of the software flags 1ST and EM. The software flag IST is provided for indicating that the engine is in its pre-starting state and the software flag EM is provided for the inhibition of ENST interruption. In accordance with these two flags, judgement is made as to whether the engine is in its pre-starting state, in its starting state, or in its post-starting state. When the START-SW 152 is actuated to turn on power, the task ADIN1 is first activated so that the data, such as the cooling water temperature, the battery voltage, necessary for the starting of the engine are taken from the various sensors into the ADC 122 through the MPX 120, and every time all these data have been successively inputted, the task HOSEI, that is, the compensation task, is activated so that compensation is computed on the basis of the inputted data. Further, every time all the data from the various sensors have been successively inputted to the ADC 122 in accordance with the ADIN1, the task ISTRT is activated so that the fuel injection amount necessary in starting of the engine is computed. The above-mentioned three tasks, that is, the task ADIN1, the task HOSEI and the task ISTRT are activated in accordance with the initial processing program 202.
  • Upon the turning ON of the START-SW 152, the three tasks, that is, the task ADIN1, the task HOSEI and the task ISTRT are activated by the interruption signal of the task ISTRT. That is, these tasks have to be executed only in the period in which the START-SW 152 is in its ON state (in the period of cranking of the engine). In this period, pieces of time information with respect to the predetermined activation periods are transferred from the ROM 104 to the soft timer tables corresponding to the respective tasks provided in the RAM 106. Further, in this period, the residual time T, in the respective soft timer table is initialized and the setting of activation period is repeatedly performed. Being provided for computing the fuel injection amount in the starting of the engine, the task MONIT becomes unnecessary after the engine starting, and therefore after the task has been executed predetermined times, the activation of the soft timer is stopped and tasks necessary in the post-starting state of the engine other than the task MONIT are activated in response to a stoppage signal produced upon the termination of the task MONIT. In order to perform the stoppage of the task by the soft timer, "0" is stored in the soft timer table corresponding to the task in response to a signal indicating the termination of the task at the judgement point of time at the end of the task. That is, the stoppage of task is effected by clearing the contents of the soft timer corresponding to the task. Thus arrangement is made such that the stoppage of task activation can be simply attained by the soft timer and therefore a plurality of tasks having different activation periods from each other can be controlled effectively and reliably.
  • Fig. 32 shows an IRQ generating circuit. An INTV IRQ generating circuit is constituted by a register 735, a counter 736, a comparator 737, and a flip-flop 738, and a period for generating INTV IRQ, for example 10 msec, is set into the register 735. A clock pulse is set into the counter 736, and when the count of the counter 736 becomes coincident with the contents of the register 735, the flip-flop 738 is set. In this set state of the flip-flop 738, the counter 736 is cleared and the counting is restarted. Therefore, the INTV IRQ is generated at a predetermined regular interval of time (10 msec). An ENST IRQ generating circuit for detecting engine stoppage is constituted by a register 741, a counter 742, a comparator 743, and a flip-flop 744. The register 741, the counter 742 and the comparator 743 operate in the same manner as described above in the INTV IRQ generating circuit so that when the count of the counter 742 has reached the contents of the register 741, an ENST IRQ is generated. However, since the counter 742 is cleared by an REF pulse generated by a crank angle sensor at a predetermined interval of crank angles during the rotation of engine, the count of the counter 742 cannot reach the contents of the register 741 so that no ENST IRQ is generated.
  • An INTV IRQ generated by the flip-flop 738, an ENST IRQ generated by the flip-flop 744, and IRQs generated by the ADC1 and ADC2 are set into flip- flops 740, 746, 764 and 768 respectively. A signal for generating/inhibiting IRQ is set into each of flip- flops 739, 745, 762, and 766. If "H" is set in any one of the flip- flops 739, 745, 762, and 766, corresponding one of AND gates 748, 750, 770, and 772 is enabled so that an IRQ is immediately generated through an OR gate 751. Thus, an IRQ can be inhibited from generation or released from inhibition by setting "H" or "L" into the respective flip- flops 739, 745, 762 and 766. The cause of generation of IRQ is removed by taking the contents of the flip- flop 740, 746, 764 and 768 into the CPU.
  • When the CPU begins to execute a program in response to an IRQ, it is necessary to delete the IRQ signal and therefore specific one of the flip- flops 740, 746, 764, and 768 concerned with the specific IRQ is cleared.

Claims (3)

1. A control method for internal combustion engines having actuator means controlling respective energy conversion functions of said engine including a fuel injector supplying fuel to said engine and sensor means including a throttle opening sensor detecting the opening of a throttle valve, a crank angle sensor for determining the rotational speed of the engine, a negative pressure sensor detecting a negative pressure in the intake pipe and a water temperature sensor for detecting the temperature of the cooling water; comprising following steps:
successively fetching output signals of said throttle opening sensor with a predetermined time interval and calculating a throttle opening change rate ATH of said throttle valve on the basis of the output signal of said throttle opening sensor to thereby determine an acceleration state when the calculated throttle opening change rate is positive,
supplying a basic amount of fuel (Tp) to said engine in a steady operation condition of said engine and supplying an additional amount of fuel in addition to said basic amount of fuel in an acceleration condition, said additional amount of fuel having a basic value (To) determined in accordance with the calculated throttle opening change rate;
calculating a fuel amount compensation factor (K,) at the acceleration condition on the basis of the present value of the calculated throttle opening change rate for determining the basic value (To) of the additional amount of fuel by multiplying the basic amount of fuel (Tp) by (K,) so that To=T?xKi; and
modifying the basic value (To) of the additional amount of fuel in accordance with the operating condition of said engine, characterized by following steps:
determining a small load state in accordance with the negative pressure;
determining the common occurence of both an acceleration condition and a small load state, wherein if this common occurrence has been determined, the step of modifying the basic value (To) of the additional amount of fuel includes
- calculating a modifying factor K, the value of which depends on the value of the small load according to which a small load state has been determined and/or the cooling water temperature, so that the modifying factor K decreases with increasing small load,
- determining the modified additional amount (T) of fuel by multiplying the basic value (To) of the additional amount of fuel by the modifying factor (K) so that T=ToxK.
2. A control method for internal combustion engines having actuator means controlling respective energy conversion functions of said engine including a fuel injector supplying fuel to said engine and sensor means including a throttle opening sensor detecting the opening of a throttle valve, a crank angle sensor for determining the rotational speed of the engine, a negative pressure sensor detecting a negative pressure in the intake pipe and a water temperature sensor for detecting the temperature of the cooling water; comprising following steps:
successively fetching output signals of said throttle opening sensor with a predetermined time interval and calculating a throttle opening change rate ATH of said throttle valve on the basis of the output signal of said throttle opening sensor to thereby determine an acceleration state when the calculated throttle opening change rate is positive,
supplying a basic amount of fuel (Tp) to said engine in a steady operation condition of said engine and supplying an additional amount of fuel in addition to said basic amount of fuel in an acceleration condition, said additional amount of fuel having a basic value (To) determined in accordance with the calculated throttle opening change rate;
calculating a fuel amount compensation factor (K,) at the acceleration condition on the basis of the present value of the calculated throttle opening change rate for determining the basic value (To) of the additional amount of fuel by multiplying the basic amount of fuel (Tp) by (K,) so that To=TpxK,; and
modifying the basic value (To) of the additional amount of fuel in accordance with the operating condition of said engine, characterized by following steps:
determining a state of low engine speed from the revolution number of the engine;
determining the common occurrence of both an acceleration condition and a low engine speed, wherein if this common occurrence has been determined, the step of modifying the basic value (To) of the additional amount of fuel includes
- calculating a modifying factor K, the value of which depends on the value of the low engine speed according to which a low engine speed state has been determined, so that the modifying factor K decreases with increasing low engine speed, and
- determining the modified additional amount (T) of fuel by multiplying the basic value (To) of the additional amount of fuel by the modifying factor (K) so that T=ToxK.
3. A control method according to claim s 1 or 2, characterized in that said additional fuel injection is performed once for one acceleration when the throttle opening change rate is larger than zero but less than a predetermined value.
EP83110424A 1982-10-20 1983-10-19 Control method for internal combustion engines Expired EP0106366B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP182902/82 1982-10-20
JP57182904A JPS5974339A (en) 1982-10-20 1982-10-20 Fuel injector
JP182904/82 1982-10-20
JP18290282A JPS5974337A (en) 1982-10-20 1982-10-20 Fuel injector

Publications (3)

Publication Number Publication Date
EP0106366A2 EP0106366A2 (en) 1984-04-25
EP0106366A3 EP0106366A3 (en) 1984-12-19
EP0106366B1 true EP0106366B1 (en) 1988-06-08

Family

ID=26501520

Family Applications (1)

Application Number Title Priority Date Filing Date
EP83110424A Expired EP0106366B1 (en) 1982-10-20 1983-10-19 Control method for internal combustion engines

Country Status (2)

Country Link
EP (1) EP0106366B1 (en)
DE (1) DE3376995D1 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60261947A (en) * 1984-06-08 1985-12-25 Hitachi Ltd Accelerative correction of fuel injector
JPS611844A (en) * 1984-06-15 1986-01-07 Automob Antipollut & Saf Res Center Fuel injection device
US4766873A (en) * 1985-05-21 1988-08-30 Toyota Jidosha Kabushiki Kaisha System for controlling intake pressure in a supercharged internal combustion engine
DE3522806A1 (en) * 1985-06-26 1987-01-08 Pierburg Gmbh & Co Kg METHOD FOR OPTIMUM ADJUSTING A FUEL AMOUNT
JPH0765527B2 (en) * 1986-09-01 1995-07-19 株式会社日立製作所 Fuel control method
DE3634551A1 (en) * 1986-10-10 1988-04-21 Bosch Gmbh Robert METHOD FOR ELECTRONICALLY DETERMINING THE FUEL AMOUNT OF AN INTERNAL COMBUSTION ENGINE
DE3705577A1 (en) * 1987-02-21 1988-09-01 Bosch Gmbh Robert METHOD FOR PRIORITY-DEPENDENT PROCESSING OF DIFFERENT REQUIREMENTS OF A COMPUTER
JPH01125532A (en) * 1987-11-10 1989-05-18 Japan Electron Control Syst Co Ltd Controller for internal combustion engine
JP2507599B2 (en) * 1989-05-29 1996-06-12 株式会社日立製作所 Mixture supply device for internal combustion engine
US7591135B2 (en) * 2004-12-29 2009-09-22 Honeywell International Inc. Method and system for using a measure of fueling rate in the air side control of an engine

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4227490A (en) * 1978-02-13 1980-10-14 Toyota Jidosha Kogyo Kabushiki Kaisha Electronic control fuel injection system which compensates for fuel drying in an intake passage
EP0047969A2 (en) * 1980-09-12 1982-03-24 Hitachi, Ltd. Engine combustion control method
EP0054112A2 (en) * 1980-12-12 1982-06-23 Robert Bosch Gmbh Control method and electronically controlled metering system for an internal-combustion motor

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6047460B2 (en) * 1977-10-19 1985-10-22 トヨタ自動車株式会社 fuel injection control device
DE2841268A1 (en) * 1978-09-22 1980-04-03 Bosch Gmbh Robert DEVICE FOR INCREASING FUEL SUPPLY IN INTERNAL COMBUSTION ENGINES IN ACCELERATION
CA1154121A (en) * 1979-09-27 1983-09-20 Laszlo Hideg Fuel metering system for an internal combustion engine
JPS5848726A (en) * 1981-09-09 1983-03-22 Toyota Motor Corp Fuel injection controlling apparatus for internal- combustion engine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4227490A (en) * 1978-02-13 1980-10-14 Toyota Jidosha Kogyo Kabushiki Kaisha Electronic control fuel injection system which compensates for fuel drying in an intake passage
EP0047969A2 (en) * 1980-09-12 1982-03-24 Hitachi, Ltd. Engine combustion control method
EP0054112A2 (en) * 1980-12-12 1982-06-23 Robert Bosch Gmbh Control method and electronically controlled metering system for an internal-combustion motor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Mot. technik, at. 25, 1981, pp. 48-60 *

Also Published As

Publication number Publication date
DE3376995D1 (en) 1988-07-14
EP0106366A3 (en) 1984-12-19
EP0106366A2 (en) 1984-04-25

Similar Documents

Publication Publication Date Title
US4630206A (en) Method of fuel injection into engine
EP0065221B1 (en) Internal combustion engine control apparatus
US4482962A (en) Engine control method
EP0106366B1 (en) Control method for internal combustion engines
US4508087A (en) Method for controlling fuel supply to an internal combustion engine after termination of fuel cut
US4455980A (en) Engine combustion control method
US4528964A (en) Fuel injection control apparatus for internal combustion engine
US4938199A (en) Method for controlling the air-fuel ratio in vehicle internal combustion engines
US4524739A (en) Engine control method
KR880001665B1 (en) Fuel injection control apparatus for internal combustion engine
US4564907A (en) Electronic control apparatus for internal combustion engine
KR920003201B1 (en) Fuel injection control apparatus for internal combustion engine
JPH0138176B2 (en)
EP0106365A2 (en) Fuel injection control apparatus for internal combustion engine
US4522178A (en) Method of fuel control in engine
EP0296323B1 (en) Engine control method
EP0087802B1 (en) Fuel control apparatus for internal combustion engine
JPS5974337A (en) Fuel injector
JP3630694B2 (en) Engine transmission cooperative control method and apparatus
CA1297359C (en) Method for controlling fuel supply on start of internal combustionengine
JPS6019942A (en) Method of feedback control of air-fuel ratio of electronically controlled fuel injection engine
JPS5830424A (en) Control method of electronically controlled fuel injection
JPH01195943A (en) Idling speed control method for engine
JPS5841361A (en) Electronic type engine controller
JPH0362895B2 (en)

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Designated state(s): DE FR GB IT SE

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

AK Designated contracting states

Designated state(s): DE FR GB IT SE

17P Request for examination filed

Effective date: 19841220

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE FR GB

REF Corresponds to:

Ref document number: 3376995

Country of ref document: DE

Date of ref document: 19880714

ET Fr: translation filed
PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed
PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 19930831

Year of fee payment: 11

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 19931008

Year of fee payment: 11

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 19931228

Year of fee payment: 11

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Effective date: 19941019

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 19941019

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Effective date: 19950630

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Effective date: 19950701

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST