JP3612286B2 - Engine ISC valve control method - Google Patents

Engine ISC valve control method Download PDF

Info

Publication number
JP3612286B2
JP3612286B2 JP2001107632A JP2001107632A JP3612286B2 JP 3612286 B2 JP3612286 B2 JP 3612286B2 JP 2001107632 A JP2001107632 A JP 2001107632A JP 2001107632 A JP2001107632 A JP 2001107632A JP 3612286 B2 JP3612286 B2 JP 3612286B2
Authority
JP
Japan
Prior art keywords
value
correction
process proceeds
air conditioner
correction value
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.)
Expired - Fee Related
Application number
JP2001107632A
Other languages
Japanese (ja)
Other versions
JP2001289100A (en
Inventor
能之 十川
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 Jukogyo KK
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 Jukogyo KK filed Critical Fuji Jukogyo KK
Priority to JP2001107632A priority Critical patent/JP3612286B2/en
Publication of JP2001289100A publication Critical patent/JP2001289100A/en
Application granted granted Critical
Publication of JP3612286B2 publication Critical patent/JP3612286B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ISCバルブの開度をフィードバック制御し、またこのフィードバック制御されたISCバルブの開度設定値の許容幅をエンジン状態に応じて可変設定するエンジンのISCバルブ制御方法に関する。
【0002】
【従来の技術】
一般に、エンジンのISC(アイドルスピードコントロール)バルブの開度制御は、始動時制御(クランキング時)→オープンループ制御(暖機運転時など)→クローズドループ(フィードバック)制御(通常時)の順に実行し、エンジン状態に応じた最適なエンジン制御を実現している。
【0003】
例えば特開昭58−158343号公報には、ISCバルブの開度設定値(例えばデューティ比)を学習し、この学習値とフィードバック制御により補正した開度設定値とが異なる値になり、アイドル回転数がアイドル目標回転数と異なる値を示したとき、このアイドル回転数とアイドル目標回転数との差に対応する補正値で上記学習値を更新し、次回始動後のフィードバック制御開始時に当該学習値を初期値として用い、オープンループ制御からクローズドループ制御へ移行した直後、すなわち、フィードバック制御開始直後の制御性の改善を図っている。しかし、従来はエンジン状態に応じて上述した各制御が各々独立して実行されていたため、始動時制御からオープンループ制御へ移行する際には、初爆はするが完爆へ移行し難くなりエンジン回転数の立上りにもたつきが生じやすく、また、オープンループ制御からクローズドループ制御へ移行する際に、上述した先行技術のごとくフィードバック制御の初期値として前回の運転時に学習した学習値を用いても、オープンループ制御時の制御値と上記学習値とが独立して設定されているため、オープンループ制御時の上記ISCバルブの開度を設定する開度設定値とクローズドループ制御初期値との間に段差が生じ、フィードバック補正値が収束するまでに時間がかかり、その間、エンジン回転数が不安定になってしまう問題があった。
【0004】
一方、上記ISCバルブの開度設定値、および、フィードバック補正値が無限に増大あるいは減少(負側をふくむ)するのを防止するため、上記フィードバック補正値および開度設定値には、それぞれ上限値、下限値が設定されている。例えば、上述した先行技術には、上記学習値と予め設定した上限値および下限値とを比較し、この学習値が上限値と下限値との間の許容範囲に収まっていない場合には、この上限値、あるいは、下限値で上記学習値を更新する技術が開示されている。
【0005】
しかし、この上限値あるいは下限値が固定値であるため、例えば、エアコンコンプレッサが駆動しエンジン負荷が増大しても上限値にて規制されるため吸入空気量を充分に供給することが困難となる。
【0006】
これに対処するに、例えば特開平1−247728号公報には、開度設定値の上限値をエアコンコンプレッサの容量に応じて可変設定する技術が開示されている。
【0007】
【発明が解決しようとする課題】
しかし、上述のエアコンコンプレッサの容量に応じて可変設定する技術では、制御の上限値、下限値をエアコンコンプレッサなどの外乱のみの変動に基づいて可変設定しているため、冷却水温度を代表とするエンジン温度などエンジン自体の状態が加味されておらず、適切に制御することが困難である。
【0008】
本発明は上記事情に鑑み、フィードバック補正値の上限値、下限値をエンジン状態を加味して適切に設定することのできるエンジンのISCバルブ制御方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
上記目的を達成するため、請求項1記載の発明は、エンジン始動後、所定時間以内で、且つ、エンジン温度が暖機再始動かを判断する判定値以上の場合の暖機再始動時のフィードバック補正値の上限値と下限値とを、上記暖機再始動時以外の場合に設定するフィードバック補正値の上限値と下限値よりもシフトアップした値で設定する手順と、上記フィードバック補正値が上記下限値以下の時には、該下限値で上記フィードバック補正値を設定し、上記フィードバック補正値が上記上限値以上の時には該上限値で上記フィードバック補正値を設定する手順と、エンジン温度に基づいてスロットルバルブをバイパスするエアバイパス通路に介装したISCバルブの基本的な開度を示す基本特性値を設定する手順と、上記フィードバック補正値で、少なくとも上記基本特性値を補正して上記ISCバルブの開度を設定する手順とを備えたことを特徴とする。
【0010】
請求項2記載の発明は、請求項1記載の発明において、上記フィードバック補正値を積分制御のみで設定したことを特徴とする。
【0012】
すなわち、エンジン始動後、所定時間以内で、且つ、エンジン温度が暖機再始動かを判断する判定値以上の場合の暖機再始動時のフィードバック補正値の上限値と下限値とを、上記暖機再始動時以外の場合に設定するフィードバック補正値の上限値と下限値よりもシフトアップした値で設定し、フィードバック補正値が下限値以下の時には、該下限値でフィードバック補正値を設定し、また、フィードバック補正値が上限値以上の時には該上限値でフィードバック補正値を設定する。また、エンジン温度に基づいてスロットルバルブをバイパスするエアバイパス通路に介装したISCバルブの基本的な開度を示す基本特性値を設定する。そして、フィードバック補正値で、少なくとも基本特性値を補正してISCバルブの開度を設定する
【0013】
請求項2記載の発明は、請求項1記載の発明において、フィードバック補正値を積分制御のみで設定する。
【0015】
【発明の実施の形態】
以下、図面に基づいて本発明の実施の形態を説明する。
図面は本発明の実施の一形態を示し、図1,図2はISCバルブ制御手順を示すフローチャート、図3は補正値設定手順を示すフローチャート、図4は基本特性値設定手順を示すフローチャート、図5はアイドル目標回転数設定手順を示すフローチャート、図6はクローズド/オープンループ制御判別手順を示すフローチャート、図7,図8はエアコン補正値設定手順を示すフローチャート、図9はエアコンスイッチOFF→ON時のエアコン補正学習手順を示すフローチャート、図10はエアコンスイッチON→OFF時のエアコン補正学習手順を示すフローチャート、図11,図12はAT車走行レンジ補正値設定手順を示すフローチャート、図13,図14は加減速補正設定手順を示すフローチャート、図15はダッシュポット補正値設定手順を示すフローチャート、図16はダッシュポット補正値更新手順を示すフローチャート、図17はラジファン補正設定手順を示すフローチャート、図18、図19はパワステ補正値設定手順を示すフローチャート、図20はエアコンクラッチ補正値設定手順を示すフローチャート、図21は始動後補正初期値設定手順を示すフローチャート、図22は始動後補正設定手順を示すフローチャート、図23〜図25はクローズドループ補正I分更新手順を示すフローチャート、図26はクローズドループ補正I分学習手順を示すフローチャート、図27はエンジン制御系の概略図、図28は制御装置の構成図、図29はエアコンスイッチとエアコン補正値とエンジン回転数の関係を示すタイムチャート、図30は走行レンジ、またはN,Pレンジと、AT車走行レンジ補正とエンジン回転数の関係を示すタイムチャート、図31はアイドルスイッチとスロットル開度と加減速補正とエンジン回転数の関係を示すタイムチャート、図32はアイドルスイッチとエンジン回転数とダッシュポット補正値の関係を示すタイムチャート、図33はラジエータファンON/OFFとラジファン補正の関係を示すタイムチャート、図34はアイドル判別回転数を設定する際のヒステリシスを示すタイムチャート、図35はパワステ転舵スイッチとパワステ補正値とエンジン回転数の関係を示すタイムチャート、図36はエアコンスイッチとエアコンクラッチリレーとエアコンコンプレッサの容量とエアコンクラッチ補正値とエンジン回転数の関係を示すタイムチャート、図37は始動後補正の変化を示すタイムチャート、図38はデューティ比の変化を示すタイムチャート、図39は始動後補正値のクローズドループ補正I分への移行を示すタイムチャート、図40はクローズドループ補正I分の補正量と差回転との関係を示す説明図、図41はエンジン回転数とクローズドループ補正I分の補正量とクローズドループ補正I分との関係を示すタイムチャート、図42はクローズドループ補正I分の学習値の使用状況を示すタイムチャートである。
【0016】
[エンジン制御系の構成]
図27において、図中の符号1はエンジン本体で、図においては6気筒水平対向型エンジンを示す。このエンジン本体1は、シリンダブロック2がクランクシャフト1aを中心として両側のバンク(図の右側が左バンク、左側が右バンク)に2分割されており、例えば、右バンクに#1,#3,#5気筒の気筒群が配置され、左バンクに#2,#4,#6気筒の気筒群が配置されている。
【0017】
上記各バンクの各シリンダヘッド3には、それぞれ吸気ポート4が形成され、各吸気ポート4にインテークマニホルド5が連通されている。また、このインテークマニホルド5の上流に、各バンクに対応して共鳴管6a,6bが連通され、この各共鳴管6a,6b間を結ぶ通路6cに可変吸気バルブ11cが介装されている。なお、この共鳴管6a,6b、通路6c、および、可変吸気バルブ11cで可変共鳴過給システムが構成されている。
【0018】
さらに、上記各共鳴管6a,6bの上流がスロットルチャンバ11a,11bを開してサージタンク7に連通されている。
【0019】
上記サージタンク7の上流側に、吸気管8を介してエアクリーナ9が取付けられており、このエアクリーナ9の直下流に吸入空気量センサ(図においては、ホットフィルム式エアフローメータ)10が介装されている。
【0020】
また、上記各スロットルチャンバ11a,11bに、スロットルバルブ11d,11e(いわゆる、ツインスロットルバルブ)が介装され、一方のスロットルバルブ11eにスロットル開度センサ12aとスロットルバルブ全閉を検出するアイドルスイッチ12bとが連設されている。
【0021】
さらに、上記スロットルチャンバ11a,11bのスロットルバルブ11d,11eの下流側が通路6dによって連通され、この通路6dと上記サージタンク7とを連通するエアーバイパス通路6eに、アイドルスピードコントロール(ISC)バルブ13が介装されている。
【0022】
また、上記インテークマニホルド5の各気筒の各吸気ポート4の直上流側にインジェクタ14が配設され、さらに、上記各シリンダヘッド3の各気筒毎に、その先端を燃焼室に露呈する点火プラグ15が取付けられている。この点火プラグ15の端子部には、点火コイル15aが直接取付けられ、イグナイタ16に接続されている。
【0023】
上記インジェクタ14には、燃料タンク17内に設けられたインタンク式の燃料ポンプ18から燃料フィルタ19を経て燃料が圧送され、プレッシャレギュレータ20にて調圧させる。
【0024】
また、上記シリンダブロック2に形成された冷却水通路(図示せず)にエンジン温度の一例として冷却水温TW を検出する冷却水温センサ21が臨まされるとともに、上記シリンダブロック2の各バンクに、それぞれ、右バンクノックセンサ22a、左バンクノックセンサ22bが取付けられており、上記各シリンダヘッド3の各排気ポート23から、各バンク毎に設けられた各排気管24a,24bが連通されている。
【0025】
上記各排気管24a,24bには、それぞれ、右バンクO2センサ25a,左バンクO2センサ25bが臨まされ、各O2センサ25a,25bの下流側に、それぞれ、触媒コンバータ26a,26bが介装され、さらに、各触媒コンバータ26a,26bの下流側合流部に、触媒コンバータ27が介装されている。
【0026】
一方、エンジン本体1のクランクシャフト1aに、クランク角検出用クランクロータ29とグループ気筒判別用クランクロータ30とが所定間隔を開けて軸着されている。また、この各クランクロータ29,30の外周に被検出体である突起を検出する電磁ピックアップなどからなる第一のクランク角センサ31,第二のクランク角センサ32がそれぞれ対設されている。また、カムシャフト33に軸着したカムロータ33aの外周にカム角センサ34が対設されている。このカム角センサ34は特定気筒の圧縮上死点を判別するもので、このカム角センサ34からのカムパルスと第2のクランク角センサ32からのグループ判別パルスとで個々の気筒を判別する。
【0027】
なお、上記各クランクロータ29,30、上記カムロータ33aの外周には突起の代りにスリットを設けてもよく、また、両クランク角センサ31,32、カム角センサ34は電磁ピックアップなどの電磁センサに限らず光センサなどでも良い。
【0028】
[制御装置の回路構成]
一方、図28において、符号40はマイクロコンピュータからなる制御装置(ECU)で、このECU40は点火時期制御、燃料噴射制御などを行うメインコンピュータ41と、ノック検出処理を行う専用のサブコンピュータ42との2つのコンピュータから構成されている。
【0029】
また、上記ECU40内には定電圧回路43が内蔵され、この定電圧回路43から各部へ安定化電圧が供給される。この定電圧回路43は、ECUリレー44のリレー接点を介してバッテリ45に接続され、上記ECUリレー44のリレーコイルがキースイッチ46を介して上記バッテリ45に接続されている。また、上記バッテリ45に燃料ポンプリレー47のリレー接点を介して燃料ポンプ18が接続されている。
【0030】
上記メインコンピュータ41は、メインCPU48、ROM49、RAM50、記憶手段としてのバックアップRAM50a、タイマ51、シリアルインターフェース(SCI)52、及び、I/Oインターフェース53がバスライン54を介して互いに接続されている。また、上記バックアップRAM50aには上記定電圧回路43を介して常時バックアップ電圧が印加されている。
【0031】
上記I/Oインターフェース53の入力ポートには、吸入空気量センサ10,スロットル開度センサ12a、冷却水温センサ21、右バンクO2センサ25a、左バンクO2センサ25b、大気圧センサ55、及び車速センサ56がA/D変換器57aを介して接続されているとともに、アイドルスイッチ12b、第1,第2のクランク角センサ31,32、カム角センサ34が接続され、また、上記バッテリ45が接続されてバッテリ電圧がモニタされる。
【0032】
さらに、上記I/Oインターフェース53の入力ポートには、転舵状態を検出するパワーステアリング転舵スイッチ58、オートマチックトランスミッションのセレクトレバーがニュートラルにセットされているかを検出するニュートラルスイッチ59、パーキングにセットされているかを検出するパーキングスイッチ60、始動状態を検出するスタータスイッチ61が接続されている。
【0033】
また、上記I/Oインターフェース53の出力ポートには、イグナイタ16が接続され、さらにISCバルブ13、インジェクタ14、ラジエータファン62の駆動を制御するラジエータファンリレー63のリレーコイル、可変容量エアコンコンプレッサ64のマグネットクラッチ64aの接/断を操作するエアコンクラッチリレー65のリレーコイルが駆動回路57bを介して接続されている。
【0034】
一方、サブコンピュータ42は、サブCPU66、ROM67、RAM68、タイマ69、SCI70、及び、I/Oインターフェース71がバスライン72を介して互いに接続されて構成されている。
【0035】
上記I/Oインターフェース71の入力ポートには、上記第1,第2のクランク角センサ31,32、カム角センサ34が接続されているとともに、右バンクノックセンサ22a、左バンクノックセンサ22bが、それぞれアンプ73、周波数フィルタ74、A/D変換器75を介して接続されている。
【0036】
上記各ノックセンサ22a,22bは、例えばノック振動とほぼ同じ固有周波数を持つ振動子と、この振動子の振動加速度を検知して電気信号に変換する圧電素子とから構成される共振形のノックセンサで、エンジンの爆発行程における燃焼圧力波によりシリンダブロックなどに伝わる振動を検出し、その振動波形をノック信号として出力する。
【0037】
このノック信号は上記アンプ73により所定のレベルに増幅された後、上記周波数フィルタ74により必要な周波数成分が抽出され、A/D変換器75でアナログデータからデジタルデータに変換される。
【0038】
上記メインコンピュータ41と上記サブコンピュータ42とは、SCI52,70を介したシリアル回線により接続されているとともに、上記サブコンピュータ42のI/Oインターフェース71の出力ポートが、上記メインコンピュータ41のI/Oインターフェース53の入力ポートに接続されている。
【0039】
上記メインコンピュータ41では、クランクパルスに基づいて点火時期などを演算し、所定の点火時期に達すると、該当気筒に点火信号を出力し、一方、上記サブコンピュータ42では、クランクパルスの入力間隔からエンジン回転数を算出し、このエンジン回転数とエンジン負荷とに基づいて各ノックセンサ22a,22bからのノック信号のサンプル区間を設定し、このサンプル区間で各ノックセンサ22a,22bからのノック信号を高速にA/D変換して振動波形を忠実にデジタルデータに変換し、ノック発生の有無を判定する。
【0040】
このノック発生の有無の判定結果は、サブコンピュータ42のI/Oインターフェース71に出力され、ノック発生の場合には、SCI70,52を介したシリアル回線を通じてサブコンピュータ42から上記メインコンピュータ41にノックデータが読込まれ、上記メインコンピュータ41では、このノックデータに基づいて直ちに該当気筒の点火時期を遅らせ、ノックを回避する。
【0041】
また、符号81はエアコン制御ユニットで、CPU82、ROM83、RAM84、I/Oインターフェース85がバスライン86を介して接続され、イグニッションスイッチ87を介してバッテリ45に接続する定電圧回路88から各部に安定化電圧が供給される。
【0042】
上記I/Oインターフェース85の入力ポートには、エアコンスイッチ89、上記メインコンピュータ41のI/Oインターフェース53が接続されており、上記メインコンピュータ41から上記エアコン制御ユニット81へ上記可変容量エアコンコンプレッサ64に対する要求容量(DUTY)信号を出力する。
【0043】
また、上記I/Oインターフェース85の出力ポートには、上記可変容量エアコンコンプレッサ64に設けた可変容量制御バルブ((図示せず)が接続されて、容量(DUTY)信号を出力するとともに、メインコンピュータ41のI/Oインターフェース53の入力ポートに接続されて、エアコンスイッチ89がONしたかどうかの信号が出力される。
【0044】
[動作]
次に、上記構成による実施例のISCバルブ13の制御動作について説明する。
【0045】
(ISCバルブ制御メインルーチン)
図1,図2はメインコンピュータ41で実行するISCバルブ制御手順を示すメインルーチンで、所定演算周期ごとに実行される。
【0046】
まず、ステップ(以下「S」と略称)101 で、モニタしたバッテリ電圧に基づきバッテリ電圧補正値ISCVBを設定する。バッテリ電圧が低いとISCバルブ13が所定開度に達しなくなるため、上記バッテリ電圧補正値ISCVBはバッテリ電圧が低いほど大きな値に設定される。
【0047】
そして、S102で大気圧補正係数KALTを設定する。大気圧が低いと吸入空気流量も相対的に低くなるため、上記大気圧補正係数KALTは大気圧が低いほど大きな値に設定される。
【0048】
その後、S103へ進むと、始動判別を行うべくスタータスイッチ61がONかを判断し、ONの場合始動中と判断してS104へ進み、OFFの場合エンジン停止あるいはエンジン稼動中と判断してS105へ進む。
【0049】
S105では第1のクランク角センサ31出力により検出したエンジン回転数NEに基づきエンジン停止中かを判断し、NE=0(エンジン停止中)の場合S104へ進み、NE≠0(エンジン稼動中)の場合S114へ進む。
【0050】
S103あるいはS105で、始動中あるいはエンジン停止中と判断された場合には、S104へ進み、始動時制御処理が実行される。S104へ進むと、冷却水温センサ21で検出した冷却水温TWに基づき始動時特性値テーブルTISCSTを補間計算付きで参照して始動時特性値ISCSTを設定する。
【0051】
そして、S106へ進み、上記始動時特性値ISCSTとバッテリ電圧補正値ISCVBとを加算した値に上記大気圧補正係数KALTを乗算してISCバルブ13の開度設定値であるデューティ比ISCONを設定する(ISCON←(ISCST+ISCVB)×KALT)。
【0052】
その後、S107で、後述するクローズド/オープンループ制御判別サブルーチンで用いるエンジン始動後の経過時間が設定時間TMASI[SEC]に達したかを判別するための始動後経過時間判別カウント値COUNTST(ダウンカウンタ)に、設定時間TMASIに相当する設定値COUNTSTをセット(COUNTST←COUNTTMASI)した後、S108へ進み、後述する始動後補正ISCSD、クローズドループ補正I分設定の際に用いる始動時/通常時制御判別フラグFLAGSTを、現在始動時制御を実行していることを示すためセット(FLAGST←1)した後S109へ進む。
【0053】
S109では、上記デューティ比ISCONとオープンループ制御時の下限値IMINOPとを比較し、ISCON≦IMINOPの場合、設定したデューティ比ISCONが下限値以下であるため、S110で、上記デューティ比ISCONを上記下限値IMINOPで設定し(ISCON←IMINOP)、S138へ進む。
【0054】
一方、上記S109で、ISCON>IMINOPの場合にはS111へ進み、上記冷却水温TWに基づき上限値テーブルTBMXOPを参照して上限値IMAXOPを設定する。この上限値テーブルTBMXOPには、冷却水温TWが低ければ始動性がより困難になるため高い値の上限値IMAXOPが格納されている。
【0055】
そして、S112で上記デューティ比ISCONと上記上限値IMAXOP とを比較し、ISCON≧IMAXOPの場合、S113へ進み、デューティ比ISCONを上記上限値IMAXOPで固定し(ISCON←IMAXOP)、S138へ進む。また、ISCON<IMAXOPの場合、そのままS138へ進む。
【0056】
一方、上記S105で、NE≠0(エンジン稼動中)と判断された場合にはS114へ進み、通常時制御処理が実行される。S114へ進むと、始動時/通常時制御判別フラグFLAGSTをクリア(FLAGST←0、通常時制御)し、S115で基本特性値設定サブルーチン(詳細は後述する)を実行して基本特性値ISCTWを設定し、S116でアイドル目標回転数設定サブルーチン(詳細は後述する)を実行してアイドル目標回転数NSET を設定し、S117でクローズド/オープンループ制御判別サブルーチン(詳細は後述する)を実行してクローズドループ制御かオープンループ制御かを判別した後、S118へ進む。
【0057】
S118では、後述する補正値設定ルーチン(51.2msec毎に割込み実行)で設定したエアコン補正値ISCACを読出し、S119で上記補正値設定ルーチンで設定したAT車走行レンジ補正値ISCATDSにて当該メインルーチンで使用するギヤ位置補正値ISCATを設定し(ISCAT←ISCATDS)、S120で上記補正値設定ルーチンで設定した加減速補正DSHPTで加減速補正値ISCTRを設定し(ISCTR←DSHPT)、S121で始動後補正値ISCASを後述する各割込みルーチンで設定した始動後補正ISCSDで設定し(ISCAS←ISCSD)、S122で上記補正値設定ルーチンで更新したダッシュポット補正値DHENBを読出し、S123で後述するクローズドループ補正I分更新手順(10msec毎に割込み実行)で設定したフィードバック補正値としてのクローズドループ補正I分ISCI にて当該メインルーチンで使用するクローズドループ補正値ISCCLを設定する(ISCCL←ISCI)。
【0058】
そして、S124で上記補正値設定ルーチンで設定したラジファン補正ISCRASにて、当該メインルーチンで使用するラジファン補正値ISCRAを設定し(ISCRA←ISCRAS)、また、S125で上記補正値設定ルーチンで設定したパワステ補正値ISCPSを読出し、S126で上記補正値設定ルーチンで設定したエアコンクラッチ補正値ISCCLHを読み出す。
【0059】
その後、S127で上記基本特性値ISCTW、エアコン補正値ISCAC、ギヤ位置補正値ISCAT、加減速補正値ISCTR、始動後補正値ISCAS、ダッシュポット補正値DHENB、クローズドループ補正値ISCCL、ラジファン補正値ISCRA、パワステ補正値ISCPS、エアコンクラッチ補正値ISCCLH、バッテリ電圧補正値ISCVBを加算した値に大気圧補正係数KALTを乗算してデューティ比ISCONを次式に示す如く設定する。
【0060】
ISCON←(ISCTW+ISCAC+ISCAT+ISCTR+ISCAS+DHENB+ISCCL+ISCRA+ISCPS+ISCCLH+ISCVB)×KALT
そして、S128でクローズドループ制御選択時に1にセットされるクローズド/オープンループ制御判別フラグFLAGCLの値を参照し、FLAGCL=1でクローズドループ制御が選択されている場合S129へ進み、FLAGCL=0でオープンループ制御が選択されている場合には、始動時と同様のデューティ制限を実行すべくS109へ戻る。
【0061】
S129へ進むと、上記デューティ比ISCONとクローズドループ制御時の下限値IMINCLとを比較し、ISCON≦IMINCLの場合S130へ進み上記デューティ比ISCONを上記下限値IMINCLに設定して(ISCON←IMINCL)、S138へ進む。上記下限値IMINCL、あるいはIMINOPは、デューティ比ISCONが不必要に低下してISCバルブ13の開度が低下しISCバルブ13による空気流量低下に伴いアイドル回転数が低下することによるフィーリングの悪化およびエンストを防止するために設定するものである。
【0062】
一方、S129で、ISCON>IMINCLと判断されてS131へ進むと、冷却水温TWに基づきテーブルTBMXCLを補間計算付で参照して上限基本値IMAXを設定する。この上限基本値IMAXはデューティ比ISCONが不必要に大きくなり、アイドル回転数が過回転になるのを防止するために設定するもので、テーブル上においては、冷却水温TWが高いほど基本特性値ISCTWが小さくなり、したがってデューティ比ISCONも小さくなるため、上限基本値IMAXも冷却水温TWが高くなるに従い小さな値が格納されている。
【0063】
その後、S132へ進むとエアコンスイッチ89がONかを判断し、ON状態の場合S133へ進み上限基本値エアコン補正ID1を設定値ISCBACで設定し(ID1←ISCBAC)、また、OFF状態の場合S134へ進み上限基本値エアコン補正ID1を0に設定する(ID1←0)。
【0064】
そして、S135で上記上限基本値IMAX に上限基本値エアコン補正ID1を加算して上限値IMAXCL を設定する(IMAXCL ←IMAX +ID1)。エアコンが駆動状態ではアイドルアップされているために上限値IMAXCL も上限基本値エアコン補正ID1(設定値ISCBAC )分だけ高く設定する。
【0065】
そして、S136で上記デューティ比ISCONと上記上限値IMAXCLとを比較し、ISCON≧IMAXCLの場合S137へ進みデューティ比ISCONを上記上限値IMAXCLに設定して(ISCON←IMAXCL)、S138へ進む。また、ISCON<IMAXCLの場合、デューティ比ISCONが許容範囲に収まっている(IMINCL<ISCON<IMAXCL)ためそのままS138へ進む。
【0066】
その後、S110,S113,S130,S136 、あるいは、S137からS138へ進むと、上記各ステップで設定したデューティ比ISCONに対応するデューティ信号DUTYをISCバルブ13のコイルへ出力して(DUTY←ISCON)、ルーチンを抜ける。
【0067】
なお、ISCバルブ13に対するデューティ信号DUTYは、次回ルーチン実行時に新たにデューティ信号DUTYが設定されるまでの間、出力保持される。
(補正値設定ルーチン)
図3は設定時間毎、例えば51.2msec毎に割込み実行される補正値設定ルーチンである。
【0068】
まず、S201でエアコン補正値設定サブルーチン(詳細は後述)を実行してエアコン補正値ISCACを設定し、S202でAT車走行レンジ補正値設定サブルーチン(詳細は後述する)を実行してAT車走行レンジ補正値ISCATDSを設定し、S203で加減速補正設定サブルーチン(詳細は後述)を実行して加減速補正DSHPTを設定し、S204でダッシュポット補正値更新サブルーチン(詳細は後述)を実行してダッシュポット補正値DHENBを更新し、S205でラジファン補正設定サブルーチン(詳細は後述)を実行してラジファン補正ISCRASを設定し、S206でパワステ補正値設定サブルーチン(詳細は後述)を実行してパワステ補正値ISCPSを設定し、S207でエアコンクラッチ補正値設定サブルーチン(詳細は後述)を実行してエアコンクラッチ補正値ISCCLHを設定してルーチンを抜ける。
【0069】
(基本特性値設定サブルーチン)
図4はメインルーチンにおいて実行(S115参照)される基本特性値ISCTW設定のサブルーチンで、基本特性値ISCTWを放置(停車状態)暖機と走行暖機とに区別して設定する。
【0070】
まず、S301〜S303で車輌が完全に停車状態かどうかを判断する。S301ではアイドルスイッチ12bがONかどうかを判断し、ON(スロットルバルブ11d,11eが全閉)の場合S302へ進み、OFF(スロットルバルブ11d,11eが開)の場合S305へ進む。
【0071】
S302ではパーキングスイッチ60がON(セレクトレバーがPレンジにセットされている状態)の場合S303へ進み、OFFの場合S305へ進む。
【0072】
S303では車速センサ56で検出した車速VSPに基づき車速VSPが0かを判断し、VSP=0(停車状態)の場合S304へ進み、VSP≠0(走行状態)の場合S305へ進む。
【0073】
S304へ進むと、放置/走行暖機判別フラグFLAGTISをセットし(FLAGTIS←1,放置暖機)、S306で冷却水温TWに基づき放置暖機基本特性値テーブルTISTWSを補間計算付きで参照して基本特性値ISCTWを設定した後、ルーチンを抜ける。
【0074】
放置暖機の基本特性値ISCTWは、変速機がPレンジにシフトされており、完全に車輌が停止した状態であるため、ISCバルブ13の開度を大きくしてISCバルブ13によって吸入空気量を増大させエンジン回転数を高めエンジン暖機完了時間を短縮させるため走行暖機よりも高い値に設定されている。なお、燃料消費率およびフィーリングを考慮しておのずと上限があるが、実験などから最適な基本特性値ISCTWを冷却水温TWをパラメータとして求めテーブル化してROM49にストアしておく。
【0075】
一方、S301,S302 ,あるいは、S303からS305へ進むと放置/走行暖機判別フラグFLAGTISをクリアし(FLAGTIS←0、走行暖機)、S307で冷却水温TW に基づき走行暖機基本特性値テーブルTISTWRを補間計算付きで参照して基本特性値ISCTWを設定した後、ルーチンを抜ける。
【0076】
走行暖機は、変速機がDレンジ(1速,2速…を含む)、あるいは、Nレンジにシフトされた状態であり、アクセル踏込み、および走行時の違和感を防ぐため実験により走行暖機時の最適な基本特性値ISCTWを冷却水温TW をパラメータとして求めROM49にテーブル化してストアしておくもので、放置暖機よりも低い値に設定されている。
【0077】
(アイドル目標回転数設定サブルーチン)
図5はメインルーチンにおいて実行(S116参照)されるアイドル目標回転数NSET設定のサブルーチンである。
【0078】
まず、S401で放置/走行暖機判別フラグFLAGTISの値を参照し、FLAGTIS=1(放置暖機)の場合S402へ進み、FLAGTIS=0(走行暖機)の場合S403へ進む。
【0079】
S402へ進むと、冷却水温TWに基づき放置暖機時目標回転数テーブルTNSETSを補間計算付きで参照して放置暖機時目標回転数NSETSを設定し、S404でRAM50の所定アドレスに格納されているアイドル目標回転数NSETを上記放置暖機時目標回転数NSETSにて設定した後(NSET←NSETS)、S406へ進む。
【0080】
上記放置暖機時目標回転数テーブルTNSETSはROM49に格納されているもので、各領域には予め実験などから求めた最適な目標回転数NSETSが格納されている。また、上記放置暖機時は変速機がPレンジにシフトされており、完全に車輌が停止した状態であるため、暖機時間を短縮すべく各領域の目標回転数NSETSは後述する走行暖機時目標回転数NSETRよりも高い値に設定されている。
【0081】
一方、上記S401で走行暖機(FLAGTIS=0)と判断されてS403へ進むと、冷却水温TWに基づき走行暖機時目標回転数テーブルTNSETRを補間計算付きで参照して走行暖機時の目標回転数NSETRを設定し、S405へ進みRAM50の所定アドレスに格納されているアイドル目標回転数NSETを上記走行暖機時目標回転数NSETRに設定した後(NSET←NSETR)、S406へ進む。
【0082】
上記走行暖機時目標回転数テーブルTNSETRはROM49に格納されているもので、目標回転数NSETRを冷却水温TW をパラメータとして求めたものであり、放置暖機よりも低い値に設定されている。
【0083】
そして、S404あるいはS405からS406へ進むと、ニュートラルスイッチ59がOFF(セレクトレバーがNレンジ以外にセット)かを判断し、OFFの場合S407へ進み、ONの場合変速機に動力が伝達されておらずエンジン1に負荷がかかってないためS409へ進む。
【0084】
また、S407へ進むとパーキングスイッチ60がOFF(セレクトレバーがPレンジ以外にセット)かを判断し、OFFの場合セレクトレバーがDレンジ、1速、2速などの走行レンジにシフトされてエンジンに負荷がかかっていると判断してS408へ進み、また、ONの場合セレクトレバーがPレンジにシフトされており、エンジン1に負荷がかかっていないためS409へ進む。
【0085】
上記S407からS408へ進むと、放置/走行暖機判別フラグFLAGTISの値を参照し、FLAGTIS=0(走行暖機)の場合S410へ進み、FLAGTIS=1(放置暖機)の場合S411へジャンプする。
【0086】
S410へ進むと、走行中であるためアイドル目標回転数NSETを設定値DNAT分シフトアップすべく、上記S403で設定した目標回転数NSETRに設定値DNATを加算した値でRAM50の所定アドレスに格納されている上記アイドル目標回転数NSETを設定し(NSET←NSETR+DNAT)、S411へ進む。
【0087】
S411へ進むとエアコンスイッチ89がONかを判断し、ONの場合S412へ進み、予め設定した走行レンジエアコンON時目標回転数下限値DARCONと上記アイドル目標回転数NSETとを比較し、NSET≦DARCONの場合S413へ進み、上記アイドル目標回転数NSETをエアコン負荷に対処するための下限リミッタである上記走行レンジエアコンON時目標回転数下限値DARCONにて設定した後(NSET←DARCON)、ルーチンを抜ける。
【0088】
また、上記S411でエアコンスイッチ89がOFFと判断され、あるいはS412でNSET>DARCONと判断された場合にはそのままルーチンを抜ける。
【0089】
一方、S406あるいはS407からS409へ進むと、エアコンスイッチ89がONかを判断し、ONの場合S414へ進みアイドル目標回転数NSETと予め設定したN,PレンジエアコンON時目標回転数下限値NARCONとを比較し、NSET≦NARCONの場合S415へ進み、上記アイドル目標回転数NSETをエアコンON時の負荷に対処するための下限リミッタであるN,PレンジエアコンON時目標回転数NARCONにて設定した後(NSET←NARCON)、ルーチンを抜ける。また、S409でエアコンスイッチ89がOFFと判断され、あるいは、S414でNSET>NARCONと判断された場合、そのままルーチンを抜ける。
【0090】
(クローズド/オープンループ制御判別サブルーチン)
図6はメインルーチンにおいて実行(S117参照)されるクローズド/オープンループ制御判別サブルーチンである。まず、S501で始動後設定時間TMASI[SEC]経過したかを判別すべく、始動後経過時間判別カウント値COUNTSTの値を参照し、COUNTST=0の場合、即ち、始動後設定時間経過したと判断した場合S502へ進み、COUNTST≠0の場合S503へ進み、始動後経過時間判別カウント値COUNTSTをカウントダウンし(COUNTST←COUNTST−1)、エンジン始動後、設定時間を経過しておらずエンジン回転数が未だ不安定と推定されるためオープンループ制御を選択すべくS527へジャンプしてクローズド/オープンループ制御判別フラグFLAGCLをクリアしてルーチンを抜ける。
【0091】
一方、S502へ進むとアイドルスイッチ12bがONかを判断し、ON(スロットルバルブ11d,11eが全閉)の場合S504へ進み、OFF(スロットルバルブ11d,11eが開)の場合、オープンループ制御を選択すべくS527へジャンプする。
【0092】
また、上記S502からS504へ進むとニュートラルスイッチ59がONかを判断し、OFFの場合S505へ進みパーキングスイッチ60がONかを判別し、ONの場合S509へ進み、OFFの場合S506へ進む。
【0093】
S504およびS505でニュートラルスイッチ59、パーキングスイッチ60が共にOFFであり、セレクトレバーがNレンジ、Pレンジ以外のレンジ、すなわち、走行レンジにセットされていると判断されてS506へ進むと、ニュートラルスイッチ59、あるいは、パーキングスイッチ60がON後、すなわち、P,Nレンジ移行後の経過時間が設定時間ATC[SEC]に達したかを判別するためのP,Nレンジ移行後経過時間判別カウント値COUNTAT(ダウンカウンタ)に、上記設定時間ATCに相当する設定値COUNTATCをセットした後S507へ進み、車速センサ56で検出した車速VSPと予め設定した走行時クローズド/オープンループ制御を判別する車速VSPFBAとを比較し、VSP<VSPFBAの場合S508へ進み、VSP≧VSPFBAの場合オープンループ制御を選択すべくS527へ進む。そして、S508へ進むと第1のクランク角センサ31出力に基づき検出したエンジン回転数NEと予め設定したクローズド/オープンループ制御判別エンジン回転数RPMFBとを比較し、NE<RPMFBの場合S513へ進み、NE≧RPMFBの場合オープンループ制御を選択すべくS527へ進む。
【0094】
また、Nレンジ、あるいはPレンジと判別されて上記S504あるいはS505からS509へ進むとP,Nレンジ移行後経過時間判別カウント値COUNTATの値を参照し、COUNTAT=0の場合走行レンジからPレンジ、あるいは、Nレンジに移行した後設定時間ATC[SEC]経過したと判断してS510へ進む。
【0095】
一方、S509でCOUNTAT≠0と判断されてS511へ進むと上記P,Nレンジ移行後経過時間判別カウント値COUNTATをカウントダウンし(COUNTAT←COUNTAT−1)、走行レンジからP,Nレンジへ移行後、設定時間が経過しておらず、エンジン負荷急変に伴い未だエンジン回転数が安定していないと推定し、S527へジャンプしてオープンループ制御を選択する。
【0096】
また、S509でCOUNTAT=0と判断されてS510へ進むと車速センサ56で検出した車速VSPと予め設定した停車時クローズド/オープンループ制御を判断する車速VSPOPAとを比較し、VSP≧VSPOPAの場合S512へ進み、上記エンジン回転数NEと前述のアイドル目標回転数設定サブルーチンで設定したアイドル目標回転数NSETに設定値NCLOPを加算した値とを比較し、NE<NSET+NCLOPの場合S513へ進み、また、NE≧NSET+NCLOPの場合、$オープンループ制御を選択すべくS527へジャンプする。
【0097】
また、上記S510でVSP<VSPOPA の場合、あるいは、S512でNE<NSET+NCLOPの場合には、S513へ進み、エンジン回転数NEとアイドル目標回転数NSETに設定値DNACFを減算した値とを比較し、NE<NSET−DNACFの場合にはS517へ進み、NE≧NSET−DNACFの場合にはS514へ進む。S514ではエアコンスイッチ89がOFFか否かを判別し、エアコンスイッチ89がONの場合には、S515で、エアコンON→OFF後の経過時間が設定時間AOFF[SEC]に達したかを判別するためのエアコンON→OFF後経過時間判別カウント値COUNTA(ダウンカウンタ)に、上記設定時間AOFFに相当する設定値COUNTAOFFをセットし(COUNTA←COUNTAOFF)、現在エアコンスイッチ89がONでエアコン補正過渡時のため、オープンループ制御を実行すべくS527へジャンプする。
【0098】
一方、S514でエアコンスイッチ89がOFFと判断されてS516へ進むと、上記エアコンON→OFF後経過時間判別カウント値COUNTAの値を参照し、COUNTA=0の場合、エアコンスイッチ89がON→OFF後設定時間AOFF[SEC]経過したと判断しS517へ進む。また、COUNTA≠0の場合S518へ進み、エアコンON→OFF後経過時間判別カウント値COUNTAをカウントダウンし(COUNTA←COUNTA−1)、オープンループ制御を選択すべくS527へ進む。
【0099】
そして、上記S513あるいS516からS517へ進むと、上記アイドル目標回転数NSETからエンジン回転数NEを減算して差回転ΔNを求め、S519で、上記差回転ΔNと設定値NDPSとを比較し、ΔN≧NDPSの場合S520へ進み、ΔN<NDPSの場合S527へ進む。
【0100】
S520へ進むと、上記差回転ΔNと設定値DNFB(但し、DNFB≧NDPS)とを比較し、ΔN≦DNFBの場合S521へ進み、ΔN>DNFBの場合クローズドループ制御条件成立と判断してS525へ進み、クローズドループ制御を選択すべく、クローズド/オープンループ制御判別フラグFLAGCLをセットしてルーチンを抜ける。
【0101】
S521へ進むと、後述する加減速補正設定サブルーチンで設定される加減速補正DSHPTの値を参照し、DSHPT=0の場合S522へ進み、DSHPT≠0の場合S523へ進む。
【0102】
S522へ進むと後述するダッシュポット補正値設定ルーチンで設定されるダッシュポット補正値DHENBの値を参照し、DHENB≠0の場合S523へ進み、DHENB=0の場合S524へ進む。
【0103】
S523では、加減速補正DSHPT=0、および、ダッシュポット補正値DHENB=0の状態が設定時間CLSD[sec]経過したかを判別するための定常状態移行判別カウント値COUNTCL(ダウンカウンタ)に上記設定時間CLSDに相当する設定値COUNTCLSDをセットし(COUNTCL←COUNTCLSD)、現在、加減速補正あるいはダッシュポット補正が実行されている過渡状態のためオープンループ制御を選択すべくS527へ進む。
【0104】
一方、S522からS524へ進むと上記定常状態移行判別カウント値COUNTCLの値を参照し、COUNTCL=0の場合定常状態でありクローズドループ制御条件成立と判断し、クローズドループ制御を選択すべくS525へ進み、COUNTCL≠0の場合S526へ進み、定常状態移行判別カウント値COUNTCLをカウントダウンした後(COUNTCL←COUNTCL−1)、S527へ進む。
【0105】
そして、S520あるいはS524からS525へ進むとクローズド/オープンループ制御判別フラグFLAGCLをセット(FLAGCL←1、クローズドループ制御選択)し、ルーチンを抜ける。
【0106】
また、S502,S503,S507,S508,S511,S512,S515,S518,S519,S523 あるいは、S526からS527へ進むとクローズド/オープンループ制御判別フラグFLAGCLをクリア(FLAGCL←0、オープンループ制御選択)し、ルーチンを抜ける。
【0107】
なお、上記フローチャートによるクローズドループ制御条件をまとめれば以下の〈1〉〜〈7〉の通りであり、それ以外ではオープンループ制御となる。
【0108】
〈1〉始動後、所定時間TMASI[sec]経過していること
〈2〉アイドルスイッチ12bがONであること
〈3〉(i)ニュートラルスイッチ59、または、パーキングスイッチ60がONで、車速VSP<VSPOPAであること
又は(ii)ニュートラルスイッチ59、またはパーキングスイッチ60がONで、VSP≧VSPOPA [Km/h]ではあるが、エンジン回転数NE<(NSET+NCLOP)[rpm]であること
又は(iii)ニュートラルスイッチ59、およびパーキングスイッチ60がともにOFFで、車速VSP<VSPFBA[Km/h]、かつ、エンジン回転数NE<RPMFB[rpm]であること
〈4〉(i)エアコンスイッチ89がONで、エアコン過渡補正値ISCACF=0、あるいは、ISCACF≠0[%]であっても、エンジン回転数NE<(NSET−DNACF)[rpm]であること
又は(ii)エアコンスイッチ89がOFFで、ON→OFF後所定時間AOFF[sec]経過後、あるいは、エンジン回転数NE<(NSET−DNACF)[rpm]であること
〈5〉ニュートラルスイッチ59、あるいは、パーキングスイッチ60がONで、OFF→ON後所定時間ATC[sec]経過後であること
〈6〉パワステ補正値ISCPS=0、あるいは、ISCPS≠0[%]であっても、差回転ΔN≧NDPS[rpm]であること
〈7〉(i)〈1〉〜〈6〉を全て満たし、かつ、加減速補正DSHPT=0[%]およびダッシュポット補正DHENB=0[%]の状態が所定時間CLSD[sec]継続しているか、または、所定時間CLSD[sec]継続していない場合でも差回転ΔN>DNFB[rpm]であること
又は(ii)〈1〉〜〈6〉を全て満たし、かつ、加減速補正DSHPT≠0[%]およびダッシュポット補正DHENB≠0[%]でも、差回転ΔN>DNFB[rpm]であること
(エアコン補正値設定サブルーチン)
図7,図8は、51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S201参照)されるエアコン補正値ISCAC設定のサブルーチンである。
【0109】
まず、S601でニュートラルスイッチ59がONかどうかを判断し、OFFの場合S602へ進み、ONの場合Nレンジと判断してS603へ進む。
【0110】
S602へ進むとパーキングスイッチ60がONかを判断し、ONの場合、Pレンジと判断してS603へ進み、OFFの場合、走行レンジと判断してS604へ進む。
【0111】
S603へ進むと走行レンジ判別フラグFLAGATをクリア(FLAGAT←0、NまたはPレンジ)しS605へ進み、また、S604へ進むと走行レンジ判別フラグFLAGATをセット(FLAGAT←1、走行レンジ)しS605へ進む。
【0112】
S605ではエアコンスイッチ89がONかを判断し、ONの場合S606へ進み、OFFの場合S607へ進み、エアコンスイッチ89がONしたときから設定時間AON[sec ]経過したかを判別するためのエアコン過渡補正終了判別カウント値COUNTAC(ダウンカウンタ)に、上記設定時間AONに相当する設定値COUNTAON をセット(COUNTAC←COUNTAON )し、S620へ進む。
【0113】
上記S605でエアコンスイッチ89がONと判断されてS606へ進むと、エアコン過渡補正終了判別カウント値COUNTACの値を参照し、COUNTAC≠0の場合、エアコンスイッチOFF→ON後設定時間AON経過していないと判断し、S608へ進み、また、COUNTAC=0の場合エアコンスイッチOFF→ON後設定時間AON経過したと判断してS611へ進む。
【0114】
S608へ進むとエアコン過渡補正終了判別カウント値COUNTACをカウントダウンした後(COUNTAC←COUNTAC−1)、S609へ進みエンジン回転数NEとアイドル目標回転数NSETに設定値DNACを加算した設定上限値とを比較しNE≦NSET+DNACの場合エンジン回転数NEが設定回転数より低いと判断しS610へ進み、また、NE>NSET+DNACの場合エンジン回転数NEが設定回転数より高いと判断してS611へ進む。
【0115】
S610へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=1(走行レンジ)の場合S612へ進み、FLAGAT=0(NまたはPレンジ)の場合S613へ進む。
【0116】
S612へ進むとエアコン過渡補正値ISCACFを設定値ACFFDにて初期値設定した後(ISCACF←ACFFD[%])、S616へ進む。また、S613へ進むとエアコン過渡補正値ISCACF を設定値ACFFNにて初期値設定した後(ISCACF←ACFFN[%])、S616へ進む。
【0117】
一方、上記S606あるいはS609からS611へ進むと、エアコン過渡補正値ISCACF が0[%]以下かを判断し、ISCACF ≦0の場合S614へ進み、上記エアコン過渡補正値ISCACFを0[%]に設定した後(ISCACF←0)、S616へ進む。また、ISCACF>0の場合、エアコン過渡補正値ISCACFから設定値DACFFを減算した値で上記エアコン過渡補正値ISCACFを更新した後(ISCACF←ISCACF−DACFF)、S616へ進む。
【0118】
上記S612〜S615のいずれかからS616へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=1、(走行レンジ)の場合S617へ進み、FLAGAT=0(P,Nレンジ)の場合S618へ進む。
【0119】
S617へ進むとエアコン定常補正値ISCACSを設定値ACDTYで設定した後(ISCACS←ACDTY)、S619へ進む。また、S618へ進むとエアコン定常補正値ISCACSをバックアップRAM50aの所定アドレスから読出したエアコン学習補正値MACDTY(後述するエアコン補正学習ルーチンで設定される)で設定した後(ISCACS←MACDTY)、S619へ進む。
【0120】
上記S617あるいはS618からS619へ進むと、上記エアコン過渡補正値ISCACFに上記エアコン定常補正値ISCACSを加算した値でエアコン補正値ISCAC[%]を設定し(ISCAC←ISCACF+ISCACS)、ルーチンを抜ける。
【0121】
一方、上記S607からS620へ進むと、エアコン補正値ISCACを読出し、エアコン補正値ISCACが0[%]以下かを判断し、ISCAC≦0の場合S621へ進みエアコン補正値ISCACを0[%]に設定した後(ISCAC←0)、ルーチンを抜ける。
【0122】
また、ISCAC>0の場合S622へ進み、上記エアコン補正値ISCACと設定値ISCACD[%](0%に近い値)とを比較し、ISCAC≧ISCACDの場合S623へ進み、ISCAC<ISCACDの場合エアコン補正値ISCACが0[%]に近づいているため制御ハンチングを防止し収束性を良くするため減算量を少くすべく、S624へ進む。
【0123】
S623へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=1(走行レンジ)の場合S626へ進み減量値DSACを設定値DSAC1D[%]で設定して(DSAC←DSAC1D)、S630へ進む。また、FLAGAT=0(P,Nレンジ)の場合S627へ進み減量値DSACを設定値DSAC1Nで設定して(DSAC←DSAC1N)、S630へ進む。
【0124】
また、上記S622からS624へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=1(走行レンジ)の場合S628へ進み減量値DSACを設定値DSAC2D(但し、DSAC1D>DSAC2D)で設定し(DSAC←DSAC2D)、S630へ進む。また、FLAGAT=0(P,Nレンジ)の場合S629へ進み、減量値DSACを設定値DSAC2N(但し、DSAC1N>DSAC2N)で設定した後(DSAC←DSAC2N)、S630へ進む。
【0125】
上記S626〜S629の何れかからS630へ進むとエアコン補正値ISCACを上記減量値DSACで減算した後(ISCAC←ISCAC−DSAC)、ルーチンを抜ける。
【0126】
上記エアコン補正値設定の代表例を図29のタイムチャートにしたがって説明する。
【0127】
エアコンスイッチ89をOFFからONにセットすると、設定時間AON[sec]の間エアコン補正値ISCACが予め設定されたエアコン定常補正値ISCACS(ACDTY,あるいは、MACDTY)とエアコン過渡補正値ISCACF(ACFFD、あるいは、ACFFN)とを加算した値に設定され(経過時間t1 〜2 )、設定時間AON[sec]の間、エンジン回転数NEがアイドル目標回転数NSETに設定値DNACを加算した回転数に近づくように制御される。
【0128】
すなわち、エアコン補正値ISCACがエアコン過渡補正値ISCACFを加算していない値で設定されると、エアコンスイッチ89をONした直後にエアコンコンプレッサ駆動による負荷が急にエンジンにかかるため、図(c)の破線で示すようにエンジン回転数が大きく変動しフィーリングが悪化する。
【0129】
したがって、エアコンスイッチ89がON後、設定時間AONの間、エアコン過渡補正値ISCACF によりエアコン補正値ISCACを大きくしてISCバルブ13に対するデューティ比ISCONを大きくし、ISCバルブ13の開度を増大させて空気量を増加させることで、エアコンスイッチON直後のエアコンコンプレッサ駆動による急激な負荷変動に伴うエンジン回転数NEの落ち込みを防止し、図(c)の実線で示すように安定したフィーリングを得ることができる。
【0130】
そして、設定時間AON[sec]経過すると、上記エアコン過渡補正値ISCACFを0になるまで演算サイクルごとに設定値DACFFずつ減量する(経過時間t2 〜t3 )。このように、エアコン過渡補正値ISCACFを経時的に徐々に減少させることで、エアコン駆動時のアイドルアップ回転数へエンジン回転数NEをスムーズに移行させることができる。
【0131】
その後、上記エアコンスイッチ89をOFFすると(経過時間t4 )、上記エアコン補正値ISCACを演算サイクルごとに設定値DSAC1DあるいはDSAC1Nだけ、上記エアコン補正値ISCACを設定値ISCACDになるまで減量する。
【0132】
そして、上記エアコン補正値ISCACが設定値ISCACDに達したら(経過時間t5 )、上記エアコン補正値ISCACを演算サイクルごとに設定値DSAC2DあるいはDSAC2Nずつ0になるまで減量する。
【0133】
すなわち、エアコンスイッチ89をONからOFFにしたとき、上記エアコン補正値ISCACをいきなり0にすると、特に可変容量エアコンコンプレッサ64を用いているため、エアコンスイッチON→OFF後所定時間内はエアコンクラッチリレー65が未だON(接続)しており、かつ、エアコン容量制御により、エアコンコンプレッサ駆動によるエンジンに対する負荷が残っているため、図(c)の破線で示すようにエンジン回転数落ちが生じてしまう。
【0134】
また、エアコンスイッチ89のOFF後、大きいままの減量値で上記エアコン補正値ISCACを減量すると図(c)の一点鎖線で示すようにISCAC=0近傍におけるエンジン回転数NEの収束性が悪くなる。
【0135】
従って、エアコンスイッチ89のOFF後、エアコン補正値ISCACが設定値ISCACDに低下するまでの間、エアコン補正値ISCACを演算周期ごとに第1の減算値ずつ減量し、ISCバルブ13の開度を徐々に減じて空気量を徐々に減少させることで、エアコンスイッチをOFFした直後に残っているエアコンコンプレッサ64からのフリクションによるエンジン回転数落ちを防止し、その後、エアコン補正値ISCACが設定値ISCACD以下に低下したら、エアコン補正値ISCACを演算周期ごとに第1の減算値よりも小さい第2の減算値ずつ0になるまで減量し、エアコン補正値ISCACを用いて設定されるデューティ比ISCONの減少率を小さくしてISCバルブ13の開度減少率を小さくすることで、エアコンOFF時のアイドル目標回転数NSETに近付く際のエンジン回転数NE の低下速度を減少させてエンジン回転数NEの目標回転数に対する収束性を向上する。
【0136】
(エアコン補正学習ルーチン)
図9はエアコンスイッチ89のOFF→ON時に割込み実行するルーチンで、まず、S101でクローズド/オープンループ制御判別フラグFLAGCLの値を参照し、FLAGCL=1(クローズドループ制御中)の場合S702へ進み、FLAGCL=0(オープンループ制御中)の場合S707へ進む。
【0137】
S702へ進むと、後述するクローズドループ補正I分更新ルーチンで設定される現在のフィードバック補正値であるクローズドループ補正I分ISCI を読出しRAM50の所定アドレスに現在のフィードバック制御値MISCIとして格納し(MISCI←ISCI )、S703でタイマTIMERLRNをスタートさせ、S704でエアコンスイッチ89がONかを判断し、ONの場合S705へ進み、OFFの場合S707へ進む。S705へ進むとクローズド/オープンループ制御判別フラグFLAGCLの値を参照し、FLAGCL=1(クローズドループ制御中)の場合S706へ進み、FLAGCL=0(オープンループ制御中)の場合S707へ進む。
【0138】
S706へ進むとタイマTIMERLRNの計時と予め設定した時間TACLRNとを比較し、TIMERLRN≧TACLRNの場合、エアコンスイッチ89がONの状態がクローズドループ制御中で設定時間経過したと判断してS708へ進み、また、TIMERLRN<TACLRNの場合S704へ戻る。
【0139】
一方、上記S701,S704あるいは、S705からS707へ進むとタイマTIMERLRNをリセット(TIMERLRN←0)した後、ルーチンを抜ける。
【0140】
また、上記S708へ進むとタイマTIMERLRNをリセット(TIMERLRN←0)した後、S709で現時点のクローズドループ補正I分ISCI を読出し、RAM50の所定アドレスに設定時間TACLRN経過後のフィードバック制御値LISCI として格納する。
【0141】
そして、S710へ進み、バックアップRAM50aの所定アドレスに格納されているエアコン補正学習値MACDTYを次式から求めた値で更新し、ルーチンを抜ける。
【0142】

Figure 0003612286
図10はエアコンスイッチ89のON→OFF時に割込み実行するルーチンで、まず、S801でクローズド/オープンループ制御判別フラグFLAGCLの値を参照し、FLAGCL=1(クローズドループ制御中)の場合S802へ進み、FLAGCL=0(オープンループ制御中)の場合、そのままルーチンを抜ける。
【0143】
S802へ進むとRAM50の所定アドレスに格納されているフィードバック制御値MISCI(エアコンスイッチ89がOFF→ON時の値)、を読出し、S803で現在のクローズドループ補正I分ISCI を読出し、RAM50の所定のアドレスに現在のフィードバック制御値LISCI として格納する(LISCI ←ISCI )。
【0144】
そして、S804へ進み、バックアップRAM50aの所定アドレスに格納されているエアコン補正学習値MACDTYを次式から求めた値で更新し、ルーチンを抜ける。
【0145】
MACDTY←MACDTY+[(LISCI −MISCI)×KACON]
以上のように、エアコンON時、クローズドループ制御中の場合、そのときのフィードバック制御値MISCIとその後同一条件(クローズドループ制御中、かつ、エアコンスイッチ89がONの状態)が設定時間TACLRN継続した時のフィードバック制御値LISCIとの差に基づきエアコン補正学習値MACDTYを設定し、前述のエアコン補正値設定サブルーチンにおいてP,Nレンジにおけるエアコン補正値ISCACを設定する際に、エアコン定常補正値ISCACSとしてエアコン補正学習値MACDTYを用いることでISCバルブ13の経年劣化などを補償し、エアコンON時において所定のアイドルアップを常に行うことができる。なお、走行レンジ時においてはエンジン負荷がN,Pレンジに較べて相対的に大きくなるためISCバルブ13の劣化の影響は少なく、したがって、学習補正値を用いる必要はない。
【0146】
また、エアコンスイッチ89がOFF→ON時の割込みのみならず、ON→OFF時の割込みをも実行することで、その後に上記エアコンスイッチ89がOFF→ON時に実行する割込みルーチンで設定するエアコン補正学習値MACDTYと前回のOFF→ON時に設定したエアコン補正学習値MACDTYとの間のずれを補償することができる。
【0147】
(AT車走行レンジ補正値設定サブルーチン)
図11,図12は51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S202参照)されるAT車走行レンジ補正値ISCATDS設定のサブルーチンである。
【0148】
まず、S901で前述したエアコン補正値設定サブルーチンで設定される走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=1(走行レンジ)の場合S902へ進み、FLAGAT=0(P,Nレンジ)の場合S903へ進む。S902へ進むと、後述するS913で設定するP,Nレンジから走行レンジへシフトした際の遅れ時間ISCAT1[sec]に相当する走行レンジ移行判別カウント値COUNTAT1(ダウンカウンタ)の値を参照し、COUNTAT1=0の場合S904へ進む。さらに、COUNTAT1≠0の場合S905へ進み、走行レンジ移行判別カウント値COUNTAT1をカウントダウンして(COUNTAT1←COUNTAT1−1)S908へ進む。
【0149】
また、上記S902で走行レンジ状態(ニュートラルスイッチ59、パーキングスイッチ60が共にOFF)が遅れ時間ISCAT1以上継続した(COUNTAT1=0)と判断してS904へ進むと、RAM50の所定アドレスに格納されているAT車走行レンジ補正値ISCATDSと設定値DRGDTYとを比較し、ISCATDS≧DRGDTYの場合、S906へ進み上記AT車走行レンジ補正値ISCATDSを上記設定値DRGDTYで設定して(ISCATDS←DRGDTY)、S908へ進む。また、ISCATDS<DRGDTYの場合、S907へ進み上記AT車走行レンジ補正値ISCATDSに小量設定値DLTAT1(但し、DLTAT1<DRGDTY)を加算した値で上記AT車走行レンジ補正値ISCATDSを更新して(ISCATDS←ISCATDS+DLTAT1)、S908へ進む。
【0150】
そして、S905,S906、あるいは、S907からS908へ進むと走行レンジからN,Pレンジへシフトした際の遅れ時間ISCAT2 [sec]に相当する設定値COUNTISCAT2でN,Pレンジ移行判別カウント値COUNTAT2(ダウンカウンタ)をセットして(COUNTAT2←COUNTISCAT2)、ルーチンを抜ける。
【0151】
一方、S901でN,Pレンジ(FLAGAT=0)と判断されてS903へ進むと、N,Pレンジ移行判別カウント値COUNTAT2 の値を参照し、COUNTAT2≠0の場合S909へ進み、上記カウント値COUNTAT2をカウントダウンして(COUNTAT2←COUNTAT2−1)、S913へ進む。
【0152】
また、上記S903でCOUNTAT2=0と判断されてS910へ進むと、上記AT車走行レンジ補正値ISCATDSが0以下かを判断し、ISCATDS>0の場合S911へ進みAT車走行レンジ補正値ISCATDS小量から設定値DLTAT2を減算した値で上記AT車走行レンジ補正値ISCATDSを設定して(ISCATDS←ISCATDS−DLTAT2)、S913へ進む。また、ISCATDS≦0の場合S912へ進み上記AT車走行レンジ補正値ISCATDSを0[%]に設定(ISCATDS←0)して、S913へ進む。
【0153】
そして、S909,S911、あるいは、S912からS913へ進むと、N,Pレンジから走行レンジへシフトした際の遅れ時間ISCAT1[sec ]に相当するカウント値COUNTISCAT1で走行レンジ移行判別カウント値COUNTAT1をセットした後(COUNTAT1←COUNTISCAT1)、ルーチンを抜ける。
【0154】
上記AT車走行レンジ補正値設定の代表例を図30のタイムチャートに従って説明する。
【0155】
N,Pレンジ(FLAGAT=0)から走行レンジ(FLAGAT=1)にシフトすると(経過時間t1 )、所定遅れ時間ISCAT1[sec]の計時が開始され、この遅れ時間ISCAT1[sec]経過後、演算サイクルごとに小量の設定値DLTAT1[%]を加算し(ISCATDS←ISCATDS+DLTAT1)、AT車走行レンジ補正値ISCATDS[%]が設定値DRGDTY[%]に達したら(経過時間t2 )、上記AT車走行レンジ補正値ISCATDS[%]を上記設定値DRGDTY[%]で固定する(経過時間t2 〜t3 )。
【0156】
N,Pレンジから走行レンジへシフトした際、微小の遅れ時間をもってエンジンに負荷がかかるため、ただちにAT車走行レンジ補正値ISCATDSを0→設定値DRGDTY[%]に設定すると図(c)の破線で示すようにエンジン回転数NE が一時的に上昇してフィーリングが悪化する。
【0157】
また、AT車走行レンジ補正を行わないとN,Pレンジから走行レンジにシフトしたとき急激にエンジン負荷がかかり、図(c)の二点鎖線で示すようにエンジン回転数が低下してしまい、クローズドループ補正I分ISCによってエンジン回転数が収束するまでに時間がかかってしまう。
【0158】
従って、走行レンジにシフトした際、エンジン負荷の伝達遅れ時間に相当する所定遅れ時間ISCAT1 経過後に、AT車走行レンジ補正値ISCATDSを設定値DRGDTYに達するまで徐々に増加させてAT車走行レンジ補正値ISCATDSを用いて設定されるデューティ比ISCONを徐々に増加し、ISCバルブ13により空気量を徐々に増加させることで、エンジン回転数変動が防止され、フィーリングが向上する。
【0159】
一方、走行レンジ(FLAGAT=1)からN,Pレンジ(FLAGAT=0)にシフトすると(経過時間t3 )、所定遅れ時間ISCAT2[sec]の計時が開始され、この遅れ時間ISCAT2[sec]経過後、AT車走行レンジ補正値ISCATDSを演算サイクルごとに小量の設定値DLTAT2[%]で0になるまで減算する(ISCATDS←ISCATDS−DLTAT2、経過時間t4 )。
【0160】
走行レンジからN,Pレンジへシフトした際、微小の遅れ時間をもってエンジン負荷が急減するため、直ちにAT車走行レンジ補正値ISCATDSを0にすると、変速機側のエンジンへの負荷が完全にはなくなっていないので、図(c)の破線で示すようにエンジン回転数が一時的に低下しフィーリングが悪化する。
【0161】
また、AT車走行レンジ補正を行わないと走行レンジからN,Pレンジへシフトした際、急激にエンジン負荷が減少するため頭(c)の二点鎖線で示すようにエンジン回転数の吹上りを生じフィーリングが悪くなる。
【0162】
従って、N,Pレンジへシフトした際、所定遅れ時間ISCAT2経過後に、AT車走行レンジ補正値ISCATDSを0[%]になるまで徐々に減少させてデューティ比ISCONを徐々に減じ、ISCバルブ13により空気量を徐々に減少させることで、このときのエンジン回転数変動を防止し、フィーリングを向上する。
(加減速補正設定サブルーチン)
図13,図14は51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S203参照)される加減速補正DSHPT設定のサブルーチンである。
【0163】
まず、S1001 でアイドルスイッチ12bがOFFかを判断し、OFF(スロットルバルブ11d,11eが開)の場合S1002 へ進み、ON(スロットルバルブ11d,11eが全閉)の場合S1003 へ進む。
【0164】
S1002 へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1004 へ進み、FLAGAT=1(走行レンジ)の場合S1005 へ進む。
【0165】
S1004 へ進むとスロットル開度センサ12aで検出したスロットル開度THVに基づきROM49の一連のアドレスに格納されているN,Pレンジ用加減速補正テーブルTDASHNを補間計算付きで参照して加減速補正DSHPT[%]を設定した後S1006 へ進む。
【0166】
また、S1002 からS1005 へ進むと上記スロットル開度THVに基づきROM49の一連のアドレスに格納されている走行レンジ用加減速補正テーブルTDASHDを補間計算付きで参照して加減速補正DSHPT[%]を設定した後S1006 へ進む。
【0167】
セレクトレバーがNレンジあるいはPレンジにシフトされている状態ではエンジンに負荷がかかっておらず、スロットルバルブ11d,11eが開となる場合はレーシング、空吹かしなどの状態であり、スロットル開度変化に応じるエンジン回転数NEの変化が走行レンジのときよりも大きい。
【0168】
したがって、N,Pレンジ用加減速補正テーブルTDASHNの各領域に格納されているスロットル開度THVに対応する加減速補正DSHPTは、走行レンジ時に採用する走行レンジ用加減速補正テーブルTDASHDに格納されている加減速補正DSHPTに比し大きな値に設定されており、これにより、エンジン負荷に応じた制御性を得ることができる。
【0169】
そして、S1004 あるいはS1005 からS1006 へ進むと上記加減速補正DSHPTでRAM50の所定アドレスに格納されている今回の加減速補正(DSHPT)NEW を設定する((DSHPT)NEW←DSHPT)。
【0170】
その後、S1007 へ進むと、上記今回の加減速補正(DSHPT)NEWと、前回のルーチンで設定した加減速補正(DSHPT)OLDとを比較し、(DSHPT)NEW<(DSHPT)OLD(スロットル開度減少)の場合S1008 へ進み、(DSHPT)NEW≧(DSHPT)OLD(スロットル開度増加あるいは変化なし)の場合S1030 へジャンプする。
【0171】
S1008 へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1009 へ進み、FLAGAT=1(走行レンジ)の場合S1010 へ進む。
【0172】
S1009 へ進むと設定値DDASHNで減量値DDASH[%]を設定して(DDASH←DDASHN)、S1011 へ進む。また、S1010 へ進むと設定値DDASHD(但し、DDASHN>DDASHD)で減量値DDASH[%]を設定して(DDASH←DDASHD)、S1011 へ進む。
【0173】
なお、スロットル開度減少時のエンジン回転数落ちは走行レンジの際よりも無負荷状態であるN,Pレンジの方が敏速であるため、(DSHPT)NEW<(DSHPT)OLDのときの加減速補正値DSHPTの減量値DDASHをN,Pレンジのときには走行レンジに比し大きく設定している。
【0174】
そして、S1011 へ進むと前回の加減速補正(DSHPT)OLDから上記減量値DDASHを減算した値で加減速補正値DSHPTを設定する(DSHPT←(DSHPT)OLD−DDASH)。
【0175】
一方、上記S1001 でアイドルスイッチ12bがONのスロットル全閉状態と判断されてS1003 へ進むと、走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1012 へ進み、FLAGAT=1(走行レンジ)の場合S1013 へ進む。
【0176】
S1012 へ進むと設定値NDASHN[%]でオフセット値NDASHを設定し(NDASH←NDASHN)、また、S1013 へ進むと設定値NDASHD(但し、NDASHN>NDASHD)[%]でオフセット値NDASHを設定し(NDASH←NDASHD)、その後、それぞれS1014 へ進む。
【0177】
そして、S1014 へ進むとエンジン回転数NEとアイドル目標回転数NSETに上記オフセット値NDASHを加算した値とを比較し、NE≧NSET+NDASHの場合S1015 へ進み、NE<NSET+NDASHの場合S1016 へ進む。
【0178】
S1015 へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1017 へ進みダッシュポット保持値RDASHを予め設定した設定値RDASHN[%]で設定し(RDASH←RDASHN)、また、FLAGAT=1(走行レンジ)の場合S1018 へ進みダッシュポット保持値RDASHを予め設定した設定値RDASHD[%]で設定し(RDASH←RDASHD)、その後、S1019 へそれぞれ進む。
【0179】
そして、S1019 へ進むとRAM50の所定アドレスに格納されている現時点の加減速補正DSHPTを読出し、この加減速補正DSHPTと上記ダッシュポット保持値RDASHとを比較し、DSHPT≦RDASHの場合S1020 へ進み、上記ダッシュポット保持値RDASHにて加減速補正DSHPTを設定し(DSHPT←RDASH)、S1030 へ進む。
【0180】
また、S1019 でDSHPT>RDASHと判断されてS1021 へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1022 へ進み、FLAGAT=1(走行レンジ)の場合S1023 へ進む。
【0181】
S1022 へ進むと設定値DDSH1N[%]で第1の減量値DDSH1を設定し(DDSH1←DDSH1N)、また、S1023 へ進むと設定値DDSH1D(但し、DDSH1D<DDSH1N)[%]で第1の減量値DDSH1を設定し(DDSH1←DDSH1D)、その後、S1024 へそれぞれ進む。
【0182】
そして、S1024 へ進むと加減速補正DSHPTから上記第1の減量値DDSH1を減算した値で上記加減速補正DSHPTを更新し(DSHPT←DSHPT−DDSH1)、S1030 へ進む。
【0183】
一方、S1014 でNE<NSET+NDASHと判断されてS1016 へ進むと、加減速補正DSHPTが0以下かを判断し、DSHPT≦0の場合S1025 へ進み、加減速補正DSHPTを0に固定(DSHPT←0)した後、S1030 へ進む。また、DSHPT>0の場合S1026 へ進む。
【0184】
S1026 へ進むと、走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1027 へ進み、FLAGAT=1(走行レンジ)の場合1028へ進む。
【0185】
S1027 へ進むと設定値DDSH2N(但し、DDSH1N>DDSH2N)[%]で第2の減量値DDSH2を設定し(DDSH2←DDSH2N)、また、S1028 へ進むと設定値DDSH2D(但し、DDSH1D>DDSH2D)[%]で第2の減量値DDSH2を設定し(DDSH2←DDSH2D)、それぞれS1029 へ進む。
【0186】
S1029 では加減速補正DSHPTから上記第2の減量値DDSH2を減算した値で上記加減速補正DSHPTを更新した後(DSHPT←DSHPT−DDSH2)、S1030 へ進む。
【0187】
上記第1,第2の減量値DDSH1,DDSH2を設定する各設定値DDSH1N,DDSH2N,DDSH1D,DDSH2DをDDSH1N>DDSH2N,DDSH1D>DDSH2Dに設定したことで、スロットル全閉時エンジン回転数NE がアイドル目標回転数NSETに低下する際に、エンジン回転数NEがアイドル目標回転数NSETに近付いたら加減速補正DSHPTに対する減量値を小さな値とすることにより、エンジン回転数NEのアイドル目標回転数NSETへの収束性がよくなり、制御ハンチングを防止することができる。
【0188】
そして、S1007,S1011,S1020,S1024,S1025 あるいは、S1029 からS1030 へ進むと、S1004,S1005,S1011,S1020,S1024,S1025,あるいは、S1029 で設定した加減速補正DSHPTでRAM50の所定アドレスに格納されている前回の加減速補正(DSHPT)OLD を更新し((DSHPT)OLD←DSHPT)、ルーチンを抜ける。
【0189】
上記加減速補正設定の代表例を図31のタイムチャートに従って説明する。
【0190】
アイドルスイッチ12bがON(スロットルバルブ11d,11eが全閉)からOFF(スロットルバルブ11d,11eが開)になり(経過時間t1 )、スロットル開度THVが次第に大きくなる加速運転では、エンジン回転数NEがスロットル開度THVに応じて上昇する。このとき、スロットル開度THVに基づいて設定する加減速補正DSHPTが演算周期ごとに上昇し、この加減速補正DSHPT(ISCTR)を取入れて設定するISCバルブ13のデューティ比ISCONが大きくなり、ISCバルブ13の開度が増大される(経過時間t1 〜t2 およびt3 〜t4 )。
【0191】
また、スロットル開度THVがほぼ一定の定常運転では上記加減速補正DSHPTが一定になる(経過時間t2 〜t3 、およびt4 〜t5 )。
【0192】
スロットルバルブ11d,11eが急閉すると吸気管圧力が急速に低下し、吸気ポート4、および、インテークマニホルド5の内壁面等に付着していた付着燃料が燃焼室に一気に吸込まれると共に、スロットルバルブ11d,11eの急閉に伴う吸入空気量の減少により空燃比のオーバーリッチが生起されるが、スロットルバルブ11d,11eの閉弁移行時(経過時間t5 )において、スロットル開度THVに応じて加減速補正DSHPTが設定されており、この加減速補正DSHPT分、デューティ比ISCONが大きく設定されることにより、スロットル開度THVに比例してISCバルブ13の開度が確保され、スロットルバルブ11d,11eの閉弁移行後、アイドルスイッチ12bがON(スロットル全閉)するまでの間(経過時間t5 〜t6 )、加減速補正DSHPTはスロットルバルブ11d,11eの閉弁速度に拘らず、演算周期(51.2msec)毎に設定値DDASHずつ減少されるため、この間、ISCバルブ13によって空気量が確保されると共に、吸気管圧力の低下が補償され、空燃比のオーバーリッチが防止される。これによって、スロットルバルブ急閉直後の空燃比オーバーリッチに起因する失火、異常燃焼が防止されて、排気エミッションが改善される。
【0193】
なお、スロットル開弁状態からスロットル全閉状態に移行する際の加減速補正DSHPTは、スロットル開度THVに応じた値に設定されているので、スロットル全閉移行後のダッシュポット期間が常に適正に得られる。
【0194】
そして、アイドルスイッチ12bがONするとダッシュポット保持値RDASHまで上記加減速補正DSHPTを演算周期ごとに第1の設定値DDSH1(但し、DDASH>DDSH1>DDSH2)ずつ減少させる(経過時間t6 〜t7 )。これにより、スロットル全閉移行時には加減速補正DSHPTの減少率が比較的大きくなり、目標回転数への復帰時間が短縮される。
【0195】
その後、加減速補正DSHPTが上記ダッシュポット保持値RDASHに達したら、この値を、上記エンジン回転数NEがアイドル目標回転数NSETにオフセット値NDASHを加算した値に低下するまで維持し(経過時間t7 〜t8 )、エンジン回転数NEがアイドル目標回転数NSET にオフセット値NDASHを加算した値により低下したら、上記エンジン回転数NEがアイドル目標回転数NSETに達するまで、上記第1の減量値DDSH1より小さい値の第2の減量値DDSH2で上記加減速補正DSHPTを演算周期ごとに減算する(経過時間t8 以後)。
【0196】
その結果、アイドルスイッチ12bのON後、エンジン回転数NEがアイドル目標回転数NSETに達するまでの間、上記加減速補正DSHPTを用いて設定されるデューティ比ISCONの減少率が順次小さくなり、ISCバルブ13の開度減少率も順次小さくなる。これにより、アイドル目標回転数NSETに近付く際のエンジン回転数NEの低下速度を減少させ、エンストを防止すると共に、エンジン回転数NEのアイドル目標回転数NSETへの収束性を向上する。
【0197】
(ダッシュポット補正値設定割込みルーチン)
図15は設定時間毎、例えば100msec 毎に割込み実行するダッシュポット補正値設定ルーチンである。
【0198】
まず、S1101 でアイドルスイッチ12bがONかを判断し、ON(スロットルバルブ11d,11eが全閉)の場合S1102 へ進み、OFF(スロットルバルブ11d,11eが開)の場合S1104 へ進む。
【0199】
S1102 ではエンジン回転数NE と予め設定したダッシュポット判別回転数DHEKNとを比較し、NE<DHEKNの場合S1103 へ進み、NE≧DHEKNの場合S1104 へ進む。このダッシュポット判別回転数DHEKNはエアコン補正などのアイドルアップを加味したアイドル回転数近傍の値(例えば1900rpm)である。
【0200】
S1101 あるいはS1102 からS1104 へ進むとダッシュポット補正値DHENBを0に設定(DHENB←0)した後、S1113 へ進む。
【0201】
また、S1102 からS1103 へ進むと前回のルーチン実行時(100msec前)に設定しRAM50の所定アドレスに格納したエンジン回転数(NE)OLDを読出し、S1105 で、前回のエンジン回転数(NE)OLDと現在のエンジン回転数NEとの差から設定時間(100msec)におけるエンジン回転数低下量NDOWNを算出する(NDOWN←(NE)OLD −NE)。
【0202】
そして、S1106 で上記エンジン回転数低下量NDOWNと設定値DNES1とを比較し、NDOWN<DNES1の場合S1107 へ進み、エンジン回転数低下量が少ない状態(緩減速)であることを示すエンジン回転数低下量判別フラグFLAGDHをセット(FLAGDH←1)し、S1114 へ進む。
【0203】
また、S1106 でNDOWN≧DNES1と判断されてS1108 へ進むと、上記エンジン回転数低下量NDOWNと設定値DNES2(但し、DNES1<DNES2)とを比較し、NDOWN<DNES2の場合S1109 へ進みダッシュポット補正値DHENBを設定値DHNEB1[%]で設定し(DHENB←DHNEB1)、S1113 へ進む。また、NDOWN≧DNES2の場合S1110 へ進む。
【0204】
S1110 では、上記エンジン回転数低下量NDOWNと設定値DNES3(但し、DNES2<DNES3)とを比較し、NDOWN<DNES3の場合S111へ進みダッシュポット補正値DHENBを設定値DHNEB2(但し、DHNEB1<DHNEB2)[%]で設定し(DHENB←DHNEB2)、S1113 へ進む。また、NDOWN≧DNES3の場合S1112 へ進みダッシュポット補正値DHENBを設定値DHNEB3(但し、DHNEB2<DHNEB3)[%]で設定し(DHENB←DHNEB3)、S1113 へ進む。
【0205】
上記S1104,S1109,S1111,S1112 からS1113 へ進むとエンジン回転数低下量判別フラグFLAGDHをクリア(FLAGDH←0、低下量大)し、S1114 へ進む。
【0206】
そして、S1107 あるいはS1113 からS1114 へ進むと、現在のエンジン回転数NEでRAM50の所定アドレスに格納されている前回のエンジン回転数(NE)OLDを更新((NE)OLD←NE)し、ルーチンを抜ける。
【0207】
また、図16は51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S204参照)されるダッシュポット補正値更新サブルーチンである。
【0208】
まず、S1201 でエンジン回転数低下量判別フラグFLAGDHの値を参照し、FLAGDH=1(低下量小)の場合S1202 へ進み、FLAGDH=0(低下量大)の場合ルーチンを抜ける。
【0209】
S1202 へ進むとダッシュポット補正値DHENB[%]が0以下かを判別し、DHENB≦0の場合S1203 へ進みダッシュポット補正値DHENBを0[%]に設定(DHENB←0)した後、ルーチンを抜ける。
【0210】
また、S1202 でDHENB>0と判断されてS1204 へ進むと、上記ダッシュポット補正値DHENBから設定値DDFEB(微小値)で減算した値で、このダッシュポット補正値DHENBを更新(DHENB←DHENB−DDFEB)し、ルーチンを抜ける。
【0211】
図32にダッシュポット補正値設定の代表例のタイムチャートを示す。
【0212】
スロットルバルブ11d,11eの急閉による急減速時等、アイドルスイッチ12bがOFF状態からON状態(スロットルバルブ11d,11eが全閉状態)へ移行してエンジン回転数NEが急激に低下し、ダッシュポット判別回転数DHEKN(例えば、1900rpm)以下になり、エンジン回転数低下量NDOWNの比較的大きい(DNES3≦NDOWN)区間(経過時間t1 〜t2 )では大きな値の設定値DHNEB3[%]でダッシュポット補正値DHENBを設定する。
【0213】
エンジン回転数NEが急激に落ち込んだときにダッシュポット補正を行わないと、図の破線で示すように、エンジン回転数がそのまま落込みエンストしてしまう。そのため、スロットルバルブ11d,11eが開の状態から全閉状態へ移行したときに、エンジン回転数NEがアイドル回転数近傍の設定値DHEKN(例えば、1900rpm)以下に急激に低下した際、エンジン回転数の低下量NDOWN(=(NE)OLD−NE)が大きいほどダッシュポット補正値DHENBを大きくすることで、ISCバルブ13に対するデューティ比ISCONを大きくし、このISCバルブ13の開度を大きくして空気量を増加させてエンジン回転数NEの落込みを防ぐ。
【0214】
その後、エンジン回転数低下量NDOWNが、DNES2≦NDOWN<DNES3の区間(経過時間t2 〜t3 )では中間の値の設定値DHNEB2[%]でダッシュポット補正値DHENBを設定する。
【0215】
次いで、エンジン回転数低下量NDOWNが、DNES1≦NDOWN<DNES2の区間(経過時間t3 〜t4 )では比較的小さな値の設定値DHNEB1[%]でダッシュポット補正値DHENBを設定する。
【0216】
エンジン回転数低下量NDOWNが比較的小さくなった状態でもダッシュポット補正値DHENBを設定値DHNEB3のままにしておくと、図の一点鎖線で示すように回転変動を生じアイドル回転数への収束性が悪くなる。
【0217】
そして、上記エンジン回転数低下量NDOWNが、NDOWN<DNES1の区間(経過時間t4 以後)では上記ダッシュポット補正値DHENBを0になるまで演算周期(51.2msec)毎に微小な設定値DDFEBずつ減算する。
【0218】
すなわち、経過時間t4 のときにダッシュポット補正値DHENBを0にするとISCバルブ13に対するデューティ比ISCONが急減するためにエンジン回転数NEが、図の破線で示すように落込んでしまいアイドル回転数への収束性が悪くなってしまう。したがって、エンジン回転数NEの低下量NDOWNの減少に伴い、ダッシュポット補正値DHENBを減少させることでアイドル回転数への収束性を良くする。
【0219】
(ラジファン補正設定サブルーチン)
図17は51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S205参照)されるラジファン補正ISCRAS 設定のサブルーチンである。
【0220】
まず、S1301 で、メインコンピュータ41内のデータに基づいてラジエータファン62の動作を制御するラジエータファンリレー63がONかを判別し、ONの場合S1302 へ進み、OFFの場合S1303 へ進む。
【0221】
S1302 へ進むとRAM50の所定アドレスに格納されているラジファン補正ISCRASを設定値RAS[%]で設定し(ISCRAS←RAS)、ルーチンを抜ける。また、S1303 へ進むと上記ラジファン補正ISCRASを0[%]に設定し(ISCRAS←0)、ルーチンを抜ける。
【0222】
なお、上記ラジファン補正ISCRASの設定をタイムチャートによって示せば図33の通りである。
【0223】
ラジエータファン62が作動しているときは、ラジエータファンモータにより消費電流が大きく、オルタネータ(発電機)の発電量も大きくなるため、エンジン1にかかる負荷もこれに相応する分大きくなりエンジン回転数NEが低下しようとするが、ラジエータファン62がONのとき、ISCバルブ13に対するデューティ比ISCONをラジファン補正ISCRASによって大きくして、ISCバルブ13の開度を増大させることによりエンジン回転数NEの低下を防止する。
【0224】
(パワステ補正値設定サブルーチン)
図18,図19は51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S206参照)されるパワステ補正値ISCPS設定のサブルーチンである。このサブルーチンで設定されるパワステ補正値ISCPSは、転舵角が大きくパワーステアリングオイルポンプを駆動するエンジン1の負荷が大きくなり、エンジン回転数NEが低下するのを補償するものである。
【0225】
まず、S1401 でパワーステアリング転舵スイッチ58(以下「パワステ転舵スイッチ」と略称する)がONかを判断し、ON(転舵角大)の場合S1402 へ進み、OFF(転舵角小)の場合S1409 へ進む。
【0226】
S1402 へ進むと車速センサ56で検出した車速VSPと設定値VSPPS[Km/h]とを比較し、VSP≦VSPPSの場合S1403 へ進み、VSP>VSPPSの場合S1409 へ進む。
【0227】
S1403 へ進むと、冷却水温センサ21で検出した冷却水温TW と設定値TWPS [℃]とを比較し、TW≧TWPSの場合S1404 へ進み、TW<TWPSの場合S1409 へ進む。
【0228】
上記S1402 において、車速VSPが設定値VSPPS以上のときには走行によるエンジン負荷が大きいためパワステオイルポンプを駆動するエンジン負荷が相対的に小さくなる。したがって、パワステ補正値ISCPSによる補償が不要になる。また、S1403 において、暖機未完(TW<TWPS)のときには基本特性値ISCTWが大きく設定されるので相対的にパワステオイルポンプを駆動するためのエンジン負荷が小さくなり、パワステ補正値ISCPSによる補償が不要になる。
【0229】
S1404 へ進むと、前回ルーチン実行時にアイドル状態の場合に1にセットされているアイドル回転数判別フラグFLAGPSの値を参照し、FLAGPS=1(前回アイドル状態)の場合S1405 へ進み、FLAGPS=0(前回アイドル解除状態)の場合S1406 へ進む。
【0230】
S1405 へ進むと設定値ISPSNH[rpm]でアイドル判別回転数ISPSNを設定し(ISPSN←ISPSNH)、S1407 へ進む。また、S1406 へ進むと設定値ISPSNL(但し、ISPSNL<ISPSNH)[rpm]でアイドル判別回転数ISPSNを設定し(ISPSN←ISPSNL)、S1407 へ進む。
図34に示すように、アイドル判別回転数ISPSNを設定する際にアイドル状態(FLAGPS=1)とアイドル解除状態(FLAGPS=0)とでヒステリシスを設けることにより、S1407 におけるアイドル状態判別の制御ハンチングを防止するようにしている
S1407 へ進むとエンジン回転数NEとアイドル判別回転数ISPSNとを比較し、NE>ISPSNの場合、アイドル解除状態と判断しS1408 へ進みアイドル回転数判別フラグFLAGPSをクリア(FLAGPS←0)した後S1409 へ進む。また、NE≦ISPSNの場合アイドル状態と判断し、S1410 へ進む。
【0231】
S1410 ではエアコンスイッチ89がOFFかを判断し、OFFの場合S1411 へ進み、ONの場合S1412 へ進む。
【0232】
S1411 へ進むと、メインコンピュータ41で演算したISCバルブ13に対するデューティ比ISCONに基づき、エアコンOFF時のパワステ補正値ISCPSをテーブル参照あるいは演算により設定し、S1413 へ進む。また、S1412 へ進むとメインコンピュータ41で演算したISCバルブ13に対するデューティ比ISCONに基づきエアコンON時のパワステ補正値ISCPSをテーブル参照あるいは演算により設定しS1413 へ進む。
【0233】
図35(b)に示すように、実線で示すエアコンOFF時のパワステ補正値ISCPSは、一点鎖線で示すエアコンON時のパワステ補正値ISCPSよりも大きく設定する。すなわち、エアコンON時には、エアコン補正値ISCACによりデューティ比ISCONが大きく設定されるため、相対的にパワステによるエンジン負荷が少くなり、よって、エアコンOFF時よりもパワステ補正値ISCPSを小さく設定している。
【0234】
また、S1411 あるいはS1412 で設定するパワステ補正値ISCPSは、デューティ比ISCONが大きい(小さい)ときにはエンジン1への負荷が大きく(小さく)、ISCバルブ13の開度を大きく(小さく)して空気量を増加(減少)させ、エンジン回転数NEの低下(上昇)を防止しているが、このときのエンジンにかかっている全負荷に対してパワステポンプによる負荷は相対的に小さい(大きい)ため小さく(大きく)設定している。
【0235】
そして、上記S1411 あるいはS1412 からS1413 へ進むと、アイドル回転数判別フラグFLAGPSをセット(FLAGPS←1)した後、ルーチンを抜ける。
【0236】
また、S1401,S1402,S1403,あるいは、S1408 からS1409 へ進むと、パワステ補正値ISCPSが0以下かを判別し、ISCPS≦0の場合S1414 へ進みパワステ補正値ISCPSを0[%]に設定した後(ISCPS←0)、ルーチンを抜ける。ISCPS>0の場合にはS1415 へ進み、パワステ補正値ISCPSから設定値DISCPSを減算してパワステ補正値ISCPSを更新した後(ISCPS←ISCPS−DISCPS)、ルーチンを抜ける。
【0237】
図35にパワステ補正値設定の代表的なタイムチャートを示す。
【0238】
暖機完了後のアイドル時、転舵角が大となりパワステ転舵スイッチ58がONすると、デューティ比ISCONに応じたパワステ補正値ISCPS(エアコンスイッチ89がOFFのときとONのときによって相違する)が設定される(経過時間t1 )。
【0239】
これにより、転舵角大に伴うパワステオイルポンプ駆動負荷が増大した際に、パワステ補正値ISCPSによりISCバルブ13に対するデューティ比ISCONを大きくし、ISCバルブ13の開度を大きくして空気量を増加させることでエンジン回転数の落込みが防止される。
【0240】
また、転舵角が小さくなり、パワステ転舵スイッチ58がONからOFFに切換った直後(経過時間t2 )、直ちにパワステ補正値ISCPSを0[%]にすると、ISCバルブ13に対するデューティ比ISCONがパワステ補正値ISCPS分、急減し、かつ、低下してはいるがパワステオイルポンプ駆動負荷が存在するため、図(c)の二点鎖線で示すようにエンジン回転数NEが大きく変動してしまうが、上記パワステ補正値ISCPSが0になるまで、演算周期(51.2msec)毎に上記パワステ補正値ISCPSを設定値DISCPSずつ減算することで、ISCバルブ13の開度を徐々に減少させて空気量を補償し、これによって、図(c)の実線で示すようにエンジン回転数NEの変動が防止される。
【0241】
(エアコンクラッチ補正値設定サブルーチン)
図20は51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S207参照)されるエアコンクラッチ補正値ISCCLH設定のサブルーチンである。まず、S1501 でエアコンスイッチ89がONかを判断し、ONの場合S1502 へ進み、OFFの場合S1503 へ進む。
【0242】
S1502 へ進むとエアコンスイッチ89がON→OFF後設定時間TCLH[SEC]経過したかを判別するためのエアコンON→OFF後経過時間判別カウント値COUNTCLH(ダウンカウンタ)を、上記設定時間TCLHに相当する設定値TACCLHで設定し(COUNTCLH←TACCLH)、S1505へ進む。
【0243】
また、S1503 へ進むとエアコンON→OFF後経過時間判別カウント値COUNTCLHの値を参照し、COUNTCLH≠0の場合S1504 へ進み、カウントダウン(COUNTCLH←COUNTCLH−1)した後、S1505 へ進む。
【0244】
S1502 あるいはS1504 からS1505 へ進むとエアコンクラッチ補正値ISCCLHを設定値DISCLH[%]で設定した後(ISCCLH←DISCLH)、ルーチンを抜ける。
【0245】
一方、S1503 でCOUNTCLH1=0であり、エアコンスイッチ89をON→OFF後、設定時間TCLH[SEC5]経過したと判断してS1506 へ進むと上記エアコンクラッチ補正値ISCCLHを0[%]に設定した後(ISCCLH←0)、ルーチンを抜ける。
【0246】
図36に上記エアコンクラッチ補正値ISCCLHの設定と、エアコンスイッチ89のON/OFF、エアコンクラッチリレー65のON/OFF、可変容量エアコンコンプレッサ64の容量制御、および、エンジン回転数NEとの関係を示す。
【0247】
まず、可変容量エアコンコンプレッサ64に対する容量制御について述べる。エアコンスイッチ89をONするとメインコンピュータ41により、設定遅れ時間ACENT(例えば、0.3sec)経過後、エアコンクラッチリレー65がONされて可変容量エアコンコンプレッサ64のマグネットクラッチ64aが接続し、コンプレッサ64が駆動され、メインコンピュータ41からの要求容量信号に従いエアコン制御ユニット81からコンプレッサ64へコンプレッサ容量(DUTY)信号が出力され、コンプレッサ64の容量が最小容量(MIN)から設定容量に次第に増加される。そして、エアコンスイッチ89をOFFすると、上記可変容量エアコンコンプレッサ64に対するコンプレッサ容量(DUTY)により、コンプレッサ64の容量が最少容量(MIN)に次第に減少され、エアコンスイッチ89のOFF後、エアコンコンプレッサ64の容量が最小容量(MIN)に到達したと看做し得る十分な時間ACCLTM(例えば、8sec)経過後エアコンクラッチリレー65がOFFされる。
【0248】
このため、エアコンススイッチ89のONと同時に(経過時間t1 )、エアコンクラッチ補正値ISCCLHを設定値DISCLHに設定し、ISCバルブ13に対するデューティ比ISCONを上記エアコンクラッチ補正分ISCCLH分増大させてISCバルブ13の開度を増大させ、空気量を増加させることでエンジン回転数NEを上昇させてエアコンクラッチリレー65のONによるコンプレッサ64駆動のエンジン負荷増大に伴うエンジン回転数低下を防止する。
【0249】
その後、エアコンスイッチ89をOFFすると(経過時間t2 )、上記可変容量エアコンコンプレッサ64の容量が次第に低下されると共に、前述のエアコン補正値ISCACが次第に減少され(図7,8、及び図29参照)、これに伴いISCバルブ13に対するデューティ比ISCONが減少することでISCバルブ13の開度が減少して空気量が減少し、エンジン回転数NEがエアコンOFF時の目標回転数に復帰される。
【0250】
可変容量コンプレッサ64の容量が下がりきったとき(経過時間t3 )からマグネットクラッチ64aが切れるまで(エアコンクラッチリレー65がOFFするまで)の間T1 は、クラッチのフリクションが残っている。このため、可変容量エアコンコンプレッサ64のマグネットクラッチ64aが切れた瞬間にクラッチによるフリクションが急になくるため図(e)に破線で示すように一時的な回転数の吹上がりによる回転変動が生じフィーリングが悪化してしまう。
【0251】
エアコンクラッチ補正はこのクラッチのフリクションによるエンジン負荷を補償するためのものであり、エアコンスイッチ89をONしてから、エアコンスイッチ89のOFF後、設定時間ACCLTM経過後エアコンクラッチリレー65がOFFし、可変容量エアコンコンプレットサ64のマグネットクラッチ64aが完全に切れるまで、すなわち、エアコンスイッチ89のOFF後、設定時間TCLH(TCLH>ACCLTM)を経過するまでの間、エアコンクラッチ補正値ISCCLHを設定値DISCLHに設定してISCバルブ13に対するディーティ比ISCONをこの間大きくし、エアコンクラッチ64aが切れたときエアコンクラッチ補正ISCCLHを0にすることで、エアコンクラッチ64aが切れた瞬間にクラッチによるフリクションがなくなりエンジン負荷が減少した分、ISCONを減少させてISCバルブ13の開度を減少させ空気量を減じ、このときの回転変動を防止する。これにより、図(e)の実線で示すように、エアコンクラッチ764aが切れた直後の一時的な回転数の吹上りによる回転変動が解消し、フィーリングが向上する。
【0252】
(始動後補正設定割込みルーチン)
図21はISCバルブ制御メインルーチンにおいて設定する始動時/通常時制御判別フラグFLAGSTが1→0になった時点で割込み実行する始動後補正初期値設定ルーチンである。
【0253】
始動時/通常時制御判別フラグFLAGSTがFLAGST=1(始動時制御)からFLAGST=0(通常時制御)に移行した直後、すなわち、スタータスイッチ61がON→OFFで、かつ、エンジン回転数NEがNE≠0のときである始動時制御終了直後に割込みスタートすると、まず、S1601 で冷却水温TWに基づき始動後補正初期値テーブルTISCSD(冷却水温TWが低いほど大きな値が格納されている)を補間計算付で参照して始動後補正ISCSDの初期値を設定する。
【0254】
次いで、S1602 で冷却水温TWに基づき始動後補正更新割込時間テーブルTTDISC(冷却水温TWが低いほど長い時間の値が格納されている)を補間計算付で参照して始動後補正更新割込時間TDISCを設定する。
【0255】
そして、S1603 で上記始動後補正更新割込時間TDISC毎の割込を許可してルーチンを抜ける。
【0256】
図22は始動後補正更新割込時間毎に割込み実行される始動後補正設定ルーチンで、始動時制御から通常時制御へのデューティ比ISCONのつながりを良くし、始動性を向上させるものである。
【0257】
まず、S1701 でRAM50の所定アドレスに格納されている始動後補正ISCSDが0以下かを判断し、ISCSD>0の場合S1702 へ進み上記始動後補正ISCSDを設定値DISCSDで減算した値で更新し(ISCSD←ISCSD−DISCSD)、ルーチンを抜ける。
【0258】
一方、S1701 でISCSD≦0と判断されてS1703 へ進むと、RAM50の所定アドレスに格納されている始動後補正ISCSDを0[%]に固定して(ISCSD←0)、S1704 へ進み、始動後補正更新割込時間TDISCごとの割込みを禁止し、ルーチンを抜ける。
【0259】
始動後補正設定の代表例を図37のタイムチャートに従って説明する。
【0260】
スタータスイッチ61がON、あるいは、エンジン回転数NEが0のとき(始動時/通常時制御判別フラグFLAGST=1)始動後補正プログラムは実行されず(経過時間t0 〜t1 )、スタータスイッチ61がON→OFF直後で、エンジン回転数NEがNE≠0のとき始動後補正ISCSDの初期値が設定される(経過時間t1 )。
【0261】
次いで、上記始動後補正ISCSDを0になるまで始動後補正更新割込時間TDISC毎に設定値DISCSDずつ減少させる。
【0262】
また、図38にISCバルブ13を制御するデューティ比ISCONの変化と始動後補正ISCSDとの関係を示す。
【0263】
始動時制御(FLAGST=1)時においてはISCバルブ制御のメインルーチンにおいて設定するデューティ比ISCONが比較的大きな値に設定されており、通常時制御へ移行すると(経過時間t1)、各種補正項により緻密に制御されるため図の一点鎖線で示すようにつながりが悪くなり始動性が低下する。
【0264】
始動後補正ISCSDはこれを補償するためのものであり、始動時制御において設定されるデューティ比ISCONは、冷却水温TWに基づき設定される始動時特性値ISCSTが大部分を占め、冷却水温TWが低いほど始動時特性値ISCSTが大きく設定されるため(図1参照)、始動時制御から通常時制御に移行する際のISCバルブ13に対するデューティ比ISCONの段差が大きくなる。
【0265】
このため、冷却水温TWが低いほど、図37の実線で示すように始動後補正ISCSDの初期値を大きく設定すると共に、始動後補正割込時間TDISCを長く設定して始動後補正ISCSDが0になるまでの時間を長くし(経過時間t1 〜t3 )、一方、冷却水温TWが高いほど、図37の破線で示すように始動後補正ISCSDの初期値を小さくし、かつ、始動後補正割込時間TDISCを短く設定して始動後補正ISCSDが0になるまでの時間を短くすることで(経過時間t1 〜t2 )、如何なる温度条件下においても始動時制御から通常時制御に移行する際のISCバルブ13に対するデューティ比ISCONのつながりを、図38の実線で示すようにスムーズにし、ISCバルブ13の開度変化の段差を解消してISCバルブ13による空気流量の急変を防止し、始動性を向上する。
【0266】
(クローズドループ補正I分更新ルーチン)
図23〜図25は設定時間毎、例えば10msec毎に割込み実行されるクローズドループ補正I分更新手順を示すフローチャートである。
【0267】
まず、S1801 でISCバルブ制御メインルーチンにおいて設定する始動時/通常時制御判別フラグFLAGSTの値を参照し、FLAGST=1(始動時あるいはエンスト中)の場合S1802 へ進み、FLAGST=0(通常時)の場合S1803 へ進む。
【0268】
S1802 へ進むと始動後通常運転(通常時制御)へ移行してから設定時間LRNISS[SEC]経過したかを判断するための通常時制御移行時間判別カウント値COUNTSTI(ダウンカウンタ)に、上記設定時間LRNISSに相当する設定値COUNTLRNISSをセットし(COUNTSTI←COUNTLRNISS)、S1858へ進み、クローズドループ補正I分ISCIを0[%]に設定してS1859 に進む。
【0269】
また、S1803 へ進むと上記通常時制御移行時間判別カウント値COUNTSTIの値を参照し、COUNTSTI≠0の場合、通常時制御へ移行した後、設定時間LRNISS経過していないと判断してS1804へ進み、カウント値COUNTSTIをカウントダウンし(COUNTSTI←COUNTSTI−1)、S1805へ進む。一方、COUNTSTI=0の場合、通常時制御へ移行してから設定時間経過したと判断し、S1805 へ進む。
【0270】
S1805 へ進むと冷却水温TWと設定温度LRNITW[℃]とを比較し、TW≧LRNITWの場合S1806 へ進み、TW<LRNITWの場合S1810 へ進む。S1806 へ進むと前回のルーチン時に読出した始動時/通常時制御判別フラグ(FLAGST)OLDの値を参照し、(FLAGST)OLD=1(前回ルーチン実行時、始動時制御)の場合、通常時制御移行初回と判断してクローズドループ補正I分初期設定すべくS1807 へ進み、(FLAGST)OLD=0の場合S1810 へ進む。
【0271】
S1807 ではエアコンスイッチ89がONかどうかを判断し、ONの場合S1808 へ進み、OFFの場合S1809 へ進む。
【0272】
S1808 へ進むとバックアップRAM50aに格納されているエアコンON時のI分学習値ACONIを読出してクローズドループ補正I分ISCをエアコンON時のI分学習値ACONIで初期設定し、また、S1809 へ進むと、クローズドループ補正I分ISCI をバックアップRAM50aに格納されているエアコンOFF時のI分学習値ACOFFIで初期設定し、それぞれS1810 へ進む。
【0273】
上記各I分学習値ACONI,ACOFFIは後述するクローズドループ補正I分学習値学習サブルーチンで更新され、バックアップRAM50aの所定アドレスに格納されているもので、スタータスイッチ61がON→OFF(始動時制御から通常時制御)へ移行した直後の1回だけ、前回のエンジン運転時にエアコン作動状態に応じて学習したI分学習値ACONIあるいはACOFFIによりクローズドループ補正I分ISCI を初期設定する。これによりクローズドループ補正I分が直ちに補償され、制御性が向上する。
【0274】
また、上記各学習値ACONI、ACOFFIをエアコンの作動状態別に設定しているので、エンジン負荷に応じたクローズドループ補正I分ISCIを初期設定することができ、エンジン回転をスムーズに立上げることができる。
【0275】
そして、S1810 へ進むと前述のクローズド/オープンループ制御判別サブルーチンで設定したクローズド/オープンループ制御判別フラグFLAGCLの値を参照し、FLAGCL=1(クローズドループ制御)の場合S1811 へ進み、FLAGCL=0(オープンループ制御)の場合、後述の補正量ΔIを更新することなくS1812 へ進む。
【0276】
S1811 へ進むと、始動後補正ISCSDの値を参照して始動後補正実行中(ISCSD≠0)かを判断し、ISCSD≠0の場合S1813 へ進み、ISCSD=0の場合S1817 へ進む。S1813 へ進むと冷却水温TWと設定温度TWAS[℃]とを比較し、TW≧TWAS(暖機完了)の場合S1814 へ進み、TW<TWAS(暖機中)の場合S1817 へ進む。S1814 へ進むと、車速VSPと設定値VSAS[Km/h]とを比較し、VSP<VSAS(停車)の場合S1815 へ進み、VSP≧VSAS(走行)の場合S1817 へ進む。
【0277】
その後、S1815 へ進むとクローズドループ補正I分ISCに始動後補正ISCSDを加算した値で上記クローズドループ補正I分ISCを更新し(ISC←ISC+ISCSD)、S1816 へ進み上記始動後補正ISCSDを上記クローズドループ補正I分に移行させた分、この始動後補正ISCSDをクリアし(ISCSD←0)、S1817 へ進む。
【0278】
図39の(a),(b)に示すようにオープンループ制御からクローズドループ制御へ移行した際、始動後補正ISCSD(ISCAS)のクローズドループ補正I分ISCへの移行を行わず前述した始動後補正設定ルーチン(図22)を始動後補正ISCSDが0になるまで実行するとすれば、このクローズドループ補正I分ISCが収束するまでの間、デューティ比ISCONに段差が生じエンジン回転数NEが変動してしまう。この対策として後述する補正量ΔIを大きくすることも考えられるが、この補正量ΔIを極端に大きくすると収束性が悪化しエンジン回転数NEにハンチングが生じる。
【0279】
これに対し、図39の(c),(d)に示すように所定条件成立時(TW≧TWAS、且つ、VSP<VSAS)、オープンループ制御からクローズドループ制御に移行した際、始動後補正ISCSD(ISCAS)がISCSD≠0のとき、始動後補正ISCSD(ISCAS)をクローズドループ補正I分ISCに移行させているので、増量分をクローズドループ補正I分ISCで補うようになり、オープンループ制御からクローズドループ制御へのつながりが良くなり、このときのエンジン回転数NEの変動が防止される。
【0280】
その後、上記S1811,S1813,S1814 あるいは、S1816 からS1817 へ進むとアイドル目標回転数NSETとエンジン回転数NEとの差回転ΔNを求め(ΔN←NSET−NE)、S1818 へ進みエアコンスイッチ89がONかを判断し、ONの場合S1819
へ進み、OFFの場合S1820 へ進む。
【0281】
S1819 へ進むと上記差回転ΔNと設定値NIH3(NIH3<0)とを比較し、ΔN≦NIH3の場合S1826 へ進み、補正量ΔIを設定値TIPTAH3(TIPTAH3<0)に設定し(ΔI←TIPTAH3)、S1845 へ進む。
【0282】
また、上記S1819 でΔN>NIH3の場合にはS1821 へ進み、上記差回転ΔNと設定値NIH2(但し、NIH3<NIH2<0)とを比較し、ΔN≦NIH2の場合、S1827 へ進み補正値ΔIを設定値TIPTAH2(但し、TIPTAH3<TIPATAH2<0)に設定し(ΔI←TIPTAH2)、S1845 へ進む。また、ΔN>NIH2の場合S1822 へ進み差回転ΔNと設定値NIH1(但し、NIH2<NIH1<0)とを比較し、ΔN≦NIH1の場合S1828 へ進み補正量ΔIを設定値TIPTAH1(但し、TIPTAH2<TIPTAH1<0)で設定し(ΔI←TIPTAH1)、S1845 へ進む。
【0283】
また、上記S1822 でΔN>NIH1と判断されてS1823 へ進むと差回転ΔNと0とを比較し、ΔN≦0の場合S1829 へ進み補正量ΔIを設定値TIPTAH(但し、TIPTAH1<TIPTAH,TIPATH=0[%])で設定し(ΔI←TIPTAH)、S1845 へ進む。また、ΔN>0の場合S1824 へ進む。 S1824 へ進むと差回転ΔNと設定値NIL1(但し、0<NIL1)とを比較し、ΔN≦NIL1の場合S1830 へ進み、補正量ΔIを設定値TIPTAL(但し、TIPTAH≦TIPATL)で設定し(ΔI←TIPTAL)、S1845 へ進む。また、ΔN>NIL1の場合S1825 へ進む。
【0284】
S1825 へ進むと、差回転ΔNと設定値NIL2(但し、NIL1<NIL2)とを比較し、ΔN≦NIL2の場合S1831 へ進み、補正量ΔIをTIPTAL1(但し、TIPTAL<TIPTAL1)で設定し(ΔI←TIPTAL1)、S1845 へ進む。また、ΔN>NIL2の場合S1832 へ進み補正量ΔIを設定値TIPTAL2(但し、TIPTAL1<TIPTAL2)で設定し(ΔI←TIPTAL2)、S1845 へ進む。
【0285】
図40に補正量ΔIと差回転ΔNとの関係を示す。図からも分かるように差回転ΔNが小さければ補正量ΔIも小さく設定される。これによりアイドル目標回転数NSETに対するエンジン回転数NEの収束性がよくなる。
【0286】
一方、上記S1818 でエアコンスイッチ89がOFFと判断されてS1820 へ進むと、このS1820,S1833 〜S1837 において、差回転ΔNと設定値NIH3,NIH2,NIH1,0,NIL1,NIL2とを上述と同様に比較し、S1820 でΔN≦NIH3と判断されてS1838 へ進むと補正量ΔIを設定値TIPRTH3で(但し、TIPRTH3<0)設定し(ΔI←TIPRTH3)、S1845 へ進む。
【0287】
S1833 でΔN≦NIH2と判断されてS1839 へ進むと補正量ΔIを設定値TIPRTH2(但し、TIPRTH3<TIPRTH2<0)で設定し(ΔI←TIPRTH2)、S1845 へ進む。
【0288】
S1834 でΔN≦NIH1と判断されてS1840 へ進むと補正量ΔIを設定値TIPRTH1(但し、TIPRTH2<TIPRTH1<0)で設定し(ΔI←TIPRTH)、S1845 へ進む。
【0289】
S1835 でΔN≦0と判断されてS1841 へ進むと補正量ΔIを設定値TIPRTH(但し、TIPRTH1<TIPRTH,TIPRTH=0[%])で設定し(ΔI←TIPRTH)、S1845 へ進む。
【0290】
S1836 でΔN≦NIL1と判断されてS1842 へ進むと補正量ΔIを設定値TIPRTL(但し、TIPRTH≦TIPRTL)で設定し(ΔI←TIPRTL)、S1845 へ進む。
【0291】
S1837 でΔN≦NIL2と判断されてS1843 へ進むと補正量ΔIを設定値TIPRTL1(但し、TIPRTL<TIPRTL1)で設定し(ΔI←TIPRTL1)、S1845 へ進む。また、S1837 でΔN>NIL2と判断されてS1844 へ進むと、補正量ΔIを設定値TIPRTL2(但し、TIPRTL1<TIPRTL2)で設定し(ΔI←TIPRTL2)、S1845 へ進む。
【0292】
そして、S1826 〜S1832 ,あるいは、S1838 〜S1844 のいずれかからS1845 へ進むと、RAM50の所定アドレスに格納されているクローズドループ補正I分ISCをこのクローズドループ補正I分ISCに上記S1826 〜S1832 ,S1838 〜S1844 のいずれかで設定した補正量ΔIを加算した値で更新し(ISC←ISC+ΔI)、S1846 へ進む。
【0293】
図41にアイドル目標回転数NSETに対するエンジン回転数NEの変動と、補正量ΔIおよびクローズドループ補正I分ISCとの関係をタイムチャートによって示す。
【0294】
[経過時間t0 〜t1 ]
アイドル目標回転数NSETに対しエンジン回転数NEが設定値NIH3以上であるため(ΔN≦NIH3)、エンジン回転数NEを下げるべく補正量ΔIを最小の設定値TIPTAH3で設定する(S1826 )。
【0295】
その結果、クローズドループ補正I分ISCが上記設定値TIPTAH3だけ低い値になり、その分、ISCバルブ13に対するディーティ比ISCONが低下してISCバルブ13の開度が減少し、エンジン回転数NEが低下する。
【0296】
[経過時間t1 〜t2 ]
次いで、差回転ΔNが設定値NIH3とNIH2との間に収まると、補正量ΔIが設定値TIPTAH2で設定され(S1827 )、クローズドループ補正I分ISCが設定値TIPTAH2分だけ更に低くなる。
【0297】
[経過時間t2 〜t3 ]
その後、差回転ΔNが設定値NIH2とNIH1との間に収まると、補正量ΔIが設定値TIPTAH1で設定され(S1828 )、クローズドループ補正I分ISCが設定値TIPTAH1分だけ低くなり、エンジン回転数NEが低下する。
【0298】
そして、差回転ΔNが設定値NIH1と0との間に収まると補正量ΔIが設定値TIPTAH(0[%])で設定され(S1829 )、したがって、クローズドループ補正I分ISCは変化しない。
【0299】
その後、差回転ΔNが設定値0とNIL1との間に収まると補正量ΔIが設定値TIPTAL(TIPTAH≦TIPTAL)で設定される(S1830 )。
【0300】
[経過時間t3 〜t4 ]
次いで、差回転ΔNが設定値NIL1とNIL2との間に収まると補正量ΔIが設定値TIPTAL1で設定され(S1831 )、クローズドループ補正I分ISCが上記設定値TIPTAL1分だけ高くなる。
【0301】
[経過時間t4 〜t5 ]
その後、エンジン回転数NEがアイドル目標回転数NSETに対して設定値NIL2より低くなると(ΔN>NIL2)補正量ΔIが設定値TIPTAL2で設定され(S1832 )、クローズドループ補正I分ISCが上記設定値TIPTAL2だけ高くなる。
【0302】
[経過時間t5 〜t6 ]
また、差回転ΔNが設定値NIL2とNIL1との間に収まると補正量ΔIが設定値TIPTAL1で設定され(S1831 )、クローズドループ補正I分ISCが設定値TIPTAL1だけ高くなる。
【0303】
そして、差回転ΔNが設定値NIL1とNIH1との間に収まっている間は設定値TIPTALとTIPTAHとが0[%]であるためクローズドループ補正I分ISCは変化しない。
【0304】
[経過時間t6 以後]
一方、差回転ΔNが設定値NIH1とNIH2との間に収まると補正量ΔIが設定値TIPTAH1で設定され、その後、差回転ΔNが設定値NIH1とNIL1との間に収束し、補正量ΔIが設定値TIPTAL,TIPTAH(いずれも0[%])に設定されるため、クローズドループ補正I分ISCは一定となる。
【0305】
上記S1845 でクローズドループ補正I分ISCを設定した後、S1846 へ進むと、クローズドループ補正I分の学習サブルーチン(詳細は後述する)が実行される。
【0306】
次いで、S1847 で通常時制御移行時間判別カウント値COUNTSTIの値を参照し、COUNTSTI≠0(始動後設定時間LRNISS内)の場合S1848 へ進み、COUNTSTI=0の場合S1850 へ進む。
【0307】
S1848 へ進むと、冷却水温TWと暖機再始動かどうかを判断する予め設定された暖機完了判定値LRNITWとを比較し、TW≧LRNITW(暖機再始動)の場合S1849 へ進み、TW<LRNITW(エンジン冷態状態)の場合S1850 へ進む。
【0308】
S1849 へ進むと、クローズドループ補正I分ISCと下限値IMINBLとを比較し、ISC≦IMINBLの場合S1853 へ進み、上記クローズドループ補正I分ISCを上記下限値IMINBLで設定してS1859 へ進む。
【0309】
一方、S1849 でISC>IMINBLと判断されるとS1851 へ進み、上記クローズドループ補正I分ISCと上限値IMAXBLとを比較し、ISC≧IMAXBLの場合、S1854 へ進み、上記クローズドループ補正I分ISCを上記上限値IMAXBLで設定しS1859 へ進む。また、ISC<IMAXBLの場合、上記クローズドループ補正I分ISCが許容範囲(IMAXBL>ISC>IMINBL)に収まっていると判断し、そのままS1859 へ進む。
【0310】
また、S1847 ,あるいは、S1848 からS1850 へ進むと、上記クローズドループ補正I分ISCと、前述のISCバルブ制御メインルーチンで設定したデューティ制限下限値IMINCLから前述の基本特性値設定サブルーチンで設定した基本特性値ISCTWを減算した値(下限値)とを比較し、ISC≦(IMINCL−ISCTW)の場合S1855 へ進み、上記クローズドループ補正I分ISCを上記下限値(IMINCL−ISCTW)で設定し(ISC←IMINCL−ISCTW)、S1859 へ進む。
【0311】
また、S1850 でISC>(IMINCL−ISCTW)の場合にはS1852 へ進み、クローズドループ補正I分ISCと、ISCバルブ制御メインルーチンで設定したデューティ制限上限値IMAXCL から基本特性値ISCTWを減算した値(上限値)とを比較し、ISC≧(IMINCL−ISCTW)の場合にはS1856 へ進み、上記クローズドループ補正I分ISCを上記上限値(IMAXCL −ISCTW)で設定し(ISC←IMINCL−ISCTW)、S1859 へ進む。S1852 でISC<(IMINCL−ISCTW)の場合には、上記クローズドループ補正I分ISCが許容範囲((IMINCL−ISCTW)<ISC<(IMAXCL −ISCTW))に収まっていると判断し、そのままS1859 へ進む。
【0312】
ISCバルブ13に対するデューティ比ISCONの大部分は基本特性値ISCTWであり、デューティ制限下限値IMINCLから基本特性値ISCTWを減算することで、基本特性値ISCTW以外の補正項に対する下限値を設定し、また、デューティ制限上限値IMAXCL から基本特性値ISCTWを減算することで上限値を設定する。
【0313】
但し、〈1〉始動後、所定時間LRNISS[sec]以内の場合(S1847 )、且つ、〈2〉冷却水温TW と暖機再始動かを判断する暖機完了判定値LRNITWとがTW≧LRNITWの場合(S1848 )、暖機再始動時と判断し、オープンループ、クローズドループ制御を問わず
IMINBL≦ISC≦IMAXBL
とする。
【0314】
暖機再始動において通常時制御に移行したとき、クローズドループ補正I分ISCの初期設定の際に(S1808 、あるいは、S1809 )、クローズドループ補正I分ISCが小さな値(負の値を含む)の学習値ACONI(エアコンスイッチ89がON時)、あるいは、学習値ACOFFI(エアコンスイッチ89がOFF時)で更新されるとエンジン回転数NEが低下してしまい、著しい場合はエンストしてしまう。このため、上限値、下限値をそれぞれ設定値IMINBL,IMAXBLとして、クローズドループ補正I分ISCの上限値、下限値をシフトアップさせることで再始動性を改善させている(図41(c)参照)。
【0315】
一方、上記S1810 でFLAGCL=0(オープンループ制御)と判断されてS1812 へ進むと冷却水温TWと、オープンループ制御中の冷却水温TWが低水温かを判断する設定値TWCL[℃]とを比較し、TW≦TWCLの場合S1857 へ進み、TW>TWCLの場合既述したS1847 へ進む。
【0316】
S1857 へ進むとクローズドループ補正I分ISCの値を参照し、ISC<0の場合S1858 へ進み、上記クローズドループ補正I分ISCを0に設定した後(ISC←0)、S1859 へ進む。また、ISC≧0の場合上記S1847 へ進む。
【0317】
このように、オープンループ制御中(FLAGCL=0)の冷却水温TWが低水温時(TW≦TWCL)で、かつ、クローズドループ補正I分ISCが負側にあるとき(ISC<0)には、このクローズドループ補正I分ISCを0に設定している(ISC←0)。すなわち、後述する学習値ACONIあるいはACOFFIにより設定したクローズドループ補正I分ISCが負側のときにはデューティ比ISCONが小さくなり、ISCバルブ13の開度が減少してエンジン回転数NEが低下する方向に作用し、これを防止するため、スタータスイッチ61がONからOFF(始動時制御→通常時制御)へ移行した直後に学習値ACONIあるいはACOFFIにより設定されるクローズドループ補正I分ISCの下限値を0としている。
【0318】
そして、S1853 〜S1856 ,あるいは、S1858 のいずれかからS1859 へ進むと、今回の始動時/通常時制御判別フラグFLAGSTでRAM50の所定アドレスに格納されている次回のルーチンで使用する前回の始動時/通常時制御判別フラグ(FLAGST)OLDを更新し((FLAGST)OLD←FLAGST)、ルーチンを抜ける。
【0319】
なお、本実施例においてはクローズドループ補正I分ISCを、比例積分制御(PI制御)を用いずに積分制御(I制御)のみで設定しているので、緻密なフィードバック制御が実行される。
【0320】
(クローズドループ補正I分学習サブルーチン)
図26はクローズドループ補正I分更新手順において実行(S1846 参照)されるクローズドループ補正I分学習サブルーチンである。
【0321】
まず、S1901 〜S1908 で学習条件が成立しているかを判断する。
【0322】
すなわち、S1901 では、冷却水温TWと暖機完了判定値LRNITW[℃]とを比較し、TW≧LRNITW(エンジン暖機完了状態)の場合S1902 へ進み、TW<LRNITW(エンジン冷態状態)の場合S1913 へ進む。
【0323】
S1902 へ進むとパワステ補正値ISCPSの値を参照)し、ISCPS=0(パワーステアリング転舵角小)の場合S1903 へ進み、ISCPS≠0の場合S1913 へ進む。
【0324】
S1903 へ進むと、エアコンスイッチ89がOFFかを判断し、OFFの場合S1904 へ進み、ONの場合S1905 へ進む。
【0325】
S1904 へ進むと、ラジファン補正値ISCRAの値を参照し、ISCRA=0(ラジエータファン62がOFF)の場合S1905 へ進み、ISCRA≠0の場合S1913 へ進む。
【0326】
そして、S1903 あるいはS1904 からS1905 へ進むと、加減速補正DSHPTの値を参照し、DSHPT=0の場合S1906 へ進み、DSHPT≠0の場合S1913 へ進む。
【0327】
S1906 へ進むとダッシュポット補正値DHENBの値を参照し、DHENB=0の場合、すなわち、DSHPT=0、且つ、DHENB=0でアイドル定常状態と判断される場合には、S1907 へ進み、DHENB≠0の場合S1913 へ進む。
【0328】
S1907 へ進むと、クローズドループ補正I分ISCI の補正量ΔIを参照し、ΔI=0(エンジン回転数NEがアイドル目標回転数NSETの許容範囲内視鏡に収束している状態)の場合S1908 へ進み、ΔI≠0の場合S1913 へ進む。
【0329】
S1908 へ進むと、学習可能な状態が所定時間以上継続しているかどうかを判別すべく、所定時間に相当する設定値LRISCTと学習条件成立判別カウント値COUNTISCIとを比較し、COUNTISCI≧LRISCTの場合、学習条件成立と判断してS1909 へ進む。また、COUNTISCI<LRISCTの場合、S1910 へ進みカウント値COUNTISCIをカウントアップし(COUNTISCI←COUNTISCI+1)、ルーチンを抜ける。
【0330】
一方、S1909 へ進むと、エアコンスイッチ89がONかを判断し、ONの場合S1911 へ進みバックアップRAM50aの所定アドレスに格納されているエアコンON時のI分学習値ACONIを現時点におけるクローズドループ補正I分ISCの値で更新し(ACONI←ISC)、S1913 へ進む。OFFの場合S1912 へ進み、バックアップRAM50aの所定アドレスに格納されているエアコンOFF時のI分学習値ACOFFIを現時点におけるクローズドループ補正I分ISCの値で更新し(ACOFFI←ISC)、S1913 へ進む。
【0331】
そして、S1901 ,S1902 ,S1904 〜S1907 ,S1911 、あるいは、S1912 のいずれかからS1913 へ進むと上記カウント値COUNTISCIをクリアし(COUNTISCI←0)、ルーチンを抜ける。
【0332】
ところで、図42(a)に破線で示すように、クローズドループ補正I分ISCを設定する際にI分学習値ACONIあるいはACOFFIを使用しないと、始動時制御からオープンループ制御を介してクローズドループ制御へ移行するまでの間に差分が生じる。その結果、図42(b)に破線で示すように、初爆はするが完爆へはなかなか移行せず、始動時制御からオープンループ制御へ移行するときにエンジン回転数NEの立上りにもたつきが生じる。
【0333】
一方、図42(a)に実線で示すようにクローズドループ補正I分にI分学習値ACONIあるいはACOFFIを加味することで始動時制御からクローズドループ制御へ移行するまでの間の差分が改善され図42(b)に実線で示すように初爆から完爆へ直ちに移行し、エンジン回転数NEの立上りがスムーズになり始動性が向上する。
【0334】
【発明の効果】
以上説明したように請求項1記載の発明によれば、暖機再始動時におけるフィードバック補正値の上限値と下限値とをシフトアップした値で設定すれば、エンストなどを有効に防止することができ制御性が向上し、再始動性が改善される。
【0335】
この際、請求項2に記載したように、フィードバック補正値を積分制御のみで設定するようにすれば、上記請求項1記載の発明の効果に加え、より緻密なフィードバック制御を実行することが可能となる。
【図面の簡単な説明】
【図1】図1,図2はISCバルブ制御手順を示すフローチャート。
【図2】同上
【図3】補正値設定手順を示すフローチャート。
【図4】基本特性値設定手順を示すフローチャート。
【図5】アイドル目標回転数設定手順を示すフローチャート。
【図6】クローズド/オープンループ制御判別手順を示すフローチャート。
【図7】図7,図8はエアコン補正値設定手順を示すフローチャート。
【図8】同上
【図9】エアコンスイッチOFF→ON時のエアコン補正学習手順を示すフローチャート。
【図10】エアコンスイッチON→OFF時のエアコン補正学習手順を示すフローチャート。
【図11】図11,図12はAT車走行レンジ補正値設定手順を示すフローチャート。
【図12】同上
【図13】図13,図14は加減速補正設定手順を示すフローチャート。
【図14】同上
【図15】ダッシュポット補正値設定手順を示すフローチャート。
【図16】ダッシュポット補正値更新手順を示すフローチャート。
【図17】ラジファン補正設定手順を示すフローチャート。
【図18】図18,図19はパワステ補正値設定手順を示すフローチャート。
【図19】同上
【図20】エアコンクラッチ補正値設定手順を示すフローチャート。
【図21】始動後補正初期値設定手順を示すフローチャート。
【図22】始動後補正設定手順を示すフローチャート。
【図23】図23〜図25はクローズドループ補正I分更新手順を示すフローチャート。
【図24】同上
【図25】同上
【図26】クローズドループ補正I分学習手順を示すフローチャート。
【図27】エンジン制御系の概略図。
【図28】制御装置の構成図。
【図29】エアコンスイッチとエアコン補正値とエンジン回転数の関係を示すタイムチャート。
【図30】走行レンジ、またはN,Pレンジと、AT車走行レンジ補正とエンジン回転数の関係を示すタイムチャート。
【図31】アイドルスイッチとスロットル開度と加減速補正とエンジン回転数の関係を示すタイムチャート。
【図32】アイドルスイッチとエンジン回転数とダッシュポット補正値の関係を示すタイムチャート。
【図33】ラジエータファンON/OFFとラジファン補正の関係を示すタイムチャート。
【図34】アイドル判別回転数を設定する際のヒステリシスを示すタイムチャート。
【図35】パワステ転舵スイッチとパワステ補正値とエンジン回転数の関係を示すタイムチャート。
【図36】エアコンスイッチとエアコンクラッチリレーとエアコンコンプレッサの容量とエアコンクラッチ補正値とエンジン回転数の関係を示すタイムチャート。
【図37】始動後補正の変化を示すタイムチャート。
【図38】デューティ比の変化を示すタイムチャート。
【図39】始動後補正値のクローズドループ補正I分への移行を示すタイムチャート。
【図40】クローズドループ補正I分の補正量と差回転との関係を示す説明図。
【図41】エンジン回転数とクローズドループ補正I分の補正量とクローズドループ補正I分との関係を示すタイムチャート。
【図42】クローズドループ補正I分の学習値の使用状況を示すタイムチャートである。
【符号の説明】
6e…エアバイパス通路
11d,11e…スロットルバルブ
13…ISCバルブ
50a…記憶手段(バックアップRAM)
89…エアコンスイッチ
ACOFFI…エアコンオフ時学習値
ACONI…エアコンオン時学習値
DISCSD,ISCBAC…設定値
IMAXCL−ISCTW,IMAXBL,IMAXCL…上限値
IMINCL−ISCTW,IMINBL…下限値
IMAX…上限基本値
ISC…フィードバック補正値(クローズドループ補正I分)
ISCON…開度設定値(デューティ比)
ISCSD…始動後補正
ISCTW…基本特性値
NE…エンジン回転数
NSET…アイドル目標回転数
△N…差(差回転)
TDISC…設定時間(始動後補正更新割込時間)
TISCSD…始動後補正初期値テーブル
TW…エンジン温度(冷却水温度)[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an ISC valve control method for an engine that feedback-controls the opening of an ISC valve and variably sets an allowable range of an opening setting value of the feedback-controlled ISC valve according to an engine state.
[0002]
[Prior art]
In general, engine ISC (idle speed control) valve opening control is performed in the following order: start-up control (during cranking) → open-loop control (for warm-up operation, etc.) → closed-loop (feedback) control (during normal operation) In addition, optimal engine control is realized according to engine conditions.
[0003]
For example, in Japanese Patent Laid-Open No. 58-158343, an opening setting value (for example, duty ratio) of an ISC valve is learned, and the learning value and the opening setting value corrected by feedback control are different from each other. When the number shows a value different from the idle target speed, the learning value is updated with a correction value corresponding to the difference between the idle speed and the idle target speed, and the learning value is set when feedback control is started after the next start. Is used as an initial value to improve controllability immediately after shifting from open loop control to closed loop control, that is, immediately after feedback control is started. However, in the past, since each control described above was performed independently according to the engine state, when shifting from start-up control to open-loop control, it is difficult to shift to the complete explosion but the first explosion. Even when using the learning value learned during the previous operation as the initial value of the feedback control as in the prior art described above when shifting from open loop control to closed loop control, Since the control value at the time of open loop control and the learning value are set independently, between the opening setting value for setting the opening of the ISC valve at the time of open loop control and the closed loop control initial value. There is a problem that a step is generated and it takes time until the feedback correction value converges, and the engine speed becomes unstable during that time.
[0004]
On the other hand, in order to prevent the opening set value and the feedback correction value of the ISC valve from increasing or decreasing infinitely (including the negative side), the feedback correction value and the opening setting value are respectively set to upper limit values. The lower limit is set. For example, the above-described prior art compares the learned value with preset upper and lower limit values, and if the learned value is not within the allowable range between the upper limit value and the lower limit value, A technique for updating the learning value with an upper limit value or a lower limit value is disclosed.
[0005]
However, since the upper limit value or the lower limit value is a fixed value, for example, even if the air conditioner compressor is driven and the engine load increases, the upper limit value is regulated, so that it is difficult to sufficiently supply the intake air amount. .
[0006]
In order to cope with this, Japanese Patent Laid-Open No. 1-247728 discloses a technique for variably setting the upper limit value of the opening setting value in accordance with the capacity of the air conditioner compressor.
[0007]
[Problems to be solved by the invention]
However, in the above-described technology for variably setting the capacity of the air conditioner compressor, the upper limit value and the lower limit value of the control are variably set based on the fluctuation of only the disturbance such as the air conditioner compressor. The state of the engine itself such as the engine temperature is not taken into account, and it is difficult to control it appropriately.
[0008]
In view of the above circumstances, an object of the present invention is to provide an ISC valve control method for an engine that can appropriately set an upper limit value and a lower limit value of a feedback correction value in consideration of an engine state.
[0009]
[Means for Solving the Problems]
In order to achieve the above object, the invention according to claim 1The upper limit value and the lower limit value of the feedback correction value at the warm-up restart when the engine temperature is equal to or higher than the determination value for determining whether the engine temperature is the warm-up restart after the engine is started are A procedure for setting a value that is shifted up from the upper limit value and the lower limit value of the feedback correction value to be set in a case other than at the time of starting;When the feedback correction value is less than or equal to the lower limit value, the feedback correction value is set with the lower limit value, and when the feedback correction value is greater than or equal to the upper limit value.,A procedure for setting the feedback correction value by the upper limit;A procedure for setting a basic characteristic value indicating a basic opening of an ISC valve interposed in an air bypass passage that bypasses the throttle valve based on the engine temperature;Feedback correction value, at leastthe aboveCorrect the basic characteristic valuethe aboveAnd a procedure for setting the opening of the ISC valve.
[0010]
The invention according to claim 2 is the invention according to claim 1,The above feedback correction value was set only by integral controlIt is characterized by that.
[0012]
That is,The upper limit value and the lower limit value of the feedback correction value at the time of warm-up restart when the engine temperature is equal to or higher than a determination value for determining whether the engine temperature is warm-up restart after the engine is started Set a value that is upshifted from the upper and lower limits of the feedback correction value that is set at times other than at the start.When the feedback correction value is less than or equal to the lower limit value, the feedback correction value is set with the lower limit value. When the feedback correction value is greater than or equal to the upper limit value,,The feedback correction value is set with the upper limit value.Further, a basic characteristic value indicating the basic opening of the ISC valve installed in the air bypass passage that bypasses the throttle valve is set based on the engine temperature.AndTheFeedback correction value, at leastBaseCorrect this characteristic valueISet the opening of the SC valve.
[0013]
The invention according to claim 2 is the invention according to claim 1,Set the feedback correction value by integral control only.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
1 is a flowchart showing an ISC valve control procedure, FIG. 3 is a flowchart showing a correction value setting procedure, and FIG. 4 is a flowchart showing a basic characteristic value setting procedure. 5 is a flowchart showing the procedure for setting the target idle speed, FIG. 6 is a flowchart showing the closed / open loop control determination procedure, FIGS. 7 and 8 are flowcharts showing the air conditioner correction value setting procedure, and FIG. 10 is a flowchart showing an air-conditioner correction learning procedure when the air-conditioner switch is turned on, and FIGS. 11 and 12 are flowcharts showing a procedure for setting an AT vehicle travel range correction value. FIGS. Is a flowchart showing the acceleration / deceleration correction setting procedure, and FIG. 15 is a dashpot correction value. 16 is a flowchart showing a dashpot correction value update procedure, FIG. 17 is a flowchart showing a radio fan correction setting procedure, FIGS. 18 and 19 are flowcharts showing a power steering correction value setting procedure, and FIG. 20 is an air conditioner clutch. 21 is a flowchart showing a correction value setting procedure, FIG. 21 is a flowchart showing a post-startup correction initial value setting procedure, FIG. 22 is a flowchart showing a post-startup correction setting procedure, and FIGS. 23 to 25 are flowcharts showing a closed loop correction I update procedure. 26 is a flowchart showing a closed loop correction I-minute learning procedure, FIG. 27 is a schematic diagram of the engine control system, FIG. 28 is a block diagram of the control device, and FIG. FIG. 30 shows a driving range or N, FIG. 31 is a time chart showing the relationship among the range, AT vehicle travel range correction, and engine speed, FIG. 31 is a time chart showing the relationship between the idle switch, throttle opening, acceleration / deceleration correction, and engine speed, and FIG. 32 is the idle switch and engine. 33 is a time chart showing the relationship between the rotational speed and the dashpot correction value, FIG. 33 is a time chart showing the relationship between the radiator fan ON / OFF and the radio fan correction, and FIG. 34 is a time chart showing hysteresis when setting the idling discrimination rotational speed. FIG. 35 is a time chart showing the relationship between the power steering switch, power steering correction value, and engine speed, and FIG. 36 is the time showing the relationship between the capacity of the air conditioner switch, air conditioner clutch relay, air conditioner compressor, air conditioner clutch correction value, and engine speed. Chart, Fig. 37 shows the correction after start 38 is a time chart showing the change of the duty ratio, FIG. 39 is a time chart showing the shift of the post-startup correction value to the closed loop correction I, and FIG. 40 is a correction amount of the closed loop correction I. FIG. 41 is a time chart showing the relationship between the engine speed, the correction amount for the closed loop correction I, and the closed loop correction I, and FIG. 42 is the learning for the closed loop correction I. It is a time chart which shows the usage condition of a value.
[0016]
[Engine control system configuration]
In FIG. 27, reference numeral 1 in the figure denotes an engine body, and in the figure, a 6-cylinder horizontally opposed engine. In the engine body 1, the cylinder block 2 is divided into two banks (the left bank is the left bank and the left bank is the right bank) with the crankshaft 1a as the center. A cylinder group of # 5 cylinders is arranged, and a cylinder group of # 2, # 4, and # 6 cylinders is arranged in the left bank.
[0017]
An intake port 4 is formed in each cylinder head 3 of each bank, and an intake manifold 5 is communicated with each intake port 4. In addition, resonance pipes 6a and 6b communicate with the banks upstream of the intake manifold 5, and a variable intake valve 11c is interposed in a passage 6c connecting the resonance pipes 6a and 6b. The resonance pipes 6a and 6b, the passage 6c, and the variable intake valve 11c constitute a variable resonance supercharging system.
[0018]
Further, upstream of the resonance pipes 6a and 6b, the throttle chambers 11a and 11b are opened to communicate with the surge tank 7.
[0019]
An air cleaner 9 is attached to the upstream side of the surge tank 7 via an intake pipe 8, and an intake air amount sensor (a hot film type air flow meter in the figure) 10 is interposed immediately downstream of the air cleaner 9. ing.
[0020]
Further, throttle valves 11d and 11e (so-called twin throttle valves) are interposed in the throttle chambers 11a and 11b, respectively, and one throttle valve 11e detects the throttle opening sensor 12a and the idle switch 12b for detecting whether the throttle valve is fully closed. Are connected to each other.
[0021]
Further, the downstream side of the throttle valves 11d and 11e of the throttle chambers 11a and 11b is communicated by a passage 6d. An idle speed control (ISC) valve 13 is provided in an air bypass passage 6e that communicates the passage 6d and the surge tank 7. It is intervened.
[0022]
In addition, an injector 14 is disposed immediately upstream of each intake port 4 of each cylinder of the intake manifold 5, and a spark plug 15 that exposes the tip of each cylinder of each cylinder head 3 to the combustion chamber. Is installed. An ignition coil 15 a is directly attached to the terminal portion of the spark plug 15 and connected to the igniter 16.
[0023]
Fuel is pumped to the injector 14 from an in-tank type fuel pump 18 provided in the fuel tank 17 through a fuel filter 19, and the pressure is regulated by a pressure regulator 20.
[0024]
In addition, a cooling water temperature sensor 21 that detects a cooling water temperature TW as an example of the engine temperature is exposed to a cooling water passage (not shown) formed in the cylinder block 2, and each bank of the cylinder block 2 is provided in each bank. The right bank knock sensor 22a and the left bank knock sensor 22b are attached, and the exhaust pipes 24a and 24b provided for each bank are communicated from the exhaust ports 23 of the cylinder heads 3 respectively.
[0025]
A right bank O2 sensor 25a and a left bank O2 sensor 25b face the exhaust pipes 24a and 24b, respectively, and catalytic converters 26a and 26b are interposed downstream of the O2 sensors 25a and 25b, respectively. Further, a catalytic converter 27 is interposed at the downstream junction of each of the catalytic converters 26a and 26b.
[0026]
On the other hand, a crank angle detecting crank rotor 29 and a group cylinder discriminating crank rotor 30 are mounted on a crankshaft 1a of the engine body 1 at a predetermined interval. Further, a first crank angle sensor 31 and a second crank angle sensor 32 made up of an electromagnetic pickup or the like for detecting a protrusion as a detection object are provided on the outer periphery of each of the crank rotors 29 and 30, respectively. In addition, a cam angle sensor 34 is provided on the outer periphery of a cam rotor 33 a that is pivotally attached to the cam shaft 33. The cam angle sensor 34 determines the compression top dead center of a specific cylinder. The cam angle sensor 34 determines individual cylinders based on the cam pulse from the cam angle sensor 34 and the group determination pulse from the second crank angle sensor 32.
[0027]
In addition, slits may be provided on the outer circumferences of the crank rotors 29 and 30 and the cam rotor 33a in place of the protrusions, and the crank angle sensors 31 and 32 and the cam angle sensor 34 may be electromagnetic sensors such as an electromagnetic pickup. It is not limited to an optical sensor.
[0028]
[Circuit configuration of control device]
On the other hand, in FIG. 28, reference numeral 40 denotes a control unit (ECU) comprising a microcomputer. The ECU 40 includes a main computer 41 that performs ignition timing control, fuel injection control, and the like, and a dedicated sub-computer 42 that performs knock detection processing. It consists of two computers.
[0029]
In addition, a constant voltage circuit 43 is built in the ECU 40, and a stabilizing voltage is supplied from the constant voltage circuit 43 to each part. The constant voltage circuit 43 is connected to the battery 45 via a relay contact of the ECU relay 44, and the relay coil of the ECU relay 44 is connected to the battery 45 via a key switch 46. A fuel pump 18 is connected to the battery 45 through a relay contact of a fuel pump relay 47.
[0030]
In the main computer 41, a main CPU 48, a ROM 49, a RAM 50, a backup RAM 50a as a storage means, a timer 51, a serial interface (SCI) 52, and an I / O interface 53 are connected to each other via a bus line. A backup voltage is always applied to the backup RAM 50a via the constant voltage circuit 43.
[0031]
The input port of the I / O interface 53 includes an intake air amount sensor 10, a throttle opening sensor 12a, a cooling water temperature sensor 21, a right bank O2 sensor 25a, a left bank O2 sensor 25b, an atmospheric pressure sensor 55, and a vehicle speed sensor 56. Are connected via the A / D converter 57a, the idle switch 12b, the first and second crank angle sensors 31, 32, the cam angle sensor 34 are connected, and the battery 45 is connected. Battery voltage is monitored.
[0032]
Furthermore, the input port of the I / O interface 53 is set to a power steering steering switch 58 for detecting the steering state, a neutral switch 59 for detecting whether the automatic transmission select lever is set to neutral, and parking. A parking switch 60 for detecting whether the vehicle is running and a starter switch 61 for detecting the starting state are connected.
[0033]
Further, an igniter 16 is connected to the output port of the I / O interface 53, and further, a relay coil of a radiator fan relay 63 that controls driving of the ISC valve 13, the injector 14, and the radiator fan 62, and a variable capacity air conditioner compressor 64. A relay coil of an air conditioner clutch relay 65 for operating the connection / disconnection of the magnet clutch 64a is connected via a drive circuit 57b.
[0034]
On the other hand, the sub computer 42 includes a sub CPU 66, ROM 67, RAM 68, timer 69, SCI 70, and I / O interface 71 connected to each other via a bus line 72.
[0035]
The input port of the I / O interface 71 is connected to the first and second crank angle sensors 31, 32 and the cam angle sensor 34, and the right bank knock sensor 22a and the left bank knock sensor 22b are These are connected via an amplifier 73, a frequency filter 74, and an A / D converter 75, respectively.
[0036]
Each of the knock sensors 22a and 22b is, for example, a resonance type knock sensor including a vibrator having substantially the same natural frequency as knock vibration and a piezoelectric element that detects vibration acceleration of the vibrator and converts it into an electric signal. Thus, the vibration transmitted to the cylinder block or the like due to the combustion pressure wave in the explosion stroke of the engine is detected, and the vibration waveform is output as a knock signal.
[0037]
The knock signal is amplified to a predetermined level by the amplifier 73, and then a necessary frequency component is extracted by the frequency filter 74 and converted from analog data to digital data by the A / D converter 75.
[0038]
The main computer 41 and the sub computer 42 are connected by a serial line via SCIs 52 and 70, and the output port of the I / O interface 71 of the sub computer 42 is connected to the I / O of the main computer 41. It is connected to the input port of the interface 53.
[0039]
The main computer 41 calculates an ignition timing and the like based on the crank pulse, and outputs an ignition signal to the corresponding cylinder when the predetermined ignition timing is reached. On the other hand, the sub computer 42 determines the engine from the crank pulse input interval. The engine speed is calculated, a sample section of the knock signal from each knock sensor 22a, 22b is set based on the engine speed and the engine load, and the knock signal from each knock sensor 22a, 22b is set at a high speed in this sample section. A / D conversion is performed and the vibration waveform is faithfully converted into digital data to determine whether knock has occurred or not.
[0040]
The determination result of the presence or absence of the occurrence of knock is output to the I / O interface 71 of the sub computer 42. In the case of the occurrence of knock, knock data is transferred from the sub computer 42 to the main computer 41 through the serial line via the SCI 70 and 52. Is read, and the main computer 41 immediately delays the ignition timing of the corresponding cylinder based on the knock data to avoid knocking.
[0041]
Reference numeral 81 denotes an air conditioner control unit, which is connected to the CPU 82, ROM 83, RAM 84, and I / O interface 85 via the bus line 86, and is stable to each part from the constant voltage circuit 88 connected to the battery 45 via the ignition switch 87. A voltage is supplied.
[0042]
An air conditioner switch 89 and an I / O interface 53 of the main computer 41 are connected to the input port of the I / O interface 85. The main computer 41 sends the air conditioner control unit 81 to the variable capacity air conditioner compressor 64. A required capacity (DUTY) signal is output.
[0043]
The output port of the I / O interface 85 is connected to a variable capacity control valve (not shown) provided in the variable capacity air conditioner compressor 64 to output a capacity (DUTY) signal and to the main computer. 41 is connected to the input port of the I / O interface 53, and a signal indicating whether or not the air conditioner switch 89 is turned on is output.
[0044]
[Operation]
Next, the control operation of the ISC valve 13 of the embodiment having the above configuration will be described.
[0045]
(ISC valve control main routine)
FIGS. 1 and 2 are main routines showing an ISC valve control procedure executed by the main computer 41, and are executed every predetermined calculation cycle.
[0046]
First, in step (hereinafter abbreviated as “S”) 101, a battery voltage correction value ISCVB is set based on the monitored battery voltage. When the battery voltage is low, the ISC valve 13 does not reach the predetermined opening. Therefore, the battery voltage correction value ISCVB is set to a larger value as the battery voltage is lower.
[0047]
In step S102, an atmospheric pressure correction coefficient KALT is set. Since the intake air flow rate becomes relatively low when the atmospheric pressure is low, the atmospheric pressure correction coefficient KALT is set to a larger value as the atmospheric pressure is lower.
[0048]
Thereafter, when the process proceeds to S103, it is determined whether or not the starter switch 61 is ON in order to make a start determination. If it is ON, it is determined that the engine is starting, and the process proceeds to S104. If it is OFF, it is determined that the engine is stopped or the engine is operating. move on.
[0049]
In S105, it is determined whether the engine is stopped based on the engine speed NE detected by the output of the first crank angle sensor 31. If NE = 0 (engine is stopped), the process proceeds to S104, where NE ≠ 0 (engine is operating). In case S114, the process proceeds.
[0050]
If it is determined in S103 or S105 that the engine is starting or the engine is stopped, the process proceeds to S104, and the starting control process is executed. In S104, the starting characteristic value ISCST is set by referring to the starting characteristic value table TISCST with interpolation calculation based on the cooling water temperature TW detected by the cooling water temperature sensor 21.
[0051]
Then, the process proceeds to S106, and the duty ratio ISCON, which is the opening setting value of the ISC valve 13, is set by multiplying the value obtained by adding the starting characteristic value ISCST and the battery voltage correction value ISCVB by the atmospheric pressure correction coefficient KALT. (ISCON ← (ISCST + ISCVB) × KALT).
[0052]
Thereafter, in S107, a post-start elapsed time determination count value COUNTST (down counter) for determining whether the elapsed time after engine start used in a closed / open loop control determination subroutine described later has reached the set time TMASI [SEC]. Then, after setting a set value COUNTST corresponding to the set time TMASI (COUNTST ← COUNTTMASI), the process proceeds to S108, and a start / normal time control determination flag used for setting a post-startup correction ISCSD and a closed loop correction I minute, which will be described later. After FLAGST is set (FLAGST ← 1) to indicate that the starting control is currently being executed, the process proceeds to S109.
[0053]
In S109, the duty ratio ISCON is compared with the lower limit value IMINOP during open loop control. If ISCON ≦ IMINOP, the set duty ratio ISCON is equal to or lower than the lower limit value. Therefore, in S110, the duty ratio ISCON is set to the lower limit value. Set with the value IMINOP (ISCON ← IMINOP), and proceed to S138.
[0054]
On the other hand, if ISCON> IMINOP in S109, the process proceeds to S111, and the upper limit value IMAXOP is set by referring to the upper limit value table TBMXOP based on the cooling water temperature TW. This upper limit value table TBMXOP stores a higher upper limit value IMAXOP because startability becomes more difficult if the coolant temperature TW is low.
[0055]
In S112, the duty ratio ISCON is compared with the upper limit value IMAXOP. If ISCON ≧ IMAXOP, the process proceeds to S113, the duty ratio ISCON is fixed at the upper limit value IMAXOP (ISCON ← IMAXOP), and the process proceeds to S138. If ISCON <IMAXOP, the process directly proceeds to S138.
[0056]
On the other hand, if it is determined in S105 that NE ≠ 0 (engine is running), the process proceeds to S114, and the normal time control process is executed. When the process proceeds to S114, the start / normal control determination flag FLAGST is cleared (FLAGST ← 0, normal control), and a basic characteristic value setting subroutine (details will be described later) is executed in S115 to set the basic characteristic value ISCTW. In S116, an idle target speed setting subroutine (details will be described later) is executed to set the idle target speed NSET, and in S117, a closed / open loop control determination subroutine (details will be described later) is executed to close the closed loop. After determining whether the control or the open loop control, the process proceeds to S118.
[0057]
In S118, the air conditioner correction value ISCAC set in a correction value setting routine (interrupt execution every 51.2 msec) described later is read, and in S119, the main routine is executed in accordance with the AT vehicle travel range correction value ISCATDS set in the correction value setting routine. The gear position correction value ISCAT to be used is set (ISCAT ← ISCATDS), the acceleration / deceleration correction value ISCTR is set with the acceleration / deceleration correction DSHPT set in the correction value setting routine in S120 (ISCTR ← DSHPT), and after the start in S121 The correction value ISCAS is set by the post-startup correction ISCSD set in each interrupt routine described later (ISCAS ← ISCSD), the dashpot correction value DHENB updated in the correction value setting routine is read in S122, and the closed loop correction described later in S123. I minute update Order in closed loop correction I portion ISCI as feedback correction value set in (interrupt executed every 10 msec) set the closed loop correction value ISCCL used in the main routine (ISCCL ← ISCI).
[0058]
Then, in S124, the radio fan correction ISCRAS set in the correction value setting routine is used to set the radio fan correction value ISCRA used in the main routine (ISCRA ← ISCRAS). In S125, the power steering set in the correction value setting routine is set. The correction value ISCPS is read out, and the air conditioner clutch correction value ISCCLH set in the correction value setting routine is read out in S126.
[0059]
After that, in S127, the basic characteristic value ISCTW, the air conditioner correction value ISCAC, the gear position correction value ISCAT, the acceleration / deceleration correction value ISCTR, the post-startup correction value ISCAS, the dashpot correction value DHENB, the closed loop correction value ISCCL, the radio fan correction value ISCRA, The value obtained by adding the power steering correction value ISCPS, the air conditioner clutch correction value ISCCLH, and the battery voltage correction value ISCVB is multiplied by the atmospheric pressure correction coefficient KALT to set the duty ratio ISCON as shown in the following equation.
[0060]
ISCON ← (ISCTW + ISCAC + ISCAT + ISCTR + ISCAS + DHENB + ISCCL + ISCRA + ISCPS + ISCCLH + ISCVB) × KALT
Then, referring to the value of the closed / open loop control determination flag FLAGCL that is set to 1 when closed loop control is selected in S128, if FLAGCL = 1 and closed loop control is selected, proceed to S129, and open with FLAGCL = 0. When the loop control is selected, the process returns to S109 to execute the duty limit similar to that at the start.
[0061]
In S129, the duty ratio ISCON is compared with the lower limit value IMINCL during closed loop control. If ISCON ≦ IMINCL, the process proceeds to S130, where the duty ratio ISCON is set to the lower limit value IMINCL (ISCON ← IMINCL). Proceed to S138. The above lower limit value IMINCL or IMINOP is that the duty ratio ISCON is unnecessarily decreased, the opening of the ISC valve 13 is decreased, and the idle rotation speed is decreased due to the decrease in the air flow rate by the ISC valve 13, and This is set to prevent engine stalls.
[0062]
On the other hand, if it is determined in S129 that ISCON> IMINCL and the process proceeds to S131, the upper limit basic value IMAX is set by referring to the table TBMXCL with interpolation calculation based on the cooling water temperature TW. This upper limit basic value IMAX is set in order to prevent the duty ratio ISCON from becoming unnecessarily large and the idling speed from becoming excessive. On the table, the basic characteristic value ISCTW increases as the cooling water temperature TW increases. Therefore, the duty ratio ISCON is also reduced, so that the upper limit basic value IMAX is also stored as the coolant temperature TW increases.
[0063]
Thereafter, when the process proceeds to S132, it is determined whether the air conditioner switch 89 is ON. If the air conditioner switch 89 is ON, the process proceeds to S133, and the upper limit basic value air conditioner correction ID1 is set with the set value ISCBAC (ID1 ← ISCBAC). The advance upper limit basic value air conditioner correction ID1 is set to 0 (ID1 ← 0).
[0064]
In S135, the upper limit basic value air conditioner correction ID1 is added to the upper limit basic value IMAX to set the upper limit value IMAXCL (IMAXCL ← IMAX + ID1). Since the air conditioner is idling up in the driving state, the upper limit value IMAXCL is also set higher by the upper limit basic value air conditioner correction ID1 (set value ISCBAC).
[0065]
In S136, the duty ratio ISCON is compared with the upper limit value IMAXCL. If ISCON ≧ IMAXCL, the process proceeds to S137, the duty ratio ISCON is set to the upper limit value IMAXCL (ISCON ← IMAXCL), and the process proceeds to S138. If ISCON <IMAXCL, the duty ratio ISCON is within the allowable range (IMINCL <ISCON <IMAXCL), and the process directly proceeds to S138.
[0066]
Thereafter, when the process proceeds from S110, S113, S130, S136, or from S137 to S138, the duty signal DUTY corresponding to the duty ratio ISCON set in each step is output to the coil of the ISC valve 13 (DUTY ← ISCON). Exit the routine.
[0067]
The duty signal DUTY for the ISC valve 13 is output and held until the duty signal DUTY is newly set at the next routine execution.
(Correction value setting routine)
FIG. 3 shows a correction value setting routine executed by interruption every set time, for example, every 51.2 msec.
[0068]
First, in step S201, an air conditioner correction value setting subroutine (details will be described later) is set to set an air conditioner correction value ISCAC. In step S202, an AT vehicle travel range correction value setting subroutine (details will be described later) is executed to perform an AT vehicle travel range. A correction value ISCATDS is set, an acceleration / deceleration correction setting subroutine (details will be described later) is executed in S203 to set an acceleration / deceleration correction DSHPT, and a dashpot correction value update subroutine (details will be described later) is executed in S204. The correction value DHENB is updated, a radio fan correction setting subroutine (details will be described later) is executed in S205 to set a radio fan correction ISCRAS, and a power steering correction value setting subroutine (details will be described later) in S206 to set the power steering correction value ISCPS. Set the air conditioner clutch correction value in S207 (Details will be described later) Chin exits the routine to set the air conditioner clutch correction value ISCCLH running.
[0069]
(Basic characteristic value setting subroutine)
FIG. 4 is a basic characteristic value ISCTW setting subroutine executed in the main routine (see S115). The basic characteristic value ISCTW is set separately for the warming-up and running warm-up.
[0070]
First, in S301 to S303, it is determined whether or not the vehicle is completely stopped. In S301, it is determined whether or not the idle switch 12b is ON. If ON (throttle valves 11d and 11e are fully closed), the process proceeds to S302. If OFF (throttle valves 11d and 11e are open), the process proceeds to S305.
[0071]
In S302, if the parking switch 60 is ON (a state where the select lever is set to the P range), the process proceeds to S303, and if it is OFF, the process proceeds to S305.
[0072]
In S303, it is determined whether the vehicle speed VSP is 0 based on the vehicle speed VSP detected by the vehicle speed sensor 56. If VSP = 0 (stopped state), the process proceeds to S304, and if VSP ≠ 0 (running state), the process proceeds to S305.
[0073]
In S304, the neglected / running warm-up discrimination flag FLAGTIS is set (FLAGTIS ← 1, neglected warm-up). In S306, the neglected warm-up basic characteristic value table TISTWS is referenced with interpolation calculation based on the cooling water temperature TW. After setting the characteristic value ISCTW, the routine exits.
[0074]
The basic characteristic value ISCTW of the neglected warm-up is that the transmission is shifted to the P range and the vehicle is completely stopped. Therefore, the opening of the ISC valve 13 is increased and the amount of intake air is increased by the ISC valve 13. In order to increase the engine speed and shorten the engine warm-up completion time, it is set to a higher value than the running warm-up. Although there is an upper limit in consideration of the fuel consumption rate and the feeling, an optimum basic characteristic value ISCTW is obtained from an experiment or the like using the cooling water temperature TW as a parameter and stored in the ROM 49 as a table.
[0075]
On the other hand, when the routine proceeds from S301, S302, or S303 to S305, the neglected / running warm-up discrimination flag FLAGTIS is cleared (FLAGTIS ← 0, running warm-up), and in S307, the running warm-up basic characteristic value table TISTWR is based on the coolant temperature TW. Is set with the interpolation calculation to set the basic characteristic value ISCTW, and the routine is exited.
[0076]
Running warm-up is a state in which the transmission is shifted to the D range (including 1st speed, 2nd speed, ...) or N range. The optimum basic characteristic value ISCTW is obtained by using the cooling water temperature TW as a parameter and stored in the ROM 49 as a table, and is set to a value lower than the warming-up.
[0077]
(Idle target speed setting subroutine)
FIG. 5 is a subroutine for setting the target idle speed NSET that is executed in the main routine (see S116).
[0078]
First, in step S401, the value of the neglected / running warm-up determination flag FLAGTIS is referred to. If FLAGTIS = 1 (standby warm-up), the process proceeds to S402. If FLAGTIS = 0 (running warm-up), the process proceeds to S403.
[0079]
In S402, the left warm-up target rotation speed table TNSETS is referenced with interpolation calculation based on the cooling water temperature TW, and the left warm-up target rotation speed NSETS is set. In S404, it is stored at a predetermined address in the RAM 50. After the idle target speed NSET is set as the above-mentioned neglected warm-up target speed NSETS (NSET ← NSETS), the process proceeds to S406.
[0080]
The above-described left warm-up target rotation speed table TNSETS is stored in the ROM 49, and the optimum target rotation speed NSETS obtained in advance through experiments or the like is stored in each area. Further, since the transmission is shifted to the P range at the time of the warming-up, and the vehicle is completely stopped, the target rotational speed NSETS in each region is set to a driving warm-up described later in order to shorten the warm-up time. It is set to a value higher than the hourly target rotation speed NSETR.
[0081]
On the other hand, when it is determined in S401 that the vehicle is warming up (FLAGIS = 0) and the process proceeds to S403, the target temperature during warming up of the vehicle is referred to with reference to the target warming-up time table TNSETR with interpolation calculation based on the coolant temperature TW. The engine speed NSETR is set, and the process proceeds to S405. The idle target engine speed NSET stored at a predetermined address in the RAM 50 is set to the above-mentioned warm-up target engine speed NSETR (NSET ← NSETR), and then the process proceeds to S406.
[0082]
The traveling warm-up target rotational speed table TNSETR is stored in the ROM 49, the target rotational speed NSETR is obtained using the cooling water temperature TW as a parameter, and is set to a value lower than that of the stand-by warming.
[0083]
Then, when the process proceeds from S404 or S405 to S406, it is determined whether the neutral switch 59 is OFF (the select lever is set to a position other than the N range). If it is OFF, the process proceeds to S407, and if it is ON, power is not transmitted to the transmission. Since the engine 1 is not loaded, the process proceeds to S409.
[0084]
In S407, it is determined whether the parking switch 60 is OFF (the select lever is set to a position other than the P range). If the switch is OFF, the select lever is shifted to the driving range such as the D range, the first speed, the second speed, etc. It is determined that a load is applied, and the process proceeds to S408. If it is ON, the select lever is shifted to the P range, and the engine 1 is not loaded, so the process proceeds to S409.
[0085]
When the process proceeds from S407 to S408, the value of the neglected / running warm-up determination flag FLAGTIS is referred to. If FLAGTIS = 0 (running warm-up), the process proceeds to S410. .
[0086]
In S410, since the vehicle is running, the set value DNAT is added to the target rotation speed NSETR set in S403 and stored at a predetermined address in the RAM 50 in order to shift the idle target rotation speed NSET by the set value DNAT. The idle target rotation speed NSET is set (NSET ← NSETR + DNAT), and the process proceeds to S411.
[0087]
In S411, it is determined whether the air conditioner switch 89 is ON. If it is ON, the process proceeds to S412 and the preset target rotational speed lower limit value DARCON when the traveling range air conditioner is ON is compared with the idle target rotational speed NSET, and NSET ≦ DARCON In step S413, the target idle speed NSET is set at the target rotational speed lower limit value DARCON when the traveling range air conditioner is ON, which is a lower limiter for coping with the air conditioner load (NSET ← DARCON), and the routine is exited. .
[0088]
If it is determined in S411 that the air conditioner switch 89 is OFF or NSET> DARCON is determined in S412, the routine is directly exited.
[0089]
On the other hand, when the process proceeds from S406 or S407 to S409, it is determined whether the air conditioner switch 89 is ON. If it is ON, the process proceeds to S414 and the idle target speed NSET and the preset target speed lower limit value NARCON when the N and P range air conditioners are ON. If NSET ≦ NARCON, the process proceeds to S415, and the idle target rotation speed NSET is set at the target rotation speed NARCON when the N and P range air conditioners are ON, which is a lower limiter for dealing with the load when the air conditioner is ON. (NSET ← NARCON), the routine is exited. If it is determined in step S409 that the air conditioner switch 89 is OFF, or if it is determined in step S414 that NSET> NARCON, the routine is immediately exited.
[0090]
(Closed / open loop control discrimination subroutine)
FIG. 6 shows a closed / open loop control determination subroutine executed in the main routine (see S117). First, in S501, in order to determine whether the set time TMASI [SEC] after starting has elapsed, the value of the elapsed time determining count value COUNTST after starting is referred to. When COUNTST = 0, that is, it is determined that the set time has elapsed after starting. If COUNTST ≠ 0, the process proceeds to S503, the post-start elapsed time discriminating count value COUNTST is counted down (COUNTST ← COUNTST-1), and the engine speed has not elapsed since the engine has started. Since it is still estimated to be unstable, the process jumps to S527 to select the open loop control, clears the closed / open loop control determination flag FLAGCL, and exits the routine.
[0091]
On the other hand, when the process proceeds to S502, it is determined whether or not the idle switch 12b is ON. If it is ON (throttle valves 11d and 11e are fully closed), the process proceeds to S504. If it is OFF (throttle valves 11d and 11e are open), open loop control is performed. Jump to S527 to select.
[0092]
If the process proceeds from S502 to S504, it is determined whether the neutral switch 59 is ON. If it is OFF, the process proceeds to S505. It is determined whether the parking switch 60 is ON. If it is ON, the process proceeds to S509, and if it is OFF, the process proceeds to S506.
[0093]
When the neutral switch 59 and the parking switch 60 are both OFF in S504 and S505 and it is determined that the select lever is set to a range other than the N range or P range, that is, the travel range, the process proceeds to S506. Alternatively, after the parking switch 60 is turned on, that is, an elapsed time discrimination count value COUNTAT (after P, N range shift to determine whether the elapsed time after the shift to the P, N range has reached the set time ATC [SEC]. The set value COUNTATTC corresponding to the set time ATC is set in the down counter), and then the process proceeds to S507, where the vehicle speed VSP detected by the vehicle speed sensor 56 is compared with the vehicle speed VSPFBA for discriminating preset closed / open loop control during driving. VSP <VSPFBA Advances to engagement S508, if the VSP ≧ VSPFBA proceeds to S527 so as to select the open-loop control. In S508, the engine speed NE detected based on the output of the first crank angle sensor 31 is compared with the preset closed / open loop control determination engine speed RPMFB. If NE <RPMFB, the process proceeds to S513. If NE ≧ RPMFB, the flow proceeds to S527 to select the open loop control.
[0094]
Further, when it is determined as the N range or the P range and the process proceeds from S504 or S505 to S509, the elapsed time determination count value COUNTAT after the transition to the P, N range is referred to. When COUNTAT = 0, the travel range is changed to the P range. Alternatively, it is determined that the set time ATC [SEC] has elapsed after shifting to the N range, and the process proceeds to S510.
[0095]
On the other hand, if it is determined that COUNTAT ≠ 0 in S509 and the process proceeds to S511, the elapsed time discrimination count value COUNTAT after shifting to the P, N range is counted down (COUNTAT ← COUNTAT-1), and after shifting from the traveling range to the P, N range, It is estimated that the set time has not elapsed and the engine speed has not yet stabilized due to a sudden change in engine load, and jumps to S527 to select open loop control.
[0096]
If COUNTAT = 0 is determined in step S509 and the process proceeds to step S510, the vehicle speed VSP detected by the vehicle speed sensor 56 is compared with a preset vehicle speed VSPOPA for determining closed / open loop control when the vehicle is stopped. If VSP ≧ VSPOPA, step S512 is performed. The engine speed NE is compared with the value obtained by adding the set value NCLOP to the idle target speed NSET set in the above-described idle target speed setting subroutine, and if NE <NSET + NCLOP, the process proceeds to S513. If NSET + NCLOP, jump to S527 to select $ open loop control.
[0097]
If VSP <VSPOPA in S510, or if NE <NSET + NCLOP in S512, the process proceeds to S513, where the engine speed NE is compared with the value obtained by subtracting the set value DNACF from the idle target speed NSET, If NE <NSET-DNACF, the process proceeds to S517, and if NE ≧ NSET-DNACF, the process proceeds to S514. In S514, it is determined whether or not the air conditioner switch 89 is OFF. If the air conditioner switch 89 is ON, in S515, it is determined whether or not the elapsed time after the air conditioner ON → OFF has reached the set time AOFF [SEC]. The set value COUNTAOFF corresponding to the set time AOFF is set to the elapsed time discrimination count value COUNTA (down counter) after the air conditioner is turned ON → OFF (COUNTA ← COUNTAOFF). Then, the process jumps to S527 to execute the open loop control.
[0098]
On the other hand, if it is determined in S514 that the air conditioner switch 89 is OFF and the process proceeds to S516, the value of the elapsed time discrimination count value COUNTA after the air conditioner ON → OFF is referred to, and if COUNTA = 0, the air conditioner switch 89 is turned ON → OFF. It is determined that the set time AOFF [SEC] has elapsed, and the process proceeds to S517. If COUNTA ≠ 0, the process proceeds to S518, the elapsed time discrimination count value COUNTA after the air conditioner ON → OFF is counted down (COUNTA ← COUNTA-1), and the process proceeds to S527 to select the open loop control.
[0099]
Then, when the process proceeds from S513 or S516 to S517, the engine rotation speed NE is subtracted from the idle target rotation speed NSET to obtain a differential rotation ΔN. In S519, the differential rotation ΔN is compared with the set value NDPS. If ΔN ≧ NDPS, the process proceeds to S520, and if ΔN <NDPS, the process proceeds to S527.
[0100]
In S520, the differential rotation ΔN and the set value DNFB (DNFB ≧ NDPS) are compared, and if ΔN ≦ DNFB, the process proceeds to S521, and if ΔN> DNFB, it is determined that the closed-loop control condition is satisfied, and the process proceeds to S525. Then, in order to select closed loop control, the closed / open loop control determination flag FLAGCL is set and the routine is exited.
[0101]
In S521, the value of acceleration / deceleration correction DSHPT set in an acceleration / deceleration correction setting subroutine described later is referred. If DSHPT = 0, the process proceeds to S522, and if DSHPT ≠ 0, the process proceeds to S523.
[0102]
In S522, the dashpot correction value DHENB set in a dashpot correction value setting routine described later is referred to. If DHENB ≠ 0, the process proceeds to S523, and if DHENB = 0, the process proceeds to S524.
[0103]
In S523, the above-mentioned setting is made to the steady state transition determination count value COUNTCL (down counter) for determining whether the state of acceleration / deceleration correction DSHPT = 0 and dashpot correction value DHENB = 0 has passed the set time CLSD [sec]. A set value COUNTCLSD corresponding to the time CLSD is set (COUNTCL ← COUNTCLSD), and the process proceeds to S527 to select open loop control because of a transient state in which acceleration / deceleration correction or dashpot correction is currently being executed.
[0104]
On the other hand, when the process proceeds from S522 to S524, the value of the steady state transition determination count value COUNTCL is referred to. When COUNTCL = 0, it is determined that the steady state is satisfied and the closed loop control condition is satisfied, and the process proceeds to S525 to select the closed loop control. If COUNTCL ≠ 0, the process proceeds to S526, and after the steady state transition determination count value COUNTCL is counted down (COUNTCL ← COUNTCL-1), the process proceeds to S527.
[0105]
When the process proceeds from S520 or S524 to S525, the closed / open loop control determination flag FLAGCL is set (FLAGCL ← 1, closed loop control is selected), and the routine is exited.
[0106]
S502, S503, S507, S508, S511, S512, S515, S518, S519, S523 If the process proceeds from S526 to S527, the closed / open loop control determination flag FLAGCL is cleared (FLAGCL ← 0, open loop control is selected). , Exit the routine.
[0107]
The closed loop control conditions according to the above flowchart are summarized as <1> to <7> below, and open loop control is performed otherwise.
[0108]
<1> A predetermined time TMASI [sec] has elapsed since startup.
<2> The idle switch 12b is ON.
<3> (i) Neutral switch 59 or parking switch 60 is ON and vehicle speed VSP <VSPOPA
Or (ii) the neutral switch 59 or the parking switch 60 is ON and VSP ≧ VSPOPA [Km / h], but the engine speed NE <(NSET + NCLOP) [rpm]
Or (iii) the neutral switch 59 and the parking switch 60 are both OFF, the vehicle speed VSP <VSPFBA [Km / h], and the engine speed NE <RPMFB [rpm].
<4> (i) Even if the air conditioner switch 89 is ON and the air conditioner transient correction value ISCACF = 0 or ISCACF ≠ 0 [%], the engine speed NE <(NSET-DNACF) [rpm].
Or (ii) the air conditioner switch 89 is OFF and after a predetermined time AOFF [sec] has elapsed after ON → OFF, or the engine speed NE <(NSET-DNACF) [rpm].
<5> The neutral switch 59 or the parking switch 60 is ON, and after a predetermined time ATC [sec] has elapsed after being switched from OFF to ON.
<6> Even if power steering correction value ISCPS = 0 or ISCPS ≠ 0 [%], differential rotation ΔN ≧ NDPS [rpm]
<7> (i) All the conditions <1> to <6> are satisfied, and the state of acceleration / deceleration correction DSHPT = 0 [%] and dashpot correction DHENB = 0 [%] continues for a predetermined time CLSD [sec]. Or even if the predetermined time CLSD [sec] is not continued, the differential rotation ΔN> DNFB [rpm].
Or (ii) satisfying all <1> to <6>, and even if acceleration / deceleration correction DSHPT ≠ 0 [%] and dashpot correction DHENB ≠ 0 [%], differential rotation ΔN> DNFB [rpm]
(Air conditioning correction value setting subroutine)
FIGS. 7 and 8 are subroutines for setting the air conditioner correction value ISCAC executed in the correction value setting routine executed by interruption every 51.2 msec (see S201).
[0109]
First, in S601, it is determined whether or not the neutral switch 59 is ON. If it is OFF, the process proceeds to S602. If it is ON, the N range is determined and the process proceeds to S603.
[0110]
When the process proceeds to S602, it is determined whether the parking switch 60 is ON. If the parking switch 60 is ON, the P range is determined and the process proceeds to S603. If the parking switch 60 is OFF, the travel range is determined and the process proceeds to S604.
[0111]
When the process proceeds to S603, the travel range determination flag FLAGAT is cleared (FLAGAT ← 0, N or P range) and the process proceeds to S605. When the process proceeds to S604, the travel range determination flag FLAGAT is set (FLAGAT ← 1, travel range) and the process proceeds to S605. move on.
[0112]
In S605, it is determined whether the air conditioner switch 89 is ON. If ON, the process proceeds to S606. If OFF, the process proceeds to S607, and the air conditioner transient for determining whether the set time AON [sec] has elapsed since the air conditioner switch 89 was turned ON. A set value COUNTAON corresponding to the set time AON is set in the correction end determination count value COUNTAC (down counter) (COUNTAC ← COUNTAON), and the process proceeds to S620.
[0113]
When it is determined that the air conditioner switch 89 is ON in S605 and the process proceeds to S606, the value of the air conditioner transient correction end determination count value COUNTAC is referred to. When COUNTAC ≠ 0, the set time AON has not elapsed since the air conditioner switch is turned OFF → ON. The process proceeds to S608, and if COUNTAC = 0, it is determined that the set time AON has elapsed after the air conditioner switch is turned off and then the process proceeds to S611.
[0114]
After proceeding to S608, the air conditioner transient correction completion determination count value COUNTAC is counted down (COUNTAC ← COUNTAC-1), and then proceeding to S609, where the engine speed NE is compared with the set upper limit value obtained by adding the set value DNAC to the idle target speed NSET. If NE ≦ NSET + DNAC, it is determined that the engine speed NE is lower than the set speed, and the process proceeds to S610. If NE> NSET + DNAC, it is determined that the engine speed NE is higher than the set speed, and the process proceeds to S611.
[0115]
When the process proceeds to S610, the value of the travel range determination flag FLAGAT is referred to. When FLAGAT = 1 (travel range), the process proceeds to S612, and when FLAGAT = 0 (N or P range), the process proceeds to S613.
[0116]
When the process proceeds to S612, the air conditioner transient correction value ISCACF is set to the initial value with the set value ACFFD (ISCACF ← ACFFD [%]), and then the process proceeds to S616. In S613, the air conditioner transient correction value ISCACF is set to the initial value with the set value ACFFN (ISCACF ← ACFFN [%]), and then the process proceeds to S616.
[0117]
On the other hand, when the process proceeds from S606 or S609 to S611, it is determined whether the air conditioner transient correction value ISCACF is 0 [%] or less. If ISCACF ≦ 0, the process proceeds to S614, and the air conditioner transient correction value ISCACF is set to 0 [%]. (ISCACF ← 0), the process proceeds to S616. If ISCACF> 0, the air conditioner transient correction value ISCACF is updated with a value obtained by subtracting the set value DACFF from the air conditioner transient correction value ISCACF (ISCACF ← ISCACF−DACFF), and then the process proceeds to S616.
[0118]
When the process proceeds from any of S612 to S615 to S616, the value of the travel range determination flag FLAGAT is referred to. When FLAGAT = 1, (travel range), the process proceeds to S617, and when FLAGAT = 0 (P, N range), the process proceeds to S618. move on.
[0119]
In S617, the air conditioner steady correction value ISCACS is set with the set value ACDTY (ISCACS ← ACDTY), and then the process proceeds to S619. In S618, the air conditioner steady correction value ISCACS is set by setting the air conditioner learning correction value MACDTY read from a predetermined address in the backup RAM 50a (set in an air conditioner correction learning routine described later) (ISCACS ← MACDTY), and then the process advances to S619. .
[0120]
When the process proceeds from S617 or S618 to S619, the air conditioner correction value ISCAC [%] is set by adding the air conditioner steady correction value ISCACS to the air conditioner transient correction value ISCACF (ISCAC ← ISCACF + ISCACS), and the routine is exited.
[0121]
On the other hand, when the process proceeds from S607 to S620, the air conditioner correction value ISCAC is read to determine whether the air conditioner correction value ISCAC is 0 [%] or less. If ISCAC ≦ 0, the process proceeds to S621 and the air conditioner correction value ISCAC is set to 0 [%]. After setting (ISCAC ← 0), exit the routine.
[0122]
If ISCAC> 0, the process proceeds to S622, the air conditioner correction value ISCAC is compared with the set value ISCACD [%] (value close to 0%), and if ISCAC ≧ ISCACD, the process proceeds to S623, and if ISCAC <ISCACD, the air conditioner Since the correction value ISCAC is close to 0 [%], the process proceeds to S624 in order to reduce the subtraction amount in order to prevent control hunting and improve convergence.
[0123]
When the process proceeds to S623, the value of the travel range determination flag FLAGAT is referred to. When FLAGAT = 1 (travel range), the process proceeds to S626, and the reduction value DSAC is set with the set value DSAC1D [%] (DSAC ← DSAC1D), and the process proceeds to S630. . If FLAGAT = 0 (P, N range), the process proceeds to S627, the reduction value DSAC is set as the set value DSAC1N (DSAC ← DSAC1N), and the process proceeds to S630.
[0124]
Further, when the process proceeds from S622 to S624, the value of the travel range determination flag FLAGAT is referred to. When FLAGAT = 1 (travel range), the process proceeds to S628 and the reduction value DSAC is set with the set value DSAC2D (however, DSAC1D> DSAC2D) ( DSAC ← DSAC2D), the process proceeds to S630. If FLAGAT = 0 (P, N range), the process proceeds to S629. After the reduction value DSAC is set to the set value DSAC2N (where DSAC1N> DSAC2N) (DSAC ← DSAC2N), the process proceeds to S630.
[0125]
When the process proceeds from any of S626 to S629 to S630, the air conditioner correction value ISCAC is subtracted by the reduction value DSAC (ISCAC ← ISCAC−DSAC), and the routine is exited.
[0126]
A representative example of the air conditioner correction value setting will be described with reference to the time chart of FIG.
[0127]
When the air conditioner switch 89 is set from OFF to ON, the air conditioner correction value ISCAC is preset for a set time AON [sec], and the air conditioner steady correction value ISCACS (ACCDTY or MACDTY) and the air conditioner transient correction value ISCACF (ACFFD or , ACFFN) (elapsed time t1 to 2), and during the set time AON [sec], the engine rotational speed NE approaches the rotational speed obtained by adding the set value DNAC to the idle target rotational speed NSET. Controlled.
[0128]
That is, if the air conditioner correction value ISCAC is set to a value that does not add the air conditioner transient correction value ISCACF, immediately after the air conditioner switch 89 is turned on, the load caused by the air conditioner compressor drive is suddenly applied to the engine. As indicated by the broken line, the engine speed greatly fluctuates and the feeling deteriorates.
[0129]
Therefore, after the air conditioner switch 89 is turned ON, during the set time AON, the air conditioner correction value ISCAC is increased by the air conditioner transient correction value ISCACF to increase the duty ratio ISCON to the ISC valve 13 and the opening of the ISC valve 13 is increased. By increasing the air volume, the engine speed NE can be prevented from dropping due to sudden load fluctuations due to the air conditioner compressor driving immediately after the air conditioner switch is turned on, and a stable feeling can be obtained as shown by the solid line in FIG. Can do.
[0130]
When the set time AON [sec] elapses, the air conditioner transient correction value ISCACF is decreased by the set value DACFF for each calculation cycle until it becomes 0 (elapsed time t2 to t3). In this way, by gradually decreasing the air conditioner transient correction value ISCACF over time, the engine speed NE can be smoothly shifted to the idle up speed when the air conditioner is driven.
[0131]
Thereafter, when the air conditioner switch 89 is turned OFF (elapsed time t4), the air conditioner correction value ISCAC is decreased by the set value DSAC1D or DSAC1N every calculation cycle until the air conditioner correction value ISCAC becomes the set value ISCACD.
[0132]
When the air-conditioner correction value ISCAC reaches the set value ISCACD (elapsed time t5), the air-conditioner correction value ISCAC is decreased by 0 every setting value DSAC2D or DSAC2N.
[0133]
That is, when the air conditioner switch 89 is turned from ON to OFF, if the air conditioner correction value ISCAC is suddenly set to 0, the variable capacity air conditioner compressor 64 is used. Therefore, the air conditioner clutch relay 65 is used within a predetermined time after the air conditioner switch is turned ON. Is still ON (connected) and the load on the engine driven by the air-conditioner compressor remains due to the air-conditioner capacity control, resulting in a decrease in engine speed as indicated by the broken line in FIG.
[0134]
Further, when the air conditioner correction value ISCAC is reduced by a reduction value that remains large after the air conditioner switch 89 is turned off, the convergence of the engine speed NE in the vicinity of ISCAC = 0 becomes worse as indicated by the one-dot chain line in FIG.
[0135]
Therefore, after the air conditioner switch 89 is turned OFF, until the air conditioner correction value ISCAC decreases to the set value ISCACD, the air conditioner correction value ISCAC is decreased by the first subtraction value every calculation cycle, and the opening of the ISC valve 13 is gradually increased. By gradually reducing the air amount to a lower value, the engine speed drop due to friction from the air conditioner compressor 64 remaining immediately after the air conditioner switch is turned off is prevented, and then the air conditioner correction value ISCAC becomes less than the set value ISCACD. If the air conditioner correction value ISCAC decreases, the air conditioning correction value ISCAC is reduced every calculation cycle until the second subtraction value smaller than the first subtraction value becomes 0, and the reduction rate of the duty ratio ISCON set using the air conditioner correction value ISCAC is reduced. The air conditioner is reduced by reducing the opening reduction rate of the ISC valve 13. Reduce the rate of decrease in engine rotational speed NE when approaching the target idle speed NSET at FF improving convergence to the target rotational speed of the engine rotational speed NE.
[0136]
(Air conditioning correction learning routine)
FIG. 9 is a routine for executing an interrupt when the air conditioner switch 89 is turned OFF → ON. First, the value of the closed / open loop control determination flag FLAGCL is referred to in S101, and if FLAGCL = 1 (during closed loop control), the process proceeds to S702. If FLAGCL = 0 (during open loop control), the process proceeds to S707.
[0137]
In S702, the closed-loop correction I-minute ISCI, which is the current feedback correction value set in the closed-loop correction I-minute update routine described later, is read and stored as a current feedback control value MISCI at a predetermined address in the RAM 50 (MISCI ← ISCI), the timer TIMERLRN is started in S703, and it is determined in S704 whether the air conditioner switch 89 is ON. If ON, the process proceeds to S705, and if OFF, the process proceeds to S707. In S705, the value of the closed / open loop control determination flag FLAGCL is referred to. If FLAGCL = 1 (during closed loop control), the process proceeds to S706, and if FLAGCL = 0 (during open loop control), the process proceeds to S707.
[0138]
When the process proceeds to S706, the timer TIMERLRN is compared with the preset time TACLRN. If TIMERRN ≧ TACCLRN, it is determined that the air conditioner switch 89 is in the closed loop control and the set time has elapsed, and the process proceeds to S708. If TIMERLRN <TACCLRN, the process returns to S704.
[0139]
On the other hand, when the process proceeds from S701, S704, or S705 to S707, the timer TIMERLRN is reset (TIMERRN ← 0), and then the routine is exited.
[0140]
In S708, the timer TIMERLRN is reset (TIMERRN ← 0), and then the current closed-loop correction I-minute ISCI is read in S709 and stored as a feedback control value LISCI after the set time TACLRN has elapsed in the RAM 50. .
[0141]
In step S710, the air conditioning correction learning value MACDTY stored in the predetermined address of the backup RAM 50a is updated with the value obtained from the following equation, and the routine is exited.
[0142]
Figure 0003612286
FIG. 10 is a routine for executing an interrupt when the air conditioner switch 89 is switched from ON to OFF. First, in S801, the value of the closed / open loop control determination flag FLAGCL is referred to, and if FLAGCL = 1 (during closed loop control), the process proceeds to S802. If FLAGCL = 0 (during open loop control), the routine is exited.
[0143]
In S802, the feedback control value MISCI (value when the air conditioner switch 89 is OFF → ON) stored in a predetermined address of the RAM 50 is read. In S803, the current closed-loop correction I-minute ISCI is read, and the predetermined value in the RAM 50 is read. The current feedback control value LISCI is stored in the address (LISCI ← ISCI).
[0144]
In step S804, the air conditioning correction learning value MACDTY stored at a predetermined address in the backup RAM 50a is updated with the value obtained from the following equation, and the routine is exited.
[0145]
MACDTY ← MACDTY + [(LISCI-MISCI) × KACON]
As described above, when the air conditioner is ON and the closed loop control is in progress, the feedback control value MISCI at that time and the same condition (the closed loop control is in progress and the air conditioner switch 89 is ON) continue for the set time TACLRN. The air conditioner correction learning value MACDTY is set based on the difference from the feedback control value LISCI of the air conditioner, and the air conditioner correction value ISCACS is set as the air conditioner steady correction value ISCACS when setting the air conditioner correction value ISCAC in the P and N ranges in the air conditioner correction value setting subroutine. By using the learning value MACDTY, it is possible to compensate for aging degradation of the ISC valve 13 and to always perform a predetermined idle up when the air conditioner is ON. It should be noted that since the engine load is relatively larger in the traveling range than in the N and P ranges, the influence of the deterioration of the ISC valve 13 is small, and therefore it is not necessary to use the learning correction value.
[0146]
In addition to executing an interrupt when the air conditioner switch 89 is OFF → ON, an interrupt when the air conditioner switch 89 is OFF → ON is executed. It is possible to compensate for a deviation between the value MACDTY and the air conditioning correction learning value MACDTY set at the time of the previous OFF → ON.
[0147]
(AT car travel range correction value setting subroutine)
FIGS. 11 and 12 are subroutines for setting the AT vehicle travel range correction value ISCATDS, which is executed in the correction value setting routine executed by interruption every 51.2 msec (see S202).
[0148]
First, in step S901, the value of the travel range determination flag FLAGAT set in the air-conditioner correction value setting subroutine described above is referred to. If FLAGAT = 1 (travel range), the process proceeds to S902. If FLAGAT = 0 (P, N range). The process proceeds to S903. In S902, the value of the travel range shift determination count value COUNTAT1 (down counter) corresponding to the delay time ISCAT1 [sec] when shifting from the P, N range to the travel range set in S913, which will be described later, is referred to, and COUNTAT1 If = 0, the process proceeds to S904. Further, if COUNTAT1 ≠ 0, the process proceeds to S905, the travel range shift determination count value COUNTAT1 is counted down (COUNTAT1 ← COUNTAT1-1), and the process proceeds to S908.
[0149]
If it is determined in S902 that the travel range state (neutral switch 59 and parking switch 60 are both OFF) has continued for a delay time ISCAT1 or longer (COUNTAT1 = 0) and the process proceeds to S904, it is stored at a predetermined address in the RAM 50. The AT vehicle travel range correction value ISCATDS is compared with the set value DRGDTY. If ISCATDS ≧ DRGDTY, the process proceeds to S906, and the AT vehicle travel range correction value ISCATDS is set with the set value DRGDTY (ISCATDS ← DRGDTY), and then to S908. move on. If ISCATDS <DRGDTY, the process proceeds to S907, where the AT vehicle travel range correction value ISCATDS is updated with a value obtained by adding the AT vehicle travel range correction value ISCATDS to a small amount set value DLTAT1 (where DLTAT1 <DRGDTY) ( ISCATDS ← ISCATDS + DLTAT1), the process proceeds to S908.
[0150]
When the process proceeds from S905, S906, or S907 to S908, the set value COUNTISCAT2 corresponds to the delay time ISCAT2 [sec] when shifting from the travel range to the N, P range. (Counter) is set (COUNTAT2 ← COUNTISCAT2), and the routine is exited.
[0151]
On the other hand, if it is determined in S901 that the N / P range (FLAGAT = 0) and the process proceeds to S903, the value of the N / P range shift determination count value COUNTAT2 is referred to. If COUNTAT2 ≠ 0, the process proceeds to S909, and the count value COUNTAT2 Is counted down (COUNTAT2 ← COUNTAT2-1), and the process proceeds to S913.
[0152]
If COUNTAT2 = 0 is determined in S903 and the process proceeds to S910, it is determined whether the AT vehicle travel range correction value ISCATDS is 0 or less. If ISCATDS> 0, the process proceeds to S911 and the AT vehicle travel range correction value ISCATDS small amount. The AT vehicle travel range correction value ISCATDS is set by subtracting the set value DLTAT2 from (ISCATDS ← ISCATDS-DLTAT2), and the process proceeds to S913. If ISCATDS ≦ 0, the process proceeds to S912, where the AT vehicle travel range correction value ISCATDS is set to 0 [%] (ISCATDS ← 0), and the process proceeds to S913.
[0153]
Then, when the process proceeds from S909, S911, or S912 to S913, the travel range shift determination count value COUNTAT1 is set with the count value COUNTISCAT1 corresponding to the delay time ISCAT1 [sec] when shifting from the N and P ranges to the travel range. After that (COUNTAT1 ← COUNTISCAT1), the routine is exited.
[0154]
A representative example of the AT vehicle travel range correction value setting will be described with reference to the time chart of FIG.
[0155]
When shifting from the N, P range (FLAGAT = 0) to the travel range (FLAGAT = 1) (elapsed time t1), the measurement of the predetermined delay time ISCAT1 [sec] is started, and after this delay time ISCAT1 [sec] has elapsed, the calculation is performed. A small set value DLTAT1 [%] is added for each cycle (ISCATDS ← ISCATDS + DLTAT1), and the AT vehicle travel range correction value ISCATDS [%] reaches the set value DRGDTY [%] (elapsed time t2). The traveling range correction value ISCATDS [%] is fixed at the set value DRGDTY [%] (elapsed time t2 to t3).
[0156]
When shifting from the N and P ranges to the travel range, the engine is loaded with a very small delay time. Therefore, if the AT vehicle travel range correction value ISCATDS is immediately set from 0 to the set value DRGDTY [%], the broken line in FIG. As shown, the engine speed NE temporarily increases and the feeling deteriorates.
[0157]
Further, if the AT vehicle travel range is not corrected, the engine load is suddenly applied when shifting from the N and P ranges to the travel range, and the engine speed decreases as indicated by the two-dot chain line in FIG. Closed loop correction I minute ISCIBecause of this, it takes time for the engine speed to converge.
[0158]
Therefore, when shifting to the travel range, after a predetermined delay time ISCAT1 corresponding to the transmission delay time of the engine load, the AT vehicle travel range correction value ISCATDS is gradually increased until reaching the set value DRGDTY, and the AT vehicle travel range correction value. By gradually increasing the duty ratio ISCON set using ISCATDS and gradually increasing the amount of air by the ISC valve 13, fluctuations in the engine speed are prevented and the feeling is improved.
[0159]
On the other hand, when shifting from the travel range (FLAGAT = 1) to the N, P range (FLAGAT = 0) (elapsed time t3), the measurement of the predetermined delay time ISCAT2 [sec] is started, and after this delay time ISCAT2 [sec] has elapsed. Then, the AT vehicle travel range correction value ISCATDS is subtracted for each calculation cycle until the small set value DLTAT2 [%] reaches 0 (ISCATDS ← ISCATDS-DLTAT2, elapsed time t4).
[0160]
When shifting from the driving range to the N or P range, the engine load decreases sharply with a small delay time. If the AT vehicle driving range correction value ISCATDS is immediately set to 0, the load on the transmission side engine is completely eliminated. Therefore, as indicated by the broken line in FIG. 3C, the engine speed temporarily decreases and the feeling deteriorates.
[0161]
Also, if the AT vehicle travel range is not corrected, the engine load decreases rapidly when shifting from the travel range to the N / P range, so the engine speed increases as shown by the two-dot chain line in the head (c). Resulting in poor feeling.
[0162]
Therefore, when shifting to the N and P ranges, after the predetermined delay time ISCAT2 has elapsed, the AT vehicle travel range correction value ISCATDS is gradually decreased until it reaches 0 [%], and the duty ratio ISCON is gradually decreased. By gradually reducing the amount of air, fluctuations in the engine speed at this time are prevented and the feeling is improved.
(Acceleration / deceleration correction setting subroutine)
FIGS. 13 and 14 are subroutines for setting acceleration / deceleration correction DSHPT executed in a correction value setting routine executed by interruption every 51.2 msec (see S203).
[0163]
First, in S1001, it is determined whether the idle switch 12b is OFF. If it is OFF (throttle valves 11d, 11e are open), the process proceeds to S1002, and if it is ON (throttle valves 11d, 11e are fully closed), the process proceeds to S1003.
[0164]
When the process proceeds to S1002, the value of the travel range discrimination flag FLAGAT is referred to. When FLAGAT = 0 (N, P range), the process proceeds to S1004, and when FLAGAT = 1 (the travel range), the process proceeds to S1005.
[0165]
In S1004, the acceleration / deceleration correction DSHPT is obtained by referring to the N / P range acceleration / deceleration correction table TDASHN stored in a series of addresses in the ROM 49 based on the throttle opening THV detected by the throttle opening sensor 12a with interpolation calculation. After setting [%], the process proceeds to S1006.
[0166]
Further, when the routine proceeds from S1002 to S1005, the acceleration / deceleration correction DSHPT [%] is set by referring to the travel range acceleration / deceleration correction table TDASHD stored in a series of addresses of the ROM 49 with interpolation calculation based on the throttle opening THV. After that, the process proceeds to S1006.
[0167]
When the select lever is shifted to the N range or P range, no load is applied to the engine, and when the throttle valves 11d and 11e are opened, it is in a racing, idle state, etc., and the throttle opening changes. The change in the corresponding engine speed NE is larger than that in the traveling range.
[0168]
Therefore, the acceleration / deceleration correction DSHPT corresponding to the throttle opening THV stored in each area of the N / P range acceleration / deceleration correction table TDASHN is stored in the travel range acceleration / deceleration correction table TDASHHD used in the travel range. The acceleration / deceleration correction DSHPT is set to a value larger than that of the acceleration / deceleration correction DSHPT. Thus, controllability corresponding to the engine load can be obtained.
[0169]
Then, when proceeding from S1004 or S1005 to S1006, the present acceleration / deceleration correction (DSHPT) NEW stored at a predetermined address of the RAM 50 is set by the acceleration / deceleration correction DSHPT ((DSHPT) NEW ← DSHPT).
[0170]
Thereafter, when the routine proceeds to S1007, the present acceleration / deceleration correction (DSHPT) NEW is compared with the acceleration / deceleration correction (DSHPT) OLD set in the previous routine, and (DSHPT) NEW <(DSHPT) OLD (throttle opening degree). In the case of (decrease), the process proceeds to S1008, and in the case of (DSHPT) NEW ≧ (DSHPT) OLD (the throttle opening is not increased or changed), the process jumps to S1030.
[0171]
When the process proceeds to S1008, the value of the travel range determination flag FLAGAT is referred to. When FLAGAT = 0 (N, P range), the process proceeds to S1009, and when FLAGAT = 1 (travel range), the process proceeds to S1010.
[0172]
When the process proceeds to S1009, the reduction value DDASH [%] is set with the set value DDASHN (DDASH ← DDASHN), and the process proceeds to S1011. In S1010, the reduction value DDASH [%] is set with the set value DDASHHD (DDASHN> DDASHHD) (DDASH ← DDASHHD), and the process advances to S1011.
[0173]
It should be noted that the decrease in engine speed when the throttle opening is decreased is more rapid in the N and P ranges where there is no load than in the traveling range, and therefore acceleration / deceleration when (DSHPT) NEW <(DSHPT) OLD. The reduction value DDASH of the correction value DSHPT is set to be larger than that of the traveling range when the N and P ranges are used.
[0174]
In step S1011, the acceleration / deceleration correction value DSHPT is set by subtracting the reduction value DDASH from the previous acceleration / deceleration correction (DSHPT) OLD (DSHPT ← (DSHPT) OLD-DDASH).
[0175]
On the other hand, if it is determined in S1001 that the idle switch 12b is ON and the throttle is fully closed and the process proceeds to S1003, the value of the travel range determination flag FLAGAT is referred to, and if FLAGAT = 0 (N, P range), the process proceeds to S1012. If FLAGAT = 1 (traveling range), the process proceeds to S1013.
[0176]
In S1012, the offset value NDASH is set with the set value NDASHN [%] (NDASH ← NDASHN), and in S1013, the offset value NDASH is set with the set value NDASHHD (where NDASHN> NDASHHD) [%] ( NDASH ← NDASHD), and then the process proceeds to S1014.
[0177]
In S1014, the engine speed NE is compared with the value obtained by adding the offset value NDASH to the idle target speed NSET. If NE ≧ NSET + NDASH, the process proceeds to S1015, and if NE <NSET + NDASH, the process proceeds to S1016.
[0178]
When the routine proceeds to S1015, the value of the travel range discrimination flag FLAGAT is referred to. When FLAGAT = 0 (N, P range), the routine proceeds to S1017, where the dashpot holding value RDASH is set with a preset set value RDASHN [%] (RDASH ← RDASHN), and if FLAGAT = 1 (traveling range), the process proceeds to S1018, where the dashpot holding value RDASH is set with a preset value RDASHHD [%] (RDASH ← RDASHD), and then the process proceeds to S1019.
[0179]
In S1019, the current acceleration / deceleration correction DSHPT stored at a predetermined address in the RAM 50 is read, the acceleration / deceleration correction DSHPT is compared with the dashpot holding value RDASH, and if DSHPT ≦ RDASH, the process proceeds to S1020. The acceleration / deceleration correction DSHPT is set with the dashpot holding value RDASH (DSHPT ← RDASH), and the process proceeds to S1030.
[0180]
If it is determined in S1019 that DSHPT> RDASH and the process proceeds to S1021, the value of the travel range discrimination flag FLAGAT is referred to. If FLAGAT = 0 (N, P range), the process proceeds to S1022, and FLAGAT = 1 (travel range). The process proceeds to S1023.
[0181]
When the process proceeds to S1022, the first decrease value DDSH1 is set with the set value DDSH1N [%] (DDSH1 ← DDSH1N), and when the process proceeds to S1023, the first decrease is performed with the set value DDSH1D (however, DDSH1D <DDSH1N) [%]. The value DDSH1 is set (DDSH1 ← DDSH1D), and then the process proceeds to S1024.
[0182]
In S1024, the acceleration / deceleration correction DSHPT is updated with a value obtained by subtracting the first reduction value DDSH1 from the acceleration / deceleration correction DSHPT (DSHPT ← DSHPT−DDSH1), and the process advances to S1030.
[0183]
On the other hand, if NE <NSET + NDASH is determined in S1014 and the process proceeds to S1016, it is determined whether the acceleration / deceleration correction DSHPT is 0 or less. If DSHPT ≦ 0, the process proceeds to S1025, and the acceleration / deceleration correction DSHPT is fixed to 0 (DSHPT ← 0). After that, the process proceeds to S1030. If DSHPT> 0, the process proceeds to S1026.
[0184]
In S1026, the value of the travel range determination flag FLAGAT is referred to. If FLAGAT = 0 (N, P range), the process proceeds to S1027, and if FLAGAT = 1 (travel range), the process proceeds to 1028.
[0185]
When proceeding to S1027, the second reduction value DDSH2 is set (DDSH2 ← DDSH2N) by the set value DDSH2N (however, DDSH1N> DDSH2N) [%], and when proceeding to S1028, the set value DDSH2D (however, DDSH1D> DDSH2D) [ %], The second reduction value DDSH2 is set (DDSH2 ← DDSH2D), and the process proceeds to S1029.
[0186]
In S1029, the acceleration / deceleration correction DSHPT is updated with a value obtained by subtracting the second reduction value DDSH2 from the acceleration / deceleration correction DSHPT (DSHPT ← DSHPT−DDSH2), and then the process proceeds to S1030.
[0187]
By setting the respective setting values DDSH1N, DDSH2N, DDSH1D, DDSH2D for setting the first and second reduction values DDSH1, DDSH2 to DDSH1N> DDSH2N, DDSH1D> DDSH2D, the engine speed NE when the throttle is fully closed is set as the idle target. When the engine speed NE decreases to the idling target speed NSET when the engine speed NE falls to the engine speed NSET, the reduction value for the acceleration / deceleration correction DSHPT is made small so that the engine speed NE converges to the idling target speed NSET. And the control hunting can be prevented.
[0188]
When the process proceeds from S1007, S1011, S1020, S1024, S1025 or S1029 to S1030, the acceleration / deceleration correction DSHPT set in S1004, S1005, S1011, S1020, S1024, S1025, or S1029 is stored in a predetermined address of the RAM 50. The previous acceleration / deceleration correction (DSHPT) OLD is updated ((DSHPT) OLD ← DSHPT), and the routine is exited.
[0189]
A representative example of the acceleration / deceleration correction setting will be described with reference to the time chart of FIG.
[0190]
In the acceleration operation where the idle switch 12b is turned on (throttle valves 11d and 11e are fully closed) and turned off (throttle valves 11d and 11e are opened) (elapsed time t1) and the throttle opening THV is gradually increased, the engine speed NE is increased. Increases in accordance with the throttle opening THV. At this time, the acceleration / deceleration correction DSHPT set based on the throttle opening THV rises every calculation cycle, and the duty ratio ISCON of the ISC valve 13 set by incorporating this acceleration / deceleration correction DSHPT (ISCTR) increases, and the ISC valve 13 is increased (elapsed time t1 to t2 and t3 to t4).
[0191]
In the steady operation where the throttle opening THV is substantially constant, the acceleration / deceleration correction DSHPT is constant (elapsed time t2 to t3 and t4 to t5).
[0192]
When the throttle valves 11d and 11e are suddenly closed, the intake pipe pressure rapidly decreases, and the fuel adhering to the intake port 4 and the inner wall surface of the intake manifold 5 is sucked into the combustion chamber all at once. Although the air-fuel ratio over-rich occurs due to the reduction of the intake air amount due to the sudden closing of 11d, 11e, it is increased according to the throttle opening THV when the throttle valves 11d, 11e are closed (elapsed time t5). A deceleration correction DSHPT is set, and the duty ratio ISCON is set to be large by this acceleration / deceleration correction DSHPT, whereby the opening of the ISC valve 13 is secured in proportion to the throttle opening THV, and the throttle valves 11d and 11e. Until the idle switch 12b is turned on (throttle fully closed). During the time t5 to t6), the acceleration / deceleration correction DSHPT is decreased by the set value DDASH every calculation cycle (51.2 msec) regardless of the closing speed of the throttle valves 11d and 11e. Is ensured, and a decrease in the intake pipe pressure is compensated for, thereby preventing air-fuel ratio over-rich. As a result, misfire and abnormal combustion caused by air-fuel ratio overrich immediately after the throttle valve is suddenly closed are prevented, and exhaust emission is improved.
[0193]
The acceleration / deceleration correction DSHPT when shifting from the throttle valve open state to the throttle fully closed state is set to a value corresponding to the throttle opening THV, so that the dashpot period after the throttle fully closed state is always appropriate. can get.
[0194]
When the idle switch 12b is turned on, the acceleration / deceleration correction DSHPT is decreased by a first set value DDSH1 (DDASH> DDSH1> DDSH2) every calculation cycle until the dashpot holding value RDASH (elapsed time t6 to t7). As a result, when the throttle is fully closed, the rate of decrease of the acceleration / deceleration correction DSHPT becomes relatively large, and the return time to the target rotational speed is shortened.
[0195]
Thereafter, when the acceleration / deceleration correction DSHPT reaches the dashpot holding value RDASH, this value is maintained until the engine speed NE decreases to a value obtained by adding the offset value NDASH to the idle target speed NSET (elapsed time t7). To t8), when the engine speed NE decreases due to the value obtained by adding the offset value NDASH to the idle target speed NSET, the engine speed NE is smaller than the first reduction value DDSH1 until the engine speed NE reaches the idle target speed NSET. The acceleration / deceleration correction DSHPT is subtracted every calculation cycle by the second reduction value DDSH2 of the value (after the elapsed time t8).
[0196]
As a result, after the idle switch 12b is turned on and until the engine speed NE reaches the idle target speed NSET, the rate of decrease of the duty ratio ISCON set using the acceleration / deceleration correction DSHPT is gradually reduced. The opening reduction rate of 13 is also gradually reduced. As a result, the speed at which the engine speed NE decreases when approaching the idle target speed NSET is reduced, engine stall is prevented, and the convergence of the engine speed NE to the idle target speed NSET is improved.
[0197]
(Dashpot correction value setting interrupt routine)
FIG. 15 shows a dashpot correction value setting routine executed by interruption every set time, for example, every 100 msec.
[0198]
First, in S1101, it is determined whether the idle switch 12b is ON. If ON (throttle valves 11d, 11e are fully closed), the process proceeds to S1102, and if OFF (throttle valves 11d, 11e is open), the process proceeds to S1104.
[0199]
In S1102, the engine speed NE is compared with a preset dashpot determination speed DHEKN, and if NE <DHEKN, the process proceeds to S1103, and if NE ≧ DHEKN, the process proceeds to S1104. This dash pot discrimination rotation speed DHEKN is a value in the vicinity of the idle rotation speed (for example, 1900 rpm) in consideration of idle-up such as air conditioning correction.
[0200]
If the process proceeds from S1101 or S1102 to S1104, the dashpot correction value DHENB is set to 0 (DHENB ← 0), and then the process proceeds to S1113.
[0201]
Further, when the process proceeds from S1102 to S1103, the engine speed (NE) OLD set at the time of the previous routine execution (before 100 msec) and stored at a predetermined address of the RAM 50 is read, and in S1105, the previous engine speed (NE) OLD is determined. An engine speed reduction amount NDOWN at a set time (100 msec) is calculated from the difference from the current engine speed NE (NDOWN ← (NE) OLD-NE).
[0202]
In step S1106, the engine speed reduction amount NDOWN is compared with the set value DNES1. If NDOWN <DNES1, the process proceeds to step S1107, and the engine speed reduction indicating that the engine speed reduction amount is small (slow deceleration). The quantity determination flag FLAGDH is set (FLAGDH ← 1), and the process proceeds to S1114.
[0203]
If it is determined in S1106 that NDOWN ≧ DNES1 and the process proceeds to S1108, the engine speed reduction amount NDOWN and the set value DNES2 (DNES1 <DNES2) are compared, and if NDOWN <DNES2, the process proceeds to S1109 and the dash pot correction is performed. The value DHENB is set with the set value DHNEB1 [%] (DHENB ← DHNEB1), and the process proceeds to S1113. If NDOWN ≧ DNES2, the process proceeds to S1110.
[0204]
In S1110, the engine speed reduction amount NDOWN and the set value DNES3 (DNES2 <DNES3) are compared, and if NDOWN <DNES3, the process proceeds to S111 and the dashpot correction value DHENB is set to the set value DHNEB2 (DHNEB1 <DHNEB2). Set with [%] (DHENB ← DHNEB2) and go to S1113. If NDOWN ≧ DNES3, the process proceeds to S1112 and the dashpot correction value DHENB is set as a set value DHNEB3 (where DHNEB2 <DHNEB3) [%] (DHENB ← DHNEB3), and the process proceeds to S1113.
[0205]
When the routine proceeds from S1104, S1109, S1111, and S1112 to S1113, the engine speed reduction amount determination flag FLAGDH is cleared (FLAGDH ← 0, the reduction amount is large), and the routine proceeds to S1114.
[0206]
Then, when proceeding from S1107 or S1113 to S1114, the previous engine speed (NE) OLD stored at a predetermined address in the RAM 50 is updated with the current engine speed NE ((NE) OLD ← NE), and the routine is executed. Exit.
[0207]
FIG. 16 is a dashpot correction value update subroutine that is executed in a correction value setting routine that is executed every 51.2 msec (see S204).
[0208]
First, in step S1201, the value of the engine speed reduction amount determination flag FLAGDH is referred to. If FLAGDH = 1 (small amount of reduction), the process proceeds to step S1202. If FLAGDH = 0 (high amount of reduction), the routine is exited.
[0209]
In S1202, it is determined whether the dashpot correction value DHENB [%] is 0 or less. If DHENB ≦ 0, the flow proceeds to S1203 and the dashpot correction value DHENB is set to 0 [%] (DHENB ← 0). Exit.
[0210]
If it is determined in S1202 that DHENB> 0 and the process proceeds to S1204, the dashpot correction value DHENB is updated (DHENB ← DHENB−DDFEB) with a value obtained by subtracting the set value DDFEB (a minute value) from the dashpot correction value DHENB. ) And exit the routine.
[0211]
FIG. 32 shows a time chart of a typical example of dashpot correction value setting.
[0212]
When the throttle valve 11d, 11e is suddenly decelerated due to the sudden closing, the idle switch 12b is shifted from the OFF state to the ON state (the throttle valves 11d, 11e are fully closed), and the engine speed NE is drastically decreased. The dashpot correction is performed with a large set value DHNEB3 [%] in a section (elapsed time t1 to t2) in which the engine speed decreases to DHEKN (for example, 1900 rpm) or less and the engine speed decrease amount NDOWN is relatively large (DNES3 ≦ NDDOWN). Set the value DHENB.
[0213]
If the dashpot correction is not performed when the engine speed NE drops sharply, the engine speed will drop and stall as shown by the broken line in the figure. Therefore, when the throttle valve 11d, 11e shifts from the open state to the fully closed state, when the engine speed NE suddenly drops below a set value DHEKN (for example, 1900 rpm) near the idle speed, the engine speed By increasing the dashpot correction value DHENB as the decrease amount NDOWN (= (NE) OLD-NE) increases, the duty ratio ISCON with respect to the ISC valve 13 is increased, and the opening of the ISC valve 13 is increased. Increase the amount to prevent the engine speed NE from dropping.
[0214]
Thereafter, the dashpot correction value DHENB is set at a set value DHNEB2 [%] of an intermediate value in a section where the engine speed reduction amount NDOWN is DNES2 ≦ NDOWN <DNES3 (elapsed time t2 to t3).
[0215]
Next, the dashpot correction value DHENB is set at a relatively small set value DHNEB1 [%] in a section where the engine speed reduction amount NDOWN is DNES1 ≦ NDOWN <DNES2 (elapsed time t3 to t4).
[0216]
Even if the engine speed reduction amount NDOWN is relatively small, if the dashpot correction value DHENB is left at the set value DHNEB3, the rotational fluctuation occurs as shown by the alternate long and short dash line in FIG. Deteriorate.
[0217]
Then, the engine speed reduction amount NDOWN is subtracted by a small set value DDFEB every calculation cycle (51.2 msec) until the dashpot correction value DHENB becomes 0 in a section where NDOWN <DNES1 (after the elapsed time t4). To do.
[0218]
That is, if the dashpot correction value DHENB is set to 0 at the elapsed time t4, the duty ratio ISCON with respect to the ISC valve 13 suddenly decreases, so that the engine speed NE falls as shown by the broken line in the figure, and the idle speed is reduced. Convergence will deteriorate. Therefore, the convergence to the idle speed is improved by decreasing the dashpot correction value DHENB as the engine speed NE decreases.
[0219]
(Radio fan correction setting subroutine)
FIG. 17 is a subroutine for setting the radio fan correction ISCRAS executed in the correction value setting routine executed by interruption every 51.2 msec (see S205).
[0220]
First, in S1301, it is determined whether the radiator fan relay 63 that controls the operation of the radiator fan 62 is ON based on the data in the main computer 41. If ON, the process proceeds to S1302, and if OFF, the process proceeds to S1303.
[0221]
In S1302, the radio fan correction ISCRAS stored at a predetermined address in the RAM 50 is set with the set value RAS [%] (ISCRAS ← RAS), and the routine is exited. In S1303, the radio fan correction ISCRAS is set to 0 [%] (ISCRAS ← 0), and the routine is exited.
[0222]
The setting of the above-mentioned radio fan correction ISCRAS is shown in FIG. 33 by a time chart.
[0223]
When the radiator fan 62 is in operation, the radiator fan motor consumes a large amount of current and the amount of power generated by the alternator (generator) increases. Therefore, the load applied to the engine 1 increases correspondingly and the engine speed NE increases. However, when the radiator fan 62 is ON, the duty ratio ISCON for the ISC valve 13 is increased by the radio fan correction ISCRAS, and the opening of the ISC valve 13 is increased to prevent the engine speed NE from being lowered. To do.
[0224]
(Power steering correction value setting subroutine)
FIGS. 18 and 19 are subroutines for setting the power steering correction value ISCPS executed in the correction value setting routine executed by interruption every 51.2 msec (see S206). The power steering correction value ISCPS set in this subroutine compensates for a large turning angle and a large load on the engine 1 that drives the power steering oil pump, resulting in a decrease in the engine speed NE.
[0225]
First, in S1401, it is determined whether or not the power steering steering switch 58 (hereinafter abbreviated as “power steering steering switch”) is ON. If ON (steering angle is large), the process proceeds to S1402, and the power steering steering switch 58 is OFF (small steering angle). In case S1409, the process proceeds.
[0226]
In S1402, the vehicle speed VSP detected by the vehicle speed sensor 56 is compared with the set value VSPPS [Km / h]. If VSP ≦ VSPPS, the process proceeds to S1403, and if VSP> VSPPS, the process proceeds to S1409.
[0227]
In S1403, the coolant temperature TW detected by the coolant temperature sensor 21 is compared with the set value TWPS [° C.]. If TW ≧ TWPS, the process proceeds to S1404, and if TW <TWPS, the process proceeds to S1409.
[0228]
In S1402, when the vehicle speed VSP is equal to or higher than the set value VSPPS, the engine load due to traveling is large, so the engine load for driving the power steering oil pump becomes relatively small. Therefore, compensation by the power steering correction value ISCPS is not necessary. Further, in S1403, when the warm-up is not completed (TW <TWPS), the basic characteristic value ISCTW is set large, so that the engine load for driving the power steering oil pump becomes relatively small, and compensation by the power steering correction value ISCPS is unnecessary. become.
[0229]
When the process proceeds to S1404, the value of the idle speed determination flag FLAGPS that is set to 1 in the case of the idle state at the time of the previous routine execution is referred to. When FLAGPS = 1 (previous idle state), the process proceeds to S1405, and FLAGPS = 0 ( In the case of the previous idle release state), the process proceeds to S1406.
[0230]
If the process proceeds to S1405, the idling determination rotational speed ISPSN is set with the set value ISPSNH [rpm] (ISPSN ← ISPSNH), and the process proceeds to S1407. In step S1406, the idle determination speed ISPPSN is set with the set value ISPSNL (where ISPPSNL <ISPSNH) [rpm] (ISPSN ← ISPSNL), and the flow advances to step S1407.
As shown in FIG. 34, by providing hysteresis in the idle state (FLAGPS = 1) and the idle release state (FLAGPS = 0) when setting the idle determination rotational speed ISPSN, control hunting of the idle state determination in S1407 is performed. Trying to prevent
In step S1407, the engine speed NE is compared with the idle determination speed ISPPSN. If NE> ISPSN, it is determined that the engine is in the idle release state, the process proceeds to step S1408, and the idle speed determination flag FLAGPS is cleared (FLAGPS ← 0). Proceed to If NE ≦ ISPSN, it is determined that the engine is in an idle state, and the process advances to step S1410.
[0231]
In S1410, it is determined whether the air conditioner switch 89 is OFF. If it is OFF, the process proceeds to S1411.
[0232]
In S1411, based on the duty ratio ISCON for the ISC valve 13 calculated by the main computer 41, the power steering correction value ISCPS when the air conditioner is OFF is set by referring to the table or calculation, and the process proceeds to S1413. In S1412, the power steering correction value ISCPS when the air conditioner is ON is set based on the duty ratio ISCON for the ISC valve 13 calculated by the main computer 41 by referring to the table or calculating, and the process proceeds to S1413.
[0233]
As shown in FIG. 35 (b), the power steering correction value ISCPS when the air conditioner is OFF indicated by the solid line is set larger than the power steering correction value ISCPS when the air conditioner is ON indicated by the alternate long and short dash line. That is, when the air conditioner is ON, the duty ratio ISCON is set to be large by the air conditioner correction value ISCAC, so that the engine load due to the power steering becomes relatively small. Therefore, the power steering correction value ISCPS is set smaller than that when the air conditioner is OFF.
[0234]
Further, the power steering correction value ISCPS set in S1411 or S1412 has a large (small) load on the engine 1 when the duty ratio ISCON is large (small), and increases (decreases) the opening of the ISC valve 13 to reduce the amount of air. The increase (decrease) prevents the engine speed NE from decreasing (rising), but the load due to the power steering pump is relatively small (large) with respect to the total load applied to the engine at this time, so that it is small ( Large) is set.
[0235]
Then, when the process proceeds from S1411 or S1412 to S1413, the idle speed determination flag FLAGPS is set (FLAGPS ← 1), and then the routine is exited.
[0236]
In S1401, S1402, S1403 or S1408 to S1409, it is determined whether the power steering correction value ISCPS is 0 or less. If ISCPS ≦ 0, the process proceeds to S1414 and the power steering correction value ISCPS is set to 0 [%]. (ISOPS ← 0), exit the routine. If ISCPS> 0, the process proceeds to S1415, and after subtracting the set value DISCPS from the power steering correction value ISCPS to update the power steering correction value ISCPS (ISSCPS ← ISSCPS-DISCPS), the routine is exited.
[0237]
FIG. 35 shows a typical time chart for setting the power steering correction value.
[0238]
When the power steering steer switch 58 is turned on during idling after the warm-up is completed and the power steering steer switch 58 is turned on, a power steering correction value ISCPS corresponding to the duty ratio ISCON (differs depending on whether the air conditioner switch 89 is off or on). It is set (elapsed time t1).
[0239]
As a result, when the power steering oil pump driving load increases due to the large turning angle, the duty ratio ISCON for the ISC valve 13 is increased by the power steering correction value ISCPS, and the opening amount of the ISC valve 13 is increased to increase the air amount. This prevents the engine speed from dropping.
[0240]
Immediately after the turning angle is reduced and the power steering control switch 58 is switched from ON to OFF (elapsed time t2), immediately when the power steering correction value ISCPS is set to 0 [%], the duty ratio ISCON for the ISC valve 13 is increased. Although there is a power steering oil pump drive load that is suddenly decreased and reduced by the power steering correction value ISCPS, the engine speed NE greatly fluctuates as shown by the two-dot chain line in FIG. Until the power steering correction value ISCPS becomes zero, the power steering correction value ISCPPS is subtracted by the set value DISCPS every calculation cycle (51.2 msec), thereby gradually decreasing the opening of the ISC valve 13 and the amount of air. As a result, fluctuations in the engine speed NE are prevented as shown by the solid line in FIG.
[0241]
(Air conditioner clutch correction value setting subroutine)
FIG. 20 is a subroutine for setting the air-conditioner clutch correction value ISCCLH that is executed in the correction value setting routine that is executed every 51.2 msec (see S207). First, it is determined in S1501 whether the air conditioner switch 89 is ON. If ON, the process proceeds to S1502, and if OFF, the process proceeds to S1503.
[0242]
In S1502, the air conditioner ON → OFF elapsed time discriminating count value COUNTCLH (down counter) for determining whether or not the air conditioner switch 89 is ON → OFF set time TCLH [SEC] has elapsed corresponds to the set time TCLH. The setting value TACCLH is set (COUNTCLH ← TACCLH), and the process proceeds to S1505.
[0243]
In S1503, the value of the elapsed time discrimination count value COUNTCLH after the air conditioner ON → OFF is referred to. If COUNTCLH ≠ 0, the process proceeds to S1504, and after the countdown (COUNTCLH ← COUNTCLH-1), the process proceeds to S1505.
[0244]
When the process proceeds from S1502 or S1504 to S1505, the air conditioner clutch correction value ISCCLH is set to the set value DISCLH [%] (ISCCLH ← DISCLH), and the routine is exited.
[0245]
On the other hand, COUNTCLH1 = 0 in S1503, and after setting the air conditioner switch 89 from ON to OFF, it is determined that the set time TCLH [SEC5] has elapsed, and when proceeding to S1506, the air conditioner clutch correction value ISCCLH is set to 0 [%]. (ISCCLH ← 0), the routine is exited.
[0246]
FIG. 36 shows the relationship between the setting of the air conditioner clutch correction value ISCCLH, ON / OFF of the air conditioner switch 89, ON / OFF of the air conditioner clutch relay 65, capacity control of the variable capacity air conditioner compressor 64, and engine speed NE. .
[0247]
First, capacity control for the variable capacity air conditioner compressor 64 will be described. When the air conditioner switch 89 is turned on, the main computer 41 causes the air conditioner clutch relay 65 to be turned on after the set delay time ACENT (for example, 0.3 sec) elapses, and the magnet clutch 64a of the variable capacity air conditioner compressor 64 is connected to drive the compressor 64. Then, a compressor capacity (DUTY) signal is output from the air conditioner control unit 81 to the compressor 64 in accordance with the requested capacity signal from the main computer 41, and the capacity of the compressor 64 is gradually increased from the minimum capacity (MIN) to the set capacity. When the air conditioner switch 89 is turned off, the capacity of the compressor 64 is gradually reduced to the minimum capacity (MIN) by the compressor capacity (DUTY) with respect to the variable capacity air conditioner compressor 64, and after the air conditioner switch 89 is turned off, the capacity of the air conditioner compressor 64 is reduced. The air conditioner clutch relay 65 is turned off after a sufficient time period ACCLTM (for example, 8 sec) has passed since it can be considered that the motor has reached the minimum capacity (MIN).
[0248]
For this reason, simultaneously with turning on the air-conditioning switch 89 (elapsed time t1), the air-conditioner clutch correction value ISCCLH is set to the set value DISCLH, and the duty ratio ISCON for the ISC valve 13 is increased by the air-conditioner clutch correction amount ISCCLH. 13 is increased to increase the engine speed NE by increasing the amount of air, thereby preventing a decrease in the engine speed accompanying an increase in the engine load driven by the compressor 64 when the air conditioner clutch relay 65 is turned on.
[0249]
Thereafter, when the air conditioner switch 89 is turned off (elapsed time t2), the capacity of the variable capacity air conditioner compressor 64 is gradually reduced, and the air conditioner correction value ISCAC is gradually reduced (see FIGS. 7, 8 and 29). Accordingly, the duty ratio ISCON with respect to the ISC valve 13 decreases, so that the opening degree of the ISC valve 13 decreases, the air amount decreases, and the engine speed NE is restored to the target speed when the air conditioner is OFF.
[0250]
From the time when the capacity of the variable capacity compressor 64 is reduced (elapsed time t3) until the magnet clutch 64a is disengaged (until the air conditioner clutch relay 65 is turned off), the friction of the clutch remains. For this reason, since the friction due to the clutch does not suddenly disappear at the moment when the magnet clutch 64a of the variable capacity air conditioner compressor 64 is disengaged, rotational fluctuation due to a temporary increase in the rotational speed occurs as shown by the broken line in FIG. The ring gets worse.
[0251]
The air conditioner clutch correction is to compensate for the engine load due to the friction of the clutch. After the air conditioner switch 89 is turned on, the air conditioner clutch relay 65 is turned off after the set time ACCLTM has elapsed after the air conditioner switch 89 is turned off. The air conditioner clutch correction value ISCCLH is set to the set value DISCLH until the magnet clutch 64a of the capacity air conditioner compressor 64 is completely disconnected, that is, until the set time TCLH (TCLH> ACCLTM) elapses after the air conditioner switch 89 is turned off. The duty ratio ISCON with respect to the ISC valve 13 is increased during this time, and the air conditioner clutch correction ISCCLH is set to 0 when the air conditioner clutch 64a is disengaged. Amount that friction is eliminated engine load is reduced by, subtracting the amount of air to reduce the opening degree of the ISC valve 13 reduces the ISCON, prevent rotation fluctuation of the time. As a result, as shown by the solid line in FIG. 5E, the rotational fluctuation due to the temporary increase in the rotational speed immediately after the air conditioner clutch 764a is disconnected is eliminated, and the feeling is improved.
[0252]
(Post-startup correction setting interrupt routine)
FIG. 21 is a post-startup correction initial value setting routine that is executed when a start / normal control determination flag FLAGST that is set in the ISC valve control main routine changes from 1 to 0.
[0253]
Immediately after the start / normal control determination flag FLAGST shifts from FLAGST = 1 (control at start) to FLAGST = 0 (control at normal time), that is, the starter switch 61 is turned from ON to OFF, and the engine speed NE is When an interrupt start is started immediately after the start-up control when NE ≠ 0, first, an initial post-startup correction initial value table TISCSD (a larger value is stored as the cooling water temperature TW is lower) is interpolated based on the cooling water temperature TW in S1601. The initial value of post-startup correction ISCSD is set with reference to calculation.
[0254]
Next, in step S1602, the post-startup correction update interruption time table TTDISC (the value of the longer time is stored as the cooling water temperature TW is lower) is referenced with interpolation calculation based on the cooling water temperature TW, and the post-startup correction update interruption time. Set TDISC.
[0255]
In step S1603, the interrupt is permitted for each post-startup correction update interrupt time TDISC and the routine is exited.
[0256]
FIG. 22 shows a post-startup correction setting routine that is executed at every post-startup correction update interruption time, and improves the connection of the duty ratio ISCON from the start-time control to the normal-time control, thereby improving the startability.
[0257]
First, in S1701, it is determined whether the post-startup correction ISCSD stored at a predetermined address in the RAM 50 is 0 or less. If ISCSD> 0, the process proceeds to S1702, and the post-startup correction ISCSD is updated with a value obtained by subtracting the set value DISCSD ( ISCSD ← ISCSD-DISCSD), exits the routine.
[0258]
On the other hand, if it is determined in S1701 that ISCSD ≦ 0 and the process proceeds to S1703, the post-startup correction ISCSD stored in the predetermined address of the RAM 50 is fixed to 0 [%] (ISCSD ← 0), and the process proceeds to S1704. The interrupt for each correction update interrupt time TDISC is prohibited and the routine is exited.
[0259]
A representative example of the post-startup correction setting will be described with reference to the time chart of FIG.
[0260]
When the starter switch 61 is ON or the engine speed NE is 0 (startup / normal time control determination flag FLAGST = 1), the start-up correction program is not executed (elapsed time t0 to t1), and the starter switch 61 is ON → Immediately after OFF, when the engine speed NE is NE ≠ 0, the initial value of the post-startup correction ISCSD is set (elapsed time t1).
[0261]
Next, the post-startup correction ISCSD is decreased by the set value DISCSD for every post-startup correction update interruption time TDISC until it becomes zero.
[0262]
FIG. 38 shows the relationship between the change in the duty ratio ISCON for controlling the ISC valve 13 and the post-startup correction ISCSD.
[0263]
During start-up control (FLAGST = 1), the duty ratio ISCON set in the main routine of ISC valve control is set to a relatively large value. When shifting to normal control (elapsed time t1), various correction terms Since it is controlled precisely, the connection becomes worse and the startability is lowered as shown by the one-dot chain line in the figure.
[0264]
The post-startup correction ISCSD is for compensating for this, and the duty ratio ISCON set in the start-up control is mostly the start-time characteristic value ISCST set based on the cooling water temperature TW, and the cooling water temperature TW is Since the characteristic value ISCST at the start is set to be larger as the value is lower (see FIG. 1), the step of the duty ratio ISCON with respect to the ISC valve 13 at the time of shifting from the start time control to the normal time control becomes larger.
[0265]
For this reason, as the cooling water temperature TW is lower, the initial value of the post-startup correction ISCSD is set larger as shown by the solid line in FIG. 37, and the post-startup correction interrupt time TDISC is set longer and the post-startup correction ISCSD becomes 0. On the other hand, as the cooling water temperature TW is higher, the initial value of the post-startup correction ISCSD is made smaller and the post-startup correction interrupt is increased as the cooling water temperature TW is higher. By setting the time TDISC short and shortening the time until the corrected ISCSD after starting becomes 0 (elapsed time t1 to t2), the ISC when shifting from the starting control to the normal control under any temperature condition The connection of the duty ratio ISCON to the valve 13 is made smooth as shown by the solid line in FIG. It prevents sudden change in air flow rate by the blanking 13, thereby improving the startability.
[0266]
(Closed loop correction I update routine)
FIG. 23 to FIG. 25 are flowcharts showing the closed loop correction I update procedure executed by interruption every set time, for example, every 10 msec.
[0267]
First, the value of the start / normal control determination flag FLAGST set in the ISC valve control main routine in S1801 is referred to. If FLAGST = 1 (starting or stalled), the process proceeds to S1802, and FLAGST = 0 (normal) In this case, the process proceeds to S1803.
[0268]
In S1802, when the set time LRNISS [SEC] has elapsed since the shift to the normal operation (normal time control) after the start, the set time for the normal time control shift time determination count value COUNTSTI (down counter) is determined. A set value COUNTLRRNISS corresponding to LRNISS is set (COUNTSTI ← COUNTLRRNISS), and the flow proceeds to S1858, where the closed loop correction I-minute ISCI is set to 0 [%], and the flow proceeds to S1859.
[0269]
In S1803, the normal control shift time determination count value COUNTSTI is referred to. If COUNTSTI ≠ 0, it is determined that the set time LRNISS has not elapsed after the shift to the normal control, and the flow proceeds to S1804. The count value COUNTSTI is counted down (COUNTSTI ← COUNTSTI-1), and the process proceeds to S1805. On the other hand, if COUNTSTI = 0, it is determined that the set time has elapsed since the shift to the normal control, and the flow proceeds to S1805.
[0270]
In S1805, the cooling water temperature TW is compared with the set temperature LRNITW [° C.]. If TW ≧ LRNITW, the process proceeds to S1806, and if TW <LRNITW, the process proceeds to S1810. In step S1806, the value of the start / normal control determination flag (FLAGST) OLD read during the previous routine is referred to. When (FLAGST) OLD = 1 (previous routine execution, start time control), the normal time control is performed. It is determined that the transition is the first time, and the process proceeds to S1807 to initially set the closed loop correction I. If (FLAGST) OLD = 0, the process proceeds to S1810.
[0271]
In S1807, it is determined whether the air conditioner switch 89 is ON. If ON, the process proceeds to S1808, and if OFF, the process proceeds to S1809.
[0272]
In S1808, the I learning value ACONI when the air conditioner is ON stored in the backup RAM 50a is read and the closed loop correction I minute ISC is read.IIs initially set with the I-minute learning value ACONI when the air conditioner is ON, and when proceeding to S1809, the closed-loop correction I-minute ISCI is initially set with the I-minute learning value ACOFFI stored in the backup RAM 50a when the air conditioner is OFF. Each proceeds to S1810.
[0273]
The I learning values ACONI and ACOFFI are updated by a closed loop correction I learning value learning subroutine, which will be described later, and stored in a predetermined address of the backup RAM 50a. The starter switch 61 is turned ON → OFF (from the start control). The closed-loop correction I-minute ISCI is initially set by the I-learned learning value ACONI or ACOFFI learned according to the air conditioner operating state during the previous engine operation only once immediately after the shift to the normal control. As a result, the closed loop correction I is immediately compensated and the controllability is improved.
[0274]
Further, since the learning values ACONI and ACOFFI are set for each air conditioner operating state, the closed loop correction I-minute ISCI according to the engine load can be initialized, and the engine rotation can be started smoothly. .
[0275]
In step S1810, the value of the closed / open loop control determination flag FLAGCL set in the closed / open loop control determination subroutine is referred to. If FLAGCL = 1 (closed loop control), the flow advances to step S1811, and FLAGCL = 0 ( In the case of open loop control), the process proceeds to S1812 without updating a correction amount ΔI described later.
[0276]
When the process proceeds to S1811, it is determined whether the post-startup correction is being executed (ISCSD ≠ 0) with reference to the value of the post-startup correction ISCSD. If ISCSD ≠ 0, the process proceeds to S1813, and if ISCSD = 0, the process proceeds to S1817. In S1813, the coolant temperature TW is compared with the set temperature TWAS [° C.]. If TW ≧ TWAS (warming up is complete), the process proceeds to S1814, and if TW <TWAS (warming up), the process proceeds to S1817. When the process proceeds to S1814, the vehicle speed VSP is compared with the set value VSAS [Km / h]. If VSP <VSAS (stop), the process proceeds to S1815, and if VSP ≧ VSAS (travel), the process proceeds to S1817.
[0277]
After that, when proceeding to S1815, the closed loop correction I minute ISCIThe value obtained by adding the correction ISCSD after starting to the above closed loop correction I minutes ISCIUpdated (ISCI← ISCI+ ISCSD), the process proceeds to S1816, the post-startup correction ISCSD is shifted to the closed loop correction I, the post-startup correction ISCSD is cleared (ISCSD ← 0), and the process proceeds to S1817.
[0278]
As shown in (a) and (b) of FIG. 39, when the open loop control is shifted to the closed loop control, the closed loop correction I-minute ISC of the post-startup correction ISCSD (ISCAS) is obtained.IIf the above-described post-startup correction setting routine (FIG. 22) is executed until the post-startup correction ISCSD becomes zero without shifting to, this closed-loop correction I-minute ISCIUntil the value converges, a step difference occurs in the duty ratio ISCON, and the engine speed NE fluctuates. As a countermeasure against this, it is conceivable to increase a correction amount ΔI, which will be described later. However, if the correction amount ΔI is extremely increased, convergence is deteriorated and hunting occurs in the engine speed NE.
[0279]
On the other hand, when the predetermined condition is satisfied (TW ≧ TWAS and VSP <VSAS) as shown in FIGS. 39C and 39D, when the shift from the open loop control to the closed loop control is performed, the post-startup correction ISCSD When (ISCAS) is ISCSD ≠ 0, the post-startup correction ISCSD (ISCAS) is set to the closed loop correction I minute ISCIBecause it is shifted to, the increased amount is closed loop correction I minutes ISCIThus, the connection from the open loop control to the closed loop control is improved, and the fluctuation of the engine speed NE at this time is prevented.
[0280]
Thereafter, when the process proceeds from S1811, S1813, S1814 or S1816 to S1817, a differential rotation ΔN between the idle target speed NSET and the engine speed NE is obtained (ΔN ← NSET−NE), and the process proceeds to S1818, where the air conditioner switch 89 is ON. If it is ON, S1819
If it is OFF, the process proceeds to S1820.
[0281]
In S1819, the differential rotation ΔN is compared with the set value NIH3 (NIH3 <0). ), Go to S1845.
[0282]
If ΔN> NIH3 in S1819, the process proceeds to S1821, and the differential rotation ΔN is compared with the set value NIH2 (where NIH3 <NIH2 <0). If ΔN ≦ NIH2, the process proceeds to S1827 and the correction value ΔI Is set to the set value TIPTAH2 (where TIPTAH3 <TIPATAH2 <0) (ΔI ← TIPTAH2), and the process proceeds to S1845. Further, if ΔN> NIH2, the process proceeds to S1822, and the differential rotation ΔN is compared with the set value NIH1 (where NIH2 <NIH1 <0). <TIPTAH1 <0) is set (ΔI ← TIPTAH1), and the process proceeds to S1845.
[0283]
If it is determined in S1822 that ΔN> NIH1 and the process proceeds to S1823, the difference rotation ΔN is compared with 0. If ΔN ≦ 0, the process proceeds to S1829 and the correction amount ΔI is set to the set value TIPTAH (where TIPTAH1 <TIPTAH, 0 [%]) (ΔI ← TIPTAH), and proceeds to S1845. If ΔN> 0, the process proceeds to S1824. In S1824, the differential rotation ΔN is compared with the set value NIL1 (where 0 <NIL1). If ΔN ≦ NIL1, the flow proceeds to S1830, and the correction amount ΔI is set with the set value TIPTAL (where TIPTAH ≦ TIPATL) ( ΔI ← TIPTAL), the process proceeds to S1845. If ΔN> NIL1, the process proceeds to S1825.
[0284]
In S1825, the differential rotation ΔN is compared with the set value NIL2 (where NIL1 <NIL2). If ΔN ≦ NIL2, the process proceeds to S1831, where the correction amount ΔI is set as TIPTAL1 (where TIPTAL <TIPTAL1) ← TIPTAL1), go to S1845. If ΔN> NIL2, the process proceeds to S1832, and the correction amount ΔI is set with the set value TIPTAL2 (where TIPTAL1 <TIPTAL2) (ΔI ← TIPTAL2), and the process proceeds to S1845.
[0285]
FIG. 40 shows the relationship between the correction amount ΔI and the differential rotation ΔN. As can be seen from the figure, if the differential rotation ΔN is small, the correction amount ΔI is also set small. This improves the convergence of the engine speed NE with respect to the idle target speed NSET.
[0286]
On the other hand, when it is determined in S1818 that the air conditioner switch 89 is OFF and the process proceeds to S1820, in S1820, S1833 to S1837, the differential rotation ΔN and the set values NIH3, NIH2, NIH1, 0, NIL1, NIL2 are the same as described above. In comparison, if ΔN ≦ NIH3 is determined in S1820 and the process proceeds to S1838, the correction amount ΔI is set to a set value TIPRTH3 (where TIPRTH3 <0) (ΔI ← TIPRTH3), and the process proceeds to S1845.
[0287]
If ΔN ≦ NIH2 is determined in S1833 and the process proceeds to S1839, the correction amount ΔI is set with a set value TIPRTH2 (where TIPRTH3 <TIPRTH2 <0) (ΔI ← TIPRTH2), and the process proceeds to S1845.
[0288]
If it is determined that ΔN ≦ NIH1 in S1834 and the process proceeds to S1840, the correction amount ΔI is set with a set value TIPRTH1 (where TIPRTH2 <TIPRTH1 <0) (ΔI ← TIPRTH), and the process proceeds to S1845.
[0289]
When ΔN ≦ 0 is determined in S1835 and the process proceeds to S1841, the correction amount ΔI is set with a set value TIPRTH (where TIPRTH1 <TIPRTH = 0, TIPRTH = 0 [%]) (ΔI ← TIPRTH), and the process proceeds to S1845.
[0290]
If ΔN ≦ NIL1 is determined in S1836 and the process proceeds to S1842, the correction amount ΔI is set with a set value TIPRTL (where TIPRTH ≦ TIPRTL) (ΔI ← TIPRTL), and the process proceeds to S1845.
[0291]
If it is determined in S1837 that ΔN ≦ NIL2 and the process proceeds to S1843, the correction amount ΔI is set with the set value TIPRTL1 (where TIPRTL <TIPRTL1) (ΔI ← TIPRTL1), and the process proceeds to S1845. If it is determined that ΔN> NIL2 in S1837 and the process proceeds to S1844, the correction amount ΔI is set with the set value TIPRTL2 (where TIPRTL1 <TIPRTL2) (ΔI ← TIPRTL2), and the process proceeds to S1845.
[0292]
Then, when the process proceeds from any of S1826 to S1832 or S1838 to S1844 to S1845, the closed loop correction I-minute ISC stored in the predetermined address of the RAM 50 is reached.IThis closed loop correction I minute ISCIIs updated with a value obtained by adding the correction amount ΔI set in any of S1826 to S1832 and S1838 to S1844 (ISCI← ISCI+ ΔI), the process proceeds to S1846.
[0293]
FIG. 41 shows the fluctuation of the engine speed NE with respect to the idle target speed NSET, the correction amount ΔI, and the closed loop correction I amount ISC.IIs shown by a time chart.
[0294]
[Elapsed time t0 to t1]
Since the engine speed NE is greater than or equal to the set value NIH3 with respect to the idle target speed NSET (ΔN ≦ NIH3), the correction amount ΔI is set with the minimum set value TIPTAH3 to reduce the engine speed NE (S1826).
[0295]
As a result, closed-loop correction I-minute ISCIBecomes a value lower by the set value TIPTAH3, the duty ratio ISCON with respect to the ISC valve 13 is reduced accordingly, the opening of the ISC valve 13 is reduced, and the engine speed NE is reduced.
[0296]
[Elapsed time t1 to t2]
Next, when the differential rotation ΔN falls between the set values NIH3 and NIH2, the correction amount ΔI is set by the set value TIPTAH2 (S1827), and the closed loop correction I amount ISC is set.IBecomes lower by the set value TIPTAH2.
[0297]
[Elapsed time t2 to t3]
Thereafter, when the differential rotation ΔN falls between the set values NIH2 and NIH1, the correction amount ΔI is set by the set value TIPTAH1 (S1828), and the closed loop correction I amount ISC is set.IDecreases by the set value TIPTAH1 and the engine speed NE decreases.
[0298]
When the differential rotation ΔN falls between the set values NIH1 and 0, the correction amount ΔI is set as the set value TIPTAH (0 [%]) (S1829), and therefore the closed loop correction I amount ISC.IDoes not change.
[0299]
Thereafter, when the differential rotation ΔN falls between the set value 0 and NIL1, the correction amount ΔI is set to the set value TIPTAL (TIPTAH ≦ TIPTAL) (S1830).
[0300]
[Elapsed time t3 to t4]
Next, when the differential rotation ΔN falls between the set values NIL1 and NIL2, the correction amount ΔI is set by the set value TIPTAL1 (S1831), and the closed loop correction I amount ISC is set.IIncreases by the set value TIPTAL1.
[0301]
[Elapsed time t4 to t5]
Thereafter, when the engine speed NE becomes lower than the set value NIL2 with respect to the idle target speed NSET (ΔN> NIL2), the correction amount ΔI is set by the set value TIPTAL2 (S1832), and the closed loop correction I amount ISC is set.IIncreases by the set value TIPTAL2.
[0302]
[Elapsed time t5 to t6]
When the differential rotation ΔN falls between the set values NIL2 and NIL1, the correction amount ΔI is set by the set value TIPTAL1 (S1831), and the closed loop correction I amount ISC is set.IIncreases by the set value TIPTAL1.
[0303]
Then, while the differential rotation ΔN is between the set values NIL1 and NIH1, the set values TIPTAL and TIPTAH are 0 [%], so the closed loop correction I-minute ISC.IDoes not change.
[0304]
[After elapsed time t6]
On the other hand, when the differential rotation ΔN falls between the set values NIH1 and NIH2, the correction amount ΔI is set at the set value TIPTAH1, and then the differential rotation ΔN converges between the set values NIH1 and NIL1, and the correction amount ΔI is Since the set values TIPTAL and TIPTAH (both 0 [%]) are set, the closed loop correction I-minute ISCIIs constant.
[0305]
Closed loop correction I minutes ISC at S1845IIn step S1846, a learning subroutine corresponding to closed loop correction I (details will be described later) is executed.
[0306]
Next, in S1847, the value of the normal-time control transition time determination count value COUNTSTI is referred to. If COUNTSTI ≠ 0 (within the set time LRNISS after starting), the process proceeds to S1848.
[0307]
When the process proceeds to S1848, the cooling water temperature TW is compared with a preset warm-up completion determination value LRNITW that determines whether warm-up is restarted. When TW ≧ LRNITW (warm-up restart), the process proceeds to S1849, where TW < In the case of LRNITW (engine cold state), the process proceeds to S1850.
[0308]
Proceed to S1849, closed loop correction I minute ISCIAnd the lower limit value IMINBLIIf ≦ IMINBL, proceed to S1853, and the closed loop correction I minute ISCIIs set at the lower limit value IMINBL, and the process proceeds to S1859.
[0309]
On the other hand, ISC at S1849IIf it is determined that> IMINBL, the process proceeds to S1851 and the above closed loop correction I minute ISCIAnd the upper limit value IMAXBLIIf ≧ IMAXBL, the process proceeds to S1854 and the above closed loop correction I minute ISCIIs set with the above upper limit value IMAXBL, and the process proceeds to S1859. ISCI<In the case of IMAXBL, the above closed loop correction I-minute ISCIIs acceptable (IMAXBL> ISCI> IMINBL), the process proceeds to S1859.
[0310]
Further, when the process proceeds from S1847 or S1848 to S1850, the closed loop correction I-minute ISCIIs compared with the value (lower limit value) obtained by subtracting the basic characteristic value ISCTW set in the basic characteristic value setting subroutine from the duty limit lower limit value IMINCL set in the ISC valve control main routine.IIf ≦ (IMINCL-ISCTW), the process proceeds to S1855, and the above closed loop correction I-minute ISCIIs set with the above lower limit (IMINCL-ISCTW) (ISCI← IMINCL-ISCTW), go to S1859.
[0311]
In S1850, ISCI> If (IMINCL-ISCTW), proceed to S1852, and the closed loop correction I minute ISCIAnd the value obtained by subtracting the basic characteristic value ISCTW from the duty limit upper limit value IMAXCL set in the ISC valve control main routine (upper limit value).IIf ≧ (IMINCL-ISCTW), the process proceeds to S1856, and the above closed loop correction I-minute ISCIIs set with the above upper limit value (IMAXCL-ISCTW) (ISCI← IMINCL-ISCTW), go to S1859. ISC at S1852I<In the case of (IMINCL-ISCTW), the above closed loop correction I-minute ISCIIs allowable range ((IMINCL-ISCTW) <ISCI<(IMAXCL-ISCTW)), the process proceeds to S1859.
[0312]
Most of the duty ratio ISCON for the ISC valve 13 is the basic characteristic value ISCTW, and the lower limit value for the correction term other than the basic characteristic value ISCTW is set by subtracting the basic characteristic value ISCTW from the duty limit lower limit value IMINCL. The upper limit value is set by subtracting the basic characteristic value ISCTW from the duty limit upper limit value IMAXCL.
[0313]
However, when <1> within a predetermined time LRNISS [sec] after starting (S1847), and <2> the warming-up completion determination value LRNITW for determining whether the cooling water temperature TW and the warming-up restart are TW ≧ LRNITW In the case (S1848), it is determined that the warm-up is restarted, regardless of open loop or closed loop control.
IMINBL ≦ ISCI≦ IMAXBL
And
[0314]
Closed loop correction I minute ISC when transitioning to normal control during warm-up restartIIn the initial setting (S1808 or S1809), closed loop correction I-minute ISCIIs updated with a learning value ACONI (when the air conditioner switch 89 is ON) having a small value (including a negative value) or a learning value ACOFFI (when the air conditioner switch 89 is OFF), the engine speed NE decreases. If it is remarkable, it will stall. Therefore, the upper limit value and the lower limit value are set values IMINBL and IMAXBL, respectively, and the closed-loop correction I-minute ISCIThe restartability is improved by shifting up the upper limit value and the lower limit value (see FIG. 41C).
[0315]
On the other hand, when FLAGCL = 0 (open loop control) is determined in S1810 and the process proceeds to S1812, the cooling water temperature TW is compared with the set value TWCL [° C.] for determining whether the cooling water temperature TW during the open loop control is low. If TW ≦ TWCL, the process proceeds to S1857. If TW> TWCL, the process proceeds to S1847 described above.
[0316]
Proceed to S1857, closed loop correction I minute ISCIRefer to the value of ISCIIf <0, proceed to S1858 and close loop correction I-minute ISCIIs set to 0 (ISCI← 0), go to S1859. ISCIIf ≧ 0, the process proceeds to S1847.
[0317]
As described above, the cooling water temperature TW during the open loop control (FLAGCL = 0) is the low water temperature (TW ≦ TWCL) and the closed loop correction I-minute ISC.IIs on the negative side (ISCI<0) includes this closed-loop correction I-minute ISCIIs set to 0 (ISCI← 0). That is, a closed loop correction I amount ISC set by a learning value ACONI or ACOFFI described later.IIs negative, the duty ratio ISCON decreases, and the opening of the ISC valve 13 decreases and the engine speed NE decreases. To prevent this, the starter switch 61 is switched from ON to OFF (when starting) Control → normal control) immediately after the transition to closed loop correction I minutes ISC set by learning value ACONI or ACOFFIIIs set to 0.
[0318]
When the process proceeds from any one of S1853 to S1856 or S1858 to S1859, the previous start time / used in the next routine stored in a predetermined address of the RAM 50 by the current start time / normal time control determination flag FLAGST / The normal time control determination flag (FLAGST) OLD is updated ((FLAGST) OLD ← FLAGST), and the routine is exited.
[0319]
In this embodiment, closed loop correction I-minute ISCIIs set only by integral control (I control) without using proportional integral control (PI control), so precise feedback control is executed.
[0320]
(Closed loop correction I minute learning subroutine)
FIG. 26 is a closed-loop correction I-minute learning subroutine executed in the closed-loop correction I-minute update procedure (see S1846).
[0321]
First, it is determined in S1901 to S1908 whether a learning condition is satisfied.
[0322]
That is, in S1901, the coolant temperature TW is compared with the warm-up completion determination value LRNITW [° C.], and when TW ≧ LRNITW (engine warm-up complete state), the process proceeds to S1902, and when TW <LRNITW (engine cold state) The process proceeds to S1913.
[0323]
When the process proceeds to S1902, the power steering correction value ISCPS is referred to). When ISCPS = 0 (the power steering turning angle is small), the process proceeds to S1903, and when ISCPS ≠ 0, the process proceeds to S1913.
[0324]
In S1903, it is determined whether the air conditioner switch 89 is OFF. If OFF, the process proceeds to S1904, and if ON, the process proceeds to S1905.
[0325]
In S1904, the value of the radio fan correction value ISCRA is referred to. If ISCRA = 0 (the radiator fan 62 is OFF), the process proceeds to S1905, and if ISCRA ≠ 0, the process proceeds to S1913.
[0326]
When the process proceeds from S1903 or S1904 to S1905, the value of the acceleration / deceleration correction DSHPT is referred to. If DSHPT = 0, the process proceeds to S1906, and if DSHPT ≠ 0, the process proceeds to S1913.
[0327]
In S1906, the dashpot correction value DHENB is referred to. If DHENB = 0, that is, if DSHPT = 0 and DHENB = 0, it is determined that the engine is in an idle steady state. If it is 0, the process proceeds to S1913.
[0328]
Proceeding to S1907, with reference to the correction amount ΔI of the closed loop correction I component ISCI, when ΔI = 0 (the engine speed NE has converged to the allowable range endoscope of the idle target speed NSET), the process proceeds to S1908. If ΔI ≠ 0, the process advances to S1913.
[0329]
In S1908, the set value LRISCT corresponding to the predetermined time is compared with the learning condition establishment determination count value COUNTISCI in order to determine whether or not the learnable state has continued for a predetermined time, and if COUNTISCI ≧ LRISCT It is determined that the learning condition is satisfied, and the process proceeds to S1909. If COUNTISCI <LRISCT, the process proceeds to S1910 to increment the count value COUNTISCI (COUNTISCI ← COUNTISCI + 1), and exits the routine.
[0330]
On the other hand, in S1909, it is determined whether the air conditioner switch 89 is ON. If YES, the process proceeds to S1911 and the I minute learning value ACONI stored at the predetermined address in the backup RAM 50a is set to the current closed loop correction I minute. ISCIUpdated with the value of (ACONI ← ISCI), Go to S1913. If it is OFF, the process proceeds to S1912, and the I-minute learning value ACOFFI when the air conditioner is OFF stored in the predetermined address of the backup RAM 50a is used as the current closed-loop correction I-minute ISC.IUpdated with the value of (ACOFFI ← ISCI), Go to S1913.
[0331]
When the process proceeds from S1901, S1902, S1904 to S1907, S1911, or S1912 to S1913, the count value COUNTISCI is cleared (COUNTISCI ← 0), and the routine is exited.
[0332]
By the way, as shown by a broken line in FIG.IIf the I-minute learning value ACONI or ACOFFI is not used when setting the value, a difference occurs between the start-time control and the shift to the closed loop control via the open loop control. As a result, as shown by the broken line in FIG. 42 (b), the initial explosion is not performed but the transition to the complete explosion is not easily performed, and the rise of the engine speed NE is not smooth when the control is shifted from the start-up control to the open loop control. Arise.
[0333]
On the other hand, as shown by a solid line in FIG. 42 (a), the difference between the start time control and the closed loop control is improved by adding the I learning value ACONI or ACOFFI to the closed loop correction I. As indicated by a solid line in FIG. 42 (b), the first explosion immediately shifts to the complete explosion, the rise of the engine speed NE becomes smooth, and the startability is improved.
[0334]
【The invention's effect】
As described above, according to the invention described in claim 1,If the upper limit value and the lower limit value of the feedback correction value at the time of warm-up restart are set with values shifted up, engine stall can be effectively prevented, controllability is improved, and restartability is improved.
[0335]
At this time, as described in claim 2,If the feedback correction value is set only by integral control, it becomes possible to execute more precise feedback control in addition to the effect of the first aspect of the invention.
[Brief description of the drawings]
FIG. 1 and FIG. 2 are flowcharts showing an ISC valve control procedure.
[Figure 2] Same as above
FIG. 3 is a flowchart showing a correction value setting procedure.
FIG. 4 is a flowchart showing a basic characteristic value setting procedure.
FIG. 5 is a flowchart showing a procedure for setting an idle target speed.
FIG. 6 is a flowchart showing a closed / open loop control determination procedure;
7 and 8 are flowcharts showing an air conditioner correction value setting procedure.
[Fig. 8] Same as above
FIG. 9 is a flowchart showing an air conditioner correction learning procedure when the air conditioner switch is turned off.
FIG. 10 is a flowchart showing an air conditioner correction learning procedure when the air conditioner switch is turned ON.
FIGS. 11 and 12 are flowcharts showing an AT vehicle travel range correction value setting procedure.
Fig. 12 Same as above
13 and 14 are flowcharts showing an acceleration / deceleration correction setting procedure.
FIG. 14 Same as above
FIG. 15 is a flowchart showing a dashpot correction value setting procedure.
FIG. 16 is a flowchart showing a dashpot correction value update procedure.
FIG. 17 is a flowchart showing a procedure for setting a radio fan correction.
FIG. 18 and FIG. 19 are flowcharts showing a power steering correction value setting procedure.
FIG. 19 Same as above
FIG. 20 is a flowchart showing an air conditioner clutch correction value setting procedure.
FIG. 21 is a flowchart showing a post-startup correction initial value setting procedure.
FIG. 22 is a flowchart showing a post-startup correction setting procedure.
FIG. 23 to FIG. 25 are flowcharts showing a closed loop correction I update procedure.
FIG. 24 Same as above
FIG. 25 Same as above
FIG. 26 is a flowchart showing a closed-loop correction I-minute learning procedure.
FIG. 27 is a schematic diagram of an engine control system.
FIG. 28 is a configuration diagram of a control device.
FIG. 29 is a time chart showing a relationship among an air conditioner switch, an air conditioner correction value, and an engine speed.
FIG. 30 is a time chart showing the relationship between the travel range or N, P range, AT vehicle travel range correction, and engine speed.
FIG. 31 is a time chart showing the relationship among an idle switch, throttle opening, acceleration / deceleration correction, and engine speed.
FIG. 32 is a time chart showing a relationship among an idle switch, an engine speed, and a dashpot correction value.
FIG. 33 is a time chart showing the relationship between radiator fan ON / OFF and radio fan correction.
FIG. 34 is a time chart showing hysteresis when setting the idling discrimination rotation speed.
FIG. 35 is a time chart showing a relationship among a power steering control switch, a power steering correction value, and an engine speed.
FIG. 36 is a time chart showing the relationship among the capacity of the air conditioner switch, the air conditioner clutch relay, the air conditioner compressor, the air conditioner clutch correction value, and the engine speed.
FIG. 37 is a time chart showing changes in correction after startup.
FIG. 38 is a time chart showing changes in duty ratio.
FIG. 39 is a time chart showing the shift of the post-startup correction value to the closed loop correction I.
FIG. 40 is an explanatory diagram showing a relationship between a correction amount corresponding to a closed loop correction I and a differential rotation;
FIG. 41 is a time chart showing the relationship between the engine speed, the correction amount for the closed loop correction I, and the closed loop correction I;
FIG. 42 is a time chart showing a usage state of a learning value corresponding to closed loop correction I;
[Explanation of symbols]
6e ... Air bypass passage
11d, 11e ... throttle valve
13 ... ISC valve
50a ... Storage means (backup RAM)
89 ... air conditioner switch
ACOFFI: Learning value when the air conditioner is off
ACONI: Learning value when the air conditioner is on
DISCSD, ISCBAC ... Setting value
IMAXCL-ISCTW, IMAXBL, IMAXCL ... upper limit
IMINCL-ISCTW, IMINBL ... Lower limit
IMAX: Upper limit basic value
ISCI... Feedback correction value (closed loop correction I)
ISCON: Opening setting value (duty ratio)
ISCSD: Correction after start
ISCTW: Basic characteristic values
NE ... Engine speed
NSET ... Idle target speed
△ N ... difference (differential rotation)
TDISC ... set time (correction update interruption time after start)
TISCSD: Initial value table after correction
TW ... Engine temperature (cooling water temperature)

Claims (2)

エンジン始動後、所定時間以内で、且つ、エンジン温度が暖機再始動かを判断する判定値以上の場合の暖機再始動時のフィードバック補正値の上限値と下限値とを、上記暖機再始動時以外の場合に設定するフィードバック補正値の上限値と下限値よりもシフトアップした値で設定する手順と、
上記フィードバック補正値が上記下限値以下の時には、該下限値で上記フィードバック補正値を設定し、上記フィードバック補正値が上記上限値以上の時には該上限値で上記フィードバック補正値を設定する手順と、
エンジン温度に基づいてスロットルバルブをバイパスするエアバイパス通路に介装したISCバルブの基本的な開度を示す基本特性値を設定する手順と、
上記フィードバック補正値で、少なくとも上記基本特性値を補正して上記ISCバルブの開度を設定する手順とを備えたことを特徴とするエンジンのISCバルブ制御方法。
The upper limit value and the lower limit value of the feedback correction value at the warm-up restart when the engine temperature is equal to or higher than the determination value for determining whether the engine temperature is the warm-up restart after the engine is started are A procedure for setting a value that is shifted up from the upper limit value and the lower limit value of the feedback correction value to be set in a case other than at the time of starting;
When the feedback correction value is less than the above lower limit, set the feedback correction value in the lower limit, when the feedback correction value is not less than the upper limit, the procedure for setting the feedback correction value in the upper limit value,
A procedure for setting a basic characteristic value indicating a basic opening of an ISC valve interposed in an air bypass passage that bypasses the throttle valve based on the engine temperature;
The feedback correction value, the engine ISC valve control method, characterized in that a procedure for setting the opening degree of the ISC valve to correct at least the basic characteristic value.
上記フィードバック補正値を積分制御のみで設定したことを特徴とする請求項1記載のエンジンのISCバルブ制御方法。 2. The ISC valve control method for an engine according to claim 1, wherein the feedback correction value is set only by integral control .
JP2001107632A 2001-04-05 2001-04-05 Engine ISC valve control method Expired - Fee Related JP3612286B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001107632A JP3612286B2 (en) 2001-04-05 2001-04-05 Engine ISC valve control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001107632A JP3612286B2 (en) 2001-04-05 2001-04-05 Engine ISC valve control method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP02390592A Division JP3442795B2 (en) 1992-02-10 1992-02-10 Engine ISC valve control method

Publications (2)

Publication Number Publication Date
JP2001289100A JP2001289100A (en) 2001-10-19
JP3612286B2 true JP3612286B2 (en) 2005-01-19

Family

ID=18959923

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001107632A Expired - Fee Related JP3612286B2 (en) 2001-04-05 2001-04-05 Engine ISC valve control method

Country Status (1)

Country Link
JP (1) JP3612286B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021080896A (en) * 2019-11-21 2021-05-27 トヨタ自動車株式会社 Internal combustion engine control device

Also Published As

Publication number Publication date
JP2001289100A (en) 2001-10-19

Similar Documents

Publication Publication Date Title
JP3876609B2 (en) Idle rotation control device for internal combustion engine
JP5451687B2 (en) Engine control device
JP4319583B2 (en) Control device for internal combustion engine
JP3612286B2 (en) Engine ISC valve control method
JPH08114142A (en) Idle control method for engine
JP3442795B2 (en) Engine ISC valve control method
US4491922A (en) Method and apparatus for controlling stepping motor in idling rotational speed control
JP3769213B2 (en) ISC valve control method
JP3064606B2 (en) Engine ISC valve control method
EP1496229B1 (en) Direct injection engine and a start-up control method thereof
JP3075436B2 (en) Engine ISC valve control method
JP3196902B2 (en) Engine ISC valve control method
JPH05195832A (en) Isc valve control method for engine
JP2001349227A (en) Isc valve control method of engine
JP5977980B2 (en) Fuel injection control device for internal combustion engine
JP3891786B2 (en) Intake control device for internal combustion engine
JP2010112354A (en) Controller of vehicle internal combustion engine
JP3586975B2 (en) Idle speed control device for internal combustion engine
JPH0626427A (en) Start control of engine for ffv
JP3560264B2 (en) Engine fuel injection control device
JPH0914018A (en) Engine revolving speed control method
JP4728131B2 (en) Fuel injection control device for internal combustion engine
JPH06101583A (en) Method for controlling heating of fuel ffv engine
JP3384498B2 (en) Method of eliminating processing delay in engine ignition control
JPH0320581B2 (en)

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041022

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees