Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3769213B2 - ISC valve control method - Google Patents
[go: Go Back, main page]

JP3769213B2 - ISC valve control method - Google Patents

ISC valve control method Download PDF

Info

Publication number
JP3769213B2
JP3769213B2 JP2001246682A JP2001246682A JP3769213B2 JP 3769213 B2 JP3769213 B2 JP 3769213B2 JP 2001246682 A JP2001246682 A JP 2001246682A JP 2001246682 A JP2001246682 A JP 2001246682A JP 3769213 B2 JP3769213 B2 JP 3769213B2
Authority
JP
Japan
Prior art keywords
value
correction
process proceeds
air conditioner
switch
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
JP2001246682A
Other languages
Japanese (ja)
Other versions
JP2002106395A (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 JP2001246682A priority Critical patent/JP3769213B2/en
Publication of JP2002106395A publication Critical patent/JP2002106395A/en
Application granted granted Critical
Publication of JP3769213B2 publication Critical patent/JP3769213B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Control Of Vehicle Engines Or Engines For Specific Uses (AREA)
  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ISCバルブの開度により、パワーステアリングを転舵したときのパワーステアリングポンプの駆動によってエンジンにかかる負荷を補償するエンジンのISCバルブ制御方法に関する。
【0002】
【従来の技術】
一般に、アイドル運転において、変速機のシフトがDレンジ、1、2速、…などのいわゆる走行レンジにシフトされている場合は、N,Pレンジにシフトされている場合に比べてエンジンにかかる負荷が大きくなるため、スロットルバルブをバイパスするエアバイパス通路に介装したISC(アイドルスピードコントロール)バルブの開度を走行レンジ補正値で大きく設定して吸入空気流量を増加させて、エンジン負荷を補償し、アイドル回転数の安定化を図っている。
【0003】
また、パワーステアリングを転舵したとき、この転舵角が比較的大きいとパワーステアリングポンプの駆動力がエンジン負荷として大きくかかるため、上述と同様にISCバルブの開度をパワステ補正値により大きく設定してエンジンにかかる負荷を補償している。
【0004】
【発明が解決しようとする課題】
しかし、このエンジンにかかる負荷を例えば、特開昭55−98629号公報に開示されているエアコン増量補正のごとく、変速機が走行レンジにシフトされたことを検出した後に直ちに走行レンジ補正値により増量補正すると、エンジンの駆動力の伝達遅れにより、増量補正直後にエンジン回転数が一時的に上昇してしまいフィーリングが悪化する。
【0005】
また、変速機のシフトを走行レンジからN,Pレンジに切換えたときに直ちに走行レンジ補正値を解除すると、このときのエンジン負荷が微少の遅れ時間をもって減少するものであるため、エンジン回転数が一時的に低下し、フィーリングが悪化してしまう。
【0006】
一方、エアコンコンプレッサの負荷と上記パワーステアリングポンプの負荷あるいはエンジンにかかる各種負荷の総量とを比較した場合、上記エアコンコンプレッサの負荷が相対的に小さく、したがって、パワーステアリングポンプの負荷を補償すべくパワステ補正を実行しても、エンジンにかかるパワーステアリングポンプ以外の負荷が相対的に大きいため、さほど大きな効果を得ることはできない。
【0007】
さらに、転舵角が大から小に切換った際に、直ちにパワステ補正値を解除すると、このとき、パワーステアリングポンプ駆動負荷が遅れ時間をもって減少するため、エンジン回転数が変動し、フィーリングが悪化する。
【0008】
本発明は、上記事情に鑑みてなされたもので、の目的は、エアコンスイッチのON/OFFに拘らず常に適正なパワステ補正を行うと共に、転舵角が大から小に切換わった直後においてもエンジン回転数の変動が少なく、フィーリングの良好なエンジンのISCバルブ制御方法を提供することにある。
【0010】
【課題を解決するための手段】
記目的を達成するため、請求項1記載の発明は、少なくともエンジン温度に基づいて設定された基本特性値を、パワーステアリング転舵スイッチがオンされた時、パワステ補正値により補正して、スロットルバルブをバイパスするエアバイパス通路に介装されたISCバルブの開度を設定し、吸入空気量を増量するエンジンのISCバルブ制御方法において、アイドル状態およびエアコンスイッチの状態を判断し、上記パワーステアリング転舵スイッチがオンでアイドル状態のとき上記パワステ補正値を設定すると共に、該パワステ補正値を、上記エアコンスイッチがオンの場合はエアコンスイッチがオフの場合よりも小さい値に設定し、上記エアコンスイッチがオフの場合はエアコンスイッチがオンの場合よりも大きい値に設定し、上記パワーステアリング転舵スイッチがオフ、或いは非アイドル状態になったとき、上記パワステ補正値をゼロになるまで演算周期毎に設定値づつ減少させることを特徴とする。
【0012】
請求項1記載の発明は、パワーステアリング転舵スイッチがオンされた時、少なくともエンジン温度に基づいて設定された基本特性値をパワステ補正値により補正してISCバルブの開度を設定し、吸入空気量を増量するに際し、アイドル状態およびエアコンスイッチの状態を判断する。そして、パワーステアリング転舵スイッチがオンでアイドル状態のときパワステ補正値を設定すると共に、該パワステ補正値を、エアコンスイッチがオンの場合はエアコンスイッチがオフの場合よりも小さい値に設定し、エアコンスイッチがオフの場合はエアコンスイッチがオンの場合よりも大きい値に設定する。そして、パワーステアリング転舵スイッチがオフ、或いは非アイドル状態になったとき、パワステ補正値を、該パワステ補正値による補正無しに対応するゼロになるまで演算周期毎に設定値づつ減少させる。
【0014】
【発明の実施の形態】
以下、図面に基づいて本発明の実施の一形態を説明する。
図面は本発明の一形態を示し、図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分学習手順を示すフローチャートである。
【0015】
又、図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に形成された冷却水通路(図示せず)に冷却水温センサ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分ISCI 設定の際に用いる始動時/通常時制御判別フラグ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をクリアする(ID1←0)。
【0064】
そして、S135で上記上限基本値IMAX に上限基本値エアコン補正ID1を加算して上限値IMAXCL を設定する(IMAXCL ←IMAX +ID1)。エアコンが駆動状態ではアイドルアップされているために上限値IMAXCL もエアコン補正値ID1分だけ高く設定する。
【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 <(NNSET −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〜t2)、設定時間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】
MACDTY←MACDTY+[(LISCI −MISCI)×KACON]KACON:I分移行率図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を設定する際に、エアコン定常補正値ISCACとしてエアコン補正学習値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へ進む。
【0149】
S902へ進むと、後述するS913で設定するP,Nレンジから走行レンジへシフトした際の遅れ時間ISCAT1[sec]に相当する走行レンジ移行判別カウント値COUNTAT1 (ダウンカウンタ)の値を参照し、COUNTAT1 =0の場合S904へ進む。さらに、COUNTAT1 ≠0の場合S905へ進み、走行レンジ移行判別カウント値COUNTAT1 をカウントダウンして(COUNTAT1 ←COUNTAT1 −1)S908へ進む。
【0150】
また、上記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へ進む。
【0151】
そして、S905,S906、あるいは、S907からS908へ進むと走行レンジからN,Pレンジへシフトした際の遅れ時間ISCAT2A[sec]に相当する設定値COUNTISCAT2でN,Pレンジ移行判別カウント値COUNTAT2 (ダウンカウンタ)をセットして(COUNTAT2 ←COUNTISCAT2)、ルーチンを抜ける。
【0152】
一方、S901でN,Pレンジ(FLAGAT=0)と判断されてS903へ進むと、N,Pレンジ移行判別カウント値COUNTAT2 の値を参照し、COUNTAT2 ≠0の場合S909へ進み、上記カウント値COUNTAT2 をカウントダウンして(COUNTAT2 ←COUNTAT2 −1)、S913へ進む。
【0153】
また、上記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へ進む。
【0154】
そして、S909,S911、あるいは、S912からS913へ進むと、N,Pレンジから走行レンジへシフトした際の遅れ時間ISCAT1[sec]に相当するカウント値COUNTISCAT1で走行レンジ移行判別カウント値COUNTAT1 をセットした後(COUNTAT1 ←COUNTISCAT1)、ルーチンを抜ける。
【0155】
上記AT車走行レンジ補正値設定の代表例を図30のタイムチャートに従って説明する。
【0156】
N,Pレンジ(FLAGAT=0)から走行レンジ(FLAGAT=1)にシフトすると(経過時間t1)、所定遅れ時間ISCAT1[sec]の計時が開始され、この遅れ時間ISCAT1[sec]経過後、演算サイクルごとに小量の設定値DLTAT1[%]を加算し(ISCATDS←ISCATDS+DLTAT1)、AT車走行レンジ補正値ISCATDS[%]が設定値DRGDTY[%]に達したら(経過時間t2)、上記AT車走行レンジ補正値ISCATDS[%]を上記設定値DRGDTY[%]で固定する(経過時間t2 〜t3)。
【0157】
N,Pレンジから走行レンジへシフトした際、微小の遅れ時間をもってエンジンに負荷がかかるため、ただちにAT車走行レンジ補正値ISCATDSを0→設定値DRGDTY[%]に設定すると図(c)の破線で示すようにエンジン回転数NE が一時的に上昇してフィーリングが悪化する。
【0158】
また、AT車走行レンジ補正を行わないとN,Pレンジから走行レンジにシフトしたとき急激にエンジン負荷がかかり、図(c)の一点鎖線で示すようにエンジン回転数が低下してしまい、クローズドループ補正I分ISCI によってエンジン回転数が収束するまでに時間がかかってしまう。
【0159】
従って、走行レンジにシフトした際、エンジン負荷の伝達遅れ時間に相当する所定遅れ時間ISCAT1 経過後に、AT車走行レンジ補正値ISCATDSを設定値DRGDTYに達するまで徐々に増加させてAT車走行レンジ補正値ISCATDSを用いて設定されるデューティ比ISCONを徐々に増加し、ISCバルブ13により空気量を徐々に増加させることで、エンジン回転数変動が防止され、フィーリングが向上する。
【0160】
一方、走行レンジ(FLAGAT=1)からN,Pレンジ(FLAGAT=0)にシフトすると(経過時間t3)、所定遅れ時間ISCAT2[sec]の計時が開始され、この遅れ時間ISCAT2[sec]経過後、AT車走行レンジ補正値ISCATDSを演算サイクルごとに小量の設定値DLTAT2[%]で0になるまで減算する(ISCATDS←ISCATDS−DLTAT2、経過時間t4)。
【0161】
走行レンジからN,Pレンジへシフトした際、微小の遅れ時間をもってエンジン負荷が急減するため、直ちにAT車走行レンジ補正値ISCATDSを0にすると、変速機側のエンジンへの負荷が完全にはなくなっていないので、図(c)の破線で示すようにエンジン回転数が一時的に低下しフィーリングが悪化する。
【0162】
また、AT車走行レンジ補正を行わないと走行レンジからN,Pレンジへシフトした際、急激にエンジン負荷が減少するため図(c)の二点鎖線で示すようにエンジン回転数の吹上がりを生じフィーリングが悪くなる。
【0163】
従って、N,Pレンジへシフトした際、所定遅れ時間ISCAT2経過後に、AT車走行レンジ補正値ISCATDSを0[%]になるまで徐々に減少させてデューティ比ISCONを徐々に減じ、ISCバルブ13により空気量を徐々に減少させることで、このときのエンジン回転数変動を防止し、フィーリングを向上する。
【0164】
(加減速補正設定サブルーチン)
図13,図14は51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S203参照)される加減速補正DSHPT設定のサブルーチンである。
【0165】
まず、S1001 でアイドルスイッチ12bがOFFかを判断し、OFF(スロットルバルブ11d,11eが開)の場合S1002 へ進み、ON(スロットルバルブ11d,11eが全閉)の場合S1003 へ進む。
【0166】
S1002 へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1004 へ進み、FLAGAT=1(走行レンジ)の場合S1005 へ進む。
【0167】
S1004 へ進むとスロットル開度センサ12aで検出したスロットル開度THVに基づきROM49の一連のアドレスに格納されているN,Pレンジ用加減速補正テーブルTDASHNを補間計算付きで参照して加減速補正DSHPT[%]を設定した後S1006 へ進む。
【0168】
また、S1002 からS1005 へ進むと上記スロットル開度THVに基づきROM49の一連のアドレスに格納されている走行レンジ用加減速補正テーブルTDASHDを補間計算付きで参照して加減速補正DSHPT[%]を設定した後S1006へ進む。
【0169】
セレクトレバーがNレンジあるいはPレンジにシフトされている状態ではエンジンに負荷がかかっておらず、スロットルバルブ11d,11eが開となる場合はレーシング、空吹かしなどの状態であり、スロットル開度変化に応じるエンジン回転数NE の変化が走行レンジのときよりも大きい。
【0170】
したがって、N,Pレンジ用加減速補正テーブルTDASHNの各領域に格納されているスロットル開度THVに対応する加減速補正DSHPTは、走行レンジ時に採用する走行レンジ用加減速補正テーブルTDASHDに格納されている加減速補正DSHPTに比し大きな値に設定されており、これにより、エンジン負荷に応じた制御性を得ることができる。
【0171】
そして、S1004 あるいはS1005 からS1006 へ進むと上記加減速補正DSHPTでRAM50の所定アドレスに格納されている今回の加減速補正(DSHPT)NEW を設定する((DSHPT)NEW ←DSHPT)。
【0172】
その後、S1007 へ進むと、上記今回の加減速補正(DSHPT)NEWと、前回のルーチンで設定した加減速補正(DSHPT)OLD とを比較し、(DSHPT)NEW <(DSHPT)OLD (スロットル開度減少)の場合S1008 へ進み、(DSHPT)NEW ≧(DSHPT)OLD (スロットル開度増加あるいは変化なし)の場合S1030 へジャンプする。
【0173】
S1008 へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1009 へ進み、FLAGAT=1(走行レンジ)の場合S1010 へ進む。
【0174】
S1009 へ進むと設定値DDASHNで減量値DDASH[%]を設定して(DDASH←DDASHN)、S1011 へ進む。また、S1010 へ進むと設定値DDASHD(但し、DDASHN>DDASHD)で減量値DDASH[%]を設定して(DDASH←DDASHD)、S1011 へ進む。
【0175】
なお、スロットル開度減少時のエンジン回転数落ちは走行レンジの際よりも無負荷状態であるN,Pレンジの方が敏速であるため、(DSHPT)NEW<(DSHPT)OLD のときの加減速補正値DSHPTの減量値DDASHをN,Pレンジのときには走行レンジに比し大きく設定している。
【0176】
そして、S1011 へ進むと前回の加減速補正(DSHPT)OLD から上記減量値DDASHを減算した値で加減速補正値DSHPTを設定する(DSHPT←(DSHPT)OLD −DDASH)。
【0177】
一方、上記S1001 でアイドルスイッチ12bがONのスロットル全閉状態と判断されてS1003 へ進むと、走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1012 へ進み、FLAGAT=1(走行レンジ)の場合S1013 へ進む。
【0178】
S1012 へ進むと設定値NDASHN[%]でオフセット値NDASHを設定し(NDASH←NDASHN)、また、S1013 へ進むと設定値NDASHD(但し、NDASHN>NDASHD)[%]でオフセット値NDASHを設定し(NDASH←NDASHD)、その後、それぞれS1014 へ進む。
【0179】
そして、S1014 へ進むとエンジン回転数NE とアイドル目標回転数NSET に上記オフセット値NDASHを加算した値とを比較し、NE ≧NSET +NDASHの場合S1015 へ進み、NE <NSET +NDASHの場合S1016 へ進む。
【0180】
S1015 へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1017 へ進みダッシュポット保持値RDASHを予め設定した設定値RDASHN[%]で設定し(RDASH←RDASHN)、また、FLAGAT=1(走行レンジ)の場合S1018 へ進みダッシュポット保持値RDASHを予め設定した設定値RDASHD[%]で設定し(RDASH←RDASHD)、その後、S1019 へそれぞれ進む。
【0181】
そして、S1019 へ進むとRAM50の所定アドレスに格納されている現時点の加減速補正DSHPTを読出し、この加減速補正DSHPTと上記ダッシュポット保持値RDASHとを比較し、DSHPT≦RDASHの場合S1020 へ進み、上記ダッシュポット保持値RDASHにて加減速補正DSHPTを設定し(DSHPT←RDASH)、S1030 へ進む。
【0182】
また、S1019 でDSHPT>RDASHと判断されてS1021 へ進むと走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1022 へ進み、FLAGAT=1(走行レンジ)の場合S1023 へ進む。
【0183】
S1022 へ進むと設定値DDSH1N[%]で第1の減量値DDSH1を設定し(DDSH1←DDSH1N)、また、S1023 へ進むと設定値DDSH1D(但し、DDSH1D<DDSH1N)[%]で第1の減量値DDSH1を設定し(DDSH1←DDSH1D)、その後、S1024 へそれぞれ進む。
【0184】
そして、S1024 へ進むと加減速補正DSHPTから上記第1の減量値DDSH1を減算した値で上記加減速補正DSHPTを更新し(DSHPT←DSHPT−DDSH1)、S1030 へ進む。
【0185】
一方、S1014 でNE <NSET +NDASHと判断されてS1016 へ進むと、加減速補正DSHPTが0以下かを判断し、DSHPT≦0の場合S1025 へ進み、加減速補正DSHPTを0に固定(DSHPT←0)した後、S1030 へ進む。また、DSHPT>0の場合S1026 へ進む。
【0186】
S1026 へ進むと、走行レンジ判別フラグFLAGATの値を参照し、FLAGAT=0(N,Pレンジ)の場合S1027 へ進み、FLAGAT=1(走行レンジ)の場合1028へ進む。
【0187】
S1027 へ進むと設定値DDSH2N(但し、DDSH1N>DDSH2N)[%]で第2の減量値DDSH2を設定し(DDSH2←DDSH2N)、また、S1028 へ進むと設定値DDSH2D(但し、DDSH1D>DDSH2D)[%]で第2の減量値DDSH2を設定し(DDSH2←DDSH2D)、それぞれS1029 へ進む。
【0188】
S1029 では加減速補正DSHPTから上記第2の減量値DDSH2を減算した値で上記加減速補正DSHPTを更新した後(DSHPT←DSHPT−DDSH2)、S1030 へ進む。
【0189】
上記第1,第2の減量値DDSH1,DDSH2を設定する各設定値DDSH1N,DDSH2N,DDSH1D,DDSH2DをDDSH1N>DDSH2N,DDSH1D>DDSH2Dに設定したことで、スロットル全閉時エンジン回転数NE がアイドル目標回転数NSET に低下する際に、エンジン回転数NEがアイドル目標回転数NSET に近付いたら加減速補正DSHPTに対する減量値を小さな値とすることにより、エンジン回転数NE のアイドル目標回転数NSET への収束性がよくなり、制御ハンチングを防止することができる。
【0190】
そして、S1007,S1011,S1020,S1024,S1025 あるいは、S1029 からS1030へ進むと、S1004,S1005,S1011,S1020,S1024,S1025,あるいは、S1029 で設定した加減速補正DSHPTでRAM50の所定アドレスに格納されている前回の加減速補正(DSHPT)OLD を更新し((DSHPT)OLD ←DSHPT)、ルーチンを抜ける。
【0191】
上記加減速補正設定の代表例を図31のタイムチャートに従って説明する。
【0192】
アイドルスイッチ12bがON(スロットルバルブ11d,11eが全閉)からOFF(スロットルバルブ11d,11eが開)になり(経過時間t1)、スロットル開度THVが次第に大きくなる加速運転では、エンジン回転数NEがスロットル開度THVに応じて上昇する。このとき、スロットル開度THVに基づいて設定する加減速補正DSHPTが演算周期ごとに上昇し、この加減速補正DSHPT(ISCTR)を取入れて設定するISCバルブ13のデューティ比ISCONが大きくなり、ISCバルブ13の開度が増大される(経過時間t1 〜t2およびt3 〜t4)。
【0193】
また、スロットル開度THVがほぼ一定の定常運転では上記加減速補正DSHPTが一定になる(経過時間t2 〜t3 、およびt4 〜t5)。
【0194】
スロットルバルブ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によって空気量が確保されると共に、吸気管圧力の低下が補償され、空燃比のオーバーリッチが防止される。これによって、スロットルバルブ急閉直後の空燃比オーバーリッチに起因する失火、異常燃焼が防止されて、排気エミッションが改善される。
【0195】
なお、スロットル開弁状態からスロットル全閉状態に移行する際の加減速補正DSHPTは、スロットル開度THVに応じた値に設定されているので、スロットル全閉移行後のダッシュポット期間が常に適正に得られる。
【0196】
そして、アイドルスイッチ12bがONするとダッシュポット保持値RDASHまで上記加減速補正DSHPTを演算周期ごとに第1の設定値DDSH1(但し、DDASH>DDSH1>DDSH2)ずつ減少させる(経過時間t6〜t7)。これにより、スロットル全閉移行時には加減速補正DSHPTの減少率が比較的大きくなり、目標回転数への復帰時間が短縮される。
【0197】
その後、加減速補正DSHPTが上記ダッシュポット保持値RDASHに達したら、この値を、上記エンジン回転数NE がアイドル目標回転数NSET にオフセット値NDASHを加算した値に低下するまで維持し(経過時間t7 〜t8)、エンジン回転数NE がアイドル目標回転数NSET にオフセット値NDASHを加算した値により低下したら、上記エンジン回転数NE がアイドル目標回転数NSETに達するまで、上記第1の減量値DDSH1より小さい値の第2の減量値DDSH2で上記加減速補正DSHPTを演算周期ごとに減算する(経過時間t8 以後)。
【0198】
その結果、アイドルスイッチ12bのON後、エンジン回転数NE がアイドル目標回転数NSET に達するまでの間、上記加減速補正DSHPTを用いて設定されるデューティ比ISCONの減少率が順次小さくなり、ISCバルブ13の開度減少率も順次小さくなる。これにより、アイドル目標回転数NSET に近付く際のエンジン回転数NE の低下速度を減少させ、エンストを防止すると共に、エンジン回転数NE のアイドル目標回転数NSET への収束性を向上する。
【0199】
(ダッシュポット補正値設定割込みルーチン)
図15は設定時間毎、例えば100msec 毎に割込み実行するダッシュポット補正値設定ルーチンである。
【0200】
まず、S1101 でアイドルスイッチ12bがONかを判断し、ON(スロットルバルブ11d,11eが全閉)の場合S1102 へ進み、OFF(スロットルバルブ11d,11eが開)の場合S1104 へ進む。
【0201】
S1102 ではエンジン回転数NE と予め設定したダッシュポット判別回転数DHEKNとを比較し、NE <DHEKNの場合S1103 へ進み、NE ≧DHEKNの場合S1104 へ進む。このダッシュポット判別回転数DHEKNはエアコン補正などのアイドルアップを加味したアイドル回転数近傍の値(例えば1900rpm)である。
【0202】
S1101 あるいはS1102 からS1104 へ進むとダッシュポット補正値DHENBをクリアした後(DHENB←0)、S1113 へ進む。
【0203】
また、S1102 からS1103 へ進むと前回のルーチン実行時(100msec前)に設定しRAM50の所定アドレスに格納したエンジン回転数(NE)OLD を読出し、S1105 で、前回のエンジン回転数(NE)OLD と現在のエンジン回転数NEとの差から設定時間(100msec)におけるエンジン回転数低下量NDOWNを算出する(NDOWN←(NE)OLD −NE)。
【0204】
そして、S1106 で上記エンジン回転数低下量NDOWNと設定値DNES1とを比較し、NDOWN<DNES1の場合S1107 へ進み、エンジン回転数低下量が少ない状態(緩減速)であることを示すエンジン回転数低下量判別フラグFLAGDHをセット(FLAGDH←1)し、S1114 へ進む。
【0205】
また、S1106 でNDOWN≧DNES1と判断されてS1108 へ進むと、上記エンジン回転数低下量NDOWNと設定値DNES2(但し、DNES1<DNES2)とを比較し、NDOWN<DNES2の場合S1109 へ進みダッシュポット補正値DHENBを設定値DHNEB1[%]で設定し(DHENB←DHNEB1)、S1113 へ進む。また、NDOWN≧DNES2の場合S1110 へ進む。
【0206】
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 へ進む。
【0207】
上記S1104,S1109,S1111,S1112 からS1113 へ進むとエンジン回転数低下量判別フラグFLAGDHをクリア(FLAGDH←0、低下量大)し、S1114 へ進む。
【0208】
そして、S1107 あるいはS1113 からS1114 へ進むと、現在のエンジン回転数NE でRAM50の所定アドレスに格納されている前回のエンジン回転数(NE)OLD を更新((NE)OLD ←NE)し、ルーチンを抜ける。
【0209】
また、図16は51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S204参照)されるダッシュポット補正値更新サブルーチンである。
【0210】
まず、S1201 でエンジン回転数低下量判別フラグFLAGDHの値を参照し、FLAGDH=1(低下量小)の場合S1202 へ進み、FLAGDH=0(低下量大)の場合ルーチンを抜ける。
【0211】
S1202 へ進むとダッシュポット補正値DHENB[%]が0以下かを判別し、DHENB≦0の場合S1203 へ進みダッシュポット補正値DHENBを0[%]に設定(DHENB←0)した後、ルーチンを抜ける。
【0212】
また、S1202 でDHENB>0と判断されてS1204 へ進むと、上記ダッシュポット補正値DHENBから設定値DDFEB(微小値)で減算した値で、このダッシュポット補正値DHENBを更新(DHENB←DHENB−DDFEB)し、ルーチンを抜ける。
【0213】
図32にダッシュポット補正値設定の代表例のタイムチャートを示す。
【0214】
スロットルバルブ11d,11eの急閉による急減速時等、アイドルスイッチ12bがOFF状態からON状態(スロットルバルブ11d,11eが全閉状態)へ移行してエンジン回転数NE が急激に低下し、ダッシュポット判別回転数DHEKN(例えば、1900rpm)以下になり、エンジン回転数低下量NDOWNの比較的大きい(DNES3≦NDOWN)区間(経過時間t1 〜t2)では大きな値の設定値DHNEB3[%]でダッシュポット補正値DHENBを設定する。
【0215】
エンジン回転数NE が急激に落ち込んだときにダッシュポット補正を行わないと、図の破線で示すように、エンジン回転数がそのまま落込みエンストしてしまう。そのため、スロットルバルブ11d,11eが開の状態から全閉状態へ移行したときに、エンジン回転数NE がアイドル回転数近傍の設定値DHEKN(例えば、1900rpm)以下に急激に低下した際、エンジン回転数の低下量NDOWN(=(NE)OLD −NE)が大きいほどダッシュポット補正値DHENBを大きくすることで、ISCバルブ13に対するデューティ比ISCONを大きくし、このISCバルブ13の開度を大きくして空気量を増加させてエンジン回転数NE の落込みを防ぐ。
【0216】
その後、エンジン回転数低下量NDOWNが、DNES2≦NDOWN<DNES3の区間(経過時間t2 〜t3)では中間の値の設定値DHNEB2[%]でダッシュポット補正値DHENBを設定する。
【0217】
次いで、エンジン回転数低下量NDOWNが、DNES1≦NDOWN<DNES2の区間(経過時間t3 〜t4)では比較的小さな値の設定値DHNEB1[%]でダッシュポット補正値DHENBを設定する。
【0218】
エンジン回転数低下量NDOWNが比較的小さくなった状態でもダッシュポット補正値DHENBを設定値DHNEB3のままにしておくと、図の一点鎖線で示すように回転変動を生じアイドル回転数への収束性が悪くなる。
【0219】
そして、上記エンジン回転数低下量NDOWNが、NDOWN<DNES1の区間(経過時間t4 以後)では上記ダッシュポット補正値DHENBを0になるまで演算周期(51.2msec)毎に微小な設定値DDFEBずつ減算する。
【0220】
すなわち、経過時間t4 のときにダッシュポット補正値DHENBを0にするとISCバルブ13に対するデューティ比ISCONが急減するためにエンジン回転数NE が、図の破線で示すように落込んでしまいアイドル回転数への収束性が悪くなってしまう。したがって、エンジン回転数NE の低下量NDOWNの減少に伴い、ダッシュポット補正値DHENBを減少させることでアイドル回転数への収束性を良くする。
【0221】
(ラジファン補正設定サブルーチン)
図17は51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S205参照)されるラジファン補正ISCRAS 設定のサブルーチンである。
【0222】
まず、S1301 で、メインコンピュータ41内のデータに基づいてラジエータファン62の動作を制御するラジエータファンリレー63がONかを判別し、ONの場合S1302 へ進み、OFFの場合S1303 へ進む。
【0223】
S1302 へ進むとRAM50の所定アドレスに格納されているラジファン補正ISCRAS を設定値RAS[%]で設定し(ISCRAS ←RAS)、ルーチンを抜ける。また、S1303 へ進むと上記ラジファン補正ISCRAS を0[%]に設定し(ISCRAS ←0)、ルーチンを抜ける。
【0224】
なお、上記ラジファン補正ISCRAS の設定をタイムチャートによって示せば図33の通りである。
【0225】
ラジエータファン62が作動しているときは、ラジエータファンモータにより消費電流が大きく、オルタネータ(発電機)の発電量も大きくなるため、エンジン1にかかる負荷もこれに相応する分大きくなりエンジン回転数NE が低下しようとするが、ラジエータファン62がONのとき、ISCバルブ13に対するデューティ比ISCONをラジファン補正ISCRAS によって大きくして、ISCバルブ13の開度を増大させることによりエンジン回転数NE の低下を防止する。(パワステ補正値設定サブルーチン)図18,図19は51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S206参照)されるパワステ補正値ISCPS設定のサブルーチンである。このサブルーチンで設定されるパワステ補正値ISCPSは、転舵角が大きくパワーステアリングオイルポンプを駆動するエンジン1の負荷が大きくなり、エンジン回転数NE が低下するのを補償するものである。
【0226】
まず、S1401 でパワーステアリング転舵スイッチ(以下「パワステ転舵スイッチ」と略称する)58がONかを判断し、ON(転舵角大)の場合S1402へ進み、OFF(転舵角小)の場合S1409 へ進む。
【0227】
S1402 へ進むと車速センサ56で検出した車速VSPと設定値VSPPS[Km/h]とを比較し、VSP≦VSPPSの場合S1403 へ進み、VSP>VSPPSの場合S1409 へ進む。
【0228】
S1403 へ進むと、冷却水温センサ21で検出した冷却水温TW と設定値TWPS[℃]とを比較し、TW ≧TWPS の場合S1404 へ進み、TW <TWPS の場合S1409 へ進む。
【0229】
上記S1402 において、車速VSPが設定値VSPPS以上のときには走行によるエンジン負荷が大きいためパワステオイルポンプを駆動するエンジン負荷が相対的に小さくなる。したがって、パワステ補正値ISCPSによる補償が不要になる。また、S1403 において、暖機未完(TW <TWPS)のときには基本特性値ISCTWが大きく設定されるので相対的にパワステオイルポンプを駆動するためのエンジン負荷が小さくなり、パワステ補正値ISCPSによる補償が不要になる。
【0230】
S1404 へ進むと、前回ルーチン実行時にアイドル状態の場合に1にセットされているアイドル回転数判別フラグFLAGPSの値を参照し、FLAGPS=1(前回アイドル状態)の場合S1405 へ進み、FLAGPS=0(前回アイドル解除状態)の場合S1406 へ進む。
【0231】
S1405 へ進むと設定値ISPSNH[rpm]でアイドル判別回転数ISPSNを設定し(ISPSN←ISPSNH)、S1407 へ進む。また、S1406 へ進むと設定値ISPSNL(但し、ISPSNL<ISPSNH)[rpm]でアイドル判別回転数ISPSNを設定し(ISPSN←ISPSNL)、S1407 へ進む。図34に示すように、アイドル判別回転数ISPSNを設定する際にアイドル状態(FLAGPS=1)とアイドル解除状態(FLAGPS=0)とでヒステリシスを設けることにより、S1407 におけるアイドル状態判別の制御ハンチングを防止するようにしている。
【0232】
S1407 へ進むとエンジン回転数NE とアイドル判別回転数ISPSNとを比較し、NE >ISPSNの場合、アイドル解除状態と判断しS1408 へ進みアイドル回転数判別フラグFLAGPSをクリア(FLAGPS←0)した後S1409 へ進む。また、NE ≦ISPSNの場合アイドル状態と判断し、S1410 へ進む。
【0233】
S1410 ではエアコンスイッチ89がOFFかを判断し、OFFの場合S1411 へ進み、ONの場合S1412 へ進む。
【0234】
S1411 へ進むと、メインコンピュータ41で演算したISCバルブ13に対するデューティ比ISCONに基づき、エアコンOFF時のパワステ補正値ISCPSをテーブル参照あるいは演算により設定し、S1413 へ進む。また、S1412 へ進むとメインコンピュータ41で演算したISCバルブ13に対するデューティ比ISCONに基づきエアコンON時のパワステ補正値ISCPSをテーブル参照あるいは演算により設定しS1413 へ進む。
【0235】
図35(b)に示すように、実線で示すエアコンOFF時のパワステ補正値ISCPSは、一点鎖線で示すエアコンON時のパワステ補正値ISCPSよりも大きく設定する。すなわち、エアコンON時には、エアコン補正値ISCACによりデューティ比ISCONが大きく設定される。換言すれば、エアコンON時は、相対的にパワステによるエンジン負荷が少くなり、よって、エアコンOFF時よりもパワステ補正値ISCPSを小さく設定している。
【0236】
また、S1411 あるいはS1412 で設定するパワステ補正値ISCPSは、デューティ比ISCONが大きい(小さい)ときにはエンジン1への負荷が大きく(小さく)、ISCバルブ13の開度を大きく(小さく)して空気量を増加(減少)させ、エンジン回転数NE の低下(上昇)を防止しているが、このときのエンジンにかかっている全負荷に対してパワステポンプによる負荷は相対的に小さい(大きい)ため小さく(大きく)設定している。
【0237】
そして、上記S1411 あるいはS1412 からS1413 へ進むと、アイドル回転数判別フラグFLAGPSをセット(FLAGPS←1)した後、ルーチンを抜ける。
【0238】
また、S1401,S1402,S1403,あるいは、S1408 からS1409 へ進むと、パワステ補正値ISCPSが0以下かを判別し、ISCPS≦0の場合S1414 へ進みパワステ補正値ISCPSを0[%]に設定した後(ISCPS←0)、ルーチンを抜ける。ISCPS>0の場合にはS1415 へ進み、パワステ補正値ISCPSから設定値DISCPSを減算してパワステ補正値ISCPSを更新した後(ISCPS←ISCPS−DISCPS)、ルーチンを抜ける。
【0239】
図35にパワステ補正値設定の代表的なタイムチャートを示す。
【0240】
暖機完了後のアイドル時、転舵角が大となりパワステ転舵スイッチ58がONすると、デューティ比ISCONに応じたパワステ補正値ISCPS(エアコンスイッチ89がOFFのときとONのときによって相違する)が設定される(経過時間t1)。
【0241】
これにより、転舵角大に伴うパワステオイルポンプ駆動負荷が増大した際に、パワステ補正値ISCPSによりISCバルブ13に対するデューティ比ISCONを大きくし、ISCバルブ13の開度を大きくして空気量を増加させることでエンジン回転数の落込みが防止される。
【0242】
また、転舵角が小さくなり、パワステ転舵スイッチ58がONからOFFに切換った直後(経過時間t2)、直ちにパワステ補正値ISCPSを0[%]にすると、ISCバルブ13に対するデューティ比ISCONがパワステ補正値ISCPS分、急減し、かつ、低下してはいるがパワステオイルポンプ駆動負荷が存在するため、図(c)の二点鎖線で示すようにエンジン回転数NE が大きく変動してしまうが、上記パワステ補正値ISCPSが0になるまで、演算周期(51.2msec)毎に上記パワステ補正値ISCPSを設定値DISCPSずつ減算することで、ISCバルブ13の開度を徐々に減少させて空気量を補償し、これによって、図(c)の実線で示すようにエンジン回転数NE の変動が防止される。
【0243】
(エアコンクラッチ補正値設定サブルーチン)
図20は51.2msec毎に割込み実行される補正値設定ルーチンにおいて実行(S207参照)されるエアコンクラッチ補正値ISCCLH 設定のサブルーチンである。まず、S1501 でエアコンスイッチ89がONかを判断し、ONの場合S1502 へ進み、OFFの場合S1503 へ進む。
【0244】
S1502 へ進むとエアコンスイッチ89がON→OFF後設定時間TCLH[sec]経過したかを判別するためのエアコンON→OFF後経過時間判別カウント値COUNTCLH (ダウンカウンタ)を、上記設定時間TCLHに相当する設定値TACCLHで設定し(COUNTCLH ←TACCLH)、S1505 へ進む。
【0245】
また、S1503 へ進むとエアコンON→OFF後経過時間判別カウント値COUNTCLH の値を参照し、COUNTCLH ≠0の場合S1504 へ進み、カウントダウン(COUNTCLH ←COUNTCLH −1)した後、S1505 へ進む。
【0246】
S1502 あるいはS1504 からS1505 へ進むとエアコンクラッチ補正値ISCCLHを設定値DISCLH[%]で設定した後(ISCCLH ←DISCLH)、ルーチンを抜ける。
【0247】
一方、S1503 でCOUNTCLH =0であり、エアコンスイッチ89をON→OFF後、設定時間TCLH[sec]経過したと判断してS1506 へ進むと上記エアコンクラッチ補正値ISCCLH を0[%]に設定した後(ISCCLH ←0)、ルーチンを抜ける。
【0248】
図36に上記エアコンクラッチ補正値ISCCLH の設定と、エアコンスイッチ89のON/OFF、エアコンクラッチリレー65のON/OFF、可変容量エアコンコンプレッサ64の容量制御、および、エンジン回転数NE との関係を示す。
【0249】
まず、可変容量エアコンコンプレッサ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される。
【0250】
このため、エアコンスイッチ89のONと同時に(経過時間t1)、エアコンクラッチ補正値ISCCLH を設定値DISCLHに設定し、ISCバルブ13に対するデューティ比ISCONを上記エアコンクラッチ補正分ISCCLH 分増大させてISCバルブ13の開度を増大させ、空気量を増加させることでエンジン回転数NE を上昇させてエアコンクラッチリレー65のONによるコンプレッサ64駆動のエンジン負荷増大に伴うエンジン回転数低下を防止する。
【0251】
その後、エアコンスイッチ89をOFFすると(経過時間t2)、上記可変容量エアコンコンプレッサ64の容量が次第に低下されると共に、前述のエアコン補正値ISCACが次第に減少され(図7,8、および図29参照)、これに伴いISCバルブ13に対するデューティ比ISCONが減少することでISCバルブ13の開度が減少して空気量が減少し、エンジン回転数NE がエアコンOFF時の目標回転数に復帰される。
【0252】
可変容量エアコンコンプレッサ64の容量が下がりきったとき(経過時間t3)からエアコンクラッチ64aが切れるまで(エアコンクラッチリレー65がOFFするまで)の間T1 は、クラッチのフリクションが残っている。このため、可変容量エアコンコンプレッサ64のエアコンクラッチ64aが切れた瞬間にクラッチによるフリクションが急になくなるため図(e)に破線で示すように一時的な回転数の吹上がりによる回転変動が生じフィーリングが悪化してしまう。
【0253】
エアコンクラッチ補正は、このクラッチのフリクションによるエンジン負荷を補償するためのものであり、エアコンスイッチ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)の実線で示すように、エアコンクラッチ64aが切れた直後の一時的な回転数の吹上がりによる回転変動が解消し、フィーリングが向上する。
【0254】
(始動後補正設定割込みルーチン)
図21はISCバルブ制御メインルーチンにおいて設定する始動時/通常時制御判別フラグFLAGSTが1→0になった時点で割込み実行する始動後補正初期値設定ルーチンである。
【0255】
始動時/通常時制御判別フラグFLAGSTがFLAGST=1(始動時制御)からFLAGST=0(通常時制御)に移行した直後、すなわち、スタータスイッチ61がON→OFFで、かつ、エンジン回転数NE がNE ≠0のときである始動時制御終了直後に割込みスタートすると、まず、S1601 で冷却水温TW に基づき始動後補正初期値テーブルTISCSD(冷却水温TW が低いほど大きな値が格納されている)を補間計算付で参照して始動後補正ISCSDの初期値を設定する。次いで、S1602 で冷却水温TW に基づき始動後補正更新割込時間テーブルTTDISC(冷却水温TW が低いほど長い時間の値が格納されている)を補間計算付で参照して始動後補正更新割込時間TDISCを設定する。
【0256】
そして、S1603 で上記始動後補正更新割込時間TDISC毎の割込を許可してルーチンを抜ける。
【0257】
図22は始動後補正更新割込時間毎に割込み実行される始動後補正設定ルーチンで、始動時制御から通常時制御へのデューティ比ISCONのつながりを良くし、始動性を向上させるものである。
【0258】
まず、S1701 でRAM50の所定アドレスに格納されている始動後補正ISCSDが0以下かを判断し、ISCSD>0の場合S1702 へ進み上記始動後補正ISCSDを設定値DISCSDで減算した値で更新し(ISCSD←ISCSD−DISCSD)、ルーチンを抜ける。
【0259】
一方、S1701 でISCSD≦0と判断されてS1703 へ進むと、RAM50の所定アドレスに格納されている始動後補正ISCSDを0[%]に固定して(ISCSD←0)、S1704 へ進み、始動後補正更新割込時間TDISCごとの割込みを禁止し、ルーチンを抜ける。
【0260】
始動後補正設定の代表例を図37のタイムチャートに従って説明する。
【0261】
スタータスイッチ61がON、あるいは、エンジン回転数NE が0のとき(始動時/通常時制御判別フラグFLAGST=1)始動後補正プログラムは実行されず(経過時間t0 〜t1)、スタータスイッチ61がON→OFF直後で、エンジン回転数NE がNE ≠0のとき始動後補正ISCSDの初期値か設定される(経過時間t1)。
【0262】
次いで、上記始動後補正ISCSDを0になるまで始動後補正更新割込時間TDISC毎に設定値DISCSDずつ減少させる。
【0263】
また、図38にISCバルブ13を制御するデューティ比ISCONの変化と始動後補正ISCSDとの関係を示す。
【0264】
始動時制御(FLAGST=1)時においてはISCバルブ制御のメインルーチンにおいて設定するデューティ比ISCONが比較的大きな値に設定されており、通常時制御へ移行すると(経過時間t1)、各種補正項により緻密に制御されるため図の一点鎖線で示すようにデューティ比ISCONのつながりが悪くなり始動性が低下する。
【0265】
始動後補正ISCSDはこれを補償するためのものであり、始動時制御において設定されるデューティ比ISCONは、冷却水温TW に基づき設定される始動時特性値ISCSTが大部分を占め、冷却水温TW が低いほど始動時特性値ISCSTが大きく設定されるため(図1参照)、始動時制御から通常時制御に移行する際のISCバルブ13に対するデューティ比ISCONの段差が大きくなる。
【0266】
このため、冷却水温TW が低いほど、図37の実線で示すように始動後補正ISCSDの初期値を大きく設定すると共に、始動後補正割込時間TDISCを長く設定して始動後補正ISCSDが0になるまでの時間を長くし(経過時間t1 〜t3)、一方、冷却水温TW が高いほど、図37の破線で示すように始動後補正ISCSDの初期値を小さくし、かつ、始動後補正割込時間TDISCを短く設定して始動後補正ISCSDが0になるまでの時間を短くすることで(経過時間t1 〜t2)、如何なる温度条件下においても始動時制御から通常時制御に移行する際のISCバルブ13に対するデューティ比ISCONのつながりを、図38の実線で示すようにスムーズにし、ISCバルブ13の開度変化の段差を解消してISCバルブ13による空気流量の急変を防止し、始動性を向上する。
【0267】
(クローズドループ補正I分更新ルーチン)
図23〜図25は設定時間毎、例えば10msec毎に割込み実行されるクローズドループ補正I分更新手順を示すフローチャートである。
【0268】
まず、S1801 でISCバルブ制御メインルーチンにおいて設定する始動時/通常時制御判別フラグFLAGSTの値を参照し、FLAGST=1(始動時あるいはエンスト中)の場合S1802 へ進み、FLAGST=0(通常時)の場合S1803へ進む。
【0269】
S1802 へ進むと始動後通常運転(通常時制御)へ移行してから設定時間LRNISS[sec]経過したかを判断するための通常時制御移行時間判別カウント値COUNTSTI (ダウンカウンタ)に、上記設定時間LRNISSに相当する設定値COUNTLRNISSをセットし(COUNTSTI ←COUNTLRNISS)、S1858 へ進み、クローズドループ補正I分ISCI を0[%]に設定してS1859 に進む。
【0270】
また、S1803 へ進むと上記通常時制御移行時間判別カウント値COUNTSTIの値を参照し、COUNTSTI ≠0の場合、通常時制御へ移行した後、設定時間LRNISS経過していないと判断してS1804 へ進み、カウント値COUNTSTI をカウントダウンし(COUNTSTI ←COUNTSTI −1)、S1805 へ進む。一方、COUNTSTI =0の場合、通常時制御へ移行してから設定時間経過したと判断し、S1805 へ進む。
【0271】
S1805 へ進むと冷却水温TW と設定温度LRNITW[℃]とを比較し、TW≧LRNITWの場合S1806 へ進み、TW <LRNITWの場合S1810 へ進む。S1806 へ進むと前回のルーチン実行時に読出した始動時/通常時制御判別フラグ(FLAGST)OLD の値を参照し、(FLAGST)OLD =1(前回ルーチン実行時、始動時制御)の場合、通常時制御移行初回と判断してクローズドループ補正I分を初期設定すべくS1807 へ進み、(FLAGST)OLD =0の場合S1810 へ進む。
【0272】
S1807 ではエアコンスイッチ89がONかを判断し、ONの場合S1808へ進み、OFFの場合S1809 へ進む。
【0273】
S1808 へ進むとバックアップRAM50aに格納されているエアコンON時のI分学習値ACONIを読出してクローズドループ補正I分ISCI をエアコンON時のI分学習値ACONIで初期設定し、また、S1809 へ進むと、クローズドループ補正I分ISCI をバックアップRAM50aに格納されているエアコンOFF時のI分学習値ACOFFIで初期設定し、それぞれS1810 へ進む。
【0274】
上記各I分学習値ACONI,ACOFFIは後述するクローズドループ補正I分学習値学習サブルーチンで更新され、バックアップRAM50aの所定アドレスに格納されているもので、スタータスイッチ61がON→OFF(始動時制御から通常時制御)へ移行した直後の1回だけ、前回のエンジン運転時にエアコン作動状態に応じて学習したI分学習値ACONIあるいはACOFFIによりクローズドループ補正I分ISCI を初期設定する。これによりクローズドループ補正I分ISCI が直ちに補償され、制御性が向上する。
【0275】
また、上記各学習値ACONI,ACOFFIをエアコンの作動状態別に設定しているので、エンジン負荷に応じたクローズドループ補正I分ISCIを初期設定することができ、エンジン回転をスムーズに立上げることができる。
【0276】
そして、S1810 へ進むと前述のクローズド/オープンループ制御判別サブルーチンで設定したクローズド/オープンループ制御判別フラグFLAGCLの値を参照し、FLAGCL=1(クローズドループ制御)の場合S1811 へ進み、FLAGCL=0(オープンループ制御)の場合、後述の補正量ΔIを更新することなくS1812 へ進む。
【0277】
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 へ進む。
【0278】
その後、S1815 へ進むとクローズドループ補正I分ISCI に始動後補正ISCSDを加算した値で上記クローズドループ補正I分ISCI を更新し(ISCI ←ISCI +ISCSD)、S1816 へ進み上記始動後補正ISCSDを上記クローズドループ補正I分に移行させた分、この始動後補正ISCSDをクリアし(ISCSD←0)、S1817 へ進む。
【0279】
図39の(a),(b)に示すようにオープンループ制御からクローズドループ制御へ移行した際、始動後補正ISCSD(ISCAS)のクローズドループ補正I分ISCI への移行を行わないと、このクローズドループ補正I分ISCIが収束するまでの間、デューティ比ISCONに段差が生じエンジン回転数NE が変動してしまう。この対策として後述する補正量ΔIを大きくすることも考えられるが、この補正量ΔIを極端に大きくすると収束性が悪化しエンジン回転数NEにハンチングが生じる。
【0280】
これに対し、図39の(c),(d)に示すように所定条件成立時(TW ≧TWAS、且つ、VSP<VSAS)、オープンループ制御からクローズドループ制御に移行した際、始動後補正ISCSD(ISCAS)がISCSD≠0のとき、始動後補正ISCSD(ISCAS)をクローズドループ補正I分ISCI に移行させているので、増量分をクローズドループ補正I分ISCI で補うようにしており、オープンループ制御からクローズドループ制御へのつながりが良くなり、このときのエンジン回転数NE の変動が防止される。
【0281】
その後、上記S1811,S1813,S1814 あるいは、S1816 からS1817 へ進むとアイドル目標回転数NSET とエンジン回転数NE との差回転ΔNを求め(ΔN←NSET−NE)、S1818 へ進みエアコンスイッチ89がONかを判断し、ONの場合S1819 へ進み、OFFの場合S1820 へ進む。
【0282】
S1819 へ進むと上記差回転ΔNと設定値NIH3(NIH3<0)とを比較し、ΔN≦NIH3の場合S1826 へ進み、補正量ΔIを設定値TIPTAH3(TIPTAH3<0)に設定し(ΔI←TIPTAH3)、S1845 へ進む。
【0283】
また、上記S1819SでΔ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 へ進む。
【0284】
また、上記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 へ進む。
【0285】
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 へ進む。
【0286】
図40に補正量ΔIと差回転ΔNとの関係を示す。図からも分かるように差回転ΔNが小さければ補正量ΔIも小さく設定される。これによりアイドル目標回転数NSET に対するエンジン回転数NE の収束性がよくなる。
【0287】
一方、上記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 へ進む。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分ISCI をこのクローズドループ補正I分ISCI に上記S1826 〜S1832 ,S1838 〜S1844 のいずれかで設定した補正量ΔIを加算した値で更新し(ISCI ←ISCI +ΔI)、S1846 へ進む。
【0293】
図41にアイドル目標回転数NSET に対するエンジン回転数NE の変動と、補正量ΔIおよびクローズドループ補正I分ISCI との関係をタイムチャートによって示す。
【0294】
[経過時間t0 〜t1]
アイドル目標回転数NSET に対しエンジン回転数NE が設定値NIH3以上であるため(ΔN≦NIH3)、エンジン回転数NEを下げるべく補正量ΔIを最小の設定値TIPTAH3で設定する(S1826)。
【0295】
その結果、クローズドループ補正I分ISCI が上記設定値TIPTAH3だけ低い値になり、その分、ISCバルブ13に対するデューティ比ISCONが低下してISCバルブ13の開度が減少し、エンジン回転数NE が低下する。
【0296】
[経過時間t1 〜t2]
次いで、差回転ΔNが設定値NIH3とNIH2との間に収まると、補正量ΔIが設定値TIPTAH2で設定され(S1827)、クローズドループ補正I分ISCI が設定値TIPTAH2分だけ更に低くなる。
【0297】
[経過時間t2 〜t3]
その後、差回転ΔNが設定値NIH2とNIH1との間に収まると、補正量ΔIが設定値TIPTAH1で設定され(S1828)、クローズドループ補正I分ISCI が設定値TIPTAH1分だけ低くなり、エンジン回転数NE が低下する。
【0298】
そして、差回転ΔNが設定値NIH1と0との間に収まると補正量ΔIが設定値TIPTAH(0[%])で設定され(S1829)、したがって、クローズドループ補正I分ISCI は変化しない。
【0299】
その後、差回転ΔNが設定値0とNIL1との間に収まると補正量ΔIが設定値TIPTAL(TIPTAH≦TIPTAL)で設定される(S1830)。
【0300】
[経過時間t3 〜t4]
次いで、差回転ΔNが設定値NIL1とNIL2との間に収まると補正量ΔIが設定値TIPTAL1で設定され(S1831)、クローズドループ補正I分ISCI が上記設定値TIPTAL1分だけ高くなる。
【0301】
[経過時間t4 〜t5]
その後、エンジン回転数NE がアイドル目標回転数NSET に対して設定値NIL2より低くなると(ΔN>NIL2)、補正量ΔIが設定値TIPTAL2で設定され(S1832)、クローズドループ補正I分ISCI が上記設定値TIPTAL2だけ高くなる。
【0302】
[経過時間t5 〜t6]
また、差回転ΔNが設定値NIL2とNIL1との間に収まると補正量ΔIが設定値TIPTAL1で設定され(S1831)、クローズドループ補正I分ISCI
が設定値TIPTAL1だけ高くなる。
【0303】
そして、差回転ΔNが設定値NIL1とNIH1との間に収まっている間は設定値TIPTALとTIPTAHとが0[%]であるためクローズドループ補正I分ISCI は変化しない。
【0304】
[経過時間t6 以後]
一方、差回転ΔNが設定値NIH1とNIH2との間に収まると補正量ΔIが設定値TIPTAH1で設定され、その後、差回転ΔNが設定値NIH1とNIL1との間に収束し、補正量ΔIが設定値TIPTAL,TIPTAH(いずれも0[%])に設定されるため、クローズドループ補正I分ISCI は一定となる。
【0305】
上記S1845 でクローズドループ補正I分ISCI を設定した後、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分ISCI と下限値IMINBLとを比較し、ISCI ≦IMINBLの場合S1853 へ進み、上記クローズドループ補正I分ISCI を上記下限値IMINBLで設定してS1859 へ進む。
【0309】
一方、S1849 でISCI >IMINBLと判断されるとS1851 へ進み、上記クローズドループ補正I分ISCI と上限値IMAXBLとを比較し、ISCI ≧IMAXBLの場合、S1854 へ進み、上記クローズドループ補正I分ISCI を上記上限値IMAXBLで設定しS1859 へ進む。また、ISCI <IMAXBLの場合、上記クローズドループ補正I分ISCI が許容範囲(IMAXBL>ISCI >IMINBL)に収まっていると判断し、そのままS1859 へ進む。
【0310】
また、S1847 ,あるいは、S1848 からS1850 へ進むと、上記クローズドループ補正I分ISCI と、前述のISCバルブ制御メインルーチンで設定したデューティ制限下限値IMINCLから前述の基本特性値設定サブルーチンで設定した基本特性値ISCTWを減算した値(下限値)とを比較し、ISCI ≦(IMINCL−ISCTW)の場合S1855 へ進み、上記クローズドループ補正I分ISCI を上記下限値(IMINCL−ISCTW)で設定し(ISCI ←IMINCL−ISCTW)、S1859 へ進む。
【0311】
また、S1850 でISCI >(IMINCL−ISCTW)の場合にはS1852へ進み、クローズドループ補正I分ISCI とISCバルブ制御メインルーチンで設定したデューティ制限上限値IMAXCL から基本特性値ISCTWを減算した値(上限値)とを比較し、ISCI ≧(IMAXCL −ISCTW)の場合にはS1856 へ進み、上記クローズドループ補正I分ISCI を上記上限値(IMAXCL −ISCTW)で設定し(ISCI ←IMAXCL −ISCTW)、S1859 へ進む。S1852 でISCI <(IMAXCL −ISCTW)の場合には、上記クローズドループ補正I分ISCI が許容範囲((IMINCL −ISCTW)<ISCI <(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≦ISCI ≦IMAXBLとする。
【0314】
暖機再始動において通常時制御に移行したとき、クローズドループ補正I分ISCI の初期設定の際に(S1808 、あるいはS1809)、クローズドループ補正I分ISCI が小さな値(負の値を含む)の学習値ACONI(エアコンスイッチ89がON時)、あるいは、学習値ACOFFI(エアコンスイッチ89がOFF時)で更新されるとエンジン回転数NE が低下してしまい、著しい場合はエンストしてしまう。このため、上限値、下限値をそれぞれ設定値IMINBL,IMAXBLとして、クローズドループ補正I分ISCI の上限値、下限値をシフトアップさせることで再始動性を改善させている(図41(c)参照)。
【0315】
一方、上記S1810 でFLAGCL=0(オープンループ制御)と判断されてS1812 へ進むと冷却水温TW と、オープンループ制御中の冷却水温TW が低水温かを判断する設定値TWCL [℃]とを比較し、TW ≦TWCL の場合S1857 へ進み、TW >TWCL の場合既述したS1847 へ進む。
【0316】
S1857 へ進むとクローズドループ補正I分ISCI の値を参照し、ISCI <0の場合S1858 へ進み、上記クローズドループ補正I分ISCI をクリアした後(ISCI ←0)、S1859 へ進む。また、ISCI ≧0の場合上記S1847へ進む。
【0317】
このように、オープンループ制御中(FLAGCL=0)の冷却水温TWが低水温時(TW ≦TWCL)で、かつ、クローズドループ補正I分ISCI が負側にあるとき(ISCI <0)には、このクローズドループ補正I分ISCI をクリアする(ISCI ←0)。すなわち、後述する学習値ACONIあるいはACOFFIにより設定したクローズドループ補正I分ISCI が負側のときにはデューティ比ISCONが小さくなり、ISCバルブ13の開度が減少してエンジン回転数NE が低下する方向に作用し、これを防止するため、スタータスイッチ61がONからOFF(始動時制御→通常時制御)へ移行した直後に学習値ACONIあるいはACOFFIにより設定されるクローズドループ補正I分ISCI の下限値を0としている。
【0318】
そして、S1853 〜S1856 ,あるいは、S1858 のいずれかからS1859 へ進むと、今回の始動時/通常時制御判別フラグFLAGSTでRAM50の所定アドレスに格納されている次回のルーチンで使用する前回の始動時/通常時制御判別フラグ(FLAGST)OLD を更新し((FLAGST)OLD ←FLAGST)、ルーチンを抜ける。
【0319】
(クローズドループ補正I分学習サブルーチン)
図26はクローズドループ補正I分更新手順において実行(S1846 参照)されるクローズドループ補正I分学習サブルーチンである。
【0320】
まず、S1901 〜S1908 で学習条件が成立しているかを判断する。すなわち、S1901 では、冷却水温TW と暖機完了判定値LRNITW[℃]とを比較し、TW ≧LRNITW (エンジン暖機完了状態)の場合S1902 へ進み、TW <LRNITW (エンジン冷態状態)の場合S1913 へ進む。
【0321】
S1902 へ進むとパワステ補正値ISCPSの値を参照し、ISCPS=0(パワーステアリング転舵角小)の場合S1903 へ進み、ISCPS≠0の場合S1913へ進む。
【0322】
S1903 へ進むと、エアコンスイッチ89がOFFかを判断し、OFFの場合S1904 へ進み、ONの場合S1905 へ進む。
【0323】
S1904 へ進むと、ラジファン補正値ISCRAS の値を参照し、ISCRA=0(ラジエータファン62がOFF)の場合S1905 へ進み、ISCRA≠0の場合S1913 へ進む。
【0324】
そして、S1903 あるいはS1904 からS1905 へ進むと、加減速補正DSHPTの値を参照し、DSHPT=0の場合S1906 へ進み、DSHPT≠0の場合S1913 へ進む。
【0325】
S1906 へ進むとダッシュポット補正値DHENBの値を参照し、DHENB=0の場合、すなわち、DSHPT=0、かつ、DHENB=0でアイドル状態と判断される場合には、S1907 へ進み、DHENB≠0の場合S1913 へ進む。
【0326】
S1907 へ進むと、クローズドループ補正I分ISCI の補正量ΔIを参照し、ΔI=0(エンジン回転数NE がアイドル目標回転数NSET の許容範囲内に収束している状態)の場合S1908 へ進み、ΔI≠0の場合S1913 へ進む。
【0327】
S1908 へ進むと、学習可能な状態が所定時間以上継続しているかどうかを判別すべく、所定時間に相当する設定値LRISCTと学習条件成立判別カウント値COUNTISCIとを比較し、COUNTISCI≧LRISCTの場合、学習条件成立と判断してS1909 へ進む。また、COUNTISCI<LRISCTの場合、S1910 へ進みカウント値COUNTISCIをカウントアップし(COUNTISCI←COUNTISCI+1)、ルーチンを抜ける。
【0328】
一方、S1909 へ進むと、エアコンスイッチ89がONかを判断し、ONの場合S1911 へ進みバックアップRAM50aの所定アドレスに格納されているエアコンON時のI分学習値ACONIを現時点におけるクローズドループ補正I分ISCI の値で更新し(ACONI←ISCI)、S1913 へ進む。OFFの場合S1912 へ進み、バックアップRAM50aの所定アドレスに格納されているエアコンOFF時のI分学習値ACOFFIを現時点におけるクローズドループ補正I分ISCI の値で更新し(ACOFFI←ISCI)、S1913 へ進む。
【0329】
そして、S1901,S1902,S1904 〜S1907 ,S1911 、あるいは、S1912 のいずれかからS1913 へ進むと上記カウント値COUNTISCIをクリアし(COUNTISCI←0)、ルーチンを抜ける。
【0330】
ところで、図42(a)に破線で示すように、クローズドループ補正I分ISCI を設定する際にI分学習値ACONIあるいはACOFFIを使用しないと、始動時制御からオープンループ制御を介してクローズドループ制御へ移行するまでの間に差分が生じる。その結果、図42(b)に破線で示すように、初爆はするが完爆へはなかなか移行せず、始動時制御からオープンループ制御へ移行するときにエンジン回転数NE の立上がりにもたつきが生じる。
【0331】
一方、図42(a)に実線で示すようにクローズドループ補正I分にI分学習値ACONIあるいはACOFFIを加味することで始動時制御からクローズドループ制御へ移行するまでの間の差分が改善され図42(b)に実線で示すように初爆から完爆へ直ちに移行し、エンジン回転数NE の立上がりがスムーズになり始動性が向上する。
【0332】
【発明の効果】
以上説明したように、請求項1記載の発明によれば、パワーステアリング転舵スイッチがオンされた時、少なくともエンジン温度に基づいて設定された基本特性値をパワステ補正値により補正してISCバルブの開度を設定し、吸入空気量を増量するに際し、アイドル状態およびエアコンスイッチの状態を判断する。そして、パワーステアリング転舵スイッチがオンでアイドル状態のときパワステ補正値を設定するので、車両走行等の非アイドル時には、エンジンにかかる全負荷に対してパワーステアリングポンプ駆動によるエンジン負荷は僅少となり、パワーステアリングポンプ駆動に伴うエンジン負荷増加の影響を無視でき、このとき、パワステ補正値によってISCバルブ開度設定値を増加する不要な補正を解消することができ、制御性を向上することができる。
そして、パワーステアリング転舵スイッチがオンでアイドル状態のとき、パワステ補正値を、エアコンスイッチがオンの場合はエアコンスイッチがオフの場合よりも小さい値に設定し、エアコンスイッチがオフの場合はエアコンスイッチがオンの場合よりも大きい値に設定するので、エアコンスイッチがオンし、エアコンコンプレッサ駆動負荷により、その分パワーステアリングポンプの負荷が相対的に小さくなる場合に、エンジン回転数が必要以上に高くなることがなく、エアコンスイッチのオン/オフに拘らず常に適正なパワステ補正を行うことができ、フィーリングを向上することができる。
そして、パワーステアリング転舵スイッチがオフ、或いは非アイドル状態になったとき、パワステ補正値を、該パワステ補正値による補正無しに対応するゼロになるまで演算周期毎に設定値づつ減少させるので、パワーステアリング転舵スイッチがオンからオフに移行した直後は、パワーステアリングポンプ駆動負荷が未だ存在しており駆動負荷が漸次的に減少するが、これに対応してパワステ補正値によって漸次的に吸入空気量を減少することができる。従って、パワーステアリング転舵角が大から小に切換わった直後のエンジン負荷変化に一致して、吸入空気量を的確に減少させることが可能となり、エンジン回転数の変動を防止し、且つ、エンジン回転数の収束性を向上することができ、良好なフィーリングを得ることができる。
また、非アイドル状態への移行に伴い、パワステ補正を解除するに際して、このときにもパワステ補正値を、該パワステ補正値による補正無しに対応するゼロになるまで演算周期毎に設定値づつ減少させるので、ISCバルブに対する開度設定量のつながりがスムーズになり、制御性を向上することができる。
【図面の簡単な説明】
【図1】ISCバルブ制御手順を示すフローチャート(その1)。
【図2】ISCバルブ制御手順を示すフローチャート(その2)。
【図3】補正値設定手順を示すフローチャート。
【図4】基本特性値設定手順を示すフローチャート。
【図5】アイドル目標回転数設定手順を示すフローチャート。
【図6】クローズド/オープンループ制御判別手順を示すフローチャート。
【図7】エアコン補正値設定手順を示すフローチャート(その1)。
【図8】エアコン補正値設定手順を示すフローチャート(その2)。
【図9】エアコンスイッチOFF→ON時のエアコン補正学習手順を示すフローチャート。
【図10】エアコンスイッチON→OFF時のエアコン補正学習手順を示すフローチャート。
【図11】AT車走行レンジ補正値設定手順を示すフローチャート(その1)。
【図12】AT車走行レンジ補正値設定手順を示すフローチャート(その2)。
【図13】加減速補正設定手順を示すフローチャート(その1)。
【図14】加減速補正設定手順を示すフローチャート(その2)。
【図15】ダッシュポット補正値設定手順を示すフローチャート。
【図16】ダッシュポット補正値更新手順を示すフローチャート。
【図17】ラジファン補正設定手順を示すフローチャート。
【図18】パワステ補正値設定手順を示すフローチャート(その1)。
【図19】パワステ補正値設定手順を示すフローチャート(その2)。
【図20】エアコンクラッチ補正値設定手順を示すフローチャート。
【図21】始動後補正初期値設定手順を示すフローチャート。
【図22】始動後補正設定手順を示すフローチャート。
【図23】クローズドループ補正I分更新手順を示すフローチャート(その1)。
【図24】クローズドループ補正I分更新手順を示すフローチャート(その2)。
【図25】クローズドループ補正I分更新手順を示すフローチャート(その3)。
【図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バルブ
58 パワーステアリング転舵スイッチ
89 エアコンスイッチ
DISCPS 設定値
ISCON 開度設定値(デューティ比)
ISCTW 基本特性値
ISCPS パワステ補正値
TW エンジン温度(冷却水温)
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an ISC valve control method for an engine that compensates for a load applied to the engine by driving a power steering pump when the power steering is steered by the opening of the ISC valve.
[0002]
[Prior art]
Generally, in idle operation, when the shift of the transmission is shifted to a so-called travel range such as D range, 1st, 2nd,..., The load on the engine compared to when shifted to the N, P range. Therefore, the opening of the ISC (idle speed control) valve installed in the air bypass passage that bypasses the throttle valve is set to a large value with the travel range correction value to increase the intake air flow rate to compensate for the engine load. The idling speed is stabilized.
[0003]
In addition, when the power steering is turned, if the turning angle is relatively large, the driving force of the power steering pump is greatly applied as an engine load. Therefore, the opening of the ISC valve is set to a large value based on the power steering correction value as described above. To compensate for the load on the engine.
[0004]
[Problems to be solved by the invention]
However, the load applied to the engine is increased by the travel range correction value immediately after detecting that the transmission has been shifted to the travel range, as in, for example, the air conditioner increase correction disclosed in JP-A-55-98629. When the correction is made, the engine rotational speed temporarily increases immediately after the increase correction due to the transmission delay of the driving force of the engine, and the feeling deteriorates.
[0005]
Further, if the travel range correction value is canceled immediately when the shift of the transmission is switched from the travel range to the N, P range, the engine load at this time decreases with a slight delay time, so the engine speed is Temporarily lowers and feels worse.
[0006]
On the other hand, when comparing the load of the air conditioner compressor with the load of the power steering pump or the total amount of various loads applied to the engine, the load of the air conditioner compressor is relatively small. Therefore, the power steering pump is compensated to compensate for the load of the power steering pump. Even if the correction is executed, the load other than the power steering pump applied to the engine is relatively large, so that a great effect cannot be obtained.
[0007]
Furthermore, if the power steering correction value is immediately canceled when the turning angle is switched from large to small, the power steering pump drive load decreases with a delay time at this time. Getting worse.
[0008]
The present invention has been made in view of the above circumstances, So The purpose of the engine is to perform an appropriate power steering correction regardless of whether the air conditioner switch is ON or OFF, and the engine has a good feeling even after the turning angle is switched from large to small. An ISC valve control method is provided.
[0010]
[Means for Solving the Problems]
Up Note In order to achieve the objective, the invention according to claim 1, the basic characteristic value set based on at least the engine temperature is corrected by the power steering correction value when the power steering turning switch is turned on, and the throttle valve is In an engine ISC valve control method for setting an opening of an ISC valve interposed in an air bypass passage to be bypassed and increasing an intake air amount, an idle state and an air conditioner switch state are determined, and the power steering steering switch The power steering correction value is set when the power switch is on and in an idle state, and the power steering correction value is set to a smaller value when the air conditioner switch is on than when the air conditioner switch is off. If the air conditioner switch is on, set it to a larger value and When tearing the steering switch is turned off, or the non-idle state, and decreases the setting value by one every calculation cycle until the power steering correction value to zero.
[0012]
When the power steering steering switch is turned on, the basic characteristic value set based on at least the engine temperature is corrected by the power steering correction value to set the opening of the ISC valve, and the intake air When increasing the amount, the idle state and the state of the air conditioner switch are determined. A power steering correction value is set when the power steering steering switch is on and in an idle state, and the power steering correction value is set to a smaller value when the air conditioner switch is on than when the air conditioner switch is off. When the switch is off, a larger value is set than when the air conditioner switch is on. When the power steering steering switch is turned off or in a non-idle state, the power steering correction value is decreased by a set value for each calculation cycle until the power steering correction value becomes zero corresponding to no correction by the power steering correction value.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment 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, FIG. 4 is a flowchart showing a basic characteristic value setting procedure, and FIG. FIG. 6 is a flowchart showing a closed / open loop control determination procedure, FIGS. 7 and 8 are flowcharts showing an air conditioner correction value setting procedure, and FIG. 9 is an air conditioner when the air conditioner switch is turned from OFF to ON. 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. FIG. 15 shows a dashpot correction value setting procedure. 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 correction value. 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.
[0015]
27 is a schematic diagram of the engine control system, FIG. 28 is a block diagram of the control device, FIG. 29 is a time chart showing the relationship among the air conditioner switch, the air conditioner correction value, and the engine speed, and FIG. FIG. 31 is a time chart showing the relationship between the P 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. 33 is a time chart showing the relationship between the engine 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 rotation speed. FIG. 35 is a graph showing the relationship among the power steering control switch, power steering correction value, and engine speed. 36 is a time chart showing the relationship between the capacity of the air conditioner switch, the air conditioner clutch relay, the capacity of the air conditioner compressor, the air conditioner clutch correction value, and the engine speed, FIG. 37 is a time chart showing the change in the correction after starting, and FIG. 38 is the duty ratio. 39 is a time chart showing the transition of the post-startup correction value to the closed loop correction I, and FIG. 40 is an explanatory diagram showing the relationship between the correction amount of the closed loop correction I and the 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, and FIG. 42 is a time chart showing how the learning value for the closed loop correction I is used.
[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]
A cooling water temperature sensor 21 is exposed to a cooling water passage (not shown) formed in the cylinder block 2, and a right bank knock sensor 22a and a left bank knock sensor are provided in each bank of the cylinder block 2, respectively. 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, 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 has a power steering steering switch 58 for detecting the steering state, a neutral switch 59 for detecting whether the selection lever of the automatic transmission is set to neutral, and a parking switch. A parking switch 60 for detecting whether or not the vehicle has been started and a starter switch 61 for detecting the start 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 connection / disconnection of the air conditioner 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]
A variable displacement control valve (not shown) provided in the variable displacement air conditioner compressor 64 is connected to the output port of the I / O interface 85 to output a displacement (DUTY) signal and to the main computer 41. A signal indicating whether the air conditioner switch 89 is turned on is output.
[0044]
[Operation]
Next, the control operation of the ISC valve 13 of the present 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, so 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 the starter switch 61 is ON to perform start determination. When it is ON, it is determined that the engine is starting, and the process proceeds to S104. When it is OFF, the engine is stopped or the engine is operating and the process proceeds to S105. .
[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). If so, proceed to S114.
[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 a set time TMASI [sec]. Then, after setting the set value COUNTST corresponding to the set time TMASI (COUNTST ← COUNTTMASI), the process proceeds to S108, and the start / normal time control discrimination used when setting the post-startup correction ISCSD and the closed loop correction Iminute ICI described later. After the flag 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 at the time of open loop control. When 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 ICON> 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. In addition, ISCON <IMAXOP
In the case of, proceed to S138 as it is.
[0056]
On the other hand, if it is determined at S105 that NE ≠ 0 (engine is running), the routine proceeds to S114, where the normal time control process is executed. Proceeding to S114 clears the start / normal control determination flag FLAGST (FLAGST ← 0, normal control), and executes a basic characteristic value setting subroutine (details will be described later) in S115 to set the basic characteristic value ISCTW Then, in S116, an idle target speed setting subroutine (details will be described later) is set to set the idle target speed NSET, and in S117, a closed / open loop control determination subroutine (details will be described later) is executed in a 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) to be described later is read, and in the main routine in AT car traveling range correction value ISCATDS set in the correction value setting routine in S119. Set the gear position correction value ISCAT to be used (ISCAT ← ISCATDS), set the acceleration / deceleration correction value ISCTR with the acceleration / deceleration correction DSHPT set in the correction value setting routine in S120 (ISCTR ← DSHPT), and correct after start in S121 The value ISCAS is set by the post-startup correction value 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. The main loop in the closed-loop correction I-minute ISCI set in the I-minute update procedure (interrupt execution every 10 msec) Setting the closed loop correction value ISCCL used in emissions (ISCCL ← ISCI).
[0058]
Then, the radio fan correction value ISCRA used in the main routine is set in the radio fan correction ISCRAS set in the correction value setting routine in S124 (ISCRA ← ISCRAS), and the power steering set in the correction value setting routine in S125. The correction value ISCPS is read, and the air conditioner clutch correction value ISCCLH set in the correction value setting routine is read in S126.
[0059]
Thereafter, 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 duty ratio ISCON is set as shown in the following equation by multiplying 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 by the atmospheric pressure correction coefficient KALT.
[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, the process proceeds to S129 when FLAGCL = 1 and closed loop control is selected, and is opened when 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]
When proceeding to S129, the duty ratio ISCON is compared with the lower limit value IMINCL during closed loop control. When 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 idling 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 cooling water temperature TW becomes higher.
[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). Advance upper limit air conditioner correction ID1 is cleared (ID1 ← 0).
[0064]
In S135, the upper limit basic value air conditioning 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 air conditioner correction value ID1.
[0065]
In S136, the duty ratio ISCON is compared with the upper limit value IMAXCL. If ICON ≧ 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 the above steps 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 is 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 performed, and an AT vehicle travel range is set. Set the correction value ISCATDS, execute the acceleration / deceleration correction setting subroutine (details will be described later) in S203 to set the acceleration / deceleration correction DSHPT, and execute the dashpot correction value update subroutine (details will be described later) in S204. The correction value DHENB is updated, and a radio fan correction setting subroutine (details will be described later) is set in S205 to set a radio fan correction ISCRAS, and a power steering correction value setting subroutine (details will be described in detail) is executed in S206 to set the power steering correction value ISCPS. In step S207, an air conditioner clutch correction value setting subroutine (details will be described later) is executed, and the air conditioner clutch correction value IS It exits the routine to set the CLH.
[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 to be discriminated between warming-up and running warm-up.
[0070]
First, in S301 to S303, it is determined whether the vehicle is completely stopped. In S301, it is determined whether the idle switch 12b is ON. If ON (throttle valves 11d, 11e are fully closed), the process proceeds to S302. If OFF (throttle valves 11d, 11e is 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 (stop state), the process proceeds to S304, and if VSP ≠ 0 (running state), the process proceeds to S305.
[0073]
Proceed to S304, set the neglected / running warm-up discrimination flag FLAGTIS (FLAGTIS ← 1, neglected warm-up), and refer to the neglected warm-up basic characteristic value table TISTWS with interpolation calculation based on the cooling water temperature TW in S306. After setting the characteristic value ISCTW, the routine is exited.
[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 intake air amount 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 feeling, the optimum basic characteristic value ISCTW is obtained from the experiment as a parameter using the cooling water temperature TW as a parameter and stored in the ROM 49.
[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). Is set with the interpolation calculation and the basic characteristic value ISCTW is set, and then 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, stored in a table in the ROM 49, and is set to a value lower than that of the standing warm-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 S401, the value of the neglected / running warm-up determination flag FLAGTIS is referred to, and if FLAGTIS = 1 (leaving warm-up), the process proceeds to S402, and if FLAGTIS = 0 (running warm-up), the process proceeds to S403.
[0079]
When the routine proceeds to S402, the target warm-up target rotation speed table TNSETS is referenced with interpolation calculation based on the cooling water temperature TW, the target warm-up target rotation speed NSETS is set, and stored in the RAM 50 at a predetermined address in S404. After the idle target speed NSET is set by the above-mentioned target warm-up target speed NSETS (NSET ← NSETS), the process proceeds to S406.
[0080]
The target warm-up time 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 above-mentioned 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. Is set to a value higher than the target rotation speed NSETR.
[0081]
On the other hand, if it is determined in S401 that the vehicle is warming up (FLAGTIS = 0) and the process proceeds to S403, the warming-up target temperature table TNSETR is referenced with interpolation calculation based on the coolant temperature TW, and the target when the vehicle is warming up. After setting the engine speed NSETR, 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 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 unwarmed warm-up.
[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 other than the N range). When the switch is OFF, the process proceeds to S407, and when 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). When the parking switch 60 is OFF, the select lever is shifted to the D range, 1st speed, 2nd 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, and if FLAGTIS = 1 (neglected warm-up), the process jumps to S411. .
[0086]
When the routine proceeds to S410, since the vehicle is running, the value obtained by adding the set value DNAT to the target speed NSETR set in S403 is stored at a predetermined address in the RAM 50 in order to shift the idle target speed NSET by the set value DNAT. The idle target speed NSET is set (NSET ← NSETR + DNAT), and the process proceeds to S411.
[0087]
When the operation proceeds to S411, it is determined whether the air conditioner switch 89 is ON. If ON, the operation proceeds to S412 and the preset target rotation speed lower limit value DARCON when the travel range air conditioner is ON is compared with the idle target rotation 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 travel 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 if 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 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 speed NSET is set at the target 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), exit the routine. If the air conditioner switch 89 is determined to be OFF in S409, or if NSET> NARCON is determined in S414, the routine is directly 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 elapsed time discriminating count value COUNTST after starting is counted down (COUNTST ← COUNTST-1), and after the engine is started, the set time has not elapsed and the engine speed is 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, and if it is OFF (throttle valves 11d and 11e are open), open loop control is performed. Jump to S527 to select.
[0092]
Further, when the process proceeds from S502 to S504, it is determined whether or not the neutral switch 59 is ON. If it is OFF, the process proceeds to S505, and it is determined whether the parking switch 60 is ON. If it is ON, the process proceeds to S509.
[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. Or, after the parking switch 60 is turned on, that is, the elapsed time discrimination count value COUNTAT (after the P, N range shift to determine whether the elapsed time after the P, N range shift has reached the set time ATC [sec] After setting the set value COUNTATC corresponding to the set time ATC to the down counter), 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. If VSP <VSPFBA, proceed to S508, and if VSP ≧ VSPFBA, In order to select the Nrupu control advances to S527. 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 discrimination engine speed RPMFB, and if NE <RPMFB, the process proceeds to S513. If NE.gtoreq.RPMBB, the process proceeds to S527 to select open loop control.
[0094]
Further, when it is determined that the range is N range or P range and proceeds from S504 or S505 to S509, the elapsed time determination count value COUNTAT after the transition to P, N range is referred to. When COUNTAT = 0, the travel range is changed to the P range. Alternatively, after shifting to the N range, it is determined that the set time ATC [sec] has elapsed, and the process proceeds to S510.
[0095]
On the other hand, if it is determined in S509 that COUNTAT ≠ 0 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]
Further, when COUNTAT = 0 is determined in S509 and the process proceeds to S510, the vehicle speed VSP detected by the vehicle speed sensor 56 is compared with the vehicle speed VSPOPA for determining the closed / open loop control at the time of stopping, and when VSP ≧ VSPOPA, S512 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, the process jumps to S527 to select the open loop control.
[0097]
If VSP <VSPOPA in S510 or 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. If NE ≧ NSET-DNACF, the process proceeds to S514. In S514, it is determined whether the air conditioner switch 89 is OFF. If the air conditioner switch 89 is ON, in S515, it is determined whether the elapsed time after the air conditioner ON → OFF has reached the set time AOFF [sec]. Set the set value COUNTAOFF corresponding to the set time AOFF to the elapsed time discrimination count value COUNTA (down counter) after the air conditioner ON → OFF (COUNTA ← COUNTAOFF). Jump to S527 to execute 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. It is determined that the set time AOFF [sec] has elapsed, and the process proceeds to S517. If COUNTA.noteq.0, the process proceeds to S518, where the elapsed time discrimination count value COUNTA after the air conditioner is turned ON is turned off (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 speed NE is subtracted from the idle target speed NSET to obtain a differential speed .DELTA.N. In S519, the differential speed .DELTA.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]
When the routine proceeds to S520, the differential rotation ΔN and the set value DNFB (DNFB ≧ NDPS) are compared. If ΔN ≦ DNFB, the routine proceeds to S521, and if ΔN> DNFB, it is determined that the closed loop control condition is satisfied, and the routine 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, and 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 steady state transition determination count value COUNTCL (down counter) for determining whether the state of acceleration / deceleration correction DSHPT = 0 or dashpot correction value DHENB = 0 has passed the set time CLSD [sec] A set value COUNTCLSD corresponding to the set 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, the steady state transition determination count value COUNTCL is counted down (COUNTCL ← COUNTCL-1), and 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]
Also, when S502, S503, S507, S508, S511, S512, S515, S518, S519, S523 or S526 to S527, the closed / open loop control discrimination flag FLAGCL is cleared (FLAGCL ← 0, open loop control 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 and parking switch 60 are ON and vehicle speed VSP <VSPOPA or (ii) Neutral switch 59 and parking switch 60 are ON and VSP ≧ VSPOPA [Km / h] However, the engine speed NE <(NSET + NCLOP) [rpm] or (iii) the neutral switch 59 or 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 <(NNSET−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 acceleration / deceleration correction DSHPT = 0 [%] and dashpot correction DHENB = 0 [%] continue 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) satisfy all <1> to <6> and acceleration / deceleration correction DSHPT ≠ 0 Even if [%] or dashpot correction DHENB ≠ 0 [%], differential rotation ΔN> DNFB [rpm] (air conditioner correction value setting subroutine) FIG. 7 and FIG. 8 are correction values executed by interruption every 51.2 msec. This is a subroutine for setting the air conditioner correction value ISCAC executed in the setting routine (see S201).
[0109]
First, in S601, it is determined whether the neutral switch 59 is ON. If it is OFF, the process proceeds to S602, and 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. When the parking switch 60 is ON, the P range is determined and the process proceeds to S603. When 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 discrimination 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 discrimination flag FLAGAT is set (FLAGAT ← 1, travel range). Proceed to
[0112]
In S605, it is determined whether the air conditioner switch 89 is ON. If the air conditioner switch 89 is ON, the process proceeds to S606. If it is OFF, the process proceeds to S607. 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 the air conditioner switch 89 is determined to be 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 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 end determination count value COUNTAC is counted down (COUNTAC ← COUNTAC-1), and then proceeding to S609 to compare the engine speed NE with the set upper limit value obtained by adding the set value DNAC to the idle target speed NSET. If NE.ltoreq.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 discrimination flag FLAGAT is referred to, and when FLAGAT = 1 (traveling 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), proceed 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. .
[0119]
When the process proceeds to S617, the air conditioner steady-state 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 the air conditioner learning correction value MACDTY read out from the predetermined address in the backup RAM 50a (set in the air conditioner correction learning routine described later) (ISCACS ← MACDTY), and the process proceeds 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 and it is determined 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, proceed to S622, compare the air conditioner correction value ISCAC with the set value ISCACD [%] (value close to 0%), proceed to S623 if ISCAC ≧ ISCACD, and if ISCAC <ISCACD, 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 discrimination flag FLAGAT is referred to. When FLAGAT = 1 (travel range), the process proceeds to S626, 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 discrimination 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), proceed 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 (however, DSAC1N> DSAC2N) (DSAC ← DSAC2N), the process proceeds to S630.
[0125]
When the process proceeds to any one of S626 to S629, 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 (ACCDTY or MACDTY) and the air conditioner transient correction value ISCACF (ACFFD or , ACFFN) (elapsed time t1 to t2), and during the set time AON [sec], the engine speed NE approaches the engine speed obtained by adding the set value DNAC to the idle target 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 due to the air conditioner compressor driving 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). Thus, 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 reduced 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 set value DSAC2D or DSAC2N every calculation cycle.
[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, if 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 near ISCAC = 0 becomes worse as shown 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 volume by reducing the air-conditioner switch, the engine speed drop due to the 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 falls below 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 ratio of the duty ratio ISCON set using the air conditioner correction value ISCAC is reduced. Idle target when the air conditioner is turned off by reducing the opening reduction rate of the ISC valve 13 Reduce the rate of decrease in engine rotational speed NE when approaching the rolling speed NSET to improve 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 current closed-loop correction I-minute ISCI 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, 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. When the process proceeds to S705, the value of the closed / open loop control determination flag FLAGCL is referred to. When FLAGCL = 1 (during closed loop control), the process proceeds to S706, and when FLAGCL = 0 (during open loop control), the process proceeds to S707.
[0138]
When proceeding to S706, the timer TIMERLRN is compared with the preset time TACLRN. When TIMERLRN ≧ 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 (TIMERLRN ← 0), and then the routine is exited.
[0140]
In S708, after resetting the timer TIMERLRN (TIMERLRN ← 0), 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]
Then, the process proceeds to S710, where the air conditioner 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.
[0142]
MACDTY ← MACDTY + [(LISC I−MISCI) × KACON] KACON: I-minute transition rate FIG. 10 is a routine for executing an interrupt when the air conditioner switch 89 is turned ON → OFF. First, in S801, the value of the closed / open loop control determination flag FLAGCL is set. 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 address of the RAM 50 is read. Is stored as the current feedback control LISCI (LISCI ← ISCI).
[0144]
In S804, the air conditioner 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 + [(LISC I−MISCI) × KACON] As described above, when the air conditioner is ON and the closed loop control is being performed, the same condition as that of the feedback control value MISCI at that time (during the closed loop control and the air conditioner switch 89 Is set to the air conditioning correction learning value MACDTY based on the difference from the feedback control value LISCI when the setting time TACLRN continues for the set time TACLRN, and the air conditioning correction value ISCAC for the P and N ranges is set in the air conditioning correction value setting subroutine described above. In this case, the aging deterioration of the ISC valve 13 is compensated by using the air conditioner correction learned value MACDTY as the air conditioner steady correction value ISCAC, and a predetermined idle up can always be performed 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 that is executed (see S202) in the correction value setting routine that is executed every 51.2 msec.
[0148]
First, referring to the value of the travel range discrimination flag FLAGAT set in the air conditioning correction value setting subroutine described above in S901, the process proceeds to S902 when FLAGAT = 1 (travel range), and when FLAGAT = 0 (P, N range) Proceed to S903.
[0149]
When the process proceeds to 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 and N ranges set in S913 to be described later to the travel range is referred to. 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.
[0150]
In S902, when it is determined that the travel range state (neutral switch 59 and parking switch 60 are both OFF) has continued for the 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, and the AT vehicle travel range correction value ISCATDS is updated with a value obtained by adding a small amount set value DLTAT1 (where DLTAT1 <DRGDTY) to the AT vehicle travel range correction value ISCATDS. ISCATDS ← ISCATDS + DLTAT 1), go to S908.
[0151]
Then, when proceeding from S905, S906, or S907 to S908, the set value COUNTISCAT2 corresponding to the delay time ISCAT2A [sec] when shifting from the travel range to the N, P range is set to the N, P range transition determination count value COUNTAT2 (down Set the counter (COUNTAT2 ← COUNTISCAT2) and exit the routine.
[0152]
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.
[0153]
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 ISCATDSDS is small. The AT vehicle travel range correction value ISCATDS is set by a value obtained by subtracting the amount set value DLTAT2 (ISCATDS ← ISCATDS-DLTAT2), and the process proceeds to S913. If ISCATDS ≦ 0, the process proceeds to S912, and the AT vehicle travel range correction value ISCATDSDS is set to 0 [%] (ISCATDS ← 0), and the process proceeds to S913.
[0154]
Then, when proceeding from S909, S911, or S912 to S913, the traveling 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 traveling range. After (COUNTAT1 ← COUNTISCAT1), exit the routine.
[0155]
A representative example of the AT vehicle travel range correction value setting will be described with reference to the time chart of FIG.
[0156]
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 amount of 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).
[0157]
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 rises and the feeling deteriorates.
[0158]
Further, if the AT vehicle traveling range is not corrected, the engine load is suddenly applied when shifting from the N and P ranges to the traveling range, and the engine speed decreases as shown by the one-dot chain line in FIG. It takes time for the engine speed to converge due to the loop correction I component ISCI.
[0159]
Accordingly, 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 the set value DRGDTY is reached, thereby the AT vehicle travel range correction value. By gradually increasing the duty ratio ISCON set by using ICATDS and gradually increasing the air amount by the ISC valve 13, the engine speed fluctuation is prevented and the feeling is improved.
[0160]
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 the delay time ISCAT2 [sec] has elapsed. Then, the AT vehicle travel range correction value ISCATDS is subtracted every calculation cycle until the small set value DLTAT2 [%] becomes 0 (ISCATDS ← ISCATDS−DLTAT2, elapsed time t4).
[0161]
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.
[0162]
Further, when the AT vehicle travel range is not corrected, when shifting from the travel range to the N and P ranges, the engine load decreases rapidly, so that the engine speed increases as shown by the two-dot chain line in FIG. Resulting in poor feeling.
[0163]
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.
[0164]
(Acceleration / deceleration correction setting subroutine)
13 and 14 are subroutines for setting acceleration / deceleration correction DSHPT executed (see S203) in a correction value setting routine executed by interruption every 51.2 msec.
[0165]
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.
[0166]
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.
[0167]
In S1004, the acceleration / deceleration correction DSHPT is determined 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 [%], proceed to S1006.
[0168]
Further, when proceeding 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. Then go to S1006.
[0169]
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.
[0170]
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.
[0171]
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).
[0172]
After that, when proceeding 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.
[0173]
When the process proceeds to S1008, the value of the travel range discrimination 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.
[0174]
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. Further, when proceeding to S1010, the reduction value DDASH [%] is set by the set value DDASHHD (where DDASHN> DDASHHD) (DDASH ← DDASHHD), and the routine proceeds to S1011.
[0175]
Note that the engine speed drop when the throttle opening is reduced is faster in the N and P ranges when there is no load than in the travel range, so 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.
[0176]
In 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).
[0177]
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), go to S1013.
[0178]
When proceeding to S1012, the offset value NDASH is set with the set value NDASHN [%] (NDASH ← NDASHN), and when proceeding to S1013, the offset value NDASH is set with the set value NDASHHD (where NDASHN> NDASHHD) [%] ( (NDASH ← NDASHD), and then the process proceeds to S1014.
[0179]
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.
[0180]
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 and 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, and the dashpot holding value RDASH is set with a preset value RDASHHD [%] (RDASH ← RDASHD), and then the process proceeds to S1019.
[0181]
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.
[0182]
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). Proceed to S1023.
[0183]
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.
[0184]
In S1024, the acceleration / deceleration correction DSHPT is updated with the value obtained by subtracting the first reduction value DDSH1 from the acceleration / deceleration correction DSHPT (DSHPT ← DSHPT−DDSH1), and the process advances to S1030.
[0185]
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 ), Then go to S1030. If DSHPT> 0, the process proceeds to S1026.
[0186]
Proceeding to S1026, the value of the travel range discrimination flag FLAGAT is referred to. If FLAGAT = 0 (N, P range), the process proceeds to S1027, and if FLAGAT = 1 (traveling range), the process proceeds to 1028.
[0187]
When the process proceeds to S1027, the second reduction value DDSH2 is set (DDSH2 ← DDSH2N) by the set value DDSH2N (where DDSH1N> DDSH2N) [%], and when the process proceeds to S1028, the set value DDSH2D (however, DDSH1D> DDSH2D) [ %], The second reduction value DDSH2 is set (DDSH2 ← DDSH2D), and the process proceeds to S1029.
[0188]
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.
[0189]
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.
[0190]
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 at a predetermined address in the RAM 50. The previous acceleration / deceleration correction (DSHPT) OLD is updated ((DSHPT) OLD ← DSHPT), and the routine is exited.
[0191]
A representative example of the acceleration / deceleration correction setting will be described with reference to the time chart of FIG.
[0192]
In an 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 gradually increases, the engine speed NE 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).
[0193]
Further, in the steady operation in which the throttle opening THV is substantially constant, the acceleration / deceleration correction DSHPT is constant (elapsed time t2 to t3 and t4 to t5).
[0194]
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. An air-fuel ratio overrich occurs due to a decrease in the amount of intake air that accompanies the sudden closing of 11d and 11e. However, when the throttle valves 11d and 11e transition to closing (elapsed time t5), an increase is made according to the throttle opening THV. The deceleration correction DSHPT is set, and the duty ratio ISCON is set large by the acceleration / deceleration correction DSHPT, so that 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) (elapsed time) 5 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. During this time, the ISC valve 13 secures the air amount. At the same time, a decrease in the intake pipe pressure is compensated, and over-rich of the air-fuel ratio is prevented. 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.
[0195]
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.
[0196]
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.
[0197]
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). 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 with the second reduction value DDSH2 of the value (after the elapsed time t8).
[0198]
As a result, after the idling switch 12b is turned on and until the engine speed NE reaches the idling target speed NSET, the decreasing rate of the duty ratio ISCON set using the acceleration / deceleration correction DSHPT is sequentially reduced, and the ISC valve 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 convergence of the engine speed NE to the idle target speed NSET is improved.
[0199]
(Dashpot correction value setting interrupt routine)
FIG. 15 is a dashpot correction value setting routine for executing an interrupt every set time, for example, every 100 msec.
[0200]
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. If OFF (throttle valves 11d, 11e are open), the process proceeds to S1104.
[0201]
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. The 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.
[0202]
When the process proceeds from S1101 or S1102 to S1104, the dashpot correction value DHENB is cleared (DHENB ← 0), and then the process proceeds to S1113.
[0203]
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 in the predetermined address of the RAM 50 is read. In S1105, the previous engine speed (NE) OLD is obtained. From the difference from the current engine speed NE, the engine speed decrease amount NDOWN in the set time (100 msec) is calculated (NDOWN ← (NE) OLD−NE).
[0204]
In S1106, the engine speed reduction amount NDOWN is compared with the set value DNES1, and if NDOWN <DNES1, the process proceeds to 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.
[0205]
If it is determined in S1106 that NDOWN ≧ DNES1 and the process proceeds to S1108, the engine speed reduction amount NDOWN is compared with the set value DNES2 (where DNES1 <DNES2), and if NDOWN <DNES2, the process proceeds to S1109 and the dashpot 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.
[0206]
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 (where DHNEB1 <DHNEB2). Set in [%] (DHENB ← DHNEB2) and go to S1113. If NDOWN ≧ DNES3, the process proceeds to S1112, and the dashpot correction value DHENB is set at the set value DHNEB3 (where DHNEB2 <DHNEB3) [%] (DHENB ← DHNEB3), and the process proceeds to S1113.
[0207]
When the routine proceeds from S1104, S1109, S1111, 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.
[0208]
Then, when proceeding from S1107 or S1113 to S1114, the previous engine speed (NE) OLD stored in the predetermined address of the RAM 50 is updated with the current engine speed NE ((NE) OLD ← NE), and the routine is executed. Exit.
[0209]
FIG. 16 is a dashpot correction value updating subroutine executed (see S204) in a correction value setting routine executed by interruption every 51.2 msec.
[0210]
First, in S1201, the value of the engine speed reduction amount determination flag FLAGDH is referred to. When FLAGDH = 1 (small amount of reduction), the process proceeds to S1202, and when FLAGDH = 0 (high amount of reduction), the routine is exited.
[0211]
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), and then the routine is executed. Exit.
[0212]
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 dashpot correction value DHENB by the set value DDFEB (minute value). ) And exit the routine.
[0213]
FIG. 32 shows a time chart of a typical example of dashpot correction value setting.
[0214]
During sudden deceleration due to sudden closing of the throttle valves 11d and 11e, the idle switch 12b shifts from the OFF state to the ON state (throttle valves 11d and 11e are fully closed), and the engine speed NE decreases sharply. Dashpot correction 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 ≦ NDOWN) Set the value DHENB.
[0215]
If the dashpot correction is not performed when the engine speed NE has dropped 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 amount of decrease NDOWN (= (NE) OLD-NE) increases, the duty ratio ISCON for the ISC valve 13 is increased and the opening of the ISC valve 13 is increased to increase the air. Increase the amount to prevent the engine speed NE from dropping.
[0216]
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).
[0217]
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).
[0218]
Even if the engine speed reduction amount NDOWN is relatively small, if the dashpot correction value DHENB is left at the set value DHNEB3, rotation fluctuation occurs as shown by the one-dot chain line in FIG. Deteriorate.
[0219]
Then, in the interval where NDOWN <DNES1 (after the elapsed time t4), the dashpot correction value DHENB is subtracted by a minute set value DDFEB every calculation period (51.2 msec) until the engine speed reduction amount NDOWN is NDOWN <DNES1. .
[0220]
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 is suddenly decreased, so that the engine speed NE falls as shown by the broken line in FIG. Convergence will deteriorate. Therefore, the convergence to the idling engine speed is improved by decreasing the dashpot correction value DHENB as the engine speed NE decreases.
[0221]
(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 every 51.2 msec (see S205).
[0222]
First, in S1301, it is determined whether the radiator fan relay 63 for controlling 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.
[0223]
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.
[0224]
The setting of the above-mentioned radio fan correction ISCRAS is shown in FIG. 33 as a time chart.
[0225]
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) also 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 decreasing. To do. (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.
[0226]
First, in S1401, it is determined whether or not the power steering turning switch (hereinafter referred to as “power steering turning switch”) 58 is ON. If ON (turning angle is large), the process proceeds to S1402, and OFF (turning angle is small). If so, proceed to S1409.
[0227]
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.
[0228]
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.
[0229]
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. In S1403, when the warm-up is not completed (TW <TWPS), the basic characteristic value ISCTW is set to be large, so the engine load for driving the power steering oil pump is relatively small, and compensation by the power steering correction value ISCPS is unnecessary. become.
[0230]
When the routine proceeds to S1404, the value of the idle speed determination flag FLAGPS set to 1 is referred to in the case of the idle state at the time of the previous routine execution. When FLAGPS = 1 (previous idle state), the routine proceeds to S1405 and FLAGPS = 0 ( In the case of the last idle release state), the process proceeds to S1406.
[0231]
When the routine proceeds to S1405, the idle determination speed ISPPSN is set with the set value ISPSNH [rpm] (ISPSN ← ISPSNH), and the routine proceeds to S1407. Further, if the process proceeds to S1406, the idle determination speed ISPPSN is set with the set value ISPSNL (where ISPSNL <ISPSNH) [rpm] (ISPSN ← ISPSNL), and the process proceeds to 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 idling discriminating speed ISPPSN, control hunting for idling state discrimination in S1407 is performed. I try to prevent it.
[0232]
When the routine proceeds to S1407, the engine speed NE is compared with the idling discriminating speed ISPPSN. When NE> ISPSN, it is judged that the idling is released, and the routine proceeds to S1408, where the idling rpm discriminating 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 proceeds to S1410.
[0233]
In S1410, it is determined whether the air conditioner switch 89 is OFF. If OFF, the process proceeds to S1411. If ON, the process proceeds to S1412.
[0234]
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.
[0235]
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 one-dot chain 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. . In other words, when the air conditioner is on, Relatively low engine load due to power steering Na Therefore, the power steering correction value ISCPS is set smaller than when the air conditioner is OFF.
[0236]
Further, the power steering correction value ISCPS set in S1411 or S1412 is such that when the duty ratio ISCON is large (small), the load on the engine 1 is large (small) and the opening of the ISC valve 13 is large (small) to reduce the amount of air. Increase (decrease) to prevent a decrease (increase) in the engine speed NE, 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. Large) is set.
[0237]
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.
[0238]
When the process proceeds from 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 [%]. (ISCPS ← 0), exit the routine. If ISCPS> 0, the process proceeds to S1415 to subtract the set value DISCPS from the power steering correction value ISCPS to update the power steering correction value ISCPS (ISCPS ← ISCPS−DISCPS), and then exit the routine.
[0239]
FIG. 35 shows a typical time chart for setting the power steering correction value.
[0240]
When the power steering steer switch 58 is turned on during idling after the completion of warm-up 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). Set (elapsed time t1).
[0241]
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 of the ISC valve 13 is increased to increase the air amount. This prevents the engine speed from dropping.
[0242]
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 set. Although there is a power steering oil pump drive load that rapidly decreases and decreases 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 0, the opening amount of the ISC valve 13 is gradually decreased by subtracting the power steering correction value ISCPS by the set value DISCPS every calculation cycle (51.2 msec). This compensates for the fluctuations in the engine speed NE as shown by the solid line in FIG.
[0243]
(Air conditioner clutch correction value setting subroutine)
FIG. 20 is a subroutine for setting the air conditioner clutch correction value ISCCLH, which is executed in the correction value setting routine executed by interruption every 51.2 msec (see S207). First, in S1501, it is determined whether the air conditioner switch 89 is ON. If ON, the process proceeds to S1502, and if OFF, the process proceeds to S1503.
[0244]
In S1502, an air conditioner ON → OFF elapsed time discriminating count value COUNTCLH (down counter) for determining whether or not the air conditioner switch 89 has been turned ON → OFF has elapsed corresponds to the set time TCLH. Set with the set value TACCLH (COUNTCLH ← TACCLH), and proceed to S1505.
[0245]
Further, when proceeding to S1503, the value of the elapsed time discrimination count value COUNTCLH after the air conditioner ON → OFF is referred to. When COUNTCLH ≠ 0, the process proceeds to S1504, countdown (COUNTCLH ← COUNTCLH-1), and then proceeds to S1505.
[0246]
When the routine proceeds from S1502 or S1504 to S1505, the air conditioner clutch correction value ISCCLH is set at the set value DISCLH [%] (ISCCCLH ← DISCLH), and the routine is exited.
[0247]
On the other hand, when COUNTCLH = 0 in S1503 and the air conditioner switch 89 is turned ON → OFF, it is determined that the set time TCLH [sec] has elapsed, and when the process proceeds to S1506, the air conditioner clutch correction value ISCCLH is set to 0 [%]. (ISCC LH ← 0), exit the routine.
[0248]
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. .
[0249]
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 turns on the air conditioner clutch relay 65 after the set delay time ACENT (for example, 0.3 sec) has elapsed, connects the air conditioner clutch 64a of the variable capacity air conditioner compressor 64, and the compressor 64 is driven. The 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 compressor capacity (DUTY) signal to the variable capacity air conditioner compressor 64 is gradually reduced to the minimum capacity (MIN). After the air conditioner switch 89 is turned off, the air conditioner compressor 64 is turned off. The air-conditioner clutch relay 65 is turned off after a sufficient time period ACCLTM (for example, 8 seconds) has passed since it can be considered that the capacity has reached the minimum capacity (MIN).
[0250]
Therefore, simultaneously with turning on the air conditioner 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. The engine rotational speed NE is increased by increasing the air opening amount and the air amount is increased to prevent the engine rotational speed from decreasing due to the increase in the engine load driven by the compressor 64 when the air conditioner clutch relay 65 is turned on.
[0251]
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 decreased, and the air conditioner correction value ISCAC is gradually decreased (see FIGS. 7, 8 and 29). As a result, the duty ratio ISCON with respect to the ISC valve 13 decreases, the opening 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.
[0252]
From the time when the capacity of the variable capacity air conditioner compressor 64 is fully reduced (elapsed time t3) until the air conditioner clutch 64a is disengaged (until the air conditioner clutch relay 65 is turned off), the clutch friction remains. For this reason, since the friction due to the clutch suddenly disappears at the moment when the air conditioner clutch 64a of the variable capacity air conditioner compressor 64 is disengaged, a rotational fluctuation due to a temporary increase in the rotational speed occurs as shown by the broken line in FIG. Will get worse.
[0253]
The air conditioner clutch correction is for compensating 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 elapses 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 air conditioner clutch 64a of the variable 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 for the ISC valve 13 is increased during this time, and when the air conditioner clutch 64a is disengaged, the air conditioner clutch correction ISCCLH is set to 0. Amount that the engine load is eliminated ® emission is reduced, reducing 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 64a is disconnected is eliminated, and the feeling is improved.
[0254]
(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.
[0255]
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 is started immediately after the start-up control when NE ≠ 0, first, the post-start correction initial value table TICSSD (a larger value is stored as the cooling water temperature TW is lower) is interpolated based on the cooling water temperature TW in S1601. Set the initial value of post-startup correction ISCSD with reference to calculation. Next, in S1602, the post-startup correction update interruption time table TTDISC (the longer time value 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.
[0256]
Then, in S1603, the interrupt is permitted for each post-startup correction update interrupt time TDISC and the routine is exited.
[0257]
FIG. 22 shows a post-startup correction setting routine that is interrupted at every post-startup correction update interruption time. This improves the connection of the duty ratio ISCON from the start-time control to the normal-time control and improves the startability.
[0258]
First, in S1701, it is determined whether the post-startup correction ISCSD stored at a predetermined address of 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), exit the routine.
[0259]
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. Disable interrupts at each correction update interrupt time TDISC and exit the routine.
[0260]
A representative example of the post-startup correction setting will be described with reference to the time chart of FIG.
[0261]
When starter switch 61 is ON or engine speed NE is 0 (startup / normal time control determination flag FLAGST = 1), the correction program is not executed after startup (elapsed time t0 to t1), and 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).
[0262]
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.
[0263]
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.
[0264]
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 of the duty ratio ISCON becomes worse and the startability is lowered as shown by the one-dot chain line in the figure.
[0265]
The post-startup correction ISCSD is to compensate 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.
[0266]
Therefore, 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. In the meantime, the initial value of the post-startup correction ISCSD is reduced and the post-startup correction interrupt is increased as the cooling water temperature TW is increased. 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. 38, and the step of the change in the opening degree of the ISC valve 13 is eliminated to prevent the ISC valve 13 from suddenly changing the air flow rate. , Improve startability.
[0267]
(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.
[0268]
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 the case of, go to S1803.
[0269]
When proceeding to S1802, the above set time is added to the normal control transition time discriminating count value COUNTSTI (down counter) for judging whether the set time LRNISS [sec] has elapsed since the transition to the normal operation (normal control) after starting. A set value COUNTLRNISS corresponding to LRNISS is set (COUNTSTI ← COUNTLRRNISS), the process proceeds to S1858, the closed-loop correction I-minute ISCI is set to 0 [%], and the process proceeds to S1859.
[0270]
In S1803, the normal control transition time determination count value COUNTSTI is referred to. If COUNTSTI ≠ 0, it is determined that the set time LRNISS has not elapsed after the transition to the normal control, and the process 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 process proceeds to S1805.
[0271]
In S1805, the cooling water temperature TW and the set temperature LRNITW [° C.] are compared. If TW ≧ LRNITW, the process proceeds to S1806, and if TW <LRNITW, the process proceeds to S1810. When proceeding to S1806, refer to the value of the start / normal control discrimination flag (FLAGST) OLD read during the previous routine execution. When (FLAGST) OLD = 1 (previous routine execution, start time control), normal If it is determined that the control shift is the first time, the process proceeds to S1807 to initialize the closed loop correction I, and if (FLAGST) OLD = 0, the process proceeds to S1810.
[0272]
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.
[0273]
When proceeding to 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 ISCI is initialized with the I learning value ACONI when the air conditioner is ON, and the process proceeds to S1809. Then, the closed loop correction I-minute ISCI is initialized with the I-minute learning value ACOFFI stored in the backup RAM 50a when the air conditioner is OFF, and the process proceeds to S1810.
[0274]
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 component ISCI is initially set only once immediately after the transition to the normal control) by the I component learning value ACONI or ACOFFI learned according to the air conditioner operating state during the previous engine operation. As a result, the closed loop correction I component ISCI is immediately compensated, and the controllability is improved.
[0275]
Further, since each of the learning values ACONI and ACOFFI is set for each air conditioner operating state, the closed loop correction I amount ISCI corresponding to the engine load can be initialized, and the engine rotation can be started smoothly. .
[0276]
In S1810, the value of the closed / open loop control discrimination flag FLAGCL set in the closed / open loop control discrimination subroutine is referred to. If FLAGCL = 1 (closed loop control), the flow advances to S1811 and FLAGCL = 0 ( In the case of open loop control), the process proceeds to S1812 without updating a correction amount ΔI described later.
[0277]
When the process proceeds to S1811, it is determined by referring to the value of the post-startup correction ISCSD whether post-startup correction is being executed (ISCSD ≠ 0). If ISCSD ≠ 0, the process proceeds to S1813, and if ISCSD = 0, the process proceeds to S1817. When the process proceeds to S1813, the coolant temperature TW is compared with the set temperature TWAS [° C.]. When TW ≧ TWAS (warming-up complete), the process proceeds to S1814, and when 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.
[0278]
After that, when proceeding to S1815, the closed loop correction I component ISCI is updated with the value obtained by adding the post correction start ISCSD to the closed loop correction component ICI (ISCI ← ISCI + ISCSD), and the process proceeds to S1816 and the post correction correction ISCSD is started. After starting, the correction ISCSD is cleared (ISCSD ← 0), and the process proceeds to S1817.
[0279]
As shown in FIGS. 39 (a) and 39 (b), when the open loop control is shifted to the closed loop control, if the post-startup correction ISCSD (ISCAS) is not shifted to the closed loop correction I component ISCI, the closed loop control is performed. Until the loop correction I component ISCI converges, a step is generated in the duty ratio ISCON and the engine speed NE changes. As a countermeasure, it is conceivable to increase the correction amount ΔI described later. However, if the correction amount ΔI is extremely increased, the convergence is deteriorated and hunting occurs in the engine speed NE.
[0280]
On the other hand, as shown in FIGS. 39C and 39D, when a predetermined condition is satisfied (TW ≧ TWAS and VSP <VSAS), when the open loop control is shifted to the closed loop control, the post-startup correction ISCSD When (ISCAS) is ISCSD ≠ 0, the post-startup correction ISCSD (ISCAS) is shifted to the closed-loop correction I-minute ISCI, so the increased amount is compensated by the closed-loop correction I-minute ISCI, and open-loop control is performed. To the closed loop control is improved, and the fluctuation of the engine speed NE at this time is prevented.
[0281]
Thereafter, when the process proceeds from S1811, S1813, S1814 or S1816 to S1817, a differential rotation ΔN between the idle target rotation speed NSET and the engine rotation speed NE is obtained (ΔN ← NSET−NE), and the process proceeds to S1818 to check whether the air conditioner switch 89 is ON. If YES, the process proceeds to S1819. If OFF, the process proceeds to S1820.
[0282]
When the process proceeds to S1819, the differential rotation ΔN is compared with the set value NIH3 (NIH3 <0). ), Go to S1845.
[0283]
Further, if ΔN> NIH3 in S1819S, the process proceeds to S1821, the differential rotation ΔN is compared with the set value NIH2 (where NIH3 <NIH2 <0), and if ΔN ≦ NIH2, the process proceeds to S1827 and the correction amount ΔI Is set to the set value TIPTAH2 (where TIPTAH3 <TIPATAH2 <0) (ΔI ← TIPTAH2), and the process proceeds to S1845. 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.
[0284]
If it is determined in S1822 that ΔN> NIH1 and the process proceeds to S1823, the differential 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 process proceeds to S1830, where the correction amount ΔI is set with the set value TIPTAL (where TIPTAH ≦ TIPATL) ( ΔI ← TIPTAL), and proceeds to S1845. If ΔN> NIL1, the process proceeds to S1825.
[0285]
In S1825, the differential rotation ΔN is compared with the set value NIL2 (where NIL1 <NIL2). ← 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.
[0286]
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.
[0287]
On the other hand, if 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 with the set value TIPRTH3 (where TIPRTH3 <0) (ΔI ← TIPRTH3), and the process proceeds to S1845. 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 ΔN ≦ NIH1 is determined 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]
If Δ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 ΔN ≦ NIL2 is determined in S1837 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 in S1837 that ΔN> NIL2 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 one of S1826 to S1832 or S1838 to S1844 advances to S1845, the closed-loop correction I-minute ISCI stored at a predetermined address in the RAM 50 is changed to the closed-loop correction I-minute ISCI, and the above-mentioned S1826-S1832, S1838. Is updated with the value obtained by adding the correction amount ΔI set in any one of S1844 (ISCI ← ISCI + ΔI), and the process proceeds to S1846.
[0293]
FIG. 41 is a time chart showing the relationship between 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 ISCI.
[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, the closed loop correction I minute ISCI is lowered 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. To do.
[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 ISCI is further lowered 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), the closed loop correction I amount ISCI is decreased by the set value TIPTAH1 and the engine speed is increased. 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 component ISCI does not change.
[0299]
Thereafter, when the differential rotation ΔN falls within 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 ISCI is increased 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 target idle speed NSET (ΔN> NIL2), the correction amount ΔI is set with the set value TIPTAL2 (S1832), and the closed loop correction I minute ISCI is set as described above. Increased by the 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 ISCI is set.
Increases 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 amount ISCI does 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 thereafter, 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 are set to 0 [%]), the closed loop correction I amount ISCI is constant.
[0305]
After the closed loop correction I amount ISCI is set in S1845, when the routine proceeds to S1846, a learning subroutine (details will be described later) for the closed loop correction I 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, and if COUNTSTI = 0, the process proceeds to S1850.
[0307]
When the process proceeds to S1848, the coolant temperature TW is compared with a preset warm-up completion determination value LRNITW for determining whether the warm-up is restarted. When TW ≧ LRNITW (warm-up restart), the process proceeds to S1849, where TW <LRNITW. If the engine is cold, go to S1850.
[0308]
In S1849, the closed loop correction I-minute ISCI is compared with the lower limit value IMINBL. If ISCI ≦ IMINBL, the flow advances to S1853, and the closed loop correction I-minute ISCI is set with the lower limit value IMINBL, and the flow advances to S1859.
[0309]
On the other hand, if it is determined in S1849 that ISCI> IMINBL, the process proceeds to S1851, where the closed loop correction I component ISCI is compared with the upper limit value IMAXBL. If ISCI ≧ IMAXBL, the process proceeds to S1854, and the closed loop correction I component ISCI is set. The upper limit value IMAXBL is set and the process proceeds to S1859. If ISCI <IMAXBL, it is determined that the closed loop correction I component ISCI is within an allowable range (IMAXBL>ISCI> IMINBL), and the process directly proceeds to S1859.
[0310]
Further, when the process proceeds from S1847 or S1848 to S1850, the basic characteristics set by the basic characteristic value setting subroutine described above from the closed loop correction I component ISCI and the duty limit lower limit IMINCL set by the ISC valve control main routine described above. The value obtained by subtracting the value ISCTW (lower limit value) is compared, and if ISCI ≤ (IMINCL-ISCTW), the process proceeds to S1855, and the closed loop correction I-minute ICI is set with the lower limit value (IMINCL-ISCTW) (ISCI ← IMINCL-ISCTW), the process proceeds to S1859.
[0311]
If SCI> IMINCL-ISCTW in S1850, the process proceeds to S1852, and the value obtained by subtracting the basic characteristic value ISCTW from the closed loop correction I component ISCI and the duty limit upper limit IMAXCL set in the ISC valve control main routine (upper limit). If ISCI ≧ (IMAXCL−ISCTW), the process proceeds to S1856, where the closed loop correction I-minute ISCI is set with the upper limit value (IMAXCL−ISCTW) (ISCI ← IMAXCL−ISCTW), S1859 Proceed to If ISCI <(IMAXCL-ISCTW) in S1852, it is determined that the closed loop correction I-minute ISCI is within the allowable range ((IMINCL-ISCTW) <ISCI <(IMAXCL-ISCTW)), and the process directly proceeds to S1859. move on.
[0312]
Most of the duty ratio ISCON for the ISC valve 13 is the basic characteristic value ISCTW. By subtracting the basic characteristic value ISCTW from the duty limit lower limit value IMINCL, a lower limit value for a correction term other than the basic characteristic value ISCTW is set. 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 warm-up completion determination value LRNITW for determining whether the coolant temperature TW and the warm-up restart are TW ≧ LRNITW In the case (S1848), it is determined that the warm-up is restarted, and IMINBL ≦ ISCI ≦ IMAXBL is set regardless of open loop or closed loop control.
[0314]
When shifting to normal control during warm-up restart, learning of a small value (including a negative value) of the closed-loop correction I-minute ISCI at the initial setting of the closed-loop correction I-minute ISCI (S1808 or S1809) If the value is updated with the value ACONI (when the air conditioner switch 89 is ON) or the learning value ACOFFI (when the air conditioner switch 89 is OFF), the engine speed NE will decrease, and if it is significant, it will be stalled. For this reason, the upper limit value and the lower limit value are set as the set values IMINBL and IMAXBL, respectively, and the restartability is improved by shifting up the upper limit value and the lower limit value of the closed loop correction I component ISCI (see FIG. 41 (c)). ).
[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]
When the process proceeds to S1857, the value of the closed-loop correction I-minute ISCI is referred to. When ISCI <0, the process proceeds to S1858. After the closed-loop correction I-minute ISCI is cleared (ISCI ← 0), the process proceeds to S1859. If ISCI ≧ 0, the process proceeds to S1847.
[0317]
As described above, when the cooling water temperature TW during the open loop control (FLAGCL = 0) is low (TW ≦ TWCL) and the closed loop correction I component ISCI is on the negative side (ISCI <0). This closed loop correction I component ISCI is cleared (ISCI ← 0). That is, when the closed loop correction I component ICI set by the learning value ACONI or ACOFFI, which will be described later, is negative, the duty ratio ISCON becomes smaller, the opening of the ISC valve 13 decreases, and the engine speed NE decreases. In order to prevent this, the lower limit value of the closed loop correction I minute ISCI set by the learning value ACONI or ACOFFI is set to 0 immediately after the starter switch 61 shifts from ON to OFF (control at start-up → normal control). Yes.
[0318]
When the process proceeds from any one of S1853 to S1856 or S1858 to S1859, the current start time / previous start time used in the next routine stored at a predetermined address in the RAM 50 by the 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]
(Closed loop correction I minute learning subroutine)
FIG. 26 shows a closed-loop correction I-minute learning subroutine executed in the closed-loop correction I-minute update procedure (see S1846).
[0320]
First, it is determined in S1901 to S1908 whether the learning condition is satisfied. That is, in S1901, the coolant temperature TW is compared with the warm-up completion determination value LRNITW [° C.], and if TW ≧ LRNITW (engine warm-up complete state), the process proceeds to S1902, and if TW <LRNITW (engine cold state) Proceed to S1913.
[0321]
When the process proceeds to S1902, the value of the power steering correction value ISCPS is referred to. When ISCPS = 0 (power steering turning angle is small), the process proceeds to S1903, and when ISCPS ≠ 0, the process proceeds to S1913.
[0322]
When the process proceeds to S1903, it is determined whether the air conditioner switch 89 is OFF. If it is OFF, the process proceeds to S1904.
[0323]
When the process proceeds to S1904, the value of the radio fan correction value ISCRAS is referred to, and if ISCRA = 0 (the radiator fan 62 is OFF), the process proceeds to S1905, and if ISCRA ≠ 0, the process proceeds to S1913.
[0324]
When the process proceeds from S1903 or S1904 to S1905, the value of acceleration / deceleration correction DSHPT is referred to. If DSHPT = 0, the process proceeds to S1906, and if DSHPT ≠ 0, the process proceeds to S1913.
[0325]
When the process proceeds to S1906, the value of the dashpot correction value DHENB is referred to. When DHENB = 0, that is, when DSHPT = 0 and DHENB = 0, it is determined that the engine is in the idle state. The process proceeds to S1907 and DHENB ≠ 0. In the case of, go to S1913.
[0326]
Proceeding to S1907, with reference to the correction amount ΔI of the closed loop correction I component ISCI, if ΔI = 0 (the engine speed NE has converged within the allowable range of the idle target speed NSET), the process proceeds to S1908. If ΔI ≠ 0, proceed to S1913.
[0327]
When the process proceeds to S1908, the set value LRISCT corresponding to the predetermined time and the learning condition establishment determination count value COUNTISCI are compared to determine whether or not the learnable state continues for a predetermined time or more. 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.
[0328]
On the other hand, in S1909, it is determined whether the air conditioner switch 89 is ON. If ON, the process proceeds to S1911 and the I learning value ACONI stored at the predetermined address in the backup RAM 50a is set to the current closed loop correction I. Update with the value of ISCI (ACONI ← ISCI), and go to S1913. In the case of OFF, the process proceeds to S1912, the I-minute learning value ACOFFI stored in the predetermined address of the backup RAM 50a is updated with the current closed-loop correction I-minute ISCI value (ACOFFI ← ISCI), and the process proceeds to S1913.
[0329]
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.
[0330]
By the way, as shown by a broken line in FIG. 42A, if the I-part learning value ACONI or ACOFFI is not used when setting the closed-loop correction I-minute ISCI, the closed-loop control is performed from the start-time control through the open-loop control. A difference occurs before moving to. As a result, as shown by the broken line in FIG. 42 (b), the initial explosion is not completed, but the transition to start-up control is not carried out easily. Arise.
[0331]
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 the solid line in FIG. 42 (b), the first explosion is immediately shifted to the complete explosion, and the rise of the engine speed NE becomes smooth and the startability is improved.
[0332]
【The invention's effect】
As described above, according to the first aspect of the present invention, when the power steering turning switch is turned on, at least the basic characteristic value set based on the engine temperature is corrected by the power steering correction value, and the ISC valve When the opening is set and the intake air amount is increased, the idle state and the state of the air conditioner switch are determined. Since the power steering correction value is set when the power steering steering switch is on and in an idle state, the engine load due to driving of the power steering pump is small with respect to the full load on the engine when the vehicle is not idling. The influence of the increase in engine load accompanying the driving of the steering pump can be ignored. At this time, unnecessary correction for increasing the ISC valve opening setting value by the power steering correction value can be eliminated, and controllability can be improved.
When the power steering steering switch is on and in an idle state, the power steering correction value is set to a smaller value when the air conditioner switch is on than when the air conditioner switch is off, and when the air conditioner switch is off, the air conditioner switch Since the air conditioner switch is turned on and the load of the power steering pump becomes relatively small due to the air conditioner compressor driving load, the engine speed becomes higher than necessary. Therefore, regardless of whether the air conditioner switch is on or off, appropriate power steering correction can always be performed, and the feeling can be improved.
When the power steering steering switch is turned off or in a non-idle state, the power steering correction value is decreased by a set value every calculation cycle until the power steering correction value becomes zero corresponding to no correction by the power steering correction value. Immediately after the steering turning switch is switched from ON to OFF, the power steering pump drive load still exists and the drive load gradually decreases.In response, the intake air amount gradually increases according to the power steering correction value. Can be reduced. Accordingly, it is possible to accurately reduce the intake air amount in accordance with the change in engine load immediately after the power steering turning angle is switched from large to small, to prevent fluctuations in the engine speed, and to The convergence of the rotational speed can be improved, and a good feeling can be obtained.
In addition, when canceling the power steering correction in accordance with the transition to the non-idle state, the power steering correction value is also decreased by a set value every calculation period until the power steering correction value becomes zero corresponding to no correction by the power steering correction value. Therefore, the connection of the opening setting amount to the ISC valve becomes smooth, and the controllability can be improved.
[Brief description of the drawings]
FIG. 1 is a flowchart showing an ISC valve control procedure (No. 1).
FIG. 2 is a flowchart showing an ISC valve control procedure (No. 2).
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;
FIG. 7 is a flowchart (part 1) illustrating a procedure for setting an air conditioner correction value.
FIG. 8 is a flowchart (part 2) illustrating an air conditioner correction value setting procedure.
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.
FIG. 11 is a flowchart (part 1) showing a procedure for setting an AT vehicle travel range correction value.
FIG. 12 is a flowchart (part 2) showing a procedure for setting an AT vehicle travel range correction value.
FIG. 13 is a flowchart (part 1) showing an acceleration / deceleration correction setting procedure.
FIG. 14 is a flowchart (part 2) showing the acceleration / deceleration correction setting procedure.
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 is a flowchart showing a power steering correction value setting procedure (part 1);
FIG. 19 is a flowchart showing a power steering correction value setting procedure (part 2);
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 is a flowchart (No. 1) showing a closed loop correction I update procedure;
FIG. 24 is a flowchart (part 2) showing a closed loop correction I update procedure;
FIG. 25 is a flowchart (No. 3) showing a closed loop correction I update procedure;
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
58 Power steering steering switch
89 Air conditioner switch
DISPPS setting value
ISCON opening setting value (duty ratio)
ISCTW basic characteristic values
ISCPS power steering correction value
TW Engine temperature (cooling water temperature)

Claims (1)

少なくともエンジン温度に基づいて設定された基本特性値を、パワーステアリング転舵スイッチがオンされた時、パワステ補正値により補正して、スロットルバルブをバイパスするエアバイパス通路に介装されたISCバルブの開度を設定し、吸入空気量を増量するエンジンのISCバルブ制御方法において、
アイドル状態およびエアコンスイッチの状態を判断し、
上記パワーステアリング転舵スイッチがオンでアイドル状態のとき上記パワステ補正値を設定すると共に、該パワステ補正値を、上記エアコンスイッチがオンの場合はエアコンスイッチがオフの場合よりも小さい値に設定し、上記エアコンスイッチがオフの場合はエアコンスイッチがオンの場合よりも大きい値に設定し、
上記パワーステアリング転舵スイッチがオフ、或いは非アイドル状態になったとき、上記パワステ補正値をゼロになるまで演算周期毎に設定値づつ減少させる
ことを特徴とするエンジンのISCバルブ制御方法。
The basic characteristic value set based on at least the engine temperature is corrected by the power steering correction value when the power steering turning switch is turned on, and the ISC valve installed in the air bypass passage bypassing the throttle valve is opened. In the engine ISC valve control method of setting the degree and increasing the intake air amount,
Determine the idle state and the state of the air conditioner switch,
When the power steering steering switch is on and in an idle state, the power steering correction value is set, and the power steering correction value is set to a smaller value when the air conditioning switch is on than when the air conditioning switch is off, When the air conditioner switch is off, set it to a larger value than when the air conditioner switch is on.
An engine ISC valve control method, wherein when the power steering steering switch is turned off or in a non-idle state, the power steering correction value is decreased by a set value every calculation cycle until it becomes zero.
JP2001246682A 2001-08-15 2001-08-15 ISC valve control method Expired - Fee Related JP3769213B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001246682A JP3769213B2 (en) 2001-08-15 2001-08-15 ISC valve control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001246682A JP3769213B2 (en) 2001-08-15 2001-08-15 ISC valve control method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP671492A Division JPH05195832A (en) 1992-01-17 1992-01-17 Isc valve control method for engine

Publications (2)

Publication Number Publication Date
JP2002106395A JP2002106395A (en) 2002-04-10
JP3769213B2 true JP3769213B2 (en) 2006-04-19

Family

ID=19076177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001246682A Expired - Fee Related JP3769213B2 (en) 2001-08-15 2001-08-15 ISC valve control method

Country Status (1)

Country Link
JP (1) JP3769213B2 (en)

Also Published As

Publication number Publication date
JP2002106395A (en) 2002-04-10

Similar Documents

Publication Publication Date Title
JP3876609B2 (en) Idle rotation control device for internal combustion engine
WO2012173177A1 (en) Engine control device
JP3622575B2 (en) Throttle control device for internal combustion engine
JP2005325794A (en) Control device for internal combustion engine
JPH08114142A (en) Idle control method for engine
JP3612286B2 (en) Engine ISC valve control method
EP1496229B1 (en) Direct injection engine and a start-up control method thereof
JP3769213B2 (en) ISC valve control method
JP3442795B2 (en) Engine ISC valve control method
JP3064606B2 (en) Engine ISC valve control method
JP3075436B2 (en) Engine ISC valve control method
JPH05195832A (en) Isc valve control method for engine
JP3196902B2 (en) Engine ISC valve control method
JP2001349227A (en) Engine ISC valve control method
JP2011208588A (en) Method of controlling internal combustion engine
JP3891786B2 (en) Intake control device for internal combustion engine
JP3586975B2 (en) Idle speed control device for internal combustion engine
EP0161611B1 (en) Method and apparatus for controlling air-fuel ratio in internal combustion engine
JP3560264B2 (en) Engine fuel injection control device
JPH0733797B2 (en) Idle speed control method
JPH0626427A (en) Start control of engine for ffv
JP3963993B2 (en) Engine air-fuel ratio control device
JPH0914018A (en) Engine revolving speed control method
JP3569633B2 (en) Idle rotation learning control device for internal combustion engine
JP4728131B2 (en) Fuel injection control device for internal combustion engine

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050705

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050817

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: 20060131

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060203

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100210

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees