System and method for improving fuel delivery accuracy by detecting and compensating for fuel injector characteristics

A fuel control system according to the principles of the present disclosure includes a voltage measuring module, a first difference module, a second difference module, a third difference module, and an injector driver module. The voltage measuring module measures first and second voltages at first and second electrical connectors of a fuel injector of an engine. The first difference module determines a first difference based on a difference between the first and second voltages. The second difference module determines a second difference between (i) the first difference and (ii) a previous value of the first difference. The third difference module determines a third difference between (i) the second difference and (ii) a previous value of the second difference. The injector driver module selectively applies power to the fuel injector based on the third difference.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to U.S. patent application Ser. No. 14/242,001 filed on Apr. 1, 2014, Ser. No. 14/242,247 filed on Apr. 1, 2014 and Ser. No. 14/231,807 filed on Apr. 1, 2014. The entire disclosure of the above applications are incorporated herein by reference.

FIELD

The present application relates to internal combustion engines, and more particularly, to systems and methods for improving fuel delivery accuracy by detecting and compensating for fuel injector characteristics.

BACKGROUND

Air is drawn into an engine through an intake manifold. A throttle valve and/or engine valve timing controls airflow into the engine. The air mixes with fuel from one or more fuel injectors to form an air/fuel mixture. The air/fuel mixture is combusted within one or more cylinders of the engine. Combustion of the air/fuel mixture may be initiated by, for example, spark provided by a spark plug.

Combustion of the air/fuel mixture produces torque and exhaust gas. Torque is generated via heat release and expansion during combustion of the air/fuel mixture. The engine transfers torque to a transmission via a crankshaft, and the transmission transfers torque to one or more wheels via a driveline. The exhaust gas is expelled from the cylinders to an exhaust system.

An engine control module (ECM) controls the torque output of the engine. The ECM may control the torque output of the engine based on driver inputs. The driver inputs may include, for example, accelerator pedal position, brake pedal position, and/or one or more other suitable driver inputs.

SUMMARY

A fuel control system according to the principles of the present disclosure includes a voltage measuring module, a first difference module, a second difference module, a third difference module, and an injector driver module. The voltage measuring module measures first and second voltages at first and second electrical connectors of a fuel injector of an engine. The first difference module determines a first difference based on a difference between the first and second voltages. The second difference module determines a second difference between (i) the first difference and (ii) a previous value of the first difference. The third difference module determines a third difference between (i) the second difference and (ii) a previous value of the second difference. The injector driver module selectively applies power to the fuel injector based on the third difference

A first fuel control method according to the principles of the present disclosure includes measuring first and second voltages at first and second electrical connectors of a fuel injector of an engine and determining a first difference based on a difference between the first and second voltages. The method further includes determining a second difference between (i) the first difference and (ii) a previous value of the first difference, determining a third difference between (i) the second difference and (ii) a previous value of the second difference, and selectively applying power to the fuel injector based on the third difference.

A second fuel control method according to the principles of the present disclosure includes measuring first and second voltages at first and second electrical connectors of a fuel injector of an engine and determining a first derivative based on a difference between the first and second voltages. The method further includes determining a second derivative based on (i) the first derivative and (ii) a previous value of the first derivative, determining a third derivative based on (i) the second derivative and (ii) a previous value of the second derivative, and selectively applying power to the fuel injector based on the third derivative.

DETAILED DESCRIPTION

An engine combusts a mixture of air and fuel within cylinders to generate drive torque. A throttle valve regulates airflow into the engine. Fuel is injected by fuel injectors. Spark plugs may generate spark within the cylinders to initiate combustion. Intake and exhaust valves of a cylinder may be controlled to regulate flow into and out of the cylinder.

The fuel injectors receive fuel from a fuel rail. A high pressure fuel pump receives fuel from a low pressure fuel pump and pressurizes the fuel within the fuel rail. The low pressure fuel pump draws fuel from a fuel tank and provides fuel to the high pressure fuel pump. The fuel injectors inject fuel directly into the cylinders of the engine.

Different fuel injectors, however, may have different opening and closing characteristics. For example, fuel injectors from different fuel injector manufacturers may have different opening and closing characteristics. Even fuel injectors from the same fuel injector manufacturer, however, may have different opening and closing characteristics. Example opening and closing characteristics include, for example, opening period and closing period. The opening period of a fuel injector may refer to the period between a first time when power is applied to the fuel injector to open the fuel injector and a second time when the fuel injector actually opens in response to the application of power. The closing period of a fuel injector may refer to the period between a first time when power is removed from the fuel injector to close the fuel injector and a second time when the fuel injector reaches a fully closed state in response to the removal of power.

The present application involves determining various parameters based on a difference between voltages at first and second electrical conductors of a fuel injector. More specifically, parameters that track second, third, and fourth (order) derivatives of the difference are determined using a plurality of sums and differences. An engine control module (ECM) determines characteristics of the fuel injector based on these parameters. The ECM controls application of power to the fuel injector based on the characteristics of the fuel injector.

Referring now toFIG. 1, a functional block diagram of an example engine system100for a vehicle is presented. The engine system100includes an engine102that combusts an air/fuel mixture to produce drive torque for the vehicle. While the engine102will be discussed as a spark ignition direct injection (SIDI) engine, the engine102may include another type of engine. One or more electric motors and/or motor generator units (MGUs) may be provided with the engine102.

Air is drawn into an intake manifold106through a throttle valve108. The throttle valve108may vary airflow into the intake manifold106. For example only, the throttle valve108may include a butterfly valve having a rotatable blade. An engine control module (ECM)110controls a throttle actuator module112(e.g., an electronic throttle controller or ETC), and the throttle actuator module112controls opening of the throttle valve108.

Air from the intake manifold106is drawn into cylinders of the engine102. While the engine102may include more than one cylinder, only a single representative cylinder114is shown. Air from the intake manifold106is drawn into the cylinder114through an intake valve118. One or more intake valves may be provided with each cylinder.

The ECM110controls fuel injection into the cylinder114via a fuel injector121. The fuel injector121injects fuel, such as gasoline, directly into the cylinder114. The fuel injector121is a solenoid type, direct injection fuel injector. Solenoid type, direct injection fuel injectors are different than port fuel injection (PFI) injectors and piezo electric fuel injectors. The ECM110may control fuel injection to achieve a desired air/fuel ratio, such as a stoichiometric air/fuel ratio. A fuel injector may be provided for each cylinder.

The injected fuel mixes with air and creates an air/fuel mixture in the cylinder114. Based upon a signal from the ECM110, a spark actuator module122may energize a spark plug124in the cylinder114. A spark plug may be provided for each cylinder. Spark generated by the spark plug124ignites the air/fuel mixture.

The engine102may operate using a four-stroke cycle or another suitable operating cycle. The four strokes, described below, may be referred to as the intake stroke, the compression stroke, the combustion stroke, and the exhaust stroke. During each revolution of a crankshaft (not shown), two of the four strokes occur within the cylinder114. Therefore, two crankshaft revolutions are necessary for the cylinders to experience all four of the strokes.

During the intake stroke, air from the intake manifold106is drawn into the cylinder114through the intake valve118. Fuel injected by the fuel injector121mixes with air and creates an air/fuel mixture in the cylinder114. One or more fuel injections may be performed during a combustion cycle. During the compression stroke, a piston (not shown) within the cylinder114compresses the air/fuel mixture. During the combustion stroke, combustion of the air/fuel mixture drives the piston, thereby driving the crankshaft. During the exhaust stroke, the byproducts of combustion are expelled through an exhaust valve126to an exhaust system127.

A low pressure fuel pump142draws fuel from a fuel tank146and provides fuel at low pressures to a high pressure fuel pump150. While only the fuel tank146is shown, more than one fuel tank146may be implemented. The high pressure fuel pump150further pressurizes the fuel within a fuel rail154. The fuel injectors of the engine102, including the fuel injector121, receive fuel via the fuel rail154. Low pressures provided by the low pressure fuel pump142are described relative to high pressures provided by the high pressure fuel pump150.

The low pressure fuel pump142may be an electrically driven pump. The high pressure fuel pump150may be a variable output pump that is mechanically driven by the engine102. A pump actuator module158may control output of the high pressure fuel pump150based on signals from the ECM110. The pump actuator module158may also control operation (e.g., ON/OFF state) of the low pressure fuel pump142.

The engine system100includes a fuel pressure sensor176. The fuel pressure sensor176measures a pressure of the fuel in the fuel rail154. The engine system100may include one or more other sensors180. For example, the other sensors180may include one or more other fuel pressure sensors, a mass air flowrate (MAF) sensor, a manifold absolute pressure (MAP) sensor, an intake air temperature (IAT) sensor, a coolant temperature sensor, an oil temperature sensor, a crankshaft position sensor, and/or one or more other suitable sensors.

Referring now toFIG. 2, a functional block diagram of an example fuel control system including an example portion of the ECM110is presented. A fueling module204determines target fuel injection parameters208for a fuel injection event of the fuel injector121. For example, the fueling module204may determine a target mass of fuel for the fuel injection event and a target starting timing for the fuel injection event. The fueling module204may determine the target mass of fuel, for example, based on a target air/fuel ratio (e.g., stoichiometry) and an expected mass of air within the cylinder114for the fuel injection event. One or more fuel injection events may be performed during a combustion cycle of the cylinder114.

A pulse width module212determines an initial (fuel injection) pulse width216for the fuel injection event based on the target mass of fuel. The pulse width module212may determine the initial pulse width216further based on pressure of the fuel within the fuel rail154and/or one or more other parameters. The initial pulse width216corresponds to a period to apply power to the fuel injector121during the fuel injection event to cause the fuel injector121to inject the target mass of fuel under the operating conditions.

Different fuel injectors, however, may have different closing periods, opening periods, opening magnitudes, and other characteristics. The closing period of a fuel injector may refer to the period between: a first time when power is removed from the fuel injector to close the fuel injector; and a second time when the fuel injector actually becomes closed and stops injecting fuel. Fuel injectors with longer closing periods will inject more fuel than fuel injectors with shorter closing periods despite all of the fuel injectors being controlled to inject the same amount of fuel.

The opening period of a fuel injector may refer to the period between: a first time when power is applied to the fuel injector to open the fuel injector; and a second time when the fuel injector actually becomes open and begins injecting fuel. Fuel injectors with longer opening periods will inject less fuel than fuel injectors with shorter opening periods despite all of the fuel injectors being controlled to inject the same amount of fuel. The opening magnitude of a fuel injector may correspond to how much the fuel injector opens for a fuel injection event.

An adjusting module220adjusts the initial pulse width216based on one or more injector parameters222determined for the fuel injector121to produce a final pulse width224. The adjustment of the initial pulse width216may include lengthening or shortening the initial pulse width216to determine the final pulse width224, such as by advancing or retarding a beginning of the pulse and/or advancing or retarding an ending of the pulse. Determination of the final pulse width224and the injector parameters222is described in detail below.

An injector driver module236determines a target current profile (not shown) based on the final pulse width224. The injector driver module236applies high and low voltages to first and second electrical connectors of the fuel injector121via high and low side lines240and244to achieve the target current profile through the fuel injector121for the fuel injection event.

The injector driver module236may generate the high and low voltages using reference and boost voltages248and252. The reference and boost voltages248and252may be direct current (DC) voltages. A reference voltage module256provides the reference voltage248, for example, based on a voltage of a battery (not shown) of the vehicle. A DC/DC converter module260boosts (increases) the reference voltage248to generate the boost voltage252.

A voltage measuring module261measures the high voltage at the first electrical connector of the fuel injector121and generates a high side voltage262based on the voltage at the first electrical conductor. The voltage measuring module261also measures the low voltage at the second electrical connector of the fuel injector121and generates a low side voltage263based on the voltage at the second electrical conductor. The voltage measuring module261measures the high and low voltages relative to a ground reference potential.

A voltage difference module264generates a voltage difference268based on a difference between the low side voltage263and the high side voltage262. For example, the voltage difference module264may set the voltage difference268equal to the low side voltage263minus the high side voltage262. For another example, the voltage difference module264may set the voltage difference268equal to the high side voltage262minus the low side voltage263. The voltage difference module264samples the low side voltage263and the high side voltage262and generates values of the voltage difference268based on a predetermined sampling rate. A filter, such as a low pass filter (LPF) or another suitable type of filter, may be implemented to filter the voltage difference268. An analog to digital converter (ADC) may also be implemented such that the voltage difference268includes corresponding digital values.

A first summer module272determines a first sum276by summing the last N values of the voltage difference268. N is an integer greater than one. For example only, N may be 8 or another suitable value. The first summer module272updates the first sum276every N sampling periods such that the first sum276is updated each time that N new values of the voltage difference268have been received.

A second summer module280determines a second sum284by summing the last M values of the first sum276. M is an integer greater than one. For example only, M may be 10 or another suitable value. The second summer module280updates the second sum284each time the first sum276is updated.

A third summer module288determines a third sum292by summing the last M values of the second sum284. The third summer module288updates the third sum292each time the second sum284is updated. A fourth summer module296determines a fourth sum300by summing the last M values of the third sum292. The fourth summer module296updates the fourth sum300each time the third sum292is updated. A fifth summer module304determines a fifth sum308by summing the last M values of the fourth sum300. The fifth summer module304updates the fifth sum308each time the fourth sum300is updated. While the example of calculating the first-fifth sums276,284,292,300, and308is shown and discussed, two or more sums may be determined, and a greater or lesser number of summer modules may be implemented. The first summer module272reduces sampling errors and jitter and also reduces the number of later computations necessary. The other summer modules provide shape preserving filters. Also, while the second-fifth summer modules are each discussed as using M values, one or more of the second-fifth summer modules may use a different number of previous values.

A first difference module312determines a first difference316based on a difference between the fifth sum308and a previous (e.g., last) value of the fifth sum308. A second difference module320determines a second difference324based on a difference between the first difference316and a previous (e.g., last) value of the first difference316.

A third difference module328determines a third difference332based on a difference between the second difference324and a previous (e.g., last) value of the second difference324. A fourth difference module336determines a fourth difference340based on a difference between the third difference332and a previous (e.g., last) value of the third difference332.

The first difference316corresponds to and has the same shape as a first derivative (d/dt) of the voltage difference268. The second difference324corresponds to and has the same shape as a second derivative (d2/dt2) of the voltage difference268. The third difference332corresponds to and has the same shape as a third derivative (d3/dt3) of the voltage difference268. The fourth difference340corresponds to and has the same shape as a fourth derivative (d4/dt4) of the voltage difference268. In various implementations, the ECM110may include first, second, third, and fourth derivative modules (not shown) that determine the first, second, third, and fourth derivatives. The first, second, third, and fourth derivative modules may be included in place of or in addition to the first, second, third and fourth difference modules312,320,328, and336.

Additionally, minimum and maximum values of the first difference316occur at the same times as minimum and maximum values of the first derivative (d/dt) of the voltage difference268. Minimum and maximum values of the second difference324also occur at the same times as minimum and maximum values of the second derivative (d2/dt2) of the voltage difference268. Minimum and maximum values of the third difference332also occur at the same times as minimum and maximum values of the (d3/dt3) of the voltage difference268. However, calculation of first-fourth derivatives is less computationally efficient than calculating the first-fourth differences316,324,332, and340, as discussed above. Since the first-fourth differences316,324,332, and340are determined at a predetermined rate, the first-fourth differences316,324,332, and340are an accurate representative of the first-fourth derivatives. Additionally, using sums instead of averages reduces computational complexity and maintains the shape of the input signal.

While the example of calculating the first-fourth differences316,324,332, and340has been discussed, two or more differences may be determined, and a greater or lesser number of difference modules may be implemented. Also, while the example is discussed in terms of use of the voltage difference268, the present application is applicable to identifying changes in other signals.

FIG. 3includes a graph including example traces of the voltage difference268, current350through the fuel injector121, the third difference332, the fourth difference340and fuel flow352versus time for a fuel injection event. Referring now toFIGS. 2 and 3, the injector driver module236applies a pulse to the fuel injector121from time354until time358for the fuel injection event. Current flows through the fuel injector121based on the application of the pulse to the fuel injector121, as illustrated by350.

The period between when the injector driver module236ends the pulse and when the fuel injector121reaches a fully closed state may be referred to as the closing period of the fuel injector121. A first zero crossing of the fourth difference340that occurs after the injector driver module236ends the pulse may correspond to the time when the fuel injector121reaches the fully closed state. InFIG. 3, the fourth difference340first crosses zero at approximately time362. The closing period of the fuel injector121therefore corresponds to the period between time358and time362inFIG. 3. The parameter determination module344determines the closing period of the fuel injector121based on the period between the time that the injector driver module236ends the pulse for a fuel injection event and the time that the fourth difference340first crosses zero after the end of the pulse.

The third difference332reaches a minimum value at the first zero crossing of the fourth difference340. The minimum value of the third difference332is indicated by366inFIG. 3. The third difference332reaches a maximum value at a second zero crossing of the fourth difference340that occurs after the injector driver module236ends the pulse. InFIG. 3, the second zero crossing of the fourth difference340occurs at approximately time370, and the maximum value of the third difference332is indicated by374.

In various implementations, a first predetermined offset may be applied to the first zero crossing to identify the minimum value of the third difference332and/or a second predetermined offset may be applied to the second zero crossing to identify the maximum value of the third difference332. For example, the minimum value of the third difference332may occur the first predetermined offset before or after the first zero crossing of the fourth difference340and/or the maximum value of the third difference332may occur the second predetermined offset before or after the second zero crossing of the fourth difference340. The application of the first and/or second predetermined offsets may be performed to better correlate with the minimum and maximum values of the third difference332.

The parameter determination module344determines an opening magnitude of the fuel injector121based on a difference between the minimum value366of the third difference332and the maximum value374of the third difference332.

Based on the closing period of the fuel injector121and the opening magnitude of the fuel injector121, the length of pulses applied to the fuel injector121can be adjusted such that the fuel injector121will as closely as possible inject the same amount of fuel as other fuel injectors, despite manufacturing differences between the fuel injectors. Adjustments are determined and applied for each fuel injector. Without the adjustments, the differences between the fuel injectors may cause the fuel injectors to inject different amounts of fuel.

The parameter determination module344may determine a closing period delta for the fuel injector121based on a difference between the closing period of the fuel injector121and a predetermined closing period. The predetermined closing period may be calibrated based on the closing periods of a plurality of fuel injectors. For example only, the parameter determination module344may set the closing period delta based on or equal to the predetermined closing period minus the closing period of the fuel injector121.

The parameter determination module344may determine a closing period compensation value based on the closing period delta and a closing period adjustment value. For example only, the parameter determination module344may set the closing period compensation value based on or equal to a product of the closing period delta and the closing period adjustment value. The parameter determination module344may determine the closing period adjustment value based on the final pulse width224used for a fuel injection event and a fuel pressure380of the fuel injection event. The parameter determination module344may determine the closing period adjustment value, for example, using one of a function and a mapping that relates the final pulse width224and the fuel pressure380to the closing period adjustment value. The fuel pressure380corresponds to a pressure of the fuel provided to the fuel injector121for the fuel injection event and may be, for example, measured using the fuel pressure sensor176.

The parameter determination module344may determine an opening period delta for the fuel injector121based on the final pulse width224used for a fuel injection event and a predetermined pulse width for the fuel injection event. For example only, the parameter determination module344may set the opening period delta based on a difference between the final pulse width224for the fuel injection event and the predetermined pulse width for the fuel injection event. The parameter determination module344may, for example, set the opening period delta based on or equal to the final pulse width224for the fuel injection event minus the predetermined pulse width for the fuel injection event.

The parameter determination module344may determine the predetermined pulse width for the fuel injection event based on the opening magnitude of the fuel injector121and the fuel pressure380for the fuel injection event. Determination of the opening magnitude of the fuel injector121is discussed above. The parameter determination module344may determine the predetermined pulse width, for example, using one of a function and a mapping that relates the opening magnitude and the fuel pressure380to the predetermined pulse width.

The parameter determination module344may determine an opening period compensation value based on the opening period delta and an opening period adjustment value. For example only, the parameter determination module344may set the opening period compensation value based on or equal to a product of the opening period delta and the opening period adjustment value. The parameter determination module344may determine the opening period adjustment value based on the final pulse width224used for a fuel injection event and a fuel pressure380of the fuel injection event. The parameter determination module344may determine the opening period adjustment value, for example, using one of a function and a mapping that relates the final pulse width224and the fuel pressure380to the opening period adjustment value. The fuel pressure380corresponds to a pressure of the fuel provided to the fuel injector121for the fuel injection event and may be, for example, measured using the fuel pressure sensor176.

As stated above, the adjusting module220adjusts the initial pulse width216for a fuel injection event based on one or more of the injector parameters222to determine the final pulse width224for the fuel injection event. For example only, the adjusting module220may set the final pulse width224based on the initial pulse width216, the opening period compensation value, and the closing period compensation value. The adjusting module220may set the final pulse width224, for example, using one of a function and a mapping that relates the initial pulse width216, the opening period compensation value, and the closing period compensation value to the final pulse width224. For example only, the adjusting module220may set the final pulse width224equal to or based on a sum of the initial pulse width216, the opening period compensation value, and the closing period compensation value. While the above example is discussed in terms of the fuel injector121, a respective opening period compensation value and a respective closing period compensation value may be determined and used for each fuel injector.

FIG. 4is a flowchart depicting an example method of determining the first-fifth sums276,284,292,300, and308and the first-fourth differences316,324,332, and340for determining the closing period, the closing period compensation value, and the opening period compensation value for a fuel injection event of the fuel injector121. Control may begin with404where the parameter determination module344determines whether the injector driver module236has stopped applying a pulse to the fuel injector121for the fuel injection event. If404is true, the parameter determination module344may start a timer, and control continues with408. If404is false, control may remain at404.

At408, the voltage difference module264samples the high and low side voltages262and263and generates a value of the voltage difference268based on the samples. The parameter determination module344may also reset a sample counter value at408. At412, the parameter determination module344determines whether the sample counter value is less than N. As described above, N is the number of values used by the first summer module272to determine the first sum276. If412is true, control may return to408. If412is false, control continues with416.

At416, the first summer module272determines the first sum276based on the last N values of the voltage difference268. The second summer module280determines the second sum284based on the last M values of the first sum276. The third summer module288determines the third sum292based on the last M values of the second sum284. The fourth summer module296determines the fourth sum300based on the last M values of the third sum292. The fifth summer module304determines the fifth sum308based on the last M values of the fourth sum300.

Also at416, the first difference module312determines the first difference316between the fifth sum308and the last value of the fifth sum308. The second difference module320determines the second difference324between the first difference316and the last value of the first difference316. The third difference module328determines the third difference332between the second difference324and the last value of the second difference324. The fourth difference module336determines the fourth difference340between the third difference332and the last value of the third difference332. The parameter determination module344also increments an update counter value and resets the sample counter value at416.

At420, the parameter determination module344determines whether the update counter value is less than a predetermined value. If420is true, control returns to408. If420is false, control continues with424. The predetermined value is calibratable and is set based on the number of samples of the voltage difference268necessary to fill all of the following modules with new values: the first summer module272, the second summer module280, the third summer module288, the fourth summer module296, the fifth summer module304, the first difference module312, the second difference module320, the third difference module328, and the fourth difference module336. For example only, based on the example ofFIG. 2, the predetermined value may be set to greater than or equal to:
(N*M)+Q(N*(M−1))+N*R,
where N is the number of samples used by the first summer module272, M is the number of samples used by the second, third, fourth, and fifth summer modules280,288,296, and304(in the example where the same number of samples are used), Q is the number of summer modules implemented that update their outputs each time the first summer module272updates the first sum276, and R is the number of difference modules implemented. In the example ofFIG. 2, Q equals 4 (for the second, third, fourth, and fifth summer modules280,288,296, and304), and R equals 4 (for the first, second, third, and fourth difference modules312,320,328, and336).

At424, the parameter determination module344may monitor the fourth difference340for the first zero crossing. The parameter determination module344may identify the minimum value of the third difference332as the value of the third difference332occurring at the first zero crossing of the fourth difference340. The parameter determination module344may also monitor the fourth difference for the second zero crossing. The parameter determination module344may identify the maximum value of the third difference332as the value of the third difference332occurring at the second zero crossing of the fourth difference340. While not explicitly shown, control continues to generate samples of the voltage difference268and to update the first, second, third, fourth, and fifth sums276,284,292,300, and308and the first, second, third, and fourth differences316,324,332, and340at424to determine the minimum and maximum values of the third difference332.

The parameter determination module344may also determine the opening period compensation value and the closing period compensation value for the fuel injector121at428. The parameter determination module344determines the opening magnitude of the fuel injector121based on a difference between the minimum value of the third difference332and the maximum value of the third difference332. The parameter determination module344may determine the closing period delta for the fuel injector121based on a difference between the closing period of the fuel injector121and the predetermined closing period. For example only, the parameter determination module344may set the closing period delta based on or equal to the predetermined closing period minus the closing period of the fuel injector121.

The parameter determination module344may determine the closing period compensation value based on the closing period delta and the closing period adjustment value. For example only, the parameter determination module344may set the closing period compensation value based on or equal to a product of the closing period delta and the closing period adjustment value. The parameter determination module344may determine the closing period adjustment value for the fuel injection event based on the final pulse width224used for a fuel injection event and the fuel pressure380for the fuel injection event. The parameter determination module344may determine the closing period adjustment value, for example, using one of a function and a mapping that relates the final pulse width224and the fuel pressure380to the closing period adjustment value.

The parameter determination module344may determine the opening period delta for the fuel injector121based on the final pulse width224used for the fuel injection event and the predetermined pulse width for the fuel injection event. For example only, the parameter determination module344may set the opening period delta based on a difference between the final pulse width224for the fuel injection event and the predetermined pulse width for the fuel injection event. The parameter determination module344may, for example, set the opening period delta based on or equal to the final pulse width224for the fuel injection event minus the predetermined pulse width for the fuel injection event.

The parameter determination module344may determine the predetermined pulse width for the fuel injection event based on the opening magnitude of the fuel injector121and the fuel pressure380for the fuel injection event. The parameter determination module344may determine the predetermined pulse width, for example, using one of a function and a mapping that relates the opening magnitude and the fuel pressure380to the opening period adjustment value.

The parameter determination module344may determine the opening period compensation value based on the opening period delta and the opening period adjustment value. For example only, the parameter determination module344may set the opening period compensation value based on or equal to a product of the opening period delta and the opening period adjustment value. The parameter determination module344may determine the opening period adjustment value for the fuel injection event based on the final pulse width224used for a fuel injection event and the fuel pressure380for the fuel injection event. The parameter determination module344may determine the opening period adjustment value, for example, using one of a function and a mapping that relates the final pulse width224and the fuel pressure380to the opening period adjustment value.

As stated above, the closing period compensation value and the opening period compensation value can be used to adjust the initial pulse width216determined for future fuel injection events.

FIG. 5is a flowchart depicting an example method of controlling fueling for a fuel injection event of the fuel injector121. Control may begin with504where the pulse width module212determines the initial pulse width216for a fuel injection event of the fuel injector121. The pulse width module212may determine the initial pulse width216based on the target mass determined for the fuel injection event, which may be determined based on a target air/fuel mixture and a mass of air expected to be within the cylinder114.

At508, the adjusting module220adjusts the initial pulse width216based on the opening period compensation value and the closing period compensation value to produce the final pulse width224. For example, the adjusting module220may set the final pulse width224equal to or based on a sum of the initial pulse width216, the opening period compensation value, and the closing period compensation value. At512, the injector driver module236applies power to the fuel injector121based on the final pulse width224. The application of power to the fuel injector121should cause the fuel injector121to open and inject fuel for the fuel injection event.

FIG. 6is a flowchart depicting an example method of determining values in a mapping or lookup table that may be used by the parameter determination module344to determine the opening and closing period adjustment values as described above. The lookup table relates a desired fuel mass and a desired fuel pressure to the opening and closing period adjustment values. The method shown inFIG. 6may be executed by the parameter determination module344or by the calibration module382and the storage module384.

At602, the method determines a master pulse width, a master opening magnitude, and a master closing period for a desired fuel mass and a desired fuel pressure. For example, the method may select the master pulse width, the opening magnitude and the closing period from a plurality of master pulse widths, opening magnitudes, and closing periods, respectively, based on the desired fuel mass and fuel pressure. The master pulse widths, opening magnitudes, and closing periods may be predetermined by characterizing a certain number of injectors (e.g., 24 injectors).

At604, the method determines an opening magnitude adjustment value and a closing period adjustment value to evaluate. For example, the method may initially set the adjustment values to zero, and then increase the adjustment values by a predetermined increment (e.g., 0.1) after each evaluation until the adjustment values are equal to one. At that point, the method may evaluate the same set of adjustment values at a different operating condition (e.g., a different fuel mass and fuel pressure).

At606, the method determines an opening magnitude and a closing period for a specific injector of the engine102. The method may determine the injector opening magnitude and the injector closing period based on the desired fuel mass and fuel pressure. For example, the method may determine the opening magnitude and closing period for the injector using a predetermined mapping of the desired fuel mass and fuel pressure to the opening magnitude and closing period.

At608, the method determines an adjusted pulse width of the injector. For example, the method may determine the adjusted pulse width using a relationship such as
PWadj=PWmstr+(OMmstr−OMinj)*Kom+(CPmstr−CPinj)*Kcp
where PWadj is the adjusted pulse width, PWmster is the master pulse width, OMmstr is the master opening magnitude, OMinj is the injector opening magnitude, Kom is the opening magnitude adjustment value, CPmster is the master closing period, CPinj is the injector closing period, and Kcp is the closing period adjustment value.

At610, the method estimates a fuel mass output of the injector based on the adjusted pulse width, the desired fuel pressure, the injector opening magnitude, and the injector closing period. For example, the method may estimate the fuel mass output based on a predetermined relationship between the adjusted pulse width, the desired fuel pressure, the injector opening magnitude, the injector closing period, and the fuel mass output. The predetermined relationship may be embodied in a lookup table and/or an equation.

At612, the method determines whether the fuel mass output has been estimated for all of the injectors in the engine102. If the fuel mass output has been estimated for all of the injectors, the method continues at614. Otherwise, the method returns to606and determines the opening magnitude and closing period for one of the injectors of the engine102for which the fuel mass output has not been estimated.

At614, the method determines a mean and standard deviation of fueling errors associated with each of the injectors. The method may determine a fueling error of an injector by determining a difference between the fuel mass output of the injector and the desired fuel mass. At616, the method determines whether the mean and the standard deviation of the fueling errors are less than stored values of the mean and the standard deviation. If the mean and the standard deviation of the fueling errors are less than the stored values, the method continues at618. Otherwise, the method continues at620. At618, the method stores the opening magnitude and closing period adjustment values, as well as the corresponding mean and the standard deviation. The method may also store the adjusted pulse width of each injector as a desired pulse width of the injector at the desired fuel mass and fuel pressure.

At620, the method determines whether all of opening magnitude and closing period adjustment values within a predetermined set of opening magnitude and closing period adjustment values have been evaluated for the desired fuel mass and fuel pressure. As indicated above, the predetermined set of opening magnitude and closing period adjustment values may vary from zero to one by a predetermined increment (e.g., 0.1). If all of the opening magnitude and closing period adjustment values have been evaluated for the desired fuel mass and the desired fuel pressure, the method continues at622. Otherwise, the method continues at604and evaluates opening magnitude and closing period adjustment values that have not been evaluated.

At622, the method determines whether the opening magnitude and closing period adjustment values have been evaluated for all desired fuel masses and desired fuel pressures within a predetermined set of desired fuel masses and desired fuel pressures. If the opening magnitude and closing period adjustment values have been evaluated for all of the desired fuel masses and fuel pressures within the predetermined set of desired fuel masses and desired fuel pressures, the method ends. Otherwise, the method continues at602and evaluates the opening magnitude and closing period adjustment values for a different desired fuel mass and pressure.

The foregoing description is merely illustrative in nature and is in no way intended to limit the disclosure, its application, or uses. The broad teachings of the disclosure can be implemented in a variety of forms. Therefore, while this disclosure includes particular examples, the true scope of the disclosure should not be so limited since other modifications will become apparent upon a study of the drawings, the specification, and the following claims. As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A or B or C), using a non-exclusive logical OR. It should be understood that one or more steps within a method may be executed in different order (or concurrently) without altering the principles of the present disclosure.

The term code, as used above, may include software, firmware, and/or microcode, and may refer to programs, routines, functions, classes, and/or objects. The term shared processor encompasses a single processor that executes some or all code from multiple modules. The term group processor encompasses a processor that, in combination with additional processors, executes some or all code from one or more modules. The term shared memory encompasses a single memory that stores some or all code from multiple modules. The term group memory encompasses a memory that, in combination with additional memories, stores some or all code from one or more modules. The term memory may be a subset of the term computer-readable medium. The term computer-readable medium does not encompass transitory electrical and electromagnetic signals propagating through a medium, and may therefore be considered tangible and non-transitory. Non-limiting examples of a non-transitory tangible computer readable medium include nonvolatile memory, volatile memory, magnetic storage, and optical storage.