Fuel injection controller for an internal combustion engine
BACKGROUND OF THE INVENTION 
     This invention relates to a fuel injection controller for an internal combustion engine which controls the amount of fuel which is injected into an engine based on the air pressure within the intake pipe of the engine. More particularly, it relates to a fuel injection controller which employs an inexpensive, low-resolution A/D converter. 
     A conventional fuel injection controller for an internal combustion engine has an air pressure sensor which senses the air pressure within the intake pipe of the engine and generates a corresponding analog output signal. This output signal is converted into a digital pressure signal by an A/D converter, and based on the value of the digital pressure signal and other parameters, a control unit controls the operation of fuel injectors so as to obtain a suitable air/fuel ratio. 
     During idling of a typical engine, the pressure in the air intake pipe is around 250 mm Hg. In order to detect the air pressure with a resolution of 1% or less, the resolution of the A/D converter must be at most 2.5 mm Hg/bit. If the full-scale reading of the A/D converter is to be 950 mm Hg, the A/D converter must generate an output having at least 9 bits. However, 9-bit A/D converters are not generally available on the market, so instead, a conventional fuel injection controller employs a 10-bit A/D converter, which is easily obtainable. 
     However, a 10-bit A/D converter is expensive, and therefore a conventional fuel injection controller is also expensive. 
     SUMMARY OF THE INVENTION 
     Accordingly, it is an object of the present invention to obtain a fuel injection controller for an internal combustion engine which can perform high-resolution control, particularly during idling, but which employs an inexpensive, low-resolution A/D converter. 
     In a fuel injection controller for an engine according to the present invention, the analog pressure signal from a pressure sensor is converted into a digital pressure signal by a low-resolution A/D converter having N bits. The output signal of the N-bit A/D converter is then multiplied in a multiplying device by a prescribed value n to obtain a digital signal having at least N+I bits. The output of the multiplying device is then passed through a low-pass digital filter, and based on the filtered output, a control unit calculates the amount of fuel to be injected into the engine. 
     In this manner, a high-resolution of at least (N +1) bits can be obtained using a low-resolution A/D converter having a resolution of only N bits. 
     There is no restriction on the values of N and n, but in a preferred embodiment, N is 8 and n is 4. With these values, an inexpensive 8-bit A/D converter can provide a resolution of 10 bits. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a schematic diagram of an embodiment of a fuel injection controller according to the present invention as applied to an internal combustion engine. 
     FIG. 2 is a block diagram of the control unit of FIG. 1. 
     FIG. 3 is a flow chart of the main program executed by the control unit of FIG. 2. 
     FIG. 4 is a block diagram of a low-pass digital filter. 
     FIG. 5 is a flow chart of a program executed by the controller to perform digital filtering. 
     FIG. 6 is a waveform diagram of the output signals of the pressure sensor and the A/D converter of the embodiment of FIG. 1. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Hereinbelow, a preferred embodiment of the present invention will be described while referring to the accompanying drawings. FIG. 1 is a schematic diagram of an internal combustion engine which is equipped with an embodiment of the present invention. As shown in this figure, an engine 1 which is mounted on an unillustrated vehicle sucks in air through an intake pipe 3 on which are mounted an air cleaner 2 and a throttle valve 4. At the time of ignition, an igniter 5 is switched from on to off by a signal from an unillustrated signal generator within an unillustrated distributor. When the igniter 5 is switched off, a high-voltage ignition signal is generated in the secondary side of an ignition coil 6, and this ignition signal is supplied to unillustrated spark plugs of the engine 1 to produce ignition. In synchrony with the generation of this ignition signal, fuel is injected by a fuel injector 7 into the air intake pipe 3 upstream of the throttle valve 4. The injected fuel is sucked into the engine 1 by the above-mentioned sucking action. After the fuel is combusted, exhaust gas is discharged to the outside of the engine 1 through an exhaust manifold 8. 
     The pressure in the air intake pipe 3 at a point downstream of the throttle valve 4 is detected by a pressure sensor 9 which generates an analog output signal corresponding to the absolute pressure. This analog signal and a primary side ignition signal from the igniter 5 are input to a fuel injection controller 11 according to the present invention. 
     FIG. 2 is a block diagram of the controller 11. As shown in this figure, the controller 11 is equipped with a microcomputer 100 having a CPU 200, a counter 201, a timer 202, an 8-bit A/D converter 203, a RAM 204, a ROM 205 which stores the programs executed by the CPU 200, an output port 206, and a bus 207 which connects the preceding elements. The primary side ignition signal from the igniter 5 undergoes waveform shaping in a first interface circuit 101 and the resulting signal is input to the microcomputer 100 as an interrupt signal. When an interrupt takes place, the period of the ignition signal is read in from the counter 201 and is stored in the RAM 204 to be used for calculating the rotational speed of the engine. The analog output signal of the pressure sensor 9 undergoes waveform shaping in a second interface circuit 102 and simultaneously has noise removed therefrom, after which it undergoes A/D conversion in the 8-bit A/D converter 203. The CPU 200 calculates the fuel injector opening time (the length of time for which the fuel injector 7 is open), which determines the amount of fuel to be injected. The calculated value for the opening time is then set in the timer 202, either as it is or after first undergoing correction. When the timer 202 is operated, a voltage having a prescribed level is output from the output port 206, it undergoes voltage-current conversion in the output interface circuit 103, and it opens the injector 7. The microcomputer 100 receives a constant voltage from a battery 13 via a key switch 12 and a voltage regulator 104. 
     Next, the operation of the CPU 200 will be described while referring to FIG. 3, which illustrates a program for calculating the width of pulses to be applied to the fuel injector 7. This program is stored in the ROM 205. In Step S11, the rotational speed Ne of the engine is calculated from the measured value of the period of the ignition signal and is stored in the RAM 204. In Step S12, the analog output signal from the pressure sensor 9 is converted into an 8-bit digital signal by the A/D converter 203 and is stored in the RAM 204 as an A/D-converted air intake pressure value PbAD. In Step S13, the 8-bit pressure value PbAD is multiplied by a predetermined constant, which in this case is 4, to give a new pressure value PbAD having 10 bits. The pressure value PbAD contains ripples due to pulsations which occur during air intake, and so in order to stabilize control, the pressure value PbAD undergoes low-pass filtering as shown in FIG. 7. This secondary low-pass digital filtering is performed in Step S14 and a filtered pressure value PbF is determined. The ROM 205 contains a two-dimensional map which gives experimentally-determined values of the volumetric efficiency CEV as a function of the rotational speed Ne and the filtered pressure value PbF. In Step S15, this two-dimensional map in the ROM 205 is mapped using the rotational speed Ne and the filtered pressure value PbF, and the volumetric efficiency CEV(Ne, PbF) is calculated for a predetermined air-fuel ratio. In Step S16, the pulse width Tpw which is necessary in order to supply the suitable amount of fuel to the engine 1 is calculated using the equation Tpw=K×PbF×CEV, wherein K is a constant. Step S11 is then returned to, and the above-described operation is repeated. The calculated pulse width Tpw is then set in the timer 202 in synchrony with the generation of an ignition signal, either as it is or after undergoing correction, and the timer 202 is operated. 
     Next, the low-pass digital filter which performs the filtering of Step S14 will be described. It will be assumed that a transfer function corresponding to a desired transfer function H(s) of an analog filter is to be obtained. Its frequency characteristics are given by H(jω A ). The frequency characteristics HD(e j ω D T ) of the system function H D  (z) of a 
     digital filter which can map the imaginary axis s =jω A  of the s plane onto a unit circle in the z plane clearly has the same value as H(jω A ). 
     The relationship between the frequency ω A  of an analog filter and the frequency ω D  T of a digital filter is determined by a mapping function, but the simplest function which can map the imaginary axis onto a unit circle is 
     
         s =(z -1)/(z +1)                                           (1) 
    
     The relationship between ω A  and ω D  is given by 
     jω A  =(e j ω D-1)/(e j ω D T  +1) 
     which can be expressed as 
     
         ω.sub.A =tan(ω.sub.D T/2) 
    
     If the sampling period T =6×10 -3  sec, the cut-off frequency fc=5 Hz, and Q =1/√2, then the transfer function of the secondary low-pass digital filter is ##EQU1## wherein ω A  =tan(2πf c .T/2) =0.0945 
     If Equation 2 is combined with Equation 1, then the following equation is obtained: 
     
         H(z) =g.sub.k [1+2z.sup.-1 +z.sup.-2 ]/[1.sup.- e.sub.k.z.sup.-1 -f.sub.k z.sup.-2 ]                                                (3) 
    
     wherein ##EQU2## 
     FIG. 4 is a block diagram of the relationship of Equation 3. In FIG. 4, 21 and 24 are adders, 22 and 23 are elements which produce a time delay of T sec, 25 is a coefficient multiplying circuit, 26 is a circuit which multiplies by coefficient e k , 27 is circuit which multiplies by coefficient f k , 28 is a circuit which multiplies by coefficient g k , PbAD(nT) is the pressure value for the nth sampling, PbF(nT) is the filtered pressure value corresponding to the nth sampling, and U is an intermediate variable. U(nT) indicates the present value, U(nT -T) indicates the previous value, and U(nT -2T) indicates the next to previous value of the intermediate variable U. 
     The following equations express the relationship of FIG. 4 as difference equations: ##EQU3## 
     FIG. 5 is a flow chart illustrating the method by which Equation 4 is calculated. In this example, sampling is performed every 6 msec, so in Step S31, it is determined whether 6 msec have elapsed since the last sampling. If it is not yet time to perform sampling, then a return is executed, and Step S15 of FIG. 3 is performed. If 6 msec have elapsed, then in Step S32 the value of the intermediate variable U 0  is found as in Equation 4b by the equation U o  =PbAD +e k .U 1  +f k  x U 2  using the present pressure value PbAD, coefficients e k  and f k , and the previous and next to previous values of the intermediate variables U 1  and U 2  . In Step S33, as shown in Equation 4a, the present value of the filtered pressure value PbF is found from the equation PbF =g k  ×(U 0  +2U 1  +U 2 ) using the present, the previous, and the next to previous values of the intermediate variables U 0 , U 1 , and U 2  and coefficient g k . The result is stored in the RAM 204. In Step S34, the previous intermediate variable U 1  is stored in the RAM 204 as the next to previous intermediate variable U 2 . In Step S35, the present intermediate variable U 0  is stored in the RAM 204 as the previous intermediate variable U 1 , and then Step S15 of FIG. 3 is performed. 
     Next, while referring to FIG. 6, it will be explained how the 8-bit pressure value which is generated by the A/D converter 203 becomes a 10-bit filtered pressure value with a resolution of 10-bits. In this figure, m-1, m, and m+1 indicate the outputs of the 8-bit converter 203 corresponding to the measured air pressure. The air intake pipe pressure signal (the analog signal before A/D conversion) is approximated by a triangular wave having a peak-to-peak amplitude corresponding to two bits of the output of the A/D converter 203. The digitalized value (the pressure value) and the low-pass digital filtered value (the filtered pressure value) when sampling is performed 8 times per period are shown below the triangular waves. In FIGS. 6a-6d, the average value of the waveform is made to successively increase by a value of 1/4 bit. The vertical dashed lines indicate the points in time at which the air pressure is sampled. When the output of the A/D converter 203 is multiplied by 4 to obtain a 10-bit output, subjected to digital filtering, and then averaged, the resulting averages are 4m-2, 4m -1, 4m, and 4m +1 as shown at the bottom of FIG. 6. Thus, an air pressure change corresponding to 1/4 bit of the output of the A/D converter 203 resulted in a 1 bit change in the 10-bit averaged output. This is the same degree of resolution which could be obtained using a 10-bit A/D converter. Thus, using an 8-bit A/D converter 203, it is possible to attain the same effective resolution as for a much more expensive 10-bit A/D converter. 
     The effective resolution varies depending on the frequency of sampling and on the amplitude and waveform of the analog pressure signal. However, in a speed range near idling in which particularly fine resolution is needed, the rotational speed of the engine is low, so the period of ripples is long. Therefore, a sampling period of around 6 msec is fully adequate to obtain resolution corresponding to 10 bits. For example, if the rotational speed of an engine during idling is 700 rpm, the period of ripples in the air intake pipe pressure is 43 msec. Therefore, if the sampling period is 6 msec it is possible to perform sampling approximately 7 times per period.