以下において、図面を参照しながら、本開示を実施するための複数の形態を説明する。各形態において、先行する形態で説明した事項に対応する部分には同一の参照符号を付して重複する説明を省略する場合がある。各形態において、構成の一部のみを説明している場合は、構成の他の部分については先行して説明した他の形態を参照し適用することができる。
(第1実施形態)
図1~図5を用いて、第1実施形態のECU(Electronic Control Unit)10に関して説明する。図1は、車両に搭載された電子制御装置であって、車両に搭載された内燃機関の動作を制御するECU10を示す。本実施形態では、内燃機関制御システムをECU10に適用した例を採用する。本実施形態に係る内燃機関は点火着火式のガソリンエンジンであるが、自着火式のディーゼルエンジンであってもよい。以下においては、内燃機関を単にエンジンとも記載する。
ECU10は、MCU11(Micro Controller Unit)、点火駆動IC12、燃料噴射弁駆動IC13、電子スロットル駆動IC14、第2通信部15及び統合IC16などを備えている。以下においては、燃料噴射弁駆動IC13をINJ駆動IC13、電子スロットル駆動IC14を電スロ駆動IC14と略称で記載する。
MCU11は、演算処理装置であるCPU11aと、記憶媒体であるメモリ11mと、入力処理回路11bと、第1通信部11cと、CPUチェック部11dなどを備えている。また、MCU11は、制御部20及び監視部30を有している。これらは、いずれについても、共通するCPU11a及びメモリ11mにより提供される機能である。すなわち、メモリ11mの制御用記憶領域20mに記憶された制御プログラムをCPU11aが実行している時のCPU11a及びメモリ11mは、制御部20として機能する。一方、メモリ11mの監視用記憶領域30mに記憶された監視プログラムをCPU11aが実行している時のCPU11a及びメモリ11mは、監視部30として機能する。制御用記憶領域20m及び監視用記憶領域30mは、メモリ11mの記憶領域のうち異なる領域に、別々に設定されている。
しかしながら、本開示は、これに限定されない。ECU10は、CPUとメモリとを含む制御部20と、制御部20とは異なるCPUとメモリとを含む監視部30とを備えていてもよい。
図1に示す例では、MCU11は1つの半導体チップ上に、CPU11a、メモリ11m、入力処理回路11b、第1通信部11c及びCPUチェック部11dが集積されているが、複数の半導体チップに分散して集積させてもよい。また、複数の半導体チップに分散して集積させた場合、共通の基板に複数の半導体チップを実装させてもよいし、複数の基板の各々に半導体チップを実装させてもよい。さらに、共通した1つの筐体に各々の半導体チップを収容させてもよいし、別々の筐体に収容させてもよい。
メモリ11mは、プログラム及びデータを記憶する記憶媒体であり、CPU11aによって読み取り可能なプログラムを非一時的に格納する非遷移的実体的記憶媒体を含む。記憶媒体は、半導体メモリ又は磁気ディスクなどによって提供されうる。メモリ11mに記憶されたプログラムは、CPU11aによって実行されることで、ECU10をこの明細書に記載される装置として機能させ、この明細書に記載される方法を実行するように制御装置を機能させる。なお、メモリ11mは、データを一時的に格納する記憶媒体を含んでいてもよい。
ECU10が提供する手段及び/又は機能は、実体的な記憶媒体に記録されたソフトウェア及びそれを実行するコンピュータ、ソフトウェアのみ、ハードウェアのみ、あるいはそれらの組合せによって提供することができる。例えば、ECU10がハードウェアである電子回路によって提供される場合、それは多数の論理回路を含むデジタル回路、又はアナログ回路によって提供することができる。
MCU11には、例えば、メインアクセル開度センサ41、スロットルセンサ、カムセンサ、クランクセンサ、エアフロセンサ、水温センサ、インマニ圧センサなどが、入力処理回路11bと電気的に接続されている。さらに、本実施形態では、これらのセンサに加えて、入力処理回路11bにサブアクセル開度センサ42が電気的に接続された例を採用している。また、MCU11には、外部ECUが第1通信部11cと電気的に接続されている。よって、MCU11は、各種センサからのセンサ信号や外部ECUからの外部信号が入力される。
メインアクセル開度センサ41は、車両の運転者によるアクセル操作量に応じた電気信号であるセンサ信号を出力する。なお、電気信号は、例えば電圧信号である。MCU11は、メインアクセル開度センサ41からのセンサ信号に基づき、車両の運転者が操作したアクセルペダルの踏込量を演算する。以下においては、メインアクセル開度センサ41を単にアクセル開度センサ41とも記載する。アクセル操作量は、アクセルペダルの踏込量に相当し、アクセル開度とも言える。
サブアクセル開度センサ42は、後程説明するアクセル開度の診断を行うために設けられている。言い換えると、サブアクセル開度センサ42は、アクセル開度センサ41による要求トルクに異常が生じているか否か、アクセル開度センサ41に異常が生じているか否かの診断を行うために設けられている。
サブアクセル開度センサ42は、アクセル開度センサ41と同様に、車両の運転者によるアクセル操作量に応じた電気信号であるセンサ信号を出力する。なお、以下においては、アクセル開度センサ41のセンサ信号と、サブアクセル開度センサ42のセンサ信号とを区別するために、アクセル開度センサ41のセンサ信号をメインセンサ信号、サブアクセル開度センサ42のセンサ信号をサブセンサ信号とも称する。また、メインセンサ信号及びサブセンサ信号は、ドライバが要求する要求トルクに相関する信号とみなすことができる。
スロットルセンサは、スロットルバルブの開度(スロットル開度)に応じたセンサ信号を出力する。MCU11は、スロットルセンサからのセンサ信号に基づき、スロットル開度を演算する。
カムセンサは、カムシャフトの回転に応じてパルス状のセンサ信号を出力する。クランクセンサは、エンジンのクランクシャフト(出力軸)の回転に応じてパルス状のセンサ信号を出力する。MCU11は、クランクセンサからのセンサ信号に基づき、クランクシャフトの単位時間当りの回転数、つまりエンジン回転数を演算する。また、MCU11は、カムセンサ及びクランクセンサからのセンサ信号に基づき、気筒判別を行う。なお、エンジン回転数は、内燃機関の回転数に相当する。
エアフロセンサは、空気流量センサに相当し、エンジンの吸入空気量に応じた信号を出力する。MCU11は、エアフロセンサより出力されるセンサ信号に基づき、吸気流量や流速を演算する。また、吸気流量は、推定トルクの算出に用いるパラメータである。吸気流量は、空気流量に相当する。
水温センサは、エンジンを冷却する冷却水の温度に応じた信号を出力する。MCU11は、水温センサからのセンサ信号に基づき、冷却水の温度を演算する。インマニ圧センサは、サージタンク又は吸気マニホールド内の吸気圧に応じたセンサ信号を出力する。MCU11は、インマニ圧センサからのセンサ信号に基づき、燃焼室へ吸入される吸気の圧力を演算する。
外部ECUから出力された外部信号は、例えば、エンジンの出力軸を駆動源とする補機の動作状態を表す信号が挙げられる。上記補機の具体例としては、車室内を空調する空調装置が有している。冷媒圧縮機であって、エンジンの出力軸を駆動源とするコンプレッサが挙げられる。
点火駆動IC12は、点火装置と電気的に接続されている。点火駆動IC12は、エンジンが備えている点火装置への電力供給と、電力供給の遮断を制御するスイッチング素子を有している。MCU11は、このスイッチング素子への指令信号を出力する。具体的には、MCU11は、上記した各種信号に基づき、点火装置で放電点火させる時期の目標値である目標点火時期を演算し、演算した目標点火時期に応じて指令信号を点火駆動IC12へ出力する。
そして、点火駆動IC12は、指令信号に応じて、点火装置に対する駆動信号を出力することで、点火装置を駆動する。このように、MCU11は、点火駆動IC12を介して、点火装置に駆動信号を出力する、と言える。なお、目標点火時期は、要求点火時期と言い換えることもできる。
INJ駆動IC13は、インジェクタに電気的に接続されている。INJ駆動IC13は、エンジンが備えているインジェクタの燃料噴射弁への電力供給と遮断を制御するスイッチング素子を有している。MCU11は、このスイッチング素子への指令信号を出力する。具体的には、MCU11は、上記した各種信号に基づき、燃料噴射弁で燃料噴射させる期間(つまり噴射量)の目標値である目標噴射量を演算し、演算した目標噴射量に応じて指令信号をINJ駆動IC13へ出力する。なお、目標噴射量は、要求噴射量と言い換えることもできる。
そして、INJ駆動IC13は、指令信号に応じて、スイッチング素子を制御して、インジェクタの燃料噴射弁への電力供給を示す駆動信号と、電力供給の遮断を示す駆動信号を出力することで、インジェクタの燃料噴射弁を駆動する。このように、MCU11は、INJ駆動IC13を介して、インジェクタに駆動信号を出力する、と言える。なお、インジェクタは、燃料噴射装置に相当する。
電スロ駆動IC14は、図2に示すように、電子スロットル50に電気的に接続されている。電スロ駆動IC14は、エンジンが備えている電子スロットル50における電子スロットルバルブ(電スロ)への電力供給と、電力供給の遮断を制御するスイッチング素子を有している。MCU11は、このスイッチング素子への指令信号を出力する。具体的には、MCU11は、上記した各種信号に基づき、電スロのバルブ開度の目標値である目標開度を演算し、演算した目標開度に応じて指令信号を電スロ駆動IC14へ出力する。
そして、電スロ駆動IC14は、指令信号に応じて、電子スロットル50に駆動信号を出力することで、電子スロットル50を駆動する。このように、MCU11は、電スロ駆動IC14を介して、電子スロットル50に駆動信号を出力する、と言える。なお、目標開度は、要求吸気流量と言い換えることもできる。
このように、ECU10は、点火装置、燃料噴射弁及び電スロの動作を制御することで、エンジンの燃焼状態を制御する。つまり、ECU10は、少なくともインジェクタを駆動制御しつつ、エンジンの燃焼状態を制御するとも言える。そして、MCU11により演算される目標点火時期、目標噴射量、及び目標開度は、エンジンの燃焼状態を制御する制御量の目標値である目標制御量に相当する。
第2通信部15は、MCU11からの指示に応じて、MCU11が把握している各種情報を外部ECUへ出力する。MCU11は、例えば、トルク監視異常、エアフロセンサ異常など異常が生じている旨を表す異常フラグの信号を、第2通信部15を介して、車両運転者が視認する表示装置の動作を制御する表示ECUへ出力する。表示ECUは、異常フラグの信号を取得した場合に警告表示や警告音を発生させる。しかしながら、本開示は、警告表示や警告音を発生させなくて目的を達成できる。
CPUチェック部11dは、メモリ11mに記憶されているプログラム及びデータが正常であるか否かのチェックを実行する等、CPU11a及びメモリ11mが正常であるか否かをチェックする。このチェックは、例えばパリティチェックなどを採用できる。
統合IC16は、図示しないメモリ、及びメモリに記憶されている各種のプログラムを実行するCPU等を備えている。統合IC16は、CPUが実行するプログラムに応じて、マイコン監視部16aとして機能したり、電スロカット部16bとして機能したりする。マイコン監視部16aは、CPUチェック部11dのチェック結果を参照しつつ、MCU11の動作不良を監視する。
統合IC16は、マイコン監視部16aが異常を検出した場合には、電スロの動作を制限するといった電スロカットの制御を実行する。電スロカット部16bは、電スロ駆動IC14へ電スロカットを指令する信号である電スロカット指令信号を出力する。統合IC16は、電スロカット指令信号を出力することで、例えば、アクセル開度にかかわらず、予め設定しておいた所定開度に目標開度を固定して、エンジンの出力が所定出力未満となるように制限する。あるいは、目標開度をゼロにしてエンジンを強制的に停止させる。なお、電スロ駆動IC14は、MCU11から出力される指令信号よりも電スロカット指令信号を優先して動作する。
制御部20は、ドライバが要求するエンジンの駆動トルクであるユーザ要求トルクに応じて、上記目標制御量を算出する。一方、監視部30は、エンジンに要求されている要求トルクと、エンジンの実トルクの推定値である推定トルクとを用いて、トルク異常状態であるか否かのトルク監視を行う。つまり、監視部30は、制御部20における要求トルクおよびアクチュエータ指示異常による発生トルクの異常を判定する。このように、ECU10は、制御部20と監視部30とを備えた内燃機関制御システムを提供する。
まず、制御部20に関して説明する。制御部20は、以下に示すように、車両のドライバが要求するユーザ要求トルクに応じてエンジンの燃焼状態を制御する。また、制御部20は、車両の走行に不具合を生じさせる異常が発生していると判定した場合に、その異常によって生じる不具合を回避する回避制御を行う。
制御部20は、要求トルク算出部21、駆動信号出力部22、及び制御側アクセル開度診断部(以下、制御側診断部)23としての機能を有している。要求トルク算出部21は、入力処理回路11b及び第1通信部11cから取得した各種信号に基づき、エンジンに要求するべきトルクである要求トルクを算出する。なお、要求トルクは、エンジンに要求するべきトルクであるため、機関要求トルクとも言える。
ここで、図2を用いて、要求トルク算出部21に関して詳しく説明する。なお、図2においては、複数のICのうち電スロ駆動IC14のみを図示している。
要求トルク算出部21は、ドライバ要求トルク算出部21aと目標トルク算出部21bとを有している。ドライバ要求トルク算出部21aは、アクセル開度センサ41からのセンサ信号、すなわちアクセル開度に基づきドライバ要求トルクを算出する。アクセル開度が大きいほど、ドライバ要求トルクは大きい値に算出される。例えば、アクセル開度とドライバ要求トルクとの相関を表すマップをメモリ11mに予め記憶させておき、ドライバ要求トルク算出部21aは、そのマップを参照して、アクセル開度に応じたドライバ要求トルクを算出する。そして、ドライバ要求トルク算出部21aは、算出したドライバ要求トルクを監視部30の退避走行実施判定部(以下、実施判定部)33で参照できるようにする。
なお、ドライバ要求トルク算出部21aは、アクセル開度に加えて、エンジン回転数に基づきドライバ要求トルクを算出してもよい。この場合、エンジン回転数が高回転数であるほど、ドライバ要求トルクは大きい値に算出される。また、エンジン回転数及びアクセル開度とドライバ要求トルクとの相関を表すマップをメモリ11mに予め記憶させておき、ドライバ要求トルク算出部21aは、そのマップを参照して、エンジン回転数及びアクセル開度に応じたドライバ要求トルクを算出する。
目標トルク算出部21bは、ドライバ要求トルクを用いて機関要求トルクを算出する。例えば、目標トルク算出部21bは、リザーブ込みトルクを、トルク効率で除算して、機関要求ルクを算出する。要するに、目標トルク算出部21bは、総ロストルク及びリザーブトルクをドライバ要求トルクに加算した値を、トルク効率で除算することで、機関要求トルクを算出する。
この場合、目標トルク算出部21bは、ポンプロス、フリクションロス、及びロストルク学習値などを加算して、総ロストルクを算出する。さらに、目標トルク算出部21bは、ドライバ要求トルク、総ロストルク、及び外部要求トルクを加算して、ロス込みトルクを算出する。外部要求トルクの具体例としては、車載バッテリへの充電を目的として、内燃機関で駆動する発電機による発電量を増大させるといった、発電増大分のトルクが挙げられる。
なお、ポンプロスは、エンジンのピストンが往復動する際に吸排気から受ける抵抗によるエネルギーロスである。フリクションロスは、エンジンのピストンが往復動する際のシリンダとの摩擦による機械エネルギーロスである。
また、目標トルク算出部21bは、ロス込みトルクに、リザーブトルクを加算して、リザーブ込みトルクを算出する。具体的には、目標トルク算出部21bは、アイドルリザーブ、触媒暖機リザーブ及び補機リザーブの各々に相当するトルクを加算してリザーブトルクを算出する。アイドルリザーブトルクとは、内燃機関のアイドル運転時に発進性/加速性を考慮して意図的に点火遅角状態からの点火進角による即応性を向上させるトルクアップ分に相当するトルクのことである。触媒暖機リザーブトルクとは、内燃機関の排気を浄化する触媒を活性化温度以上に温度上昇させるべく排気温度を上昇させる暖機制御を実施するにあたり、排気温度を上昇させることに用いる燃焼エネルギのロス分をトルクに換算した値のことである。補機リザーブトルクとは、内燃機関を駆動源とする発電機等の補機を駆動させるのに要するトルクのことである。また、これら各々のリザーブトルクは、エンジン回転数、エンジン負荷及び水温等のエンジンの運転状態に応じて設定される。
さらに、目標トルク算出部21bは、最大トルク発生点火時期(MBT点火時期)、ノック学習込みベース遅角量及び目標ラムダに基づき、トルク効率を算出する。MBT点火時期とは、最大トルクが得られる点火時期のことであり、エンジン回転数やエンジン負荷、水温等に応じて異なる時期となる。但し、MBT点火時期ではノッキングが生じやすいので、MBT点火時期よりも所定時間遅い時期、つまり所定角度遅角させた時期で点火させることが要求される。その遅角させた時期をベース点火時期と呼ぶ。その遅角量(ベース遅角量)は、エンジン回転数やエンジン負荷、水温等に応じて異なる。
また、ノッキングがセンサで検出された場合には、点火時期を所定時間だけ遅角させるように補正するフィードバック制御を実行してもよい。この遅角補正量(ノック学習量)を次回以降の点火時期制御に反映させる学習制御をノック学習と呼ぶ。そして、ベース点火時期にノック学習量を反映させた時期が目標点火時期に相当する。
制御部20は、MBT点火時期から目標点火時期を減算して得られた時期を、MBT点火時期に対する目標点火時期の遅角量であるMBT遅角量として算出する。制御部20は、算出したMBT遅角量及び目標ラムダに基づき、トルク効率を算出する。
トルク効率とは、燃焼室での燃焼エネルギのうち、クランク軸の回転トルクに変換される分のエネルギの割合のことである。MBT遅角量が小さいほど、つまり、目標点火時期がMBT点火時期に近いほど、トルク効率は高い値に算出される。目標ラムダとは、燃焼室で燃焼する混合気に含まれる、空気と燃料の比率(ラムダ)の目標値のことである。目標トルク算出部21bは、目標ラムダに応じた値にトルク効率を算出する。例えば、MBT遅角量及び目標ラムダとトルク効率との相関を表すマップをメモリ11mに予め記憶させておき、目標トルク算出部21bは、そのマップを参照して、MBT遅角量及び目標ラムダに応じたトルク効率を算出する。
なお、上記したMBT点火時期、ベース点火時期及び目標ラムダの各々は、エンジン回転数、エンジン負荷及び水温等のエンジンの運転状態に応じて、制御部20により設定される。
また、上記ノック学習に係る学習制御は、制御部20により実行される。本実施形態に係るECU10は、点火駆動IC12から出力される駆動電流又は電圧を検出する検出回路を備えている。そして、制御部20は、その検出回路による検出値を用いて機関要求トルクを演算している。具体的には、上記検出値に基づき実点火時期を算出し、その実点火時期を用いてノック学習に係る学習制御を実行し、ノック学習量を算出している。
なお、ここで採用した、機関要求トルクの算出方法は、一例に過ぎない。本開示は、これに限定されない。つまり、機関要求トルクの算出方法は、特に限定されない。
駆動信号出力部22は、要求吸気流量や要求噴射量の算出などを行う。つまり、駆動信号出力部22は、要求吸気流量算出部と要求噴射量算出部などを備えていると言える。駆動信号出力部22は、要求トルク算出部21で算出された機関要求トルクに応じて目標制御量を算出する。そして、駆動信号出力部22は、算出した目標制御量に応じて各IC12~14に各種指令信号を出力することで、点火装置、インジェクタ、電子スロットル50などの各種アクチュエータに駆動信号を出力する。
例えば、要求吸気流量算出部は、要求トルク算出部21で算出された機関要求トルクに応じて要求吸気流量を算出し、算出した要求吸気流量に応じて電スロ駆動IC14に指令信号を出力する。このようにして、要求吸気流量算出部は、電スロ駆動IC14を介して、電子スロットル50に駆動信号を出力する。
また、要求噴射量算出部は、要求トルク算出部21で算出された機関要求トルクに応じて要求空燃比を算出し、算出した要求空燃比と要求吸気流量又は吸気流量から算出した要求噴射量に応じてINJ駆動IC13に指令信号を出力する。このようにして、要求噴射量算出部は、INJ駆動IC13を介して、インジェクタに駆動信号を出力する。
なお、駆動信号出力部22は、要求トルク算出部21で算出された機関要求トルクに応じて要求点火時期を算出し、算出した要求点火時期に応じて点火駆動IC12に指令信号を出力する。つまり、駆動信号出力部22は、点火駆動IC12を介して、点火装置に駆動信号を出力する。
制御側診断部23は、アクセル開度センサ41からのメインセンサ信号と、サブアクセル開度センサ42からのサブセンサ信号が入力される。制御側診断部23は、メインセンサ信号とサブセンサ信号とを用いて、アクセル開度センサ41の異常、すなわちメインセンサ信号の異常を診断(判定)する。制御側診断部23は、メインセンサ信号とサブセンサ信号とが所定の対応関係である場合に正常と判断し、所定の対応関係にない場合にメインセンサ信号の異常と判断する。また、制御側診断部23は、メインセンサ信号が異常の場合、ドライバ要求トルク及び機関要求トルクが異常とみなす。以下においては、ドライバ要求トルク及び機関要求トルクを区別する必要がない場合、単に要求トルクが異常とみなす。
例えば、制御側診断部23は、メインセンサ信号とサブセンサ信号とが一致している場合に所定の対応関係を満たしているとみなして正常と判断(判定)し、一致していない場合に所定の対応関係を満たしていないとみなして異常と判断する。また、制御側診断部23は、メインセンサ信号とサブセンサ信号との乖離が所定値に達していない場合に所定の対応関係であるとみなして正常と判断し、乖離が所定値に達している場合に所定の対応関係にないとみなして異常と判断する。
なお、制御側診断部23は、この診断結果を監視部30の実施判定部33で参照できるようにしてもよい。しかしながら、本開示は、これに限定されない。また、制御側診断部23は、この診断結果をドライバ要求トルク算出部21aや、後程説明する監視側アクセル開度診断部31aや退避走行実施判定部33で参照できるようにしてもよい。
また、制御部20は、制御側診断部23で要求トルクが異常であると診断した場合、アクセル開度をアクセル固定開度に置き換える、又は、アクセル特性を退避走行用に切り替えるなどのアクセル制限制御を行ってもよい。このアクセル制限制御は、回避制御のひとつである。
さらに、ドライバ要求トルク算出部21aは、制御側診断部23で要求トルクが異常であると診断した場合、電スロ駆動IC14へ電スロカットを指令する信号を出力して退避走行制御を行ってもよい。また、ドライバ要求トルク算出部21aは、制御側診断部23で要求トルクが異常であると診断した場合、機関要求トルクを異常であると診断していない場合よりも小さい値とすることで退避走行制御を行ってもよい。この退避走行制御は、回避制御のひとつである。
次に、図1、図2を用いて、監視部30に関して説明する。監視部30は、エンジンに要求されている要求トルクと、エンジンの実トルクの推定値である推定トルクとを用いて、トルク異常状態であるか否かのトルク監視を行う。このように、ECU10は、制御部20と監視部30とを備えた内燃機関制御システムを提供する。
要求トルクは、エンジンに要求されているトルクのことであり、制御部20の要求トルク算出部21により算出される要求トルクと同義である。但し、監視部30で算出される要求トルクは、トルク異常の監視に用いられる値である。一方、制御部20で算出される要求トルクは、エンジンに対する目標制御量の算出に用いられる値である。つまり、監視用の要求トルクと制御用の要求トルクは、用途が異なる。また、監視用の要求トルクと制御用の要求トルクは、メモリ11mの記憶領域のうち異なる領域に記憶されたプログラムによって演算された値である。
監視部30は、図1に示すように、入力保障部31、トルク監視部32、及び実施判定部33としての機能を有している。
入力保障部31は、入力処理回路11b及び第1通信部11cから取得した各種信号のデータが正常であることをチェックする。入力保障部31は、異常であれば、データ修復、データ再取得、データ廃棄等を実行する。これにより、監視部30は、異常データを用いて各種算出を行うことを回避できる。つまり、入力保障部31は、監視部30による算出に用いられる各種データが正常であることを保障する。ここでのチェックは、上記と同様に、パリティチェックなどを採用できる。
また、入力保障部31は、監視側アクセル開度診断部(以下、監視側診断部)31aとしての機能を有している。監視側診断部31aは、制御側診断部23と同様に、アクセル開度センサ41の異常を診断する。監視側診断部31aは、この診断結果を実施判定部33で参照できるようにする。なお、監視側診断部31aは、アクセル開度センサ41が異常であると診断した場合、アクセル制限制御を行ってもよい。これによって、監視部30は、制御部20によって行われるべきアクセル制限制御が行われていなかった場合に、制御部20にかわってアクセル制限制御を行うことができる。
さらに、実施判定部33は、制御側診断部23での診断結果と、監視側診断部31aでの診断結果とが不一致の場合に、アクセル制限制御を行ってもよい。これによっても、監視部30は、制御部20によって行われるべきアクセル制限制御が行われていなかった場合に、制御部20にかわってアクセル制限制御を行うことができる。
トルク監視部32は、要求トルク算出部32a、推定トルク算出部32b、トルク異常判定部32c及び電スロカット制御部32dとしての機能を有している。
要求トルク算出部32aは、例えば、触媒暖機要求トルク及びアイドル要求トルクと、ドライバ要求トルクと、外部要求トルクとを加算して機関要求トルクを算出する。要求トルク算出部32aは、入力処理回路11b及び第1通信部11cから取得した各種信号であって、入力保障部31により保障された信号に基づき機関要求トルクを算出する。
この場合、要求トルク算出部32aは、触媒暖機目標回転数及びアクセル開度に基づき、触媒暖機要求トルクを算出する。エンジンの排気を浄化する触媒を活性化温度以上に温度上昇させるべく排気温度を上昇させる暖機制御を実行している期間におけるエンジン回転数の目標値が触媒暖機目標回転数である。そして、要求トルク算出部32aは、暖機制御を実行している期間におけるアクセル開度及び触媒暖機目標回転数に基づき、触媒暖機要求トルクを算出する。
触媒暖機要求トルクとは、触媒暖機リザーブトルクと同義である。但し、監視部30で算出される触媒暖機要求トルクは、トルク異常の監視に用いられる値である。一方、制御部20で算出される触媒暖機リザーブトルクは、エンジンに対する目標制御量の算出に用いられる値である。つまり、これら監視用の触媒暖機要求トルクと制御用の触媒暖機リザーブトルクは、メモリ11mの記憶領域のうち異なる領域に記憶されたプログラムによって演算された値である。
なお、本実施形態では、触媒暖機要求トルクの算出に用いる変数の例示として触媒暖機目標回転数及びアクセル開度を記載しているが、他の変数として、水温、ドライバ要求トルク、エンジン回転数及び吸気充填効率が挙げられる。吸気充填効率とは、スロットルバルブを通過した吸気の流量に対する、燃焼室で圧縮される吸気の流量の比率のことである。要求トルク算出部32aは、これらの変数の少なくとも1つを用いて触媒暖機要求トルクを算出する。
要求トルク算出部32aは、アクセルペダルが踏み込まれていない時の触媒暖機目標回転数が大きいほど、触媒暖機要求トルク(リザーブ量)を大きく算出する。また、要求トルク算出部32aは、アクセルペダルが踏み込まれている時のアクセル開度が所定未満であれば触媒暖機要求トルクを所定値に設定し、所定以上であればゼロに設定する。さらに、水温やエンジン回転数に応じて触媒暖機要求トルクを増減させてもよいし、特に吸気充填効率に応じて触媒暖機要求トルクを増減させてもよい。吸気充填効率とは、スロットルバルブを通過した吸気の流量に対する、燃焼室で圧縮される吸気の流量の比率のことである。
要求トルク算出部32aは、アイドル目標回転数及びエンジン回転数に基づき、アイドル要求トルクを算出する。エンジンのアイドル運転時にトルクアップさせて燃焼を安定化させるアイドル制御を実行している期間におけるエンジン回転数の目標値がアイドル目標回転数である。そして、要求トルク算出部32aは、アイドル制御を実行している期間におけるエンジン回転数及びアイドル目標回転数に基づき、アイドル要求トルクを算出する。
アイドル要求トルクとは、アイドルリザーブトルクと同義である。但し、監視部30で算出されるアイドル要求トルクは、トルク異常の監視に用いられる値である。一方、制御部20で算出されるアイドルリザーブトルクは、エンジンに対する目標制御量の算出に用いられる値である。つまり、これら監視用のアイドル要求トルクと制御用のアイドルリザーブトルクは、メモリ11mの記憶領域のうち異なる領域に記憶されたプログラムによって演算された値である。
なお、本実施形態では、アイドル要求トルクの算出に用いる変数の例示としてアイドル目標回転数及びエンジン回転数を記載しているが、他の変数として、水温、車速、大気圧及び吸気充填効率が挙げられる。要求トルク算出部32aは、これらの変数の少なくとも1つを用いてアイドル要求トルクを算出する。
要求トルク算出部32aは、アクセルペダルが踏み込まれていない時の目標回転数とエンジン回転数との差分が小さいほど、アイドル要求トルク(リザーブ量)を大きく算出する。また、要求トルク算出部32aは、アクセルペダルが踏み込まれている時のアクセル開度が小さいほど、アイドル要求トルクを大きく算出する。さらに、水温やエンジン回転数に応じてアイドル要求トルクを増減させてもよいし、特に吸気充填効率に応じてアイドル要求トルクを増減させてもよい。
なお、要求トルク算出部32aによる機関要求トルクの算出方法は、上記一例を採用することができるが、これに限定されない。
推定トルク算出部32bは、MBT推定トルクにトルク効率を乗算した値を、ロストルクを考慮しない推定トルクとして算出する。推定トルク算出部32bは、算出した推定トルクから、ロストルクを減算した値を、監視用の推定トルクとして演算する。推定トルク算出部32bは、入力処理回路11b及び第1通信部11cから取得したクランクセンサやエアフロセンサなどの各種信号であって、入力保障部31により保障された信号に基づき、エンジンが実際に出力している駆動トルクを推定する。
この場合、推定トルク算出部32bは、吸気充填効率及びエンジン回転数に基づき、点火時期がMBTである場合におけるエンジンの実際の駆動トルク(MBT推定トルク)を推定する。MBT推定トルクは、エンジン回転数が高回転数であるほど、また、吸気充填効率が大きいほど大きい値が算出される。例えば、エンジン回転数及び吸気充填効率とMBT推定トルクとの相関を表すマップをメモリ11mに予め記憶させておき、推定トルク算出部32bは、このマップを参照して、エンジン回転数及び吸気充填効率に応じたMBT推定トルクを算出する。
また、推定トルク算出部32bは、吸気充填効率及びエンジン回転数に基づきMBT点火時期を算出する。推定トルク算出部32bは、吸気充填効率及びエンジン回転数に基づきベース点火時期を算出する。これらのMBT点火時期及びベース点火時期は、MBT推定トルクの算出と同様に、メモリ11mに予め記憶させておいたマップを参照して算出される。
また、推定トルク算出部32bは、MBT点火時期からベース点火時期を減算した値を、ベース遅角量として演算する。そして、推定トルク算出部32bは、ベース遅角量に基づきトルク効率を算出する。但し、推定トルク算出部32bは、ノック学習量が予め設定しておいた所定量又はゼロとみなしてトルク効率を算出する。
また、推定トルク算出部32bは、エンジン回転数及び水温に基づき、ポンプロス及びフリクションロスを含むロスエネルギをトルク換算したロストルクを算出する。例えば、エンジン回転数及び水温とロストルクとの相関を表すマップをメモリ11mに予め記憶させておき、推定トルク算出部32bは、このマップを参照して、エンジン回転数及び水温に応じたロストルクを算出する。
なお、推定トルク算出部32bによる駆動トルクの推定方法は、上記一例を採用することができるが、これに限定されない。
トルク異常判定部32cは、例えば、要求トルク算出部32aにより算出された機関要求トルクと、推定トルク算出部32bにより算出された推定トルクとの差分を算出し、その差分が所定以上であればトルク異常状態であると判定する。電スロカット制御部32dは、トルク異常判定部32cによってトルク異常状態であると判定された場合、電スロカット部16bと同様にして、電スロ駆動IC14へ電スロカットを指令する信号を出力する。このように、監視部30は、退避走行制御を行うことができる。なお、トルク監視部32は、トルク異常状態であると判定された場合、INJ駆動IC13への通電をカットしてもよい。
実施判定部33は、制御部20が算出した要求トルクである機関要求トルクと、監視部30が算出した要求トルクである機関要求トルクとに基づいて、制御部20によって回避制御のひとつである退避走行制御が実施されているか否かを判定する。例えば、実施判定部33は、監視部30で算出した機関要求トルクよりも、制御部20で算出した機関要求トルクの方が大きい場合に、制御部20による退避走行制御が行われていないと判定する。なお、このときの監視部30が算出した要求トルクは、ドライバの要求が正しく反映できない場合の制限が働いた要求トルクに相当する。さらに、実施判定部33は、監視部30で算出した機関要求トルクよりも、制御部20で算出した機関要求トルクの方が大きく、且つ、両機関要求トルクの乖離が所定値以上の場合に、制御部20による退避走行制御が行われていないと判定してもよい。
また、実施判定部33は、監視側診断部31aでの診断結果を参照する。そして、実施判定部33は、監視側診断部31aにてアクセル開度センサ41が異常であると診断されており、且つ、制御部20によって退避走行制御が実施されていないと判定した場合、制御部異常と判定する(回避制御実施部)。なお、制御部異常とは、制御部20が正常に動作していない状態を示す。
実施判定部33は、制御部異常と判定すると退避走行制御を行う。この場合、実施判定部33は、例えば、トルク異常判定部32cと電スロカット制御部32dを介して、電スロ駆動IC14へ電スロカットを指令する信号を出力する。このように、監視部30は、退避走行制御を行う。このとき、制御部20によって退避走行制御が行われていない場合、監視部30は、制御部20にかわって退避走行制御を行うことができる。
特に、本実施形態では、制御部異常と判定し、且つ、制御部異常と判定している時間が所定時間継続した場合に、退避走行制御を行う例を採用する(回避制御実施部)。この場合、実施判定部33は、制御部異常と判定している時間を計時し、その計時時間が時間判定閾値に達すると退避走行制御を行う。言い換えると、実施判定部33は、制御部異常と判定するとカウントを開始、カウント値が時間判定閾値に達すると退避走行制御を行う。ここでのカウントは、異常判定カウントとも言える。なお、実施判定部33は、ECU10に設けられたカウンタを用いて異常判定カウントを行う。
このようにすることで、ECU10は、制御部異常と判定して即座に退避走行制御を行う場合よりも、誤判定によって退避走行制御を行うことを抑制できる。
さらに、実施判定部33は、監視側診断部31aでアクセル開度センサ41が異常であると診断している状況で、制御側診断部23で異常と診断されている場合よりも、要求トルクが異常と診断されていない場合の方が時間判定閾値を短い値に変更する。つまり、実施判定部33は、制御側診断部23で異常と診断されている場合よりも、異常と診断されていない場合の方が早くカウント値が時間判定閾値に達するように、時間判定閾値を設定する。よって、実施判定部33は、制御側診断部23による要求トルク異常の判定結果に応じて、異常が発生していると判断している場合よりも、異常が発生していると判断していない場合の方が速く退避走行制御を行う。このようにすることで、ECU10は、制御側診断部23によって要求トルクが異常であると診断できていない場合に、迅速に退避走行制御を行うことができる。
時間判定閾値は、例えば、制御側診断部23で異常が発生していると判定している場合は第1閾値を設定し、異常が発生していると判定していない場合は第1閾値よりも時間的に短い値の第2閾値を設定する。よって、第1閾値と第2閾値との関係は、第2閾値<第1閾値となっている。
そして、第2閾値は、例えば、アクセル異常診断時間に相当するカウント値を、第1閾値から減算した値にすると好ましい。このアクセル異常診断時間は、アクセル開度センサ41の異常が発生してから、監視側診断部31aがそれを検出するまでの時間である。
なお、時間判定閾値は、基準閾値としての第1閾値と、第1閾値よりも小さい値の第2閾値とから選択される、と言える。また、第1閾値と第2閾値は、例えば判定結果と対応付けてメモリ11mに記憶されている。
ここで、図3、図4、図5を用いて、監視部30の処理動作に関して説明する。監視部30は、所定時間毎に図3のフローチャートに示す処理を実行する。
ステップS10では、要求トルク異常であるか否かを判定する(回避制御実施部)。監視側診断部31aは、アクセル開度センサ41が異常であると診断されているか否かを判定する。そして、監視側診断部31aは、アクセル開度センサ41が異常であると判定した場合はステップS20へ進む(図5のタイミングt2)。監視側診断部31aは、アクセル開度センサ41が異常であると判定しなかった場合は図3のフローチャートに示す処理を終了する。なお、本実施形態では、図5のタイミングt1でアクセル開度センサ41に異常が発生したものとする。よって、監視側診断部31aは、アクセル開度センサ41の異常が発生してから、アクセル開度センサ41が異常であると診断するのに、タイミングt1~t2の時間を要することになる。
ステップS20では、退避走行を実施しているか否かを判定する(回避制御実施部)。実施判定部33は、制御部20によって退避走行制御が実施されているか否かを判定する。実施判定部33は、制御部20によって退避走行制御が実施されていないと判定した場合は制御部異常とみなしてステップS30へ進み、実施されていると判定した場合は図3のフローチャートに示す処理を終了する。監視部30は、制御部20にかわって退避走行制御を実施するか否かを判定するためにステップS20、S30を行うと言える。
ステップS30では、異常判定カウントをスタートする。実施判定部33は、制御部異常とみなすと、異常判定カウントをスタートする。実施判定部33は、制御部20にかわって監視部30が退避走行制御を実行するタイミングを確認するために、異常判定カウントをスタートする(図5のタイミングt2)。
ステップS40では、カウント値≧時間判定閾値であるか否かを判定する。実施判定部33は、カウント値≧時間判定閾値であると判定した場合はステップS50へ進み、カウント値≧時間判定閾値であると判定しなかった場合はステップS40を繰り返す。なお、ここでの時間判定閾値は、上記のように第1閾値か第2閾値が設定される。
ステップS50では、退避走行制御を実施する(回避制御実施部)。実施判定部33は、カウント値が時間判定閾値に達すると、退避走行制御を実施する(図5のタイミングt3又はt4)。このとき、制御部20が実施すべき退避走行制御を実施していないこともある。よって、実施判定部33は、制御部20にかわって退避走行制御を実施すると言える。
以上のように、監視部30は、監視側診断部31aで要求トルクが異常と判定し、且つ、制御部20にて行われるべき退避走行制御が行われていない場合に制御部異常と判定する(回避制御実施部)。そして、監視部30は、制御部異常と判定すると退避走行制御を行う(回避制御実施部)。よって、ECU10は、制御部20の監視に要する処理負荷を高めることなく、回避制御のひとつである退避走行制御を実施できる。
次に、図4のフローチャートを用いて閾値設定処理に関して説明する。閾値設定処理は、ステップS40で用いる時間判定閾値を決定するための処理である。監視部30は、要求トルク異常と判定した場合、すなわち、監視側診断部31aでアクセル開度センサ41が異常と判定した場合に、図4のフローチャートに示す処理を実行する。
ステップS60では、制御部が異常判定しているか否かを判定する。つまり、実施判定部33は、制御側診断部23が要求トルクの異常と診断しているか否かを判定する。そして、実施判定部33は、制御側診断部23が要求トルクの異常と診断していないと判定した場合はステップS70へ進み、異常と診断していると判定した場合はステップS80へ進む。
ステップS70では、時間判定閾値に第2閾値を設定する。一方、ステップS80では、時間判定閾値に第1閾値を設定する。上記のように、第2閾値は、第1閾値よりも小さい値となっている。また、本実施形態では、一例として、第1閾値からアクセル異常診断時間に相当するカウント値を減算した第2閾値を採用している。つまり、監視部30は、監視側診断部31aでアクセル開度センサ41が異常と判定し、且つ、制御側診断部23でアクセル開度センサ41が異常と判定されていた場合は、制御部20が正常に診断しているとみなして第1閾値を時間判定閾値に設定する。一方、監視部30は、監視側診断部31aでアクセル開度センサ41が異常と判定しているのに、制御側診断部23でアクセル開度センサ41が異常と判定されてない場合は、制御部20が正常に診断できていないとみなして第2閾値を時間判定閾値に設定する。
ところで、図5のタイミングt1~t3の時間は、制御部20が、アクセル開度センサ41に異常が発生したことを検出して、退避走行制御を実施するまでのトルク監視診断時間である。このトルク監視診断時間は、制御部20によるトルク監視診断時間とも言える。一方、図5のタイミングt2~t4の時間は、監視部30が、カウント値が第1閾値に達したことで、退避走行制御を実施するまでのトルク監視診断時間である。
よって、監視部30は、時間判定閾値を変更しない場合、アクセル異常診断時間に相当するタイミングt1~t3の分だけカウント値が時間判定閾値に達するのが遅れ、タイミングt4でカウント値が時間判定閾値に達したと判定することになる。このため、監視部30は、制御部20によるトルク監視診断時間内に退避走行制御を実施できない可能性がある。つまり、監視部30は、監視側診断部31aでアクセル開度センサ41が異常と判定しているのにもかかわらず、制御側診断部23でアクセル開度センサ41が異常と判定できてない場合、タイミングt3までの間に退避走行制御を実施できない可能性がある。なお、タイミングt3~t4の期間は、タイミングt1~t3と同等、つまり、アクセル異常診断時間と同等の期間と言える。
これに対して、本実施形態の監視部30は、上記のように状況に応じて第2閾値を時間判定閾値として採用するため、制御側診断部23でアクセル開度センサ41が異常と判定できてない場合に、カウント値が時間判定閾値に達するのを早めることができる。つまり、監視部30は、カウント値が時間判定閾値に達するのをタイミングt4からタイミングt3へ早めることができる。よって、監視部30は、監視側診断部31aでアクセル開度センサ41が異常と判定しており、且つ、制御側診断部23でアクセル開度センサ41が異常と判定できてない場合であっても、監視部30によるトルク監視診断時間内に実施することができる。
以上、本開示の好ましい実施形態について説明した。しかしながら、本開示は、上記実施形態に何ら制限されることはなく、本開示の趣旨を逸脱しない範囲において、種々の変形が可能である。以下に、本開示のその他の形態として、第2実施形態及び変形例に関して説明する。上記実施形態、第2実施形態、及び変形例は、それぞれ単独で実施することも可能であるが、適宜組み合わせて実施することも可能である。本開示は、実施形態において示された組み合わせに限定されることなく、種々の組み合わせによって実施可能である。
(第2実施形態)
図6のフローチャートを用いて、第2実施形態のECU10に関して説明する。なお、第2実施形態のECU10は、上記実施形態のECU10と同様の個所が多いため、便宜的に、上記実施形態と同様の符号及びステップ番号を用いる。よって、上記実施形態と同様の符号及びステップ番号に関しては、上記実施形態における説明を採用できる。
上記実施形態では、要求トルクが異常と判定して、制御部20にて行われるべき回避制御が行われていないと判定し、且つ、異常判定カウントのカウント値が時間判定閾値に達した場合に、退避走行制御を行う例を採用した。しかしながら、本開示は、これに限定されない。
第2実施形態のECU10は、図6に示すように、要求トルクが異常と判定して、制御部20にて行われるべき回避制御が行われていないと判定すると退避走行制御を行う。これによって、ECU10は、監視部30で、監視側診断部31aでアクセル開度センサ41が異常であると判定し、且つ、実施判定部33で制御部20によって退避走行制御が実施されていないと判定した場合、即座に退避走行制御を実施することができる。
(変形例)
上記実施形態では、監視部30が、要求トルクが異常と判定し、且つ、制御部20にて行われるべき回避制御が行われていないと判定した場合に制御部異常と判定する例を採用した。しかしながら、本開示は、これに限定されない。本開示は、監視部30が、要求トルクが異常と判定した場合、及び、制御部20にて行われるべき回避制御が行われていない場合の少なくとも一方の場合に制御部異常と判定するものであれば採用できる。よって、本開示は、監視部30が、要求トルクが異常と判定した場合に、制御部異常と判定してもよいし、監視部30が、制御部20にて行われるべき回避制御が行われていない場合に制御部異常と判定してもよい。
なお、上記実施形態では、メインセンサ信号とサブセンサ信号とを用いて、アクセル開度センサ41の異常か否かによって、要求トルクが異常か否かの診断を行う監視側診断部31aを採用した。しかしながら、監視側診断部31aは、メインセンサ信号と判定閾値とを用いて、アクセル開度センサ41の異常か否かによって、要求トルクが異常か否かの診断を行ってもよい。
例えば、監視側診断部31aは、メインセンサ信号と判定閾値とを比較し、メインセンサ信号と判定閾値が所定の対応関係を満たす場合にアクセル開度センサ41が正常、すなわち要求トルクが正常であると判定する。一方、監視側診断部31aは、メインセンサ信号と判定閾値とが所定の対応関係を満たさない場合にアクセル開度センサ41が異常、すなわち要求トルクが異常であると判定する。この場合、ECU10は、サブアクセル開度センサ42が接続されていなくてもよい。
監視部30は、さらに、制御部20に入力される要求トルクに相関するトルク相関信号を取得し、トルク相関信号に応じた要求トルクと、推定トルクとを用いて、要求トルクの異常を判定するものであってもよい(トルク異常判定部)。この場合、監視部30は、要求トルクと推定トルクが所定の対応関係を満たす場合に異常ではないと判定し、所定の対応関係を満たさない場合に異常と判定する。
トルク相関信号としては、例えば、車両のクルーズコントロールに用いる加速スイッチからのスイッチ信号や車速要求信号、外部ECUからの車速要求信号や加速要求信号などを採用することができる。要求トルクと推定トルクとの関係は、これらの信号に応じてかわる。よって、監視部30は、これらの信号に応じた要求トルクと推定トルクとを用いて、要求トルクの異常を判定することで、判定精度を向上することができる。これによっても、上記実施形態と同様の効果を奏することができる。
上記実施形態では、制御部20が算出した機関要求トルクと、監視部30が算出した機関要求トルクとに基づいて、制御部20によって退避走行制御が実施されているか否かを判定する例を採用した。しかしながら、本開示は、これに限定されない。実施判定部33は、監視部30による要求トルクが異常であるか否かの判定結果と、制御部20による要求トルクが異常であるか否かの判定結果とに基づいて、制御部20によって退避走行制御が実施されているか否かを判定してもよい。実施判定部33は、監視部30による要求トルクが異常であるか否かの判定結果と、制御部20による要求トルクが異常であるか否かの判定結果とが一致した場合に、退避走行制御が行われていると判定する。一方、実施判定部33は、監視部30による要求トルクが異常であるか否かの判定結果と、制御部20による要求トルクが異常であるか否かの判定結果とが不一致の場合に、退避走行制御が行われていないと判定する。これによっても、上記実施形態と同様の効果を奏することができる。
上記実施形態では、制御部異常と判定し、且つ、制御部異常と判定している時間が所定時間継続した場合に退避走行制御を行い、制御部20で異常が発生していると判定していない場合の方が速く退避走行制御を行う例を採用した。しかしながら、本開示は、これに限定されない。監視部30は、制御部異常と判定し、且つ、制御部異常と判定する状態が所定量積算された場合に、制御部20にかわって退避走行制御を行うものであってもよい(回避制御実施部)。さらに、監視部30は、制御部20で異常が発生していると判定している場合よりも、異常が発生していると判定していない場合の方が速く退避走行制御を行うものであってもよい(回避制御実施部)。これによっても、上記実施形態と同様の効果を奏することができる。なお、制御部異常と判定する状態とは、加速度などを採用できる。