BACKGROUND OF THE INVENTION 
     This invention relates to an improved control method and apparatus in which the control values of the individual cylinders of a multicylinder internal combustion engine are determined independently of one another, and particularly to a control method and apparatus suitable for controlling the ignition timing of a gasoline engine of an automobile incorporating a fuel injection control device which is computerized and electronically controlled. 
     A spark ignition engine, especially a gasoline engine of an automobile, must satisfy a severe exhaust gas regulation and at the same time, is required to have a sufficiently high performance. In recent years, control apparatuses have come to be adopted which are of the type that receives various kinds of data representing the operating condition of the engine one after another, and according to these data, calculates specified control data for the individual cylinders, and controls the supplied fuel quantities and ignition timing of the cylinders independently of one another. An example of such a control system is disclosed in Japanese Patent Application laid-open No. JP-A-56-92330 filed by HITACHI, LTD., for instance. 
     Meanwhile, in the control apparatuses of this conventional type, various kinds of data representing the operating condition of the engine are entered one after another as time elapses and are updated in a regular sequence, and according to the updated data, controlled variables such as fuel injection quantity and ignition timing are calculated in a regular sequence. 
     The problem with the conventional control method is as follows. In a cycle (suction stroke-compression stroke combustion stroke-exhaust stroke) in a certain cylinder, if the operating condition of the engine changes between a given sampling time of data and a subsequent sampling time, the supplied fuel flow is determined according to data at the previous sampling time, and the ignition timing is determined according to data at the subsequent sampling time. This means that an ignition timing cannot be obtained which adequately corresponds to the intake air quantity of that cycle. If, for example, the engine is accelerated suddenly, knocking or misfire will result from the inadequate ignition timing. The knocking or misfire increases components of NOx and HC in the exhaust gas, and causes drivability deterioration by a change in torque and increases the fuel consumption. 
     Known literature about control technology of the internal combustion engine includes Japanese Patent Application laid-open No. JP-A-64-8339 filed by Fuji Heavy Industries, Ltd. on June 30, 1987 and laid open on Jan. 12, 1989; JP-A-1-125566 filed jointly by Nissan Motor Co., Ltd. and Hitachi, Ltd. on Nov. 9, 1987 and laid open on May 18, 1989; JP-A-1-125567 filed on Nov. 11, 1987 by Hitachi, Ltd. and laid-open on May 18, 1989; JP-A-1-285641 filed on May 9, 1988 by Eagle Industries Co., Ltd. on May 9, 1988 and laid open on Nov. 16, 1989; JP-A-1-121569 filed on Nov. 2, 1987 by Fuji Heavy Industries, Ltd. and laid open on May 15, 1989; U.S. Pat. No. 4,596,220 granted to Oosuga et al. on June 24, 1986; U.S. Pat. No. 4,167,923 granted to Iwase et al. on Sept. 18, 1979; and U.S. Pat. No. 4,690,122 granted to Sasakura et al. on Sept. 1, 1979. 
     SUMMARY OF THE INVENTION 
     The object of this invention is to provide an improved control method and apparatus whereby the optimum controlled variables are determined in the field of the engine control method which determines control variables for the individual cylinders independently of one another in a multicylinder internal combustion engine. 
     The control method of a multicylinder internal combustion engine according to this invention comprises a step of detecting data representing the operating condition of the engine, a step of storing data, a step of determining a first control variable at a certain time of a certain stroke of each cylinder according to said stored data, and a step of determining a second control variable at a later time in said stroke according to the same stored data. 
     A control apparatus of a multicylinder internal combustion engine according to this invention includes a device for detecting data representing the operating condition of the engine, a memory device for storing data, a device for calculating a first control variable at a certain time of a certain stroke of each cylinder according to data in said memory device, and a device for determining a second control variable at a later time in said stroke according to the same stored data. 
     According to this invention, it is possible to determine adequate controlled variables in a cycle by using data used in determining a first control variable again for determining a second control variable later in a complete cycle. 
     For example, when this invention is applied to an ignition timing control method of an engine, in case the engine speed changes suddenly during acceleration or deceleration, the common data obtained at the same time is used for determining both the values of fuel flow rate and ignition timing in a complete cycle, so that a value of optimum ignition timing corresponding to the load quantity and the engine speed can be determined. Therefore, a misfire or knocking can be prevented, thus obviating an increase in the regulated components in the exhaust gas, drivability deterioration, and fuel consumption increase. 
     This invention can be applied not only to the ignition timing control method, which will be described below, but also to methods of determining other control parameters. 
    
    
     DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a construction diagram showing an example of an engine control system in which a first embodiment of the ignition timing control apparatus according to this invention is applied; 
     FIG. 2 is a timing chart for explaining the operation of the first embodiment of this invention; 
     FIG. 3 is a block diagram of the control unit; 
     FIG. 4 is an explanatory diagram in analog form of a map used in the first embodiment of this invention; 
     FIG. 5 is an explanatory diagram in digital form of the map; 
     FIG. 6 is a characteristic diagram showing the relation between ignition timing and engine torque; 
     FIG. 7 is a timing chart for explaining the operation of a prior art apparatus; 
     FIG. 8 is a characteristic diagram for explaining the difference between the embodiment of this invention and the conventional example; 
     FIGS. 9A and 9B are flowcharts for explaining the operation of the first embodiment of this invention; 
     FIGS. 10A and 10B are flowcharts for explaining the operation of a second embodiment of this invention; 
     FIG. 11 is a control table of the interruption injection pulse width relative to the valve opening change rate; and 
     FIGS. 12 and 13 are characteristic diagrams serving as control tables. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     An ignition timing control apparatus of an internal combustion engine according to this invention will be described in detail with reference to the embodiments illustrated. 
     FIG. 1 is an example of an engine control system in which this invention is applied. In FIG. 1, air which is drawn in by the engine enters through an entry opening 2 of an air cleaner 1. The air passes through a hot wire type air flowmeter 3 for detecting the intake air flow, a duct 4, and a throttle body containing a throttle valve to control the intake air flow, and then goes into a collector or an air chamber 6. From this collector 6, the air is distributed into inlet ports 8 connected to the cylinders of an engine 7, and led into the cylinders. 
     On the other hand, from a fuel tank 9, fuel is sucked and pressurized by a fuel pump 10, and is supplied to the fuel system including a fuel damper 11, a fuel filter 12, a fuel injection valve (injector) 13, and a fuel pressure regulator 14. The fuel is controlled at constant pressure by the fuel pressure regulator 14, and is injected into the inlet ports 8 from the injectors 13 provided at the inlet ports 8. 
     The air flowmeter 3 outputs signals representing the intake air flow rate, and the signals are input into a control unit 15. 
     The throttle valve 5 is connected with a throttle sensor 18 to detect the opening angle of the throttle valve 5. Output signals from the throttle sensor 18 are input into the control unit 15. 
     Then, a distributor 16 has a crank angle sensor 19 built in, and the crank angle sensor 19 outputs a reference angle signal REF representing the rotational position of the crankshaft and an angle signal POS for detecting the rotating speed (number of revolutions). These signals are input into the control unit 15. 
     As shown in FIG. 3, the main part of the control unit 15 is formed of a microcomputer composed of an MPU, a ROM, and an LSI circuit including an A/D converter, input/output circuits, etc. The control unit 15 receives input signals representing the operating condition of the engine, such as signals from the air flowmeter 3, the distributor 16, and the throttle sensor 18. In addition, the control unit 15 executes specified arithmetic processes, outputs various control signals produced as the result of the arithmetic processes, provides specified control signals to the injector 13 and an ignition coil 17, and controls the fuel supply quantity and ignition timing. 
     Then, these kinds of control will be described. Referring first to the calculation of the ignition timing, it is calculated using data retrieved from maps having engine speed as abscissa and basic pulse width Tp for the basic values of the fuel injection quantity as ordinates. The maps are shown in FIGS. 4 and 5. FIG. 4 shows a map in analog fashion and FIG. 5 shows a map in digital fashion. These maps show essentially the same thing. The basic pulse width Tp on the axis of ordinates indicates data representing the load on the engine. Therefore, instead of the basic pulse width Tp, it is possible to perform map retrieval by using either the intake air negative pressure Pc or data LDATA directly representing the load on the engine. 
     As shown in FIG. 5, this map is divided into 16 regions both on the axis of ordinates and on the axis of abscissa, and possesses 256 values of data in total. Each region stores a value close to MBT (Minimum Spark Advance for Best Torque) obtainable from the relation between the ignition timing values ADV and the generated torque (shown in FIG. 6) for the engine kept in constant operating condition, which relation is to be measured in advance. 
     The timing relation between the calculation of the injection quantity and the calculation of ignition timing will be described in detail by comparing an embodiment of this invention in FIG. 2 and the conventional example in FIG. 7. 
     A microcomputer in the control unit 15 is so arranged as to execute a 10-ms (millisecond) task and two interruption tasks IRQ 1  and IRQ 2  to calculate the injection quantity and ignition timing. The IRQ 1  occurs at a fuel injection timing and the IRQ 2  at an ignition timing. 
     As can be seen from FIGS. 2 and 7, every 10 ms successively, the microcomputer executes a 10-ms task in which the intake air flow and the engine speed Ne are entered, and executes interruption tasks IRQ 1  and IRQ 2  by which a basic pulse width Tp, an actual fuel injection pulse width Ti, and ignition timing ADV are calculated. In calculating the ignition timing, map retrieval mentioned above is used. 
     The basic pulse width Tp is the injector driving pulse width which gives the basic fuel injection quantity, and can be expressed by ##EQU1## where k is a coefficient. 
     The actual injection quantity is determined by adding a correction value for air-fuel ratio feedback control, a correction value according to the water temperature, and a correction value at starting to the basic injection quantity Tp. This actual injection quantity is expressed by the injection pulse width Ti. 
     Now, let us take a look at a cycle of the No. 3 cylinder which starts at time t 0  and ends at time t n . Referring to, the conventional example of FIG. 7, an injection pulse width Ti 1  at a certain injection timing t i  is data calculated according to an intake air flow Qa 1  and the engine&#39;s number of revolutions Ne 1  at a sampling time t 1  of the preceding 10-ms task, an ignition timing data ADV 2  at the ignition timing in this cycle of the same cylinder is data calculated according to an intake air flow Qa 2  and the engine speed Ne 2  entered at a sampling time t 2  of the 10-ms task immediately before the sampling time t 1 , that is to say, data based on Tp 2  and Ne 2 . 
     Incidentally, if no significant change occurs in the operating condition of the engine between times t 1  and t 2 , there is no problem. 
     However, if, as shown in FIG. 7, the engine is accelerated at time t a  after time t 1  by opening the throttle and this causes differences in data representing the operating condition of the engine between sampling times t 1  and t 2 , there arises a great difference in data on ignition timing of this No. 3 cylinder between ADV 1  and ADV 2 . In other words, the number of revolution does not increase at time t 2  after acceleration time t a , and as a result, the engine speed data Ne 1  and Ne 2  are the same. However, the intake air flow Qa changes notably from Qa 1  to Qa 2 . Therefore, Tp 2  is greater than Tp 1 . The ignition timing values ADV retrieved from the data maps of FIGS. 4 and 5 by using data Tp 1  and Ne 1  at time t 1  and data Tp 2  and Ne 2  (=Ne 1 ) at time t 2 , respectively are ADV 1  and ADV 2 , and a spark-advance amount at the ignition timing data ADV 2  is large. 
     In short, the injection quantity in this cycle has been determined by data Ti 1 , and ignition timing data ADV 2  in the same cycle corresponds to data Ti 2 . The air flow rate sucked in this cycle is Qa 1 . Therefore, an injection quantity adequate for the intake air flow rate Qa 1  before acceleration and an ignition timing value adequate for the intake air flow rate Qa 2  during acceleration are given in one cycle. In consequence, just after the engine is accelerated, ignition takes place with an excessive spark advance in the No. 3 cylinder. Therefore, when the intake air flow rate Qa changes suddenly in a cycle as in acceleration or deceleration, the ignition takes place at inadequate timing. The ignition sometimes takes place with excessive spark retard depending on the value of intake air flow rate. Such an inadequate ignition timing will result in misfire or knocking. FIG. 8 shows the result of experiment conducted on an actual car. As the solid line indicates, a misfire occurred in two cylinders, resulting in a change in torque. The change in torque worsens the drivability, while the misfire increases HC in the exhaust gas and fuel consumption. 
     Let us look at an embodiment of this invention. In this case, the control unit 15 executes processes of FIGS. 9A and 9B, which will be described later. For the same cycle of the same cylinder, interruption tasks IRQ 1  and IRQ 2  are calculation processes executed by using the same data, and in this case, optimum ignition timing data ADV 1  is given to the basic injection pulse width. Therefore, according to this embodiment, even when a sudden change is occurring in data representing the operating condition of the engine due to acceleration, for example, ignition timing adequate for the basic injection quantity Tp (corresponding to load) is always given. As indicated by the dotted line in FIG. 8, a smooth and sufficient acceleration can be obtained without occurrence of a misfire. 
     FIG. 9A shows the processes by the 10-ms task mentioned above. At the step 91, data is read in at 10-ms intervals, which includes the engine&#39;s intake air flow rate Qa, the number of revolutions Ne, and a throttle valve opening data θ th  from the throttle sensor 18. At the subsequent steps 92, 93, and 94, a basic pulse width Tp, an injection pulse width Ti, and ignition timing data ADV are calculated. Of these items, the ignition timing data ADV is obtained by retrieving it from the data map of FIG. 5, is updated successively by writing new data, and is stored in a specified memory such as a register. 
     Referring to FIG. 9B, at the steps 96 and 97 for interruption tasks IRQ 1  and IRQ 2 , data is set in the specified registers INJ#n and IGN#n for control purposes so that the injection quantity and the ignition timing are controlled by data at the same sampling time. Incidentally, n indicates a cylinder number. 
     Therefore, according to this embodiment, since the control operation shown in FIG. 2 is executed securely, even during a transient period of acceleration, for example, accurate ignition timing control can be performed at all times, so that a misfire or knocking is prevented from occurring and a feeling of acceleration is sufficient. 
     A second embodiment of this invention will now be described. 
     When a control operation is performed to rapidly increase the engine speed as in acceleration of a car. It is desirable to quickly increase the fuel supply quantity in order to reduce any delay in response. A well-known measure for this purpose is to apply what is called interruption injection control. 
     An embodiment shown in FIGS. 10A and 10B is a case where this invention is applied to an engine control system in which interruption injection control is implemented. This embodiment will be described as follows. The process by a 10-ms task shown in FIG. 10A is named a 10-ms job, and includes, steps 100, 110, 120, and 130, which are not included in the embodiment of FIG. 9A. Accordingly, the processes by interruption tasks IRQ 1  and IRQ 2 , shown in FIG. 10B, are equivalent to the processes of FIG. 9B with some alterations made. These processes are executed by the control unit 15 according to the program. Description of the steps common to those in FIGS. 9A and 9B is omitted. 
     In FIG. 10A, if an interruption injection is done with an auxiliary nozzle, not shown, at the decision step 100 a decision is made whether or not an interruption injection has been done. For example, this decision can be made by detecting the presence or absence of a valve opening drive signal to the auxiliary nozzle. A valve opening drive signal is generated by the control unit 15 in response to the change rate θ th  /dt of the throttle opening θ th  reaching a predetermined value. And, a value of an interruption injection pulse width Tia is decided which is an increment of acceleration corresponding to the value of the valve opening change rate θ th  /dt by referring to the table of FIG. 11, which is to be prepared and stored in the EP-ROM. If a decision is made that an interruption injection has been done, at the step 110 a spark-advance correction value ΔADV Ti  adequate for the interruption injection pulse width Tia is decided, and the spark-advance correction value ΔADV Ti  is added to an ignition timing data ADV calculated at the step 94 to obtain a corrected ignition timing data HADV. 
     Then the process moves on to the step 120 where a rise rate dNe/dt of the engine speed Ne owing to acceleration is detected, and a decision is made whether or not the detected value exceeds a predetermined value of NeREF. If the rise rate dNe/dt is greater than the predetermined value of NeREF, at the step 130, a spark advance correction value ΔADV Ne  adequate for the rise rate dNe/dt is decided, and a spark advance correction process is performed by adding the spark advance correction value ΔADV Ne  to the ignition timing data ADV obtained at the step 94 or to the corrected ignition timing data HADV obtained at the step 110 to find a corrected ignition timing data HADV. 
     In the processes by the interruption tasks IRQ 1  and IRQ 2 , at the step 150 an injection pulse width Tin is set in a register INJ#n. At the same time, an interruption injection pulse width Tia for an increment of acceleration is set in a register. In addition, at the step 160, either an ignition timing data ADVn (n indicates a cylinder No.) decided at the step 94 or corrected ignition timing data HADVn decided at the step 110 or 130 is set in a register IGN#n. 
     The corrected injection timing HADV at the step 110 is calculated by obtaining a correction amount ΔADV Ti  by retrieving it from a characteristics table, shown in FIG. 12 and stored in the EP-ROM, by the interruption injection pulse width Tia, and by correcting the ignition timing data ADV by using the correction amount ΔADV Ti  with the following equation. 
     
         HADV=ADV+ΔADV.sub.Ti 
    
     Calculation of a corrected ignition timing HADV due to a degree of increase in the number of revolution after the engine is accelerated at the step 130 is performed as follows. A correction amount ΔADV Ne  is retrieved from a characteristics table, shown in FIG. 13 and stored in the EP-ROM, by a change rate dNe/dt of the engine&#39;s number of revolutions per unit time and the ignition timing data ADV or HADV is corrected by using the correction amount ΔADV Ne  with the following equation. 
     
         HADV=ADV+ΔADV.sub.Ne or 
    
     
         HADV=HADV (step 110)+ΔADV.sub.Ne 
    
     Correction processes are not limited to the two corrections mentioned above, but one of them may be used. 
     According to the embodiment shown in FIG. 10, as correction attending acceleration is carried out, an accurate spark advance correction for ignition timing is performed at all times. Misfire or knocking can be prevented reliably, and while an actual feeling of acceleration is sufficient, a smooth and stable acceleration can be obtained easily. 
     According to this invention, in an engine having a plurality of cylinders, ignition is timed to accurately comply with the fuel supply quantities to the individual cylinders, so that it is possible to substantially suppress the occurrence of misfire or knocking when the engine is accelerated, easily provide an excellent feeling of acceleration and a stable comfort to ride in, and significantly improve the drivability and the emission control performance.
With regard to the engine control method which determines control variables for the individual cylinders of a multicylinder internal combustion engine independently of one another, this specification discloses improved control method and apparatus whereby the optimum control variables are determined. The control method of a multicylinder internal combustion engine according to this invention includes a step of detecting data representing the operating condition of the engine, a step of storing data, a step of determining a first control variable at a certain time of a certain stroke of each cylinder according to the stored data, and a step of determining a second control variable at a later time in the stroke according to the same stored data. A control apparatus of a multicylinder internal combustion engine according to this invention includes a device for detecting data representing the operating condition of the engine, a memory device for storing data, a device for calculating a first controlled variable at a certain time of a certain stroke of each cylinder according to data in the memory device, and a device for determining a second controlled variable at a later time in said stroke according to the same data in said memory device.