(57)【要約】【目的】簡易な構成でありながら、アイドル回転数制御バルブの異常を検出できるようにした内燃機関の制御装置を提供する。【解決手段】スロットルバルブがアイドル開度にあるときに内燃機関（エンジン）１０が始動されると共に、始動された後も依然としてアイドル開度にあるか否か判定されるとき、内燃機関の回転数ＮＥが目標アイドル回転数ＮＥａに応じて設定された所定範囲ＮＥｂにあるか否か判定すると共に（Ｓ１６）、内燃機関の回転数ＮＥが所定範囲ＮＥｂにないと判定されるとき、内燃機関の回転数ＮＥが目標アイドル回転数ＮＥａに一致するように、ステッピングモータを介してアイドル回転数制御バルブの開度をフィードバック制御し（Ｓ３８）、所定時間Ｔｃ経過した後、内燃機関の回転数ＮＥが所定範囲ＮＥｂ内に収束しないとき、アイドル回転数制御バルブに異常が生じたと判定する（Ｓ４６）。【選択図】図４
2010156268.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の吸気路に配置されるスロットルバルブと、前記吸気路に接続されて前記スロットルバルブをバイパスするバイパス路と、前記バイパス路の空気量を調整して前記内燃機関のアイドル回転数を調整するアイドル回転数制御バルブと、前記アイドル回転数制御バルブを駆動するステッピングモータとを備えた内燃機関の制御装置において、前記スロットルバルブがアイドル開度にあるときに前記内燃機関が始動されると共に、始動された後も依然として前記アイドル開度にあるか否か判定するアイドル開度始動状態判定手段と、前記アイドル開度始動状態と判定されるとき、前記内燃機関の回転数が目標アイドル回転数に応じて設定された所定範囲にあるか否か判定する回転数範囲判定手段と、前記内燃機関の回転数が前記所定範囲にないと判定されるとき、前記内燃機関の回転数が前記目標アイドル回転数に一致するように、前記ステッピングモータを介して前記アイドル回転数制御バルブの開度をフィードバック制御するフィードバック制御手段と、前記フィードバック制御を実行してから所定時間経過した後、前記内燃機関の回転数が前記所定範囲内に収束しないとき、前記アイドル回転数制御バルブに異常が生じたと判定する異常判定手段とを備えることを特徴とする内燃機関の制御装置。
【請求項２】
前記内燃機関の温度を検出する温度検出手段と、前記検出された内燃機関の温度に基づいて前記ステッピングモータの目標ステップ位置を算出する目標ステップ位置算出手段と、前記検出された内燃機関の温度に基づき、前記フィードバック制御の実行中に、前記内燃機関の回転数と前記目標アイドル回転数の差が既定値以下となるときの前記ステッピングモータの位置を前記目標ステップ位置のステップ値に置き換える置き換え手段とを備えることを特徴とする請求項１記載の内燃機関の制御装置。
【請求項３】
前記アイドル回転数制御バルブに異常が生じたと判定されると共に、前記内燃機関の回転数が所定回転数以上となるとき、前記内燃機関の点火と燃料噴射のうちの少なくともいずれかを制御して前記内燃機関の回転数の上昇を防止する回転数上昇防止手段を備えることを特徴とする請求項１または２記載の内燃機関の制御装置。
【請求項４】
前記フィードバック制御手段は、前記フィードバック制御の実行中に、前記アイドル回転数制御バルブが開方向または閉方向に連続して所定ステップ数駆動されると共に、前記内燃機関の回転数の変化量が所定値未満のとき、前記フィードバック制御を中止することを特徴とする請求項１から３のいずれかに記載の内燃機関の制御装置。
【請求項５】
前記フィードバック制御手段は、前記フィードバック制御を中止してから所定の中止時間経過した後、前記フィードバック制御を再開することを特徴とする請求項４記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は内燃機関の制御装置に関し、より詳しくは吸気路のスロットルバルブをバイパスするバイパス路に設けられるアイドル回転数制御バルブを備えた内燃機関の制御装置に関する。
【背景技術】
【０００２】
従来より、吸気路のスロットルバルブが全閉位置付近にあるとき（即ち、機関始動時やアイドル運転時）、スロットルバルブの上流側と下流側とを連通するバイパス路に配置されたアイドル回転数制御バルブをステッピングモータで駆動（開閉）することで、内燃機関のアイドル回転数を調整するようにした内燃機関の制御装置は広く知られている。
【０００３】
上記した内燃機関の制御装置において、アイドル回転数制御バルブの異常（バルブの固着などに起因するステッピングモータの脱調など）を検出（検知）する技術も提案されている（例えば特許文献１参照）。特許文献１記載の技術にあっては、内燃機関の無負荷状態が検出されるとき、内燃機関の回転数が目標アイドル回転数に一致するようにアイドル回転数制御バルブの開度をフィードバック制御すると共に、フィードバック制御を実行中に、内燃機関の回転数が目標アイドル回転数に応じて設定された所定範囲にないとき、アイドル回転数制御バルブに異常が生じたと判定するようにしている。
【特許文献１】特許第２８３６４５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１記載の技術の如く、アイドル回転数制御バルブの異常検出を、内燃機関の無負荷状態を検出してフィードバック制御を実行しているときに行うように構成すると、内燃機関の無負荷状態を検出する装置（例えば車速センサなど）が必要となり、構成が複雑になるという不都合があった。
【０００５】
従って、この発明の目的は上記した課題を解決し、簡易な構成でありながら、アイドル回転数制御バルブの異常を検出できるようにした内燃機関の制御装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために、請求項１にあっては、内燃機関の吸気路に配置されるスロットルバルブと、前記吸気路に接続されて前記スロットルバルブをバイパスするバイパス路と、前記バイパス路の空気量を調整して前記内燃機関のアイドル回転数を調整するアイドル回転数制御バルブと、前記アイドル回転数制御バルブを駆動するステッピングモータとを備えた内燃機関の制御装置において、前記スロットルバルブがアイドル開度にあるときに前記内燃機関が始動されると共に、始動された後も依然として前記アイドル開度にあるか否か判定するアイドル開度始動状態判定手段と、前記アイドル開度始動状態と判定されるとき、前記内燃機関の回転数が目標アイドル回転数に応じて設定された所定範囲にあるか否か判定する回転数範囲判定手段と、前記内燃機関の回転数が前記所定範囲にないと判定されるとき、前記内燃機関の回転数が前記目標アイドル回転数に一致するように、前記ステッピングモータを介して前記アイドル回転数制御バルブの開度をフィードバック制御するフィードバック制御手段と、前記フィードバック制御を実行してから所定時間経過した後、前記内燃機関の回転数が前記所定範囲内に収束しないとき、前記アイドル回転数制御バルブに異常が生じたと判定する異常判定手段とを備える如く構成した。
【０００７】
請求項２に係る内燃機関の制御装置にあっては、前記内燃機関の温度を検出する温度検出手段と、前記検出された内燃機関の温度に基づいて前記ステッピングモータの目標ステップ位置を算出する目標ステップ位置算出手段と、前記検出された内燃機関の温度に基づき、前記フィードバック制御の実行中に、前記内燃機関の回転数と前記目標アイドル回転数の差が既定値以下となるときの前記ステッピングモータの位置を前記目標ステップ位置のステップ値に置き換える置き換え手段とを備える如く構成した。
【０００８】
請求項３に係る内燃機関の制御装置にあっては、  前記アイドル回転数制御バルブに異常が生じたと判定されると共に、前記内燃機関の回転数が所定回転数以上となるとき、前記内燃機関の点火と燃料噴射のうちの少なくともいずれかを制御して前記内燃機関の回転数の上昇を防止する回転数上昇防止手段を備える如く構成した。
【０００９】
請求項４に係る内燃機関の制御装置にあっては、前記フィードバック制御手段は、前記フィードバック制御の実行中に、前記アイドル回転数制御バルブが開方向または閉方向に連続して所定ステップ数駆動されると共に、前記内燃機関の回転数の変化量が所定値未満のとき、前記フィードバック制御を中止する如く構成した。
【００１０】
請求項５に係る内燃機関の制御装置にあっては、前記フィードバック制御手段は、前記フィードバック制御を中止してから所定の中止時間経過した後、前記フィードバック制御を再開する如く構成した。
【発明の効果】
【００１１】
請求項１に係る内燃機関の制御装置にあっては、スロットルバルブがアイドル開度にあるときに内燃機関が始動されると共に、始動された後も依然としてアイドル開度にあると判定されるとき、内燃機関の回転数が目標アイドル回転数に応じて設定された所定範囲にあるか否か判定すると共に、内燃機関の回転数が所定範囲にないと判定されるとき、内燃機関の回転数が目標アイドル回転数に一致するようにアイドル回転数制御バルブの開度をフィードバック制御し、所定時間経過した後、内燃機関の回転数が所定範囲内に収束しないとき、アイドル回転数制御バルブに異常が生じたと判定するように構成したので、簡易な構成でありながら、具体的には従来技術のように内燃機関の無負荷状態を検出する装置（例えば車速センサなど）を必要とすることなく、アイドル回転数制御バルブの異常を検出（検知）することができると共に、コスト的にも有利にすることができる。
【００１２】
請求項２に係る内燃機関の制御装置にあっては、内燃機関の温度に基づいてステッピングモータの目標ステップ位置を算出すると共に、内燃機関の温度に基づき、フィードバック制御の実行中に、内燃機関の回転数と目標アイドル回転数の差が既定値以下となるとき（換言すれば、機関回転数が目標アイドル回転数に収束するとき）のステッピングモータの位置を目標ステップ位置のステップ値に置き換えるように構成したので、上記した効果に加え、例えばステッピングモータの脱調によって生じた制御装置の認識するステップ位置とステッピングモータの実際のステップ位置との間のズレを修正でき、ステッピングモータによるアイドル回転数制御バルブの制御精度を確保することができる。
【００１３】
請求項３に係る内燃機関の制御装置にあっては、アイドル回転数制御バルブに異常が生じたと判定されると共に、内燃機関の回転数が所定回転数以上となるとき、内燃機関の点火と燃料噴射のうちの少なくともいずれかを制御して内燃機関の回転数の上昇を防止するように構成したので、上記した効果に加え、アイドル回転数制御バルブに異常が生じたときの内燃機関の回転数の不要な上昇（吹き上がり）を効果的に防止することができる。
【００１４】
請求項４に係る内燃機関の制御装置にあっては、フィードバック制御の実行中に、アイドル回転数制御バルブが開方向または閉方向に連続して所定ステップ数駆動されると共に、内燃機関の回転数の変化量が所定値未満のとき、フィードバック制御を中止するように構成したので、上記した効果に加え、フィードバック制御を実行する必要がない運転状態のときにフィードバック制御を中止でき、よって内燃機関のストールを防止することができる。
【００１５】
請求項５に係る内燃機関の制御装置にあっては、フィードバック制御を中止してから所定の中止時間経過した後、フィードバック制御を再開するように構成したので、請求項４で述べた効果に加え、中止していたフィードバック制御を効果的なタイミングで再開させることが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面に即してこの発明に係る内燃機関の制御装置を実施するための最良の形態について説明する。
【実施例】
【００１７】
図１はこの発明の実施例に係る内燃機関の制御装置を模式的に示す概略図である。
【００１８】
図１において符号１０は、図示しない車両（例えば自動二輪車）に搭載された内燃機関（以下「エンジン」という）を示す。エンジン１０は４サイクル単気筒の水冷式で、排気量２５０ｃｃ程度のガソリン・エンジンからなる。尚、符号１０ａはエンジン１０のクランクケースを示す。
【００１９】
エンジン１０の吸気路１２にはスロットルバルブ１４が配置される。スロットルバルブ１４は、車両に手動操作自在に設けられたアクセラレータ（スロットルグリップ）にスロットルワイヤ（共に図示せず）を介して機械的に接続され、アクセラレータの操作量に応じて開閉されてエンジン１０の吸気を調量、具体的にはエアクリーナ１６から吸入され、吸気路１２を通って流れる空気の量を調整する。尚、スロットルバルブ１４は、アクセラレータが操作されないとき、アイドル開度となるように設定される。
【００２０】
吸気路１２には、スロットルバルブ１４の上流側と下流側とを連通してスロットルバルブ１４をバイパスするバイパス路２０が接続される。バイパス路２０の途中にはバイパス路２０の空気量を調整してエンジン１０のアイドル回転数を調整するアイドル回転数制御バルブ（アイドルスピードコントロールバルブ。以下「ＩＳＣバルブ」という）２２が設けられ、ステッピングモータ（電動モータ。アクチュエータ）２４によって駆動される。
【００２１】
図２は、図１に示すＩＳＣバルブ２２とステッピングモータ２４付近を拡大して示す拡大模式断面図である。
【００２２】
図２に示す如く、ステッピングモータ２４は、第１、第２のコイル（Ａ相、Ｂ相コイル）２４ａ，２４ｂと、マグネットロータ２４ｃと、マグネットロータ２４ｃの下端部に同軸に接続されると共に、外周面に雄ネジが螺刻される送りネジ２４ｄと、第１、第２のコイル２４ａ，２４ｂなどを収容するケース２４ｅとからなる、バイポーラ２相励磁式のステッピングモータである。
【００２３】
ＩＳＣバルブ２２は、バイパス路２０を開閉するバルブ体（プランジャバルブ）２２ａと、バルブ体２２ａの内部空間に配置されると共に、前記送りネジ２４ｄの雄ネジに対応する雌ネジが形成されるスライドピース２２ｂと、バルブ体２２ａとスライドピース２２ｂの間に介挿されるスプリング２２ｃとが一体的に取り付けられてなる。ステッピングモータ２４とＩＳＣバルブ２２は、図示のように、送りネジ２４ｄの雄ネジとスライドピース２２ｂの雌ネジを螺合させることで接続されると共に、接続されたときのバルブ体２２ａはケース２４ｅからバイパス路２０に向けて突出するように位置される。
【００２４】
従って、ステッピングモータ２４にあっては、第１、第２のコイル２４ａ，２４ｂに流れる電流の向きを交互に切り換えることでマグネットロータ２４ｃと送りネジ２４ｄが回転させられると共に、送りネジ２４ｄの回転方向に応じてＩＳＣバルブ２２は、ガイド２４ｆによって回転方向への動きを規制されつつ図２において上下方向に変位させられ、それによってバイパス路２０を開閉し、バイパス路２０を流れる空気量を調整する。
【００２５】
図１の説明に戻ると、吸気路１２においてスロットルバルブ１４の下流側の吸気ポート付近にはインジェクタ２６が配置され、スロットルバルブ１４およびＩＳＣバルブ２２で調整された吸入空気にガソリン燃料を噴射する。噴射された燃料は吸入空気と混合して混合気を形成し、混合気は、吸気バルブ３０が開弁するとき、燃焼室３２に流入する。
【００２６】
燃焼室３２に流入した混合気は、点火コイル３４から供給された高電圧で点火プラグ３６から火花放電により点火されて燃焼し、ピストン４０を図１において下方に駆動してクランクシャフト４２を回転させる。燃焼によって生じた排ガスは、排気バルブ４４が開弁するとき、排気管４６を流れる。排気管４６には触媒装置５０が配置され、排ガス中の有害成分を除去する。触媒装置５０で浄化された排ガスはさらに下流に流れ、エンジン１０の外部に排出される。また、クランクシャフト４２には、エンジン１０を始動させるためのスタータモータ５２が接続される。
【００２７】
スロットルバルブ１４の付近にはポテンショメータからなるスロットル開度センサ５４が設けられ、スロットルバルブ１４の開度θＴＨを示す出力を生じる。吸気路１２のスロットルバルブ１４の上流側には吸気温センサ５６が設けられて吸入空気の温度ＴＡを示す出力を生じると共に、下流側には絶対圧センサ６０が設けられ、吸気路内絶対圧（エンジン負荷）ＰＢＡを示す出力を生じる。
【００２８】
エンジン１０のシリンダブロックの冷却水通路１０ｂには水温センサ（温度検出手段）６２が取り付けられ、エンジン１０の温度（エンジン冷却水温）ＴＷに応じた出力を生じる。エンジン１０のクランクシャフト４２の付近にはクランク角センサ６４が取り付けられて所定クランク角度位置でクランク角度信号を出力する。
【００２９】
また、車両の適宜位置にはイグニッションスイッチ６６とスタータスイッチ７０が設置される。イグニッションスイッチ６６は、図示は省略するが、順にロック、オフおよびオンの公知の３つのポジションを有し、運転者によって選択されたポジションに応じて各電気機器への電力の供給および遮断を行う。具体的には、イグニッションスイッチ６６においてロックまたはオフポジションが選択されると、各センサやステッピングモータ２４などへの一切の電力供給が遮断されると共に、オンポジションが選択されると、車両に搭載されたバッテリ７２と接続され、スタータモータ５２を除く各センサやステッピングモータ２４などへの電力供給が開始される。尚、ロックポジションが選択されるときは図示しないハンドルが固定（ロック）される。
【００３０】
スタータスイッチ７０は、運転者によって操作されるときにバッテリ７２に接続されてスタータモータ５２を駆動し、それによってクランキングが開始されてエンジン１０を始動させる。
【００３１】
また、上記したスロットル開度センサ５４などの各センサの出力は電子制御ユニット（Electronic Control Unit。以下「ＥＣＵ」という）７４に入力される。
【００３２】
図３は、そのＥＣＵ７４の構成を全体的に示すブロック図である。
【００３３】
ＥＣＵ７４はマイクロコンピュータからなり、図３に示すように、クランク角センサ６４の出力が入力される波形整形回路７４ａと、回転数カウンタ７４ｂと、水温センサ６２などの出力が入力されるＡ／Ｄ変換回路７４ｃと、ＣＰＵ７４ｄとを備える。ＥＣＵ７４はさらに、ＣＰＵ７４ｄからの制御信号に応じ、点火コイル３４を通電する点火回路７４ｅと、インジェクタ２６、ステッピングモータ２４を駆動する２個の駆動回路７４ｆ，７４ｇと、ＲＯＭ７４ｈと、ＲＡＭ７４ｉおよびタイマ７４ｊを備える。
【００３４】
波形整形回路７４ａは、クランク角センサ６４の出力（信号波形）をパルス信号に波形整形し、回転数カウンタ７４ｂに出力する。回転数カウンタ７４ｂは入力されたパルス信号をカウントしてエンジン回転数ＮＥを検出（算出）し、エンジン回転数ＮＥを示す信号をＣＰＵ７４ｄへ出力する。Ａ／Ｄ変換回路７４ｃは、スロットル開度センサ５４などの各センサの出力が入力され、アナログ信号値をデジタル信号値に変換してＣＰＵ７４ｄに出力する。
【００３５】
ＣＰＵ７４ｄは、変換されたデジタル信号などに基づき、ＲＯＭ７４ｈに格納されているプログラムに従って演算を実行し、駆動回路７４ｇに制御信号を送出してステッピングモータ２４への通電を制御し、ＩＳＣバルブ２２の開度を調整してバイパス路２０の空気量を調整する。また、ＣＰＵ７４ｄは、デジタル信号などに基づき、同様にＲＯＭ７４ｈに格納されているプログラムに従って演算を実行し、点火回路７４ｅあるいは各駆動回路７４ｆ，７４ｇに制御信号を送り、点火コイル１６やインジェクタ２６を駆動して点火時期や燃料噴射量を制御する。
【００３６】
ＲＡＭ７４ｉは、後述するプログラムにおいて行われるエンジン回転数ＮＥのバッファリングなどに利用されると共に、タイマ７４ｊもプログラム中の時間計測処理に利用される。
【００３７】
図４はこの実施例に係る内燃機関の制御装置の動作を示すフロー・チャートである。図示のプログラムは、イグニッションスイッチ６６がオンされたとき、ＥＣＵ７４において所定時間間隔、例えば２０ｍｓｅｃごとに実行（ループ）される。
【００３８】
以下説明すると、先ずＳ１０においてＩＳＣ異常判定フラグＦ_ＸＡＰＸＩＳＣＳ（後述）のビットが１か否か判断する。フラグＦ_ＸＡＰＸＩＳＣＳは初期値が０とされるため、Ｓ１０で否定されてＳ１２に進み、クランク角センサ６４の出力に基づいてエンジン回転ＮＥを検出（算出）し、Ｓ１４に進んでスロットル開度センサ５４の出力に基づいてスロットルバルブ１４の開度θＴＨを検出（算出）する。
【００３９】
次いでＳ１６に進み、回転数異常検出処理を実行する。Ｓ１６は、具体的には、エンジン１０がエンジン回転数ＮＥの異常を検出可能な始動状態であるか否か、および異常検出可能な始動状態のときにエンジン回転数ＮＥが所定範囲（後述）にあるか否か検出する処理である。
【００４０】
図５は、その回転数異常検出処理のサブ・ルーチン・フロー・チャートである。
【００４１】
先ずＳ１００においてエンジン回転数ＮＥが０か否か判断、換言すれば、スタータスイッチ７０がオンされておらず、エンジン１０の始動前か否か判断する。Ｓ１００で肯定されるときはＳ１０２からＳ１０８の処理に進み、後述する回転数異常検出フラグＦ_ＸＯＢＸＩＳＣＳ、回転数異常検出履歴フラグＦ_ＸＩＳＣＳＲＣＤ、スロットル開履歴フラグＦ_ＴＨＯＰＥＮおよびアイドル開度始動状態フラグＦ_ＩＤＬＥＣＮＴのビットをそれぞれ０にセットする。
【００４２】
次回以降のプログラムループにおいてスタータスイッチ７０がオンされてクランキングが開始されると、Ｓ１００で否定されてＳ１１０に進み、回転数異常検出フラグＦ_ＸＯＢＸＩＳＣＳのビットが１か否か判断する。フラグＦ_ＸＯＢＸＩＳＣＳはＳ１０２で０にセットされるため、ここでは否定されてＳ１１２に進み、スロットルバルブ１４がアイドル開度にあるか否か判断する。
【００４３】
Ｓ１１２で否定、即ち、運転者によってアクセラレータが操作されてスロットルバルブ１４がアイドル開度にないときはＳ１１４に進み、スロットル開履歴フラグＦ_ＴＨＯＰＥＮのビットを１にセットする。従って、フラグＦ_ＴＨＯＰＥＮのビットが１にセットされることは、アクセラレータが操作されてスロットルバルブ１４がアイドル開度から開方向に一度でも駆動した履歴があることを、０にセットされることは、アクセラレータが操作されずにスロットルバルブ１４がアイドル開度のままであることを意味する。
【００４４】
他方、Ｓ１１２で肯定されるときはＳ１１６に進み、回転数異常検出履歴フラグＦ_ＸＩＳＣＳＲＣＤのビットが１か否か判断する。フラグＦ_ＸＩＳＣＳＲＣＤはＳ１０２で０にセットされるため、Ｓ１１６の処理を最初に実行するときは否定されてＳ１１８に進み、スロットル開履歴フラグＦ_ＴＨＯＰＥＮのビットが１か否か判断する。
【００４５】
Ｓ１１８で否定されるときはＳ１２０に進み、アイドル開度始動状態フラグＦ_ＩＤＬＥＣＮＴのビットが１か否か判断する。フラグＦ_ＩＤＬＥＣＮＴはＳ１０８で０にセットされるため、Ｓ１２０で否定されてＳ１２２に進み、エンジン回転数ＮＥが完爆回転数ＮＥref（例えば７５０ｒｐｍ）以上か否か判断する。
【００４６】
Ｓ１２２で否定、即ち、エンジン回転数ＮＥが０から完爆回転数ＮＥrefの間にあるときはＳ１２４に進み、アイドル開度始動状態フラグＦ_ＩＤＬＥＣＮＴのビットを１にセットする一方、肯定されるときはＳ１０８に進み、フラグＦ_ＩＤＬＥＣＮＴのビットを０にセットする。
【００４７】
Ｓ１２４でフラグＦ_ＩＤＬＥＣＮＴのビットが１にセットされると、次回以降のプログラムループにおいてＳ１２０で肯定されてＳ１２２，Ｓ１２４をスキップする。また、次回以降のプログラムループにおいて、アクセラレータが一度でも操作されてスロットル開履歴フラグＦ_ＴＨＯＰＥＮのビットが１にセットされると（Ｓ１１４）、Ｓ１１８で肯定されてＳ１０８に進み、フラグＦ_ＩＤＬＥＣＮＴのビットを０にセットする。
【００４８】
従って、このアイドル開度始動状態フラグＦ_ＩＤＬＥＣＮＴが１にセットされることは、スロットルバルブ１４がアイドル開度にあるときにエンジン１０が始動される（正確にはエンジン１０が停止した状態でクランキングされて完爆する）と共に、始動された後も依然としてアイドル開度にあり、よって後述するエンジン回転数ＮＥの異常検出を行うことが可能な始動状態であることを意味する。以下、上記したようなエンジン１０の始動状態を「アイドル開度始動状態」ともいう。
【００４９】
エンジン１０がアイドル開度始動状態のときは次いでＳ１２６に進み、エンジン回転数ＮＥが目標アイドル回転数ＮＥａに応じて設定された所定範囲（例えば下限値を１０００ｒｐｍ、上限値を目標アイドル回転数ＮＥａに所定値（５００ｒｐｍ）を加算した回転数として設定される範囲）ＮＥｂにあるか否か判断する。尚、目標アイドル回転数ＮＥａの算出については後に説明する。
【００５０】
ＩＳＣバルブ２２が正常である場合のエンジン回転数ＮＥは、エンジン始動後に実行されるオープンループ制御（後述）によってアイドル回転数ＮＥａ近傍となるため、Ｓ１２６で肯定されて以降の処理をスキップする。
【００５１】
一方、Ｓ１２６で否定されるときはＳ１２８に進み、エンジン回転数ＮＥが所定範囲ＮＥｂにない状態となってから第１の所定時間Ｔａ経過したか否か判断する。Ｓ１２８の判断は、具体的にはＳ１２６で否定されるとき、図示しないプログラムにおいて異常検出タイマ（ダウンカウンタ）に第１の所定時間Ｔａ（例えば３ｓｅｃ）をセットして時間計測を開始し、異常検出タイマの値が０になったか否か判断することで行う。
【００５２】
Ｓ１２８で否定されるときは以降の処理をスキップする一方、肯定されるときはＳ１３０に進み、回転数異常検出フラグＦ_ＸＯＢＸＩＳＣＳのビットを１にセットする。即ち、フラグＦ_ＸＯＢＸＩＳＣＳのビットが１にセットされることは、エンジン回転数ＮＥが第１の所定時間Ｔａ継続して所定範囲ＮＥｂにない状態（回転数異常）であり、ＩＳＣバルブ２２に異常が生じている可能性があることを意味する。
【００５３】
次いでＳ１３２に進み、エンジン回転数ＮＥが目標アイドル回転数ＮＥａ以上か否か判断する。即ち、Ｓ１３２はエンジン回転数ＮＥが所定範囲ＮＥｂの高回転側に超えた状態か否か判断する処理である。Ｓ１３２で肯定されるときはＳ１３４に進み、ＥＣＵ７４が認識するステッピングモータ２４のステップ位置を示すＩＳＣステップ位置ＩＳＣＳＴＥＰにＩＳＣバルブ２２の全開位置を示す値（全開ステップ位置。具体的には２００ステップ）をセットする一方、否定されるときはＳ１３６に進んでＩＳＣＳＴＥＰにＩＳＣバルブ２２の全閉位置を示す値（全閉ステップ位置。具体的には０ステップ）をセットする。
【００５４】
即ち、Ｓ１３２からＳ１３６では、後に実行されるフィードバック制御に備える、具体的にはステッピングモータ２４を介してＩＳＣバルブ２２を閉方向あるいは閉方向に駆動する動作に備えるため、ＩＳＣステップ位置ＩＳＣＳＴＥＰに全開ステップ位置または全閉ステップ位置を一時的にセットするようにした。
【００５５】
また、Ｓ１３０においてフラグＦ_ＸＯＢＸＩＳＣＳのビットが１にセットされると、次回以降のプログラムループにおいてＳ１１０で肯定されてＳ１３８に進み、回転数異常検出履歴フラグＦ_ＸＩＳＣＳＲＣＤのビットを１にセットする。即ち、フラグＦ_ＸＩＳＣＳＲＣＤのビットが１にセットされることは、エンジン回転数ＮＥが第１の所定時間Ｔａ継続して所定範囲ＮＥｂにない状態が検出された履歴があることを意味する。
【００５６】
次いでＳ１４０に進み、エンジン回転数ＮＥが目標アイドル回転数ＮＥａに収束したことを示す回転数収束フラグＦ_ＮＥＴＲＧＣＮＶ（初期値０）のビットが１か否か判断する。フラグＦ_ＮＥＴＲＧＣＮＶのビットは、後述する如く、ＩＳＣバルブ２２の異常を検出した後に実行されるフィードバック制御によってエンジン回転数ＮＥが目標アイドル回転数ＮＥａに収束するときに１にセットされる一方、収束しないときに０とされる。
【００５７】
従って、Ｓ１４０の処理を最初に実行するときは通例否定されて以降の処理をスキップする。また、次回以降のプログラムループにおいてＳ１４０で肯定されるときはＳ１４２に進み、回転数異常検出フラグＦ_ＸＯＢＸＩＳＣＳのビットを０にセットする。
【００５８】
このように、フィードバック制御によってエンジン回転数ＮＥが目標アイドル回転数ＮＥａに収束するとき（Ｓ１４０で肯定されるとき）は、回転数異常検出フラグＦ_ＸＯＢＸＩＳＣＳのビットを０にセット（Ｓ１４２）、別言すれば、エンジン回転数ＮＥが正常であり、ＩＳＣバルブ２２に異常が生じていない（正常）と判定する。
【００５９】
尚、Ｓ１４２でフラグＦ_ＸＯＢＸＩＳＣＳのビットが０にセットされ、次回以降のプログラムループにおいてＳ１１０で否定される場合、Ｓ１３８でフラグＦ_ＸＩＳＣＳＲＣＤのビットが１にセットされているため、Ｓ１１６で肯定されてＳ１１８からＳ１２４をスキップ、即ち、スロットルバルブ１４がアイドル開度にあるときにエンジン１０が始動されたか否か判定する処理をスキップし、前述したＳ１２６以降の処理を行う。
【００６０】
図４の説明に戻ると、次いでＳ１８に進み、回転数異常検出フラグＦ_ＸＯＢＸＩＳＣＳのビットが１か否か判断する。Ｓ１８で否定されるときはＳ２０に進み、エンジン回転数ＮＥが前記した所定範囲ＮＥｂにあるか否か判断する。今回のプログラムループが例えばイグニッションスイッチ６６がオンされた直後、またはスタータスイッチ７０がオンされた直後に実行されるときは通常、エンジン回転数ＮＥは所定範囲ＮＥｂにないため、否定されてＳ２２に進み、フラグＦ_ＸＯＢＸＩＳＣＳのビットが１か否か判断する。
【００６１】
Ｓ２２で否定されるときはＳ２４に進み、ステッピングモータ２４をオープンループ制御する。Ｓ２４においては、具体的には、ステッピングモータ２４のステップ位置がＩＳＣ目標ステップ位置（目標ステップ位置）となるようにし、ＩＳＣバルブ２２をエンジン温度ＴＷに即した適切な開度にする制御を行う。
【００６２】
ここで、上記したＩＳＣ目標ステップ位置および目標アイドル回転数ＮＥａについて説明する。
【００６３】
図６はＩＳＣ目標ステップ位置と目標アイドル回転数ＮＥａの算出処理を示すフロー・チャートである。図示のプログラムは、ＥＣＵ７４において図４，５の処理と平行して、所定の周期（例えば１００ｍｓｅｃ）ごとに実行される。
【００６４】
先ずＳ２００において水温センサ６２の出力に基づいてエンジン温度ＴＷを検出（算出）する。次いでＳ２０２に進み、検出されたエンジン温度ＴＷに基づいてステッピングモータ２４のＩＳＣ目標ステップ位置を算出する。ＩＳＣ目標ステップ位置とは、エンジン１０をアイドル回転数で運転するときのＩＳＣバルブ２２の開度に対応する、ステッピングモータ２４のステップ位置を意味し、エンジン温度ＴＷに応じてその値が設定される。具体的には、ＩＳＣ目標ステップ位置は図７にその特性を示すテーブルを検索することによって求められる。
【００６５】
図７に示す如く、ＩＳＣ目標ステップ位置は、エンジン温度ＴＷが比較的低いときは大きいステップ数、即ち、ＩＳＣバルブ２２が高開度となるように設定され、エンジン温度ＴＷが上昇するに連れてステップ数は減少する（ＩＳＣバルブ２２が低開度となる）ように設定される。
【００６６】
次いでＳ２０４に進み、エンジン温度ＴＷに基づいて目標アイドル回転数ＮＥａを算出する。目標アイドル回転数ＮＥａの算出は、図８にその特性を示すテーブルを検出されたエンジン温度ＴＷから検索することで行う。
【００６７】
目標アイドル回転数ＮＥａは、図８に示すように、エンジン温度ＴＷが比較的低いときは高回転に設定される一方、エンジン温度ＴＷが上昇するに連れて低回転となるように設定される。Ｓ２０４で算出された目標アイドル回転数ＮＥａは、前記した所定範囲ＮＥｂの設定、フィードバック制御などを実行する際に利用される。尚、図７および図８に示すテーブルは予め実験により求められてＲＯＭ７４ｈに格納される。
【００６８】
図４の説明に戻ると、Ｓ１８またはＳ２０で肯定されるときはＳ２６に進み、スロットルバルブ１４がアイドル開度にあるか否か判断する。Ｓ２６で否定、即ち、アクセラレータが運転者によって操作されてスロットルバルブ１４がアイドル開度にないときはＳ２２，Ｓ２４に進んで前述した処理を行う一方、肯定されるときはＳ２８に進み、フィードバック再開ディレイタイマ（後述）の値が０か否か判断する。フィードバック再開ディレイタイマは初期値が０であるため、Ｓ２８の処理を最初に実行するときは肯定されてＳ３０に進み、フィードバック制御中止判断処理を実行する。
【００６９】
図９はＳ３０のフィードバック制御中止判断処理のサブ・ルーチン・フロー・チャートである。
【００７０】
先ずＳ３００において、前回のプログラムループでフィードバック制御を実行したか否か判断する。Ｓ３００の処理を最初に行うときは未だフィードバック制御を実行していないため、否定されてＳ３０２に進み、エンジン回転数ＮＥを値ＮＥＢＵＦとしてＲＡＭ７４ｉにバッファリングし、Ｓ３０４に進んでＩＳＣステップ位置ＩＳＣＳＴＥＰも値ＩＳＣＳＴＥＰＢＵＦとして同様にＲＡＭ７４ｉにバッファリングする。次いでＳ３０６に進み、ＩＳＣステップ駆動所要時間計測タイマＴＭＦＢＣＨＫ（アップカウンタ）に０をセットし、タイマＴＭＦＢＣＨＫをスタートさせる。図９におけるその他の処理については後に説明する。
【００７１】
図４の説明に戻ると、次いでＳ３２に進み、フィードバック制御中止フラグＦ_ＩＳＣＦＢＮＧ（後述）のビットが１か否か判断する。フラグＦ_ＩＳＣＦＢＮＧは初期値が０とされるため、Ｓ３２の処理を最初に実行するときは否定されてＳ３４に進み、エンジン回転数ＮＥとアイドル回転数ＮＥａの差が絶対値において既定値（例えば２０ｒｐｍ）以下の状態が第２の所定時間Ｔｂ（例えば３ｓｅｃ）継続しているか否か、別言すれば、エンジン回転数ＮＥがアイドル回転数ＮＥａの近傍にある状態が第２の所定時間Ｔｂ継続しているか否か判断する。
【００７２】
Ｓ３４で否定されるときはＳ３６に進み、回転数収束フラグＦ_ＮＥＴＲＧＣＮＶのビットを０にセットしてＳ３８に進み、フィードバック制御を実行する。Ｓ３８においては、具体的には、エンジン回転数ＮＥがアイドル回転数ＮＥａ（正確には、図６のＳ２０４で算出されたアイドル回転数ＮＥａ）に一致するように、ステッピングモータ２４を介してＩＳＣバルブ２２の開度をフィードバック制御する（ＰＩＤ制御）。より具体的には、エンジン回転数ＮＥがアイドル回転数ＮＥａを超えるときはＩＳＣバルブ２２を閉方向に駆動する一方、エンジン回転数ＮＥがアイドル回転数ＮＥａ未満のときはＩＳＣバルブ２２を開方向に駆動するように、ステッピングモータ２４の動作を制御する。
【００７３】
以上から分かるように、Ｓ３８のフィードバック制御は、基本的にはスロットルバルブ１４がアイドル開度にあって（Ｓ２６で肯定）エンジン回転数ＮＥがアイドル回転数ＮＥａ近傍にないとき（Ｓ３４で否定）に実行されるが、エンジン回転数ＮＥの異常を検出後（Ｓ１８で肯定）、スロットルバルブ１４がアイドル開度にあって（Ｓ２６で肯定）エンジン回転数ＮＥがアイドル回転数ＮＥａ近傍にないとき（Ｓ３４で否定）にも実行される。
【００７４】
次いでＳ４０に進み、回転数異常検出フラグＦ_ＸＯＢＸＩＳＣＳのビットが１か否か判断する。Ｓ４０で否定されるときはＳ４２に進んでフィードバック制御経過時間タイマＸＴＭＩＳＣＳ（アップカウンタ）に０をセットする一方、肯定されるときはＳ４４に進んでタイマＸＴＭＩＳＣＳをスタートさせる。即ち、タイマＸＴＭＩＳＣＳは、エンジン回転数ＮＥの異常を検出した後のフィードバック制御が実行されてからの経過時間を示す。
【００７５】
次いでＳ４６に進み、ＩＳＣバルブ２２の異常判定処理を実行する。
【００７６】
図１０は、図４のＳ４６のＩＳＣバルブ異常判定処理のサブ・ルーチン・フロー・チャートである。
【００７７】
先ずＳ４００において回転数異常検出フラグＦ_ＸＯＢＸＩＳＣＳのビットが１か否か判断する。Ｓ４００で肯定されるときはＳ４０２に進み、タイマＸＴＭＩＳＣＳが第３の所定時間（所定時間。例えば３０ｓｅｃ）Ｔｃ以上か否か判断する。Ｓ４０２で肯定、即ち、エンジン回転数ＮＥの異常を検出した後のフィードバック制御を実行してから第３の所定時間Ｔｃ経過した後、エンジン回転数ＮＥが所定範囲ＮＥｂ内に収束しないときはＳ４０４に進み、ＩＳＣバルブ２２に異常が生じたと判定したことを示すＩＳＣ異常判定フラグＦ_ＸＡＰＸＩＳＣＳのビットを１にセットする。尚、Ｓ４００またはＳ４０２で否定されるときは以降の処理をスキップする。
【００７８】
次いで図４のＳ４８に進み、エンジン回転数上昇防止処理を実行する。具体的には、図１０の処理でＩＳＣバルブ２２に異常が生じたと判定されるとき、運転状態によってはエンジン回転数ＮＥが不要に上昇し（吹き上がり）、運転者に違和感を与える恐れがあるため、Ｓ４８においてエンジン１０の点火と燃料噴射を制御し、エンジン回転数ＮＥの上昇を防止するようにした。
【００７９】
図１１は、そのエンジン回転数上昇防止処理のサブ・ルーチン・フロー・チャートである。
【００８０】
先ずＳ５００においてＩＳＣ異常判定フラグＦ_ＸＡＰＸＩＳＣＳのビットが１か否か判断し、肯定されるときはＳ５０２に進み、スロットルバルブ１４がアイドル開度にあるか否か判断する。Ｓ５０２で肯定されるときはＳ５０４に進み、エンジン回転数ＮＥが所定回転数ＮＥｃ（具体的には目標アイドル回転数ＮＥａ）以上か否か判断する。
【００８１】
Ｓ５０４で肯定されるときはＳ５０６に進み、エンジン回転数ＮＥから所定回転数ＮＥｃを減算して得た値を偏差ＤＮＥＸＩＳＣとする。次いでＳ５０８に進み、偏差ＤＮＥＸＩＳＣに基づいて点火時期遅角補正値ＩＧＩＳＣＲを算出する。具体的には、点火時期遅角補正値ＩＧＩＳＣＲは図１２にその特性を示すテーブルを検索することによって求められる。
【００８２】
図１２に示す如く、点火時期遅角補正値ＩＧＩＳＣＲは、偏差ＤＮＥＸＩＳＣが比較的小さいときは０ｄｅｇ、即ち、点火時期を遅角させない値に設定される一方、偏差ＤＮＥＸＩＳＣが増加するに連れて点火時期の遅角量を増加させるような値に設定される。
【００８３】
次いでＳ５１０に進み、Ｓ５０８と同様、算出された偏差ＤＮＥＸＩＳＣに基づいて燃料減量補正値ＭＩＳＣＬＥＡＮを、図１３にその特性を示すテーブルを検索することによって算出する。燃料減量補正値ＭＩＳＣＬＥＡＮは、図１３に示すように、偏差ＤＮＥＸＩＳＣが比較的小さいときは１．０倍、即ち、燃料噴射量を減量させない値に設定される一方、偏差ＤＮＥＸＩＳＣの増加に伴って燃料噴射量を減少させる量を増加、逆に言えば、燃料噴射量をより減量するような値とされる。
【００８４】
また、Ｓ５００，Ｓ５０２，Ｓ５０４で否定されるときは、エンジン回転数ＮＥが不要に上昇することはないため、Ｓ５１２に進んで点火時期遅角補正値ＩＧＩＳＣＲに０ｄｅｇをセットし、Ｓ５１４に進んで燃料減量補正値ＭＩＳＣＬＥＡＮに１．０倍をセットする、即ち、点火時期と燃料噴射量の補正を行わないような値にする。
【００８５】
次いでＳ５１６に進み、点火時期遅角補正値ＩＧＩＳＣＲと燃料減量補正値ＭＩＳＣＬＥＡＮに応じて、図示しないプログラムにおいてエンジン回転数ＮＥや吸気管内絶対圧ＰＢＡなどに基づいて算出された基本点火時期と基本燃料噴射量を補正する。具体的には、基本点火時期に点火時期遅角補正値ＩＧＩＳＣＲを加算して補正した点火時期を示す制御信号を点火回路７４ｅを介して点火コイル３４に送出し、点火時期を遅角させると共に、基準噴射燃料量に燃料減量補正値ＭＩＳＣＬＥＡＮを乗算して補正した値を示す制御信号を駆動回路７４ｆを介してインジェクタ２６に送り、燃料噴射量を減量する。これにより、エンジン回転数ＮＥが不要に上昇する（吹き上がる）のを防止でき、運転者に違和感を与えることもない。
【００８６】
図４の説明に戻ると、ＩＳＣ異常判定フラグＦ_ＸＡＰＸＩＳＣＳのビットが図１０のＳ４０４で１にセットされると、次回のプログラムループにおいてはＳ１０で肯定され、Ｓ５０に進んでステッピングモータ２４への通電を停止する。即ち、ＩＳＣバルブ２２に異常が生じたと判定されるときはステッピングモータ２４を停止させる。
【００８７】
また、エンジン回転数ＮＥの異常を検出した後にＳ３８のフィードバック制御を実行することで、エンジン回転数ＮＥとアイドル回転数ＮＥａの差が絶対値において既定値以下、即ち、エンジン回転数ＮＥが目標アイドル回転数ＮＥａに収束することがある。その場合はＳ３４で肯定され、Ｓ５２に進み、ＩＳＣステップ位置ＩＳＣＳＴＥＰを図６のＳ２０２で算出されるＩＳＣ目標ステップ位置のステップ値に置き換える。
【００８８】
即ち、図５のＳ１２８，Ｓ１３０でＩＳＣステップ位置ＩＳＣＳＴＥＰにＩＳＣバルブ２２の全開位置または全閉位置を示す値を一時的にセットしたが、フィードバック制御によってエンジン回転数ＮＥが目標アイドル回転数ＮＥａに収束するときは、ステッピングモータ２４のステップ位置が図７に示されるＩＳＣ目標ステップ位置にあると推定することができるため、Ｓ５２では、ＩＳＣステップ位置ＩＳＣＳＴＥＰを、エンジン温度ＴＷに基づいて算出されるＩＳＣ目標ステップ位置のステップ値に置き換えるようにした。
【００８９】
これにより、ステッピングモータ２４の脱調によって生じたＥＣＵ７４の認識するステップ位置とステッピングモータの実際のステップ位置（以下「実ステップ位置」ともいう）との間のズレを修正でき、ステッピングモータ２４によるＩＳＣバルブ２２の制御精度を確保することが可能となる。
【００９０】
次いでＳ５４に進み、前述したＳ１４０で利用される回転数収束フラグＦ_ＮＥＴＲＧＣＮＶのビットを１にセットし、Ｓ５６に進んでステッピングモータ２４の駆動を停止させた後、Ｓ４６，Ｓ４８の処理を実行する。
【００９１】
図１４および図１５は、上記した処理を説明するタイム・チャートである。尚、図１４はＳ４０４でＩＳＣバルブ２２に異常が生じたと判定される場合を示し、図１５は異常が生じていない（正常）と判定する場合を示す。
【００９２】
図１４を参照してＩＳＣバルブ２２に異常が生じたと判定する場合を説明すると、先ず時点ｔ１においてイグニッションスイッチ６６がオンされる。スロットルバルブ１４がアイドル開度の状態でスタータスイッチ７０がオンされると（時点ｔ２）、クランキングが開始されてエンジン１０は始動し、エンジン回転数ＮＥが完爆回転数ＮＥref以上となる（時点ｔ３。Ｓ１１２〜Ｓ１２４）。
【００９３】
エンジン１０が始動された後も依然としてスロットルバルブ１４がアイドル開度にある状態において、エンジン回転数ＮＥが所定範囲ＮＥｂにないとき（回転数異常のとき）は異常検出タイマをスタートさせる（時点ｔ４。Ｓ１２６，Ｓ１２８）。そしてエンジン回転数ＮＥが第１の所定時間Ｔａ継続して所定範囲ＮＥｂにないとき（時点ｔ５。Ｓ１２８）、回転数異常検出フラグＦ_ＸＯＢＸＩＳＣＳのビットを１にセットする（Ｓ１３０）。
【００９４】
さらに、時点ｔ５においては、ＩＳＣステップ位置ＩＳＣＳＴＥＰに２２に全開ステップ位置を一時的にセットすると共に（Ｓ１３４）、エンジン回転数ＮＥがアイドル回転数ＮＥａに一致するように、ステッピングモータ２４を介してＩＳＣバルブ２２の開度をフィードバック制御する（Ｓ３８）。また、フィードバック制御経過時間タイマＸＴＭＩＳＣＳをスタートさせる（Ｓ４４）。
【００９５】
タイマＸＴＭＩＳＣＳが第３の所定時間Ｔｃとなる、即ち、フィードバック制御を実行してから第３の所定時間Ｔｃ経過した後、エンジン回転数ＮＥが所定範囲ＮＥｂ内に収束しないとき（時点ｔ６。Ｓ４０２）、ＩＳＣバルブ２２に異常が生じたと判断してＩＳＣ異常判定フラグＦ_ＸＡＰＸＩＳＣＳのビットを１にセットし（Ｓ４０４）、ステッピングモータ２４への通電を停止する（Ｓ５０）。
【００９６】
他方、図１５に示す如く、時点ｔ５で開始されたフィードバック制御によってエンジン回転数ＮＥが目標アイドル回転数ＮＥａに収束すると（時点ｔ７。Ｓ３４）、回転数異常検出フラグＦ_ＸＯＢＸＩＳＣＳのビットを０にセット（Ｓ１４０，Ｓ１４２）、別言すれば、ＩＳＣバルブ２２に異常が生じていない（正常）と判定する。さらに、時点ｔ７においては、ＩＳＣステップ位置ＩＳＣＳＴＥＰをＩＳＣ目標ステップ位置のステップ値に置き換え（Ｓ５２）、ＥＣＵ７４の認識するステップ位置とステッピングモータ２４の実ステップ位置との間のズレを修正する。
【００９７】
図４フロー・チャートの説明に戻り、前記したフィードバック制御中止判断処理について説明する。
【００９８】
フィードバック制御は、前述したように、エンジン回転数ＮＥをアイドル回転数ＮＥａに一致させるようにステッピングモータ２４の動作を制御してＩＳＣバルブ２２を駆動する。そのようなフィードバック制御を実行しているとき、車両の運転状態によっては吸入空気量が不足し、エンジン１０がストールする恐れがある。
【００９９】
即ち、例えばエンジン１０の出力が変速機とクラッチを介して後輪（駆動輪）に伝達される状態で降坂路を走行する場合、路面から作用する外力によってエンジン１０のクランクシャフト４２は回転させられ、エンジン回転数ＮＥは一定に保持される（あるいは上昇する）。そのような状態でエンジン回転数ＮＥが目標アイドル回転数ＮＥａを超えると、ＩＳＣバルブ２２はフィードバック制御によって吸入空気量を減ずる閉方向へ駆動されることとなる。そのとき、エンジン１０と後輪との動力伝達がクラッチによって断たれると共に、ＩＳＣバルブ２２が全閉位置付近にあると、吸入空気量が不足してエンジン回転数ＮＥが低下し、エンジン１０がストールする恐れがある。
【０１００】
そこで、この発明に係る内燃機関の制御装置あっては、フィードバック制御の実行中に、ＩＳＣバルブ２２の駆動とＩＳＣバルブ２２の駆動によって変動するエンジン回転数ＮＥの相関を監視し、フィードバック制御を実行する必要がない運転状態にあると判断できるときはフィードバック制御を中止するようにした。
【０１０１】
以下具体的に説明すると、図４フロー・チャートにおいてフィードバック制御の実行中に、Ｓ３０の処理が実行されると、図９に示すフィードバック制御中止（停止）判断処理が行われる。
【０１０２】
図９に示すように、先ずＳ３００において、前述した如く、前回のプログラムループでフィードバック制御を実行したか否か判断する。今回のプログラムループはフィードバック制御の実行中であるため、Ｓ３００で肯定されてＳ３０８に進み、ステッピングモータ２４によってＩＳＣバルブ２２が連続して所定ステップ数ＩＳＣＳＴＥＰref（例えば２０ステップ）駆動されたか否か判断する。これは、ＩＳＣステップ位置ＩＳＣＳＴＥＰとＳ３０４でバッファリングした値ＩＳＣＳＴＥＰＢＵＦとの差が絶対値において所定ステップ数ＩＳＣＳＴＥＰref以上か否かで判断する。
【０１０３】
Ｓ３０８で否定されるときは以降の処理をスキップする一方、肯定されるときはＳ３１０に進み、ＩＳＣステップ位置ＩＳＣＳＴＥＰが値ＩＳＣＳＴＥＰＢＵＦ以上か否か判断する。Ｓ３１０で肯定、即ち、ＩＳＣバルブ２２が開方向に駆動したときはＳ３１２に進み、開方向駆動フラグＦ_ＤＳＴＥＰＦＢのビットを１にセットする。他方、Ｓ３１０で否定、即ち、ＩＳＣバルブ２２が閉方向に駆動したときはＳ３１４に進み、開方向駆動フラグＦ_ＤＳＴＥＰＦＢのビットを０にセットする。
【０１０４】
次いでＳ３１６に進み、エンジン回転数ＮＥの変化量ＤＮＥＦＢを算出する。変化量ＤＮＥＦＢは、具体的にはエンジン回転数ＮＥからＳ３０２でバッファリングした値ＮＥＢＵＦを減算して得た差の絶対値である。
【０１０５】
次いでＳ３１８に進み、エンジン回転数ＮＥがＳ３０２でバッファリングした値ＮＥＢＵＦ以上か否か判断する。Ｓ３１８で肯定されるときはＳ３２０に進み、回転数上昇フラグＦ_ＤＮＥＦＢのビットを１にセットする一方、否定されるときはＳ３２２に進んでフラグＦ_ＤＮＥＦＢのビットを０にセットする。従って、回転数上昇フラグＦ_ＤＮＥＦＢのビットが１にセットされることは、エンジン回転数ＮＥが上昇（増加）していることを、０にセットされることはエンジン回転数ＮＥが下降（減少）していることを意味する。
【０１０６】
次いでＳ３２４に進み、前述したＳ３０６でスタートさせたタイマＴＭＦＢＣＨＫの値が所定タイマ値以上か否か判断する。所定タイマ値としては、ＩＳＣバルブ２２において開方向または閉方向に所定ステップ数駆動する動作が連続して行われたと判断できるような値に設定され、例えば２００ｍｓｅｃとされる。
【０１０７】
具体的に説明すると、ステッピングモータ２４は駆動周波数２００ｐｐｓ（即ち、１ステップ駆動するのに５ｍｓｅｃを要する）で駆動される。所定ステップ数ＩＳＣＳＴＥＰrefを例えば２０ステップと設定する場合、ＩＳＣバルブ２２が連続して駆動すると１００ｍｓｅｃの時間を要することとなる。よって所定タイマ値を２００ｍｓｅｃとすることで、タイマＴＭＦＢＣＨＫの値が所定タイマ値未満であれば、連続して駆動されたと判断できる一方、所定タイマ値以上であれば比較的長い時間をかけて駆動された、換言すれば、連続して駆動されていないと判断することができる。
【０１０８】
Ｓ３２４で否定されるときはＳ３２６に進み、ＩＳＣバルブ２２の開閉方向に対してエンジン回転ＮＥの変化方向が一致しているか否か判断する。これは、開方向駆動フラグＦ_ＤＳＴＥＰＦＢと回転数上昇フラグＦ_ＤＮＥＦＢのビットが一致しているか否かで判断する。
【０１０９】
Ｓ３２６は、具体的には、ＩＳＣバルブ２２が開方向へ駆動されている（即ち、吸入空気量が増加している）にも関わらずエンジン回転数ＮＥが下降する、逆に、ＩＳＣバルブ２２が閉方向へ駆動されている（即ち、吸入空気量が減少している）にも関わらずエンジン回転数ＮＥが上昇するという、ＩＳＣバルブ２２による吸入空気量の増減とエンジン回転数ＮＥの上昇・下降が一致していない運転状態の場合、フィードバック制御を実行する必要がないと判断するようにした処理である。
【０１１０】
Ｓ３２６で肯定されるときはＳ３２８に進み、エンジン回転数の変化量ＤＮＥＦＢが所定値ＤＮＥＦＢref未満か否か判断する。Ｓ３２８で肯定またはＳ３２６で否定されるときは、上記したようなエンジン１０がストールする恐れがあり、フィードバック制御を実行する必要がない運転状態にあると判断し、Ｓ３３０に進んでフィードバック制御中止フラグＦ_ＩＳＣＦＢＮＧのビットを１にセットする。
【０１１１】
他方、Ｓ３２４で肯定あるいはＳ３２８で否定されるときは、フィードバック制御を実行しても良い運転状態にあると判断し、Ｓ３３２に進んでフィードバック制御中止フラグＦ_ＩＳＣＦＢＮＧのビットを０にセットする。Ｓ３３０またはＳ３３２の処理後、前記したＳ３０２からＳ３０６の処理を実行し、図４フロー・チャートへ戻る。
【０１１２】
Ｓ３３２においてフラグＦ_ＩＳＣＦＢＮＧのビットが０にセットされるときはＳ４３で否定されてＳ３４以降の処理に進み、フィードバック制御を継続して実行する。一方、Ｓ３３０においてフラグＦ_ＩＳＣＦＢＮＧのビットが１にセットされると、Ｓ３２で肯定されてＳ５８に進み、フィードバック再開ディレイタイマ（ダウンカウンタ）の値に所定ディレイタイマ値（所定の中止時間）をセットする。このフィードバック再開ディレイタイマは、フィードバック制御が長時間に亘って中止されるのを回避（防止）するタイマであるため、所定ディレイタイマ値は適宜な時間（例えば５ｓｅｃ）とされる。
【０１１３】
次いでＳ２２で否定されるときにＳ２４に進み、フィードバック制御を中止し（フィードバック制御に代え）、ステッピングモータ２４を前記したオープンループ制御する。このように、フィードバック制御の実行中に、ＩＳＣバルブ２２が開方向または閉方向に連続して所定ステップ数（所定ステップ数ＩＳＣＳＴＥＰref）駆動されると共に、エンジンの回転数の変化量ＤＮＥＦＢが所定値ＤＮＥＦＢref未満のとき、フィードバック制御を中止する。
【０１１４】
次回以降のプログラムループにおいては、フィードバック再開ディレイタイマの値が０になるまではＳ３２で否定され、オープンループ制御を継続する。そして、フィードバック再開ディレイタイマの値が０になるとき（換言すれば、フィードバック制御を中止してから所定の中止時間経過した後）、オープンループ制御からフィードバック制御に切り換える、即ち、フィードバック制御を再開する。
【０１１５】
以上の如く、この発明の実施例にあっては、内燃機関（エンジン）１０の吸気路１２に配置されるスロットルバルブ１４と、前記吸気路に接続されて前記スロットルバルブをバイパスするバイパス路２０と、前記バイパス路の空気量を調整して前記内燃機関のアイドル回転数ＮＥａを調整するアイドル回転数制御バルブ（ＩＳＣバルブ）２２と、前記アイドル回転数制御バルブを駆動するステッピングモータ２４とを備えた内燃機関の制御装置において、前記スロットルバルブ１４がアイドル開度にあるときに前記内燃機関１０が始動されると共に、始動された後も依然として前記アイドル開度にあるか否か判定するアイドル開度始動状態判定手段と（ＥＣＵ７４。Ｓ１６，Ｓ１１２〜Ｓ１２４）、前記アイドル開度始動状態と判定されるとき、前記内燃機関の回転数ＮＥが目標アイドル回転数ＮＥａに応じて設定された所定範囲ＮＥｂにあるか否か判定する回転数範囲判定手段と（ＥＣＵ７４。Ｓ１６，Ｓ１２６）、前記内燃機関の回転数ＮＥが前記所定範囲ＮＥｂにないと判定されるとき、前記内燃機関の回転数ＮＥが前記目標アイドル回転数ＮＥａに一致するように、前記ステッピングモータ２４を介して前記アイドル回転数制御バルブ２２の開度をフィードバック制御するフィードバック制御手段と（ＥＣＵ７４。Ｓ３８）、前記フィードバック制御を実行してから所定時間（第３の所定時間）Ｔｃ経過した後、前記内燃機関の回転数ＮＥが前記所定範囲ＮＥｂ内に収束しないとき、前記アイドル回転数制御バルブ２２に異常が生じたと判定する異常判定手段とを備える（ＥＣＵ７４。Ｓ４６，Ｓ４００〜Ｓ４０４）。
【０１１６】
これにより、簡易な構成でありながら、具体的には従来技術のようにエンジンの無負荷状態を検出する装置（例えば車速センサなど）を必要とすることなく、ＩＳＣバルブ２２の異常を検出（検知）することができると共に、コスト的にも有利にすることができる。
【０１１７】
また、前記内燃機関の温度（エンジン温度）ＴＷを検出する温度検出手段と（水温センサ６２。ＥＣＵ７４。Ｓ２００）、前記検出された内燃機関の温度ＴＷに基づいて前記ステッピングモータ２４の目標ステップ位置（ＩＳＣ目標ステップ位置）を算出する目標ステップ位置算出手段と（ＥＣＵ７４。Ｓ２０２）、前記検出された内燃機関の温度ＴＷに基づき、前記フィードバック制御の実行中に、前記内燃機関の回転数ＮＥと前記目標アイドル回転数ＮＥａの差が既定値以下となるときの前記ステッピングモータ２４の位置を前記目標ステップ位置のステップ値に置き換える置き換え手段とを備える如く構成した（ＥＣＵ７４。Ｓ３４，Ｓ５２）ので、例えばステッピングモータ２４の脱調によって生じたＥＣＵ７４の認識するステップ位置（ＩＳＣステップ位置ＩＳＣＳＴＥＰ）とステッピングモータの実際のステップ位置（実ステップ位置）との間のズレを修正でき、ステッピングモータ２４によるＩＳＣバルブ２２の制御精度を確保することができる。
【０１１８】
また、前記アイドル回転数制御バルブ２２に異常が生じたと判定されると共に、前記内燃機関の回転数ＮＥが所定回転数Ｔｃ以上となるとき、前記内燃機関１０の点火と燃料噴射のうちの少なくともいずれかを制御して前記内燃機関の回転数ＮＥの上昇を防止する回転数上昇防止手段を備える如く構成したので（ＥＣＵ７４。Ｓ４８，Ｓ５００〜Ｓ５１６）、ＩＳＣバルブ２２に異常が生じたときのエンジン回転数ＮＥの不要な上昇（吹き上がり）を効果的に防止することができる。
【０１１９】
また、前記フィードバック制御手段は、前記フィードバック制御の実行中に、前記アイドル回転数制御バルブ２２が開方向または閉方向に連続して所定ステップ数（所定ステップ数）ＩＳＣＳＴＥＰref駆動されると共に、前記内燃機関の回転数の変化量ＤＮＥＦＢが所定値ＤＮＥＦＢref未満のとき、前記フィードバック制御を中止する如く構成したので（ＥＣＵ７４。Ｓ２４，Ｓ３０，Ｓ３２，Ｓ３００〜Ｓ３３２）、フィードバック制御を実行する必要がない運転状態のときにフィードバック制御を中止でき、よってエンジン１０のストールを防止することができる。
【０１２０】
また、前記フィードバック制御手段は、前記フィードバック制御を中止してから所定の中止時間経過した後（フィードバック再開ディレイタイマの値が０になるとき）、前記フィードバック制御を再開する如く構成したので（ＥＣＵ７４。Ｓ５８，Ｓ３２）、中止していたフィードバック制御を効果的なタイミングで再開させることが可能となる。
【０１２１】
尚、上記において、ＩＳＣ目標ステップ位置と目標アイドル回転数ＮＥａをエンジン温度ＴＷに基づいて算出するように構成したが、それに限られるものではなく、エンジン温度ＴＷに加えて例えば吸入空気の温度ＴＡや吸気路内絶対圧ＰＢＡ、図示しないエアコンやラジエータファンなどの電気負荷の変化量などを考慮して算出するようにしても良い。
【０１２２】
また、エンジン回転数上昇防止処理において、点火時期を遅角させると共に、燃料噴射量を減量するように構成したが、それに限られるものではなく、点火カットや燃料カットなどを行ってエンジン回転数ＮＥの上昇を防止するようにしても良い。その意味から、請求項３において「内燃機関の点火と燃料噴射のうちの少なくともいずれかを制御して前記内燃機関の回転数の上昇を防止する」と記載した。
【０１２３】
また、所定範囲ＮＥｂ、所定時間Ｔｃ、所定ディレイタイマ値やエンジン１０の排気量などを具体的な値で示したが、それらは例示であって限定されるものではない。
【０１２４】
また、車両の例として二輪自動車を挙げたが、それに限られるものではなく、例えばスクータやＡＴＶ（All Terrain Vehicle）など、運転者がシート（サドル）に跨って乗る型の、いわゆる鞍乗り型車両であれば良く、さらには他の車両（例えば四輪自動車）であっても良い。
【図面の簡単な説明】
【０１２５】
【図１】この発明の実施例に係る内燃機関の制御装置を模式的に示す概略図である。
【図２】図１に示すＩＳＣバルブとステッピングモータ付近を拡大して示す拡大模式断面図である。
【図３】図１に示すＥＣＵの構成を全体的に示すブロック図である。
【図４】図１に示す内燃機関の制御装置の動作を示すフロー・チャートである。
【図５】図４の回転数異常検出処理のサブ・ルーチン・フロー・チャートである。
【図６】図４などの処理で利用されるＩＳＣ目標ステップ位置と目標アイドル回転数の算出処理を示すフロー・チャートである。
【図７】図６フロー・チャートの処理で算出するＩＳＣ目標ステップ位置に対するエンジン温度の特性を示すグラフである。
【図８】図６フロー・チャートの処理で算出する目標アイドル回転数に対するエンジン温度の特性を示すグラフである。
【図９】図４のフィードバック制御中止判断処理のサブ・ルーチン・フロー・チャートである。
【図１０】図４のＩＳＣバルブ異常判定処理のサブ・ルーチン・フロー・チャートである。
【図１１】図４のエンジン回転数上昇防止処理のサブ・ルーチン・フロー・チャートである。
【図１２】図１１フロー・チャートの処理で算出する点火時期遅角補正値に対するエンジン回転数の偏差の特性を示すグラフである。
【図１３】図１１フロー・チャートの処理で算出する燃料減量補正値に対するエンジン回転数の偏差の特性を示すグラフである。
【図１４】図１に示す内燃機関の制御装置の動作を示すタイム・チャートである。
【図１５】図１に示す内燃機関の制御装置の動作を示す、図１４と同様なタイム・チャートである。
【符号の説明】
【０１２６】
１０  エンジン（内燃機関）、１２  吸気路、１４  スロットルバルブ、２０  バイパス路、２２  ＩＳＣバルブ（アイドル回転数制御バルブ）、２４  ステッピングモータ、
６２  水温センサ、７４  ＥＣＵ（電子制御ユニット）
【図１】
2010156268.tif 000003
【図２】
2010156268.tif 000004
【図３】
2010156268.tif 000005
【図４】
2010156268.tif 000006
【図５】
2010156268.tif 000007
【図６】
2010156268.tif 000008
【図７】
2010156268.tif 000009
【図８】
2010156268.tif 000010
【図９】
2010156268.tif 000011
【図１０】
2010156268.tif 000012
【図１１】
2010156268.tif 000013
【図１２】
2010156268.tif 000014
【図１３】
2010156268.tif 000015
【図１４】
2010156268.tif 000016
【図１５】
2010156268.tif 000017