System and method for controlling fuel supplied to an internal combustion engine

The engine control method adjusts fuel injection delay using a weighted average of past and current cycles with a Smith Predictor, addressing the challenge of cylinder deactivation in variable displacement engines, improving fuel injection accuracy and engine efficiency.

DE102017119210B4Active Publication Date: 2025-08-07FORD GLOBAL TECH LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
DE102017119210
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2016-08-23
Filing Date
2017-08-22
Publication Date
2025-08-07
Estimated Expiration
2037-08-22

AI Technical Summary

Technical Problem

Existing engine control systems struggle to accurately estimate fuel injection delay times in variable displacement internal combustion engines, particularly when cylinders are deactivated, leading to air-fuel ratio oscillations and reduced engine efficiency.

Method used

An engine control method that adjusts fuel injection delay based on a weighted average of past and current engine cycles, incorporating a base delay time and additional delay time to compensate for cylinder deactivation patterns, using a Smith Predictor control to stabilize the fuel injection system.

Benefits of technology

This approach provides improved fuel injection control, reducing errors and allowing higher gain without oscillations, enhancing air-fuel ratio management and engine efficiency in variable displacement engines.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Internal combustion engine control method, comprising: Injecting fuel into an internal combustion engine via a controller in response to a fuel injection delay generated via a calculation comprising a past fuel injection delay of a past internal combustion engine cycle and a current fuel injection delay of a current internal combustion engine cycle, wherein the fuel injection delay begins at a time when the fuel is injected into a cylinder and ends when combustion by-products are detected by the lambda sensor; and Compensating the fuel injection delay via a fuel control included in the control system, wherein the current fuel injection delay of the current engine cycle is based on a value of a counter that is incremented in response to a lack of injection of fuel into a cylinder of an engine bank during a prescribed crankshaft angular interval of the current engine cycle.
Need to check novelty before this filing date? Find Prior Art

Description

Area

[0001] The present description relates to a system and method for delivering fuel to a variable displacement internal combustion engine. The system and methods provide for adjusting a value to compensate for fuel delay in response to whether or not fuel is being delivered to internal combustion engine cylinders. Background and brief presentation

[0002] Fuel may be injected into an internal combustion engine so that the internal combustion engine can provide a requested or desired torque. The amount of fuel injected into the internal combustion engine may differ from an amount of fuel commanded to be injected into the internal combustion engine. Furthermore, the amount of fuel requested to be injected may differ from an amount of fuel that provides a desired air-fuel mixture ratio in the internal combustion engine. The differences in fuel delivery may result from tolerance variations of internal combustion engine components, sensor measurement errors, and errors in open-loop fuel control parameters.An estimate of an air-fuel ratio in the internal combustion engine may be determined via a lambda sensor, and the air-fuel ratio in the internal combustion engine may be fed back to an internal combustion engine controller to compensate for errors between a desired air-fuel ratio in the internal combustion engine and a measured air-fuel ratio. The controller may determine an error in the air-fuel ratio in the internal combustion engine by subtracting the measured air-fuel ratio in the internal combustion engine from the desired air-fuel ratio in the internal combustion engine. The error in the air-fuel ratio in the internal combustion engine may be multiplied by a gain (e.g., a real number) to correct the error in the air-fuel ratio in the internal combustion engine.If the gain value is small, a long period of time may be required to reduce the engine air-fuel ratio error to zero. However, if the gain is too large, the engine air-fuel ratio may oscillate around the desired engine air-fuel ratio. This oscillation can increase engine emissions and degrade vehicle drivability.

[0003] The air-fuel oscillations may be related to a fuel injection delay time between the injection of fuel into a cylinder and a time at which its combustion byproducts are converted into an air-fuel ratio in the internal combustion engine via the oxygen sensor and a transfer function. The fuel injection delay time may include, among other things, the time between fuel injection and the combustion of fuel in the cylinder. The delay time may also include the amount of time it takes for the internal combustion engine to rotate through the exhaust stroke of the cylinder, during which fuel is ingested and exhaust gases are expelled from the cylinder into the exhaust manifold, as well as a time it takes for the exhaust gases to travel from the cylinder's exhaust valves to the oxygen sensor in the exhaust manifold.The delay time may result in the controller not observing a change in the engine air-fuel ratio when the engine air-fuel ratio has already changed. Consequently, the controller may attempt to increase the control action (e.g., amount of injected fuel) to bring the measured engine air-fuel ratio closer to the desired engine air-fuel ratio. However, the engine air-fuel ratio may be overcontrolled because the engine air-fuel ratio has already changed due to previous control settings, causing the controller to overcompensate in a backward direction, which may induce engine air-fuel ratio oscillations.

[0004] The fuel injection delay time can be determined empirically by adjusting the air-fuel ratio of internal combustion engines at a steady-state engine speed and recording the time required to observe a change in the air-fuel ratio within the internal combustion engine. The delay value can be stored in memory, where it represents the fuel injection delay time for each internal combustion engine cylinder. The fuel injection delay value can be applied in a controller compensation network to enable increased gain while reducing the possibility of air-fuel ratio oscillations within the internal combustion engine.However, recent developments have made it possible for each cylinder of an internal combustion engine to be activated and deactivated independently of other cylinders to increase engine efficiency and provide a desired amount of torque. Furthermore, cylinders can be activated and deactivated in many different combinations to maintain cylinder temperature and reduce engine oil consumption. Consequently, a single value for estimating fuel injection delay may no longer be suitable for a specific engine speed and load. Accordingly, it may be desirable to provide a means of determining fuel injection delay for an internal combustion engine that has cylinders that can be deactivated.

[0005] JP 2004 - 270 596 A describes a system with a variable number of cylinders for an internal combustion engine. The problem is that reducing the number of active cylinders in an internal combustion engine changes the exhaust gas transport time, which distorts the lambda control and increases exhaust emissions. It is proposed to adapt the lambda control parameters to the cylinder deactivation status. The basic controller parameters are either corrected depending on the number of deactivated cylinders or depending on the cylinder deactivation pattern.

[0006] The object of the present invention is to provide an improved internal combustion engine control method and internal combustion engine system.

[0007] This problem is solved by the features of the independent patent claims. Advantageous developments of the invention are the subject of the dependent claims.

[0008] The inventors herein have recognized the aforementioned problems and have developed an internal combustion engine control method comprising: injecting fuel into an internal combustion engine via a controller in response to a fuel injection delay generated via a weighted average of a fuel injection delay of a past internal combustion engine cycle and a fuel injection delay of a current internal combustion engine cycle. By setting a fuel injection delay based on a weighted average of a fuel injection delay of a past internal combustion engine cycle and a fuel injection delay of a current internal combustion engine cycle, it may be possible to provide the technical result of an improved estimation of the fuel injection delay when it is unknown whether one or more cylinders of a cylinder bank will be deactivated in the near future (e.g., during a decommissioning phase).B. termination of combustion and fuel injection into the internal combustion engine cylinder) are initiated or not. By incorporating past fuel injection delays and a current fuel injection delay into an estimate of a future fuel injection delay, a realistic estimate of future fuel injection delays is provided when past cylinder deactivation patterns are correlated with future cylinder deactivation patterns. In the case where a future cylinder deactivation pattern is known, the fuel injection delay can be determined by adding a base cylinder delay time to an incoming delay time based on the expected.

[0009] Cylinder deactivation pattern. In this way, an estimate of the fuel injection delay can be determined, regardless of whether a future cylinder firing pattern is known or not.

[0010] The present description can provide several advantages. In particular, the approach can provide improved fuel injection control by enabling higher gains, so that fuel injection errors can be reduced earlier. Furthermore, the approach provides for estimating fuel injection delay, regardless of whether a future cylinder firing pattern is known or not. Additionally, the approach can provide improved air-fuel control for internal combustion engines that can deactivate internal combustion engine cylinders with a large number of different patterns. Short description of the drawings

[0011] The advantages described herein will become more fully apparent upon reading an example of an embodiment, referred to herein as the detailed description, whether read in isolation or with reference to the drawings, in which: Fig. Figure 1 is a schematic diagram of an internal combustion engine; Fig. Figure 2A is a schematic representation of an eight-cylinder engine with two cylinder banks; Fig. Figure 2B is a schematic representation of a four-cylinder engine with a single cylinder bank; Fig. 3 is a block diagram of a fuel control system for a cylinder bank; Fig. 4-6 show a flow diagram of an example method for determining and applying a fuel injection delay; Fig. 7 is an exemplary sequence in which the fuel injection delay is determined; and Fig. 8 is an alternative exemplary sequence in which fuel injection delay is determined. Detailed description

[0012] This description relates to determining fuel injection delay for an internal combustion engine including cylinders that can be deactivated and reactivated from time to time. The fuel injection delay determination methods described herein can be applied to a cylinder bank of an internal combustion engine. Fuel injection delay times of internal combustion engines with multiple cylinder banks can be determined by reproducing the methods for determining fuel injection timing for a single bank of cylinders and applying the method to other cylinder banks. An internal combustion engine cylinder of an internal combustion engine is Fig. 1. The combustion engine cylinder from Fig. 1 may be part of an internal combustion engine including multiple cylinders, as in Fig. 2A and Fig. 2B. Fuel supplied to a bank of cylinders can be controlled via a controller as shown in Fig. 3 shown, can be regulated. Fig. 4-6 show methods for determining fuel injection delay. Fig. 7 and Fig. 8 show exemplary sequences in which the fuel injection delay is determined.

[0013] In relation to Fig. 1, an internal combustion engine 10 comprising a plurality of cylinders, of which one cylinder in Fig. 1, is controlled by the electronic internal combustion engine control unit 12. The internal combustion engine 10 includes the combustion chamber 30 and the cylinder walls 32 with the piston 36 disposed therein and connected to the crankshaft 40.

[0014] The combustion chamber 30 is shown communicating with the intake manifold 44 and the exhaust manifold 48 via an intake valve 52 and an exhaust valve 54, respectively. Each intake and exhaust valve may be operated by an intake cam 51 and an exhaust cam 53. The position of the intake cam 51 may be determined by the intake cam sensor 55. The position of the exhaust cam 53 may be determined by the exhaust cam sensor 57. The intake cam 51 and exhaust cam 53 may be moved relative to the crankshaft 40 via the intake valve phase actuator 59 and the exhaust valve phase actuator 58.

[0015] Fuel injector 66 is shown positioned to inject fuel directly into cylinder 30, known to those skilled in the art as direct injection. Alternatively, fuel may be injected into an intake port, known to those skilled in the art as port fuel injection. Fuel injector 66 delivers liquid fuel proportional to the pulse width of the signal from controller 12. Fuel is delivered to fuel injector 66 by fuel system 175. Additionally, intake manifold 44 is shown communicating with optional electronic throttle 62 (e.g., a butterfly valve), which adjusts a position of throttle plate 64 to control airflow from air cleaner 43 and air intake 42 to intake manifold 44. Throttle 62 regulates airflow from the air cleaner 43 into the engine air intake 42 to intake manifold 44.In one example, a two-stage high-pressure fuel system may be used to generate higher fuel pressures. In some examples, the throttle 62 and throttle body 64 may be positioned between the intake valve 52 and the intake manifold 44 such that the throttle 62 is a port throttle. A distributorless ignition system 88 provides an ignition spark to the combustion chamber 30 in response to the controller 12 via a spark plug 92. A wideband oxygen (UEGO) sensor 126 is shown coupled to the exhaust manifold 48, upstream of the catalytic converter 70. Alternatively, the UEGO sensor 126 may be replaced with a binary oxygen sensor.

[0016] In one example, the catalyst 70 may include multiple catalyst modules. In another example, multiple emission control devices, each including multiple modules, may be used. In one example, the catalyst 70 may be a three-way catalyst.

[0017] The control 12 is in Fig. 1 as a conventional microcomputer, including: microprocessor unit 102, input / output ports 104, read-only memory 106 (e.g., non-volatile memory), random access memory 108, keep-alive memory 110, and a conventional data bus.The controller 12 is shown receiving various signals from sensors coupled to the engine 10 in addition to the signals previously discussed, including: engine coolant temperature (ECT) from temperature sensor 112 coupled to cooling sleeve 114; a position sensor 134 coupled to an accelerator pedal 130 for sensing the force applied by the human driver 132; a measurement of engine manifold pressure (MAP) from pressure sensor 122 coupled to intake manifold 44; an engine position sensor from a Hall effect sensor 118 that senses the position of the crankshaft 40; a measurement of the mass of air entering the engine from sensor 120; a brake pedal position from brake pedal position sensor 154 when the human driver 132 applies the brake pedal 150; and a measurement of the throttle position from sensor 58.Atmospheric pressure may also be sensed for processing by controller 12 (the sensor not shown). In a preferred aspect of the present description, engine position sensor 118 generates a predetermined number of evenly spaced pulses every revolution of the crankshaft, from which engine speed (RPM) can be determined.

[0018] In some examples, the internal combustion engine may be coupled to an electric motor / battery system in a hybrid vehicle. Furthermore, in some examples, other internal combustion engine configurations may be employed, for example, a diesel engine. During operation, each cylinder in the internal combustion engine 10 typically undergoes a four-stroke cycle: the cycle includes the intake stroke, the compression stroke, the power stroke, and the exhaust stroke. During the intake stroke, the exhaust valve 54 generally closes and the intake valve 52 opens. Air is introduced into the combustion chamber 30 via the intake manifold 44, and the piston 36 moves toward the bottom of the cylinder, increasing the volume in the combustion chamber 30. The position where the piston 36 is near the bottom of the cylinder and at the end of its stroke (e.g., when the combustion chamber 30 is at its largest volume) is typically referred to by those skilled in the art as bottom dead center (BDC).During the compression stroke, the intake valve 52 and the exhaust valve 54 are closed. The piston 36 moves toward the cylinder head to compress the air in the combustion chamber 30. The point at which the piston 36 is at the end of its stroke and closest to the cylinder head (e.g., when the combustion chamber 30 is at its smallest volume) is typically referred to by those skilled in the art as top dead center (TDC). In a process referred to herein as injection, fuel is introduced into the combustion chamber. In a process referred to herein as ignition, the injected fuel is ignited by known ignition means, such as the spark plug 92, resulting in combustion. During the power stroke, the expanding gases push the piston 36 back to BDC. The crankshaft 40 converts piston motion into rotating shaft torque.Finally, during the exhaust stroke, the exhaust valve 54 opens to release the combusted air-fuel mixture to the exhaust manifold 48, and the piston returns to TDC. Note that the above is merely an example, and the timing for opening and / or closing the intake and exhaust valves may vary, such as to provide positive or negative valve overlap, late intake valve closing, or various other examples.

[0019] In relation to Fig. 2A, an exemplary multi-cylinder internal combustion engine including two cylinder banks is shown. The internal combustion engine includes cylinders and associated components as shown in Fig. 1. The internal combustion engine 10 includes eight cylinders 210. Each of the eight cylinders is numbered, and the cylinder numbers are included within the cylinders. The fuel injectors 66 selectively supply fuel to each of the cylinders that are activated (e.g., combusting fuel during an internal combustion engine cycle). Cylinders 1-8 may be selectively deactivated to improve the fuel efficiency of the internal combustion engine when less than the full torque capacity of the internal combustion engine is demanded. For example, cylinders 2, 3, 5, and 8 (e.g., one pattern of deactivated cylinders) may be deactivated during one internal combustion engine cycle (e.g., two revolutions for a four-stroke internal combustion engine). During another internal combustion engine cycle, cylinders 1, 4, 6, and 7 may be deactivated. Further, other patterns of cylinders may be selectively deactivated based on vehicle operating conditions.

[0020] The internal combustion engine 10 includes a first cylinder bank 204 that includes four cylinders 1, 2, 3, and 4. The internal combustion engine 10 also includes a second cylinder bank 202 that includes four cylinders 5, 6, 7, and 8. The cylinders of each bank can be active or deactivated during a cycle of the internal combustion engine. A first fuel controller adjusts the fuel injection timing to control amounts of fuel injected into the first cylinder bank. A second fuel controller adjusts the fuel injection timing to control amounts of fuel injected into the second cylinder bank. The fuel controllers can, as in Fig. 3. The air-fuel ratio of the first cylinder bank can be controlled independently of the air-fuel ratio of the second cylinder bank. With respect to Fig. 2B, an exemplary multi-cylinder internal combustion engine including a cylinder bank is shown. The internal combustion engine includes cylinders and associated components as shown in Fig. 1. The internal combustion engine 10 includes four cylinders 210. Each of the four cylinders is numbered, and the cylinder numbers are included within the cylinders. The fuel injectors 66 selectively supply fuel to each of the cylinders that are activated (e.g., combusting fuel during one cycle of the internal combustion engine). Cylinders 1-4 may be selectively deactivated to improve the fuel efficiency of the internal combustion engine when less than the full torque capacity of the internal combustion engine is demanded. For example, cylinders 2 and 3 (e.g., one pattern of deactivated cylinders) may be deactivated during one internal combustion engine cycle (e.g., two revolutions for a four-stroke internal combustion engine). During another internal combustion engine cycle, cylinders 1 and 4 may be deactivated. Further, other patterns of cylinders may be selectively deactivated based on vehicle operating conditions.

[0021] The internal combustion engine 10 includes a single cylinder bank 250 that includes four cylinders 1-4. The cylinders of the individual bank can be active or deactivated during an internal combustion engine cycle. A fuel controller adjusts the fuel injection timing to control amounts of fuel injected into the single cylinder bank. The fuel controller can, as in Fig. 3 shown.

[0022] The system from Fig. 1-2B provides an internal combustion engine system comprising: an internal combustion engine including one or more cylinder deactivation mechanisms; a controller including executable instructions stored in non-transitory memory to inject an amount of fuel into a cylinder of the internal combustion engine in response to a fuel injection delay, wherein the fuel injection delay is based on a cylinder firing schedule arrangement when the cylinder firing schedule arrangement is available, and the fuel injection delay is based on a weighted average of a past engine cycle fuel injection delay and a current engine cycle fuel injection delay when the firing schedule arrangement is unavailable.The internal combustion engine system includes providing the fuel injection delay by adding a base fuel injection delay to the weighted average. The internal combustion engine system includes providing the fuel injection delay based on a base fuel injection delay time. The internal combustion engine system further includes providing the base fuel injection delay time when all internal combustion engine cylinders of an internal combustion engine are combusting air and fuel. The internal combustion engine system further includes providing the fuel injection delay further based on an internal combustion engine cycle time when the cylinder firing scheduling arrangement is available.The internal combustion engine system further includes additional instructions to base fuel injection delay on a predetermined number of delay cycles when cylinders are not scheduled to fire in a next cycle of the internal combustion engine.

[0023] Fig. Figure 3 shows a closed-loop fuel control system 300 including a Smith Predictor (SP) control section 305 to reduce the response delay between the injection of fuel and the detection of combustion products of the fuel at the oxygen sensor (e.g., 126 of Fig. 1) to compensate. The control from Fig. 3 can be inserted into the system Fig. 1, Fig. 2A and Fig. 2B and cooperate therewith. Furthermore, at least portions of the control may be embodied as executable instructions stored in non-volatile memory, while other portions of the method may be performed via a controller that translates operating states of devices and actuators into the physical domain. The SP control section 305 acts as a lead filter to compensate for the time delay between the injection of fuel and the observation of byproducts of fuel combustion. The SP control section 305 includes an SP filter or prediction block 306 that is supplied with a time constant from block 304 and is connected in series with an SP delay block 310 such that the SP delay block receives the output of the SP filter block.The SP control section 305 includes an internal feedback loop in which the control signal output from the PI controller 314 is fed back to the input of the SP filter block 306. Block 306 uses a time constant that is a function of engine speed and load (normalized cylinder air charge). Block 308 is a fuel injection delay, and the fuel injection delay applies a fuel injection delay as shown in FIG. Fig. 4-8. Block 310 implements the fuel injection delay of block 308 by delaying the output of block 310 from the input of block 310 by the duration requested by block 308. The Smith predictor provides two estimated signals: the response of the system with the pure delay (output of 310) and without (output of 306). The Smith predictor essentially allows the PI controller to operate as if the actual system does not have the pure delay or is delay-free, as long as the output of 310 and the measured signal from the oxygen sensor 126 match. In the case of a reference change, assuming no disturbance occurs and that blocks 306 and 310 have a correctly identified SP model of the actual system, this assumption is met and the system responds as if no delay exists.If a disturbance occurs, the error is detected as a difference between the SP model (310) and the measured (126) system, which the controller will attempt to correct. In this way, the closed-loop system is stabilized by the lag compensator so that higher gains can be used. As a result, the controller's response to a disturbance has a peak error that is somewhat reduced and the duration of the error, which is significantly reduced. For fuel control applications, this makes lag compensation very valuable because it reduces the integrated air / fuel ratio error that reaches the catalyst, which can only absorb a limited amount of air / fuel deviation from stoichiometry.

[0024] Block 302 represents a reference signal or desired engine air-fuel ratio, or lambda (e.g., desired engine air-fuel ratio / stoichiometric air-fuel ratio). Block 316 is a lambda value of one used to control the engine to a stoichiometric air-fuel mixture. Block 314 represents proportional / integral control. Block 310 represents the plant or engine. The outputs of blocks 302, 306, 310, and 312 are combined at 312 with an appropriate sign to provide a lag-compensated error signal to PI controller 314. The output of PI controller 314 is added to a value of one and multiplied by the reference value at block 320.The output of block 320 is a value of one if a stoichiometric air-fuel ratio is desired and if there is no fault indicated by the oxygen sensor 126. Block 322 is a model of air-fuel ratio disturbances, and block 326 is a cylinder inlet wall wetting model. The output of multiplication block 320 is added to the output of block 322 at summing point 324. The desired engine air-fuel ratio is provided to the system or engine 10 by adjusting the fuel injection timing and the amount of fuel injected into the engine. The oxygen sensor 126 samples exhaust gases and converts an oxygen concentration into a measured engine air-fuel ratio.

[0025] The Smith predictor 305 compensates for fuel injection delays, which may limit the amount of gain that can be applied in the PI controller 314 to regulate the air-fuel ratio of the internal combustion engine. The gains of the PI controller 314 may be a proportional gain K P and an integral gain K I which may correspond to scalar real numbers that multiply the error input to the PI controller 314 via the summing block 312.

[0026] In relation to Fig. 4-6, a block diagram is shown for determining the fuel injection time delay of an internal combustion engine that can selectively deactivate and activate cylinders to improve the fuel efficiency of the internal combustion engine. The method of Fig. 4-6 can be integrated into the system Fig. 1, Fig. 2A and Fig. 2B and cooperate with it. Furthermore, at least parts of the procedure can be Fig. 4-6 may be incorporated as executable instructions stored in non-volatile memory, while other portions of the method may be performed via a controller that translates operating states of devices and actuators into the physical domain. The method 400 includes event-based and time-based operations, as indicated below. Event-based operations may be initiated by hardware interrupts generated via an engine position sensor or a signal based on an input from an engine position sensor. Time-based operations are initiated at predetermined time intervals scheduled by the controller. The method 400 may be part of a controller that controls fuel delivery to a cylinder bank of an internal combustion engine.

[0027] At 401, method 400 assesses whether a cylinder firing schedule is available. In one example, a cylinder firing schedule is an arrangement stored in memory that indicates which engine cylinders fire during an engine cycle. Fig. 8 shows an example of a cylinder firing schedule. A cylinder firing schedule may not necessarily be available under some conditions, such as when the controller does not include a cylinder firing schedule or when a cylinder firing schedule is not present due to operating conditions. For example, a cylinder firing schedule may not necessarily be available when the internal combustion engine enters a degraded state or when the cylinder firing schedule cannot be revised under current operating conditions. If method 400 judges that a cylinder firing schedule is available, the answer is yes, and method 400 exits to 402. Fig. 5. Otherwise the answer is no and the procedure 400 goes to 440 Fig. 6 over.

[0028] At 402, method 400 assesses whether fuel is injected into a cylinder of a cylinder bank controlled based on method 400 with a current cylinder interrupt. Step 402 may be initiated by a cylinder interrupt event. The cylinder interrupt may be generated based on a rising edge of a signal based on an output of the engine position sensor (e.g., a signal based on an output of a crankshaft position sensor and a camshaft position sensor). An example cylinder interrupt signal is illustrated in Fig. 7. The rising edge of a cylinder interrupt signal may be generated for each engine cylinder during an engine cycle 10 crankshaft degrees before top dead center of the compression stroke. In one example, method 400 tracks, via a bit or word in memory, which cylinder is the latest to receive fuel. If no fuel is being injected into a cylinder of the cylinder bank regulated by the current cylinder interrupt controller, the answer is no, and method 400 proceeds to 404. Otherwise, the answer is yes, and method 400 proceeds to 420.

[0029] At 420, method 400 revises two variables stored in memory. The first method 400 updates the variable extra_delay_count to correspond to a value of the variable extra_delay_count. The variable extra_delay_count is a value of a counter that tracks how many cylinder interruptions have occurred for the cylinder bank regulated by the controller without fuel being injected into the cylinder bank. The variable extra_delay_count is based on the current engine cycle. The variable extra_del_cnt_last is the value of the counter that tracks how many cylinder interruptions have occurred for the cylinder bank regulated by the controller without fuel being injected into the cylinder bank for a last or previous engine cycle.Accordingly, method 400 shifts the value of extra_delay_count to extra_del_cnt_last if fuel is injected into a cylinder during the current cylinder interrupt. Method 400 proceeds to 406.

[0030] At 404, method 400 increments the value of the counter stored in the variable extra_delay_count by a value of one, corresponding to a cylinder event (e.g., the injection of fuel into the cylinder or, alternatively, combustion in the cylinder). Step 404 is also initiated by the cylinder interrupt. Method 400 proceeds to 406.

[0031] At 406, method 400 converts the counter values of 402 and 404 to values having engine cycle units. Specifically, the variable extra_delay_count is converted to engine cycle units by dividing extra_delay_count by the number of cylinders per engine cylinder bank, or extra_delay_cycle = extra_delay_count / cyl_per_bank, where extra_delay_cycle is the counter of how many cylinder interruptions have occurred for the cylinder bank regulated by the controller without fuel being injected into the cylinder bank during the current engine cycle in engine cycle units. The variable extra_delay_cycle is a fractional number that is rounded. The variable cyl_per_bank is the number of cylinders in the cylinder bank regulated by the controller.

[0032] The variable extra_delay_cycle_last is converted to engine cycle units by dividing extra_delay_cycle_last by the number of cylinders per engine cylinder bank, or extra_delay_cycle_last = extra_del_cnt / cyl_per_bank, where extra_delay_cycle_last is the counter of how many cylinder interruptions have occurred for the cylinder bank controlled by the controller without fuel being injected into the cylinder bank during the past engine cycle in engine cycle units. The variable cyl_per_bank is the number of cylinders in the cylinder bank controlled by the controller. Step 406 is also initiated by the cylinder interruption.

[0033] At 408, method 400 determines the additional or incremental fuel injection delay time associated with deactivating one or more engine cylinders of a cylinder bank. In one example, the incremental fuel injection delay time is a weighted average of current and past fuel injection delays of the engine cycle.Specifically, the additional fuel injection delay time added to a base fuel injection delay time is given by the following equation: extra delay_delay_tm = (extra_delay_cycle*(1-WA_last) + extra_delay_cycle_last*WA_last) * engine_cycle_tm, where extra_delay_tm is the fuel injection delay time, WA is a weighted average parameter with a value between 0 and 1, engine_cycle_tm is the time required for the engine to complete two engine revolutions (or one cycle) at the current engine speed, and the other variables are as previously described. If the value of the variable WA is greater than 0.5, the additional fuel injection delay of the past engine cycle is given more weight than the fuel injection delay of the current engine cycle.The larger the value of variable WA, the better the incoming fuel injection delay of the current cylinder cycle matches the incoming fuel injection delay of the previous cylinder cycle. When all engine cylinders are reactivated, the incoming fuel injection delay reaches a value of zero in two engine cycles, regardless of the value of WA. The operations of step 408 are performed at predetermined constant time intervals. Method 400 proceeds to 410.

[0034] At 410, method 400 retrieves a fuel injection time delay from a table in memory. The table in memory may be indexed by the current engine speed and the current engine torque output. The table outputs an empirically determined fuel injection time delay for when the engine is operating with all cylinders activated and combusting air and fuel. The base fuel injection time delay occupies a variable in memory base_delay_tm. The operations of step 410 are performed at predetermined constant time intervals. Method 400 proceeds to 412.

[0035] At 412, method 400 determines the total fuel injection delay time for the current engine cycle. The total fuel injection delay time is given by the following equation: total_delay_tm = extra_delay_tm + base_delay_tm. The operations of step 412 are performed at predetermined constant time intervals. The method proceeds to 414.

[0036] At 414, method 400 provides a fuel injection delay time (e.g., a value obtained in block 308 from Fig. 3 is stored), the value being determined at 412. Further, fuel injection timing adjustments are applied to the timing of fuel injectors of a cylinder bank, so that the amount of fuel injected into engine cylinders is adjusted in response to the fuel injection delay time, as in Fig. 3. The method 400 proceeds to the end.

[0037] In this way, fuel injection delay can be adjusted even when a cylinder timing map is unavailable. The fuel injection delay time can allow the proportional and integral gain values of a fuel control to be increased without causing the fuel control system to oscillate during fuel delivery.

[0038] At 440, method 400 retrieves a cylinder firing schedule array stored in memory. In one example, the array may include a predetermined number of cells corresponding to the number of engine cylinders. Cells in the array are populated with values corresponding to numbers of engine cylinders or a value of zero. A value of zero indicates that no cylinder is firing for the cylinder event associated with the cell in the array for the current engine cycle. A cylinder firing array for a four-cylinder engine may be created as follows: Zelle 1 Zelle 2 Zelle 3 Zelle 4 1 3 4 2 where the cells of the array are shown in bold. The first cell in the array is filled with a value of 1 to indicate that cylinder number one is the first cylinder to fire (e.g., burns air and fuel) during the internal combustion engine cycle. The second cell in the array is filled with a value of 3 to indicate that cylinder number three is the second cylinder to fire during the internal combustion engine cycle. The third cell in the array is filled with a value of four to indicate that cylinder number four is the third cylinder to fire during the internal combustion engine cycle. The fourth cell in the array is filled with a value of two to indicate that cylinder number two is the fourth cylinder to fire during the internal combustion engine cycle. The cells of the array correspond to a firing order for the internal combustion engine.For example, the four-cylinder engine has a firing order of 1, 3, 4, 2, where the first cell of the array, from left to right, is the array cell for cylinder number one. The second cell of the array, from left to right, is the array cell for cylinder number three, and so on.

[0039] Of course, cylinder firing schedule layouts can be created in alternative ways. For example, cylinder firing schedules can contain only one and zero values, with the specific cells of the layout being assigned to selected internal combustion engine cylinders.

[0040] Method 400 registers or stores in memory cylinders firing during the current engine cycle for the cylinder bank for which fuel is controlled by the current method. In the above example, the engine includes a single bank, and all four cylinders are registered in memory as cylinders firing during the current engine cycle. Step 440 is initiated by a cylinder interrupt event. Method 400 proceeds to 442.

[0041] At 442, method 400 judges whether fuel is being injected into a cylinder of a cylinder bank controlled based on method 400 with a current cylinder interrupt according to values in the array evaluated at 440. Step 442 may be initiated by a cylinder interrupt event. If method 400 judges that a cylinder of the cylinder bank is to receive fuel and combust the fuel during the current engine cycle, the answer is yes, and method 400 proceeds to 444. Otherwise, the answer is no, and method 400 proceeds to 460.

[0042] At 460, method 400 revises a variable stored in memory. Method 400 updates the variable extra_delay_cycle to correspond to a value of the variable max_extra_delay. The value of the variable max_extra_delay is set to a value between 1 and 1.5 (cycles). This value constrains the fuel injection delay estimate to a realistic value. Method 400 proceeds to 448.

[0043] At 444, method 400 examines the cylinder firing arrangement and determines the cylinder in the arrangement that should receive the fuel currently being calculated. Then, method 400 counts the cells of the cylinder firing arrangement until a cell is reached at which fuel is injected, and the counter is stored in memory. For example, using the above firing arrangement, if the cylinder that should receive fuel is cylinder three, as indicated by the second cell in the arrangement from left to right, the counter will be a value of one when it is determined that the next cylinder that should receive fuel is cylinder number four, as indicated by the third cell in the arrangement. However, if the value in cell three is zero, the counter is incremented to a value of two and stops when cylinder number two is determined to be receiving fuel based on the value in the fourth cell.Procedure 400 goes to 446.

[0044] At 446, method 400 converts the counter values from 402 and 404 to values comprising engine cycle units. Specifically, the counter from step 444 is converted to engine cycle units by dividing the variable count by the number of cylinders per engine cylinder bank, or extra_delay_cycle=(count-1) / cyl per bank, where count is the counter of how many cylinder events (e.g., cells in the cylinder firing schedule arrangement) occur before the current cylinder event in which no fuel is injected into cylinders of the cylinder bank. The variable cyl_per_bank is the number of cylinders in the cylinder bank regulated by the controller. Method 400 proceeds to 448.

[0045] At 448, method 400 determines the additional or added fuel injection delay time associated with deactivating one or more engine cylinders of a cylinder bank. In one example, the added fuel injection delay time is determined by the following equation: extra delay_tm = extra_delay_cycle * engine_cycle_tm, where extra delay_tm is the fuel injection delay time and engine_cycle_tm is the time required for the engine to complete two engine revolutions (or one cycle) at the current engine speed. The operations of step 448 are performed at predetermined constant time intervals. Method 400 proceeds to 450.

[0046] At 450, method 400 retrieves a fuel injection time delay from a table in memory. The table in memory may be indexed by the current engine speed and the current engine torque output. The table outputs an empirically determined fuel injection time delay for when the engine is operating with all cylinders activated and combusting air and fuel. The base fuel injection time delay occupies a variable in memory, base_delay_tm. The operations of step 450 are performed at predetermined constant time intervals. Method 400 proceeds to 452.

[0047] At 452, method 400 determines the total fuel injection delay time for the current engine cycle. The total fuel injection delay time is given by the following equation: total_delay_tm = extra_delay_tm + base_delay_tm. The operations of step 452 are performed at predetermined constant time intervals. The method proceeds to 454.

[0048] At 454, method 400 provides a fuel injection delay time (e.g., a value obtained in block 308 from Fig. 3 is stored), the value being determined at 452. Further, fuel injection timing adjustments are applied to the timing of fuel injectors of a cylinder bank, so that the amount of fuel injected into engine cylinders is adjusted in response to the fuel injection delay time, as in Fig. 3. The method 400 proceeds to the end.

[0049] In this way, the fuel injection delay can be adjusted based on a known cylinder firing schedule, allowing the fuel injection delay time to be determined more accurately. The fuel injection delay time can allow the proportional and integral gain values of a fuel control to be increased without causing the fuel control system to oscillate during fuel delivery.

[0050] Accordingly, the procedure of Fig. 5 provides an internal combustion engine control method, comprising: injecting fuel into an internal combustion engine via a controller in response to a fuel injection delay generated via a weighted average of a fuel injection delay of a past internal combustion engine cycle and a current fuel injection delay of a current internal combustion engine cycle. The method includes wherein the fuel injection delay is estimated without a cylinder firing schedule of a cylinder cycle. The method includes wherein estimating the fuel injection delay further includes adding a base fuel injection delay to the weighted average.

[0051] In some examples, the method includes wherein the base fuel injection delay is a fuel injection delay time when all engine cylinders of an engine are combusting air and fuel. The method includes wherein the fuel injection delay of the current engine cycle is based on a value of a counter that is incremented in response to a lack of fuel injection into a cylinder of an engine bank during a prescribed crankshaft angular interval of the current engine cycle.The method further includes, wherein the fuel injection delay of the past engine cycle is based on a value of a counter incremented in response to a lack of fuel injection into a cylinder of an engine bank during a prescribed crankshaft angular interval of a past engine cycle. The method further includes compensating for the fuel injection delay via a fuel control included in the controller.

[0052] The procedure from Fig. 6 provides an internal combustion engine control method, comprising: injecting fuel into an internal combustion engine via a controller in response to a fuel injection delay generated by adding a base cylinder delay time and an add-on delay time, wherein the base cylinder delay time is a first delay time for the internal combustion engine when all cylinders of the internal combustion engine fire in a first cycle of the internal combustion engine, and the add-on delay time is a second delay time for the internal combustion engine when fewer than all cylinders of the internal combustion engine fire in a second cycle of the internal combustion engine. The method includes wherein the add-on delay is generated by multiplying an actual total number of delay cycles by an internal combustion engine cycle time.The method includes, wherein the engine cycle time is a time required for the engine to complete two engine revolutions at a current engine speed. The method includes, wherein the actual total number of retard cycles is based on a counter. The method further includes, wherein the actual total number of retard cycles is based on a cylinder firing scheduling arrangement.

[0053] In some examples, the method further includes compensating for the fuel injection delay via a fuel control included in the controller. The method further includes basing the added delay time on a predetermined number of delay cycles if cylinders are not scheduled to fire during a next engine cycle. Fig. 7, an exemplary sequence is shown that describes how the fuel injection delay time can be determined when a cylinder ignition schedule arrangement is not available. The sequence from Fig. 7 may be made in accordance with the procedure Fig. 5. The Fig. 7 shown curves occur at the same time and are aligned in time.

[0054] The first course from above in Fig. Figure 7 is a trace of a cylinder interrupt signal state versus time. The cylinder interrupt signal consists of a series of pulses having a high level and a low level. The positive rising edges 702 of the signals may be part of a hardware interrupt that initiates control actions described in method 400. Each pulse of the trace corresponds to a cylinder number associated with the cylinder interrupt. For example, pulse 750 is a cylinder interrupt for cylinder number three. The rising edge 702 of the interrupt for cylinder number three may be at a prescribed engine position (e.g., 10 crankshaft degrees before top dead center of the compression stroke for cylinder number three). The rising edges of the cylinder interrupts correspond to similar engine positions for the other engine cylinders.The cylinder interrupt signal may be provided based on the output of a crankshaft position sensor and the output of a camshaft position sensor. The vertical axis represents the cylinder interrupt state, and the horizontal axis represents time. Time increases from the left side of the graph to the right side of the graph.

[0055] The second course from the top in Fig. Figure 7 is a plot of fuel injection events versus time. The vertical axis indicates the fuel injection event state, and fuel is injected when the trace is at a higher level near the vertical axis arrow. Fuel is not injected when the trace is at a lower level near the horizontal axis. In this example, fuel for a cylinder receiving fuel occurs before the cylinder cut-off for the cylinder receiving fuel. For example, the fuel injected at 752 is injected into cylinder number three. Thus, fuel injection into a cylinder precedes the rising edge of the cylinder cut-off for that cylinder in this example. Time increases from the left side of the trace to the right side of the trace. The third trace from the top in Fig. Figure 7 is a graph of a fuel injection delay counter value versus time. The vertical axis shows the value of the fuel injection delay counter (e.g., the value of the variable extra_delay_count from Fig. 5) and the fuel injection delay counter increases in the direction of the vertical axis arrow. Time increases from the left side of the graph to the right side of the graph.

[0056] The fourth course from the top in Fig. Figure 7 is a plot of a fuel injection delay time value versus time. The vertical axis shows the fuel injection delay time value (e.g., the value of the variable extra_delay_tm from Fig. 5) and the fuel injection delay counter increases in the direction of the vertical axis arrow. Time increases from the left side of the graph to the right side of the graph.

[0057] At time T0, the cylinder cutoff state is low, and no fuel is injected. The value of the fuel injection delay counter is zero, and the incremental delay time is also zero. Fuel is injected into cylinder number one between time T0 and time T1.

[0058] At time T1, the rising edge of the cylinder interrupt signal occurs, and a query is made to determine whether fuel was injected. Since fuel was injected between time T0 and time T1, the fuel injection delay counter remains at zero, as no fuel injection delay is induced by deactivating a cylinder. The added delay time also remains at zero.

[0059] Between time T1 and time T2, fuel is injected twice more, and two additional cylinder interruptions occur. The value of the delay counter and the additional delay time remain at zero. No fuel is injected between the interruption for cylinder number four and the interruption for cylinder number two at time T2.

[0060] At time T2, the interruption for cylinder number two occurs, but no fuel has been injected into cylinder number two, as indicated by the absence of a fuel injection pulse between the rising edge of the interruption of cylinder number four and the rising edge of the interruption of cylinder number two at time T2. Accordingly, the value of the fuel injection delay counter is incremented by one. Furthermore, the value of the fuel injection delay time is incremented based on the value of the fuel injection delay counter, as shown in Fig. 5 described.

[0061] Between time T2 and time T3, fuel is injected into cylinder number one. The value of the fuel injection delay counter remains at one, and the incoming delay time is a value greater than zero. At time T3, the cylinder interruption occurs for cylinder number one, causing the fuel injection counter to be updated. Because fuel has been injected into cylinder number one, the value of the fuel injection delay counter changes to zero, and the incoming delay time changes to zero.

[0062] Between time T3 and time T4, no fuel is injected into cylinder number three. The value of the fuel injection delay counter remains at a value of zero, and the added delay time corresponds to a value of zero. At time T4, the interruption for cylinder number three occurs, but no fuel has been injected into cylinder number three, as indicated by the absence of a fuel injection pulse between the rising edge of the interruption of cylinder number one and the rising edge of the interruption of cylinder number three at time T4. Accordingly, the value of the fuel injection delay counter is incremented by a value of one. Furthermore, the value of the fuel injection delay time is incremented based on the value of the fuel injection delay counter, as shown in Fig. 5 described.

[0063] Between time T4 and time T5, no fuel is injected into cylinder number four. The value of the fuel injection delay counter remains at one, and the added delay time is a value greater than zero.

[0064] At time T5, the interruption for cylinder number four occurs, but no fuel has been injected into cylinder number four, as indicated by the absence of a fuel injection pulse between the rising edge of the interruption of cylinder number three and the rising edge of the interruption of cylinder number four at time T5. Accordingly, the value of the fuel injection delay counter is incremented to a value of two. Furthermore, the value of the fuel injection delay time is incremented again based on the value of the fuel injection delay counter, as shown in Fig. 5. The fuel injection delay and the additional delay time are reset to zero at the next cylinder interruption for cylinder number 3 because fuel is injected into cylinder number two.

[0065] In this way, fuel injection delay and incremental delay values can be adjusted based on observed fuel injection and cylinder interruptions. Knowledge of a cylinder firing schedule is not used to determine the fuel injection delay.

[0066] In relation to Fig. 8, an exemplary sequence is shown that describes how the fuel injection delay time can be determined when a cylinder ignition schedule arrangement is available. The sequence of Fig. 8 may be made in accordance with the procedure Fig. 6 are provided. The Fig. 8 curves shown occur at the same time and are aligned in time.

[0067] The first course from above in Fig. 8 is a trace of a cylinder interrupt signal state versus time. The cylinder interrupt signal consists of a series of pulses having a high and a low level. The positive rising edges 802 of the signals may be part of a hardware interrupt that initiates control actions described in method 400. Each pulse of the trace corresponds to a cylinder number associated with the cylinder interrupt. For example, pulse 820 is a cylinder interrupt for cylinder number three. The rising edge 802 of the interrupt for cylinder number three may be at a prescribed engine position (e.g., 10 crankshaft degrees before top dead center of the compression stroke for cylinder number three). The rising edges of the cylinder interrupts correspond to similar engine positions for the other engine cylinders.The cylinder interrupt signal may be provided based on the output of a crankshaft position sensor and the output of a camshaft position sensor. The vertical axis represents the cylinder interrupt state, and the horizontal axis represents time. Time increases from the left side of the graph to the right side of the graph.

[0068] The second course from the top in Fig. Figure 8 is a plot of a cylinder firing schedule array versus time. The vertical axis indicates the cylinder firing schedule array. The cylinder firing arrays 804 are updated once per engine cycle (e.g., two engine revolutions). In this example, the cylinder firing array is updated prior to cylinder cutoff for cylinder number one. The cylinder firing array describes which cylinders are receiving fuel during the engine cycle, as previously described. Zeros in the array indicate that no fuel injection is occurring for the cylinder associated with the array cell. The horizontal axis represents time, and time increases from the left side of the plot to the right side of the plot.

[0069] The third course from the top in Fig. Figure 8 is a plot of the added delay cycle value versus time. The vertical axis shows the value of the added delay cycle variable (e.g., the value of the extra_delay_cycle variable from Fig. 6), and the value of the added delay cycle increases in the direction of the arrow on the vertical axis. The horizontal axis represents time, and time increases from the left side of the curve to the right side.

[0070] The fourth course from the top in Fig. Figure 8 is a graph of a fuel injection delay time value versus time. The vertical axis shows the fuel injection delay time value (e.g., the value of the variable extra_delay_tm from Fig.6) and the fuel injection delay counter increases in the direction of the vertical axis arrow. The horizontal axis represents time, and time increases from the left side of the graph to the right side of the graph.

[0071] At time T10, the cylinder interrupt state is low, and the cylinder firing schedule is populated with values to indicate that all engine cylinders are firing during the current engine cycle. The incoming delay cycle value is zero, and the incoming delay time is zero.

[0072] At time T11, the cylinder interrupt occurs for cylinder number one. Fuel has been injected into cylinder number one, as indicated by cell 850 of the cylinder firing schedule array, and the counter that counts the cylinders not receiving fuel increments to a value of one (not shown) when it evaluates cell 852. However, since cell 852 indicates that fuel will be injected into the next cylinder in the firing order for the cylinder bank, the counter stops at one. Counting begins at the cell of the cylinder firing schedule array corresponding to the current cylinder interrupt and ends at the cell where fuel injection is indicated. In this example, counting begins at cell 850 and ends at cell 852. The incoming delay cycle variable is a value of zero because a value of one is subtracted from the cycle counter when calculating the incoming delay cycle.The added delay time also remains at a value of zero since the value of the added delay cycle is zero.

[0073] Between time T11 and time T12, several cylinder interruptions occur. However, the added delay cycle and delay time remain zero because fuel is injected into the cylinders. Shortly before time T12, the cylinder firing schedule is updated, and fuel is not injected into cylinder number three for this engine cycle, as indicated by the value zero in cell 862.

[0074] At time T12, the cylinder interrupt occurs for cylinder number one. Fuel has been injected into cylinder number one, as indicated by cell 860 of the cylinder firing schedule array, and the counter that counts the cylinders not receiving fuel increments to a value of one (not shown) when it evaluates cell 862. However, since cell 862 indicates that no fuel will be injected into the next cylinder in the firing order for the cylinder bank, the counter has a value of one and counting continues at cell 864, where it is incremented to a value of two and stopped because fuel injection is again indicated in the third cell. The incoming delay cycle variable is incremented to a value of one because the incoming delay cycle calculation subtracts a value of one from the cycle counter, which at this time has a value of two.The added delay time increases in response to the increasing value of the added delay cycle.

[0075] At time T13, cylinder interruption occurs for cylinder number three. No fuel has been injected into cylinder number three, as indicated by cell 862 of the cylinder timing map, but the counter that counts the cylinders not receiving fuel detects that fuel is being delivered to cylinder number four at cell 864. Counted by cell 862, the counter at cell 864 increments to a value of one and then stops, as fuel is indicated as injected. Therefore, the value of the incoming delay cycle is zero, and the incoming delay time is zero.

[0076] Between time T13 and time T14, fuel is injected into each cylinder of the cylinder bank (the four-cylinder engine has only one bank of cylinders) so that the incoming delay counter and the incoming delay time remain at zero.

[0077] At time T14, cylinder interruption occurs for cylinder number three. Fuel has been injected into cylinder number three, as indicated by cell 870 of the cylinder firing schedule array, and the counter that counts the cylinders not receiving fuel increments to a value of one (not shown) when it evaluates cell 872. However, since cell 872 indicates that no fuel will be injected into the next cylinder in the firing order for the cylinder bank, the counter has a value of one and counting continues at cell 874, where it is incremented to a value of two and stopped because fuel injection is again indicated in the fourth cell. The incoming delay cycle variable is incremented to a value of one because the incoming delay cycle calculation subtracts a value of one from the cycle counter, which at this time has a value of two.The added delay time increases in response to the increasing value of the added delay cycle.

[0078] At time T15, cylinder interruption occurs for cylinder number four. No fuel has been injected into cylinder number four, as indicated by cell 872 of the cylinder timing map, but the counter that counts the cylinders not receiving fuel detects that fuel is being delivered to cylinder number two at cell 874. Counted by cell 872, the counter at cell 874 increments to a value of one and then stops, as fuel is indicated as injected. Therefore, the value of the incoming delay cycle is zero, and the incoming delay time is zero.

[0079] In this way, the fuel injection delay time can be revised in response to values in a cylinder firing schedule, allowing the fuel injection delay to be based on known instances of cylinder deactivation, thereby modifying the fuel injection delay time. Therefore, fuel injection timing delays can be based on an actual combustion sequence of the internal combustion engine.

[0080] It should be noted that the exemplary control and estimation routines included herein may be used with various internal combustion engine and / or vehicle system configurations. The control methods and routines disclosed herein may be stored as executable instructions in non-transitory memory and executed by the control system, including the controller in combination with the various sensors, actuators, and other internal combustion engine hardware. The specific routines described herein may represent one or more of any number of processing strategies, such as event-driven, interrupt-driven, multi-tasking, multi-threading, and the like. Thus, various illustrated acts, operations, and / or functions may be performed in the illustrated order, in parallel, or in some cases, omitted.Likewise, the processing order is not necessarily required to achieve the features and advantages of the exemplary embodiments described herein, but rather is provided for ease of illustration and description. One or more of the illustrated acts, operations, and / or functions may be performed repeatedly depending on the particular strategy employed. Furthermore, at least a portion of the described acts, operations, and / or functions may graphically represent code to be programmed into non-transitory memory of the computer-readable storage medium in the control system.The control actions may also transform the operating state of one or more sensors or actuators in the physical domain when the described actions are performed by executing the instructions in a system including the various internal combustion engine hardware components in combination with one or more controllers.

[0081] This concludes the description. A reading of this description by a person skilled in the art will reveal many changes and modifications without deviating from the spirit and scope of the description. For example, this description can be applied to I3, I4, I5, V6, V8, V10, and V12 engines operating on natural gas, gasoline, diesel, or alternative fuel configurations.

Claims

[1] Internal combustion engine control method, comprising: Injecting fuel into an internal combustion engine via a controller in response to a fuel injection delay generated via a calculation comprising a past fuel injection delay of a past internal combustion engine cycle and a current fuel injection delay of a current internal combustion engine cycle, wherein the fuel injection delay begins at a time when the fuel is injected into a cylinder and ends when combustion by-products are detected by the lambda sensor; and Compensating for fuel injection delay via a fuel control included in the control system, wherein the current fuel injection delay of the current engine cycle is based on a value of a counter that is incremented in response to a lack of injection of fuel into a cylinder of an engine bank during a prescribed crankshaft angular interval of the current engine cycle. [2] The method of claim 1, further comprising estimating the fuel injection delay without a cylinder firing schedule of a cylinder cycle, and further comprising: Generating the fuel injection delay by multiplying the current fuel injection delay by a value of one minus a weighted average parameter, and generating the fuel injection delay by multiplying the past fuel injection delay by the weighted average parameter. [3] The method of claim 2, wherein estimating the fuel injection delay further includes adding a base fuel injection delay to an additional fuel injection delay. [4] The method of claim 3, further comprising all engine cylinders of the engine combusting air and fuel, and wherein the calculation occurs when all engine cylinders of the engine combusting air and fuel, and wherein the base fuel injection delay is based on when all engine cylinders of an engine combusting air and fuel. [5] The method of claim 1, wherein the past fuel injection delay of the past engine cycle is based on a value of a counter incremented in response to a lack of injection of fuel into the cylinder of an engine bank during a prescribed crankshaft angular interval of the past engine cycle. [6] Internal combustion engine system comprising: an internal combustion engine, including one or more cylinder deactivation mechanisms; and a controller including executable instructions stored in non-volatile memory that, when executed, enable the controller to: Assess whether a cylinder firing plan is available, and injecting a quantity of fuel into a cylinder of the internal combustion engine in response to a fuel injection delay, wherein the fuel injection delay is based on a cylinder firing schedule arrangement during a first state, the first state being a state when the cylinder firing schedule arrangement is available, wherein the fuel injection delay is based on the fuel injection delay of a past engine cycle and the fuel injection delay of a current engine cycle during a second condition, the second condition being a condition when the cylinder firing schedule arrangement is unavailable; and where the fuel injection delay begins when fuel is injected into the cylinder and ends when fuel combustion byproducts are detected by an oxygen sensor. [7] Internal combustion engine system according to claim 6, further comprising: additional executable instructions for generating the fuel injection delay by multiplying the current fuel injection delay by a value of one minus a weighted average parameter, and generating the fuel injection delay by multiplying the past fuel injection delay by the weighted average parameter. [8] The internal combustion engine system of claim 7, wherein the weighted average parameter has a value from 0 to 1, and wherein the instructions further enable the controller to base the fuel injection delay on a predetermined number of delay cycles when cylinders are not scheduled to fire in a next cycle of the internal combustion engine. [9] The internal combustion engine system according to claim 6, wherein a base fuel injection delay time is a fuel injection delay time when all engine cylinders of the internal combustion engine combust air and fuel. [10] The internal combustion engine system of claim 6, wherein the fuel injection delay is further based on an internal combustion engine cycle time when a cylinder firing schedule arrangement is available. [11] The internal combustion engine system of claim 6, further comprising additional instructions for the fuel injection delay to be based on a predetermined number of delay cycles when cylinders are not scheduled to fire in a next cycle of the internal combustion engine.

Citation Information

Patent Citations

  • Variable cylinder system for internal combustion engine

    JP2004270596A

  • JP002004270596A