JP2000205025A - Control apparatus for engine - Google Patents

Control apparatus for engine

Info

Publication number
JP2000205025A
JP2000205025A JP11008141A JP814199A JP2000205025A JP 2000205025 A JP2000205025 A JP 2000205025A JP 11008141 A JP11008141 A JP 11008141A JP 814199 A JP814199 A JP 814199A JP 2000205025 A JP2000205025 A JP 2000205025A
Authority
JP
Japan
Prior art keywords
cylinder
differential rotation
amount
fuel injection
ignition timing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11008141A
Other languages
Japanese (ja)
Inventor
Akira Ogura
明 小倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Subaru Corp
Original Assignee
Fuji Heavy Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Heavy Industries Ltd filed Critical Fuji Heavy Industries Ltd
Priority to JP11008141A priority Critical patent/JP2000205025A/en
Publication of JP2000205025A publication Critical patent/JP2000205025A/en
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/10Internal combustion engine [ICE] based vehicles
    • Y02T10/40Engine management systems

Landscapes

  • Electrical Control Of Ignition Timing (AREA)
  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

PROBLEM TO BE SOLVED: To restrain occurrence of uncomfortable low frequency vibrations to stabilize idling, decrease harmful exhaust emission and improve fuel economy, by stabilizing a combustion state of each cylinder during idling, and equalizing output torque between cylinders. SOLUTION: When it is determined that an engine is idling (S51, S52), a differential revolution mean value TCLAVE for each cylinder is calculated, and a differential revolution fluctuation amount integrated value TCLSUM is calculated by integrating an absolute value of difference between a differential revolution TCYLAC and the differential revolution fluctuation amount TCLAVE (S59, S66,...). An ignition timing correction amount is set based on the differential revolution mean value TCLAVE, and a fuel injection correction amount is set based on the differential revolution fluctuation amount integrated value TCLSUM. Then, a fuel injection amount and ignition timing of each of the cylinders is corrected to uniform a combustion state of each of the cylinder and variations in output torque for the cylinders. Thereby, occurrence of uncomfortable low frequency vibrations is restrained, harmful exhaust emission is decreased and fuel economy is improved.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、アイドル運転時の
各気筒の燃焼状態を安定させると共に気筒間の出力トル
クを均一化するエンジンの制御装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an engine control device for stabilizing the combustion state of each cylinder during idling operation and for equalizing the output torque between the cylinders.

【0002】[0002]

【従来の技術】一般に、エンジンのアイドル安定性を向
上するためには、気筒間の燃焼状態のばらつきを抑制す
ることが必要である。各気筒の燃焼状態は、燃焼行程中
の気筒の筒内圧(燃焼圧)と、燃焼行程から次の燃焼行
程の間のエンジン回転との間に強い相関があることか
ら、気筒間の所定クランク角毎のエンジン回転状態量の
変化に基づいて判断することが可能である。
2. Description of the Related Art Generally, in order to improve the idling stability of an engine, it is necessary to suppress variations in the combustion state between cylinders. The combustion state of each cylinder has a strong correlation between the in-cylinder pressure (combustion pressure) of the cylinder during the combustion stroke and the engine rotation between the combustion stroke and the next combustion stroke. It is possible to make a determination based on a change in the engine rotation state quantity for each.

【0003】例えば、特許番号第2505304号公報
には、エンジンがアイドル状態のとき、所定クランク角
毎のエンジン回転変動差を検出し、所定の気筒のエンジ
ン回転変動差が上限値を越えているときには、当該気筒
の燃料噴射補正量を設定量減量すると共に、その減量分
に対応して他の気筒の燃料噴射補正量を等分配増量し、
一方、所定の気筒のエンジン回転変動差が下限値より低
いときには、当該気筒の燃料噴射補正量を設定量増量す
ると共に、その増量分に対応して他の気筒の燃料噴射補
正量を等分配減量することでアイドル安定化を図り、燃
料噴射量の補正を重ねて噴射補正量が許容上限値を越え
た場合或いは許容下限値より低くなった場合には、点火
時期を進角或いは遅角補正する技術が開示されている。
[0003] For example, Japanese Patent No. 2505304 discloses that when the engine is in an idle state, a difference in engine rotation for each predetermined crank angle is detected, and when the difference in engine rotation for a predetermined cylinder exceeds an upper limit value. The fuel injection correction amount of the cylinder is reduced by a set amount, and the fuel injection correction amounts of the other cylinders are equally distributed and increased in accordance with the reduced amount,
On the other hand, when the engine rotation fluctuation difference of the predetermined cylinder is lower than the lower limit value, the fuel injection correction amount of the cylinder is increased by a set amount, and the fuel injection correction amounts of the other cylinders are equally distributed and reduced in accordance with the increase amount. When the injection correction amount exceeds the allowable upper limit value or becomes lower than the allowable lower limit value, the ignition timing is advanced or retarded. Techniques are disclosed.

【0004】[0004]

【発明が解決しようとする課題】しかしながら、先の先
行技術では、気筒毎の燃料噴射量の補正を主とし、所定
気筒の噴射補正量が上限値あるいは下限値に達したとき
に初めて点火時期を従として補正する、いわば直列的な
補正であるため、結果的に燃料噴射量が気筒毎にばらつ
くことは避けられず、全体として有害な排気エミッショ
ンを減少する上では、必ずしも有利とは言えない。
However, in the above prior art, the correction of the fuel injection amount for each cylinder is mainly performed, and the ignition timing is set only when the injection correction amount of a predetermined cylinder reaches the upper limit value or the lower limit value. Therefore, since the correction is performed in a serial manner, it is inevitable that the fuel injection amount varies from cylinder to cylinder. As a result, it is not necessarily advantageous in reducing harmful exhaust emissions as a whole.

【0005】また、ある気筒の吸入空気量が多いことが
原因でエンジン回転変動差が大きくなった場合、当該気
筒の燃料噴射量を減少させるため、当該気筒は空燃比が
薄い状態で燃焼することになり、他の気筒に対して出力
トルクが相対的に低下する。このため、比較的長い周期
でのうねり状の回転変動が発生する可能性があり、乗員
に不快感を与える虞がある。
[0005] Further, when the engine rotation fluctuation difference becomes large due to a large intake air amount of a certain cylinder, the cylinder is burned with a low air-fuel ratio in order to reduce the fuel injection amount of the cylinder. , And the output torque decreases relative to the other cylinders. For this reason, there is a possibility that a swell-like rotation fluctuation occurs at a relatively long cycle, and the occupant may be uncomfortable.

【0006】本発明は上記事情に鑑みてなされたもの
で、アイドル運転時の各気筒の燃焼状態を安定させると
共に気筒間の出力トルクを均一化することで、不快な低
周波振動の発生を抑制してアイドル運転を安定化し、有
害な排気エミッションの減少及び燃費向上を図ることの
できるエンジンの制御装置を提供することを目的として
いる。
The present invention has been made in view of the above circumstances, and suppresses the generation of unpleasant low-frequency vibrations by stabilizing the combustion state of each cylinder during idling and making the output torque between the cylinders uniform. It is an object of the present invention to provide an engine control device capable of stabilizing idle operation, reducing harmful exhaust emissions and improving fuel efficiency.

【0007】[0007]

【課題を解決するための手段】上記目的を達成するた
め、請求項1記載の発明は、気筒間における所定クラン
ク角毎のエンジン回転状態量を検出するエンジン回転状
態量検出手段と、現在の燃焼行程気筒を判別する気筒判
別手段と、エンジンのアイドル状態を、エンジン運転状
態から判別するアイドル判別手段と、エンジンがアイド
ル状態のとき、今回の燃焼行程気筒に対応するエンジン
回転状態量から1燃焼行程前の気筒に対応するエンジン
回転状態量を減算し、今回の燃焼行程気筒に対する差回
転状態量として算出する差回転状態量算出手段と、所定
期間における各気筒毎の上記差回転状態量を平均処理
し、各気筒毎の差回転状態量平均値として算出する差回
転状態量平均値算出手段と、所定期間における各気筒毎
の上記差回転状態量と上記差回転状態量平均値との差の
絶対値を積算処理し、各気筒毎の差回転変動量積算値と
して算出する差回転変動量積算値算出手段と、アイドル
状態時に、上記差回転変動量積算値が最も小さい気筒に
対して燃料噴射量を減量補正すると共に、差回転変動量
積算値が最も大きい気筒に対して燃料噴射量を増量補正
する燃料噴射制御手段と、上記差回転状態量平均値が最
も低い気筒に対して点火時期を進角補正すると共に、差
回転状態量平均値が最も高い気筒に対して点火時期を遅
角補正する点火時期制御手段とを備えたことを特微とす
る。
In order to achieve the above object, the invention according to claim 1 comprises an engine rotational state quantity detecting means for detecting an engine rotational state quantity at every predetermined crank angle between cylinders, Cylinder discriminating means for discriminating the stroke cylinder, idle discriminating means for discriminating the idling state of the engine from the engine operating state, and, when the engine is idling, one combustion stroke from the engine rotation state quantity corresponding to the current combustion stroke cylinder. A differential rotation state amount calculating means for subtracting the engine rotation state amount corresponding to the previous cylinder and calculating the difference rotation state amount for the current combustion stroke cylinder, and averaging the differential rotation state amount for each cylinder in a predetermined period. And a differential rotation state amount average value calculating means for calculating as a differential rotation state amount average value for each cylinder; and the differential rotation state amount for each cylinder in a predetermined period. A differential rotation variation integrated value calculating means for integrating an absolute value of a difference from the differential rotation state average value and calculating as a differential rotation variation integrated value for each cylinder; A fuel injection control means for reducing the fuel injection amount for the cylinder having the smallest integrated value and increasing and correcting the fuel injection amount for the cylinder having the largest difference rotation variation amount integrated value; Ignition timing control means for advancing the ignition timing for the cylinder with the lowest value, and retarding the ignition timing for the cylinder with the highest differential rotation state quantity average value. I do.

【0008】請求項2記載の発明は、気筒間における所
定クランク角毎のエンジン回転状態量を検出するエンジ
ン回転状態量検出手段と、現在の燃焼行程気筒を判別す
る気筒判別手段と、エンジンのアイドル状態を、エンジ
ン運転状態から判別するアイドル判別手段と、エンジン
がアイドル状態のとき、1燃焼行程前の気筒に対応する
エンジン回転状態量から今回の燃焼行程気筒に対応する
エンジン回転状態量を減算し、今回の燃焼行程気筒に対
する差回転状態量として算出する差回転状態量算出手段
と、所定期間における気筒毎の上記差回転状態量を平均
処理し、各気筒毎の差回転状態量平均値として算出する
差回転状態量平均値算出手段と、所定期間における各気
筒毎の上記差回転状態量と上記差回転状態量平均値との
差の絶対値を積算処理し、各気筒毎の差回転変動量積算
値として算出する差回転変動量積算値算出手段と、アイ
ドル状態時に、上記差回転変動量積算値が最も小さい気
筒に対して燃料噴射量を減量補正すると共に、差回転変
動量積算値が最も大きい気筒に対して燃料噴射量を増量
補正する燃料噴射制御手段と、上記差回転状態量平均値
が最も高い気筒に対して点火時期を進角補正すると共
に、差回転状態量平均値が最も低い気筒に対して点火時
期を遅角補正する点火時期制御手段とを備えたことを特
徴とする。
According to a second aspect of the present invention, there is provided an engine rotational state amount detecting means for detecting an engine rotational state amount for each predetermined crank angle between cylinders, a cylinder determining means for determining a current combustion stroke cylinder, and an engine idle state. An idle determining means for determining a state from an engine operating state; and, when the engine is in an idle state, subtracting an engine rotational state quantity corresponding to a current combustion stroke cylinder from an engine rotational state quantity corresponding to a cylinder one combustion stroke earlier. A difference rotation state amount calculation means for calculating the difference rotation state amount for the current combustion stroke cylinder, and averaging the difference rotation state amount for each cylinder in a predetermined period, and calculating the difference rotation state amount average value for each cylinder. Means for calculating the average value of the differential rotation state amount, and integrating the absolute value of the difference between the differential rotation state amount and the average differential rotation state amount for each cylinder during a predetermined period. In other words, the differential rotation fluctuation amount integrated value calculation means for calculating the difference rotation fluctuation amount integrated value for each cylinder, and the fuel injection amount for the cylinder having the smallest difference rotation fluctuation amount integrated value during the idle state is corrected. And a fuel injection control means for increasing and correcting the fuel injection amount for the cylinder having the largest differential rotation fluctuation amount integrated value, and advancing the ignition timing for the cylinder having the highest differential rotation state amount average value. In addition, there is provided an ignition timing control means for retarding the ignition timing of the cylinder having the lowest differential rotation state amount average value.

【0009】請求項3記載の発明は、請求項1或いは請
求項2記載の発明において、上記燃料噴射制御手段は、
アイドル状態時に、上記差回転変動量積算値に応じて燃
料噴射量を増量或いは減量補正するための燃料噴射補正
量を気筒別に設定し、エンジン運転状態に基づいて演算
した燃料噴射量を上記気筒別燃料噴射補正量により補正
して気筒別に最終的な燃料噴射量を設定すると共に、上
記気筒別燃料噴射補正量を学習値として記憶保持して随
時更新し、上記点火時期制御手段は、アイドル状態時
に、上記差回転状態量平均値に応じて点火時期を進角或
いは遅角するための点火時期補正量を気筒別に設定し、
エンジン運転状態に基づいて演算した点火時期を上記気
筒別点火時期補正量により補正して気筒別に最終的な点
火時期を設定すると共に、上記気筒別点火時期補正量を
学習値として記憶保持して随時更新することを特徴とす
る。
According to a third aspect of the present invention, in the first or second aspect, the fuel injection control means includes:
In the idling state, a fuel injection correction amount for increasing or decreasing the fuel injection amount is set for each cylinder in accordance with the differential rotation fluctuation amount integrated value, and the fuel injection amount calculated based on the engine operating state is set for each cylinder. The fuel injection correction amount is corrected by the fuel injection correction amount to set the final fuel injection amount for each cylinder, and the cylinder-by-cylinder fuel injection correction amount is stored and held as a learning value and updated as needed. Setting an ignition timing correction amount for advancing or retarding the ignition timing according to the average value of the differential rotation state amount for each cylinder,
The ignition timing calculated based on the engine operating state is corrected by the above-described cylinder-specific ignition timing correction amount to set the final ignition timing for each cylinder, and the above-described cylinder-specific ignition timing correction amount is stored and held as a learning value, as needed. It is characterized by updating.

【0010】すなわち、請求項1記載の発明では、気筒
間における所定クランク角毎のエンジン回転状態量を検
出し、アイドル状態のとき、今回の燃焼行程気筒に対応
するエンジン回転状態量から1燃焼行程前の気筒に対応
するエンジン回転状態量を減算して、今回の燃焼行程気
筒に対する差回転状態量として算出する。そして、所定
期間における気筒毎の差回転状態量を平均処理して各気
筒毎の差回転状態量平均値を算出すると共に、所定期間
における各気筒毎の差回転状態量と差回転状態量平均値
との差の絶対値を積算処理して各気筒毎の差回転変動量
積算値を算出する。そして、差回転変動量積算値が最も
小さい気筒の燃料噴射量を減量補正すると共に、差回転
変動量積算値が最も大きい気筒に対して燃料噴射量を増
量補正することで、各気筒の燃焼状態を均一化し、ま
た、差回転状態量平均値が最も低い気筒の点火時期を進
角させ、差回転状態量平均値が最も高い気筒の点火時期
を遅角させることで、気筒間の出力トルクのばらつきを
抑制する。
That is, according to the first aspect of the present invention, the amount of engine rotation for each predetermined crank angle between cylinders is detected, and when the engine is idling, one combustion stroke is calculated from the amount of engine rotation corresponding to the current combustion stroke cylinder. The engine rotation state amount corresponding to the previous cylinder is subtracted to calculate the difference rotation state amount for the current combustion stroke cylinder. Then, the average value of the differential rotation state amount for each cylinder is calculated by averaging the differential rotation state amount for each cylinder in the predetermined period, and the differential rotation state amount and the differential rotation state amount average value for each cylinder in the predetermined period. Is integrated to calculate an integrated value of the differential rotation fluctuation amount for each cylinder. Then, the fuel injection amount of the cylinder having the smallest differential rotation fluctuation amount is reduced and corrected, and the fuel injection amount is corrected to be increased for the cylinder having the maximum difference rotation fluctuation amount, so that the combustion state of each cylinder is corrected. In addition, by making the ignition timing of the cylinder with the lowest average value of the differential rotation state amount advance, and retarding the ignition timing of the cylinder with the highest average of the differential rotation state amount, the output torque between the cylinders is reduced. Suppress variations.

【0011】また、請求項2記載の発明のように、今回
の燃焼行程気筒に対する差回転状態量として、アイドル
状態のとき、1燃焼行程前の気筒に対応するエンジン回
転状態量から今回の燃焼行程気筒に対応するエンジン回
転状態量を減算して算出しても良く、この場合は、点火
時期の進角、遅角補正が逆となり、差回転状態量平均値
が最も高い気筒に対して点火時期を進角させ、差回転状
態量平均値が最も低い気筒に対して点火時期を遅角させ
る。
Further, as in the second aspect of the present invention, when the engine is in the idling state, the difference between the engine rotation state amount corresponding to the cylinder one combustion stroke before and the current combustion stroke is determined as the differential rotation state amount for the current combustion stroke cylinder. The calculation may be performed by subtracting the engine rotation state quantity corresponding to the cylinder.In this case, the ignition timing advance and retard corrections are reversed, and the ignition timing is calculated for the cylinder having the highest differential rotation state quantity average value. Is advanced, and the ignition timing is retarded for the cylinder having the lowest differential rotation state amount average value.

【0012】さらに、請求項3記載の発明では、アイド
ル状態時に、燃料噴射量及び点火時期を補正するに際
し、差回転変動量積算値に応じて燃料噴射量を増量或い
は減量補正するための燃料噴射補正量を気筒別に設定
し、エンジン運転状態に基づいて演算した燃料噴射量を
気筒別燃料噴射補正量により補正して気筒別に最終的な
燃料噴射量を設定する。また、アイドル状態時に、差回
転状態量平均値に応じて点火時期を進角或いは遅角する
ための点火時期補正量を気筒別に設定し、エンジン運転
状態に基づいて演算した点火時期を気筒別点火時期補正
量により補正して気筒別に最終的な点火時期を設定す
る。そして、これらの気筒別燃料噴射補正量および気筒
別点火時期補正量を学習値として記憶保持して随時更新
することで、制御性の向上を図る。
Further, according to the present invention, when correcting the fuel injection amount and the ignition timing in the idle state, the fuel injection for increasing or decreasing the fuel injection amount in accordance with the integrated value of the differential rotation fluctuation amount. The correction amount is set for each cylinder, and the final fuel injection amount is set for each cylinder by correcting the fuel injection amount calculated based on the engine operating state with the cylinder-specific fuel injection correction amount. Further, during the idle state, the ignition timing correction amount for advancing or retarding the ignition timing according to the average value of the differential rotation state amount is set for each cylinder, and the ignition timing calculated based on the engine operation state is set for each cylinder. The final ignition timing is set for each cylinder by correcting with the timing correction amount. The controllability is improved by storing and updating the learned fuel injection correction amount for each cylinder and the ignition timing correction amount for each cylinder as learning values as needed.

【0013】[0013]

【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。図1〜図14は本発明の実施の一
形態に係わり、図1〜図4はアイドル安定化制御ルーチ
ンのフローチャート、図5は気筒判別/エンジン回転速
度算出ルーチンのフローチャート、図6は気筒別燃料噴
射制御ルーチンのフローチャート、図7は気筒別点火時
期制御ルーチンのフローチャート、図8はクランクパル
ス、気筒判別パルス、燃焼行程気筒、点火タイミング、
及び燃料噴射タイミングの関係を示すタイムチャート、
図9は各気筒毎の差回転の算出状態を示すタイミングチ
ャート、図10は差回転の変動状態を示す説明図、図1
1はエンジンの全体概略図、図12はクランクロータと
クランク角センサの正面図、図13はカムロータと気筒
判別センサの正面図、図14は電子制御系の回路構成図
である。
Embodiments of the present invention will be described below with reference to the drawings. FIGS. 1 to 14 relate to an embodiment of the present invention, FIGS. 1 to 4 are flowcharts of an idling stabilization control routine, FIG. 5 is a flowchart of a cylinder discrimination / engine speed calculation routine, and FIG. FIG. 7 is a flowchart of an injection control routine, FIG. 7 is a flowchart of a cylinder-specific ignition timing control routine, and FIG. 8 is a crank pulse, a cylinder discrimination pulse, a combustion stroke cylinder, an ignition timing,
And a time chart showing the relationship between fuel injection timing,
FIG. 9 is a timing chart showing the calculation state of the differential rotation for each cylinder, FIG. 10 is an explanatory diagram showing the fluctuation state of the differential rotation, and FIG.
1 is an overall schematic view of an engine, FIG. 12 is a front view of a crank rotor and a crank angle sensor, FIG. 13 is a front view of a cam rotor and a cylinder discrimination sensor, and FIG. 14 is a circuit configuration diagram of an electronic control system.

【0014】先ず、図11に基づいてエンジンの全体構
成について説明する。同図において、符号1はエンジン
であり、本形態においては水平対向型4気筒ガソリンエ
ンジンである。このエンジン1のシリンダブロック1a
の左右両バンクには、シリンダヘッド2がそれぞれ設け
られ、各シリンダヘッド2に吸気ポート2aと排気ポー
ト2bが形成されている。
First, the overall structure of the engine will be described with reference to FIG. In the figure, reference numeral 1 denotes an engine, which in this embodiment is a horizontally opposed four-cylinder gasoline engine. Cylinder block 1a of this engine 1
In each of the left and right banks, a cylinder head 2 is provided, and an intake port 2a and an exhaust port 2b are formed in each cylinder head 2.

【0015】エンジン1の吸気系は、各吸気ポート2a
にインテークマニホルド3が連通され、このインテーク
マニホルド3に各気筒の吸気通路が集合するエアチャン
バ4を介してスロットルチャンバ5が連通されている。
そして、このスロットルチャンバ5の上流側に吸気管6
を介してエアクリーナ7が取り付けられ、このエアクリ
ーナ7がエアインテークチャンバ8に連通されている。
The intake system of the engine 1 includes an intake port 2a
An intake manifold 3 is communicated with the intake manifold 3, and a throttle chamber 5 is communicated with the intake manifold 3 via an air chamber 4 in which intake passages of the respective cylinders are gathered.
An intake pipe 6 is provided upstream of the throttle chamber 5.
The air cleaner 7 is attached via the air cleaner 7, and the air cleaner 7 is communicated with the air intake chamber 8.

【0016】また、スロットルチャンバ5には、アクセ
ルペダルに連動するスロットル弁5aが設けられてい
る。吸気管6には、スロットル弁5aをバイパスするバ
イパス通路9が接続され、このバイパス通路9に、アイ
ドル時にその弁開度によって該バイパス通路9を流れる
バイパス空気量を調整することでアイドル回転数を制御
するアイドル回転数制御弁(ISC弁)10が介装され
ている。
The throttle chamber 5 is provided with a throttle valve 5a linked to an accelerator pedal. A bypass passage 9 that bypasses the throttle valve 5a is connected to the intake pipe 6, and the idle rotation speed is adjusted by adjusting the amount of bypass air flowing through the bypass passage 9 according to the valve opening during idling. An idle speed control valve (ISC valve) 10 to be controlled is interposed.

【0017】更に、インテークマニホルド3の各気筒の
吸気ポート2aの直上流側にインジェクタ11が配設さ
れている。インジェクタ11は燃料供給路12を介して
燃料タンク13に連通されており、この燃料タンク13
にはインタンク式の燃料ポンプ14が設けられている。
この燃料ポンプ14からの燃料が、燃料供給路12に介
装された燃料フィルタ15を経てインジェクタ11及び
プレッシャレギュレータ16に圧送され、このプレッシ
ャレギュレータ16から燃料タンク13にリターンされ
て、インジェクタ11への燃料圧力が所定の圧力に調圧
される。
Further, an injector 11 is disposed immediately upstream of the intake port 2a of each cylinder of the intake manifold 3. The injector 11 is connected to a fuel tank 13 via a fuel supply path 12.
Is provided with an in-tank type fuel pump 14.
The fuel from the fuel pump 14 is pressure-fed to the injector 11 and the pressure regulator 16 via the fuel filter 15 interposed in the fuel supply path 12, returned from the pressure regulator 16 to the fuel tank 13, and sent to the injector 11. The fuel pressure is adjusted to a predetermined pressure.

【0018】一方、シリンダヘッド2の各気筒毎に、先
端の放電電極を燃焼室に露呈する点火プラグ17が取り
付けられ、この点火プラグ17に、イグナイタ19を内
蔵するイグニッションコイル18が接続されている。
On the other hand, an ignition plug 17 for exposing the discharge electrode at the tip to the combustion chamber is attached to each cylinder of the cylinder head 2, and an ignition coil 18 containing an igniter 19 is connected to the ignition plug 17. .

【0019】また、エンジン1の排気系としては、シリ
ンダヘッド2の各排気ポート2bに連通するエキゾース
トマニホルド20の集合部に排気管21が連通され、こ
の排気管21に触媒コンバータ22が介装されてマフラ
23に連通されている。
In the exhaust system of the engine 1, an exhaust pipe 21 is communicated with a collection portion of an exhaust manifold 20 which communicates with each exhaust port 2b of the cylinder head 2, and a catalytic converter 22 is interposed in the exhaust pipe 21. To the muffler 23.

【0020】次に、エンジン運転状態を検出するための
センサ類について説明する。吸気管6のエアクリーナ7
の直下流に、ホットワイヤ或いはホットフィルム等を用
いた熱式の吸入空気量センサ24が介装され、更に、ス
ロットルチャンバ5に設けられたスロットル弁5aに、
スロットル弁5aの開度を検出するためのスロットル開
度センサ25が連設されている。
Next, sensors for detecting the operating state of the engine will be described. Air cleaner 7 for intake pipe 6
A thermal intake air amount sensor 24 using a hot wire or a hot film or the like is interposed immediately downstream of the throttle valve 5.
A throttle opening sensor 25 for detecting the opening of the throttle valve 5a is provided in series.

【0021】また、エンジン1のシリンダブロック1a
にノックセンサ26が取り付けられていると共に、シリ
ンダブロック1aの左右バンクを連通する冷却水通路2
7に冷却水温センサ28が臨まされ、更に、触媒コンバ
ータ22の上流に空燃比センサの一例としてO2センサ
29が配設されている。
The cylinder block 1a of the engine 1
A knock sensor 26 is mounted on the cooling water passage 2 which communicates the left and right banks of the cylinder block 1a.
7, a cooling water temperature sensor 28 is provided, and an O2 sensor 29 is disposed upstream of the catalytic converter 22 as an example of an air-fuel ratio sensor.

【0022】また、エンジン1のクランクシャフト30
に軸着するクランクロータ31の外周に、クランク角セ
ンサ32が対設され、更に、クランクシャフト30に対
して1/2回転するカムシャフト33に連設するカムロ
ータ34に、現在の燃焼行程気筒、燃料噴射対象気筒や
点火対象気筒を判別するための気筒判別センサ35が対
設されている。
The crankshaft 30 of the engine 1
A crank angle sensor 32 is provided on the outer periphery of a crank rotor 31 which is axially mounted on the cam rotor 33. Further, a cam rotor 34 connected to a cam shaft 33 which makes a half rotation with respect to the crank shaft 30 has a current combustion stroke cylinder, A cylinder discriminating sensor 35 for discriminating a fuel injection target cylinder and an ignition target cylinder is provided in opposition.

【0023】クランクロータ31は、図12に示すよう
に、その外周に突起31a,31b,31cが形成さ
れ、これらの各突起31a,31b,31cが、各気筒
(#1,#2気筒と#3,#4気筒)の圧縮上死点前
(BTDC)θ1,θ2,θ3の位置に形成されてい
る。本実施の形態においては、θ1=97°CA,θ2
=65°CA,θ3=10°CAである。
As shown in FIG. 12, the crank rotor 31 has projections 31a, 31b, 31c formed on its outer periphery, and these projections 31a, 31b, 31c are connected to the cylinders (# 1, # 2 and # 2, respectively). 3, # 4 cylinder) before compression top dead center (BTDC) θ1, θ2, θ3. In the present embodiment, θ1 = 97 ° CA, θ2
= 65 ° CA, θ3 = 10 ° CA.

【0024】また、図13に示すように、カムロータ3
4の外周には、気筒判別用の突起34a,34b,34
cが形成され、突起34aが#3,#4気筒の圧縮上死
点後(ATDC)θ4の位置に形成され、突起34bが
3個の突起で構成されて最初の突起が#1気筒のATD
Cθ5の位置に形成されている。更に、突起34cが2
個の突起で構成され、最初の突起が#2気筒のATDC
θ6の位置に形成されている。本実施の形態において
は、θ4=20°CA,θ5=5°CA,θ6=20°
CAである。
Also, as shown in FIG.
4 are provided on the outer periphery of the projections 34a, 34b, 34 for cylinder discrimination.
c, the projection 34a is formed at a position θ4 after the top dead center (ATDC) of compression of the # 3 and # 4 cylinders, and the projection 34b is composed of three projections, and the first projection is the ATD of the # 1 cylinder.
It is formed at the position of Cθ5. Further, when the protrusion 34c is 2
ATDC of # 2 cylinder
It is formed at the position of θ6. In the present embodiment, θ4 = 20 ° CA, θ5 = 5 ° CA, θ6 = 20 °
CA.

【0025】そして、図8のタイムチャートに示すよう
に、エンジン運転に伴いクランクシャフト30及びカム
シャフト33の回転によりクランクロータ31及びカム
ロータ34が回転して、クランクロータ31の各突起が
クランク角センサ32によって検出され、クランク角セ
ンサ32からθ1,θ2,θ3(BTDC97°,65
°,10°)の各クランクパルスがエンジン1/2回転
(180°CA)毎に出力される。一方、θ3クランク
パルスとθ1クランクパルスとの間でカムロータ34の
各突起が気筒判別センサ35によって検出され、気筒判
別センサ35から所定数の気筒判別パルスが出力され
る。
Then, as shown in the time chart of FIG. 8, the crank rotor 31 and the cam rotor 34 are rotated by the rotation of the crankshaft 30 and the camshaft 33 in association with the operation of the engine. 32, θ1, θ2, θ3 (BTDC 97 °, 65
, 10 °) is output every 1/2 engine revolution (180 ° CA). On the other hand, each projection of the cam rotor 34 is detected by the cylinder discrimination sensor 35 between the θ3 crank pulse and the θ1 crank pulse, and a predetermined number of cylinder discrimination pulses are output from the cylinder discrimination sensor 35.

【0026】そして、後述する電子制御装置40(図1
4参照)において、クランク角センサ32から出力され
るクランクパルスの入力間隔時間Tθに基づいてエンジ
ン回転速度(エンジン回転数)NEを算出し、また、各
気筒の燃焼行程順(例えば、#1気筒→#3気筒→#2
気筒→#4気筒)と、気筒判別センサ35からの気筒判
別パルスをカウンタによって計数した値とのパターンに
基づいて、現在の燃焼行程気筒、燃料噴射対象気筒、点
火対象気筒を判別する。
An electronic control unit 40 (FIG. 1)
4), the engine rotation speed (engine speed) NE is calculated based on the input interval time Tθ of the crank pulse output from the crank angle sensor 32, and the combustion stroke order of each cylinder (for example, # 1 cylinder) → # 3 cylinder → # 2
The current combustion stroke cylinder, the fuel injection target cylinder, and the ignition target cylinder are determined based on a pattern of (cylinder → # 4 cylinder) and a value obtained by counting a cylinder determination pulse from the cylinder determination sensor 35 by a counter.

【0027】インジェクタ11、点火プラグ17,IS
C弁10等のアクチュエータ類に対する制御量の演算、
制御信号の出力、すなわち燃料噴射制御、点火時期制
御、アイドル回転数制御等のエンジン制御は、図14に
示す電子制御装置(ECU)40によって行われる。
Injector 11, spark plug 17, IS
Calculation of control amounts for actuators such as the C valve 10;
Output of control signals, that is, engine control such as fuel injection control, ignition timing control, idle speed control, and the like is performed by an electronic control unit (ECU) 40 shown in FIG.

【0028】ECU40は、CPU41、ROM42、
RAM43、バックアップRAM44、カウンタ・タイ
マ群45、及びI/Oインターフェイス46がバスライ
ンを介して互いに接続されるマイクロコンピュータを中
心として構成され、各部に安定化電源を供給する定電圧
回路47、I/Oインターフェイス46に接続される駆
動回路48及びA/D変換器49等の周辺回路が内蔵さ
れている。
The ECU 40 includes a CPU 41, a ROM 42,
A RAM 43, a backup RAM 44, a counter / timer group 45, and an I / O interface 46 are mainly configured by a microcomputer connected to each other via a bus line, and a constant voltage circuit 47 for supplying a stabilized power to each unit. A peripheral circuit such as a drive circuit 48 and an A / D converter 49 connected to the O interface 46 is built in.

【0029】尚、カウンタ・タイマ群45は、フリーラ
ンカウンタ、気筒判別センサ信号(気筒判別パルス)の
入力計数用カウンタ等の各種カウンタ、燃料噴射用タイ
マ、点火用タイマ、定期割り込みを発生させるための定
期割り込み用タイマ、クランク角センサ信号(クランク
パルス)の入力間隔計時用タイマ、及びシステム異常監
視用のウオッチドッグタイマ等の各種タイマを便宜上総
称するものであり、その他、各種のソフトウエアカウン
タ・タイマが用いられる。
The counter / timer group 45 is used to generate various counters such as a free-run counter, a counter for counting the input of a cylinder discrimination sensor signal (cylinder discrimination pulse), a fuel injection timer, an ignition timer, and a periodic interrupt. Timers such as a timer for periodic interruption, a timer for measuring an input interval of a crank angle sensor signal (crank pulse), and a watchdog timer for monitoring a system abnormality are collectively referred to for convenience. A timer is used.

【0030】定電圧回路47は、2回路のリレー接点を
有する電源リレー50の第1のリレー接点を介してバッ
テリ51に接続されると共に、直接、バッテリ51に接
続されており、イグニッションスイッチ52がONされ
て電源リレー50の接点が閉となるとECU40内の各
部へ電源を供給する一方、イグニッションスイッチ52
のON,OFFに拘らず、常時、バックアップRAM4
4にバックアップ用の電源を供給する。更に、バッテリ
51には、燃料ポンプリレー53のリレー接点を介して
燃料ポンプ14が接続されている。尚、電源リレー50
の第2のリレー接点には、バッテリ51から各アクチュ
エータに電源を供給するための電源線が接続されてい
る。
The constant voltage circuit 47 is connected to the battery 51 via a first relay contact of a power supply relay 50 having two relay contacts, and is also directly connected to the battery 51. When the switch is turned on and the contact of the power supply relay 50 is closed, power is supplied to each unit in the ECU 40, while the ignition switch 52 is turned on.
Regardless of ON or OFF, always backup RAM4
4 is supplied with power for backup. Further, the fuel pump 14 is connected to the battery 51 via a relay contact of the fuel pump relay 53. The power relay 50
A power line for supplying power from the battery 51 to each actuator is connected to the second relay contact.

【0031】I/Oインターフェイス46の入力ポート
には、イグニッションスイッチ52、ノックセンサ2
6、クランク角センサ32、気筒判別センサ35、及
び、車速を検出するための車速センサ36等が接続され
ており、更に、A/D変換器49を介して、吸入空気量
センサ24、スロットル開度センサ25、冷却水温セン
サ28、及びO2センサ29等が接続されると共に、バ
ッテリ電圧VBが入力されてモニタされる。
The input port of the I / O interface 46 includes an ignition switch 52, a knock sensor 2
6, a crank angle sensor 32, a cylinder discriminating sensor 35, a vehicle speed sensor 36 for detecting a vehicle speed, and the like are connected. Further, via an A / D converter 49, the intake air amount sensor 24, the throttle opening The temperature sensor 25, the cooling water temperature sensor 28, the O2 sensor 29, and the like are connected, and the battery voltage VB is input and monitored.

【0032】一方、I/Oインターフェイス46の出力
ポートには、燃料ポンプリレー53のリレーコイル、I
SC弁10、及び、インジェクタ11等が駆動回路48
を介して接続されると共に、イグナイタ19が接続され
ている。
On the other hand, the output port of the I / O interface 46 has a relay coil of the fuel pump
The SC valve 10, the injector 11, etc.
And the igniter 19 is connected.

【0033】CPU41では、ROM42に記憶されて
いる制御プログラムに従って、I/0インターフェイス
46を介して入力されるセンサ・スイッチ類からの検出
信号、及びバッテリ電圧等を処理し、RAM43に格納
される各種データ、及びバックアップRAM44に格納
されている各種学習値データ,ROM42に記憶されて
いる固定データ等に基づき、気筒別の燃料噴射量、気筒
別の点火時期、ISC弁10に対する駆動信号のデュー
ティ比等を演算し、気筒別燃料噴射制御、気筒別点火時
期制御、アイドル回転数制御等のエンジン制御を行う。
The CPU 41 processes the detection signals from the sensors and switches, which are input via the I / O interface 46, the battery voltage, and the like, according to the control program stored in the ROM 42. Based on the data, various learning value data stored in the backup RAM 44, fixed data stored in the ROM 42, etc., the fuel injection amount for each cylinder, the ignition timing for each cylinder, the duty ratio of the drive signal for the ISC valve 10, etc. And engine control such as cylinder-specific fuel injection control, cylinder-specific ignition timing control, idle speed control, and the like.

【0034】このようなエンジン制御系において、EC
U40では、クランク角センサ32、気筒判別センサ3
5からそれぞれ出力されるクランクパルス、気筒判別パ
ルスに基づいて現在の燃焼行程気筒を判別する。また、
気筒間における所定クランク角毎のエンジン回転状態量
として、各気筒間の燃焼による影響をほとんど受けない
区間(燃焼行程気筒と次の燃焼行程気筒との間の燃焼に
よる仕事をしていない区間)のエンジン回転速度を検出
する。本形態では、BTDCθ2,θ3間すなわちθ
2,θ3クランクパルス入力間のエンジン回転速度を検
出する。
In such an engine control system, EC
In U40, the crank angle sensor 32, the cylinder discrimination sensor 3
5, the current combustion stroke cylinder is determined based on the crank pulse and the cylinder determination pulse output from the respective cylinders. Also,
As an engine rotation state quantity for each predetermined crank angle between cylinders, a section that is hardly affected by combustion between the cylinders (a section in which no work is performed by combustion between a combustion stroke cylinder and the next combustion stroke cylinder). Detects engine speed. In the present embodiment, between BTDC θ2 and θ3, that is, θ
The engine rotation speed between the input of the 2, θ3 crank pulse is detected.

【0035】そして、今回の燃焼行程気筒に対応するエ
ンジン回転速度から前回の同区間における1燃焼行程前
の気筒に対応するエンジン回転速度を減算して燃焼行程
気筒の回転速度の差すなわち燃焼行程気筒に対応する差
回転(差回転状態量)TCYLACを算出し、各気筒毎
の差回転TCYLACを処理して得られる2つのパラメ
ータを用いてアイドル運転時の気筒別点火時期及び気筒
別燃料噴射量を補正する。
Then, the difference between the rotational speeds of the combustion stroke cylinders, that is, the combustion stroke cylinders, is subtracted from the engine rotational speed corresponding to the current combustion stroke cylinder, by subtracting the engine rotational speed corresponding to the cylinder one combustion stroke earlier in the same section from the previous time. And the two parameters obtained by processing the differential rotation TCYLAC for each cylinder to determine the ignition timing for each cylinder and the fuel injection amount for each cylinder during idling operation. to correct.

【0036】すなわち、多気筒エンジンにおいては、あ
る気筒の燃焼が不安定であると、乗員に不快な振動を与
えるばかりでなく、有害な排気エミッションの増加や燃
費の悪化が生じる。従って、アイドル時の安定性を向上
するには、各気筒の燃焼安定性を向上することが必要で
あるが、一義的に燃焼安定性を向上するだけでは、気筒
間の出力トルクが均一でない可能性があり、気筒間の出
力トルクが不均一の場合は、うねり状の回転変動すなわ
ち低周波の振動となって不快感が残る虞がある。
That is, in a multi-cylinder engine, if the combustion of a certain cylinder is unstable, not only unpleasant vibration is given to the occupant, but also harmful increase of exhaust emission and deterioration of fuel efficiency are caused. Therefore, in order to improve the stability at the time of idling, it is necessary to improve the combustion stability of each cylinder. However, the output torque between the cylinders may not be uniform by simply improving the combustion stability. If the output torque between the cylinders is non-uniform, there is a possibility that undulating rotation fluctuations, that is, low-frequency vibrations, and uncomfortable feeling may remain.

【0037】このため、各気筒毎の差回転TCYLAC
に基づいて気筒毎の燃焼安定性を表すパラメータと気筒
間の出力トルクのばらつきを表すパラメータとを算出
し、これらの2つのパラメータを用いて各気筒毎の燃料
噴射量と点火時期とを最適に制御し、各気筒の燃焼安定
性を向上すると共に、気筒間の出力トルクのばらつきを
抑制する。
For this reason, the differential rotation TCYLAC for each cylinder
A parameter representing combustion stability for each cylinder and a parameter representing variation in output torque between cylinders are calculated based on the two parameters, and the fuel injection amount and the ignition timing for each cylinder are optimized using these two parameters. By controlling, the combustion stability of each cylinder is improved, and the variation of the output torque between the cylinders is suppressed.

【0038】気筒毎の燃焼安定性を表すパラメータとし
ては、所定期間における各気筒毎の差回転TCYLAC
を平均処理した差回転平均値(差回転状態量平均値)T
CLAVEと各気筒毎の差回転TCYLACとの差の絶
対値を積算処理した差回転変動量積算値TCLSUMを
用いる。他の気筒に比較して差回転変動量積算値TCL
SUMが小さい気筒は、相対的に他の気筒よりも燃焼圧
の変動が少なく燃焼が安定しており、逆に、他の気筒に
比較して差回転変動量積算値TCLSUMが大きい気筒
は、相対的に他の気筒よりも燃焼圧の変動が大きく、燃
焼が不安定である。従って、差回転変動量積算値TCL
SUMが最小の気筒に対する燃料噴射量を減量補正する
一方、差回転変動量積算値TCLSUMが最大の気筒に
対する燃料噴射量を増量補正する処理を繰り返すこと
で、各気筒の燃焼状態を均一化して安定性を向上する。
The parameter representing the combustion stability of each cylinder includes a differential rotation TCYLAC of each cylinder during a predetermined period.
Difference rotation average value (difference rotation state quantity average value) T
A differential rotation variation integrated value TCLSUM obtained by integrating the absolute value of the difference between CLAVE and the differential rotation TCYLAC of each cylinder is used. Compared to other cylinders, differential rotation fluctuation integrated value TCL
A cylinder with a small SUM has a relatively small variation in combustion pressure and a stable combustion compared to the other cylinders. Conversely, a cylinder with a large differential rotation fluctuation integrated value TCLSUM as compared with the other cylinders has a relatively small difference. The fluctuation of the combustion pressure is larger than other cylinders, and the combustion is unstable. Therefore, the differential rotation fluctuation integrated value TCL
By repeating the process of reducing the fuel injection amount for the cylinder with the SUM being the smallest and increasing and correcting the fuel injection amount for the cylinder with the largest differential rotation fluctuation integrated value TCLSUM, the combustion state of each cylinder is made uniform and stable. Improve the performance.

【0039】また、気筒間のトルクのばらつきを表すパ
ラメータとしては、各気筒毎の差回転平均値TCLAV
Eを用いる。ここで、本実施の形態においては、当該気
筒#iの差回転平均値TCLAVEを算出する際の基と
なる差回転TCYLACiは、今回の燃焼行程気筒#i
に対応するエンジン回転速度TCYLiから1燃焼行程
前の気筒#i-1に対応するエンジン回転速度TCYLi
-1を減算して算出される。従って、他の気筒に比較して
差回転平均値TCLAVEが低い気筒は、相対的に他の
気筒よりも燃焼圧が低く、平均出力トルクが小さい気筒
であり、逆に、他の気筒に比較して差回転平均値TCL
AVEが高い気筒は、相対的に他の気筒よりも燃焼圧が
高く、平均出力トルクが高い気筒である。従って、差回
転平均値TCLAVEが最も低い気筒に対する点火時期
を出力トルクが大きくなる方向すなわち進角側に補正
し、また、差回転平均値TCLAVEが最も高い気筒に
対する点火時期を出力トルクが小さくなる方向すなわち
遅角側に補正する処理を繰り返すことで、気筒毎の出力
トルクを均一化する。
The parameter representing the variation in torque among the cylinders is a differential rotation average value TCLAV for each cylinder.
E is used. Here, in the present embodiment, the differential rotation TCYLACi based on which the differential rotation average value TCLAVE of the cylinder #i is calculated is the current combustion stroke cylinder #i.
The engine rotation speed TCYLi corresponding to cylinder # i-1 one combustion stroke before the engine rotation speed TCYLi corresponding to
Calculated by subtracting -1. Therefore, a cylinder having a lower differential rotation average value TCLAVE as compared with the other cylinders is a cylinder having a lower combustion pressure and a smaller average output torque than the other cylinders. Average rotational difference TCL
A cylinder with a high AVE has a higher combustion pressure than other cylinders and a higher average output torque. Accordingly, the ignition timing for the cylinder with the lowest differential rotation average value TCLAVE is corrected in the direction in which the output torque increases, that is, toward the advanced angle, and the ignition timing for the cylinder with the highest differential rotation average value TCLAVE is adjusted in the direction in which the output torque decreases. In other words, the output torque for each cylinder is made uniform by repeating the process for correcting the retard side.

【0040】すなわち、ECU40は、本発明に係る回
転状態量検出手段、気筒判別手段、アイドル判別手段、
差回転状態量算出手段、差回転状態量平均値算出手段、
差回転変動量積算値算出手段、燃料噴射制御手段、点火
時期制御手段の機能を有し、具体的には、図1〜図7に
示す各ルーチンによって、各手段の機能を実現する。
That is, the ECU 40 includes the rotational state quantity detecting means, the cylinder determining means, the idling determining means,
Difference rotation state amount calculation means, difference rotation state amount average value calculation means,
It has the functions of the differential rotation variation integrated value calculation means, the fuel injection control means, and the ignition timing control means. Specifically, the functions of each means are realized by each routine shown in FIGS.

【0041】以下、ECU40によって実行される本発
明のアイドル安定化制御に係わる処理について、図1〜
図7に示すフローチャートに従って説明する。
Hereinafter, the processing relating to the idling stabilization control of the present invention executed by the ECU 40 will be described with reference to FIGS.
This will be described with reference to the flowchart shown in FIG.

【0042】先ず、イグニッションスイッチ52がON
され、ECU40に電源が投入されると、システムがイ
ニシャライズされ、バックアップRAM44に格納され
ている各種学習値等のデータを除く、各フラグ、各カウ
ンタ類が初期化される。そして、エンジンが起動する
と、クランク角センサ32からのクランクパルス入力毎
に、図5に示す気筒判別/エンジン回転速度算出ルーチ
ンが実行される。
First, the ignition switch 52 is turned on.
Then, when the power is supplied to the ECU 40, the system is initialized, and each flag and each counter are initialized except for data such as various learning values stored in the backup RAM 44. Then, when the engine is started, a cylinder discrimination / engine rotation speed calculation routine shown in FIG. 5 is executed every time a crank pulse is input from the crank angle sensor 32.

【0043】この気筒判別/エンジン回転速度算出ルー
チンでは、エンジン運転に伴いクランクロータ31が回
転してクランク角センサ32からのクランクパルスが入
力されると、先ず、ステップS1で、今回入力されたク
ランクパルスがθ1,θ2,θ3の何れのクランク角に
対応する信号かを気筒判別センサ35からの気筒判別パ
ルスの入力パターンに基づいて識別し、ステップS2
で、クランクパルスと気筒判別パルスとの入力パターン
から現在の燃焼行程気筒、点火対象気筒、及び燃料噴射
対象気筒等の気筒判別を行う。
In this cylinder discriminating / engine rotational speed calculating routine, when the crank rotor 31 rotates and the crank pulse is inputted from the crank angle sensor 32 in accordance with the engine operation, first, in step S1, the presently inputted crank is inputted. Whether the pulse corresponds to the crank angle of θ1, θ2, or θ3 is identified based on the input pattern of the cylinder discrimination pulse from the cylinder discrimination sensor 35, and step S2 is performed.
Then, the cylinders such as the current combustion stroke cylinder, the ignition target cylinder, and the fuel injection target cylinder are determined from the input pattern of the crank pulse and the cylinder determination pulse.

【0044】すなわち、図8のタイムチャートに示すよ
うに、例えば、前回クランクパルスが入力してから今回
クランクパルスが入力されるまでの間に気筒判別パルス
入力が有れば、今回のクランクパルスはθ1クランクパ
ルスであると識別でき、更に次回入力されるクランクパ
ルスはθ2クランクパルスと識別できる。
That is, as shown in the time chart of FIG. 8, for example, if there is a cylinder discrimination pulse input between the previous crank pulse input and the present crank pulse input, the current crank pulse is The crank pulse can be identified as a θ1 crank pulse, and the crank pulse input next time can be identified as a θ2 crank pulse.

【0045】また、前回と今回とのクランクパルス入力
間に気筒判別パルス入力が無く、前々回と前回のクラン
クパルス入力間に気筒判別パルス入力が有ったときに
は、今回のクランクパルスはθ2クランクパルスと識別
でき、次回入力されるクランクパルスはθ3クランクパ
ルスと識別できる。また、前回と今回との間、及び前々
回と前回とのクランクパルス入力間に、何れも気筒判別
パルス入力が無いときには、今回入力されたクランクパ
ルスはθ3クランクパルスと識別でき、次回入力される
クランクパルスはθ1クランクパルスと識別できる。
When there is no cylinder discrimination pulse input between the previous and current crank pulse inputs and there is a cylinder discrimination pulse input between the last two previous and previous crank pulse inputs, the current crank pulse becomes the θ2 crank pulse. The crank pulse input next time can be identified as the θ3 crank pulse. Further, when there is no cylinder discrimination pulse input between the previous and current times, and between the last and last crank pulse inputs, the currently input crank pulse can be identified as the θ3 crank pulse, and the next input crank pulse can be identified. The pulse can be identified as a θ1 crank pulse.

【0046】ここで、本実施の形態における4サイクル
4気筒のエンジン1では、燃焼行程は#1→#3→#2
→#4の気筒順であり、図8のタイムチャートに示すよ
うに、気筒判別パルス出力時の今回(現在)の燃焼行程
気筒CYLに対し、点火対象気筒は圧縮上死点を迎える
(CYL+1)気筒、このときの燃料噴射対象気筒は、
その2つ後の(CYL+3)気筒となる。
Here, in the four-cycle four-cylinder engine 1 according to the present embodiment, the combustion stroke is # 1 → # 3 → # 2
As shown in the time chart of FIG. 8, the cylinder to be ignited reaches the compression top dead center with respect to the current (current) combustion stroke cylinder CYL when the cylinder discrimination pulse is output (CYL + 1). The cylinder, the fuel injection target cylinder at this time,
The next two cylinders are (CYL + 3).

【0047】従って、前回と今回とのクランクパルス入
力間に気筒判別パルスが3個入力(突起34bに対応す
るθ5気筒判別パルス)したときには、次の圧縮上死点
は#3気筒であり、現在の燃焼行程気筒は#1気筒、点
火対象気筒は#3気筒、燃料噴射対象気筒は、その2つ
後の#4気筒となることが判別できる。また、前回と今
回のクランクパルス入力間に気筒判別パルスが2個入力
(突起34cに対応するθ6気筒判別パルス)したとき
には、次の圧縮上死点は#4気筒であり、現在の燃焼行
程気筒は#2気筒、点火対象気筒は#4気筒、燃料噴射
対象気筒は#3気筒と判別できる。
Therefore, when three cylinder discriminating pulses are inputted (the .theta.5 cylinder discriminating pulse corresponding to the projection 34b) between the previous and current crank pulse inputs, the next top dead center is # 3 cylinder, and It can be determined that the combustion stroke cylinder is # 1 cylinder, the ignition target cylinder is # 3 cylinder, and the fuel injection target cylinder is # 4 cylinder, two cylinders after it. When two cylinder discrimination pulses are input between the previous and current crank pulse inputs (the θ6 cylinder discrimination pulse corresponding to the projection 34c), the next top dead center is # 4 cylinder, and the current combustion stroke cylinder is Can be determined as cylinder # 2, the cylinder to be ignited is cylinder # 4, and the cylinder to be injected with fuel is cylinder # 3.

【0048】また、前回と今回とのクランクパルス入力
間に気筒判別パルスが1個入力(突起34aに対応する
θ4気筒判別パルス)し、前の圧縮上死点判別が#4気
筒であったときには、次の圧縮上死点は#1気筒であ
り、現在の燃焼行程気筒は#4気筒、点火対象気筒は#
1気筒、燃料噴射気筒は#2気筒と判別できる。同様
に、前回と今回とのクランクパルス入力間に気筒判別パ
ルスが1個入力し、前の圧縮上死点判別が#3気筒であ
ったときには次の圧縮上死点は#2気筒であり、現在の
燃焼行程気筒は#3気筒、点火対象気筒は#2気筒、燃
料噴射対象気筒は#1気筒と判別できる。
When one cylinder discrimination pulse is input (the .theta.4 cylinder discrimination pulse corresponding to the protrusion 34a) between the previous and current crank pulse inputs, and the previous compression top dead center discrimination is for the # 4 cylinder. The next compression top dead center is # 1 cylinder, the current combustion stroke cylinder is # 4 cylinder, and the ignition target cylinder is #
One cylinder and the fuel injection cylinder can be determined to be # 2 cylinders. Similarly, when one cylinder discrimination pulse is input between the previous and current crank pulse inputs and the previous compression top dead center determination was # 3 cylinder, the next compression top dead center is # 2 cylinder, The current combustion stroke cylinder can be determined as # 3 cylinder, the ignition target cylinder is # 2 cylinder, and the fuel injection target cylinder is # 1 cylinder.

【0049】その後、ステップS2からステップS3へ
進み、クランクパルス入力間隔計時用タイマによって計
時された前回のクランクパルス入力から今回のクランク
パルス入力までの時間を読み出し、クランクパルス入力
間隔時間Tθ(θ1クランクパルスとθ2クランクパル
スの入力間隔時間Tθ12、θ2クランクパルスとθ3
クランクパルスの入力間隔時間Tθ23、或いはθ3ク
ランクパルスとθ1クランクパルスの入力間隔時間Tθ
31)を検出する。
Thereafter, the process proceeds from step S2 to step S3, in which the time from the previous crank pulse input to the present crank pulse input measured by the crank pulse input interval timer is read, and the crank pulse input interval time Tθ (θ1 crank time) is read. Input interval time Tθ12 between pulse and θ2 crank pulse, θ2 crank pulse and θ3
Input interval time Tθ23 of crank pulse or input interval time Tθ of θ3 crank pulse and θ1 crank pulse
31) is detected.

【0050】次いで、ステップS4へ進み、今回識別し
たクランクパルスに対応するクランクパルス間角度を読
み出し、このクランクパルス間角度とクランクパルス入
力間隔時間Tθとに基づいて現在のエンジン回転速度
(エンジン回転数)NEを算出し、RAM43の所定ア
ドレスにストアしてルーチンを抜ける。尚、クランクパ
ルス間角度は既知であり、予めROM42に固定データ
として記憶されているものであり、本実施の形態におい
ては、θ1クランクパルスとθ2クランクパルス間の角
度は32°CAであり、θ2クランクパルスとθ3クラ
ンクパルス間の角度は55°CA、θ3クランクパルス
とθ1クランクパルス間の角度は93°CAである。ま
た、エンジン始動時を考慮し、エンジン回転速度NE
は、例えば、150rpm相当以上で算出される。
Next, the routine proceeds to step S4, where the angle between the crank pulses corresponding to the crank pulse identified this time is read, and the current engine speed (engine speed) is determined based on the crank pulse angle and the crank pulse input interval time Tθ. ) NE is calculated, stored at a predetermined address in the RAM 43, and the routine exits. Note that the angle between crank pulses is known and is stored in advance as fixed data in the ROM 42. In the present embodiment, the angle between the θ1 crank pulse and the θ2 crank pulse is 32 ° CA, The angle between the crank pulse and the θ3 crank pulse is 55 ° CA, and the angle between the θ3 crank pulse and the θ1 crank pulse is 93 ° CA. In consideration of the engine start, the engine speed NE
Is calculated at, for example, 150 rpm or more.

【0051】そして、今回の燃焼行程気筒の気筒判別結
果がθ3クランクパルス入力毎に実行される図1〜図4
のアイドル安定化制御ルーチンにおいて参照され、燃焼
行程気筒CYL、及びエンジン回転速度NEの各データ
が読み出されて該当燃焼行程気筒に対応する差回転TC
YLACが算出され、この差回転TCYLACに基づい
て気筒間の出力トルクのばらつきを表すパラメータとし
ての差回転平均値TCLAVE、気筒毎の燃焼変動を表
すパラメータとしての差回転変動量積算値TCLSUM
が算出される。
The cylinder discrimination result of the present combustion stroke cylinder is executed each time a θ3 crank pulse is input.
In the idle stabilization control routine, the data of the combustion stroke cylinder CYL and the engine rotational speed NE are read out, and the differential rotation TC corresponding to the corresponding combustion stroke cylinder is read out.
YLAC is calculated, and based on the differential rotation TCYLAC, a differential rotation average value TCLAVE as a parameter representing a variation in output torque between cylinders, and a differential rotation variation integrated value TCLSUM as a parameter representing a combustion variation for each cylinder.
Is calculated.

【0052】アイドル安定化制御ルーチンでは、先ず、
ステップS51で、ISC弁10を駆動する駆動信号の
デューティ比をエンジン回転数と目標回転数との偏差に
基づいて可変し、ISC弁10の開度を制御してバイパ
ス通路9を通過する空気量を増減調整することによりエ
ンジン回転数が目標回転数に収束するよう制御する、い
わゆるISCクローズドループ制御中か否かを調べる。
In the idle stabilization control routine, first,
In step S51, the duty ratio of the drive signal for driving the ISC valve 10 is varied based on the difference between the engine speed and the target speed, and the opening of the ISC valve 10 is controlled to control the amount of air passing through the bypass passage 9. It is checked whether or not so-called ISC closed loop control is being performed to control the engine speed to converge to the target speed by increasing or decreasing the speed.

【0053】そして、ISCクローズドループ制御中で
なく、現在の運転状態がアイドル運転状態でないと判別
したときには、ステップS51からステップS53へ分
岐し、演算サイクル毎にカウントアップされる計算カウ
ンタN1,N2,N3,N4を0に初期化してルーチン
を抜ける。また、ISCクローズドループ制御中のとき
には、ステップS51からステップS52へ進み、所定
時間毎或いは演算サイクル毎のエンジン回転数の変動幅
(回転偏差)の絶対値|ΔN|を設定値NSと比較し、
現在の運転状態がISCクローズドループ制御中であっ
ても、例えば減速時等の過渡状態でないか否かを確認す
る。
When it is determined that the ISC closed loop control is not being performed and the current operation state is not the idle operation state, the process branches from step S51 to step S53, and the calculation counters N1, N2 are counted up in each operation cycle. Initialize N3 and N4 to 0 and exit the routine. When the ISC closed loop control is being performed, the process proceeds from step S51 to step S52, where the absolute value | ΔN | of the fluctuation range (rotational deviation) of the engine speed at every predetermined time or every operation cycle is compared with a set value NS.
Even if the current operation state is under the ISC closed loop control, it is checked whether the current operation state is not a transient state such as a time of deceleration.

【0054】その結果、|ΔN|>NSであり、ISC
クローズドループ制御中であっても過渡状態にある場合
には、ステップS52から前述のステップS53を経て
ルーチンを抜け、|ΔN|≦NSであり、ISCクロー
ズドループ制御中で過渡状態でない通常の停車状態での
アイドル運転中である場合には、ステップS52からス
テップS54以降へ進み、燃焼行程気筒に対応する差回
転TCYLACを所定の演算サイクル数で算出した後、
差回転TCYLACを平均した差回転平均値TCLAV
E、差回転TCYLACと差回転平均値TCLAVEと
の差の絶対値を積算した差回転変動量積算値TCLSU
Mを算出し、差回転平均値TCLAVEに基づいて点火
時期補正量を設定するともに、差回転変動量積算値TC
LSUMに基づいて燃料噴射補正量を設定する処理を行
う。
As a result, | ΔN |> NS and ISC
If the vehicle is in the transient state even during the closed loop control, the routine exits from the step S52 through the above-described step S53, and | ΔN | ≦ NS. If the engine is idling at step S52, the process proceeds from step S52 to step S54 and thereafter, and after calculating the differential rotation TCYLAC corresponding to the combustion stroke cylinder with a predetermined number of operation cycles,
Differential rotation average value TCLAV obtained by averaging differential rotation TCYLAC
E, a differential rotation variation integrated value TCLSU obtained by integrating the absolute value of the difference between the differential rotation TCYLAC and the differential rotation average value TCLAVE.
M is calculated, the ignition timing correction amount is set based on the differential rotation average value TCLAVE, and the differential rotation fluctuation integrated value TC
A process for setting a fuel injection correction amount based on the LSUM is performed.

【0055】すなわち、ステップS54で、気筒判別/
エンジン回転速度算出ルーチンにおいて気筒判別された
今回の燃焼行程気筒データCYLを読み出し、現在の燃
焼行程気筒が#1気筒か否かを調べる。そして、CYL
=1すなわち現在の燃焼行程気筒が#1気筒である場合
には、ステップS55へ進んで、気筒判別/エンジン回
転数算出ルーチンによりθ2クランクパルスとθ3クラ
ンクパルス間の入力間隔時間Tθ23に基づいて算出さ
れたBTDCθ2,θ3間のエンジン回転速度NEを読
み出し、計算カウンタN1による今回の演算サイクルで
の燃焼行程気筒#1に対応するエンジン回転速度TCY
L1(N1)とする(TCYL1(N1)←NE)。
That is, in step S54, the cylinder discrimination /
The current combustion stroke cylinder data CYL determined by the cylinder in the engine rotation speed calculation routine is read, and it is checked whether the current combustion stroke cylinder is # 1 cylinder. And CYL
= 1, that is, if the current combustion stroke cylinder is the # 1 cylinder, the routine proceeds to step S55, where the cylinder is calculated based on the input interval time Tθ23 between the θ2 crank pulse and the θ3 crank pulse by the cylinder determination / engine speed calculation routine. The engine speed NE between BTDC θ2 and θ3 is read, and the engine speed TCY corresponding to the combustion stroke cylinder # 1 in the current calculation cycle by the calculation counter N1.
L1 (N1) (TCYL1 (N1) ← NE).

【0056】次に、ステップS56へ進み、今回の演算
サイクルにおける燃焼行程気筒#1に対応するエンジン
回転速度TCYL1(N1)から1燃焼行程前の#4気
筒に対応するエンジン回転速度TCYL4(N1)を減
算し、気筒間における所定クランク角毎のエンジン回転
速度の変化、すなわち現在の燃焼行程気筒である#1気
筒に対応する差回転TCYLAC1(N1)を算出する
(TCYLAC1(N1)←TCYL1(N1)−TC
YL4(N1))。
Next, the routine proceeds to step S56, in which the engine rotation speed TCYL4 (N1) corresponding to the # 4 cylinder one combustion stroke earlier than the engine rotation speed TCYL1 (N1) corresponding to the combustion stroke cylinder # 1 in the current calculation cycle. Is subtracted to calculate the change in the engine rotation speed for each predetermined crank angle between the cylinders, that is, the differential rotation TCYLAC1 (N1) corresponding to the current combustion stroke cylinder # 1 cylinder (TCYLAC1 (N1) ← TCYL1 (N1) ) -TC
YL4 (N1)).

【0057】続くステップS57では、計算カウンタN
1をカウントアップし(N1←N1+1)、ステップS
58で計算カウンタN1が差回転TCYLAC1(N
1)の平均値を演算するに必要なデータ数を得られるサ
イクル数に達したか否かを調べる。本実施の形態では、
差回転TCYLAC1(N1)の10個のデータの平均
値を演算するため、ステップS58でN1<10のとき
には、ルーチンを抜けて、差回転TCYLAC1(N
1)のデータ取得を続行し、N1=10に達したとき、
ステップS59へ進む。
In the following step S57, the calculation counter N
1 is counted up (N1 ← N1 + 1), and step S is performed.
At 58, the calculation counter N1 sets the differential rotation TCYLAC1 (N
It is checked whether or not the number of cycles required to obtain the number of data required to calculate the average value of 1) has been reached. In the present embodiment,
In order to calculate the average value of the ten data of the differential rotation TCYLAC1 (N1), when N1 <10 in step S58, the routine exits and the differential rotation TCYLAC1 (N1) is exited.
Continue the data acquisition of 1), and when N1 = 10,
Proceed to step S59.

【0058】ステップS59では、差回転TCYLAC
1(N1)をN1=1〜10について総和した値を10
で除算して#1気筒の差回転平均値TCLAVE1を算
出し(TCLAVE1←Σ(TCYLAC1(N1))
/10;N1=1〜10)、また、差回転TCYLAC
1(N1)と差回転平均値TCLAVE1との差の絶対
値をN1=1〜10について積算して差回転変動量積算
値TCLSUM1を算出する(TCLSUM1←Σ(|
TCYLAC1(N1)−TCLAVE1|);N1=
1〜10)。
In step S59, the differential rotation TCYLAC
The value obtained by summing 1 (N1) for N1 = 1 to 10 is 10
To calculate the differential rotation average value TCLAVE1 of the # 1 cylinder (TCLAVE1 ← Σ (TCYLAC1 (N1)).
/ 10; N1 = 1 to 10), and differential rotation TCYLAC
1 (N1) and the absolute value of the difference between the differential rotation average value TCLAVE1 are integrated for N1 = 1 to 10 to calculate a differential rotation fluctuation integrated value TCLSUM1 (TCLSUM1 ← Σ (|
TCYLAC1 (N1) −TCLAVE1 |); N1 =
1 to 10).

【0059】次いでステップS60へ進み、#1気筒に
ついての10サイクルの演算が終了したことを示す#1
気筒10サイクル終了フラグFCALC1をセットする
と(FCALC1←1)、ステップS82へ進み、#1
〜#4の各気筒についての10サイクルの演算が終了し
たことを示す各フラグFCALC1,FCALC2,F
CALC3,FCALC4を参照する。そして、全ての
フラグが1にセットされており、#1〜#4気筒の全て
の気筒で10サイクルの演算が終了しているときには、
ステップS83以降の処理へ進み、フラグFCALC
1,FCALC2,FCALC3,FCALC4のう
ち、一つでも1にセットされていないフラグがある場
合、すなわち、10サイクルの演算が終了していない気
筒がある場合には、ルーチンを抜けて演算を続行する。
Then, the process proceeds to a step S60, wherein # 1 indicates that the calculation of the 10th cycle for the # 1 cylinder has been completed.
When the cylinder 10 cycle end flag FCALC1 is set (FCALC1 ← 1), the process proceeds to step S82, where # 1 is set.
Flags FCALC1, FCALC2, and FCALC1 indicating that the calculation of 10 cycles for each cylinder of # 4 to # 4 has been completed.
See CALC3, FCALC4. When all the flags are set to 1 and the calculation of 10 cycles is completed in all the cylinders # 1 to # 4,
Proceeds to the processing of step S83 and thereafter, and sets the flag FCALC
If at least one of 1, FCALC2, FCALC3, and FCALC4 has a flag that is not set to 1, that is, if there is a cylinder for which the computation of 10 cycles has not been completed, the routine is exited and the computation is continued. .

【0060】また、ステップS54において、CYL≠
1で現在の燃焼行程気筒が#1気筒でない場合には、ス
テップS61へ分岐してCYL=2すなわち現在の燃焼
行程気筒が#2気筒であるか否かを調べる。そして、C
YL=2であり、現在の燃焼行程気筒が#2気筒である
場合には、ステップS62へ進んで、BTDCθ2,θ
3間のエンジン回転速度NEを読み出し、このエンジン
回転速度NEを計算カウンタN2による今回の演算サイ
クルでの燃焼行程気筒#2に対応するエンジン回転速度
TCYL2(N2)とする(TCYL2(N2)←N
E)。
In step S54, CYL #
If 1, the current combustion stroke cylinder is not the # 1 cylinder, the flow branches to step S61 to check whether CYL = 2, that is, whether the current combustion stroke cylinder is the # 2 cylinder. And C
If YL = 2 and the current combustion stroke cylinder is # 2 cylinder, the process proceeds to step S62, where BTDC θ2, θBT
The engine speed NE is read between three engine speeds NE, and the engine speed NE is set as the engine speed TCYL2 (N2) corresponding to the combustion stroke cylinder # 2 in the current calculation cycle by the calculation counter N2 (TCYL2 (N2) ← N
E).

【0061】次に、ステップS63へ進み、燃焼行程気
筒#2に対応するエンジン回転速度TCYL2(N2)
から、1燃焼行程前の#3気筒に対応するエンジン回転
速度TCYL3(N2)を減算し、現在の燃焼行程気筒
である#2気筒に対応する差回転TCYLAC2(N
2)を算出する(TCYLAC2(N2)←TCYL2
(N2)−TCYL3(N2))。
Then, the process proceeds to a step S63, wherein the engine speed TCYL2 (N2) corresponding to the combustion stroke cylinder # 2
The engine rotation speed TCYL3 (N2) corresponding to the # 3 cylinder one combustion stroke before is subtracted from the engine rotation speed TCYL3 (N2), and the difference rotation TCYLAC2 (N) corresponding to the # 2 cylinder which is the current combustion stroke cylinder is subtracted.
2) is calculated (TCYLAC2 (N2) ← TCYL2
(N2) -TCYL3 (N2)).

【0062】続くステップS64では、計算カウンタN
2をカウントアップし(N2←N2+1)、ステップS
65で計算カウンタN2が10に達したか否かを調べ
る。そして、N2<10のときには、ルーチンを抜けて
データ取得を続行し、N2=10のとき、ステップS6
6へ進んで、差回転TCYLAC2(N2)をN2=1
〜10について総和した値を10で除算して#2気筒の
差回転平均値TCLAVE2を算出し(TCLAVE2
←Σ(TCYLAC2(N2))/10;N2=1〜1
0)、また、差回転TCYLAC2(N2)と差回転平
均値TCLAVE2との差の絶対値をN2=1〜10に
ついて積算した差回転変動量積算値TCLSUM2を算
出する(TCLSUM2←Σ(|TCYLAC2(N
2)−TCLAVE2|))。
In the following step S64, the calculation counter N
2 is counted up (N2 ← N2 + 1), and step S
At 65, it is checked whether or not the calculation counter N2 has reached 10. When N2 <10, the process exits the routine and continues data acquisition. When N2 = 10, the process proceeds to step S6.
6, the differential rotation TCYLAC2 (N2) is set to N2 = 1.
By dividing the sum of the values for to 10 by 10 to calculate the differential rotation average value TCLAVE2 of the # 2 cylinder (TCLAVE2
← Σ (TCYLAC2 (N2)) / 10; N2 = 1 to 1
0), and a differential rotation fluctuation integrated value TCLSUM2 obtained by integrating the absolute value of the difference between the differential rotation TCYLAC2 (N2) and the differential rotation average value TCLAVE2 for N2 = 1 to 10 is calculated (TCLSUM2 ← Σ (| TCYLAC2 ( N
2) -TCLAVE2 |)).

【0063】次に、ステップS67へ進み、#2気筒に
ついての10サイクルの演算が終了したことを示す#2
気筒10サイクル終了フラグFCALC2をセットする
と(FCALC2←1)、ステップS82で、各フラグ
FCALC1〜FCALC4を参照し、全てのフラグが
1にセットされている場合には、ステップS83以降の
処理へ進み、一つでも1にセットされていないフラグが
ある場合、ルーチンを抜けて演算を続行する。
Next, the process proceeds to a step S67, in which # 2 indicates that the calculation of the 10th cycle for the # 2 cylinder is completed.
When the cylinder 10 cycle end flag FCALC2 is set (FCALC2 ← 1), in step S82, each flag FCALC1 to FCALC4 is referred to. If all the flags are set to 1, the process proceeds to step S83 and subsequent steps. If at least one flag is not set to 1, the routine is exited and the operation is continued.

【0064】また、ステップS61においてCYL≠2
であり、現在の燃焼行程気筒が#2気筒でない場合に
は、ステップS61からステップS68へ分岐し、CY
L=3すなわち現在の燃焼気筒が#3気筒か否かを調べ
る。そして、CLY=3の場合、ステップS69〜S7
2を介して、同様に、#3気筒に対応するエンジン回転
速度TCYL3(N3)から1燃焼行程前の#1気筒に
対応するエンジン回転速度TCYL1(N3)を減算し
て、#3気筒に対応する差回転TCYLAC3(N3)
をN3=1〜10の10サイクル演算する。
In step S61, CYL ≠ 2
If the current combustion stroke cylinder is not the # 2 cylinder, the process branches from step S61 to step S68 to execute CY.
It is checked whether L = 3, that is, whether the current combustion cylinder is # 3 cylinder. If CLY = 3, steps S69 to S7
Similarly, the engine rotation speed TCYL1 (N3) corresponding to the # 1 cylinder one combustion stroke before is subtracted from the engine rotation speed TCYL3 (N3) corresponding to the # 3 cylinder via the engine rotation speed TCYL1 (N3) corresponding to the cylinder # 3. Differential rotation TCYLAC3 (N3)
Is calculated for 10 cycles of N3 = 1 to 10.

【0065】次いで、ステップS73へ進み、差回転T
CYLAC3(N3)をN3=1〜10について総和し
た値を10で除算して#3気筒の差回転平均値TCLA
VE3を算出し(TCLAVE3←Σ(TCYLAC3
(N3))/10;N3=1〜10)、また、差回転T
CYLAC3(N3)と差回転平均値TCLAVE3と
の差の絶対値をN3=1〜10について積算した差回転
変動量積算値TCLSUM3を算出すると(TCLSU
M3←Σ(|TCYLAC3(N3)−TCLAVE3
|))、ステップS74で、#3気筒についての10サ
イクルの演算が終了したことを示す#3気筒10サイク
ル終了フラグFCALC3をセットし(FCALC3←
1)、ステップS82へ進む。
Next, the routine proceeds to step S73, where the differential rotation T
The value obtained by summing CYLAC3 (N3) for N3 = 1 to 10 is divided by 10 to obtain the differential rotation average value TCLA of the # 3 cylinder.
VE3 is calculated (TCLAVE3 ← Σ (TCYLAC3
(N3)) / 10; N3 = 1 to 10) and the differential rotation T
When a differential rotation fluctuation amount integrated value TCLSUM3 is calculated by integrating the absolute value of the difference between CYLAC3 (N3) and the differential rotation average value TCLAVE3 for N3 = 1 to 10, (TCLSU
M3 ← Σ (| TCYLAC3 (N3) -TCLAVE3
|)), In step S74, a # 3 cylinder 10-cycle end flag FCALC3 indicating that the calculation of 10 cycles for the # 3 cylinder has been completed is set (FCALC3 ←←).
1) The process proceeds to step S82.

【0066】更に、ステップS68においてCYL≠3
であり、現在の燃焼行程気筒が#3気筒でない場合に
は、ステップS68からステップS75へ分岐し、CY
L=4すなわち現在の燃焼気筒が#4気筒か否かを調べ
る。そして、CYL≠4の場合すなわち気筒判別がなさ
れていない場合には、前述のステップS53へジャンプ
して計算カウンタN1〜N4を初期化してルーチンを抜
け、CYL=4の場合、ステップS76〜S79を介し
て#4気筒に対応するエンジン回転速度TCYL4(N
4)から1燃焼行程前の#2気筒に対応するエンジン回
転速度TCYL2(N4)を減算して、#4気筒に対応
する差回転TCYLAC4(N4)をN4=1〜10の
10サイクル演算する。
Further, in step S68, CYL ≠ 3
If the current combustion stroke cylinder is not the # 3 cylinder, the process branches from step S68 to step S75, where CY
It is checked whether L = 4, that is, whether the current combustion cylinder is # 4 cylinder. If CYL ≠ 4, that is, if the cylinder discrimination has not been performed, the process jumps to step S53 to initialize the calculation counters N1 to N4 and exit from the routine. If CYL = 4, the process proceeds to steps S76 to S79. The engine rotation speed TCYL4 (N
The engine rotation speed TCYL2 (N4) corresponding to the # 2 cylinder one combustion stroke before is subtracted from 4), and the differential rotation TCYLAC4 (N4) corresponding to the # 4 cylinder is calculated for 10 cycles of N4 = 1 to 10.

【0067】そして、ステップS80で、差回転TCY
LAC4(N4)をN4=1〜10について総和した値
を10で除算して#4気筒の差回転平均値TCLAVE
4を算出し(TCLAVE4←Σ(TCYLAC4(N
4))/10;N4=1〜10)、また、差回転TCY
LAC4(N4)と差回転平均値TCLAVE4との差
の絶対値をN4=1〜10について積算した差回転変動
量積算値TCLSUM4を算出する(TCLSUM4←
Σ(|TCYLAC4(N4)−TCLAVE4
|))。そして、ステップS81で#4気筒についての
10サイクルの演算が終了したことを示す#4気筒10
サイクル終了フラグFCALC4をセットし(FCAL
C4←1)、ステップS82へ進む。
Then, in step S80, the differential rotation TCY
The value obtained by summing LAC4 (N4) for N4 = 1 to 10 is divided by 10 to obtain a differential rotation average value TCLAVE of the # 4 cylinder.
4 (TCLAVE4 ← Σ (TCYLAC4 (N
4)) / 10; N4 = 1 to 10), and differential rotation TCY
A differential rotation fluctuation amount integrated value TCSUM4 is calculated by integrating the absolute value of the difference between LAC4 (N4) and the differential rotation average value TCLAVE4 for N4 = 1 to 10 (TCLSUM4 ←
Σ (| TCYLAC4 (N4) -TCLAVE4
|)). Then, in step S81, it is indicated that the calculation of ten cycles for the # 4 cylinder has been completed.
Set the cycle end flag FCALC4 (FCAL
C4 ← 1), and proceed to step S82.

【0068】以上により、図9に示すように各気筒に対
応する差回転TCYLAC1〜4が算出されて#1〜#
4気筒の全てについて差回転TCYLAC1〜4の10
サイクルの演算が終了し、平均値TCLAVE1〜4、
差回転変動量積算値TCLSUM1〜4が算出される
と、ステップS82で、全てのフラグFCALC1〜F
CALC4が1であるため、ステップS83以降へ進
む。
As described above, the differential rotations TCYLAC1 to TCYLAC4 corresponding to each cylinder are calculated as shown in FIG.
10 of differential rotation TCYLAC1 to 4 for all four cylinders
The cycle calculation is completed, and the average values TCLAVE1 to TCLAVE4,
When the differential rotation fluctuation amount integrated values TCLSUM1 to TCLSUM4 have been calculated, in step S82, all the flags FCCALC1 to FCALCF
Since CALC4 is 1, the process proceeds to step S83 and subsequent steps.

【0069】ステップS83以降の処理では、ステップ
S83〜S96で、各気筒毎の差回転平均値TCLAV
E1〜4について、最も低い気筒と最も高い気筒とを調
べ、差回転平均値TCLAVEの最も低い気筒と最も高
い気筒とに対し、それぞれ点火時期を進角、遅角させる
ための気筒別の点火時期補正量を設定値減少、又は増加
修正して、気筒別点火時期補正量を随時更新する。ま
た、ステップS97〜S105で、各気筒毎の差回転変
動量積算値TCLSUM1〜4について、最小の気筒と
最大の気筒とを調べ、最小の気筒と最大の気筒とに対
し、それぞれ燃料噴射量を減量補正、増量補正するため
の気筒別の燃料噴射補正量を設定値減少、又は増加修正
して、気筒別燃料噴射補正量を随時更新する。
In the processing after step S83, in steps S83 to S96, the differential rotation average value TCLAV for each cylinder is set.
For E1 to E4, the lowest cylinder and the highest cylinder are examined, and the ignition timing of each cylinder for advancing and retarding the ignition timing for the cylinder having the lowest differential rotation average value TCLAVE and the cylinder having the highest difference, respectively. The correction amount is corrected by decreasing or increasing the set value, and the ignition timing correction amount for each cylinder is updated as needed. Further, in steps S97 to S105, the minimum cylinder and the maximum cylinder are checked for the differential rotation fluctuation amount integrated values TCLSUM1 to TCLSUM1 to 4 for each cylinder, and the fuel injection amounts are respectively determined for the minimum cylinder and the maximum cylinder. The fuel injection correction amount for each cylinder for the decrease correction and the increase correction is corrected by decreasing or increasing the set value, and the fuel injection correction amount for each cylinder is updated as needed.

【0070】すなわち、例えば図10に示すように、#
1気筒の差回転TCYLAC1の変動が大きい場合、こ
の変動は、最終的に差回転TCYLAC1と差回転平均
値TCLAVE1との差の絶対値を積算した差回転変動
量積算値TCLSUM1に現れる。このような場合、#
1気筒の空燃比が薄いために差回転の変動が発生するこ
とがシミュレーション或いは実験等によって確認されて
おり、従って、この場合には、#1気筒に供給する燃料
を増量して空燃比をリッチ方向に補正することで、燃焼
状態を改善して安定性を向上させる。
That is, for example, as shown in FIG.
When the fluctuation of the differential rotation TCYLAC1 of one cylinder is large, this fluctuation finally appears in a differential rotation fluctuation integrated value TCLSUM1 obtained by integrating the absolute value of the difference between the differential rotation TCYLAC1 and the differential rotation average value TCLAVE1. In such a case, #
It has been confirmed by simulations or experiments that fluctuations in differential rotation occur because the air-fuel ratio of one cylinder is thin. Therefore, in this case, the amount of fuel supplied to the # 1 cylinder is increased to enrich the air-fuel ratio. By correcting in the direction, the combustion state is improved and the stability is improved.

【0071】更に、図10に示すように、#1気筒の差
回転平均値TCLAVE1に比較して#2気筒の差回転
平均値TCLAVE2が低く、#1気筒の平均出力トル
クよりも#2気筒の平均出力トルクが小さい場合、低周
波の振動が車体に発生し、乗員に不快感を与える虞があ
る。従って、#1気筒への供給燃料を増量して燃焼安定
性を向上させる処置に加え、#2気筒の点火時期を進角
させて平均出力トルクを上げることで、気筒間の出力ト
ルクを均一化し、不快な低周波振動の発生を抑制する。
Further, as shown in FIG. 10, the average differential rotational speed TCLAVE2 of the # 2 cylinder is lower than the average differential rotational speed TCLAVE1 of the # 1 cylinder, and the average output torque of the # 2 cylinder is lower than the average output torque of the # 1 cylinder. When the average output torque is small, low-frequency vibration is generated in the vehicle body, which may cause discomfort to the occupant. Accordingly, in addition to increasing the amount of fuel supplied to the # 1 cylinder and improving combustion stability, the average output torque is increased by advancing the ignition timing of the # 2 cylinder, thereby making the output torque between the cylinders uniform. , Suppresses generation of unpleasant low frequency vibration.

【0072】このため、先ず、ステップS83では、#
1気筒の差回転平均値TCLAVE1が#1〜#4気筒
の差回転平均値TCLAVE1〜4の中の最も低い値M
IN(TCLAVE1,2,3,4)であるか否かを調
べる。そして、#1気筒の差回転平均値TCLAVE1
が最も低い場合は、ステップS84で、バックアップR
AM44に学習値としてストアされている#1気筒の点
火時期補正量ADVKCL1を設定値Aだけ減少させて
更新し(ADVKCL1←ADVKCL1−A)、ステ
ップS90へ進む。
Therefore, first, in step S83, #
The differential rotation average value TCLAVE1 of one cylinder is the lowest value M among the differential rotation average values TCLAVE1 to TCLAVE1 of cylinders # 1 to # 4.
It is checked whether it is IN (TCLAVE1, 2, 3, 4). Then, the differential rotation average value TCLAVE1 of the # 1 cylinder
Is the lowest, in step S84, the backup R
The ignition timing correction amount ADVKCL1 of the # 1 cylinder stored in the AM 44 as the learned value is updated by decreasing the set value A (ADVKCL1 ← ADVKCL1-A), and the process proceeds to step S90.

【0073】バックアップRAM44にストアされてい
る#1気筒の点火時期補正量ADVKCL1、及び以下
に述べる#2〜#4気筒の点火時期補正量ADVKCL
2〜4は、本実施の形態においては、後述する図7の気
筒別点火時期制御ルーチンにおいて、クランク角換算の
点火時期θIGに対する加算項として与えられ、それぞ
れ初期値は補正無しに対応する0である。尚、点火時期
補正量ADVKCL1〜4は、乗算項として与えても良
く、その場合には、初期値は補正無しに対応する1.0
である。
The ignition timing correction amount ADVKCL1 for the # 1 cylinder stored in the backup RAM 44 and the ignition timing correction amount ADVKCL for the # 2 to # 4 cylinders described below.
In the present embodiment, 2 to 4 are given as addition terms to the crank angle converted ignition timing θIG in the cylinder-specific ignition timing control routine of FIG. 7 described later, and the initial values are 0 corresponding to no correction. is there. The ignition timing correction amounts ADVKCL1 to ADVKCL4 may be given as multiplication terms. In this case, the initial value is 1.0 corresponding to no correction.
It is.

【0074】また、ステップS83において、#1気筒
の差回転平均値TCLAVE1が最低値でない場合に
は、ステップS83からステップS85へ分岐し、#2
気筒の差回転平均値TCLAVE2が最も低い値MIN
(TCLAVE1,2,3,4)であるか否かを調べ
る。そして、#2気筒の差回転平均値TCLAVE2が
最も低い場合、ステップS86で、バックアップRAM
44に学習値としてストアされている#2気筒の点火時
期補正量ADVKCL2を設定値Aだけ減少させて更新
し(ADVKCL2←ADVKCL2−A)、ステップ
S90へ進む。
If it is determined in step S83 that the average rotational speed difference TCLAVE1 of the # 1 cylinder is not the lowest value, the process branches from step S83 to step S85, and proceeds to step # 85.
The cylinder difference rotation average TCLAVE2 is the lowest value MIN
(TCLAVE1, 2, 3, 4) is checked. If the differential rotation average value TCLAVE2 of the # 2 cylinder is the lowest, the backup RAM is determined in step S86.
The ignition timing correction amount ADVKCL2 of the # 2 cylinder stored in the learning value 44 is reduced by the set value A and updated (ADVKCL2 ← ADVKCL2-A), and the process proceeds to step S90.

【0075】一方、ステップS85において、#2気筒
の差回転平均値TCLAVE2が最低値でない場合に
は、ステップS85からステップS87へ分岐し、#3
気筒の差回転平均値TCLAVE3が最も低い値MIN
(TCLAVE1,2,3,4)であるか否かを調べ
る。そして、#3気筒の差回転平均値TCLAVE3が
最も低い場合、ステップS88で、バックアップRAM
44に学習値としてストアされている#3気筒の点火時
期補正量ADVKCL3を設定値Aだけ減少させて更新
し(ADVKCL3←ADVKCL3−A)、ステップ
S90へ進む。
On the other hand, if it is determined in step S85 that the differential rotation average value TCLAVE2 of the # 2 cylinder is not the lowest value, the flow branches from step S85 to step S87 to # 3.
The cylinder difference rotation average TCLAVE3 is the lowest value MIN
(TCLAVE1, 2, 3, 4) is checked. If the differential rotation average value TCLAVE3 of the # 3 cylinder is the lowest, the backup RAM is determined in step S88.
The ignition timing correction amount ADVKCL3 of the # 3 cylinder stored as a learning value in 44 is updated by decreasing the set value A (ADVKCL3 ← ADVKCL3-A), and the routine proceeds to step S90.

【0076】更に、ステップS87で#3気筒の差回転
平均値TCLAVE3が最低値でない場合、この場合に
は#4気筒の差回転平均値TCLAVE4が最も低い値
となるため、ステップS87からステップS89へ進ん
で、バックアップRAM44に学習値としてストアされ
ている#4気筒の点火時期補正量ADVKCL4を設定
値Aだけ減少させて更新し(ADVKCL4←ADVK
CL4−A)、ステップS90へ進む。
Further, if the average rotational speed difference TCLAVE3 of the # 3 cylinder is not the lowest value in step S87, the average rotational speed difference TCLAVE4 of the # 4 cylinder becomes the lowest value in this case, so that the process proceeds from step S87 to step S89. Then, the ignition timing correction amount ADVKCL4 of the # 4 cylinder stored as the learning value in the backup RAM 44 is reduced and updated by the set value A (ADVKCL4 ← ADVK).
CL4-A), and proceeds to step S90.

【0077】ステップS90では、#1気筒の差回転平
均値TCLAVE1が#1〜#4気筒の差回転平均値T
CLAVE1〜4の中の最も高い値MAX(TCLAV
E1,2,3,4)であるか否かを調べ、#1気筒の差
回転平均値TCLAVE1が最も高い場合、ステップS
91でバックアップRAM44に学習値としてストアさ
れている#1気筒の点火時期補正量ADVKCL1を設
定値Aだけ増加させて更新し(ADVKCL1←ADV
KCL1+A)、ステップS97へ進む。
In step S90, the differential rotation average TCLAVE1 of the # 1 cylinder is changed to the differential rotation average T of the # 1 to # 4 cylinders.
The highest value MAX (TCLAV of CLAVE1 to 4)
E1, 2, 3, 4), and if the differential rotation average value TCLAVE1 of the # 1 cylinder is the highest, step S
At 91, the ignition timing correction amount ADVKCL1 of the # 1 cylinder stored as a learning value in the backup RAM 44 is updated by increasing the set value A (ADVKCL1 ← ADV).
KCL1 + A), and proceeds to step S97.

【0078】また、ステップS90で#1気筒の差回転
平均値TCLAVE1が最高値でない場合には、ステッ
プS90からステップS92へ分岐し、#2気筒の差回
転平均値TCLAVE2が最も高い値MAX(TCLA
VE1,2,3,4)であるか否かを調べる。そして、
#2気筒の差回転平均値TCLAVE2が最も高い場
合、ステップS93でバックアップRAM44に学習値
としてストアされている#2気筒の点火時期補正量AD
VKCL2を設定値Aだけ増加させて更新し(ADVK
CL2←ADVKCL2+A)、ステップS97へ進
む。
If it is determined in step S90 that the average rotational speed difference TCLAVE1 of the # 1 cylinder is not the highest value, the process branches from step S90 to step S92, and the average rotational speed difference TCLAVE2 of the # 2 cylinder is the highest value MAX (TCLA).
VE1, 2, 3, 4). And
When the differential rotation average value TCLAVE2 of the # 2 cylinder is the highest, the ignition timing correction amount AD of the # 2 cylinder stored as the learning value in the backup RAM 44 in step S93.
VKCL2 is increased by the set value A and updated (ADVK
CL2 ← ADVKCL2 + A), and proceeds to step S97.

【0079】一方、ステップS92で#2気筒の差回転
平均値TCLAVE2が最高値でない場合には、ステッ
プS92からステップS94へ分岐し、#3気筒の差回
転平均値TCLAVE3が最も高い値MAX(TCLA
VE1,2,3,4)であるか否かを調べる。そして、
#3気筒の差回転平均値TCLAVE3が最も高い場
合、ステップS95でバックアップRAM44に学習値
としてストアされている#3気筒の点火時期補正量AD
VKCL3を設定値Aだけ増加させて更新し(ADVK
CL3←ADVKCL3+A)、ステップS97へ進
む。
On the other hand, if the average rotational speed difference TCLAVE2 of the # 2 cylinder is not the highest value in step S92, the process branches from step S92 to step S94, and the differential rotational speed average value TCLAVE3 of the # 3 cylinder is the highest value MAX (TCLA).
VE1, 2, 3, 4). And
If the differential rotation average value TCLAVE3 of the # 3 cylinder is the highest, the ignition timing correction amount AD of the # 3 cylinder stored as the learning value in the backup RAM 44 in step S95.
VKCL3 is increased by the set value A and updated (ADVK3
CL3 ← ADVKCL3 + A), and proceeds to step S97.

【0080】また、ステップS94において、#3気筒
の差回転平均値TCLAVE3が最高値でない場合に
は、#4気筒の差回転平均値TCLAVE4が最も高い
値であるため、ステップS94からステップS96へ進
み、バックアップRAM44に学習値としてストアされ
ている#4気筒の点火時期補正量ADVKCL4を設定
値Aだけ増加させて更新し(ADVKCL4←ADVK
CL4+A)、ステップS97へ進む。
If it is determined in step S94 that the differential rotation average value TCLAVE3 of the # 3 cylinder is not the highest value, the process proceeds from step S94 to step S96 because the differential rotation average value TCLAVE4 of the # 4 cylinder is the highest value. Then, the ignition timing correction amount ADVKCL4 of the # 4 cylinder stored as a learning value in the backup RAM 44 is updated by increasing the set value A (ADVKCL4 ← ADVK).
CL4 + A), and proceeds to step S97.

【0081】ステップS97以降では、各気筒毎の差回
転変動量積算値TCLSUM1〜4に基づいて、バック
アップRAM44にストアされている気筒別燃料噴射補
正量INJKCL1〜4を設定・更新する。本実施の形
態においては、気筒別燃料噴射補正量INJKCL1〜
4は、後述する図6の気筒別燃料噴射制御ルーチンにお
いて、燃料噴射量を定める燃料噴射パルス幅Tiに対す
る加算項として与えられ、それぞれ初期値は補正無しに
対応する0である。尚、気筒別燃料噴射補正量INJK
CL1〜4は、乗算項として与えても良く(但し、後述
する燃料噴射パルス幅Tiを設定する際の有効パルス幅
(Tp×α×COEF)に対する乗算項として与えるこ
とが望ましい)、その場合には、初期値は補正無しに対
応する1.0である。
After step S97, the cylinder-by-cylinder fuel injection correction amounts INJKCL1 to INJKCL1 to 4 stored in the backup RAM 44 are set and updated based on the differential rotation fluctuation amount integrated values TCLSUM1 to TCLSUM4 for each cylinder. In the present embodiment, the cylinder-specific fuel injection correction amount INJKCL1
4 is given as an addition term to the fuel injection pulse width Ti that determines the fuel injection amount in the cylinder-by-cylinder fuel injection control routine of FIG. 6 described later, and the initial value is 0 corresponding to no correction. The cylinder-specific fuel injection correction amount INJK
CL1 to CL4 may be given as a multiplication term (however, it is desirable to give them as a multiplication term with respect to an effective pulse width (Tp × α × COEF) when setting a fuel injection pulse width Ti described later). Is 1.0, which corresponds to the initial value without correction.

【0082】このため、先ず、ステップS97で、#1
気筒の差回転変動量積算値TCLSUM1が#1〜#4
気筒の差回転変動量積算値TCLSUM1〜4の中の最
小値MIN(TCLSUM1,2,3,4)であるか否
かを調べる。そして、#1気筒の差回転変動量積算値T
CLSUM1が最小である場合、ステップS98へ進ん
でバックアップRAM44に学習値としてストアされて
いる#1気筒の燃料噴射補正量INJKCL1を設定値
Bだけ減少させて更新し(INJKCL1←INJKC
L1−B)、ステップS104へ進む。
For this reason, first, in step S97, # 1
The cylinder difference rotation fluctuation integrated value TCLSUM1 is # 1 to # 4
It is checked whether or not it is the minimum value MIN (TCLSUM1, 2, 3, 4) of the cylinder difference rotation fluctuation integrated values TCLSUM1 to TCLSUM4. Then, the differential rotation variation integrated value T of the # 1 cylinder
When CLSUM1 is the minimum, the process proceeds to step S98, in which the fuel injection correction amount INJKCL1 of the # 1 cylinder stored as the learning value in the backup RAM 44 is updated by decreasing the set value B (INJKCL1 ← INJKC).
L1-B), and proceed to step S104.

【0083】また、ステップS97で#1気筒の差回転
変動量積算値TCLSUM1が最小でない場合には、ス
テップS97からステップS99へ分岐し、#2気筒の
差回転変動量積算値TCLSUM2が最小値MIN(T
CLSUM1,2,3,4)であるか否かを調べる。そ
して、#2気筒の差回転変動量積算値TCLSUM2が
最小である場合、ステップS100でバックアップRA
M44に学習値としてストアされている#2気筒の燃料
噴射補正量INJKCL2を設定値Bだけ減少させて更
新し(INJKCL2←INJKCL2−B)、ステッ
プS104へ進む。
If it is determined in step S97 that the differential rotation fluctuation integrated value TCLSUM1 of the # 1 cylinder is not the minimum, the process branches from step S97 to step S99, and the differential rotation fluctuation integrated value TCLSUM2 of the # 2 cylinder is reduced to the minimum value MIN. (T
CLSUM1, 2, 3, 4) is checked. When the differential rotation fluctuation integrated value TCLSUM2 of the # 2 cylinder is the minimum, the backup RA is determined in step S100.
The fuel injection correction amount INJKCL2 for the # 2 cylinder stored as the learning value in M44 is updated by decreasing the set value B (INJKCL2 ← INJKCL2-B), and the process proceeds to step S104.

【0084】一方、ステップS99で#2気筒の差回転
変動量積算値TCLSUM2が最小でない場合には、ス
テップS99からステップS101へ分岐し、#3気筒
の差回転変動量積算値TCLSUM3が最小値MIN
(TCLSUM1,2,3,4)であるか否かを調べ
る。そして、#3気筒の差回転変動量積算値TCLSU
M3が最小である場合、ステップS102でバックアッ
プRAM44に学習値としてストアされている#3気筒
の燃料噴射補正量INJKCL3を設定値Bだけ減少さ
せて更新し(INJKCL3←INJKCL3−B)、
ステップS104へ進む。
On the other hand, if it is determined in step S99 that the differential rotation fluctuation integrated value TCLSUM2 of the # 2 cylinder is not the minimum, the process branches from step S99 to step S101, and the differential rotation fluctuation integrated value TCLSUM3 of the # 3 cylinder is reduced to the minimum value MIN.
(TCLSUM1, 2, 3, 4) is checked. Then, the differential rotation variation integrated value TCLSU of the # 3 cylinder is
If M3 is the minimum, the fuel injection correction amount INJKCL3 of the # 3 cylinder stored in the backup RAM 44 as the learning value is reduced by the set value B and updated in step S102 (INJKCL3 ← INJKCL3-B).
Proceed to step S104.

【0085】また、ステップS101において、#3気
筒の差回転変動量積算値TCLSUM3が最小でない場
合には、#4気筒の差回転変動量積算値TCLSUM4
が最小となるため、ステップS101からステップS1
03へ進み、バックアップRAM44に学習値としてス
トアされている#4気筒の燃料噴射補正量INJKCL
4を設定値Bだけ減少させて更新し(INJKCL4←
INJKCL4−B)、ステップS104へ進む。
If it is determined in step S101 that the differential rotation fluctuation integrated value TCLSUM3 of the # 3 cylinder is not the minimum, the differential rotation fluctuation integrated value TCLSUM4 of the # 4 cylinder is not obtained.
Is minimized, so that steps S101 to S1
03, the fuel injection correction amount INJKCL for the # 4 cylinder stored in the backup RAM 44 as the learning value.
4 is reduced by the set value B and updated (INJKCL4 ←
INJKCL4-B), and proceeds to step S104.

【0086】ステップS104では、#1気筒の差回転
変動量積算値TCLSUM1が#1〜#4気筒の差回転
変動量積算値TCLSUM1〜4の中の最大値MAX
(TCLSUM1,2,3,4)であるか否かを調べ
る。そして、#1気筒の差回転変動量積算値TCLSU
M1が最大である場合、ステップS105へ進んでバッ
クアップRAM44に学習値としてストアされている#
1気筒の燃料噴射補正量INJKCL1を設定値Bだけ
増加させて更新し(INJKCL1←INJKCL1+
B)、ステップS111で、各計算カウンタN1〜N4
を0にクリアすると共に、各フラグFCALC1〜FC
ALC4を0にクリアし、ルーチンを抜ける。
In step S104, the differential rotation fluctuation integrated value TCLSUM1 of the # 1 cylinder is the maximum value MAX among the differential rotation fluctuation integrated values TCLSUM1-4 of the # 1 to # 4 cylinders.
(TCLSUM1, 2, 3, 4) is checked. Then, the differential rotation fluctuation integrated value TCLSU of the # 1 cylinder
If M1 is the maximum, the process proceeds to step S105, where the learning value is stored in the backup RAM 44 as #
The fuel injection correction amount INJKCL1 for one cylinder is updated by increasing the set value B (INJKCL1 ← INJKCL1 +
B), at step S111, calculation counters N1 to N4
Is cleared to 0, and the flags FCALC1-FCALC
Clear ALC4 to 0 and exit the routine.

【0087】また、ステップS104で#1気筒の差回
転変動量積算値TCLSUM1が最大でない場合には、
ステップS104からステップS106へ分岐し、#2
気筒の差回転変動量積算値TCLSUM2が最大値MA
X(TCLSUM1,2,3,4)であるか否かを調べ
る。そして、#2気筒の差回転変動量積算値TCLSU
M2が最大である場合、ステップS107でバックアッ
プRAM44に学習値としてストアされている#2気筒
の燃料噴射補正量INJKCL2を設定値Bだけ増加さ
せて更新し(INJKCL2←INJKCL2+B)、
前述のステップS111を経てルーチンを抜ける。
If it is determined in step S104 that the integrated value of the differential rotation fluctuation amount TCLSUM1 of the # 1 cylinder is not the maximum,
Branching from step S104 to step S106, # 2
The cylinder difference rotation fluctuation integrated value TCLSUM2 is the maximum value MA.
It is checked whether X (TCLSUM1, 2, 3, 4). Then, the differential rotation fluctuation integrated value TCLSU of the # 2 cylinder
If M2 is the maximum, the fuel injection correction amount INJKCL2 of the # 2 cylinder stored as a learning value in the backup RAM 44 is updated by increasing the set value B by a set value B in step S107 (INJKCL2 ← INJKCL2 + B).
The process exits the routine via the above-described step S111.

【0088】一方、ステップS106で#2気筒の差回
転変動量積算値TCLSUM2が最大でない場合には、
ステップS106からステップS108へ分岐し、#3
気筒の差回転変動量積算値TCLSUM3が最大値MA
X(TCLSUM1,2,3,4)であるか否かを調べ
る。そして、#3気筒の差回転変動量積算値TCLSU
M3が最大である場合、ステップS109でバックアッ
プRAM44に学習値としてストアされている#3気筒
の燃料噴射補正量INJKCL3を設定値Bだけ増加さ
せて更新し(INJKCL3←INJKCL3+B)、
ステップS111を経てルーチンを抜ける。
On the other hand, if it is determined in step S106 that the differential rotation fluctuation amount integrated value TCLSUM2 of the # 2 cylinder is not the maximum,
The process branches from step S106 to step S108, and # 3
The cylinder difference rotation fluctuation integrated value TCLSUM3 is the maximum value MA.
It is checked whether X (TCLSUM1, 2, 3, 4). Then, the differential rotation variation integrated value TCLSU of the # 3 cylinder is
When M3 is the maximum, the fuel injection correction amount INJKCL3 of the # 3 cylinder stored as a learning value in the backup RAM 44 is updated by increasing the set value B in step S109 (INJKCL3 ← INJKCL3 + B).
The process exits the routine via step S111.

【0089】また、ステップS108において、#3気
筒の差回転変動量積算値TCLSUM3が最大でない場
合には、#4気筒の差回転変動量積算値TCLSUM4
が最大となるため、ステップS108からステップS1
10へ進み、バックアップRAM44に学習値としてス
トアされている#4気筒の燃料噴射補正量INJKCL
4を設定値Bだけ増加させて更新し(INJKCL4←
INJKCL4+B)、ステップS111を経てルーチ
ンを抜ける。
If it is determined in step S108 that the differential rotation fluctuation integrated value TCLSUM3 of the # 3 cylinder is not the maximum, the differential rotation fluctuation integrated value TCLSUM4 of the # 4 cylinder is not obtained.
Is the maximum, so that steps S108 to S1
Proceeding to 10, the fuel injection correction amount INJKCL for the # 4 cylinder stored as the learning value in the backup RAM 44
4 is increased by the set value B and updated (INJKCL4 ←
INJKCL4 + B), and exits the routine via step S111.

【0090】以上のアイドル安定化制御ルーチンによっ
て随時更新されてバックアップRAM44にストアされ
る気筒別燃料噴射補正量INJKCLi(i=1〜
4)、気筒別点火時期補正量ADVKCLi(i=1〜
4)は、それぞれ、図6の気筒別燃料噴射制御ルーチ
ン、図7の気筒別点火時期制御ルーチンによって読み出
され、アイドル運転時の燃料噴射量、点火時期が補正さ
れる。
The cylinder-by-cylinder fuel injection correction amount INJKCLi (i = 1 to 4) which is updated as needed by the idle stabilization control routine and stored in the backup RAM 44.
4), cylinder-specific ignition timing correction amount ADVKCLi (i = 1 to
4) are read out by the cylinder-by-cylinder fuel injection control routine of FIG. 6 and the cylinder-by-cylinder ignition timing control routine of FIG. 7, respectively, and the fuel injection amount and the ignition timing during the idling operation are corrected.

【0091】図6の燃料噴射制御ルーチンでは、ステッ
プS201で、各センサの出力信号からエンジン運転状
態パラメータを読込み、ステップS202で、気筒判別
/エンジン回転速度算出ルーチンにおいて気筒判別され
た燃料噴射対象気筒#iに対し、燃料噴射量を定める燃
料噴射パルス幅Tiを設定する。燃料噴射パルス幅Ti
は、周知のように、吸入空気量Qとエンジン回転数NE
とから算出される基本燃料噴射パルス幅Tp(=K×Q
/NE;Kは定数)に、冷却水温補正や加減速補正等の
エンジン運転状態に基づく各種増量補正係数COEF、
O2センサ29の出力信号に基づく空燃比フィードバッ
ク補正係数αを乗算して空燃比補正し、更に、各種増量
補正係数COEF及び空燃比フィードバック補正係数α
による有効パルス幅(Tp×α×COEF)に、インジ
ェクタ11の無効噴射時間を補償する電圧補正パルス幅
Tsを加算して設定される(Ti←Tp×α×COEF
+Ts)。
In the fuel injection control routine shown in FIG. 6, in step S201, the engine operating state parameters are read from the output signals of the sensors, and in step S202, the fuel injection target cylinder determined in the cylinder determination / engine rotation speed calculation routine. For #i, the fuel injection pulse width Ti that determines the fuel injection amount is set. Fuel injection pulse width Ti
Is, as is well known, the intake air amount Q and the engine speed NE.
And the basic fuel injection pulse width Tp (= K × Q
/ NE; K is a constant), various increase correction coefficients COEF based on engine operating conditions such as cooling water temperature correction and acceleration / deceleration correction,
The air-fuel ratio is corrected by multiplying by an air-fuel ratio feedback correction coefficient α based on the output signal of the O2 sensor 29. Further, various increase correction coefficients COEF and air-fuel ratio feedback correction coefficient α
Is set by adding the voltage correction pulse width Ts for compensating for the invalid injection time of the injector 11 to the effective pulse width (Tp × α × COEF) by (Ti ← Tp × α × COEF)
+ Ts).

【0092】次に、ステップS203へ進み、現在の運
転状態がアイドル状態か否かを判別する。このアイドル
判定は、前述のアイドル安定化制御ルーチンのステップ
S51,S52と同様の処理によって行い、現在の運転
状態がアイドル状態でない場合には、ステップS206
へジャンプして燃料噴射パルス幅Ti に相応する駆動信
号を燃料噴射対象気筒#iのインジェクタ11へ所定タ
イミングで出力し、ルーチンを抜ける。
Next, the routine proceeds to step S203, where it is determined whether or not the current operation state is an idle state. This idling determination is performed by the same processing as in steps S51 and S52 of the above-described idling stabilization control routine. If the current operating state is not the idle state, step S206.
Then, a drive signal corresponding to the fuel injection pulse width Ti is output to the injector 11 of the fuel injection target cylinder #i at a predetermined timing, and the routine exits.

【0093】また、現在の運転状態がアイドル状態に移
行すると、ステップS203からステップS204へ進
み、バックアップRAM44に学習値としてストアされ
ている燃料噴射対象気筒#iの燃料噴射補正量INJK
CLiを読み出し、ステップS205で、燃料噴射パル
ス幅Tiに燃料噴射補正量INJKCLiを加算して、
アイドル時において気筒別の最終的な燃料噴射量を定め
る燃料噴射パルス幅Tiとし(Ti←Ti+INJKC
Li)、ステップS206で、この燃料噴射パルス幅T
i に相応する駆動信号を燃料噴射対象気筒#iのインジ
ェクタ11へ所定タイミングで出力し、ルーチンを抜け
る。
When the current operating state shifts to the idle state, the process proceeds from step S203 to step S204, in which the fuel injection correction amount INJK of the fuel injection target cylinder #i stored in the backup RAM 44 as a learning value.
CLi is read, and in step S205, the fuel injection correction amount INJKCLi is added to the fuel injection pulse width Ti.
The fuel injection pulse width Ti that determines the final fuel injection amount for each cylinder during idling is defined as (Ti ← Ti + INJKC
Li), in step S206, the fuel injection pulse width T
A drive signal corresponding to i is output to the injector 11 of the fuel injection target cylinder #i at a predetermined timing, and the routine exits.

【0094】すなわち、差回転変動量積算値TCLSU
Mが最小の気筒に対して燃料噴射量を増量する一方、差
回転変動量積算値TCLSUMが最大の気筒に対して燃
料噴射量を減量することで、相対的に空燃比が薄い気筒
と空燃比が濃い気筒との空燃比のばらつきを減少し、各
気筒の燃焼状態を均一化する。
That is, the differential rotation fluctuation amount integrated value TCLSU
By increasing the fuel injection amount for the cylinder with the smallest M, and decreasing the fuel injection amount for the cylinder with the largest differential rotation fluctuation amount TCLSUM, the cylinder with a relatively low air-fuel ratio and the air-fuel ratio This reduces the variation in the air-fuel ratio with the cylinders with darker cylinders and makes the combustion state of each cylinder uniform.

【0095】一方、図7の点火時期制御ルーチンでは、
先ず、ステップS301で、気筒判別/エンジン回転速
度算出ルーチンにおいて気筒判別された点火対象気筒#
i(=CYL+1)に対し、エンジン負荷(本実施の形
態では、吸入空気量とエンジン回転数とによって定まる
基本燃料噴射量を定める基本燃料噴射パルス幅)Tpと
エンジン回転数NEとに基づき、マップ参照等によりク
ランク角換算の基本点火時期θBASEを設定する。
On the other hand, in the ignition timing control routine of FIG.
First, in step S301, the ignition target cylinder # determined in the cylinder determination / engine rotation speed calculation routine.
For i (= CYL + 1), the map is based on the engine load (in this embodiment, the basic fuel injection pulse width that determines the basic fuel injection amount determined by the intake air amount and the engine speed) Tp and the engine speed NE. The crank angle-converted basic ignition timing θBASE is set by reference or the like.

【0096】次いで、ステップS302へ進み、ノック
センサ26の出力信号に基づきノックコントロール値θ
NKを設定すると、ステップS303で、現在の運転状
態がアイドル状態か否かを判定する。その結果、現在の
運転状態がアイドル状態でない場合には、ステップS3
03からステップS304へ進み、基本点火時期θBA
SEをノックコントロール値θNKで補正して点火時期
θIGを設定する(θIG←θBASE+θNK)。
Next, the routine proceeds to step S302, where the knock control value θ is determined based on the output signal of knock sensor 26.
After setting NK, it is determined in step S303 whether or not the current operating state is an idle state. As a result, if the current operating state is not the idle state, step S3
03 to step S304, the basic ignition timing θBA
SE is corrected by knock control value θNK to set ignition timing θIG (θIG ← θBASE + θNK).

【0097】一方、現在の運転状態がアイドル状態であ
る場合には、ステップS303からステップS305へ
進んでバックアップRAM44に学習値としてストアさ
れている点火対象気筒#iの点火時期補正量ADVKC
Liを読み出し、ステップS306で、基本点火時期θ
BASEにノックコントロール値θNK及び点火時期補
正量ADVKCLiを加算して点火時期θIGを設定す
る(θIG←θBASE+θNK+ADVKCLi)。
On the other hand, if the current operating state is the idle state, the process proceeds from step S303 to step S305, in which the ignition timing correction amount ADVKC of the ignition target cylinder #i stored in the backup RAM 44 as a learning value.
Li is read, and in step S306, the basic ignition timing θ
The ignition timing θIG is set by adding the knock control value θNK and the ignition timing correction amount ADVKCLi to BASE (θIG ← θBASE + θNK + ADVKCLi).

【0098】そして、ステップS304或いはステップ
S306で点火時期θIGを設定した後、ステップS3
07へ進み、クランク角で示される点火時期θIGを時
間に換算して点火時刻ADVを設定する。本実施の形態
では、θ2クランクパルスをトリガとして点火タイマの
計時をスタートするため、BTDCθ1,θ2間のクラ
ンクパルス間角度とクランクパルス入力間隔時間Tθ1
2とに基づいて算出される周期(角速度)ω12により
点火時期θIGを除算し、点火時刻ADVを設定する
(ADV←θIG/ω12)。
After setting the ignition timing θIG in step S304 or step S306, step S3
In step 07, the ignition timing ADV is set by converting the ignition timing θIG indicated by the crank angle into time. In this embodiment, since the timing of the ignition timer is started with the θ2 crank pulse as a trigger, the angle between the crank pulses between BTDC θ1 and θ2 and the crank pulse input interval time Tθ1
Then, the ignition timing θIG is divided by the cycle (angular velocity) ω12 calculated based on 2 to set the ignition time ADV (ADV ← θIG / ω12).

【0099】そして、ステップS308で点火時刻AD
Vを点火タイマにセットし、ステップS309で、θ2
クランクパルスをトリガとして計時を開始し、点火時刻
ADVに達したとき、ステップS310で点火対象気筒
#i のイグナイタ19へ点火信号を出力し、ルーチンを
抜ける。
Then, at step S308, the ignition time AD
V is set in the ignition timer, and in step S309, θ2
Timing is started with the crank pulse as a trigger. When the ignition time ADV is reached, an ignition signal is output to the igniter 19 of the cylinder #i to be ignited in step S310, and the routine exits.

【0100】以上の差回転平均値TCLAVEiに基づ
く各気筒の点火時期補正では、気筒間の出力トルクのば
らつきを抑制することができ、不快な低周波振動の発生
を防止して滑らかなアイドル回転を得ることができ、運
転フィーリングを向上することができる。
In the above-described correction of the ignition timing of each cylinder based on the differential rotation average value TCLAVEi, variations in the output torque between the cylinders can be suppressed, and unpleasant low-frequency vibrations can be prevented, and smooth idle rotation can be achieved. Thus, the driving feeling can be improved.

【0101】また、燃料噴射量の補正に対し、点火時期
の補正では、僅かな点火時期補正で体積効率が大きく変
化し、より補正効果が大きいため、差回転変動量積算値
TCLSUMiに基づく気筒別の燃料噴射量補正と、差
回転平均値TCLAVEiに基づく気筒別の点火時期補
正とを併用し並列的な補正を行うことで、最終的に各気
筒の燃料噴射補正量の差を少なくすることができ、各気
筒の燃焼状態を均一化してアイドル安定性を向上すると
共に、トータル的に有害な排気エミッションを減少する
ことができる。
In contrast to the correction of the fuel injection amount, in the correction of the ignition timing, a slight correction of the ignition timing greatly changes the volumetric efficiency and has a greater correction effect. By using the fuel injection amount correction and the cylinder-specific ignition timing correction based on the differential rotation average value TCLAVEi in parallel to perform the correction in parallel, it is possible to finally reduce the difference between the fuel injection correction amounts of the cylinders. As a result, the combustion state of each cylinder can be made uniform, the idle stability can be improved, and harmful exhaust emissions can be reduced in total.

【0102】尚、本実施の形態においては、差回転TC
YLACを、今回の燃焼行程気筒#iに対応するエンジ
ン回転速度TCYLiから1燃焼行程前の気筒#i-1に
対応するエンジン回転速度TCYLi-1を減算して算出
しているが、逆に、1燃焼行程前の気筒#i-1に対応す
るエンジン回転速度TCYLi-1から今回の燃焼行程気
筒#iに対応するエンジン回転速度TCYLiを減算し
て当該気筒#iの差回転TCYLACとしても良く、こ
の場合は、平均出力トルクと差回転平均値TCLAVE
との関係が逆となるため、点火時期の進角、遅角補正が
逆となり、差回転平均値TCLAVEが最も高い気筒に
対して点火時期を進角補正し、差回転平均値TCLAV
Eが最も低い気筒に対して点火時期を遅角補正する。
In the present embodiment, the differential rotation TC
The YLAC is calculated by subtracting the engine rotation speed TCYLi-1 corresponding to the cylinder # i-1 one combustion stroke earlier from the engine rotation speed TCYLi corresponding to the current combustion stroke cylinder #i. The engine rotation speed TCYLi corresponding to the current cylinder #i may be subtracted from the engine rotation speed TCYLi-1 corresponding to the cylinder # i-1 one combustion stroke earlier to obtain the differential rotation TCYLAC of the cylinder #i. In this case, the average output torque and the differential rotation average value TCLAVE
Is reversed, the ignition timing advance and retard corrections are reversed, and the ignition timing is advanced and corrected for the cylinder having the highest differential rotation average value TCLAVE to obtain the differential rotation average value TCLAV.
The ignition timing is retarded for the cylinder with the lowest E.

【0103】また、本実施の形態では、エンジン回転状
態量としてエンジン回転速度(エンジン回転数)を用い
ているが、本発明はこれに限定されず、エンジン回転速
度に代えてエンジン回転周期、エンジン回転角速度、或
いはエンジン回転角加速度を用いるようにしてもよい。
Further, in the present embodiment, the engine speed (engine speed) is used as the engine speed state quantity. However, the present invention is not limited to this. The rotational angular velocity or the engine rotational angular acceleration may be used.

【0104】[0104]

【発明の効果】以上説明したように、請求項1記載の発
明によれば、気筒間における所定クランク角毎のエンジ
ン回転状態量を検出し、アイドル状態のとき、今回の燃
焼行程気筒に対応するエンジン回転状態量から1燃焼行
程前の気筒に対応するエンジン回転状態量を減算して、
今回の燃焼行程気筒に対する差回転状態量として算出す
る。そして、所定期間における気筒毎の差回転状態量を
平均処理して各気筒毎の差回転状態量平均値を算出する
と共に、所定期間における各気筒毎の差回転状態量と差
回転状態量平均値との差の絶対値を積算処理して各気筒
毎の差回転変動量積算値を算出する。そして、差回転変
動量積算値が最も小さい気筒の燃料噴射量を減量補正す
ると共に、差回転変動量積算値が最も大きい気筒に対し
て燃料噴射量を増量補正するので、各気筒の燃焼状態を
均一化することが可能となり、また、差回転状態量平均
値が最も低い気筒の点火時期を進角させ、差回転状態量
平均値が最も高い気筒の点火時期を遅角させるので、気
筒間の出力トルクのばらつきを抑制して気筒間の出力ト
ルクを均一化し、不快な低周波振動を抑制してアイドル
運転を安定化することができ、且つ、有害な排気エミツ
ションをトータル的に減少すると共に、燃費の向上を図
ることができる。
As described above, according to the first aspect of the present invention, the amount of engine rotation at each predetermined crank angle between cylinders is detected, and when the engine is idling, it corresponds to the current combustion stroke cylinder. Subtract the engine rotation state amount corresponding to the cylinder one combustion stroke before from the engine rotation state amount,
It is calculated as a differential rotation state amount for the current combustion stroke cylinder. Then, the average value of the differential rotation state amount for each cylinder is calculated by averaging the differential rotation state amount for each cylinder in the predetermined period, and the differential rotation state amount and the differential rotation state amount average value for each cylinder in the predetermined period. Is integrated to calculate an integrated value of the differential rotation fluctuation amount for each cylinder. Then, the fuel injection amount of the cylinder having the smallest differential rotation fluctuation amount is corrected to be reduced, and the fuel injection amount is corrected to be increased for the cylinder having the maximum difference rotation fluctuation amount. The ignition timing of the cylinder having the lowest average value of the differential rotation state amount is advanced, and the ignition timing of the cylinder having the highest average value of the differential rotation state amount is retarded. The output torque among the cylinders can be made uniform by suppressing the variation of the output torque, the unpleasant low-frequency vibration can be suppressed, the idling operation can be stabilized, and the harmful exhaust emission can be totally reduced. Fuel efficiency can be improved.

【0105】また、請求項2記載の発明のように、今回
の燃焼行程気筒に対する差回転状態量として、アイドル
状態のとき、1燃焼行程前の気筒に対応するエンジン回
転状態量から今回の燃焼行程気筒に対応するエンジン回
転状態量を減算して算出しても良く、この場合は、点火
時期の進角、遅角補正が逆となり、差回転状態量平均値
が最も高い気筒に対して点火時期を進角させ、差回転状
態量平均値が最も低い気筒に対して点火時期を遅角させ
る。請求項2記載の発明においても、上記請求項1記載
の発明の効果と、同様の効果を得ることができる。
Further, as in the second aspect of the present invention, when the engine is in the idling state, the difference between the engine rotation state amount corresponding to the cylinder one combustion stroke before and the current combustion stroke state is determined as the differential rotation state amount with respect to the current combustion stroke cylinder. The calculation may be performed by subtracting the engine rotation state quantity corresponding to the cylinder.In this case, the ignition timing advance and retard corrections are reversed, and the ignition timing is calculated for the cylinder having the highest differential rotation state quantity average value. Is advanced, and the ignition timing is retarded for the cylinder having the lowest differential rotation state amount average value. According to the second aspect of the present invention, the same effect as that of the first aspect can be obtained.

【0106】請求項3記載の発明によれば、アイドル状
態時に、燃料噴射量及び点火時期を補正するに際し、差
回転変動量積算値に応じて燃料噴射量を増量或いは減量
補正するための燃料噴射補正量を気筒別に設定し、エン
ジン運転状態に基づいて演算した燃料噴射量を気筒別燃
料噴射補正量により補正して気筒別に最終的な燃料噴射
量を設定する。また、アイドル状態時に、差回転状態量
平均値に応じて点火時期を進角或いは遅角するための点
火時期補正量を気筒別に設定し、エンジン運転状態に基
づいて演算した点火時期を気筒別点火時期補正量により
補正して気筒別に最終的な点火時期を設定する。そし
て、これらの気筒別燃料噴射補正量および気筒別点火時
期補正量を学習値として記憶保持して随時更新するの
で、上記請求項1記載の発明の効果に加え、より制御性を
向上することができるという効果を有する。
According to the third aspect of the invention, when the fuel injection amount and the ignition timing are corrected in the idling state, the fuel injection for increasing or decreasing the fuel injection amount in accordance with the integrated value of the differential rotation fluctuation amount. The correction amount is set for each cylinder, and the final fuel injection amount is set for each cylinder by correcting the fuel injection amount calculated based on the engine operating state with the cylinder-specific fuel injection correction amount. Further, during the idle state, the ignition timing correction amount for advancing or retarding the ignition timing according to the average value of the differential rotation state amount is set for each cylinder, and the ignition timing calculated based on the engine operation state is set for each cylinder. The final ignition timing is set for each cylinder by correcting with the timing correction amount. Since the cylinder-by-cylinder fuel injection correction amount and the cylinder-by-cylinder ignition timing correction amount are stored and held as learning values and updated as needed, the controllability can be further improved in addition to the effect of the first aspect of the present invention. It has the effect of being able to.

【図面の簡単な説明】[Brief description of the drawings]

【図1】アイドル安定化制御ルーチンのフローチャート
(その1)
FIG. 1 is a flowchart of an idle stabilization control routine (part 1);

【図2】アイドル安定化制御ルーチンのフローチャート
(その2)
FIG. 2 is a flowchart of an idle stabilization control routine (part 2);

【図3】アイドル安定化制御ルーチンのフローチャート
(その3)
FIG. 3 is a flowchart of an idle stabilization control routine (part 3);

【図4】アイドル安定化制御ルーチンのフローチャート
(その4)
FIG. 4 is a flowchart of an idle stabilization control routine (part 4);

【図5】気筒判別/エンジン回転速度算出ルーチンのフ
ローチャート
FIG. 5 is a flowchart of a cylinder discrimination / engine rotation speed calculation routine.

【図6】気筒別燃料噴射制御ルーチンのフローチャートFIG. 6 is a flowchart of a fuel injection control routine for each cylinder.

【図7】気筒別点火時期制御ルーチンのフローチャートFIG. 7 is a flowchart of an ignition timing control routine for each cylinder.

【図8】クランクパルス、気筒判別パルス、燃焼行程気
筒、点火タイミング、及び燃料噴射タイミングの関係を
示すタイムチャート
FIG. 8 is a time chart showing a relationship among a crank pulse, a cylinder discrimination pulse, a combustion stroke cylinder, an ignition timing, and a fuel injection timing.

【図9】各気筒毎の差回転の算出状態を示すタイミング
チャート
FIG. 9 is a timing chart showing a calculation state of a differential rotation for each cylinder.

【図10】差回転の変動状態を示す説明図FIG. 10 is an explanatory diagram showing a fluctuation state of a differential rotation.

【図11】エンジンの全体概略図FIG. 11 is an overall schematic diagram of an engine.

【図12】クランクロータとクランク角センサの正面図FIG. 12 is a front view of a crank rotor and a crank angle sensor.

【図13】カムロータと気筒判別センサの正面図FIG. 13 is a front view of a cam rotor and a cylinder discrimination sensor.

【図14】電子制御系の回路構成図FIG. 14 is a circuit configuration diagram of an electronic control system.

【符号の説明】[Explanation of symbols]

1 …エンジン 32…クランク角センサ 35…気筒判別センサ 40…ECU(回転状態量検出手段、気筒判別手段、ア
イドル判別手段、差回転状態量算出手段、差回転状態量
平均値算出手段、差回転変動量積算値算出手段、燃料噴
射制御手段、点火時期制御手段) NE…エンジン回転速度(エンジン回転状態量) TCYLAC…差回転(差回転状態量) TCLAVE…差回転平均値(差回転状態量平均値) TCLSUM…差回転変動量積算値 INJKCLi…燃料噴射補正量 Ti…燃料噴射パルス幅(燃料噴射量) ADVKCLi…点火時期補正量 θIG…点火時期
DESCRIPTION OF SYMBOLS 1 ... Engine 32 ... Crank angle sensor 35 ... Cylinder discrimination sensor 40 ... ECU (rotation state amount detection means, cylinder discrimination means, idling judgment means, difference rotation state quantity calculation means, difference rotation state quantity average value calculation means, difference rotation fluctuation NE: engine rotational speed (engine rotational state amount) TCYLAC: differential rotation (differential rotational state amount) TCLAVE: differential rotational average value (differential rotational state amount average value) TCLSUM: integrated value of differential rotation fluctuation amount INJKCLi: fuel injection correction amount Ti: fuel injection pulse width (fuel injection amount) ADVKCLi: ignition timing correction amount θIG: ignition timing

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) F02P 5/15 F02P 5/15 B Fターム(参考) 3G022 AA03 CA03 DA01 DA02 EA07 EA10 FA04 FA05 GA01 GA05 3G084 AA03 BA13 BA17 CA03 DA02 DA10 DA11 DA23 DA39 EA05 EA07 EB12 EB20 EB25 EC04 FA00 FA33 FA34 FA38 FA39 3G301 HA06 JA02 JA05 JA21 KA07 LA00 MA11 NA01 NB03 ND02 ND25 PE00Z PE02Z PE03Z PE04Z PE05Z ──────────────────────────────────────────────────続 き Continued on the front page (51) Int.Cl. 7 Identification symbol FI theme coat ゛ (Reference) F02P 5/15 F02P 5/15 B F-term (Reference) 3G022 AA03 CA03 DA01 DA02 EA07 EA10 FA04 FA05 GA01 GA05 3G084 AA03 BA13 BA17 CA03 DA02 DA10 DA11 DA23 DA39 EA05 EA07 EB12 EB20 EB25 EC04 FA00 FA33 FA34 FA38 FA39 3G301 HA06 JA02 JA05 JA21 KA07 LA00 MA11 NA01 NB03 ND02 ND25 PE00Z PE02Z PE03Z PE04Z PE05Z

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 気筒間における所定クランク角毎のエン
ジン回転状態量を検出するエンジン回転状態量検出手段
と、 現在の燃焼行程気筒を判別する気筒判別手段と、 エンジンのアイドル状態を、エンジン運転状態から判別
するアイドル判別手段と、 エンジンがアイドル状態のとき、今回の燃焼行程気筒に
対応するエンジン回転状態量から1燃焼行程前の気筒に
対応するエンジン回転状態量を減算し、今回の燃焼行程
気筒に対する差回転状態量として算出する差回転状態量
算出手段と、 所定期間における各気筒毎の上記差回転状態量を平均処
理し、各気筒毎の差回転状態量平均値として算出する差
回転状態量平均値算出手段と、 所定期間における各気筒毎の上記差回転状態量と上記差
回転状態量平均値との差の絶対値を積算処理し、各気筒
毎の差回転変動量積算値として算出する差回転変動量積
算値算出手段と、 アイドル状態時に、上記差回転変動量積算値が最も小さ
い気筒に対して燃料噴射量を減量補正すると共に、差回
転変動量積算値が最も大きい気筒に対して燃料噴射量を
増量補正する燃料噴射制御手段と、 上記差回転状態量平均値が最も低い気筒に対して点火時
期を進角補正すると共に、差回転状態量平均値が最も高
い気筒に対して点火時期を遅角補正する点火時期制御手
段とを備えたことを特微とするエンジンの制御装置。
1. An engine rotation state amount detection means for detecting an engine rotation state amount for each predetermined crank angle between cylinders; a cylinder determination means for determining a current combustion stroke cylinder; And when the engine is idle, subtracts the engine rotation state quantity corresponding to the cylinder one combustion stroke earlier from the engine rotation state quantity corresponding to the current combustion stroke cylinder, and calculates the current combustion stroke cylinder. A differential rotation state quantity calculating means for calculating the differential rotation state quantity with respect to a cylinder; and a differential rotation state quantity for averaging the differential rotation state quantity for each cylinder in a predetermined period and calculating an average value of the differential rotation state quantity for each cylinder. An average value calculating means for integrating an absolute value of a difference between the differential rotation state amount and the average value of the differential rotation state amount for each cylinder in a predetermined period; A differential rotation fluctuation integrated value calculating means for calculating as a differential rotation fluctuation integrated value; and a fuel injection amount reduction correction for the cylinder having the smallest differential rotation fluctuation integrated value in an idling state; A fuel injection control means for increasing and correcting the fuel injection amount for the cylinder having the largest integrated value; and advancing the ignition timing for the cylinder having the lowest differential rotation state amount average value, An engine control device comprising: ignition timing control means for retarding the ignition timing of a cylinder having the highest value.
【請求項2】 気筒間における所定クランク角毎のエン
ジン回転状態量を検出するエンジン回転状態量検出手段
と、 現在の燃焼行程気筒を判別する気筒判別手段と、 エンジンのアイドル状態を、エンジン運転状態から判別
するアイドル判別手段と、 エンジンがアイドル状態のとき、1燃焼行程前の気筒に
対応するエンジン回転状態量から今回の燃焼行程気筒に
対応するエンジン回転状態量を減算し、今回の燃焼行程
気筒に対する差回転状態量として算出する差回転状態量
算出手段と、 所定期間における気筒毎の上記差回転状態量を平均処理
し、各気筒毎の差回転状態量平均値として算出する差回
転状態量平均値算出手段と、 所定期間における各気筒毎の上記差回転状態量と上記差
回転状態量平均値との差の絶対値を積算処理し、各気筒
毎の差回転変動量積算値として算出する差回転変動量積
算値算出手段と、 アイドル状態時に、上記差回転変動量積算値が最も小さ
い気筒に対して燃料噴射量を減量補正すると共に、差回
転変動量積算値が最も大きい気筒に対して燃料噴射量を
増量補正する燃料噴射制御手段と、 上記差回転状態量平均値が最も高い気筒に対して点火時
期を進角補正すると共に、差回転状態量平均値が最も低
い気筒に対して点火時期を遅角補正する点火時期制御手
段とを備えたことを特徴とするエンジンの制御装置。
2. An engine rotation state quantity detection means for detecting an engine rotation state quantity for each predetermined crank angle between cylinders; a cylinder determination means for determining a current combustion stroke cylinder; And when the engine is in an idle state, subtracts the engine rotation state amount corresponding to the current combustion stroke cylinder from the engine rotation state amount corresponding to the cylinder one combustion stroke before, and calculates the current combustion stroke cylinder. A differential rotation state quantity calculating means for calculating a differential rotation state quantity for the cylinder, an average processing of the differential rotation state quantity for each cylinder in a predetermined period, and calculating a differential rotation state quantity average for each cylinder. Value calculating means for integrating the absolute value of the difference between the differential rotation state amount and the differential rotation state amount average value for each cylinder in a predetermined period, A differential rotation fluctuation integrated value calculating means for calculating as the rotation fluctuation integrated value; and, during idling, the fuel injection amount is reduced and corrected for the cylinder having the smallest differential rotation fluctuation integrated value. A fuel injection control means for increasing and correcting the fuel injection amount for the cylinder having the largest value; an advance correction of the ignition timing for the cylinder having the highest differential rotation state amount average value; and a differential rotation state amount average value. An ignition timing control means for retarding the ignition timing of a cylinder having the lowest ignition timing.
【請求項3】 上記燃料噴射制御手段は、アイドル状態
時に、上記差回転変動量積算値に応じて燃料噴射量を増
量或いは減量補正するための燃料噴射補正量を気筒別に
設定し、エンジン運転状態に基づいて演算した燃料噴射
量を上記気筒別燃料噴射補正量により補正して気筒別に
最終的な燃料噴射量を設定すると共に、上記気筒別燃料
噴射補正量を学習値として記憶保持して随時更新し、上
記点火時期制御手段は、アイドル状態時に、上記差回転
状態量平均値に応じて点火時期を進角或いは遅角するた
めの点火時期補正量を気筒別に設定し、エンジン運転状
態に基づいて演算した点火時期を上記気筒別点火時期補
正量により補正して気筒別に最終的な点火時期を設定す
ると共に、上記気筒別点火時期補正量を学習値として記
憶保持して随時更新することを特徴とする請求項1或い
は請求項2記載のエンジンの制御装置。
3. The fuel injection control means sets, for each cylinder, a fuel injection correction amount for increasing or decreasing the fuel injection amount in accordance with the differential rotation fluctuation amount integrated value in an idle state. The fuel injection amount calculated based on the above is corrected by the above-described cylinder-by-cylinder fuel injection correction amount to set a final fuel injection amount for each cylinder, and the above-mentioned cylinder-by-cylinder fuel injection correction amount is stored and held as a learning value and updated as needed. In the idle state, the ignition timing control means sets an ignition timing correction amount for advancing or retarding the ignition timing according to the average value of the differential rotation state amount for each cylinder, and based on the engine operating state. The calculated ignition timing is corrected by the cylinder-specific ignition timing correction amount to set the final ignition timing for each cylinder, and the cylinder-specific ignition timing correction amount is stored and held as a learning value and updated as needed. The engine control device according to claim 1 or 2, wherein
JP11008141A 1999-01-14 1999-01-14 Control apparatus for engine Pending JP2000205025A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11008141A JP2000205025A (en) 1999-01-14 1999-01-14 Control apparatus for engine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11008141A JP2000205025A (en) 1999-01-14 1999-01-14 Control apparatus for engine

Publications (1)

Publication Number Publication Date
JP2000205025A true JP2000205025A (en) 2000-07-25

Family

ID=11685035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11008141A Pending JP2000205025A (en) 1999-01-14 1999-01-14 Control apparatus for engine

Country Status (1)

Country Link
JP (1) JP2000205025A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004176642A (en) * 2002-11-28 2004-06-24 Nissan Motor Co Ltd Air-fuel ratio control device for internal combustion engine
JP2009281236A (en) * 2008-05-21 2009-12-03 Hitachi Ltd Control apparatus for multi-cylinder internal combustion engine
JP2011027059A (en) * 2009-07-28 2011-02-10 Hitachi Automotive Systems Ltd Engine cotrol apparatus
US20110100327A1 (en) * 2009-10-30 2011-05-05 Hitachi Automotive Systems, Ltd. Control Apparatus for Engine
JP2012189084A (en) * 2012-06-05 2012-10-04 Hitachi Automotive Systems Ltd Controller of engine
CN101566118B (en) * 2008-04-22 2012-10-24 通用汽车环球科技运作公司 Method for improving idle quality by torque smoothing
CN101372922B (en) * 2007-02-07 2012-11-14 本田技研工业株式会社 Control for an internal-combustion engine
JP2013002394A (en) * 2011-06-17 2013-01-07 Toyota Motor Corp Device for detecting abnormal air-fuel ratio variation between cylinders of multi-cylinder internal combustion engine
JP2015117654A (en) * 2013-12-19 2015-06-25 本田技研工業株式会社 Ignition control device of general purpose engine
CN114962113A (en) * 2022-06-28 2022-08-30 中国第一汽车股份有限公司 Method for reducing idle speed jitter of engine, engine and vehicle

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004176642A (en) * 2002-11-28 2004-06-24 Nissan Motor Co Ltd Air-fuel ratio control device for internal combustion engine
CN101372922B (en) * 2007-02-07 2012-11-14 本田技研工业株式会社 Control for an internal-combustion engine
CN101566118B (en) * 2008-04-22 2012-10-24 通用汽车环球科技运作公司 Method for improving idle quality by torque smoothing
JP2009281236A (en) * 2008-05-21 2009-12-03 Hitachi Ltd Control apparatus for multi-cylinder internal combustion engine
US8229647B2 (en) 2008-05-21 2012-07-24 Hitachi, Ltd. Control apparatus for multi-cylinder internal combustion engine
JP2011027059A (en) * 2009-07-28 2011-02-10 Hitachi Automotive Systems Ltd Engine cotrol apparatus
EP2284378A3 (en) * 2009-07-28 2014-06-04 Hitachi Automotive Systems, Ltd. Engine control apparatus
US8267076B2 (en) 2009-07-28 2012-09-18 Hitachi Automotive Systems, Ltd. Engine control apparatus
US8573184B2 (en) 2009-10-30 2013-11-05 Hitachi Automotive Systems, Ltd. Control apparatus for controlling intake air flow, fuel injection amount, and ignition timing at each cylinder of a multi-cylinder engine
JP2011094541A (en) * 2009-10-30 2011-05-12 Hitachi Automotive Systems Ltd Control device for engine
CN102052173A (en) * 2009-10-30 2011-05-11 日立汽车系统株式会社 Control apparatus for engine
EP2317103A3 (en) * 2009-10-30 2014-05-21 Hitachi Automotive Systems, Ltd. Control apparatus for engine
US20110100327A1 (en) * 2009-10-30 2011-05-05 Hitachi Automotive Systems, Ltd. Control Apparatus for Engine
CN102052173B (en) * 2009-10-30 2015-05-20 日立汽车系统株式会社 Control apparatus for engine
JP2013002394A (en) * 2011-06-17 2013-01-07 Toyota Motor Corp Device for detecting abnormal air-fuel ratio variation between cylinders of multi-cylinder internal combustion engine
JP2012189084A (en) * 2012-06-05 2012-10-04 Hitachi Automotive Systems Ltd Controller of engine
JP2015117654A (en) * 2013-12-19 2015-06-25 本田技研工業株式会社 Ignition control device of general purpose engine
CN114962113A (en) * 2022-06-28 2022-08-30 中国第一汽车股份有限公司 Method for reducing idle speed jitter of engine, engine and vehicle

Similar Documents

Publication Publication Date Title
JP2000205025A (en) Control apparatus for engine
JPH09250387A (en) Fuel injection control method for internal combustion engine
JP2022053819A (en) Misfire determination device for internal combustion engine
JP2003065111A (en) Fuel injection controller for engine
JP2505304B2 (en) Idle control device for multi-cylinder engine
JP4501760B2 (en) Ignition control device for internal combustion engine
JPH10148154A (en) Fuel injection control device for engine
JP3963993B2 (en) Engine air-fuel ratio control device
JP2543379B2 (en) Knocking control device for internal combustion engine
JP3560264B2 (en) Engine fuel injection control device
JPH10121991A (en) Failure diagnosing device for engine intake-air control system
JP2000291467A (en) Controller for internal combustion engine
JP2001050081A (en) Fuel injection control unit for engine
JP2004116372A (en) Ignition timing control system for engine
JP4263258B2 (en) Fuel injection control device for lean burn engine
JP5086922B2 (en) Ignition timing control device for internal combustion engine
JP3686437B2 (en) Engine air-fuel ratio control method
JP3691092B2 (en) Engine air-fuel ratio control method
JP3036351B2 (en) Method of detecting rotation fluctuation of internal combustion engine
JP2009216001A (en) Noise reducing device of internal combustion engine
JPH10184421A (en) Air-fuel ratio control device for engine
JPH0988786A (en) Ignition timing control device for engine
JPH06213125A (en) Ignition time control method for engine
JP3593162B2 (en) Engine intake air volume detection method
JP2010007523A (en) Air-fuel ratio control device for engine