Patent Description:
An example of an internal combustion engine includes a catalyst capable of storing oxygen and an upstream air-fuel ratio sensor provided upstream of the catalyst in the exhaust passage. A known air-fuel ratio feedback control controls a detection value of the upstream air-fuel ratio sensor to a target value. The specification of <CIT> describes a downstream air-fuel ratio sensor provided downstream of the catalyst. The publication describes a controller that sets the target value to be richer than the stoichiometric air-fuel ratio when the detection value of the downstream air-fuel ratio sensor is leaner than the stoichiometric air-fuel ratio, and sets the target value to be leaner than the stoichiometric air-fuel ratio when the detection value of the downstream air-fuel ratio sensor is richer than the stoichiometric air-fuel ratio (<FIG>). Other relevant prior art documents disclosing the determination of a signal deviation of air-fuel sensors are <CIT> and <CIT>.

The detection value of the downstream air-fuel ratio sensor may deviate from a detection value that corresponds to the actual air-fuel ratio due to, for example, the differences between downstream air-fuel ratio sensors, age deterioration, and temperature characteristics. For example, if the above-described device controls the changing of the target value using a deviated detection value, the oxygen storage amount in the catalyst may not be able to be maintained at an appropriate value. This may lower the exhaust removal performance of the catalyst. Therefore, deviation of detection values needs to be coped with.

Hereinafter, embodiments of the present disclosure and their operation and advantages will be described.

Modifications of the methods, apparatuses, and/or systems described are apparent to one of ordinary skill in the art.

Hereinafter, a first embodiment according to a controller for an internal combustion engine will be described with reference to the drawings.

In an internal combustion engine <NUM> shown in <FIG>, air drawn from an intake passage <NUM> flows into combustion chambers <NUM> of cylinders #<NUM> to #<NUM>. In each combustion chamber <NUM>, the mixture of fuel injected from a fuel injection valve <NUM> with the air flowing in from the intake passage <NUM> is subjected to combustion by spark discharge of an igniter <NUM>, and energy generated by the combustion is converted into rotational energy of a crankshaft <NUM>. The mixture used in the combustion is discharged to an exhaust passage <NUM> as exhaust gas. The exhaust passage <NUM> is provided with an upstream three-way catalyst <NUM> and a downstream three-way catalyst <NUM>. The three-way catalysts <NUM> and <NUM> are capable of storing oxygen.

The crankshaft <NUM> is mechanically connected to a carrier C of a planetary gear mechanism <NUM> that configures a power split mechanism. The planetary gear mechanism <NUM> includes a sun gear S mechanically connected to a rotation shaft 32a of a motor generator <NUM>. The planetary gear mechanism <NUM> includes a ring gear R mechanically connected to a rotation shaft 34a of a motor generator <NUM> and drive wheels <NUM>. Thus, the internal combustion engine <NUM> of the present embodiment is a drive source of a series-parallel hybrid vehicle.

The motor generator <NUM> is supplied with electric power from a battery <NUM> through an inverter <NUM>. The motor generator <NUM> is supplied with electric power from the battery <NUM> through an inverter <NUM>.

An ECU <NUM> is a controller that controls the motor generators <NUM> and <NUM> and executes processes controlling amounts, such as torque and rotational speed, of the motor generators <NUM> and <NUM>. In addition, the ECU <NUM> controls the internal combustion engine <NUM> and the motor generators <NUM> and <NUM> to execute a process for generating an output that is requested in cooperation with the internal combustion engine <NUM> and the motor generators <NUM> and <NUM>.

A controller <NUM> controls the internal combustion engine <NUM> and operates operation units, such as the fuel injection valves <NUM> and the igniters <NUM>, of the internal combustion engine <NUM> in order to control the engine aspects such as torque and an exhaust component ratio of the internal combustion engine <NUM>. More specifically, for example, the controller <NUM> sends operation signals MS1 to the fuel injection valves <NUM> to operate the fuel injection valves <NUM> and operation signals MS2 to the igniters <NUM> to operate the igniters <NUM>.

In order to control the aspects, the controller <NUM> refers to an intake air amount Ga that is detected by an air flow meter <NUM>, an output signal Scr of a crank angle sensor <NUM>, and a detection value Afu that is detected by an upstream air-fuel ratio sensor <NUM> provided upstream of the three-way catalyst <NUM>. The controller <NUM> also refers to a detection value Afd that is detected by a downstream air-fuel ratio sensor <NUM> provided at a side downstream of the three-way catalyst <NUM> and upstream of the three-way catalyst <NUM>, and the temperature (water temperature THW) of coolant in the internal combustion engine <NUM> that is detected by a water temperature sensor <NUM>. The upstream air-fuel ratio sensor <NUM> and the downstream air-fuel ratio sensor <NUM> are not oxygen sensors having Z-characteristics but are sensors that linearly increase a detection value as the amount of oxygen exceeding the amount of unburned fuel in the exhaust is increased. Further, the controller <NUM> is used to communicate with the ECU <NUM> through a communication line <NUM>.

The controller <NUM> includes a CPU <NUM>, a ROM <NUM>, and a peripheral circuit <NUM> that are connected by a communication line <NUM>. The peripheral circuit <NUM> includes a circuit that generates a clock signal specifying an internal operation, a power supply circuit, a reset circuit, and the like.

<FIG> shows processes executed by the controller <NUM>. The processes shown in <FIG> are implemented by the CPU <NUM> executing programs stored in the ROM <NUM>.

A base injection amount calculation process M10 calculates a base injection amount Qb, which is a base value of an amount of fuel determined based on a charging efficiency η so that the air-fuel ratio of the mixture in the combustion chamber <NUM> reaches the target air-fuel ratio. Specifically, for example, when the charging efficiency η is expressed in a percentage, the base injection amount calculation process M10 may calculate the base injection amount Qb by multiplying the charging efficiency η by a fuel amount QTH per <NUM>% of the charging efficiency η for setting the air-fuel ratio to the target air-fuel ratio. The base injection amount Qb is an amount of fuel calculated so that the air-fuel ratio is controlled to be the target air-fuel ratio based on the amount of air charged into the combustion chamber <NUM>. In the present embodiment, the target air-fuel ratio is the stoichiometric air-fuel ratio. The charging efficiency η is calculated by the CPU <NUM> based on the intake air amount Ga and a rotational speed NE. The rotational speed NE is calculated by the CPU <NUM> based on the output signal Scr.

A main feedback process M12 calculates and outputs a feedback correction coefficient KAF, which is obtained by adding one to a correction ratio δ of the base injection amount Qb as a feedback operation amount. The feedback operation amount is an operation amount for feedback control that controls the detection value Afu of the upstream air-fuel ratio sensor <NUM> to a target value Afu*. Specifically, in the main feedback process M12, the correction ratio δ is a sum of output values of a proportional element and a differential element into which the difference between the detection value Afu and the target value Afu* is input, and an output value of an integral element that holds and outputs an integrated value of the value corresponding to the difference.

A sub-feedback process M14 operates the target value Afu* to adjust the oxygen storage amount of the three-way catalyst <NUM> based on the detection value Afd of the downstream air-fuel ratio sensor <NUM>.

When the water temperature THW is less than a predetermined temperature Tth (for example, <NUM>), a low temperature correction process M16 calculates a low temperature increase coefficient Kw to be a value greater than one to increase the base injection amount Qb. Specifically, when the water temperature THW is low, the low temperature increase coefficient Kw is calculated to be greater than when the water temperature THW is high. When the water temperature THW is greater than or equal to the predetermined temperature Tth, the low temperature increase coefficient Kw is set to one so that a correction amount of the base injection amount Qb corresponding to the low temperature increase coefficient Kw is zero.

A request injection amount calculation process M18 multiplies the base injection amount Qb by the feedback correction coefficient KAF and the low temperature increase coefficient Kw to calculate the amount of fuel requested (request injection amount Qd) in a single combustion cycle.

An injection valve operation process M20 sends the operation signal MS1 to the fuel injection valve <NUM> in order to operate the fuel injection valve <NUM>. In particular, the injection valve operation process M20 is a process that injects the request injection amount Qd of fuel from the fuel injection valve <NUM> in a single combustion cycle.

When the air-fuel ratio of the mixture to be burned in the combustion chamber <NUM> is the stoichiometric air-fuel ratio, a stoichiometric point calculation process M22 calculates the detection value Afd of the downstream air-fuel ratio sensor <NUM> as a stoichiometric point AfL.

A maximum storage amount learning process M24 learns a maximum value OSmax of an oxygen storage amount OS of the three-way catalyst <NUM> based on the detection value Afu of the upstream air-fuel ratio sensor <NUM> and the detection value Afd of the downstream air-fuel ratio sensor <NUM>. Specifically, the fuel injection valve <NUM> is operated so that the detection value Afu becomes lean, which is triggered when the detection value Afd is switched from lean to rich. The maximum value OSmax of the oxygen storage amount OS is calculated based on the amount of oxygen that flows into the three-way catalyst <NUM> from the switching of the detection value Afd to rich until the detection value Afd is switched to lean. Specifically, the maximum storage amount learning process M24 includes a process that calculates the flow rate of oxygen flowing into the three-way catalyst <NUM> based on the detection value Afu and the intake air amount Ga.

<FIG> shows the procedure of the sub-feedback process M14. The process shown in <FIG> is implemented by the CPU <NUM> repeatedly executing programs stored in the ROM <NUM>, for example, in a predetermined cycle. In the description below, the step number of each process is represented by a numeral provided with S in front.

In the series of processes shown in <FIG>, first, the CPU <NUM> determines whether a lean determination flag Fl is one (S10). When it is determined that the lean determination flag Fl is one (S10: YES), the CPU <NUM> determines whether the detection value Afd is less than or equal to a value obtained by subtracting a rich side sub-offset amount εr from a stoichiometric reference value Afs (S12). The stoichiometric reference value Afs is a reference value (detection value of the air-fuel ratio sensor as a reference) of the detection value of the downstream air-fuel ratio sensor <NUM> obtained when the air-fuel ratio of the mixture subject to combustion in the combustion chamber <NUM> is the stoichiometric air-fuel ratio. The process of S12 determines whether the flow rate of unburned fuel in the fluid flowing downstream of the three-way catalyst <NUM> is increasing.

When it is determined that the detection value Afd is less than or equal to the value obtained by subtracting the rich side sub-offset amount εr from the stoichiometric reference value Afs (S12: YES), the CPU <NUM> assigns zero to the lean determination flag Fl and assigns one to a rich determination flag Fr (S14).

Next, the CPU <NUM> assigns a value obtained by adding a lean side main offset amount δl and the stoichiometric reference value Afs to the target value Afu* (S16).

When it is determined that the lean determination flag Fl is zero (S10: NO), the CPU <NUM> determines whether the detection value Afd is greater than or equal to a value obtained by adding a lean side sub-offset amount εl and the stoichiometric reference value Afs (S18). In this process, it is determined whether the flow rate of oxygen in the fluid flowing downstream of the three-way catalyst <NUM> is increasing as the amount of oxygen stored in the three-way catalyst <NUM> approaches the maximum value OSmax. When the CPU <NUM> determines that the detection value Adf is less than the value obtained by adding the lean side sub-offset amount εl and the stoichiometric reference value Afs (S18: NO), the CPU <NUM> proceeds to the process of S16.

When it is determined that the detection value Adf is greater than or equal to the value obtained by adding the lean side sub-offset amount εl and the stoichiometric reference value Afs (S18: YES), the CPU <NUM> sets the lean determination flag Fl to one and the rich determination flag Fr to zero (S20).

When the process of S20 is completed or the negative determination is made in the process of S12, the CPU <NUM> assigns a value obtained by subtracting a rich side main offset amount δr from the stoichiometric reference value Afs to the target value Afu* (S22).

The rich side sub-offset amount εr, the lean side sub-offset amount εl, the rich side main offset amount δr, and the lean side main offset amount δl are set to values that will not substantially change the oxygen storage amount of the three-way catalyst <NUM> in a cycle of the process of S16 and the process of S22.

When the process of S16 or the process of S22 is completed, the CPU <NUM> temporarily ends the series of processes shown in <FIG>.

<FIG> shows the procedure of the stoichiometric point calculation process M22. The process shown in <FIG> is implemented by the CPU <NUM> repeatedly executing programs stored in the ROM <NUM>, for example, in a predetermined cycle.

In the series of processes shown in <FIG>, first, the CPU <NUM> determines whether the logical conjunction of the following conditions (A) to (E) is true (S30).

Condition (A) indicates that the absolute value of an amount of change Δη in the charging efficiency η in a predetermined period is less than or equal to a predetermined amount Δηth. The predetermined period may be, for example, a cycle of the series of processes shown in <FIG>. In this case, the amount of change Δη may be the difference between a sampled value (current value) corresponding to the current execution cycle of the series of processes shown in <FIG> related to the charging efficiency η and a sampled value (previous value) corresponding to the previous execution cycle. This condition indicates that the absolute value of the amount of change in the fluid flowing into the three-way catalyst <NUM> in the predetermined period is less than or equal to the predetermined amount. This condition is provided taking into consideration that when the absolute value of the amount of change in the fluid flowing into the three-way catalyst <NUM> is large, the detection value Afd is likely to fluctuate as compared to when the absolute value of the amount of change is small.

Condition (B) indicates that the absolute value of an amount of change ΔGa in a predetermined period of the intake air amount Ga is less than or equal to a predetermined amountΔGath. The predetermined period may be, for example, a cycle of the series of processes shown in <FIG>. In this case, the amount of change ΔGa may be a difference between the current value of the intake air amount Ga and the previous value of the intake air amount Ga. This condition indicates that the absolute value of the amount of change in the fluid flowing into the three-way catalyst <NUM> in a predetermined period is less than or equal to the predetermined amount.

Condition (C) indicates that the water temperature THW is greater than or equal to the predetermined temperature Tth. This condition is provided to avoid a situation in which an error of the air-fuel ratio caused by the low temperature increase coefficient Kw, which is an open loop operation amount, affects the calculation of the stoichiometric point AfL.

Condition (D) indicates that an accumulated value InG of the intake air amount Ga from a start of the internal combustion engine <NUM> is greater than or equal to a predetermined value InGth. This condition indicates that the three-way catalyst <NUM> is at an active temperature.

Condition (E) indicates that the intake air amount Ga is greater than or equal to a lower limit value GaL and is less than or equal to an upper limit value GaH. The upper limit value GaH is set to an upper limit value at which the duration of the process of S22 will not be excessively short. The lower limit value GaL is set to a value corresponding to, for example, a time of idling.

When it is determined that the logical conjunction of the conditions (A) to (E) is true (S30: YES), the CPU <NUM> determines whether the lean determination flag Fl is switched from zero to one (S32). When it is determined that the value of the lean determination flag Fl is zero in the previous execution cycle of the series of processes shown in <FIG> and the value of the lean determination flag Fl is one in the current execution cycle (S32: YES), the CPU <NUM> assigns one to a permission flag Fp (S34).

When the process of S34 is completed or the negative determination is made in the process of S32, the CPU <NUM> determines whether the logical conjunction of the following conditions (F) to conditions (H) is true (S36).

Condition (F) indicates that the lean determination flag Fl is one. This process is a condition that when it is considered that the amount of oxygen stored in the three-way catalyst <NUM> is greater than or equal to the predetermined amount, the amount of unburned fuel in the fluid flowing into the three-way catalyst <NUM> is greater than the ideal amount of oxygen reacting with all of the unburned fuel. More specifically, the setting of the lean determination flag Fl to one is triggered when the detection value Afd becomes greater than the stoichiometric reference value Afs by the lean side sub-offset amount εl or more. Thus, when the lean determination flag FI is one, it may be considered that sufficient oxygen is stored in the three-way catalyst <NUM>. When the process of S22 is executed when the lean determination flag Fl is one, the fluid flowing into the three-way catalyst <NUM> includes an amount of unburned fuel that is greater than the ideal amount of unburned fuel reacting with all of the oxygen contained in the fluid.

Condition (G) indicates that the absolute value of the difference between the current detection value Afd and the previous detection value Afd is less than or equal to a specified amountΔAfd. In <FIG>, the current value is denoted by "n," and the previous value is denoted by "n-<NUM>.

This condition indicates that the amount of oxygen and the amount of unburned fuel in the fluid flowing out downstream of the three-way catalyst <NUM> are negligibly small. More specifically, after the process of S22 is started, it takes time for the detection value Afu of the upstream air-fuel ratio sensor <NUM> to reach the target value Afu* that is determined by the process of S22. During this time, the amount of oxygen in the fluid flowing into the three-way catalyst <NUM> decreases. Thus, in this period, the amount of oxygen in the fluid flowing out downstream of the three-way catalyst <NUM> gradually decreases, and thus the amount of change in the detection value Afd relatively increases. Subsequently, when the detection value Afu of the upstream air-fuel ratio sensor <NUM> converges and stabilizes on the target value Afu* determined by the process of S22, the absolute value of the amount of change in the detection value Afd of the downstream air-fuel ratio sensor <NUM> also decreases. The condition (G) specifies this point in time.

Condition (H) indicates that the permission flag Fp is one.

When it is determined that the logical conjunction of the above conditions (F) to (H) is true (S36: YES), the CPU <NUM> adds the current sampled value and an accumulated value InAfd of the detection value Afd to update the accumulated value InAfd and increments an accumulation count N of the detection value Afd (S38). When the process of S38 is completed or the negative determination is made in the process of S36, the CPU <NUM> determines whether the accumulation count N is greater than or equal to a reference count NH (S40). This process determines whether the stoichiometric point AfL is allowed to be updated using the accumulated value InAfd.

When it is determined that the accumulation count N is greater than or equal to the reference count NH (S40: YES), the CPU <NUM> assigns a value obtained by dividing the accumulated value InAfd by the accumulation count N to an average value Afdave in order to calculate a simple average process value of the detection value Afd (S42). Next, the CPU <NUM> calculates the stoichiometric point AfL through the exponential moving average process of the average value Afdave (S44). In this process, the stoichiometric point AfL is updated by the sum of a value obtained by multiplying a smoothing coefficient α by the average value Afdave and a value obtained by multiplying "<NUM>-α" by the stoichiometric point AfL, where the smoothing coefficient α has a value greater than zero and less than one. The initial value of the stoichiometric point AfL may be, for example, the stoichiometric reference value Afs.

Next, the CPU <NUM> subtracts a value obtained by subtracting the stoichiometric reference value Afs from the stoichiometric point AfL from an initial value εr0 of the rich side sub-offset amount εr. Also, the CPU <NUM> adds the value obtained by subtracting the stoichiometric reference value Afs from the stoichiometric point AfL and an initial value εl0 of the lean side sub-offset amount εl. This updates the rich side sub-offset amount εr and the lean side sub-offset amount εl (S46). When the stoichiometric point AfL is not calculated, in the process of <FIG>, the initial value εr0 may be assigned to the rich side sub-offset amount εr, and the initial value εl0 may be assigned to the lean side sub-offset amount εl.

Then, the CPU <NUM> initializes the accumulation count N and the accumulated value InAfd, and assigns zero to the permission flag Fp (S48).

When the negative determination is made in the process of S40, the CPU <NUM> determines whether a value obtained by subtracting the previous detection value Afd from the current detection value Afd is less than a negative specified amount ΔAfdM (S50). This process determines whether the amount of oxygen stored in the three-way catalyst <NUM> has decreased and the unburned fuel in the fluid flowing into the three-way catalyst <NUM> is not sufficiently oxidized by the oxygen stored in the three-way catalyst <NUM>. In the present embodiment, the absolute value of the specified amount ΔAfdM is set to a value equal to the specified amount ΔAfd. When it is determined that the value is less than the specified amount ΔAfdM (S50: YES), the CPU <NUM> determines whether the accumulation count N is greater than or equal to a lower limit value NL that is less than a reference value NH (S52). The lower limit value NL is set to the lower limit value at which the accumulated value InAfd may reflect on the stoichiometric point AfL.

When it is determined that the accumulation count N is greater than or equal to the lower limit value NL (S52: YES), the CPU <NUM> proceeds to S42. When it is determined that the accumulation count N is less than the lower limit value NL (S52: NO), the CPU <NUM> proceeds to S48.

When the negative determination is made in the process of S30 or S50 or the process of S48 is completed, the CPU <NUM> temporarily ends the series of processes shown in <FIG>.

The operation and advantages of the present embodiment will now be described.

<FIG> shows changes in the detection value Afd of the downstream air-fuel ratio sensor <NUM>. At time t1, the CPU <NUM> sets the target value Afu* to be richer than the stoichiometric air-fuel ratio, which is triggered when the detection value Afd becomes greater than the stoichiometric reference value Afs by the lean side sub-offset amount εl or more (S22). As a result, the air-fuel ratio of the mixture subject to combustion in the combustion chamber <NUM> is richer than the stoichiometric air-fuel ratio, so that the fluid flowing into the three-way catalyst <NUM> contains an amount of unburned fuel that is greater than the ideal amount of unburned fuel reacting with all of the oxygen contained in the fluid. Since this large amount of unburned fuel is oxidized by the oxygen stored in the three-way catalyst <NUM>, the amount of oxygen and the amount of unburned fuel in the fluid flowing downstream of the three-way catalyst <NUM> are negligible. The CPU <NUM> detects this state when the absolute value of the amount of change in the detection value Afd is decreased in the process of S36 (time t2). The CPU <NUM> samples the detection value Afd and calculates the stoichiometric point AfL based on the sampled values (S38 to S44).

It is considered that the stoichiometric point AfL is the detection value of the downstream air-fuel ratio sensor <NUM> when the downstream air-fuel ratio sensor <NUM> is exposed to the fluid flowing out downstream of the three-way catalyst <NUM> in a case in which the mixture to be combusted constantly has the stoichiometric air-fuel ratio. For this reason, it is considered that the value obtained by subtracting the stoichiometric reference value Afs from the stoichiometric point AfL is the deviation amount of the detection value of the downstream air-fuel ratio sensor <NUM> from the stoichiometric reference value Afs. Based on this consideration, the CPU <NUM> updates the rich side sub-offset amount εr and the lean side sub-offset amount εl. This reduces situations in which the deviation of the detection value of the downstream air-fuel ratio sensor <NUM> causes the amount of one of oxygen and unburned fuel flowing into the three-way catalyst <NUM> to be excessive as compared to the ideal amount that reacts with the other one of oxygen and unburned fuel in a single cycle of the process of S16 and the process of S22.

In the present embodiment, when the deviation of the detection value of the downstream air-fuel ratio sensor <NUM> is negligibly small, the rich side sub-offset amount εr and the lean side sub-offset amount εl are set so that the fluctuation amount of the oxygen storage amount in the three-way catalyst <NUM> in a single cycle of the process of S16 and the process of S22 is less than or equal to several ten % (for example, <NUM>%) of the maximum value OSmax. When the detection value Afd of the downstream air-fuel ratio sensor <NUM> deviates, if the air-fuel ratio of the mixture to be combusted deviates from the stoichiometric air-fuel ratio, the detection value Afd is the stoichiometric reference value Afs. Thus, if the rich side sub-offset amount εr and the lean side sub-offset amount εl are not updated based on the stoichiometric point AfL, one of the process of S16 and the process of S22 becomes excessively long and the other becomes excessively short. In a single cycle of the process of S16 and the process of S22, the amount of one of oxygen and unburned fuel flowing into the three-way catalyst <NUM> becomes excessive as compared to the ideal amount of the one that reacts with the other one of oxygen and unburned fuel. This may cause the oxygen storage amount of the three-way catalyst <NUM> to gradually change. In this case, for example, if the fuel cut process is not executed during long-term steady driving, the oxygen storage amount of the three-way catalyst <NUM> may approach zero or the maximum value OSmax. This may lower the exhaust removal performance of the three-way catalyst <NUM>.

The second embodiment will be described below with reference to the drawings focusing on the differences from the first embodiment.

In the first embodiment, the stoichiometric point AfL is updated by sampling the detection value Afd of the downstream side air-fuel ratio a number of times when the process of S22 is executed. However, the decreasing rate of the oxygen storage amount is greater when the flow rate of the fluid flowing into the three-way catalyst <NUM> is high than when it is low. For this reason, when the flow rate is high, as compared to when it is small, the duration of the process of S22 may shorten or the time taken to satisfy the condition (G) in the process of S36 may excessively shorten. This may result in insufficient sampling of the detection value Afd. In this regard, in the present embodiment, the sampling condition of detection value Afd is changed in accordance with the flow rate of the fluid through the process shown in <FIG>.

<FIG> shows the procedure of the stoichiometric point calculation process M22 according to the present embodiment. The process shown in <FIG> is implemented by the CPU <NUM> repeatedly executing programs stored in the ROM <NUM>, for example, in a predetermined cycle. In <FIG>, the same step numbers are given to the processes corresponding to the processes shown in <FIG>. Such processes will not be described in detail.

In the series of processes shown in <FIG>, when the process of S34 is completed or the negative determination is made in the process of S32, in the process of S36a, which corresponds to the process of S36, the CPU <NUM> variably sets the specified amount ΔAfd in the condition (G) in accordance with the intake air amount Ga having a positive correlation with the flow rate of the fluid flowing into the three-way catalyst <NUM>. Specifically, taking into consideration that when the intake air amount Ga is large, the decreasing rate of the detection value Afd is greater than when the intake air amount Ga is small, the CPU <NUM> sets the specified amount ΔAfd to a greater value when the intake air amount Ga is large than when it is small.

Specifically, when the ROM <NUM> stores in advance map data in which the intake air amount Ga is an input variable and the specified amount ΔAfd is an output variable, the CPU <NUM> performs map calculation on the specified amount ΔAfd. The map data is set data of discrete values of an input variable and values of an output variable corresponding to each value of the input variable. Also, the map calculation may be performed such that, for example, when the value of an input variable matches any value of the input variable in the map data, the corresponding value of the output variable in the map data may be used as the calculation result. When there is no match, a value obtained by interpolating multiple values of the output variable included in the map data may be used as the calculation result.

According to the processes described above, when the absolute value of the difference between the current detection value Afd and the previous detection value Afd increases due to the large amount of intake air Ga, the specified amount ΔAfd also has a large value. This reduces situations in which when the intake air amount Ga is large, the condition (G) is less likely to be satisfied than when the intake air amount Ga is small.

The third embodiment will be described below with reference to the drawings focusing on the differences from the first embodiment.

In the first embodiment, the stoichiometric point AfL is updated by sampling the detection value Afd of the downstream side air-fuel ratio a number of times when the process of S22 is executed. However, when deterioration of the three-way catalyst <NUM> advances, the oxygen storage amount may more quickly become a smaller value. This may shorten the duration of the process of S22 or excessively shorten the time taken to satisfy the condition (G) in the process of S36. As a result, sufficient sampling of the detection value Afd may not be performed. Thus, in the present embodiment, the sampling condition of the detection value Afd is changed in accordance with the level of deterioration of the three-way catalyst <NUM> through the process shown in <FIG>.

In the series of processes shown in <FIG>, when the process of S34 is completed or the negative determination is made in the process of S32, in the process of S36b, which corresponds to the process of S36, the CPU <NUM> variably sets the specified amount ΔAfd in the condition (G) in accordance with the maximum value OSmax, which indicates the level of deterioration of the three-way catalyst <NUM>. Specifically, taking into consideration that when the maximum value OSmax is small, the decreasing rate of the detection value Afd is greater than when the maximum value OSmax is large, the CPU <NUM> sets the specified amount ΔAfd to a greater value when the maximum value OSmax is small than when it is large.

Specifically, when the ROM <NUM> stores in advance map data in which the maximum value OSmax is an input variable and the specified amount ΔAfd is as an output variable, the CPU <NUM> performs map calculation on the specified amount ΔAfd.

According to the processes described above, when the absolute value of the difference between the current detection value Afd and the previous detection value Afd increases due to the small maximum value OSmax, the specified amount ΔAfd also has a large value. This reduces situations in which when the maximum value OSmax is small, the condition (G) is less likely to be satisfied than when the maximum value OSmax is large.

The fourth embodiment will be described below with reference to the drawings focusing on the differences from the first embodiment.

When the output of the internal combustion engine <NUM> fluctuates, the detection value Afd is likely to fluctuate. If the stoichiometric point AfL is updated using a fluctuating detection value Afd, the accuracy of updating may be lowered. However, for example, if the specified amount ΔAfd of the above condition (G) is decreased, it is difficult to obtain a sufficient number of detection values Afd for updating the stoichiometric point AfL, and the stoichiometric point AfL is updated less frequently. This may lower that the accuracy of the stoichiometric point AfL. In this regard, in the present embodiment, such shortcoming is resolved through the process shown in <FIG>.

In the series of processes shown in <FIG>, when the positive determination is made in the process of S30, the CPU <NUM> executes a limiting process that limits the amount of change in the output of the internal combustion engine <NUM> so that its absolute value is decreased (S60). Then, the CPU <NUM> proceeds to the process of S32. Specifically, the CPU <NUM> controls most of the amount of change in the output requested for the vehicle by changing the output of the motor generators <NUM> and <NUM> and sends a request signal to the ECU <NUM> to request that changes in the output requested for the internal combustion engine <NUM> are decreased. When the negative determination is made in the process of S30, the CPU <NUM> sends a request for deactivating the limiting process to the ECU <NUM> (S62), and temporarily ends the series of processes shown in <FIG>.

The operation and advantages of the present embodiment will be described.

When it is determined that the logical conjunction of the conditions (A) to (E) is true, the CPU <NUM> determines that it is time to execute the update process of the stoichiometric point AfL based on the sampling of the detection value Afd and executes the limiting process. This limits fluctuation of the output of the internal combustion engine <NUM>, thereby limiting fluctuation of the detection value Afd. Thus, the accuracy of the stoichiometric point AfL may be increased.

Hereinafter, the fifth embodiment will be described with reference to <FIG>, <FIG> focusing on differences from the first embodiment. The fifth embodiment differs from the first embodiment in that the CPU <NUM> additionally executes the process of S43.

When it is determined that the accumulation count N is greater than or equal to the reference count NH (S40: YES), the CPU <NUM> assigns a value obtained by dividing the accumulated value InAfd by the accumulation count N to an average value Afdave in order to calculate a simple average process value of the detection value Afd (S42). Next, the CPU <NUM> calculates a correction amount Δave in accordance with the maximum value OSmax and the intake air amount Ga having a positive correlation with the flow rate of the fluid flowing into the three-way catalyst <NUM>, and corrects the average value Afdave using the correction amount Δave (S43). This process is executed taking into consideration that the average value Afdave is dependent on the maximum value OSmax and the flow rate of the fluid flowing into the three-way catalyst <NUM> at the time of execution of the process of S22. More specifically, when the ROM <NUM> stores in advance map data in which the intake air amount Ga and the maximum value OSmax are input variables and the correction amount Δave is an output variable, the CPU <NUM> performs map calculation on the correction amount Δave. The map data is set data of discrete values of an input variable and values of an output variable corresponding to each value of the input variable. Also, the map calculation may be performed such that, for example, when the value of an input variable matches any value of the input variable in the map data, the corresponding value of the output variable in the map data may be used as the calculation result. When there is no match, a value obtained by interpolating multiple values of the output variable included in the map data may be used as the calculation result.

As shown in <FIG>, from time t2, when the intake air amount Ga is large (<FIG>), the decreasing rate of the detection value Afd after time t2 is greater than when the intake air amount Ga is small (<FIG>). This is because in a case in which the process of S22 is executed, when the intake air amount Ga is large, the flow rate of unburned fuel in the fluid flowing into the three-way catalyst <NUM> is increased as compared to when the intake air amount Ga is small. This increases the decreasing rate of oxygen stored in the three-way catalyst <NUM>. Thus, the average value Afdave may differ depending on the intake air amount Ga. In the same manner, when the maximum value OSmax is decreased due to deterioration of the three-way catalyst <NUM> or the like, the decreasing rate of the detection value Afd is increased as compared to when the maximum value OSmax is large. In this regard, the CPU <NUM> corrects the average value Afdave using the correction amount Δave corresponding to the intake air amount Ga and the maximum value OSmax. As a result, regardless of the size of the intake air amount Ga or the maximum value OSmax, the deviation of the average value Afdave is decreased, and hence the deviation of the stoichiometric point AfL is decreased.

Hereinafter, the sixth embodiment will be described focusing on differences from the first embodiment. As shown in <FIG>, the sixth embodiment differs from the first embodiment in that the maximum storage amount learning process M24 is omitted. In the sixth embodiment, the stoichiometric point AfL is calculated through the average process averaging multiple detection values Afd. This reduces situations in which noise contained in each detection values Afd affects the stoichiometric point AfL.

The seventh embodiment will be described below with reference to the drawings focusing on the differences from the sixth embodiment.

In the series of processes shown in <FIG>, when the process of S42 is completed, when calculating the stoichiometric point AfL through the exponential moving average process of the average value Afdave, the CPU <NUM> variably sets the smoothing coefficient α in accordance with the number of times of execution LN of the exponential moving average process (S44a). More specifically, each time the exponential moving average process is executed in the process of S44a, the CPU <NUM> increments the number of times of execution LN by one. The CPU <NUM> sets the smoothing coefficient α to a smaller value when the number of times of execution LN is small than when it is large. This setting further reduces the effect of noise contained in the detection value Afd imposed on the stoichiometric point AfL.

More specifically, the stoichiometric point AfL is expressed as "α·Afdave(n)+α·(<NUM>-α)·Afdave(n-<NUM>)+. " Thus, the number of the average values Afdave that are multiplied by the smoothing coefficient α is the number of times of execution LN. For this reason, when the number of times of execution LN of the exponential moving average process is small, fewer of the average values Afdave reflect on the calculation of the stoichiometric point AfL than when it is large. Thus, the contribution proportion of the past average values Afdave to the stoichiometric point AfL is large. This may increase the effect of noise contained in each detection value Afd used for the calculation of the average value Afdave on the stoichiometric point AfL. In this regard, in the present embodiment, when the number of times of execution LN is small, the smoothing coefficient α is set to a smaller value than when the number of times of execution LN is large. This decreases the contribution proportion of each detection value Afd to the stoichiometric point AfL when the number of times of execution LN is small, thereby reducing the effect of noise contained in each detection value Afd on the stoichiometric point AfL.

When the process of S44a is completed, the CPU <NUM> proceeds to the process of S46. Eighth Embodiment.

The eighth embodiment will be described below with reference to the drawings focusing on the differences from the sixth embodiment.

In the series of processes shown in <FIG>, when the process of S42 is completed, when calculating the stoichiometric point AfL through the exponential moving average process of the average value Afdave, the CPU <NUM> variably sets the smoothing coefficient α in accordance with the accumulation count N (S44b). Specifically, when the accumulation count N is small, the CPU <NUM> sets the smoothing coefficient α to a smaller value than when the accumulation count N is large. This setting further reduces the effect of noise contained in the detection value Afd imposed on the stoichiometric point AfL.

More specifically, the average value Afdave is a sum of values obtained by multiplying the detection values Afd by "<NUM>/N" corresponding to the accumulation count N. For this reason, when the accumulation count N is small, the contribution proportion of each detection value Afd to the average value Afdave is large as compared to when the accumulation count N is large. This may increase the effect of noise contained in each detection value Afd imposed on the stoichiometric point AfL. In this regard, in the present embodiment, when the accumulation count N is small, the smoothing coefficient α is set to a smaller value than that when the accumulation count N is large. This decreases the contribution proportion of each detection value Afd to the stoichiometric point AfL when the accumulation count N is small, thereby reducing the effect of noise contained in each detection value Afd on the stoichiometric point AfL.

When the process of S44b is completed, the CPU <NUM> proceeds to the process of S46. Ninth Embodiment.

The ninth embodiment will be described below with reference to the drawings focusing on the differences from the sixth embodiment.

In the series of processes shown in <FIG>, when the process of S42 is completed, when calculating the stoichiometric point AfL through the exponential moving average process of the average value Afdave, the CPU <NUM> variably sets the smoothing coefficient α in accordance with the absolute value of the difference between the stoichiometric point AfL and the average value Afdave (S44c). Specifically, the CPU <NUM> sets the smoothing coefficient α to a smaller value when the absolute value of the difference between the stoichiometric point AfL and the average value Afdave is large than when it is small. This setting further reduces the effect of noise contained in the detection value Afd imposed on the stoichiometric point AfL.

More specifically, when the absolute value of the difference between the average value Afdave and the stoichiometric point AfL is large, individual detection values Afd do not indicate stable values as compared to when it is small, and the effect of noise is likely to increase. Thus, in the present embodiment, the smoothing coefficient α is set to be a smaller value when the absolute value of the difference between the average value Afdave and the stoichiometric point AfL is large than when it is small, so that the update amount of the stoichiometric point AfL corresponding to each average value Afdave is decreased. This reduces the effect of noise contained in each detection value Afd imposed on the stoichiometric point AfL calculated by the exponential moving average process.

When the process of S44c is completed, the CPU <NUM> proceeds to the process of S46. Tenth Embodiment.

The tenth embodiment will be described below with reference to the drawings focusing on the differences from the sixth embodiment.

In the series of processes shown in <FIG>, when the positive determination is made in the process of S36, the CPU <NUM> determines whether the absolute value of the difference between the detection value Afd and the stoichiometric point AfL is greater than or equal to the specified amount ΔAfdL (S37). The specified amount ΔAfdL is set to a value less than the specified amount ΔAfd. When it is determined that the absolute value is less than the specified amount ΔAfdL (S37: NO), the CPU <NUM> proceeds to the process of S38. When it is determined that the absolute value is greater than or equal to the specified amount ΔAdfL (S37: YES), the CPU <NUM> proceeds to the process of S40. This setting further reduces the effect of noise contained in the detection value Afd imposed on the stoichiometric point AfL.

More specifically, when the absolute value of the difference between the detection value Afd and the stoichiometric point AfL that has been calculated is large, the detection value Afd may be largely affected by incidental noise. In this regard, in the present embodiment, when the absolute value of the difference between the stoichiometric point AfL and the detection value Afd is large, the detection value Afd is not used as an input for the integration process of S38. The contribution proportion to the stoichiometric point AfL is set to zero to reduce the effect of the noise on the stoichiometric point AfL.

The eleventh embodiment will be described below focusing on the differences from the first embodiment. The eleventh embodiment differs from the first embodiment in that the maximum storage amount learning process M24 is omitted. In this respect, the eleventh embodiment has the same configuration as the sixth embodiment shown in <FIG>. The eleventh embodiment differs from the first embodiment in that the CPU <NUM> additionally executes the process of S31 and S53.

More specifically, as shown in <FIG>, when it is determined that the logical conjunction of the above conditions (A) to (E) is true (S30: YES), the CPU <NUM> assigns a lean side detection offset amount δlH to the lean side main offset amount δl, and assigns a rich side detection offset amount δrL to the rich side main offset amount δr (S31).

When the negative determination is made in S30, the CPU <NUM> assigns a lean side reference offset amount blL to the lean side main offset amount δl, and assigns a rich side reference offset amount δrH to the rich side main offset amount δr (S53). The lean side reference offset amount blL is less than the lean side detection offset amount blH. Further, the rich side reference offset amount δrH is greater than the rich side detection offset amount δrL.

When the process of S48 or S53 is completed or the negative determination is made in step S50, the CPU <NUM> temporarily ends the series of processes shown in <FIG>.

The operation and advantages of the eleventh embodiment will be described. The operation and advantages that are the same as those of the first embodiment will not be described.

Furthermore, in the present embodiment, the rich side detection offset amount δrL is less than the rich side reference offset amount δrH. Thus, when the positive determination is made in S30, the amount of unburned fuel in the fluid flowing into the three-way catalyst <NUM> is decreased during execution of the process of S22 as compared to when the positive determination is not made in S30. This prolongs the duration of the process of S22, which ensures a sufficient sampling period of the detection value Afd.

Furthermore, in the present embodiment, the lean side detection offset amount δlH is greater than the lean side reference offset amount δlL. Thus, when the positive determination is made in S30, the amount of oxygen in the fluid flowing into the three-way catalyst <NUM> is increased during execution of the process of S16, as compared to when the positive determination is not made in S30. This shortens the duration of S16 process and increases in the proportion of the execution period of the process of S22 in a period in which the internal combustion engine <NUM> runs. Ultimately, the proportion of a period in which the detection value Afd can be sampled is increased in the period in which the internal combustion engine <NUM> runs. Correspondence.

Correspondence between the items in the above embodiments and the items described in the section of "SUMMARY OF THE INVENTION" is as follows. The following description indicates correspondence for each numeral of the aspects described in the section of the "SUMMARY OF THE INVENTION.

The present embodiment can be modified as follows. The present embodiment and the following modifications may be implemented in combination with each other as long as there is no technical contradiction.

In the process of S43, the intake air amount Ga is used as the flow rate of the fluid. However, there is no limit to such a configuration. For example, a flow rate of exhaust gas may be used. The flow rate of exhaust gas may be calculated as a sum of the intake air amount Ga and the request injection amount Qd in a predetermined period.

In the above embodiments, the correction amount Δave of the average value Afdave is calculated based on the intake air amount Ga and the maximum value OSmax. However, there is no limit to such a configuration. For example, the correction amount Δave may be calculated based on only one of the two parameters, namely, the intake air amount Ga and the maximum value OSmax.

In the above embodiments, the average value Afdave is corrected based on the intake air amount Ga and the maximum value OSmax. However, there is no limit to such a configuration. For example, the detection value Afd that is used to calculate the stoichiometric point AfL may be corrected.

In the above embodiments, the inflow process or the rich control process is configured by the sub-feedback process M14. However, there is no limit to such a configuration. For example, taking into consideration that the oxygen storage amount of the three-way catalyst <NUM> is increased when the fuel cut process is executed, the target value Afu* may be set to be richer than the stoichiometric air-fuel ratio immediately after the fuel cut process is executed.

Moreover, there is no limit to a process controlling the air-fuel ratio of the mixture to be combusted to the target value Afu*. The process may configured to, for example, inject fuel from the fuel injection valves <NUM> in an exhaust stroke to adjust components in the fluid flowing into the three-way catalyst <NUM>.

The low temperature correction process M16 does not necessarily have to be executed in the process calculating the request injection amount Qd.

In the above embodiments, the air-fuel ratio is controlled by two-degree-of-freedom control of the open loop control by the base injection amount calculation process M10 and the feedback control by the main feedback process M12. However, the air-fuel ratio control process is not limited to such a configuration. For example, the process may be configured to perform open loop control on a target value Afu* that is determined through the sub-feedback process.

In the above embodiments, when the logical conjunction of the above conditions (A) to (E) is true, the rich side main offset amount δr is set as the rich side detection offset amount δrL, and the lean side main offset amount δl is set as the lean side detection offset amount δlH. However, there is no limit to such a configuration. In an example, while the rich side main offset amount δr is set as the rich side detection offset amount δrL, the lean side main offset amount δl may be set as the lean side reference offset amount δlL. In another example, while the lean side main offset amount δl is set as the lean side detection offset amount δlH, the rich side main offset amount δr may be set as the rich side reference offset amount δrH.

In the above-described configuration, the stoichiometric point AfL is calculated as the deviation amount indication value, which indicates the deviation amount of the detection value Afd of the air-fuel ratio sensor. However, there is no limit to such a configuration. For example, a deviation amount from the detection value (stoichiometric reference value Afs) of the downstream air-fuel ratio sensor as a reference when the air-fuel ratio of the mixture to be combusted is the stoichiometric air-fuel ratio may be used. This may be implemented by, for example, obtaining an accumulated value of values obtained by subtracting the stoichiometric reference value Afs from the detection values Afd in the process of S38, and obtaining an average value of the values obtained by subtracting the stoichiometric reference value Afs from the detection values Afd in the process of S42.

The stoichiometric point AfL does not necessarily have to be calculated through the simple average process and the exponential moving average process. For example, when the rich side sub-offset amount εr and the lean side sub-offset amount εl are corrected using a value obtained by multiplying the gain K by "AfL-Afs" through the process described below in the section of "Deviation Amount Reflection Process," the stoichiometric point AfL may be the average value Afdave. Alternatively, for example, the simple average process may be eliminated, and the exponential moving average process value of the detection value Afd may be set as the stoichiometric point AfL. In this case, as described in the section of "Correction Target Based on Fluid Flow Rate or Maximum Value OSmax," the detection value Afd may be the correction target based on the fluid flow rate or the maximum value OSmax. Further, at least one of the two processes of the simple average process or the exponential moving average process does not necessarily have to be included. For example, the process may be configured to set the stoichiometric point AfL to a value processed through a low-pass filter such as a first-order lag filter to which time-series data of the detection values Afd in a predetermined period is input.

The smoothing coefficient α may be variably set in accordance with three of the absolute value of the difference between the stoichiometric point AfL and the average value Afdave, the number of times of execution LN, and the accumulation count N or may be variably set in accordance with two of the three. This may be implemented, for example, by the CPU <NUM> performing map calculation on the smoothing coefficient α when the ROM <NUM> stores in advance map data in which the number of times of execution LN and the accumulation count N are input variables and the smoothing coefficient α is an output variable.

In the process of <FIG>, when the positive determination is made in S37, the detection value Afd(n) is not used in the calculation of the stoichiometric point AfL, and the contribution proportion to the stoichiometric point AfL is zero. However, there is no limit to such a configuration. For example, as described above in the section of "Deviation Amount Calculation Process," when calculating the stoichiometric point AfL through the exponential moving average process of the detection value Afd without using the simple average process, the smoothing coefficient α may be set to a smaller value when the absolute value of the difference between the detection value Afd (n) and the stoichiometric point AfL is large than when the absolute value is small.

The execution condition of the deviation amount calculation process does not necessarily have to include a condition that the logical conjunction of the conditions (A) to (E) is true, as it is disclosed in step S30 of the float charts. According to the invention, one of the condition (A) or the condition (B) is used as the condition indicating that the absolute value of the amount of change in the flow rate of the fluid flowing into the three-way catalyst <NUM> is less than or equal to the predetermined amount. The condition (C) is eliminated. As alternative to condition (D), a sensor such as a thermistor that detects the temperature of the three-way catalyst <NUM> may be provided, and a condition indicating that the detection value is greater than or equal to a predetermined temperature is included.

For example, instead of using the condition (G), a condition indicating that a predetermined amount of time is elapsed since the lean determination flag Fl was switched to one may be used. For example, instead of using the condition (G), a condition indicating that the absolute value of the difference between the detection value Afd and the stoichiometric reference value Afs is less than or equal to a predetermined value may be used.

As described in the section "Inflow Process or Rich Control Process," when the inflow process or the rich control process is executed immediately after the fuel cut process, the execution condition may be a state immediately after the fuel cut process.

In the process of S36a, the specified amount ΔAfd is variably set in accordance with the intake air amount Ga. However, there is no limit to such a configuration. For example, the specified amount ΔAfd may be variably set based on the flow rate of exhaust gas. The flow rate of exhaust gas may be calculated as a sum of the intake air amount Ga and the request injection amount Qd in a predetermined period.

Instead of using the processes of S36a and S36b, the specified amount ΔAfd may be variably set in accordance with the intake air amount Ga and the maximum value OSmax. This may be implemented, for example, by the CPU <NUM> performing map calculation on the specified amount ΔAfd when the ROM <NUM> stores in advance map data in which the intake air amount Ga and the maximum value OSmax are input variables and the specified amount ΔAfd is an output variable.

The predetermined condition that is to be mitigated through the condition variable process is not limited to the condition (G). For example, as described in the section of "Execution Condition of Deviation Amount Calculation Process," instead of using the condition (G), when a condition indicating that the absolute value of the difference between the detection value Afd and the stoichiometric reference value Afs is less than or equal to a predetermined value is used, this condition may be mitigated to increase the predetermined value.

In the condition variable process, multiple detection values Afd do not necessarily have to be used in a single update of the stoichiometric point AfL. For example, as described in the section of "Deviation Amount Calculation Process," even when the simple average process is eliminated and the exponential moving average process of the detection value Afd is executed, for example, if the intake air amount Ga is large, the condition (G) is not readily satisfied during execution of the process of S22. Thus, the condition variable process is effective.

In the above embodiments, when the logical conjunction of the conditions (A) to (E) is true, the limiting process that constantly limits the amount of change in the output to the internal combustion engine <NUM> so that its absolute value is decreased. However, there is no limit to such a configuration. For example, even when the logical conjunction of the conditions (A) to (E) is true, if the number of times of execution of the process of S44 is greater than or equal to a predetermined value, the limiting process may not be executed. For example, only when the absolute value of the difference between the average value Afdave calculated in S42 and the stoichiometric point AfL is greater than or equal to a predetermined value, the limiting process may be executed.

The above embodiments includes a process, as the limiting process, sending a limitation request to the ECU <NUM> to request that the absolute value of the amount of change in the required value of the output to the internal combustion engine <NUM> is decreased. However, there is no limit to such a configuration. In a vehicle including a controller of a single drive system including the ECU <NUM> and the controller <NUM>, when the logical conjunction of the above conditions (A) to (E) is true, for example, the controller solely executes control that meets the request output by adjusting the output of the motor generators <NUM> and <NUM> while setting the output of the internal combustion engine <NUM> to a fixed value.

The process that corrects "Afs-εr" as the rich determination value and "Afs+εl" as the lean determination value is not limited to the process exemplified as the process of S46. For example, "AfL-Afs" may be added to the stoichiometric reference value Afs in the processes of S12 and S18 in <FIG>.

Instead of using the process of S46, a value obtained by multiplying "AfL-Afs" by a gain K that is less than one and greater than zero may be subtracted from the rich side sub-offset amount εr, and the multiplied value may be added to the lean side sub-offset amount εl.

In the above embodiments, the deviation amount reflection process is configured by the process of S46. However, there is no limit to such a configuration. For example, a value obtained by subtracting "AfL-Afs" from the detection value Afd may be used as the detection value Afd that is input to the processes of S12 and S18.

The deviation amount reflection process is not limited to the process that corrects any one of "Afs-εr" as the rich determination value, "Afs+εl" as the lean determination value, and the detection value Afd as a comparison target with the rich determination value and the lean determination value in accordance with the stoichiometric point AfL. For example, when the output of the downstream air-fuel ratio sensor <NUM> is changed by an electric amount (e.g., applied voltage) supplied to the downstream air-fuel ratio sensor <NUM>, the process may be configured to adjust the electric amount so that the stoichiometric point AfL approaches the stoichiometric reference value Afs.

The deviation amount indication value is not limited to a value that reflects on the sub-feedback process M14. For example, when the fuel injection valves <NUM> are operated so that the air-fuel ratio of the mixture to be combusted is controlled to be the same in the cylinders #<NUM> to #<NUM>, the deviation amount indication value may be used in a process that determines the presence or absence of abnormality (imbalance abnormality) in which the mixture to be combusted in one cylinder is richer than the mixture in other cylinders. For example, given that control increases the absolute value of the correction amount of the target value Afu* of the main feedback process M12 when the absolute value of the difference between the detection value Afd of the downstream air-fuel ratio sensor <NUM> and the stoichiometric reference value Afs is large as compared to when it is small, the determination process may determine the presence or absence of imbalance abnormality based on the correction amount. More specifically, when an imbalance abnormality occurs, the detection value Afu of the upstream air-fuel ratio sensor <NUM> has a rich side deviation from the air-fuel ratio of the mixtures to be combusted in respective cylinders collected together. Thus, the air-fuel ratio of the mixtures collected together is controlled to be leaner than the stoichiometric air-fuel ratio through the main feedback process M12. As a result, the detection value Afd of the downstream air-fuel ratio sensor <NUM> becomes leaner than the stoichiometric air-fuel ratio, so that the correction amount includes information on the level of imbalance abnormality. In order to improve the accuracy of the determination process, the detection value Afd used as the input to the calculation process of the correction amount may be corrected based on the stoichiometric point AfL in the same manner as described in the section of "Deviation Amount Reflection Process. " In this case, the corrected detection value Afd is close to the detection value of the reference air-fuel ratio sensor (the value assumed by the controller <NUM> in the control) whatever value the air-fuel ratio of the mixture to be combusted is. This improves the accuracy of determining presence or absence of an imbalance abnormality based on the correction amount. Storage Device of Deviation amount indication value.

Although the storage device for storing the stoichiometric point AfL is not particularly described in the above embodiments, the stoichiometric point AfL may be stored, for example, in a RAM used as a volatile memory. In this case, the RAM is initialized as the controller <NUM> is newly activated, so that the stoichiometric point AfL is not stored in the RAM immediately after the activation. Instead, for example, the stoichiometric point AfL may be constantly stored regardless of activation and deactivation of the controller <NUM>. This may be implemented, for example, by using a non-volatile memory or a backup RAM in which power supply is maintained regardless of the state of the main power supply of the controller <NUM> as the storage device. Alternatively, for example, a device that includes a RAM as a volatile memory and a non-volatile memory may be used as the storage device for storing the stoichiometric point AfL. In this case, the stoichiometric point AfL stored in the RAM may be sequentially updated by the process of S44, and the stoichiometric point AfL may be stored in the non-volatile memory as a post-process prior to deactivation of the controller <NUM>. In this case, the stoichiometric point AfL stored in the non-volatile memory is stored in the volatile memory as the controller <NUM> is activated.

The controller is not limited to a device that includes the CPU <NUM> and the ROM <NUM> and executes software processes. For example, a dedicated hardware circuit (e.g., ASIC) that executes at least some of the software processes executed in the above embodiments may be provided. More specifically, the controller may have any one of the following configurations (a) to (c). Configuration (a) includes a processing device that executes all of the above processes in accordance with programs and a program storage device such as a ROM that stores the programs. Configuration (b) includes a processing device that executes some of the above processes in accordance with programs and a program storage device and a dedicated hardware circuit that executes the remaining processes. Configuration (c) includes a dedicated hardware circuit that executes all of the above processes. Multiple software circuits including the processing device and the program storage device or multiple dedicated hardware circuits may be provided. More specifically, the above processes may be executed by processing circuitry that includes at least one of one or more software circuits or one or more dedicated hardware circuits. The program storage device, or a computer readable medium, includes any available media that can be accessed by a general-purpose computer or a dedicated computer.

The hybrid vehicle is not limited to a series-parallel hybrid vehicle, but may be, for example, a parallel hybrid vehicle or a series hybrid vehicle. Moreover, the vehicle is not limited to a hybrid vehicle and may be a vehicle solely including the internal combustion engine <NUM> as the drive source.

In the above embodiments, the absolute value of the specified amount ΔAfdM in the process of S50 is a value equal to the specified amount ΔAfd in the process of S36. However, there is no limit to such a configuration, and the absolute value may be a value greater than the specified amount ΔAfd. The process of S34 may be executed when the positive determination is made in S32 and the above condition (G) is satisfied. The process of S50 may be shifted to the process of S52 when the condition (G) is not satisfied. In this case, after the process of S38 is started, when the condition (G) is not satisfied, the accumulated value InAfd is initialized.

Claim 1:
A controller (<NUM>) for an internal combustion engine (<NUM>), wherein the internal combustion engine (<NUM>) includes a fuel injection valve (<NUM>), a catalyst (<NUM>) provided in an exhaust passage (<NUM>) and capable of storing oxygen, and an air-fuel ratio sensor (<NUM>) provided downstream of the catalyst (<NUM>) in the exhaust passage (<NUM>) wherein the air-fuel ratio sensor linearly increases a detection value as the amount of oxygen exceeding the amount of unburned fuel in the exhaust is increased, the controller (<NUM>) comprising processing circuitry, wherein
the processing circuitry is configured to determine whether the following conditions are fulfilled:
(A) an absolute value of an amount of change in a charging efficiency in a predetermined period is less than or equal to a predetermined amount; or
(B) an absolute value of an amount of change in a predetermined period of an intake air amount is less than or equal to a predetermined amount;
(D) an accumulated value of the intake air amount from a start of the internal combustion engine is greater than or equal to a predetermined value; or a temperature of the catalyst is greater than or equal to a predetermined temperature and
(E) the intake air amount is greater than or equal to a lower limit value and is less than or equal to an upper limit value;
wherein if conditions (A) or (B) and (D) to (E) are fulfilled, the processing circuitry is configured to execute an inflow process when a permission flag is one and when an oxygen storage amount of the catalyst (<NUM>) is greater than or equal to a predetermined amount,
the inflow process includes operating the fuel injection valve (<NUM>) to cause a fluid containing oxygen and unburned fuel to flow into the catalyst (<NUM>),
an amount of the unburned fuel is greater than or equal to an ideal amount of unburned fuel that reacts with all of the oxygen, and
the processing circuitry is configured to execute, based on a detection value of the air-fuel ratio sensor (<NUM>) obtained during an execution of the inflow process, a deviation amount calculation process that calculates a deviation amount indication value that indicates a deviation amount of a detection value of the air-fuel ratio sensor (<NUM>) when oxygen is stored in the catalyst.