(57)【特許請求の範囲】
【請求項１】
エンジンの吸気通路に配設されたスロットルバルブが全閉状態であるか否かを前記スロットルバルブの開度センサのセンサ出力信号に基づいて判定するエンジンの制御装置であって、
前記開度センサの開度センサ温度を取得する開度センサ温度取得手段と、
前記開度センサのセンサ出力信号を取得するセンサ出力信号取得手段と、
前記スロットルバルブの全閉状態において、前記開度センサ温度取得手段により取得された開度センサ温度と、該開度センサ温度での前記センサ出力信号取得手段により取得されたセンサ出力信号との、２組の組み合せに基づいて、開度センサ温度−センサ出力信号の特性直線を生成する特性直線生成手段と、
前記特性直線生成手段により生成された特性直線を用いて、前記温度取得手段により取得される現在の開度センサ温度から、前記スロットルバルブの全閉状態におけるセンサ出力信号の閾値を算出する算出手段と、
前記算出手段により算出された閾値と、前記センサ出力信号取得手段により取得される現在のセンサ出力信号とを比較して、前記スロットルバルブの全閉状態を判定する全閉判定手段と、
前記特性直線生成手段により生成された特性直線を更新するか否かを更新条件に基づいて判定する更新判定手段と、
前記更新判定手段が前記特性直線を更新する判定をした場合、前記２組の組み合せのうち最新ではない１組を、前記開度センサ温度取得手段により取得された現在の開度センサ温度と、該開度センサ温度での前記センサ出力信号取得手段により取得された現在のセンサ出力信号との現在の１組に更新し、
前記更新判定手段が前記特性直線を更新しない判定をした場合、前記２組の組み合せを更新しない更新手段と、を有し、
前記更新条件は、前記２組の組み合せのうち最新の１組と前記現在の１組との、２つの開度センサ温度の差の絶対値が所定値以上であるか否かの条件であり、
前記更新判定手段は、前記２つの開度センサ温度の差の絶対値が所定値以上の場合、前記特性直線を更新する判定をし、前記２つの開度センサ温度の差の絶対値が所定値未満の場合、前記特性直線を更新しない判定をすることを特徴とするエンジンの制御装置。
【請求項２】
前記スロットルバルブの全閉状態において、前記開度センサ温度取得手段および前記センサ出力信号取得手段により取得された開度センサ温度およびセンサ出力信号の、２組の組み合せを、書き換え可能な不揮発性メモリに記憶する記憶処理手段を更に有し、
前記特性直線生成手段は、前記記憶処理手段により前記不揮発性メモリに記憶された前記開度センサ温度および前記センサ出力信号の、２組の組み合せに基づいて、開度センサ温度−センサ出力信号の特性直線を生成することを特徴とする請求項１に記載のエンジンの制御装置。
【請求項３】
前記エンジンが始動している場合、前記開度センサ温度取得手段および前記センサ出力信号取得手段により取得された開度センサ温度およびセンサ出力信号の、２組の組み合せを揮発性メモリに記憶する第一の記憶処理手段と、
前記エンジンを停止した場合、前記第一の記憶処理手段により記憶されている前記開度センサ温度および前記センサ出力信号の、２組の組み合せを書き換え可能な不揮発性メモリに記憶する第二の記憶処理手段と、を更に有することを特徴とする請求項１に記載のエンジンの制御装置。
【請求項４】
前記更新条件は、前記特性直線生成手段が生成する開度センサ温度−センサ出力信号の特性直線の傾きが所定の範囲内であるか否かの条件であり、
前記更新判定手段は、前記傾きが所定の範囲内の場合、前記特性直線を更新する判定をし、前記傾きが所定の範囲内ではない場合、前記特性直線を更新しない判定をすることを特徴とする請求項１に記載のエンジンの制御装置。
【請求項５】
前記更新条件は、前記エンジンがオーバヒート状態またはヒートソーク状態であるか否かの条件であり、
前記更新判定手段は、前記エンジンがオーバヒート状態でない場合またはヒートソーク状態でない場合、前記特性直線を更新する判定をし、前記エンジンがオーバヒート状態の場合またはヒートソーク状態の場合、前記特性直線を更新しない判定をすることを特徴とする請求項１に記載のエンジンの制御装置。
【請求項６】
前記開度センサ温度取得手段は、前記開度センサとは異なる対象物の温度を計測する温度センサによって計測された温度にフィルタ処理をすることで、前記開度センサ温度を取得することを特徴とする請求項１ないし５の何れか１項に記載のエンジンの制御装置。
【請求項７】
前記開度センサとは異なる対象物の温度を計測する温度センサは、吸気温度を計測する吸気温度センサであることを特徴とする請求項６に記載のエンジンの制御装置。
【請求項８】
前記開度センサが故障しているか否かを判定する故障判定手段を更に有し、
前記故障判定手段により、前記開度センサが故障していると判定された場合、
前記全閉判定手段は、予め設定されている前記スロットルバルブの全閉状態におけるセンサ出力信号に基づいて、前記スロットルバルブの全閉状態を判定することを特徴とする請求項１ないし７の何れか１項に記載のエンジンの制御装置。
【請求項９】
ユーザの入力操作に応じて、前記特性直線生成手段により生成された開度センサ温度−センサ出力信号の特性直線を初期化する初期化手段を更に有することを特徴とする請求項１ないし８の何れか１項に記載のエンジンの制御装置。
【請求項１０】
エンジンの吸気通路に配設されたスロットルバルブが全閉状態であるか否かを前記スロットルバルブの開度センサのセンサ出力信号に基づいて判定するエンジンの制御装置による制御方法であって、
前記開度センサの開度センサ温度を取得する開度センサ温度取得ステップと、
前記開度センサのセンサ出力信号を取得するセンサ出力信号取得ステップと、
前記スロットルバルブの全閉状態において、前記開度センサ温度取得ステップにより取得された開度センサ温度と、該開度センサ温度での前記センサ出力信号取得ステップにより取得されたセンサ出力信号との、２組の組み合せに基づいて、開度センサ温度−センサ出力信号の特性直線を生成する特性直線生成ステップと、
前記特性直線生成ステップにより生成された特性直線を用いて、前記温度取得ステップにより取得される現在の開度センサ温度から、前記スロットルバルブの全閉状態におけるセンサ出力信号の閾値を算出する算出ステップと、
前記算出ステップにより算出された閾値と、前記センサ出力信号取得ステップにより取得される現在のセンサ出力信号とを比較して、前記スロットルバルブの全閉状態を判定する全閉判定ステップと、
前記特性直線生成ステップにより生成された特性直線を更新するか否かを更新条件に基づいて判定する更新判定ステップと、
前記更新判定ステップにより前記特性直線を更新する判定をした場合、前記２組の組み合せのうち最新ではない１組を、前記開度センサ温度取得ステップにより取得された現在の開度センサ温度と、該開度センサ温度での前記センサ出力信号取得ステップにより取得された現在のセンサ出力信号との現在の１組に更新し、
前記更新判定ステップにより前記特性直線を更新しない判定をした場合、前記２組の組み合せを更新しない更新ステップと、を有し、
前記更新条件は、前記２組の組み合せのうち最新の１組と前記現在の１組との、２つの開度センサ温度の差の絶対値が所定値以上であるか否かの条件であり、
前記更新判定ステップでは、前記２つの開度センサ温度の差の絶対値が所定値以上の場合、前記特性直線を更新する判定をし、前記２つの開度センサ温度の差の絶対値が所定値未満の場合、前記特性直線を更新しない判定をすることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンの制御装置および制御方法に関するものである。特に、スロットルバルブの開度センサを用いてスロットルバルブの全閉状態を判定する場合に用いられて好適である。
【背景技術】
【０００２】
例えば船体の尾部に装着される船外機は、カバーの内部にエンジンを備えている。一般的にエンジンは、シリンダーブロック、シリンダヘッド、シリンダヘッドカバー等から構成されている。シリンダヘッドにより形成される燃焼室には、スパークプラグが配設されている。また、シリンダヘッドの一側壁にはエキゾーストマニホールドが形成され、他側壁にはインジェクタが設置されたインテークマニホールドが形成されている。インテークマニホールドには、インテークパイプを介して、スロットルバルブが収容されたスロットルボディが結合されている。吸気は、スロットルボディ内で流量が調整され、シリンダヘッド内の燃焼室でインジェクタから噴射された燃料と混合され、スパークプラグによって着火され燃焼する。
【０００３】
船外機のエンジンの中には、例えば特許文献１に開示されるように、スロットルバルブの開度を検出する開度センサと、スロットルボディの上流・下流部にスロットルバルブに向かう吸気の流れをバイパスする通路とが設けられているものがある。また、バイパスの通路上には、例えば電磁バルブのような、電気信号によって開閉制御可能な空気量制御弁が備えられている。空気量制御弁は、開度センサがスロットルバルブの全閉状態を検出したときに、バイパスに流入させる空気量を調整し、アイドリング状態におけるエンジンの回転数を安定させている。
【０００４】
また、開度センサには、例えば特許文献２に開示されるような、非接触式の開度センサが用いられる。この非接触式の開度センサは、スロットルバルブの開度に応じた電圧（出力信号）を出力する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−６８７０４号公報
【特許文献２】特開２００３−１８５４７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した非接触式の開度センサは、センサ内のホール素子や磁石の温度特性によって出力信号が変化してしまうという問題がある。したがって、スロットルバルブが同じ全閉状態の場合であっても、例えば雰囲気温度が２０℃のときに開度センサが出力する出力信号と、雰囲気温度が３０℃のときに開度センサが出力する出力信号との間に差が生じてしまう。
【０００７】
図２１Ａ〜図２１Ｃは、異なる開度センサ間における雰囲気温度と出力信号の変動値との関係を示す図である。各図では、横軸が雰囲気温度であり、縦軸が雰囲気温度２５℃における開度センサの出力信号との変動値（変動電圧値）である。図２１Ａに示す開度センサの温度特性直線は、雰囲気温度が上昇することで、出力する電圧値が高くなることを示している。図２１Ｂに示す開度センサの温度特性直線は、雰囲気温度が上昇することで、出力する電圧値が図２１Ａよりも、より高くなることを示している。図２１Ｃに示す開度センサの温度特性直線は、雰囲気温度が上昇することで、逆に出力する電圧値が低くなることを示している。このような出力信号の変化は、異なる開度センサ間に限られず、同一の開度センサであっても機械的な経年変化によって生じてしまう。すなわち、機械的な経年変化によって、温度特性直線の傾きが少しずつ変化してしまう。
【０００８】
船外機のエンジンはカバーによって覆われているために、エンジンを始動することによりカバー内の温度が上昇し、開度センサの周囲の温度も上昇する。すなわち、エンジンの始動直後と暖機後とでは、開度センサの周囲の温度も異なり、開度センサの温度特性により開度センサの出力信号が変化してしまう。そのために、スロットルバルブの全閉状態を判定するときに、実際にはスロットルバルブが全閉状態であるにも関わらず全閉状態でないと判定されたり、逆に実際にはスロットルバルブが開状態であるにも関わらず全閉状態であると判定されたりしてしまう。
例えば、スロットルバルブが全閉状態であるにも関わらず全閉状態でないと判定されてしまうと、上述した空気量制御弁がバイパスの通路に流入させる空気量を制限してしまう。その結果、アイドリング状態に必要な空気量が確保できず、エンジンが停止してしまうおそれがある。
【０００９】
この場合、開度センサ毎にセンサ出力レベルを調整しなければならず、その作業は煩雑であり、エンジンのコストアップの要因になってしまう。また、上述したように、同一の開度センサであっても機械的な経年変化によって温度特性が変化してしまうために、経年変化までも考慮して対策を行うのは非常に困難である。
【００１０】
本発明は、上述したような問題点に鑑みてなされたものであり、開度センサの温度特性によって開度センサの出力信号が変化してしまう場合であっても、確実にスロットルバルブの全閉状態を判定できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係るエンジンの制御装置は、エンジンの吸気通路に配設されたスロットルバルブが全閉状態であるか否かを前記スロットルバルブの開度センサのセンサ出力信号に基づいて判定するエンジンの制御装置であって、前記開度センサの開度センサ温度を取得する開度センサ温度取得手段と、前記開度センサのセンサ出力信号を取得するセンサ出力信号取得手段と、前記スロットルバルブの全閉状態において、前記開度センサ温度取得手段により取得された開度センサ温度と、該開度センサ温度での前記センサ出力信号取得手段により取得されたセンサ出力信号との、２組の組み合せに基づいて、開度センサ温度−センサ出力信号の特性直線を生成する特性直線生成手段と、前記特性直線生成手段により生成された特性直線を用いて、前記温度取得手段により取得される現在の開度センサ温度から、前記スロットルバルブの全閉状態におけるセンサ出力信号の閾値を算出する算出手段と、前記算出手段により算出された閾値と、前記センサ出力信号取得手段により取得される現在のセンサ出力信号とを比較して、前記スロットルバルブの全閉状態を判定する全閉判定手段と、前記特性直線生成手段により生成された特性直線を更新するか否かを更新条件に基づいて判定する更新判定手段と、前記更新判定手段が前記特性直線を更新する判定をした場合、前記２組の組み合せのうち最新ではない１組を、前記開度センサ温度取得手段により取得された現在の開度センサ温度と、該開度センサ温度での前記センサ出力信号取得手段により取得された現在のセンサ出力信号との現在の１組に更新し、前記更新判定手段が前記特性直線を更新しない判定をした場合、前記２組の組み合せを更新しない更新手段と、を有し、前記更新条件は、前記２組の組み合せのうち最新の１組と前記現在の１組との、２つの開度センサ温度の差の絶対値が所定値以上であるか否かの条件であり、前記更新判定手段は、前記２つの開度センサ温度の差の絶対値が所定値以上の場合、前記特性直線を更新する判定をし、前記２つの開度センサ温度の差の絶対値が所定値未満の場合、前記特性直線を更新しない判定をすることを特徴とする。
また、本発明に係る制御方法は、エンジンの吸気通路に配設されたスロットルバルブが全閉状態であるか否かを前記スロットルバルブの開度センサのセンサ出力信号に基づいて判定するエンジンの制御装置による制御方法であって、前記開度センサの開度センサ温度を取得する開度センサ温度取得ステップと、前記開度センサのセンサ出力信号を取得するセンサ出力信号取得ステップと、前記スロットルバルブの全閉状態において、前記開度センサ温度取得ステップにより取得された開度センサ温度と、該開度センサ温度での前記センサ出力信号取得ステップにより取得されたセンサ出力信号との、２組の組み合せに基づいて、開度センサ温度−センサ出力信号の特性直線を生成する特性直線生成ステップと、前記特性直線生成ステップにより生成された特性直線を用いて、前記温度取得ステップにより取得される現在の開度センサ温度から、前記スロットルバルブの全閉状態におけるセンサ出力信号の閾値を算出する算出ステップと、前記算出ステップにより算出された閾値と、前記センサ出力信号取得ステップにより取得される現在のセンサ出力信号とを比較して、前記スロットルバルブの全閉状態を判定する全閉判定ステップと、前記特性直線生成ステップにより生成された特性直線を更新するか否かを更新条件に基づいて判定する更新判定ステップと、前記更新判定ステップにより前記特性直線を更新する判定をした場合、前記２組の組み合せのうち最新ではない１組を、前記開度センサ温度取得ステップにより取得された現在の開度センサ温度と、該開度センサ温度での前記センサ出力信号取得ステップにより取得された現在のセンサ出力信号との現在の１組に更新し、前記更新判定ステップにより前記特性直線を更新しない判定をした場合、前記２組の組み合せを更新しない更新ステップと、を有し、前記更新条件は、前記２組の組み合せのうち最新の１組と前記現在の１組との、２つの開度センサ温度の差の絶対値が所定値以上であるか否かの条件であり、前記更新判定ステップでは、前記２つの開度センサ温度の差の絶対値が所定値以上の場合、前記特性直線を更新する判定をし、前記２つの開度センサ温度の差の絶対値が所定値未満の場合、前記特性直線を更新しない判定をすることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、開度センサの温度特性によって開度センサの出力信号が変化してしまう場合であっても、確実にスロットルバルブの全閉状態を判定することができる。
【図面の簡単な説明】
【００１３】
【図１】船外機の一部外観図である。
【図２】エンジンおよびその周辺の構成を模式的に示した図である。
【図３】カバーを取り外した状態のエンジンおよびその周辺の構成を示す図である。
【図４】カバーを取り外した状態のエンジンおよびその周辺の構成を示す図である。
【図５】カバーを取り外した状態のエンジンおよびその周辺の構成を示す図である。
【図６】スロットルボディの構成を示す図である。
【図７】スロットルボディの構成を示す図である。
【図８】エンジンコントロールユニットの構成を示すブロック図である。
【図９】スロットルバルブの全閉判定の概略を説明するための図である。
【図１０】スロットルバルブの全閉判定の処理を示すフローチャートである。
【図１１】特性直線を更新する処理を説明するための図である。
【図１２】特性直線を更新する処理を説明するための図である。
【図１３】スロットルバルブの全閉状態を判定する処理を説明するための図である。
【図１４】吸気温度と実際の開度センサ温度との関係を示す図である。
【図１５】特性直線の更新条件を判定の処理を示すフローチャートである。
【図１６】特性直線の更新条件を判定する処理を説明するための図である。
【図１７】ヒートソーク状態の判定処理を示すフローチャートである。
【図１８】スロットルバルブの故障判定の処理を示すフローチャートである。
【図１９】他の更新条件を判定する処理を説明するための図である。
【図２０】近似直線を特性直線として生成する処理を説明するための図である。
【図２１Ａ】開度センサの雰囲気温度と出力信号の変動値との関係を示す図である。
【図２１Ｂ】開度センサの雰囲気温度と出力信号の変動値との関係を示す図である。
【図２１Ｃ】開度センサの雰囲気温度と出力信号の変動値との関係を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明に係る実施形態について図面を参照して説明する。本実施形態では、エンジンとして船外機のエンジンを取り上げて説明する。なお、各図では、必要に応じて船外機の前方を矢印Ｆｒにより、後方を矢印Ｒｒにより示し、船外機の右側を矢印Ｒにより、左側を矢印Ｌにより示す。なお、船外機の前方とは、船外機を船体に取り付けた状態で、船体が前方に進む方向である。
図１は、船外機の一部外観図である。図１に示すように、船外機１０は船体１のトランサムボード２に取り付けられる。船外機１０は、全体がカバー１１によって覆われることで、形状が整えられて構成される。このカバー１１の内部には、エンジン１２が収容されている。
【００１５】
図２は、エンジンおよびその周辺の構成を模式的に示した図である。図３〜図５は、カバーを取り外した状態のエンジンおよびその周辺の一部の構成を示す図である。なお、図３はエンジンを前方から見た正面図である。図４は図３に示す矢印Ａ方向から見た側面図である。図５はエンジンの前方から見たインテークパイプ周辺の斜視図である。
図２に示すように、エンジン１２には、シリンダーブロック１３、シリンダヘッド１４、シリンダヘッドカバー１５等を含んで構成される。シリンダヘッド１４には、スパークプラグ１６が燃焼室１７内に供給される燃料との混合気に着火可能に配設される。また、シリンダヘッド１４の一方側にはエキゾーストマニホールド１８が形成され、他方側にはインテークマニホールド１９が形成される。
【００１６】
インテークマニホールド１９には、燃料を噴射するインジェクタ２０が配設される。また、インテークマニホールド１９には、インテークパイプ２１がエンジン１２の前後方向に沿って接続されている（図５も参照）。インテークパイプ２１には、サイレンサ２２を介して、スロットルボディ２３が結合される。
ここで、図６および図７を参照して、スロットルボディ２３の構成について説明する。図６は、スロットルボディの斜視図であり、図７は図６を矢印Ｂ方向から見た図である。図７に示すように、スロットルボディ２３の吸気通路２４にはスロットルバルブ２５がシャフト２６によって回動自在に軸支されている。
【００１７】
スロットルバルブ２５は、吸気通路２４を全閉する方向に付勢されている。エンジン１２が停止状態、アイドリング状態、後述するリモコンレバーがニュートラル状態では、スロットルバルブ２５は、付勢に応じて図示しないストッパに直接または間接的に当接し、機械的な全閉位置に維持される。
一方、本実施形態の船外機１０は、図２に示すようにリモコンレバー３５によって船外機１０のシフト操作およびスロットル操作を行うことができる。操船者がニュートラル状態から一方方向にリモコンレバー３５を傾けると、まずシフト操作が行われる。さらにリモコンレバー３５を傾けると、スロットル操作が行われる。シフト操作およびスロットル操作は、シフトケーブル３６、スロットルケーブル３７を介して、エンジン１２に伝達される。
【００１８】
操船者がスロットル操作を行うことで、スロットルケーブル３７が前後方向（図５に示す矢印Ｃ方向）に変位する。スロットルケーブル３７が前後方向に変位することで、スロットルリンク３８が連動して変位し、図６および図７に示すスロットルカム２７が回動する。スロットルカム２７が回動することで、スロットルバルブ２５のシャフト２６が付勢に抗して回動する。スロットルバルブ２５を回動させる角度（開度）に応じて、吸気通路２４を通ってエンジン１２に供給される空気量が増減し、エンジン１２の回転数が調整される。なお、図６に示すスロットルカム２７は、操船者がエンジンの回転数を目標値に合わせ易いように、低回転域ではリモコンレバー３５の操作量に対して、スロットルバルブ２５が徐々に開くように形成されている。
【００１９】
図７に示すように、スロットルバルブ２５のシャフト２６上には、スロットルバルブ２５の開度を検出する開度センサ２８が配設されている。開度センサには、内部に摺動抵抗を有する接触式と、ホール素子等の磁気検出素子を有する非接触式があり、本実施形態では、非接触式の開度センサ２８が用いられる。開度センサ２８は、スロットルバルブ２５の開度を検出し、開度に応じて出力信号としての電圧値を後述するエンジンコントロールユニット２９に出力する。
【００２０】
また、図２に示すようにスロットルボディ２３には、スロットルバルブ２５の上流側と下流側とを連通させて、スロットルバルブ２５に向かう空気の流れをバイパスするバイパス通路３０が設けられている。このバイパス通路３０には、電気信号によって開閉制御可能なアイドルエアーコントロールバルブ３1（以下、ＩＡＣという）が設けられている。ＩＡＣ３１は、開度センサ２８がスロットルバルブ２５の全閉状態を検出したときに、エンジンコントロールユニット２９による制御に基づいて、バイパス通路３０内に流入する空気流量を調整して、アイドリング状態のエンジン１２の回転数を安定させる。
【００２１】
さらに、スロットルボディ２３には、スロットルバルブ２５の上流側に吸気温度を検出する吸気温度センサ３２が設けられている。吸気温度センサ３２は、計測した吸気温度の情報をエンジンコントロールユニット２９に出力する。
【００２２】
エンジンコントロールユニット２９は、エンジン１２の制御装置であって、エンジン１２全体の制御を行う。図８は、エンジンコントロールユニットの構成を示すブロック図である。エンジンコントロールユニット２９は、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、ＥＥＰＲＯＭ４４、入力インタフェース４５、出力インタフェース４６を含んで構成されている。
ＣＰＵ４１は、ＲＯＭ４２に格納されたプログラムを実行して、各種のセンサ等から出力される情報に基づいて、インジェクタ２０やＩＡＣ３１等を制御する。ＲＯＭ４２は、不揮発性メモリであって、ＣＰＵ４１が実行するプログラムやＣＰＵ４１が各機器を制御するときの判定値等を格納している。ＲＡＭ４３は、揮発性メモリであって、ＣＰＵ４１が各機器を制御するときに算出した情報等を一時的に記憶している。ＥＥＰＲＯＭ４４は、書き換え可能な不揮発性メモリであって、ＣＰＵ４１が各機器を制御するときに算出した情報等を記憶している。
【００２３】
入力インタフェース４５は、上述した開度センサ２８や吸気温度センサ３２等の各種センサからの出力信号を受信する入力回路である。なお、入力インタフェース４５に出力する機器には、その他、エンジン温度センサ４７、冷却水温度センサ４８、イグニッションスイッチ４９、ニュートラルスイッチ５０、エマージェンシースイッチ５１、クランク角センサ５３等がある。ニュートラルスイッチ５０は、上述したリモコンレバー３５がニュートラルにある場合に信号を出力する。エマージェンシースイッチ５１は、エンジン１２を緊急停止するときに信号を出力する。
出力インタフェース４６は、上述したインジェクタ２０やＩＡＣ３１を制御するための信号を送信する出力回路である。なお、出力インタフェース４６から出力する機器には、その他、イグニッションコイル５２等がある。
【００２４】
エンジンコントロールユニット２９は、スロットルバルブ２５が全閉状態であるか否かを開度センサ２８の出力信号を取得して判定し、スロットルバルブ２５が全閉状態であると判定した場合、ＩＡＣ３１に対してバイパス通路３０内の空気流量を調整させ、アイドリング状態におけるエンジン１２の回転数を安定させる。従来、エンジンコントロールユニット２９は、開度センサ２８が出力する出力信号を取得し、出力信号が所定値以下であれば、スロットルバルブ２５が全閉状態であると判定したが、上述したように、非接触式の開度センサ２８では、温度特性により、出力信号に変化が生じてしまう。
【００２５】
そこで、本実施形態のエンジンコントロールユニット２９のＣＰＵ４１は、現在の開度センサ２８の温度において、スロットルバルブ２５が全閉状態で出力すると推定される出力電圧を算出し、その出力電圧を閾値として、スロットルバルブ２５が全閉状態であるか否かを判定する。まず、図９を参照して、スロットルバルブ２５が全閉状態であるか否かをＣＰＵ４１が判定する処理の概略について説明する。図９は、開度センサの特性直性を示し、横軸が開度センサの温度［℃］であり、縦軸が開度センサの出力信号（出力電圧［Ｖ］）である。なお、開度センサ２８の温度とは、開度センサ２８の周囲の雰囲気温度であり、以下、開度センサ温度という。開度センサ温度は吸気温度に近似して変化するので、本実施形態では、吸気温度センサ３２が計測した吸気温度に対してフィルタ処理を行うことで、開度センサ温度を取得している。このフィルタ処理については、後述する。
【００２６】
まず、ＣＰＵ４１は、エンジン冷機時においてスロットルバルブ２５が機械的な全閉状態のときの開度センサ温度と、この温度で開度センサ２８が出力する出力電圧とを学習する（図９に示す学習点２）。なお、学習とは、具体的には開度センサ温度と出力電圧とを取得してＲＡＭ４３等のメモリに記憶することをいう。
また、ＣＰＵ４１は、エンジン暖機時においてスロットルバルブ２５が機械的な全閉状態のときの開度センサ温度と、この温度で開度センサ２８が出力する出力電圧とを学習する（図９に示す学習点１）。ＣＰＵ４１は、学習点１と学習点２と通る開度センサ温度−センサ出力信号の特性直線（図９に示す実線）を生成し、現在の開度センサ温度に基づいて、スロットルバルブ２５が全閉状態のときに開度センサ２８が出力すると推定される出力電圧を算出する。なお、スロットルバルブ２５が機械的な全閉状態とは、例えばリモコンレバー３５がニュートラル状態の場合であり、上述したようにスロットルバルブ２５が全閉方向に付勢され、図示しないストッパに直接または間接的に当接することで確実に全閉している状態をいう。
【００２７】
例えば、図９に示す例では、現在の開度センサ２８の温度が４０℃であるとすると、ＣＰＵ４１は、特性直線に基づき、スロットルバルブ２５が全閉状態のときに開度センサ２８は出力電圧０．７１１［Ｖ］を出力すると推定する。したがって、ＣＰＵ４１は、現在の開度センサ２８の温度が４０℃であるとき、開度センサ２８が出力電圧０．７１１［Ｖ］以下を出力している場合、スロットルバルブ２５が全閉状態であると判定する。このように、判定することで、開度センサ温度が上昇したり下降したりしても、正確にスロットルバルブ２５の全閉状態を判定することができる。また、学習点１および学習点２を書き換え可能であるＥＥＰＲＯＭ４４に記憶しておくことで、次にエンジン１２を始動させたときであっても、学習点１および学習点２を用いて、すぐに開度センサ温度−センサ出力信号の特性直線を生成でき、正確なスロットルバルブ２５の全閉状態の判定を行うことができる。また、図９に示すように、例えば学習点２から学習点３に更新して、学習点１と学習点３とを通る開度センサ温度−センサ出力信号の特性直線（図９に示す一点鎖線）を生成することで、開度センサ２８が機械的な経年変化した場合であっても、対応することができる。
【００２８】
次に、図１０に示すフローチャートを参照して、スロットルバルブ２５が全閉状態であるか否かをＣＰＵ４１が判定する処理について、詳細に説明する。なお、図１０に示すフローチャートは、エンジンコントロールユニット２９のＣＰＵ４１がＲＯＭ４２に格納されたプログラムを実行することにより実現される。
まず、ステップＳ１０では、ユーザによりイグニッションスイッチ４９がオンされることで、ＣＰＵ４１は電源をオンにする。ＣＰＵ４１は、ＲＯＭ４２に格納されたプログラムをＲＡＭ４３に読み出す。
【００２９】
ステップＳ１１では、ＣＰＵ４１はＥＥＰＲＯＭ４４に記憶している学習値および学習完了フラグＦｆを読み出し、ＲＡＭ４３に記憶する。ここで、学習値とは、図９で説明したように、学習点における開度センサ温度Ｔおよび出力電圧Ｖの組み合わせである。また、学習完了フラグＦｆとは、学習値を記憶しているか否かを示すフラグである。
具体的には、ＣＰＵ４１は、学習点１である開度センサ温度Ｔａおよび出力電圧Ｖａと、学習点２である開度センサ温度Ｔｂおよびセンサ電圧Ｖｂとの２組の学習値および学習完了フラグＦｆ＝１を読み出す。一方、学習値がＥＥＰＲＯＭ４４に記憶されていない場合、ＣＰＵ４１は、学習値が記憶されていないことを示す学習完了フラグＦｆ＝０のみを読み出す。
【００３０】
ステップＳ１２では、ＣＰＵ４１は、電源をオンしたときの出力電圧Ｖｔｈを開度センサ２８から取得する。この処理は、センサ出力信号取得手段による処理の一例に対応する。また、ＣＰＵ４１は、電源をオンしたときの吸気温度Ｔｉａｔを吸気温度センサ３２から取得する。ＣＰＵ４１は、取得した出力電圧Ｖｔｈを初期電圧Ｖｔｈｏｎに代入し、取得した吸気温度Ｔｉａｔを初期開度センサ温度Ｔｏｎに代入し、ＲＡＭ４３に記憶する。
なお、上述したように、ＣＰＵ４１は、吸気温度センサ３２が計測した吸気温度に対してフィルタ処理を行うことで、開度センサ温度を取得している。図１４は、エンジン始動後の吸気温度と実際の開度センサ温度との関係を示す図である。図１４に示すように、エンジン始動後の吸気温度（一点鎖線）は、実際の開度センサ温度（破線）に対して一定時間後に同様に上昇する。したがって、本実施形態では、開度センサ温度Ｔ（ｎ）を次式により算出することで、実際の開度センサ温度に近似した開度センサ温度を算出できる。
Ｔ（ｎ）＝Ｔ（ｎ−１）×Ａ＋Ｔｉａｔ×（１−Ａ）・・・式（１）
なお、Ｔ（ｎ−１）は前回の開度センサ温度であり、Ａはフィルタ定数であり、Ｔｉａｔは現在の吸気温度である。図１４に示すように、フィルタ処理による開度センサ温度（二点鎖線）は、実際の開度センサ温度（破線）に近似している。以下、開度センサ温度は、このフィルタ処理により算出された温度である。この処理は、開度センサ温度取得手段による処理の一例に対応する。
【００３１】
ステップＳ１３では、ＣＰＵ４１は、学習状態を確認する。具体的には、ＣＰＵ４１は、学習完了フラグＦｆが１であるか否かを判定する。上述したステップＳ１１において、ＥＥＰＲＯＭ４４に学習値が記憶されている場合、学習完了フラグＦｆは１であり、ステップＳ１４に処理を進める。一方、ＥＥＰＲＯＭ４４に学習値が記憶されていない場合、学習完了フラグＦｆは０であり、ステップＳ２５に処理を進める。
【００３２】
ステップＳ１４では、ＣＰＵ４１は、温度センサ温度−センサ出力信号の特性直線を更新するか否かを更新条件に基づいて判定する。この処理は、更新判定手段による処理の一例に対応する。この更新判定の処理は、図１５に示すフローチャートを参照して後述する。図１５に示すフローチャートの結果、更新する場合、更新条件フラグＦｎに１が代入され、更新されない場合、更新条件フラグＦｎに０が代入される。更新条件フラグＦｎが１の場合、ステップＳ１５に処理を進め、更新条件フラグＦｎが０の場合、ステップＳ２７に処理を進める。
【００３３】
ステップＳ１５では、ＣＰＵ４１は、スロットルバルブ２５の機械的な全閉状態における現在の開度センサ温度Ｔおよび出力電圧Ｖｔｈを、学習値としてＲＡＭ４３に記憶する。この処理は、第一の記憶処理手段による処理の一例に対応する。すなわち、ここでは、図１１に示すような既に学習した学習点１と学習点２とがあるものとする。この場合、ステップＳ１５では、ＣＰＵ４１が開度センサ温度Ｔおよび出力電圧Ｖｔｈを新たな学習点１として開度センサ温度Ｔａおよび出力電圧Ｖａに代入し、いままでの学習点１であった開度センサ温度Ｔａおよび出力電圧Ｖａを新たな学習点２として開度センサ温度Ｔｂおよび出力電圧Ｖｂに代入する。すなわち、ＣＰＵ４１は、新たな学習点１および学習点２をＲＡＭ４３に更新して記憶し、前回までの学習点２としての開度センサ温度Ｔｂおよび開度センサ電圧値Ｖｂは、ＲＡＭ４３から消去する。この処理は、更新手段のよる処理の一例に対応する。
【００３４】
ステップＳ１６では、ＣＰＵ４１は、学習完了フラグＦｆに１を代入して、ＲＡＭ４３に記憶する。
ステップＳ１７では、ＣＰＵ４１は、ＲＡＭ４３に記憶されている学習点１と学習点２とを通る開度センサ温度−センサ出力信号の特性直線を生成する。この処理は、特性直線生成手段による処理の一例に対応する。図１２に示す特性直線を参照して説明すると、ＣＰＵ４１は、学習点１である開度センサ温度Ｔａおよび出力電圧Ｖａと、学習点２である開度センサ温度Ｔｂおよび出力電圧Ｖｂを次式に代入して、新たに特性直線を生成する。
Ｖｃ＝（｜Ｖａ−Ｖｂ｜／｜Ｔａ−Ｔｂ｜）×（Ｔ−Ｔａ）＋Ｖａ・・・式（２）
このように特性直線を生成することで、開度センサ温度Ｔが変化した場合であっても、現在の開度センサ温度Ｔを上式に代入することで、現在の開度センサ温度Ｔにおいて、スロットルバルブ２５が全閉状態で開度センサ２８が出力する出力電圧Ｖｃを推定できる。
【００３５】
ステップＳ１８では、ＣＰＵ４１は、開度センサ２８が故障しているか否かを判定する。この処理は、故障判定手段による処理の一例に対応する。この故障判定の処理は、図１８に示すフローチャートを参照して後述する。図１８に示すフローチャートの結果、正常の場合、故障判定フラグＦｅに０が代入され、故障している場合、故障判定フラグＦｅに１が代入される。故障判定フラグＦｅが０の場合、ステップＳ１９に処理を進め、故障判定フラグＦｅが１の場合、ステップＳ２８に処理を進める。
【００３６】
ステップＳ１９では、ＣＰＵ４１は、ユーザの入力操作により、初期化入力操作が行われたか否かを判定する。初期化入力操作が行われた場合、ステップＳ２０に処理を進め、初期化入力操作が行われない場合、ステップＳ２１に処理を進める。
ここで、初期化入力操作とは、ＥＥＰＲＯＭ４４に記憶されている学習点１および学習点２によって生成された特性直線を用いて、スロットルバルブ２５の全閉状態の判定を行いたくない場合に、ユーザが行う入力操作である。例えば、スロットルボディ２３を交換した場合は、交換する前に記憶している学習点１および学習点２を用いても正確な全閉判定が行われない。このような場合にユーザは初期化入力操作を行う。この初期化入力操作は、エンジン１２が初期化入力操作用のスイッチを備えてもよいが、例えばエマージェンシースイッチ５１等の既存スイッチを用いて、通常の使用では操作されないパターンの特定操作を初期化入力操作としてもよい。
ステップＳ２０では、ＣＰＵ４１は、学習完了フラグＦｆに０を代入し、ＲＡＭ４３に記憶する。この処理は、初期化手段による処理の一例に対応する。その後、ステップＳ１３の処理に戻る。
【００３７】
ステップＳ２１では、ＣＰＵ４１は、エンジン始動中の現在の開度センサ温度Ｔを取得し、取得した開度センサ温度ＴをステップＳ１７で生成した特性直線の式（２）に代入し、スロットルバルブ２５が全閉状態で開度センサ２８が出力する出力電圧Ｖｃを算出し、ＲＡＭ４３に記憶する。この処理は、算出手段による処理の一例に対応する。算出された出力電圧Ｖｃがスロットルバルブ２５の全閉状態を判定する閾値となる。
ただし、スロットルボディ２３の機械的な組み付け誤差や熱膨張等のヒステリシスを考慮して、ＣＰＵ４１は、算出された出力電圧値Ｖｃにα値を加算して基準値とする。したがって、ＣＰＵ４１は、現時点での開度センサ２８が出力する出力電圧が、基準値以下になったときに、スロットルバルブ２５が全閉状態であると判定する。すなわち、ＣＰＵ４１は、現時点での開度センサ２８が出力する出力電圧をＶｔｈとすると、次式によって、スロットルバルブ２５の全閉状態を判定する。
Ｖｔｈ≦Ｖｃ＋α・・・式（３）
【００３８】
図１３に示す特性直線を参照して説明すると、ＣＰＵ４１は、図１３に示す特性直線から現在の開度センサ温度Ｔに対応した出力電圧Ｖｃを算出し、この出力電圧Ｖｃにα値を加算した値をＲＡＭ４３に記憶する。ＣＰＵ４１は、現在の開度センサ２８の出力電圧が、基準値（Ｖｃ＋α）以下の場合、スロットルバルブ２５が全閉状態であると判定する。以降、ＣＰＵ４１は、学習点が更新されたり、開度センサ温度が変化しない限り、ＲＡＭ４３に記憶された基準値に基づいてスロットルバルブ２５の全閉状態を判定する。この処理は、全閉判定手段により処理の一例に対応する。
【００３９】
ステップＳ２２では、ＣＰＵ４１は、イグニッションスイッチ４９がオフされたか否かを判定する。イグニッションスイッチ４９がオフされた場合エンジン１２の駆動が停止され、ステップＳ２３に処理を進め、イグニッションスイッチ４９がオフされない場合、ステップＳ１４に処理を戻し、再び特性直線の更新条件を判定する。
ステップＳ２３では、ＣＰＵ４１は、ＲＡＭ４３に記憶している学習点１である開度センサ温度Ｔａおよび出力電圧Ｖａと、学習点２である開度センサ温度Ｔｂおよび出力電圧Ｖｂと、学習完了フラグＦｆとをＥＥＰＲＯＭ４４に記憶する。この処理は、第二の記憶処理手段による処理の一例に対応する。このように、ＥＥＰＲＯＭ４４に記憶することで、電源がオフされた場合であっても記憶が保持されるので、上述したステップＳ１１で説明したように、過去に記憶した最新の学習点を次回のエンジン１２の始動時に用いることができる。
ステップＳ２４では、ＣＰＵ４１は、電源をオフする。
【００４０】
次に、初めてエンジン１２を駆動する場合等、学習点がＥＥＰＲＯＭ４４に記憶されていない場合について説明する。この場合、学習完了フラグＦｆが０であるために、ステップＳ１３の分岐において、ステップＳ２５に処理が進められる。
ステップＳ２５では、ＣＰＵ４１は、ステップＳ１２でＲＡＭ４３に記憶している初期開度センサ温度Ｔｏｎおよび初期電圧値Ｖｔｈｏｎを学習点１として記憶する。具体的には、ＣＰＵ４１は、開度センサ温度Ｔｏｎを開度センサ温度Ｔａに代入し、初期電圧値Ｖｔｈｏｎを出力電圧Ｖａに代入し、ＲＡＭ４３に記憶する。この時点では、ＲＡＭ４３には、１組の学習点しか記憶されていない。
【００４１】
ステップＳ２６では、ＣＰＵ４１は、初期電圧値Ｖｔｈｏｎを全閉状態における開度センサ２８が出力する出力電圧Ｖｃとして代入する。すなわち、この時点では、一組の学習点しか取得していないので、特性直線を生成することができない。そこで、ＣＰＵ４１は、次の学習点を記憶するまで、初期電圧値Ｖｔｈｏｎを開度センサ２８が全閉状態において出力する出力電圧Ｖｃとして適用する。
したがって、その後のステップＳ２１に示すように、ＣＰＵ４１は、開度センサ２８の出力電圧が、基準値（Ｖｃ＋α）以下の場合、スロットルバルブ２５が全閉状態であると判定する。
【００４２】
また、ステップＳ１４において、更新条件フラグＦｎが０であり、特性直線を更新しないと判定した場合、ステップＳ２７に処理を進める。
ステップＳ２７では、ＣＰＵ４１は、学習完了フラグＦｆが１であるか否かを判定する。学習完了フラグＦｆが１の場合、ステップＳ１７に処理を進め、ＣＰＵ４１は、既に記憶している２組の学習値から特性直線を生成する。一方、学習完了フラグＦｆが０の場合、１組の学習点しか記憶していないので、ステップＳ２６に処理を進め、ＣＰＵ４１は、次の学習点を記憶するまで、初期電圧値Ｖｔｈｏｎを全閉状態における開度センサ２８が出力する出力電圧Ｖｃとして適用する。
【００４３】
また、ステップＳ１８において、故障判定フラグＦｅが１であり、開度センサ２８が故障であると判定した場合、ステップＳ２８に処理を進める。
ステップＳ２８では、ＣＰＵ４１は、学習完了フラグＦｆに０を代入し、現在の開度センサ２８が出力する出力電圧Ｖｔｈに固定値Ｖｆａｕｌｔを代入し、出力電圧Ｖｃに初期値Ｖｉｎｉを代入する。この処理は、故障により開度センサ２８が出力する異常な電圧値を適用して全閉判定をしないようにするためである。
【００４４】
次に、上述したステップＳ１４において、特性直線を更新するか否かを更新条件に基づいて判定する更新判定ルーチンについて、図１５に示すフローチャートを参照して説明する。
まず、ステップＳ３０では、ＣＰＵ４１は、リモコンレバー３５のシフト位置がニュートラルであるか否かを、ニュートラルスイッチ５０の出力に基づいて判定する。リモコンレバー３５がニュートラルではない場合、ステップＳ３６に処理を進める。ステップＳ３６では、更新条件フラグＦｎに０が代入されるので、特性直線の更新は行われない。リモコンレバー３５がニュートラルの場合、ステップＳ３１に処理を進める。なお、ＣＰＵ４１がニュートラルであるか否かを判定するのは、ニュートラル状態では上述したようにスロットルバルブ２５が機械的な全閉状態であり、確実に全閉状態における開度センサ２８の出力電圧を取得できるからである。
【００４５】
ステップＳ３１では、ＣＰＵ４１は、現在の開度センサ温度Ｔと、ＲＡＭ４３に最新に記憶した学習点１における開度センサ温度Ｔａとの差の絶対値が温度差判定値Ｔｄ以上であるか否か、すなわち次式が成立するか否かを判定する。
｜Ｔ−Ｔａ｜≧Ｔｄ・・・式（４）
温度差判定値Ｔｄ以上の場合、ステップＳ３２に処理を進め、温度差判定値Ｔｄより小さい場合、ステップＳ３６に処理を進める。
【００４６】
図１６に示す特性直線を参照して説明すると、ステップＳ３１では、ＣＰＵ４１は現在の開度センサ温度Ｔと学習点１における開度センサ温度Ｔａとの間が所定以上離れているかを判定している。すなわち、現在の開度センサ温度Ｔと学習点１における開度センサ温度Ｔａとの間が近接し過ぎていると、精度の高い特性直線を生成することができない。したがって、ここでは、現在の開度センサ温度Ｔと学習点１における開度センサ温度Ｔａとの間が所定以上、離れていることを更新条件としている。
【００４７】
ステップＳ３２では、ＣＰＵ４１は、ファーストアイドリング状態であるか否かを判定する。ファーストアイドリング状態とは、例えばエンジン１２のアイドリングを安定させる等のために、操船者がニュートラル状態で意図的にエンジン１２の回転数を上昇させている状態をいう。具体的には、ＣＰＵ４１は、現在の開度センサ２８が出力する出力電圧Ｖｔｈがファーストアイドリング判定値Ｖｆａｓｔ以下であるか否かを判定する。ファーストアイドリング判定値Ｖｆａｓｔ以下の場合、ステップＳ３３に処理を進め、ファーストアイドリング判定値Ｖｆａｓｔより大きい場合、ステップＳ３６に処理を進める。
ステップＳ３３では、ＣＰＵ４１は、エンジン１２がヒートソーク状態であるか否かを判定する。ヒートソーク状態とは、エンジン停止時にエンジン１２が熱をもった状態をいう。ヒートソーク判定の処理は、図１７に示すヒートソーク判定ルーチンにより行われる。
【００４８】
ここでは、ヒートソーク判定ルーチンについて図１７に示すフローチャートを参照して説明する。
まず、ステップＳ５０では、ＣＰＵ４１は、エンジンストールであるか否かを判定する。具体的には、ＣＰＵ４１は、エンジンの回転数Ｎがエンジンストール判定値Ｎｓｔ以下であるか否かを判定する。エンジンストールの場合、ステップＳ５１に処理を進め、エンジンストールではない場合、ステップＳ５４に処理を進める。ステップＳ５４では、ＣＰＵ４１は、エンジン１２がヒートソーク状態ではないと判定し、ヒートソーク判定フラグＦｈに０を代入する。
【００４９】
ステップＳ５１では、ＣＰＵ４１は、現在の吸気温度Ｔｉａｔがヒートソーク吸気温度判定値Ｔｉｈｏｔ以上であるか否かを判定する。吸気温度Ｔｉａｔがヒートソーク吸気温度判定値Ｔｉｈｏｔ以上の場合、ステップＳ５２に処理を進め、吸気温度Ｔｉａｔがヒートソーク吸気温度判定値Ｔｉｈｏｔよりも小さい場合、ステップＳ５４に処理を進める。
ステップＳ５２では、ＣＰＵ４１は、現在の冷却水の温度Ｔｗがヒートソーク水温判定値Ｔｗｈｏｔ以上であるか否かを判定する。冷却水の温度Ｔｗがヒートソーク水温判定値Ｔｗｈｏｔ以上の場合、ステップＳ５３に処理を進め、冷却水の温度Ｔｗがヒートソーク水温判定値Ｔｗｈｏｔよりも小さい場合、ステップＳ５４に処理を進める。
ステップＳ５３では、ＣＰＵ４１は、エンジン１２がヒートソーク状態であると判定し、ヒートソーク判定フラグＦｈに１を代入する。
【００５０】
図１５に示すフローチャートのステップＳ３３に戻り、ヒートソーク判定ルーチンの結果、ヒートソーク判定フラグＦｈが１の場合、ヒートソーク状態と判定し、ステップＳ３６に処理を進め、ヒートソーク判定フラグＦｈが０の場合、ヒートソーク状態ではないと判定し、ステップＳ３４に処理を進める。
ステップＳ３４では、ＣＰＵ４１は、エンジン１２がオーバヒート状態であるか否かを判定する。ＣＰＵ４１は、現在の冷却水の温度Ｔｗがオーバヒート判定値Ｔｏｈ以上であるか否かを判定する。冷却水の温度Ｔｗがオーバヒート判定値Ｔｏｈ以上の場合、オーバヒート状態であると判定し、ステップＳ３６に処理を進め、冷却水の温度Ｔｗがオーバヒート判定値Ｔｏｈよりも小さい場合、オーバヒート状態ではないと判定し、ステップＳ３５に処理を進める。
【００５１】
ステップＳ３５では、ＣＰＵ４１は、特性直線の更新条件が成立するとして、更新判定フラグＦｎに１を代入する。
一方、ステップＳ３６では、ＣＰＵ４１は、特性直線の更新条件が不成立として、更新判定フラグＦｎに０を代入する。
なお、上述したステップＳ３３およびステップＳ３４において、エンジン１２がヒートソーク状態およびオーバヒート状態に、特性直線の更新条件が不成立とするのは、エンジン１２が異常状態の場合に特性直線を更新しないようにするためである。
【００５２】
次に、上述したステップＳ１８において、開度センサ２８が故障しているか否かを判定する故障判定ルーチンについて、図１８に示すフローチャートを参照して説明する。
まず、ステップＳ４０では、ＣＰＵ４１は、現在の開度センサ２８の出力電圧Ｖｔｈが天絡故障判定値Ｖｆｈｉ以上であるか否かを判定する。出力電圧Ｖｔｈが天絡故障判定値Ｖｆｈｉ以上の場合、ステップＳ４３に処理を進め、出力電圧Ｖｔｈが天絡故障判定値Ｖｆｈｉよりも小さい場合、ステップＳ４１に処理を進める。
ステップＳ４１では、ＣＰＵ４１は、出力電圧Ｖｔｈが地絡故障判定値Ｖｆｌｏ以下であるか否かを判定する。出力電圧Ｖｔｈが地絡故障判定値Ｖｆｌｏ以下の場合、ステップＳ４３に処理を進め、出力電圧Ｖｔｈが地絡故障判定値Ｖｆｌｏよりも大きい場合、ステップＳ４２に処理を進める。
【００５３】
ステップＳ４３では、ＣＰＵ４１は、開度センサ２８が故障であると判定して、故障判定フラグＦｅに１を代入する。
一方、ステップＳ４２では、ＣＰＵ４１は、開度センサ２８が故障していないと判定して、故障判定フラグＦｅに０を代入する。
すなわち、ステップＳ４０およびステップＳ４１では、開度センサ２８が異常な出力電圧を出力しているか否かを判定している。
なお、上述したフローチャートにおいて説明したα値、固定値Ｖｆａｕｌｔ、初期値Ｖｉｎｉ、温度差判定値Ｔｄ、ファーストアイドリング判定値Ｖｆａｓｔ、エンジンストール判定値Ｎｓｔ、ヒートソーク吸気温度判定値Ｔｉｈｏｔ、ヒートソーク水温判定値Ｔｗｈｏｔ、オーバヒート判定値Ｔｏｈ、天絡故障判定値Ｖｆｈｉおよび地絡故障判定値Ｖｆｌｏは、予めＲＯＭ４２に格納されていて、ＣＰＵ４１が必要に応じて読み出す。
【００５４】
上述したような処理により、ＣＰＵ４１はスロットルバルブ２５が全閉状態であるか否かを判定する。ＣＰＵ４１は、全閉状態であると判定した場合、ＩＡＣ３１を介して、バイパス通路３０に流入させる空気量を調整して、アイドリング状態におけるエンジン１２の回転数を安定化させる。
【００５５】
本実施形態によれば、エンジンコントロールユニット２９は、開度センサ温度と該開度センサ温度でのセンサ出力信号（出力電圧）との組み合わせを２組取得し、開度センサ温度−センサ出力信号の特性直線を生成する。そして、生成した特性直線を用いて、現在の開度センサ温度で、スロットルバルブ２５が全閉状態において出力する開度センサ２８の出力電圧を算出する。そして、算出した出力信号を閾値として、現在の開度センサ２８の出力電圧と比較して、スロットルバルブが全閉状態であるか否かを判定する。
このように、開度センサ２８に応じた開度センサ温度−センサ出力信号の特性直線を生成するので、開度センサ２８の温度特性が異なっていたとしても、正確なスロットルバルブ２５の全閉判定を行うことができる。
【００５６】
また、更新条件に基づいて特性直線を更新するので、同一の開度センサ２８において、機械的な経年変化によって温度特性が変化してしまった場合も、その時点における開度センサ２８に応じた、正確なスロットルバルブ２５の全閉判定を行うことができる。
また、本実施形態では、電源をオフにする場合にのみ、ＥＥＰＲＯＭ４４に学習点１および学習点２に記憶し、学習点を更新して記憶する場合は、ＲＡＭ４３に記憶するので、ＥＥＰＲＯＭ４４の書き換え回数を削減させることができ、ＥＥＰＲＯＭ４４の信頼性および耐久性を向上させることができる。
【００５７】
なお、上述した実施形態では、特性直線の更新条件として図１５に示す更新判定ルーチンのステップＳ３０からステップＳ３４の処理に基づいて判定したが、この場合のみに限られず、さらに更新条件を付加してもよい。例えば、ＣＰＵ４１は、現在の開度センサ温度Ｔおよび出力電圧Ｖｔｈと学習点１との間で特性直線を生成して、その特性直線の傾きが所定の傾き判定値の範囲（所定の範囲）に入っているか否かを更新条件として付加してもよい。傾き判定値の範囲に入っていない場合、更新判定フラグＦｎに０を代入して特性直線を更新しないようにする。
具体的に、図１９に示す特性直線を参照して説明すると、ＣＰＵ４１は現在の開度センサ温度Ｔおよび出力電圧Ｖｔｈと学習点１とを通る特性直線（図１９に示す二点鎖線）が所定の傾きであるか否かを判定する。傾きが大きすぎたり小さすぎたりする場合、ＣＰＵ４１は、特性直線を更新しないようにする。なお、傾きが大きすぎたり小さすぎたりする場合、ＣＰＵ４１は、傾きを制限値にして特性直線を生成してもよい。
【００５８】
また、上述した実施形態では、開度センサ温度および該開度センサ温度での開度センサの出力電圧の組み合わせを２組用いて、特性直線を生成する場合について説明したが、この場合に限られず、３組以上の開度センサ温度および出力電圧の組み合わせから、特性直線を生成してもよい。
具体的に、図２０に示す特性直線を参照して説明すると、ＣＰＵ４１は最新の３組の開度センサ温度および出力電圧の組み合わせ、すなわち最新の３点の学習点をＲＡＭ４３に記憶し、その３点の学習点に近似する近似直線を特性直線として生成してもよい。したがって、精度の高い特性直線を生成することができ、より正確なスロットルバルブ２５の全閉判定を行うことができる。また、この場合、電源をオフするときに最新の３点の学習点をＥＥＰＲＯＭ４４に記憶し、次回のエンジン始動時に読み出すことで、上述した実施形態と同様に、すぐに特性直線を生成することができる。なお、３組以上の開度センサ温度および出力電圧の組み合わせから特性直線を生成する場合に限られず４組以上から生成してもよい。
【００５９】
また、上述した実施形態では、ＣＰＵ４１は、開度センサ温度を吸気温度にフィルタ処理を行うことで、開度センサ温度を取得する場合についてのみ説明したが、開度センサ２８の周囲の温度を検出する専用の温度センサを設けてもよい。ただし、本実施形態のように既存の温度センサを用いることで、コストの削減を図ることができる。
また、吸気温度に対してフィルタ処理を行う場合に限られず、他の対象物の温度を計測する目的の温度センサが計測した温度にフィルタ処理をして、開度センサ温度を取得してもよい。
【００６０】
また、上述した実施形態では、リモコンレバー３５を介して、スロットルバルブ２５を開閉する場合について説明したが、この場合に限られない。例えば、船外機１０に図示しない操舵ハンドルを備え、操舵ハンドルに設けられた図示しないスロットルグリップを介して、スロットルバルブ２５を開閉してもよい。
以上、本発明を種々の実施形態と共に説明したが、本発明はこれらの実施形態にのみ限定されるものではなく、本発明の範囲内で変更等が可能である。例えば、船外機のエンジンのみについて説明したが、この場合に限られず、他のエンジンにも適当することができる。
【符号の説明】
【００６１】
１２：エンジン  １３：シリンダーブロック  １４：シリンダヘッド  １５：シリンダヘッドカバー  １６：スパークプラグ  １７：燃焼室  １８：エキゾーストマニホールド  １９：インテークマニホールド  ２０：インジェクタ  ２１：インテークパイプ  ２２：サイレンサ  ２３：スロットルボディ  ２４：吸気通路  ２５：スロットルバルブ  ２６：シャフト  ２７：スロットルカム  ２８：開度センサ  ２９：エンジンコントロールユニット  ３０：バイパス通路  ３１：ＩＡＣ  ３２：吸気温度センサ  ３５：リモコンレバー  ３６：シフトケーブル  ３７：スロットルケーブル  ３８：スロットルリンク  ４１：ＣＰＵ  ４２：ＲＯＭ  ４３：ＲＡＭ  ４４：ＥＥＰＲＯＭ  ４５：入力インタフェース  ４６：出力インタフェース  ４７：エンジン温度センサ  ４８：冷却水温度センサ  ４９：イグニッションスイッチ  ５０：ニュートラルスイッチ  ５１：エマージェンシースイッチ  ５２：イグニッションコイル
【図１】
0005565051.tif 000002
【図２】
0005565051.tif 000003
【図３】
0005565051.tif 000004
【図４】
0005565051.tif 000005
【図５】
0005565051.tif 000006
【図６】
0005565051.tif 000007
【図７】
0005565051.tif 000008
【図８】
0005565051.tif 000009
【図９】
0005565051.tif 000010
【図１０】
0005565051.tif 000011
【図１１】
0005565051.tif 000012
【図１２】
0005565051.tif 000013
【図１３】
0005565051.tif 000014
【図１４】
0005565051.tif 000015
【図１５】
0005565051.tif 000016
【図１６】
0005565051.tif 000017
【図１７】
0005565051.tif 000018
【図１８】
0005565051.tif 000019
【図１９】
0005565051.tif 000020
【図２０】
0005565051.tif 000021
【図２１Ａ】
0005565051.tif 000022
【図２１Ｂ】
0005565051.tif 000023
【図２１Ｃ】
0005565051.tif 000024