Correction of systematic position-sensing errors in internal combustion engines

Systematic errors in manufacturing of position markers of an internal combustion engine position sensing system are corrected by a procedure which detects nonuniformities in the placement of the position markers using an engine coastdown without combustion in the cylinders. Since the coastdown comprises a smooth deceleration, any nonuniformities detected in the velocities calculated for individual firing intervals during the coastdown are a manifestation of nonuniformities in the position marker placement. These nonuniformities are used to calculate correction factors which are stored for use when calculating velocities during engine combustion.

BACKGROUND OF THE INVENTION 
The present invention relates in general to removing systematic 
position-sensing errors in an internal combustion engine position sensing 
system, and more specifically to a procedure to be conducted after 
assembly of an engine which quantifies any variation of the spacing of 
position encoding markers from a uniform spacing. 
Modern engine control and diagnosis requires accurate, high resolution 
position sensing as an engine rotates through its engine cycle. For 
example, copending U.S. Ser. No. 07/572,650, entitle "Misfire Detection In 
An Internal Combustion Engine", which is incorporated herein by reference, 
teaches the detection of misfires or failure of one or more cylinders to 
produce power during its power stroke by detecting very small changes in 
the velocity (and thus acceleration) of the engine crankshaft. Since the 
velocity during each velocity measuring (i.e., firing) interval of engine 
rotation is determined according to the rotational arc .DELTA..theta. 
covered by the interval divided by the time .DELTA.T required to pass 
through the arc, the measured values for both .DELTA..theta. and .DELTA.T 
must be measured sufficiently accurately to provide the sensitivity 
required to detect such small velocity changes. 
Engine rotational position is monitored using a rotor having vanes, teeth, 
or slots disposed thereon for interacting with magnetic or optical sensors 
at predetermined points in the rotation of the engine crankshaft. Thus, in 
order to determine engine velocity, only values of .DELTA.T are actually 
measured. The values of each .DELTA..theta. are assumed to be known from 
the rotor design. Furthermore, the arcs throughout the rotation of the 
rotor are typically uniform (i.e., all .DELTA..theta.'s are equal) so that 
each calculated velocity equals a constant divided by the measured time 
.DELTA.T. Any systematic deviation of the actual angles .DELTA..theta. 
from the assumed values, such as caused by manufacturing errors, will 
result in velocities, and hence, accelerations which are in error. If the 
angular error is sufficiently large, the erroneous values of velocity and 
acceleration can distort the effects of a misfiring cylinder or can cause 
an erroneous indication of one or more cylinders as having misfired even 
when engine operation is in fact smooth (i.e., no power loss in any 
cylinder). 
The foregoing problems can be avoided by manufacturing rotors with position 
encoding markers which are accurately located in their desired position. 
However, accuracy to within a few tenth's of a degree or better is 
typically required, which adds expense to the rotor. Furthermore, it is 
desirable to perform engine diagnosis using diagnostic equipment attached 
to older engines which have not been manufactured with high accuracy 
position encoding rotors. 
An alternative to accurate manufacture is to simply measure the resulting 
separation of position markers which are produced rather than assuming 
perfect uniformity in their positioning. To measure the separation of 
position markers by timing their passage past the position sensor in a 
running engine would require the engine to be running perfectly smoothly. 
However, since it is not possible to detect whether an engine is running 
perfectly smoothly without first having accurate position sensing, actual 
position values .DELTA..theta. cannot be determined. It would also be 
impractical to physically measure the dimensions of a rotor prior to 
engine assembly because that would require extra manufacturing steps to 
keep track of the rotor dimensions so that they could be stored 
electonically within the engine controller, which is manufactured 
separately from the engine. 
SUMMARY OF THE INVENTION 
Accordingly, it is a principal object of the present invention to provide a 
method and apparatus for determining the angular spacing between position 
markers on an encoding rotor which can be performed after engine assembly 
using simple procedures. 
It is a further object of the present invention to correct for 
position-related errors in velocity and acceleration measurements made in 
internal combustion engines. 
The present invention achieves error correction by measuring time between 
the passage of position markers during rotation of an engine. Since most 
nonuniformity of engine rotation during normal engine operation is caused 
by combustions events, the present invention performs measurements with 
combustion inhibited. After accelerating an engine to high speed and 
completely shutting off fuel to the engine (e.g., turning off the fuel 
injectors), the engine decelerates smoothly (absent any major malfunctions 
such as extreme nonuniformities of cylinder compression). Although the 
engine velocity is not constant during such a coastdown, it is 
sufficiently smooth that there is no substantial cylinder-specific 
deviation of the deceleration from the overall deceleration of the engine. 
Any deviations from uniformity which do appear in the calculated 
velocities during coastdown are manifestations of an encoder nonuniformity 
and serve to provide a quantitative measure of the encoder nonuniformity.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
The engine rotation position sensing system of FIG. 1 includes a rotor 10 
including vanes 11, 12, and 13 which rotate with a crankshaft 14 (a 
three-vane rotor from a six-cylinder engine is shown in this example). The 
vanes pass between a hall-effect sensor 15 and a permanent magnet 16 to 
generate a profile ignition pulse (PIP) signal as the crankshaft rotates. 
Vanes 11-13 are typically arranged to generate a rising edge in the PIP 
signal just before top dead center of each respective cylinder. The rising 
edge in the PIP signal actually indicates the approach to top dead center 
of two engine cylinders, one of which is approaching a power stroke and 
one of which is approaching an intake stroke since it takes two full 
crankshaft rotations to complete an engine cycle. 
A cylinder identification (CID) sensor 17 is connected to a camshaft 18 for 
identifying which of the two cylinders is actually on its power stroke. 
Since camshaft 18 rotates once for every two rotations of crankshaft 14, a 
CID signal is prefereably generated having a rising edge corresponding to 
the power stroke of cylinder No. 1. 
A timer 20 receives the PIP signal and the CID signal and measures elapsed 
time between predetermined engine position locations as determined by the 
PIP and CID signals. The elapsed time AT.sub.i for each velocity measuring 
interval i is output from timer 20 to a velocity calculator 21 where the 
assumed angular spacing .DELTA..theta..sub.i is divided by time 
.DELTA.T.sub.i to provide the velocity value V.sub.i. 
FIG. 2 shows waveforms for the PIP signal and the CID signal in relation to 
the occurrence of top dead center of cylinder No. 1. Thus, the PIP signal 
is a square-wave signal having 50% duty cycle and having a rising edge or 
positive transition just prior to (e.g., 10.degree. before) top dead 
center of each cylinder. The CID signal is also a 50% duty-cyclke square 
wave which has a rising edge just after top dead center of the power 
stroke of cylinder No. 1. It will be apparent to those skilled in the art 
that the transitions in the PIP and CID signals could be made to occur at 
any known angular positions. 
An alternative embodiment of position sensing apparatus is shown in FIG. 3. 
A multi-toothed wheel 25 is mounted on an engine for rotation with the 
crankshaft. A plurality of teeth 26 are disposed along the periphery of 
wheel 25 at a predetermined angular spacing. A sensor 27 is disposed in a 
fixed location closely spaced to teeth 26 for sensing when each tooth 
passes sensor 27. For example, sensor 27 may be comprised of a variable 
reluctance sensor to sense the passage of teeth 26 made of magnetically 
permeable material. 
A missing tooth location 28 is provided on wheel 25 to establish an 
absolute location reference, e.g., at 90.degree. before top dead center of 
cylinder No. 1, as shown in FIG. 3. 
Sensor 27 is connected to timer 20 and velocity calculator 21 as described 
with reference to FIG. 1. However, since the velocity measuring intervals 
in this embodiment are longer than the spacing of teeth 26, an interval 
former 22 is disposed between timer 20 and velocity calculator 21 in order 
to provide the sum of the measured time periods for the consecutive teeth 
which are included in the particular velocity interval i to be measured. 
As shown in FIGS. 1 and 3, timer 20, velocity calculator 21, and interval 
former 22 may preferably be comprised or implemented in a programmed 
microcontroller 30. 
FIG. 4 illustrates one preferred arrangement of a PIP signal divided into 
consecutive time intervals .DELTA.T.sub.i. Each rising edge of the PIP 
signal may correspond for example, to at or near top dead center of a 
respective cylinder Each interval begins at the falling edge prior to top 
dead center and ends at the falling edge following top dead center, as is 
described in copending application, Ser. No. 07/572,282 entitled 
"Selection of Velocity Interval for Power Stroke Acceleration 
Measurements" which is incorporated herein by reference. Thus, an i'th 
interval has a measured elapsed time .DELTA.T.sub.i and has an angular 
size from falling edge to falling edge of the PIP signal designated 
.DELTA..theta..sub.i corresponding to the actual spacing between the 
position markers of the rotor. The assumed spacing, as intended by the 
design of the system, is designated .DELTA..theta..sub.0. Thus, a velocity 
measurement is determined by dividing .DELTA..theta..sub.0 by 
.DELTA.T.sub.i. The velocity result is thus in error by the ratio of the 
actual spacing .DELTA..theta..sub.i to the assumed spacing 
.DELTA..theta..sub.0. 
The difference between the actual and assumed spacings between position 
markers creates a systematic error that produces false velocity 
differences between successive intervals which become superimposed on the 
effects of genuine differences between successive combustion events. Such 
systematic errors reduce the reliability of misfire detection based on 
velocity fluctuations of the engine. 
According to the present invention, it is realized that the nonuniformities 
in the position marker spacing on the rotating wheel can be measured and 
compensated for using time interval measurements .DELTA.T.sub.i taken when 
an engine is running smoothly. Since most nonuniformity of engine 
operation is related to the combustion process in the respective 
cylinders, the engine is rotated without the occurrence of combustion in 
order to obtain the necessary smooth operation. Interval timing data which 
is accumulated during smooth engine operation is employed to factor out 
the systematic errors in later velocity calculations made during operation 
with combustion. 
In a preferred embodiment, the engine is accelerated to high speed and then 
fuel is completely shut off to the engine (e.g., by closing the fuel 
injectors) resulting in a smooth engine deceleration (except when a 
serious malfunction exists such as a compression loss). This procedure is 
illustrated in FIG. 5 where engine rpm increases during an initial 
acceleration period 31. Fuel is cut off at a cutoff point 32 and follows a 
substantially uniform coastdown period 33. For example, microcontroller 30 
is instructed to begin an error measurement routine by means of a user 
supplied control signal and may be performed as an end-of-line 
manufacturing procedure at an assembly plant or by a technician during 
vehicle servicing. The operator then depresses the throttle to accelerate 
the engine along the acceleration portion of the curve 31. When a 
predetermined speed is reached at point 32, microcontroller 30 cuts off 
the flow of fuel to the engine resulting in the coastdown 33. When the 
operator hears the decline in engine speed he would preferably release the 
throttle, since perturbations in engine speed resulting from different 
compression among cylinders are much less at closed throttle than at open 
throttle. In fact, comparing coastdown data obtained during open throttle 
and during closed throttle can be employed to detect compression 
nonuniformities. 
Alternatively, smooth engine rotation can possibly be obtained by 
externally driving the engine, such as with the starter motor, with fuel 
cut-off. 
Although the velocity is not constant during the coastdown, it is smooth in 
that there will not be substantial cylinder-specific deviations of 
deceleration from the grosser overall rate of deceleration, except as 
noted above. Deviations which do appear in the calculated velocities 
during smooth rotation are manifestations of nonuniformity in the spacing 
of position markers on the encoder wheel and in fact serve as a 
quantitative measure of the nonuniformity. 
FIG. 6 illustrates additional steps conducted by microcontroller 30 to 
determine and remove the nonuniformities. The calculated velocities 
V.sub.i are input to a block 35 where an average velocity .omega..sub.i is 
calculated corresponding to but over a longer period than each respective 
velocity measurement V.sub.i. The average velocity .omega..sub.i 
preferably is measured over an integral number of engine rotations since 
the angular position between one occurrence of a position marker and the 
next occurrence of that same position marker equals 360.degree. without 
error. Thus, an average velocity is known during that full rotation or 
rotations. If the shorter velocity interval V.sub.i is substantially 
centered in the, longer interval and the coastdown is uniform, then it is 
substantially equal to the longer-term average velocity. 
In block 36, the results for .omega..sub.i and V.sub.i are sorted by 
cylinder number. By taking measurements and performing calculations for a 
plurality of full engine rotations and combining the results, random noise 
effects are minimized. In step 37, correction factors are calculated and 
stored for use in calculating velocities during engine runtime using 
actual position marker spacing in step 38. 
In a first preferred embodiment for calculating correction factors for the 
velocity measurements, a single term correction factor for each cylinder 
is derived as a simple average of the ratios of average velocity 
.omega..sub.i to the individual interval velocity V.sub.i. More 
specifically, let V.sub.i equal the initial (uncorrected) velocity 
.DELTA..theta..sub.0 /.DELTA.T.sub.i computed for each firing of the 
subject cylinder while in the unfueled, coastdown mode. .omega..sub.i is 
the average velocity surrounding each firing computed over an interval of 
preferably one crank revolution before and one crank revolution after the 
subject firing. Let N equal the number of data points being averaged 
together for a particular cylinder number during the coastdown mode. 
Finally, let V'.sub.i equal the corrected velocity for a particular firing 
interval. In the single term embodiment, the corrected velocity is defined 
as 
EQU V'.sub.i =C.sub.l *V.sub.i. 
The correction coefficient C.sub.1 is chosen so that 
##EQU1## 
Therefore, the corrected velocity V'.sub.i is found as follows: 
##EQU2## 
Thus, the corrected velocity V'.sub.i is the true velocity over the i'th 
interval. 
The .DELTA..theta..sub.i for each cylinder is not directly known, but by 
assuming that the cycle-averaged velocity .omega..sub.i is a substantially 
accurate estimate of the true velocity under these special conditions, the 
C.sub.l coefficients can be determined from the coastdown data as follows: 
##EQU3## 
An alternate method of deriving C.sub.l from the N data points is to 
perform a least squares fit of the corrected velocities to the 
cycle-averaged velocities. In other words, choose C.sub.l so as to 
minimize the S defined as: 
##EQU4## 
Well known techniques for setting .differential.S/.differential.C.sub.1 
equal to zero yield the alternative formula for C.sub.1 : 
##EQU5## 
The first method for finding C.sub.1 is in fact equivalent to a least 
squares fit of the relative velocity difference, as is defined by: 
##EQU6## 
Both methods yield similar results, although the second method is more 
heavily weighted to data from the high speed portion of the coastdown 
curve. 
At higher speeds and throttle settings during actual engine operation, 
accurate velocity correction may require the inclusion in the 
determination of correction factors of some speed-dependent effects 
present during the original coastdown procedure. Thus, in another 
alternative embodiment of the invention, a polynomial correction is used 
which takes the form of 
EQU V'.sub.i =C.sub.0 +C.sub.1 *V.sub.i +C.sub.2 *(V.sub.i).sup.2 + . . . 
where the coefficients C.sub.0, C.sub.l C.sub.2, etc., are similarly 
determined by applying least squares fit to the coastdown velocity 
profile. 
The foregoing equations are applied to data for each cylinder to derive 
separate correction factors to be applied to measurements obtained 
corresponding to each cylinder or pair of cylinders identified by the 
firing interval between PIP signals. The correction factors may be 
preferably stored in an electrically programmable memory in association 
with an electronic engine controller for storage and use during operation 
of an engine. 
In the foregoing embodiment employing a uniform coastdown in engine 
velocity, it is desirable to obtain a particular interrelationship between 
the cycle-averaged velocity .omega..sub.i and the individual velocity 
V.sub.i. In FIG. 7A, a circle 40 represents an position rotor in a 
six-cylinder engine having three PIP intervals (i.e., position markers) 
i-1, i, and i+1, in one full 360.degree. rotation of the engine. A 
measured interval 41 is obtained over the i'th PIP interval and a longer 
time interval 42 is measured over the 360.degree. rotation which is 
centered on the individual i'th interval, i.e., from i-1 through i+1. This 
is further illustrated in FIG. 7B, showing the firing order of a 
six-cylinder engine corresponding to the several PIP intervals. In this 
example, the i'th PIP interval 41 corresponds to the firing interval of 
cylinder No. 1 where i=3. The average velocity is determined over one 
360.degree. rotation or three consecutive PIP intervals where i equals 2, 
3, and 4 corresponding to the firing of cylinders 6, 1, and 4. These 
values are sorted together with the results of other measurements 
corresponding to other firing intervals of cylinder No. 5 and cylinder No. 
1 and their corresponding average velocities. 
Alternatively, average velocity .omega..sub.i can be determined as shown in 
FIG. 8A where a velocity V.sub.i is determined over an interval 44. The 
corresponding average velocity .omega..sub.i is measured over an interval 
45 which includes individual intervals from i-3 to i+2. As shown in FIG. 
8B, this embodiment uses all firings across the engine cycle (i.e., two 
rotations of the engine) and includes a power stroke corresponding to each 
of the engine cylinders. 
While preferred embodiments of the invention have been shown and described 
herein, it will be understood that such embodiments are provided by way of 
example only. Numerous variations, changes, and substitutions will occur 
to those skilled in the art without departing from the spirit of the 
invention. Accordingly, it is intended that the appended claims cover all 
such variations as fall within the spirit and scope of the invention.