Abstract:
A device for determining a crank shaft angular position performs operation for determining the crank shaft angular position at an occurrence of timing control in an internal combustion engine control, such as fuel injection timing control, spark ignition timing control and so forth. In determination of the crank shaft angular position, an angular acceleration is firstly calculated with respect to respective intervals of crank reference angle signals. In calculation, the determined angular acceleration is regarded as constant instead of an angular velocity. At the same time, time intervals between respectively adjacent crank reference signals and between one of crank reference signal and a timing control signal immediately following to the one of crank reference angle signal are measured. Based on the determined angular acceleration and the time interval between the one of crank reference angle signal and the timing control signal, the crank shaft angular position at the occurrence of the timing control signal is determined. This may provide determination of the crank shaft angular position precisely following to the actual crank shaft angular position even when the engine revolutional fluctuation is significant.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates generally to a crank angle detecting device for an internal combustion engine. More particularly the invention relates to the crank angle detecting means adapted to process crank shaft angular position data for precisely detecting a timing, such as fuel injection timing and/or spark ignition timing, with respect to a crank shaft reference angle. 
     In an electronic engine control, it is essential to detect the timing parameters in relation to a crank shaft angular position. In order to detect the crank shaft angular position, the crankshaft is equipped with a crank angle sensor for producing a pair of crank angle signals. In general, the crank angle sensor is adapted to produce a crank reference signal at predetermined crank shaft angular positions, e.g. at every 90° or 120° depending on the number of cylinders in the engine. The crank angle sensor is further adapted to produce a crank position signals at predetermined crank shaft rotational angles, e.g. 0.5° or 1°. 
     In view of the manufacturing cost, a crank angle sensor producing only the crank reference signals is preferred when such crank angle sensor is used. In this case, the intervals between the crank reference signal are measured by means of a clock. The average rotational speed of the crankshaft is calculated on the basis of the measured interval and the predetermined crank shaft rotational angle to produce the crank reference signal. The crank shaft angular position at a certain timing, such as fuel injection timing and/or spark ignition timing, can then ba approximated, from the calculated average rotational speed and the measured period. 
     However, if the engine is in a state wherein cycle-to-cycle fluctuation of engine speed is significant, such as during cranking or the engine warm-up period, errors between the actual crank angle position and approximated value become unacceptably great. In particular, if the engine is a diesel engine which tends to fluctuate significantly even during one cycle of engine revolution, the error between the actual crank angle position and the approximated value will be significant. This leads to errors in timing control, such as fuel injection timing control and/or spark ignition timing control, which in turn may cause increase of exhaust emissions or engine noise, poor fuel economy or degradation of drivability. 
     On the other hand, reduction of emissions and engine noise and improvement of fuel economy are all quite necessary nowadays. This requires more precise control of engine processes. To control engine operation more precisely, the crank shaft angular positions as crucial timings, such as fuel injection timing, spark ignition timing and so forth, must be determined accurately. 
     SUMMARY OF THE INVENTION 
     Therefore, it is an object of the present invention to provide a timing calculation device and method with respect to crank shaft angular position, which can precisely determine the crank shaft angular position at a given timing even during engine conditions in which fluctuation of the engine revolution speed within an engine cycle is sufficiently large to influence for the result of calculation otherwise. 
     To accomplish the above-mentioned and other objects, there is provided a crank angle timing calculation device which measures the time interval between crank reference angle signals and the time interval between the occurrence of a timing signal and the occurrence of the immediately preceding crank reference angle signal. On the basis of the measured period, the angular acceleration during the measured period is approximated. On the basis of the angular acceleration and the measured period, the crank shaft angular position at the occurrence of the timing signal is determined. 
     In order to perform the foregoing calculation, the device according to the present invention, includes counters, one of which is used to measure the interval between occurrences of the crank reference angle signals, another of which measure the interval between the occurrence of the timing signal and the occurrence of the immediate preceding crank reference angle signal, and another which counts the crank reference angle signals. An arithmetic circuit calculates the angular acceleration on the basis of the counter values and calculates the crank shaft angular position at the occurrence of the timing signal on the basis of the determined angular acceleration. 
     According to the preferred embodiment of the present invention, there is provided a crank angle detecting device for an internal combustion engine comprising a timing signal generator associated with an engine control system to receive therefrom a timing control signal and responsive to the timing control signal to output a timing signal, a reference signal generator associated with a crank angle sensor for receiving a crank reference angle signal and responsive to the crank reference angle signal to output a reference signal, first means for measuring the time intervals between the occurrences of the reference signals and the intervals between the occurrences of the timing signal and the immediate preceding reference signals, second means for calculating the angular acceleration during each measured interval of reference signals on the basis of said measured period of time, and third means for determining the crank shaft angular position at the occurrence of the timing signal on the basis of the angular acceleration and the measured time interval between the occurrence of the timing signal and the occurrence of the immediate preceding reference signal. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention will be understood more fully from the detailed description given herebelow and from the accompanying drawings of the preferred embodiments of the present invention, which, however, should not be taken as limitative to the invention but for elucidation and explanation only. 
     In the drawings: 
     FIG. 1 is a schematic block diagram of the first embodiment of the crank angle detecting device according to the present invention. 
     FIG. 2 is a timing chart showing the relationship between the fuel injection timing signal and the crank reference angle signal; 
     FIG. 3 is an explanatory graph showing how the crank shaft angular position might vary with respect to time; 
     FIG. 4 is an explanatory timing chart in which the angular velocity during each interval is considered to be different from that during other intervals; 
     FIGS. 5(A) to 5(C) are explanatory timing charts showing fuel injection timings in relation to crank reference angle signals; 
     FIG. 6 is a flowchart of the crank angle calculation in the crank angle detecting device of FIG. 1; 
     FIG. 7 is a block diagram of an analog circuit for performing the crank angle detecting calculation of FIG. 6, as the second embodiment of the present invention; and 
     FIG. 8 is a timing chart of important signals in the circuit of FIG. 7. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring now to the drawings, particularly to FIG. 1, there is illustrated the preferred embodiment of a crank angle detecting device according to the present invention. In the shown embodiment, the crank angle detecting device is adapted to determine fuel injection timing in an electronically controlled fuel injection internal combustion engine. 
     A timing signal generator 101 is associated with a fuel injection control unit 110 to receive therefrom a fuel injection timing signal St. The timing signal generator 101 is responsive to the fuel injection timing signal St to produce a timing signal S 1  which is outputted via a shaping circuit 112 incorporated as part of the timing signal generator. On the other hand, a crank angle sensor 111 is connected to a reference signal generator 102. The reference signal generator 102 includes a shaping circuit 113 and is adapted to output a reference signal S 2  via the shaping circuit in response to a crank reference signal S ref  produced at predetermined crank shaft angular positions. 
     The timing signal generator 101 is connected to a timing signal counter 103 to feed thereto the timing signal S 1 . The counter I 103 is also connected to a clock generator 105 to receive therefrom a clock signal S c . The counter I 103 is adapted to measure the period of the timing signal S 1  in units of the clock signal pulses S c . Likewise, the reference signal generator 102 is connected to a counter II 104 which is, in turn, connected to the clock generator 105 to receive therefrom the clock signal S c . The counter II 104 is adapted to measure the period of the reference signal S 2  in units of the clock signal pulses. Both of the counter I 103 and the counter II 104 are adapted to produce counter signals S 3  and S 4  respectively indicative of the counter values representative of the measured periods of the timing signal and the reference signal. Respective counter signals S 3  and S 4  are fed to an input interface 106 of a microcomputer via corresponding buses 115 and 116. 
     The crank angle signals S 1  and S 2  are also fed to an interrupt command register 114 incorporated in the input interface 106. The interrupt command register 114 is adapted to produce an interrupt command i RQ  every time one of the crank angle signals S 1  or S 2  is inputted thereto. The interrupt command i RQ  is transferred to a microprocessing unit 107 in the microcomputer to perform a timing calculation as an interrupt routine. The microprocessing unit 107 is connected to a fuel injection timing display 109 via an output interface 108. 
     As will be appreciated, the microprocessing unit 106 includes a CPU, ROM and RAM, in which the ROM and RAM serve as a memory to store program operations and calculation data respectively. 
     Here, the timing calculation will be described in general for a better understanding of the present invention. 
     Assuming that the crank reference signal S ref  is produced (r) times in one cycle of the crank shaft rotation, the angular interval (θ r ) of each predetermined crank shaft angle is θ r  =360°/r. Further, it is assumed throughout the documents that the crank reference signal pulses occur at times . . . t n-2 , t n-1 , t n , t n+1 , t n+2  . . . and the fuel injection pulse occurs at a time t i  and the time t i  is intermediate between times t n  and t n+1 , as shown in FIG. 2. It can then be considered that the crank shaft angular position is a function of time, as shown in FIG. 3. 
     From the above, the timing (θ i ) of the fuel injection can be calculated from the following equation. ##EQU1## where ω is angular velocity which can be calculated from ω(°/sec)=dθ/dt. Assuming the engine speed is N(rpm), then ##EQU2## --equal to 6N(°/sec). 
     (i) When the angular velocity (ω) is constant: ##EQU3## 
     As apparent from the foregoing, by detecting the time intervals from t i  to t n  and from t n  to t n-1 , the fuel injection timing, i.e., the crank shaft angular position θ i , can be derived from the foregoing formula (1). Assuming the angular velocity ω is constant, the time intervals between the occurrences of the crank reference signals are constant. 
     (ii) When the angular velocity ω is (a t  +b) wherein a and b are positive or negative constants and angular acceleration is constant. ##EQU4## Here, substituting the ratio of the rate of change of the angular velocity (Δω) obtained by approximation and the rate of change of the time period (Δt) for the angular acceleration (a), the angular acceleration a can be represented as a=dω/dt=Δω/Δt. 
     The rate of change of angular velocity Δω can be approximated by the difference between average angular velocities such as obtained from the following equations: ##EQU5## where ω n ,n-1, for example, is the average angular velocity during the period from t n-1  to t n . Correspondingly, the time variation Δt can be obtained from the following equations: ##EQU6## 
     Therefore, the angular acceleration a can be obtained from the equations: ##EQU7## 
     On the other hand, the value b can be derived from the foregoing equation (1), if the angular acceleration a is zero. The value b can be expressed, corresponding to angular acceleration a 1 , a 2  and a 3 , by the following equations: ##EQU8## 
     In the prior art, the fuel injection timing θ i  is determined according to the foregoing equation (1) under the assumption that the angular velocity ω is constant. According to the present invention, the fuel injection timing θ i  is determined under the assumption that the angular acceleration a is constant. 
     According to the present invention, the calculation of the fuel injection timing θ i  according to the foregoing item (ii) is further modified in order to more precisely calculate the timing. Specifically, the formula used to obtain the fuel injection timing varies in accordance with the value (t i  -t n ), as described below. 
     (A) When the fuel injection is effected in a period t n  to t n&#39;  (=t n  +Δt 1 ), the fuel injection timing is obtained from: ##EQU9## 
     (B) When the fuel injection timing is in a period t n  &#34; (=t n  +Δt 2 ) to t n+1 , the following formula is used: ##EQU10## 
     (C) When the fuel injection timing θ i  is in a period t n&#39;  (=t n  +Δt 1 ) to t n&#34;  (=t n  +Δt 2 ), as shown in FIG. 5, the following formula is used: ##EQU11## 
     As will be appreciated, the calculation timing for obtaining the fuel injection timing is also differed depending on which formulae of (2) to (4) is used. Namely, if the formula (2) is used, the calculation timing is t n  ; if the formula (3) is used the calculation timing is t n+2  ; and, if the formula (4) is used, the calculation timing is t n+1 . 
     It should be noted that, however, it is possible to approximately obtain the fuel injection timing using only two different formulae or even a single formula. In former case, the formulae (2) and (3) may be used and in latter case, the formula (4) may be used. 
     FIG. 6 shows a flowchart of the fuel injection timing calculation program according to the shown embodiment of the present invention. As set forth previously, the fuel injection timing calculation program is executed as an interrupt routine whenever the interrupt command i RQ  is produced by the interruption command register 114 in response to one of the timing signal S 1  and the reference S 2 . 
     Immediately after starting the program execution, at a block 201, the interruption command register 114 is checked to see which interruption factor, the timing signal S 1  or the reference signal S 2 , has triggered the interrupt request. If the program is executed in response to the timing signal S 1 , the counter II 104 is reset to clear the counter value at a block 202. Alternatively, if the program is executed in response to the reference signal S 2 , as determined at the block 201, the counter value of the counter II 104 is incremented by 1 at a block 203. Then, the counter value of the counter II 104 is compared with (n-1) to see whether or not the two values are equal, at a block 204. If YES, the interval between t n-2  and t n-1  is read out from the counter II 104, at a block 205. Based on the read-out value (t n-2  -t n-1 ), the angular velocity ω n-1 ,n-2 is calculated according to the equation. 
     
         ω.sub.n-1,n-2 =θ/(t.sub.n-1 -t.sub.n-2) 
    
     at a block 206. After the block 206, the program execution. 
     On the other hand, if the counter value is not equal n-1 as checked at the block 204, then, the counter value of the counter II 104 is again checked to see if it is equal to n, at a block 207. If YES, the interval between the times t n  and t n-1  is read out at a block 208. Based on the read value (t n  -t n-1 ), the angular velocity ω n ,n-1 is calculated, at a block 209, according to the following equation: 
     
         ω.sub.n,n-1 =θ.sub.r /(t.sub.n -t.sub.n-1) 
    
     Thereafter, the program execution ends. 
     Since the fuel injection timing signal St is designed to be produced within the period of time between the time t n  and the time t n+1 , the interrupt command register 114 produces an interrupt command in response to the timing signal S 1  immediately after that produced in response to the reference signal at the time t n . In this case, the program execution goes to the block 202 to reset the counter II 104. Thereafter, the value t i  -t n  is read out from the counter I 103, at a block 211. The read-out value (t i  -t n ) is compared with Δt 1  and Δt 2 , at a block 212. If the value (t i  -t n ) is equal to or less than Δt 1 , the crank shaft angle θ i  at the fuel injection timing is calculated according to the foregoing equation (2), ##EQU12## at a block 213. At this time, flag registers FLAG 1 and FLAG 2 are cleared, at a block 226. 
     On the other hand, if the value (t i  -t n ) is greater than Δt 1  and equal to or less than Δt 2 , as determined at the block 212, the flag register FLAG 1 is set at a block 214 and program execution ends. Similarly, if the value (t i  -t n ) is greater than Δt 2 , the flag regster FLAG 2 is set at a block 215 and then the program ends. 
     It should be appreciated that, as set forth previously, since the calculation timing of the fuel injection timing θ i  is selected in accordance with the value (t i  -t n ), and the formula (3) is to be calculated at the time t n+2  and the formula (4) is to be calculated at the time t n+1 , the program execution ends after the blocks 214 and 215 and merely the FLAGs 1 and 2 are set at the time t i . 
     In response to the reference signal S 2  immediately following the timing signal S 1  at time t n , the counter value in the counter II 104 is incremented by 1 at the block 203 and thus equals 1. Therefore, the result of checking at the blocks 204 and 207 will both be NO. After the block 207, the counter value of the counter II 104 is checked to see if it is 1, at a block 210. At this time, since the counter value equal 1, the answer to block 210 is YES. 
     At a block 216, the value (t n+1  -t n ) in the counter I 103 is read out. Thereafter, the angular velocity (ω n+1 ,n) is calculated at a block 217. Then, the flag register is checked to see if the FLAG 1 is set, at a block 218. If the FLAG 1 was set during the preceding cycle of program execution in response to the timing signal S 1 , the answer for the block 218 will be YES. In this case, the fuel injection timing θ i  is calculated at a block 219 according to the foregoing formula (4), ##EQU13## 
     In response to the next reference signal S 2 , the counter value in the counter II 104 is incremented to 2. Therefore, the answer to block 210 becomes NO and thus, the counter value is compared to 2 at a block 220. Since the answer of the block 220 is YES, the counter value (t n+2  -t n+1 ) of the counter I 103 is read out at a block 221. Using the read out value (t 2  -t 1 ) the angular velocity (ω n+2 ,n+1) is calculated at a block 222. Thereafter, the flag register is checked if the FLAG 2 is set at a block 223. If the FLAG 2 has been set, the answer of the block 223 is YES. In this case, the fuel injection timing θ i  is calculated at a block 224 according to the foregoing formula (3), ##EQU14## The fuel injection timing θ 1  calculated at one of blocks 213, 219 and 224 is ouputted at a block 225 before the program ends. 
     Referring to FIG. 7, there is illustrated a block diagram of an analog circuit for performing the foregoing fuel injection timing calculation according to the flowchart as set forth with reference to FIG. 6. According to the shown embodiment, the timing signal generator 301 and the reference signal generator 302 are respectively connected to a counter 314 for calculation of a value (t i  -t n ). The timing signal generator 301 and the reference signal generator 302 are also connected to a counter 303. The counter 314 is adapted to count the clock pulses S c  from a clock generator 315 in response to a reference signal S 2  and outputs a counter signal S 3  indicative of the time interval between the time t i  in which the fuel injection is effected and the time t n  in response to the timing signal S 1 . The counter 314 is reset by the reference signal S 2 . On the other hand, the counter 303 counts the pulses of the reference signal S 2  to output a counter signal S 4  having a value representative of the counter value thereof. The counter 303 is adapted to be reset to zero when the counter value reaches n or in response to the timing signal S 1  fed from the timing signal generator 301. 
     The counter signal S 4  of the counter 303 is fed to comparators 304, 305, 306 and 307. The comparator 304 is adapted to compare the counter signal value with a reference value (n-2) to produce a HIGH level comparator signal S 5  when the counter value is equal to or greater than the reference value (n-2). The comparator 305 compares the counter value of the counter 303 with a reference value (n-1) and produces a HIGH level comparator signal S 6  when the counter value is equal to or greater than the reference value (n-1). The comparator 306 also compares the counter value of the counter 303 with a reference value (1) to produce a HIGH level comparator signal S 7  when the counter value reaches or exceeds the reference value (1). Likewise, the comparator 307 compares the counter value with a reference value (2) to produce the HIGH level comparator signal S 8  when the counter value is equal to or greater than the reference value (2). 
     The comparator signals S 5  and S 7  are respectively fed to input terminals of AND gates 312 and 313. On the other hand, the comparator signals S 6  and S 8  are fed to the other input terminals of the AND gates 312 and 313 via inverters 308 and 310. Therefore, the AND gate 312 outputs a HIGH level AND signal S 9  when the counter value is equal to or greater than the reference value (n-2) and less than the reference value (n-1). This occurs only when the counter value equals (n-2). Likewise, the AND gate 313 produces a HIGH level AND signal S 10  when the counter value equals (1). 
     At the same time, the comparator signal S 6  of the comparator 305 is fed to a switching circuit 317 to turn the latter ON when the comparator signal S 6  is HIGH level. Likewise, the comparator 306 is connected to the switching circuit 318 via an inverter 309 to turn the switching circuit ON when the signal level of the comparator signal S 7  is LOW. The AND gates 312 and 313 are respectively connected to switching circuits 316 and 319 to turn the latter ON with the HIGH level signals S 9  and S 10 . The switching circuit 316, 317, 318 and 319 are respectively adapted to feed the reference signal S 2  to counters 320, 321, 322 and 323 while they are maintained in the ON position. The counters 320, 321, 322 and 323 are all also connected to the clock generator 315. The counter 320 counts the clock pulses S c  to measure the interval between the time t n-2  and the time t n-1  to produce a counter signal S 11  having a value representative of (t n-1  -t n-2 ). The counter 321 counts the clock pulses S c  to measure the interval between the times t n  and t n-1  to produce a counter signal S 12  having a value representative of (t n  -t n-1 ). The counter 322 counts the clock pulses S c  to measure the interval (t 1  -t n ) and produce a counter signal S 13  representative of the measured interval. Finally, the counter 323 produces a counter signal S 14  representative of the interval (t 2  -t 1 ). Respective counter signals S 11 , S 12 , S 13  and S 14  are fed to arithmetic circuits 324, 325, 326 and 327 which respectively calculate ω n-1 ,n-2, ω n ,n-1, ω n+1 ,n, and ω n+2 ,1 on the basis of the respective counter values in the counters 320, 321, 322 and 323. 
     The arithmetic circuits 324, 325, 326 and 327 respectively produce angular velocity signals S 15 , S 16 , S 17  and S 18  respectively indicative of the calculated angular velocities ω n-1 ,n-2, ω n ,n-1, ω n+1 ,n, and ω n+2 ,n+1. The counter signal S 12  is also fed to an arithmetic circuit 333 to which are also inputted the angular velocity signals S 15  and S 16 . The angular velocity signal S 16  is also fed to an arithmetic circuit 334. The arithmetic circuit 334 further receives the counter signal S 13  and the angular velocity signal S 17 . Likewise, an arithmetic circuit 335 receives the angular velocity signals S 17  and S 18  and the counter signal S 14 . Respectively arithmetic circuits 333, 334 and 335 also receive the counter signal S 3  of the counter 314. Based on the angular velocity signal values of the signals S 15  and S 16  and the counter signal S 12 , the arithmetic circuit 333 calculates the fuel injection timing θ i  to produce the fuel injection timing indicative signal S.sub.θ according to the foregoing formula (2), ##EQU15## Likewise, based on the angular velocity signals S 16  and S 17  and the counter signals S 3  and S 13 , the arithmetic circuit 334 calculates the fuel injection timing θ i  to produce the fuel injection timing indicative signal S.sub.θ according to the foregoing formula (3), ##EQU16## 
     Further, based on the angular velocity signals S 17  and S 18  and the counter signals S 3  and S 14 , the arithmetic circuit 335 calculates the fuel injection timing θ i  to produce the fuel injection timing indicative signal S.sub.θ according to the foregoing formula (4), ##EQU17## 
     At the same time, the counter signal S 3  is fed to comparators 328 and 329. The comparator 328 is adapted to compare the counter signal value with a reference value Δt 1  and the comparator compares the counter value with a reference value Δt 2 . The comparator 328 produces a HIGH level comparator signal S 19  when the counter value of the counter 314 exceeds the reference value Δt 1 . Likewise, the comparator 329 produces a HIGH level comparator signal S 20  when the counter value exceeds the reference value Δt 2 . The comparators 328 and 329 are both connected to each of a NOR gate 330, an EXCLUSIVE-OR gate 331 and an AND gate 332. The output level of the gates 330, 331 and 332 are related to the comparator output level as shown in the following table: 
     
         ______________________________________      S.sub.19            S.sub.20                    S.sub.21                            S.sub.22                                  S.sub.23______________________________________t.sub.i - t.sub.n ≦ Δt.sub.1        LOW     LOW     HIGH  LOW   LOWΔt.sub.1 &lt; t.sub.i - t.sub.n ≦ Δt.sub.2        HIGH    LOW     LOW   HIGH  LOWΔt.sub.2 &lt; t.sub.i - t.sub.n        HIGH    HIGH    LOW   LOW   HIGH______________________________________ 
    
     The NOR gate 330 is connected to a switching circuit 336 to turn the latter ON when its output level is HIGH. When turned ON, the switching circuit 336 passes the fuel injection timing indicative signal S.sub.θ from the arithmetic circuit 333 to a fuel injection timing display 339. The EXCLUSIVE OR gate 331 is connected to a switching circuit 337 to turn the latter ON when the gate signal S 22  thereof is HIGH level. In this case, the switching circuit 337 passes the fuel injection timing indicative signal S.sub.θ from the arithmetic circuit 334 to the fuel injection timing display 339. Likewise, the AND gate 332 is connected to a switching circuit 338 which is turned ON by the HIGH level gate signal S 23 . In this ON condition, the switching circuit 338 passes the fuel injection timing indicative signal S.sub.θ to the fuel injection timing display. 
     As set forth previously, according to the shown embodiment, the fuel injection timing calculation can be performed in accordance with the interval between the fuel injection timing and the immediately preceding crank angle reference position as in the foregoing first embodiment. 
     While the invention has been described in detail with respect to calculation of the fuel injection timing, the invention can be applicable for detection for any sort of timing with respect to the crank shaft angular position in relation to the crank reference angle signals. For example, the invention can be applied to timing of spark ignition. Furthermore, the invention can be modified or embodied otherwise in any way for performing the calculation of the crank shaft angular position at a timing in between the crank reference angle signals.