(57)【要約】【課題】トルク異常を精度良く監視できるようにした内燃機関制御システムを提供する。【解決手段】内燃機関制御システムは、ユーザ要求トルクに応じて内燃機関の目標制御量を演算する制御モジュール２０（制御用演算装置）と、推定トルクが機関要求トルクに対して乖離したトルク異常状態について監視する監視モジュール３０（監視用演算装置）と、を備える。制御モジュール２０は制御用記憶領域２０ｍを用いて演算し、監視モジュール３０は、制御用記憶領域２０ｍとは別の監視用記憶領域３０ｍを用いて演算する。そして、内燃機関の吸気行程で排気ポートから抜け出る吹抜量、その抜け出る度合、または燃焼室へ充填される筒内空気量を吹抜状態量とし、監視モジュール３０は、吹抜状態量を用いて推定トルクを演算する。【選択図】図１
2019027350.tif 000002
【特許請求の範囲】
【請求項１】
制御用記憶領域（２０ｍ）を用いて演算する演算装置であって、ユーザが要求する内燃機関（９０）の駆動トルクであるユーザ要求トルクに応じて、前記内燃機関の燃焼状態を制御する制御量の目標値である目標制御量を演算する制御用演算装置（２０）と、
前記制御用記憶領域とは別の監視用記憶領域（３０ｍ）を用いて演算する演算装置であって、前記内燃機関の実トルクの推定値である推定トルクが、前記内燃機関に要求されている機関要求トルクに対して所定以上乖離したトルク異常状態であるか否かを監視する監視用演算装置（３０、３０Ａ、３０Ｂ）と、
を備え、
前記内燃機関の吸気行程で排気ポート（９０ｏｕｔ）から抜け出る吸気の量である吹抜量、または前記排気ポートから吸気が抜け出る度合、または前記内燃機関の燃焼室（９０ａ）へ充填される空気量である筒内空気量を吹抜状態量とし、
前記監視用演算装置は、前記吹抜状態量を用いて前記推定トルクを演算する内燃機関制御システム。
【請求項２】
前記制御用演算装置は、前記目標制御量の演算に用いる前記吹抜状態量を算出する制御用吹抜状態算出部（２２１ｂ）を有し、
前記監視用演算装置は、前記推定トルクの演算に用いる前記吹抜状態量を算出する監視用吹抜状態算出部（３６、３６ａ）を有する請求項１に記載の内燃機関制御システム。
【請求項３】
前記監視用吹抜状態算出部は、
吸気管（９５）に取り付けられたスロットルバルブ（９４）を通過する空気量、吸気弁（９２）の開弁期間と排気弁（９３）の開弁期間とが重複するオーバーラップ期間、吸気圧、排気圧、および機関回転速度の少なくとも１つに基づき、前記吹抜状態量を算出する請求項２に記載の内燃機関制御システム。
【請求項４】
前記制御用演算装置は、前記目標制御量の演算に用いる前記吹抜状態量を算出する制御用吹抜状態算出部（２２１ｂ）を有し、
前記監視用演算装置は、前記制御用吹抜状態算出部により算出された前記吹抜状態量を取得する取得部（Ｓ３２Ｂ）を有し、前記取得部により取得された前記吹抜状態量を用いて前記推定トルクを演算する請求項１に記載の内燃機関制御システム。
【請求項５】
前記監視用演算装置は、前記取得部により取得された前記吹抜状態量が所定範囲を超えた場合には、前記推定トルクの演算に用いる前記吹抜状態量を、前記所定範囲の上限または下限に制限する請求項４に記載の内燃機関制御システム。
【請求項６】
前記監視用演算装置の演算周期は、前記制御用演算装置の演算周期より長い請求項１〜５のいずれか１つに記載の内燃機関制御システム。
【請求項７】
前記監視用演算装置は、前記監視用演算装置の外部から取得したデータが正常であることをチェックする入力保障部（３１）を有する請求項１〜６のいずれか１つに記載の内燃機関制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この明細書における開示は、内燃機関制御システムに関する。
【背景技術】
【０００２】
特許文献１には、ユーザが要求する内燃機関の駆動トルク（ユーザ要求トルク）に対して内燃機関の実トルクが大きく乖離するといった、トルク異常の有無を監視する装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９６７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
さて、スロットルバルブを通過する空気の全てが圧縮行程で圧縮されて燃焼に用いられるとは限らず、例えばスカベンジングの目的で、燃焼室に流入した空気の一部を排気ポートから流出させる場合がある。スカベンジングとは、吸気行程の開始直後に、吸気弁と排気弁の両方を開弁させることで、吸気の一部を排気ポートから吹き抜けさせ、燃焼室に残留する高温ガスや未燃ガスを排気ポートから掃気させることである。
【０００５】
したがって、スロットルバルブを通過する空気量が同じであっても吹き抜けの有無によって実トルクは異なってくる。このことに起因して、従来のトルク異常監視では、実トルクの推定誤差が大きくなる場合があり、トルク異常を精度良く監視できないことが懸念される。
【０００６】
この開示の目的は、トルク異常を精度良く監視できるようにした内燃機関制御システムを提供することである。
【課題を解決するための手段】
【０００７】
ここに開示された内燃機関制御システムは、
制御用記憶領域（２０ｍ）を用いて演算する演算装置であって、ユーザが要求する内燃機関（９０）の駆動トルクであるユーザ要求トルクに応じて、内燃機関の燃焼状態を制御する制御量の目標値である目標制御量を演算する制御用演算装置（２０）と、
制御用記憶領域とは別の監視用記憶領域（３０ｍ）を用いて演算する演算装置であって、内燃機関の実トルクの推定値である推定トルクが、内燃機関に要求されている機関要求トルクに対して所定以上乖離したトルク異常状態であるか否かを監視する監視用演算装置（３０、３０Ａ、３０Ｂ）と、を備え、
内燃機関の吸気行程で排気ポート（９０ｏｕｔ）から抜け出る吸気の量である吹抜量、または排気ポートから吸気が抜け出る度合、または内燃機関の燃焼室（９０ａ）へ充填される空気量である筒内空気量を吹抜状態量とし、
監視用演算装置は、吹抜状態量を用いて推定トルクを演算する。
【０００８】
ここに開示された内燃機関制御システムによると、トルク異常の監視に用いられる推定トルクは、吹抜状態量を用いて演算されている。そのため、スカベンジング等の吹き抜けの有無に起因した推定トルクの演算誤差を小さくでき、トルク異常を精度良く監視することができる。
【０００９】
この明細書における開示された複数の態様は、それぞれの目的を達成するために、互いに異なる技術的手段を採用する。請求の範囲およびこの項に記載した括弧内の符号は、後述する実施形態の部分との対応関係を例示的に示すものであって、技術的範囲を限定することを意図するものではない。この明細書に開示される目的、特徴、および効果は、後続の詳細な説明、および添付の図面を参照することによってより明確になる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係る内燃機関制御システムのブロック図。
【図２】図１に示す制御モジュールのブロック図。
【図３】図１に示す制御モジュールのブロック図。
【図４】スカベンジングの状況を説明する内燃機関の模式図。
【図５】図１に示す監視モジュールのブロック図。
【図６】スロットル通過空気量に対する燃焼トルクの値が、スカベンジングの影響を受ける様子を示す図。
【図７】第１実施形態においてトルク監視制御の手順を示すフローチャート。
【図８】図７に示す監視用要求トルク算出の処理手順を示すフローチャート。
【図９】図７に示す監視用推定トルク算出の処理手順を示すフローチャート。
【図１０】第１実施形態において、吹抜効率算出の処理手順を示すフローチャート。
【図１１】トルクおよび空気量の時間変化を示す一態様であって、トルク異常を誤判定する態様を示すタイムチャート。
【図１２】第２実施形態に係る監視モジュールのブロック図。
【図１３】第３実施形態に係る監視モジュールのブロック図。
【図１４】図１３に示す監視用推定トルク算出の処理手順を示すフローチャート。
【発明を実施するための形態】
【００１１】
図面を参照しながら、複数の実施形態を説明する。複数の実施形態において、機能的におよび／または構造的に対応する部分および／または関連付けられる部分には同一の参照符号、または百以上の位が異なる参照符号が付される場合がある。対応する部分および／または関連付けられる部分については、他の実施形態の説明を参照することができる。
【００１２】
（第１実施形態）
図１は、車両に搭載された電子制御装置（Electronic Control Unit）であって、車両に搭載された内燃機関の作動を制御するＥＣＵ１０を示す。本実施形態に係る内燃機関は点火着火式のガソリンエンジンであるが、自着火式のディーゼルエンジンであってもよい。また、本実施形態に係る内燃機関は、空気を加圧して燃焼室へ吸入させる過給機、および吸排気弁の開閉弁タイミングを調節するバルブ調節装置を備えている。ＥＣＵ１０は、ＭＣＵ１１(Micro Controller Unit)、点火駆動ＩＣ１２、燃料噴射弁駆動ＩＣ１３、電スロ駆動ＩＣ１４、通信回路１５および統合ＩＣ１６を備える。
【００１３】
ＭＣＵ１１は、演算処理装置であるＣＰＵ１１ａと、記憶媒体であるメモリ１１ｍと、入力処理回路１１ｃと、通信回路１１ｄと、ＣＰＵチェック回路１１ｅと、を備える。図１に示す例では、ＭＣＵ１１は１つの半導体チップ上に、ＣＰＵ１１ａ、メモリ１１ｍ、入力処理回路１１ｃ、通信回路１１ｄおよびＣＰＵチェック回路１１ｅが集積されているが、複数の半導体チップに分散して集積させてもよい。また、複数の半導体チップに分散して集積させた場合、共通の基板に複数の半導体チップを実装させてもよいし、複数の基板の各々に半導体チップを実装させてもよい。さらに、共通した１つの筐体に各々の半導体チップを収容させてもよいし、別々の筐体に収容させてもよい。
【００１４】
メモリ１１ｍは、プログラムおよびデータを記憶する記憶媒体であり、ＣＰＵ１１ａによって読み取り可能なプログラムを非一時的に格納する非遷移的実体的記憶媒体を含む。記憶媒体は、半導体メモリまたは磁気ディスクなどによって提供されうる。メモリ１１ｍに記憶されたプログラムは、ＣＰＵ１１ａによって実行されることによって、ＥＣＵ１０をこの明細書に記載される装置として機能させ、この明細書に記載される方法を実行するように制御装置を機能させる。
【００１５】
制御装置が提供する手段および／または機能は、実体的な記憶媒体に記録されたソフトウェアおよびそれを実行するコンピュータ、ソフトウェアのみ、ハードウェアのみ、あるいはそれらの組合せによって提供することができる。例えば、制御装置がハードウェアである電子回路によって提供される場合、それは多数の論理回路を含むデジタル回路、またはアナログ回路によって提供することができる。
【００１６】
ＭＣＵ１１には、エンジン回転数、アクセル開度、インマニ圧、排気圧、水温、油温、吸気温、外部ＥＣＵから出力された外部信号等の各種信号が入力される。これらの信号は、ＥＣＵ１０の外部から入力処理回路１１ｃまたは通信回路１１ｄへ入力される。
【００１７】
エンジン回転数の信号は、クランク角センサの検出値を表す信号であり、この検出値に基づきＭＣＵ１１は、内燃機関のクランク軸（出力軸）の単位時間当りの回転数、つまり出力軸の回転速度を演算する。アクセル開度の信号は、アクセルペダルセンサの検出値を表す信号であり、この検出値に基づきＭＣＵ１１は、車両の運転者つまり内燃機関のユーザが操作したアクセルペダルの踏込量を演算する。
【００１８】
インマニ圧の信号は、吸気圧センサの検出値を表す信号であり、この検出値に基づきＭＣＵ１１は、燃焼室へ吸入される吸気の圧力を演算する。排気圧の信号は、排気圧センサの検出値を表す信号であり、この検出値に基づきＭＣＵ１１は、燃焼室から排出される排気の圧力を演算する。水温の信号は、水温センサの検出値を表す信号であり、この検出値に基づきＭＣＵ１１は、内燃機関を冷却する水の温度を演算する。油温の信号は、油温センサの検出値を表す信号であり、この検出値に基づきＭＣＵ１１は、内燃機関の潤滑油や油圧アクチュエータの作動油の温度を演算する。
【００１９】
吸気温の信号は、吸気温度センサの検出値を表す信号であり、この検出値に基づきＭＣＵ１１は、燃焼室へ吸入される吸気の温度を演算する。外部ＥＣＵから出力された外部信号の具体例としては、内燃機関の出力軸を駆動源とする補機の作動状態を表す信号が挙げられる。上記補機の具体例としては、車室内を空調する空調装置が有する冷媒圧縮機であって、内燃機関の出力軸を駆動源とするコンプレッサが挙げられる。
【００２０】
点火駆動ＩＣ１２は、内燃機関が備える点火装置への電力供給と遮断を制御するスイッチング素子を有し、このスイッチング素子への指令信号をＭＣＵ１１は出力する。具体的には、ＭＣＵ１１は、先述したエンジン回転数等の各種信号に基づき、点火装置で放電点火させる時期の目標値である目標点火時期を演算し、演算した目標点火時期に応じて指令信号を点火駆動ＩＣ１２へ出力する。
【００２１】
燃料噴射弁駆動ＩＣ１３は、内燃機関が備える燃料噴射弁への電力供給と遮断を制御するスイッチング素子を有し、このスイッチング素子への指令信号をＭＣＵ１１は出力する。具体的には、ＭＣＵ１１は、先述したエンジン回転数等の各種信号に基づき、燃料噴射弁で燃料噴射させる期間（つまり噴射量）の目標値である目標噴射量を演算し、演算した目標噴射量に応じて指令信号を燃料噴射弁駆動ＩＣ１３へ出力する。
【００２２】
電スロ駆動ＩＣ１４は、内燃機関が備える電子スロットルバルブ（電スロ）への電力供給と遮断を制御するスイッチング素子を有し、このスイッチング素子への指令信号をＭＣＵ１１は出力する。具体的には、ＭＣＵ１１は、先述したエンジン回転数等の各種信号に基づき、電スロ９４（図４参照）のバルブ開度の目標値である目標開度を演算し、演算した目標開度に応じて指令信号を電スロ駆動ＩＣ１４へ出力する。
【００２３】
このように、点火装置、燃料噴射弁および電スロ９４の作動をＥＣＵ１０が制御することで、内燃機関の燃焼状態は制御される。そして、ＭＣＵ１１により演算される目標点火時期、目標噴射量および目標開度は、内燃機関の燃焼状態を制御する制御量の目標値である目標制御量に相当する。
【００２４】
通信回路１５は、ＭＣＵ１１が把握している各種情報を外部ＥＣＵへ出力する。例えば、後述するトルク異常状態等の異常が生じている旨を表す異常フラグの信号を、車両運転者が視認する表示装置の作動を制御する表示ＥＣＵへ出力する。表示ＥＣＵは、異常フラグの信号を取得した場合に警告表示や警告音を生じさせる。
【００２５】
統合ＩＣ１６は、図示しないメモリ、およびメモリに記憶されている各種のプログラムを実行するＣＰＵ等を備える。ＣＰＵが実行するプログラムに応じて、統合ＩＣ１６は、マイコン監視部１６ａとして機能したり、電スロカット制御部１６ｂとして機能したりする。
【００２６】
ここで、ＣＰＵチェック回路１１ｅは、メモリ１１ｍに記憶されているプログラムおよびデータが正常であるかのチェック（例えばパリティチェック）を実行する等、ＣＰＵ１１ａおよびメモリ１１ｍが正常であるか否かをチェックする。マイコン監視部１６ａは、ＣＰＵチェック回路１１ｅのチェック結果を参照しつつ、ＭＣＵ１１の作動不良を監視する。
【００２７】
統合ＩＣ１６は、マイコン監視部１６ａが異常を検出した場合には、電スロ９４の作動を制限するといった電スロカットの制御を実行する。例えば、アクセル開度に拘らず、予め設定しておいた所定開度に目標開度を固定して、内燃機関の出力が所定出力未満となるように制限する。あるいは、目標開度をゼロにして内燃機関を強制的に停止させる。電スロカット制御部１６ｂは、電スロ駆動ＩＣ１４へ電スロカットを指令する信号を出力する。電スロ駆動ＩＣ１４は、ＭＣＵ１１から出力される指令信号よりも電スロカット指令信号を優先して作動する。
【００２８】
ＭＣＵ１１は、制御モジュール２０および監視モジュール３０を有する。これらのモジュールは、いずれについても、共通するＣＰＵ１１ａおよびメモリ１１ｍにより提供される機能である。すなわち、メモリ１１ｍの制御用記憶領域２０ｍに記憶された制御プログラムをＣＰＵ１１ａが実行している時のＣＰＵ１１ａおよびメモリ１１ｍは、制御モジュール２０として機能する。
【００２９】
また、メモリ１１ｍの監視用記憶領域３０ｍに記憶された監視プログラムをＣＰＵ１１ａが実行している時のＣＰＵ１１ａおよびメモリ１１ｍは、監視モジュール３０として機能する。制御用記憶領域２０ｍおよび監視用記憶領域３０ｍは、メモリ１１ｍの記憶領域のうち異なる領域に、別々に設定されている。
【００３０】
制御モジュール２０は、ユーザが要求する内燃機関の駆動トルクであるユーザ要求トルクに応じて、先述した各種の目標制御量を演算する「制御用演算装置」を提供する。監視モジュール３０は、内燃機関の実トルクの推定値である推定トルクが、内燃機関に要求されている機関要求トルクに対して所定以上乖離したトルク異常状態であるか否かを監視する「監視用演算装置」を提供する。ＥＣＵ１０は、制御用演算装置および監視用演算装置を備える内燃機関制御システムを提供する。
【００３１】
＜１＞制御モジュールの２０説明
制御モジュール２０は、機関要求トルク算出部２１および駆動信号出力部２２としての機能を有する。機関要求トルク算出部２１は、入力処理回路１１ｃおよび通信回路１１ｄから取得した各種信号に基づき、内燃機関に要求するべきトルクである機関要求トルクを算出する。駆動信号出力部２２は、機関要求トルク算出部２１で算出された機関要求トルクに応じて、先述した目標点火時期、目標噴射量、および目標開度等の目標制御量を演算する。さらに駆動信号出力部２２は、演算された目標制御量に応じて、点火駆動ＩＣ１２、燃料噴射弁駆動ＩＣ１３および電スロ駆動ＩＣ１４等のアクチュエータへ、各種の指令信号を出力する。
【００３２】
図２を用いてより詳細に説明すると、機関要求トルク算出部２１は、ユーザ要求トルク算出部２１ａ、ポンプロス算出部２１ｂ、フリクションロス算出部２１ｃ、トルク効率算出部２１ｄおよび演算部Ｂ１〜Ｂ６としての機能を有する。
【００３３】
＜１−１＞ユーザ要求トルクの説明
ユーザ要求トルク算出部２１ａ（図２参照）は、先述したエンジン回転数およびアクセル開度に基づきユーザ要求トルクを算出する。エンジン回転数が高回転数であるほど、また、アクセル開度が大きいほど、ユーザ要求トルクは大きい値に算出される。例えば、エンジン回転数およびアクセル開度とユーザ要求トルクとの相関を表すマップをメモリ１１ｍに予め記憶させておき、そのマップを参照して、エンジン回転数およびアクセル開度に応じたユーザ要求トルクをユーザ要求トルク算出部２１ａは算出する。
【００３４】
＜１−２＞ロストルクの説明
ポンプロス算出部２１ｂは、先述したインマニ圧および排気圧に基づき、ポンプロスをトルク換算した値であるポンプロストルクを算出する。ポンプロスとは、内燃機関のピストンが往復動する際に吸排気から受ける抵抗によるエネルギ損失のことである。インマニ圧が低いほど、ピストンの吸気行程での吸気抵抗が大きいとみなしてポンプロスは大きい値に設定される。また、排気圧が高いほど、ピストンの排気行程での排気抵抗が大きいとみなしてポンプロスは大きい値に設定される。例えば、インマニ圧および排気圧とポンプロスとの相関を表すマップをメモリ１１ｍに予め記憶させておき、そのマップを参照して、インマニ圧および排気圧に応じたポンプロスをポンプロス算出部２１ｂは算出する。
【００３５】
フリクションロス算出部２１ｃは、先述した水温および油温に基づき、フリクションロスをトルク換算した値であるフリクションロストルクを算出する。フリクションロスとは、内燃機関のピストンが往復動する際のシリンダとの摩擦による機械エネルギロスのことである。水温が適正範囲から外れて低温または高温になっているほど、摩擦が大きいとみなしてフリクションロスは大きい値に設定される。また、油温が低いほど潤滑油等の粘性が大きいとみなしてフリクションロスは大きい値に設定される。例えば、水温および油温とフリクションロスとの相関を表すマップをメモリ１１ｍに予め記憶させておき、そのマップを参照して、水温および油温に応じたフリクションロスをフリクションロス算出部２１ｃは算出する。
【００３６】
演算部Ｂ１は、ポンプロス算出部２１ｂにより算出されたポンプロス、フリクションロス算出部２１ｃにより算出されたフリクションロス、およびロストルク学習値を加算して、総ロストルクを演算する。演算部Ｂ２は、ユーザ要求トルク算出部２１ａにより算出されたユーザ要求トルク、演算部Ｂ１により演算された総ロストルク、および外部要求トルクを加算して、ロス込みトルクを演算する。外部要求トルクの具体例としては、車載バッテリへの充電を目的として、内燃機関で駆動する発電機による発電量を増大させるといった、発電増大分のトルクが挙げられる。
【００３７】
＜１−３＞リザーブの説明
演算部Ｂ３は、アイドルリザーブ、触媒暖機リザーブおよび補機リザーブの各々に相当するトルクを加算してリザーブトルクを演算する。これら各々のリザーブトルクは、エンジン回転数、エンジン負荷および水温等の内燃機関の運転状態に応じて、制御モジュール２０により設定される。演算部Ｂ４は、演算部Ｂ２により演算されたロス込みトルクに、演算部Ｂ３により演算されたリザーブトルクを加算して、リザーブ込みトルクを演算する。
【００３８】
アイドルリザーブトルクとは、内燃機関のアイドル運転時にトルクアップさせて燃焼を安定化させる制御を実施するにあたり、そのトルクアップ分に相当するトルクのことである。触媒暖機リザーブトルクとは、内燃機関の排気を浄化する触媒を活性化温度以上に温度上昇させるべく排気温度を上昇させる暖機制御を実施するにあたり、排気温度を上昇させることに用いる燃焼エネルギのロス分をトルクに換算した値のことである。補機リザーブトルクとは、内燃機関を駆動源とする発電機等の補機を駆動させるのに要するトルクのことである。
【００３９】
＜１−４＞トルク効率の説明
トルク効率算出部２１ｄは、最大トルク発生点火時期（ＭＢＴ点火時期）、ノック学習込みベース遅角量および目標ラムダに基づき、トルク効率を算出する。ＭＢＴ点火時期とは、最大トルクが得られる点火時期のことであり、エンジン回転数やエンジン負荷、水温等に応じて異なる時期となる。但し、ＭＢＴ点火時期ではノッキングが生じやすいので、ＭＢＴ点火時期よりも所定時間遅い時期、つまり所定角度遅角させた時期で点火させることが要求される。その遅角させた時期をベース点火時期と呼ぶ。その遅角量（ベース遅角量）は、エンジン回転数やエンジン負荷、水温等に応じて異なる。
【００４０】
また、ノッキングがセンサで検出された場合には、点火時期を所定時間だけ遅角させるように補正するフィードバック制御を実行しており、その遅角補正量（ノック学習量）を次回以降の点火時期制御に反映させる学習制御をノック学習と呼ぶ。そして、ベース点火時期にノック学習量を反映させた時期が目標点火時期に相当する。
【００４１】
演算部Ｂ５は、ＭＢＴ点火時期から目標点火時期を減算して得られた時期を、ＭＢＴ点火時期に対する目標点火時期の遅角量であるＭＢＴ遅角量として演算する。トルク効率算出部２１ｄは、演算部Ｂ５により演算されたＭＢＴ遅角量および目標ラムダに基づき、トルク効率を算出する。
【００４２】
トルク効率とは、燃焼室での燃焼エネルギのうち、クランク軸の回転トルクに変換される分のエネルギの割合のことである。ＭＢＴ遅角量が小さいほど、つまり目標点火時期がＭＢＴ点火時期に近いほど、トルク効率は高い値に算出される。目標ラムダとは、燃焼室で燃焼する混合気に含まれる、空気と燃料の比率（ラムダ）の目標値のことであり、トルク効率算出部２１ｄは、目標ラムダに応じた値にトルク効率を算出する。例えば、ＭＢＴ遅角量および目標ラムダとトルク効率との相関を表すマップをメモリ１１ｍに予め記憶させておき、そのマップを参照して、ＭＢＴ遅角量および目標ラムダに応じたトルク効率をトルク効率算出部２１ｄは算出する。
【００４３】
なお、上述したＭＢＴ点火時期、ベース点火時期および目標ラムダの各々は、エンジン回転数、エンジン負荷および水温等の内燃機関の運転状態に応じて、制御モジュール２０により設定される。
【００４４】
また、上記ノック学習に係る学習制御は制御モジュール２０により実行される。本実施形態に係るＥＣＵ１０は、点火駆動ＩＣから出力される駆動電流または電圧を検出する検出回路を備えている。そして、その検出回路による検出値を用いて、制御モジュール２０は機関要求トルクを演算している。具体的には、上記検出値に基づき実点火時期を算出し、その実点火時期を用いてノック学習に係る学習制御を実行し、ノック学習量を算出している。
【００４５】
＜１−５＞制御用機関要求トルクの説明
演算部Ｂ６は、演算部Ｂ４により演算されたリザーブ込みトルクを、トルク効率算出部２１ｄにより算出されたトルク効率で除算して、エンジン制御に用いる制御用の機関要求トルクを演算する。要するに、総ロストルクおよびリザーブトルクをユーザ要求トルクに加算した値を、トルク効率で除算することで、機関要求トルク算出部２１は機関要求トルクを算出する。
【００４６】
＜１−６＞スカベンジングの説明
図３に示すように、駆動信号出力部２２は、目標吸気量算出部２２１、電スロ信号出力部２２２、点火信号出力部２２３およびＩＮＪ信号出力部２２４としての機能を有する。さらに目標吸気量算出部２２１は、目標筒内空気量算出部２２１ａおよび制御用吹抜量算出部２２１ｂを有する。ここで言う吸気量とは、吸気管９５（図４参照）に取り付けられたスロットルバルブ（電スロ９４）を通過した空気の量のことであり、以下、吸気量の定義について図４を用いて詳述するとともに、筒内空気量、吹抜量およびスカベンジングについて説明する。
【００４７】
図４は、内燃機関９０の吸気行程が開始した直後であり、ピストン９１が上死点から下降を開始した直後の状態であって、吸気弁９２および排気弁９３をともに開弁させた状態を示す。このように両バルブの開弁期間をオーバーラップさせた状態では、エンジン回転数や過給度合によっては、図４中の矢印に示すように、吸気ポート９０ｉｎから燃焼室９０ａへ流入した空気の一部が排気ポート９０ｏｕｔから吹き抜ける場合がある。この吹き抜けを積極的に利用して、燃焼室９０ａに残留する高温ガスや未燃ガスを排気ポート９０ｏｕｔから掃気させることをスカベンジングと呼ぶ。ＥＣＵ１０は、内燃機関９０の運転状態が所定の条件を満たした場合に、スカベンジングを生じさせるようにオーバーラップ期間を設定し、その設定となるように先述したバルブ調節装置の作動を制御する。
【００４８】
上記スカベンジングの如く、１燃焼サイクルにおいて、排気ポート９０ｏｕｔから吹き抜ける空気の量を吹抜量と呼び、電スロ９４を通過した空気の量をスロットル通過空気量または吸気量と呼ぶ。また、スロットル通過空気量のうち、排気ポート９０ｏｕｔから吹き抜けずに燃焼室９０ａに充填されて圧縮される空気の量を筒内空気量と呼ぶ。これら吹抜量および筒内空気量は、吹抜けの状態を表す「吹抜状態量」に相当する。
【００４９】
図３の説明に戻り、目標吸気量算出部２２１は、機関要求トルク算出部２１により算出された機関要求トルク、エンジン回転数、エンジン運転状態、および吸気系アクチュエータ動作状態に基づき、目標吸気量を算出する。電スロ信号出力部２２２は、目標吸気量算出部２２１により算出された目標吸気量に応じた指令信号を電スロ駆動ＩＣ１４へ出力する。なお、点火信号出力部２２３およびＩＮＪ信号出力部２２４は、機関要求トルク算出部２１により算出された機関要求トルクに応じた指令信号を、点火駆動ＩＣ１２および燃料噴射弁駆動ＩＣ１３へ出力する。
【００５０】
目標吸気量算出部２２１は、目標筒内空気量算出部２２１ａ、制御用吹抜量算出部２２１ｂおよび演算部Ｂ７としての機能を有する。
【００５１】
目標筒内空気量算出部２２１ａは、エンジン回転数および機関要求トルク算出部２１により算出された機関要求トルクに基づき、筒内空気量の目標値である目標筒内空気量を算出する。エンジン回転数が高回転数であるほど、また、機関要求トルクが大きいほど、目標筒内空気量は大きい値に算出される。例えば、エンジン回転数および機関要求トルクと目標筒内空気量との相関を表すマップをメモリ１１ｍに予め記憶させておき、そのマップを参照して、エンジン回転数および機関要求トルクに応じた目標筒内空気量をユーザ要求トルク算出部２１ａは算出する。
【００５２】
制御用吹抜量算出部２２１ｂは、吸気系アクチュエータ動作状態およびエンジン運転状態に基づき、モデルを用いて吹抜量を算出する。吸気系アクチュエータの具体例として、過給機、バルブ調節装置および電スロ９４等が挙げられる。エンジン運転状態の具体例として、エンジン回転数、エンジン負荷および水温等が挙げられる。上記モデルは、図４に示す吹き抜けの流路の形状および大きさと、吸気系アクチュエータ動作状態およびエンジン運転状態との相関を表す数式である。これらの動作状態および運転状態を表す物理量を上記数式に代入することで、制御用吹抜量算出部２２１ｂ（制御用吹抜状態算出部）は吹抜量を算出する。
【００５３】
演算部Ｂ７は、目標筒内空気量算出部２２１ａにより算出された目標筒内空気量に、制御用吹抜量算出部２２１ｂにより算出された吹抜量を加算して、目標吸気量を算出する。要するに、制御モジュール２０は、機関要求トルクに対応する筒内空気量を吹抜量に応じて補正して目標吸気量を算出し、その目標吸気量に基づき電スロ９４の作動を制御する。
【００５４】
＜２＞監視モジュール３０の説明
監視モジュール３０は、推定トルクが機関要求トルクに対して所定以上乖離したトルク異常状態であるか否かを監視するものであることは先述した通りであり、推定トルクとは、内燃機関の実トルクを推定した値のことである。機関要求トルクとは、内燃機関に要求されているトルクのことであり、制御モジュール２０の機関要求トルク算出部２１により算出される機関要求トルクと同義である。但し、監視モジュール３０で算出される機関要求トルクは、トルク異常の監視に用いられる値であり、制御モジュール２０で算出される機関要求トルクは、内燃機関に対する目標制御量の算出に用いられる値である。つまり、これら監視用の機関要求トルクと制御用の機関要求トルクは、メモリ１１ｍの記憶領域のうち異なる領域で演算された値である。
【００５５】
図１に示すように、監視モジュール３０は、入力保障部３１、機関要求トルク演算部３２、推定トルク演算部３３、トルク比較異常判定部３４、電スロカット制御部３５および監視用筒内空気量算出部３６としての機能を有する。
【００５６】
入力保障部３１は、入力処理回路１１ｃおよび通信回路１１ｄから取得した各種信号のデータが正常であることをチェック（例えばパリティチェック）する。異常であれば、データ修復、データ再取得、データ廃棄等を入力保障部３１は実行する。これにより、監視モジュール３０が異常データを用いて各種の算出を行うことを回避できる。つまり、入力保障部３１は、監視モジュール３０による算出に用いられる各種データが正常であることを保障する。
【００５７】
トルク比較異常判定部３４は、機関要求トルク演算部３２により算出された期間要求トルクと、推定トルク演算部３３により算出された推定トルクとの差分を算出し、その差分が所定以上であれば、上述したトルク異常状態であると判定する。トルク異常状態であると判定された場合、電スロカット制御部３５は、電スロカット制御部１６ｂと同様にして、電スロ駆動ＩＣ１４へ電スロカットを指令する信号を出力する。
【００５８】
＜２−１＞監視用機関要求トルクの説明
図５に示すように、機関要求トルク演算部３２は、触媒暖機要求トルク算出部３２ａ、アイドル要求トルク算出部３２ｂおよび演算部Ｂ１１としての機能を有する。
【００５９】
触媒暖機要求トルク算出部３２ａは、触媒暖機目標回転数および先述したアクセル開度に基づき、触媒暖機要求トルクを算出する。内燃機関の排気を浄化する触媒を活性化温度以上に温度上昇させるべく排気温度を上昇させる暖機制御については先述した通りであり、暖機制御を実行している期間におけるエンジン回転数の目標値が触媒暖機目標回転数である。そして、触媒暖機要求トルク算出部３２ａは、暖機制御を実行している期間におけるアクセル開度および触媒暖機目標回転数に基づき、触媒暖機要求トルクを算出する。
【００６０】
触媒暖機要求トルクとは、触媒暖機リザーブトルクと同義である。但し、監視モジュール３０で算出される触媒暖機要求トルクは、トルク異常の監視に用いられる値であり、制御モジュール２０で算出される触媒暖機リザーブトルクは、内燃機関に対する目標制御量の算出に用いられる値である。つまり、これら監視用の触媒暖機要求トルクと制御用の触媒暖機リザーブトルクは、メモリ１１ｍの記憶領域のうち異なる領域で演算された値である。
【００６１】
図５では、触媒暖機要求トルクの算出に用いる変数の例示として触媒暖機目標回転数およびアクセル開度を記載しているが、他の変数として、水温、ユーザ要求トルク、エンジン回転数および吸気充填効率が挙げられる。吸気充填効率とは、スロットル通過吸気量に対する筒内空気量の比率のことである。触媒暖機要求トルク算出部３２ａは、これらの変数の少なくとも１つを用いて触媒暖機要求トルクを算出する。
【００６２】
なお、アクセルペダルが踏み込まれていない時の触媒暖機目標回転数が大きいほど、触媒暖機要求トルク（リザーブ量）は大きく算出される。また、アクセルペダルが踏み込まれている時のアクセル開度が所定未満であれば触媒暖機要求トルクは所定値に設定され、所定以上であればゼロに設定される。また、水温やエンジン回転数に応じて触媒暖機要求トルクは増減されてもよいし、充填効率に応じて触媒暖機要求トルクは増減されてもよい。
【００６３】
アイドル要求トルク算出部３２ｂは、アイドル目標回転数および先述したエンジン回転数に基づき、アイドル要求トルクを算出する。内燃機関のアイドル運転時にトルクアップさせて燃焼を安定化させるアイドル制御については先述した通りであり、このアイドル制御を実行している期間におけるエンジン回転数の目標値がアイドル目標回転数である。そして、アイドル要求トルク算出部３２ｂは、アイドル制御を実行している期間におけるエンジン回転数およびアイドル目標回転数に基づき、アイドル要求トルクを算出する。
【００６４】
アイドル要求トルクとは、アイドルリザーブトルクと同義である。但し、監視モジュール３０で算出されるアイドル要求トルクは、トルク異常の監視に用いられる値であり、制御モジュール２０で算出されるアイドルリザーブトルクは、内燃機関に対する目標制御量の算出に用いられる値である。つまり、これら監視用のアイドル要求トルクと制御用のアイドルリザーブトルクは、メモリ１１ｍの記憶領域のうち異なる領域で演算された値である。
【００６５】
図５では、アイドル要求トルクの算出に用いる変数の例示としてアイドル目標回転数およびエンジン回転数を記載しているが、他の変数として、水温、車速、大気圧および吸気充填効率が挙げられる。アイドル要求トルク算出部３２ｂは、これらの変数の少なくとも１つを用いてアイドル要求トルクを算出する。
【００６６】
なお、アクセルペダルが踏み込まれていない時の目標回転数とエンジン回転数との差分が小さいほど、アイドル要求トルク（リザーブ量）は大きく算出される。また、アクセルペダルが踏み込まれている時のアクセル開度が小さいほど、アイドル要求トルクは大きく算出される。また、水温やエンジン回転数に応じてアイドル要求トルクは増減されてもよいし、充填効率に応じてアイドル要求トルクは増減されてもよい。
【００６７】
演算部Ｂ１１は、触媒暖機要求トルク算出部３２ａおよびアイドル要求トルク算出部３２ｂで算出された触媒暖機要求トルクおよびアイドル要求トルクと、ユーザ要求トルクと、外部要求トルクとを加算して、内燃機関に要求されている機関要求トルクを算出する。この算出に用いるユーザ要求トルクは、入力保障部３１により保障されたエンジン回転数およびアクセル開度のデータを用いて算出される。
【００６８】
以上により、機関要求トルク演算部３２は、入力処理回路１１ｃおよび通信回路１１ｄから取得した各種信号であって、入力保障部３１により保障された信号（データ）に基づき、内燃機関に要求されている機関要求トルクを算出する。
【００６９】
＜２−２＞監視用推定トルクの説明
図５に示すように、推定トルク演算部３３は、推定トルク算出部３３ａ、ＭＢＴ点火時期算出部３３ｂ、ベース点火時期算出部３３ｃ、トルク効率算出部３３ｄ、ロストルク算出部３３ｅおよび演算部Ｂ１２、Ｂ１３、Ｂ１４としての機能を有する。
【００７０】
推定トルク算出部３３ａは、監視用筒内空気量算出部３６により算出される筒内空気量およびエンジン回転数に基づき、点火時期がＭＢＴである場合における内燃機関の実際の駆動トルク（ＭＢＴ推定トルク）を推定する。エンジン回転数が高回転数であるほど、また、筒内空気量が大きいほど、ＭＢＴ推定トルクは大きい値に算出される。例えば、エンジン回転数および筒内空気量とＭＢＴ推定トルクとの相関を表すマップをメモリ１１ｍに予め記憶させておき、そのマップを参照して、エンジン回転数および筒内空気量に応じたＭＢＴ推定トルクを推定トルク算出部３３ａは算出する。
【００７１】
ＭＢＴ点火時期算出部３３ｂは、筒内空気量およびエンジン回転数に基づきＭＢＴ点火時期を算出する。ベース点火時期算出部３３ｃは、筒内空気量およびエンジン回転数に基づきベース点火時期を算出する。これらのＭＢＴ点火時期およびベース点火時期は、推定トルク算出部３３ａと同様にして、メモリ１１ｍに予め記憶させておいたマップを参照して算出される。
【００７２】
演算部Ｂ１２は、ＭＢＴ点火時期算出部３３ｂにより算出されたＭＢＴ点火時期から、ベース点火時期算出部３３ｃにより算出されたベース点火時期を減算した値を、先述したベース遅角量として演算する。トルク効率算出部３３ｄは、演算部Ｂ１２により演算されたベース遅角量に基づき、先述したトルク効率を算出する。但し、ノック学習量が予め設定しておいた所定量またはゼロとみなして、トルク効率算出部３３ｄはトルク効率を算出する。
【００７３】
ロストルク算出部３３ｅは、エンジン回転数および水温に基づき、ポンプロスおよびフリクションロスを含むロスエネルギをトルク換算したロストルクを算出する。例えば、エンジン回転数および水温とロストルクとの相関を表すマップをメモリ１１ｍに予め記憶させておき、そのマップを参照して、エンジン回転数および水温に応じたロストルクをロストルク算出部３３ｅは算出する。
【００７４】
演算部Ｂ１３は、推定トルク算出部３３ａにより算出されたＭＢＴ推定トルクに、トルク効率算出部３３ｄにより演算されたトルク効率を乗算した値を、ロストルクを考慮しない推定トルクとして演算する。演算部Ｂ１４は、演算部Ｂ１３により演算された推定トルクから、ロストルク算出部３３ｅにより算出されたロストルクを減算した値を、監視用の推定トルクとして演算する。
【００７５】
以上により、推定トルク演算部３３は、入力処理回路１１ｃおよび通信回路１１ｄから取得した各種信号であって、入力保障部３１により保障された信号（データ）に基づき、内燃機関が実際に出力している駆動トルクを推定する。
【００７６】
監視用筒内空気量算出部３６は、吹抜効率算出部３６ａおよび演算部Ｂ１５としての機能を有する。吹抜効率算出部３６ａは、スロットル通過空気量（吸気量）およびエンジン回転数に基づき、吹抜効率を算出する。吹抜効率とは、吸気量に対する筒内空気量の割合のことであり、吹抜効率の値が小さいほど筒内空気量は小さくなる。エンジン回転数が高回転数であるほど、また、吸気量が大きいほど、吹抜量が多くなり筒内空気量が少なくなるとみなして、吹抜効率は小さい値に算出される。例えば、エンジン回転数および吸気量と吹抜効率との相関を表すマップをメモリ１１ｍに予め記憶させておき、そのマップを参照して、エンジン回転数および吸気量に応じた吹抜効率を吹抜効率算出部３６ａは算出する。この算出に用いられる吸気量は、監視モジュール３０により、入力保障部３１で保障されたデータに基づき算出される。あるいは、吸気量を検出するエアフロメータにより吸気量が検出され、その検出値が入力保障部３１により保障されている場合には、その保障された吸気量の検出値を吹抜効率の算出に用いてもよい。
【００７７】
演算部Ｂ１５は、吹抜効率算出部３６ａにより算出された吹抜効率を吸気量に乗算した値を、筒内空気量として算出する。この算出に用いられる吸気量は、監視モジュール３０で算出された値であり、制御モジュール２０で算出される目標筒内空気量とは異なる。本実施形態に係る監視用筒内空気量算出部３６は、推定トルクの演算に用いる筒内空気量（吹抜状態量）を算出する監視用吹抜状態算出部に相当する。
【００７８】
図６の横軸はスロットル通過空気量（吸気量）を示し、縦軸は燃焼トルクを示す。点火着火式の内燃機関９０の場合、自着火式とは異なり、燃焼に供する混合気に含まれる空気と燃料の比率（空燃比）を所望の比率にすることが要求される。そのため、図６に示すように吸気量が多いほど、所望の空燃比に調節された混合気の量が多くなり、燃焼トルクが大きくなる。但し、スカベンジングを実施する場合には、吹抜量の分だけ筒内空気量が少なくなるので、混合気の量は少なくなる。よって、スロットル通過空気量（吸気量）に対する燃焼トルクの大きさは、スカベンジング実行時には非実行時に比べて小さくなる。図６の例では、吸気量が所定以上の高負荷運転領域において、スカベンジングの実行に伴い、吹抜量の分だけ混合気が少なくなり燃焼トルクが低下している。
【００７９】
＜３＞監視モジュール３０による処理手順の説明
内燃機関の運転期間中には、監視モジュール３０による監視機能が常時作動する。具体的には、図７に示すメイン処理が常時実行される。
【００８０】
図７のメイン処理では、先ずステップＳ１０において、モニタ実行条件が満たされているか否かを判定する。例えば、ＣＰＵチェック回路１１ｅによるチェックが完了していることや、マイコン監視部１６ａが異常を検出していないこと等が、モニタ実行条件の具体例として挙げられる。
【００８１】
モニタ実行条件が満たされていると判定された場合、続くステップＳ２０において、後述する図８のサブルーチン処理にしたがって、監視用の機関要求トルクを機関要求トルク演算部３２が算出する。続くステップＳ３０では、後述する図９のサブルーチン処理にしたがって、監視用の推定トルクを推定トルク演算部３３が算出する。
【００８２】
続くステップＳ４０、Ｓ５０、Ｓ６０では、トルク比較異常判定部３４による異常判定を実行する。すなわち、先ずステップＳ４０において、ステップＳ３０で算出した推定トルクから、ステップＳ２０で算出した機関要求トルクを減算して、トルク乖離量を算出する。次のステップＳ５０では、ステップＳ４０で算出したトルク乖離量を前回値に積算した積算値を算出する。次のステップＳ６０では、ステップＳ５０で算出した積算値が所定量以上である場合に、トルク異常が生じていると判定する。当該積算値は、例えば内燃機関を停止させるとリセットされる。ステップＳ６０にてトルク異常と判定された場合、続くステップＳ７０において、電スロカット制御部３５が電スロカット指令信号を出力する。
【００８３】
図８のサブルーチン処理では、先ずステップＳ２１において、ユーザ要求トルクを算出する。図５に示す機関要求トルク演算部３２ではユーザ要求トルクの算出ブロックを省略しているが、例えばユーザ要求トルク算出部２１ａと同様にして、エンジン回転数およびアクセル開度に基づきユーザ要求トルクを算出する。但し、入力保障部３１により保障されたエンジン回転数およびアクセル開度のデータを用いてユーザ要求トルクを算出する。
【００８４】
続くステップＳ２２では、触媒を活性化温度以上に温度上昇させる暖機制御が実行されているか否かを判定する。例えば、エンジン回転数、アクセル開度および水温等に基づき、暖機制御が実行中であるか否かを判定する。暖機制御実行中と判定された場合、続くステップＳ２３において、触媒暖機目標回転数、アクセル開度、水温、ユーザ要求トルク、エンジン回転数および吸気充填効率の少なくとも１つに基づき、触媒暖機要求トルク算出部３２ａが触媒暖機要求トルクを算出する。
【００８５】
暖機制御実行中と判定されなかった場合、続くステップＳ２４では、アイドル運転時にトルクアップさせて燃焼を安定化させるアイドル制御が実行されているか否かを判定する。例えば、エンジン回転数およびアクセル開度に基づきアイドル制御が実行中であるか否かを判定する。アイドル制御実行中と判定された場合、続くステップＳ２５において、アイドル目標回転数、エンジン回転数、水温、車速、大気圧および吸気充填効率の少なくとも１つに基づき、アイドル要求トルク算出部３２ｂがアイドル要求トルクを算出する。
【００８６】
続くステップＳ２６では、発電量増大等の外部要求に起因した駆動トルクである外部要求トルクを算出する。次のステップＳ２７では、ステップＳ２１によるユーザ要求トルク、ステップＳ２５によるアイドル要求トルク、ステップＳ２３による触媒暖機要求トルク、およびステップＳ２６による外部要求トルクを加算する。その加算した値を、監視用の機関要求トルクとして算出する。
【００８７】
なお、ステップＳ２２で暖機制御中と判定された場合等、ステップＳ２５が実行されない場合には、直近に算出されたアイドル要求トルクがあれば、その値をステップＳ２７の算出に用いる。また、ステップＳ２３が実行されない場合には、直近に算出された触媒暖機要求トルクがあれば、その値をステップＳ２７の算出に用いる。
【００８８】
図９のサブルーチン処理では、先ずステップＳ３１において、スロットル通過空気量（吸気量）を算出する。この算出に用いる吸気量は、入力保障部３１により保障されたエンジン回転数およびアクセル開度等のデータを用いて、監視モジュール３０により算出される。吸気量の目標値は制御モジュール２０の目標吸気量算出部２２１でも算出されるが、制御モジュール２０による算出とは別に、監視モジュール３０によっても吸気量は算出される。先述した通り、制御モジュール２０ではモデルを用いて吸気量が算出されるのに対し、監視モジュール３０ではモデルを用いずに吸気量が算出される。
【００８９】
具体的には、制御モジュール２０では、図４に示す吹抜経路の形状および大きさを数値化したモデルが制御用記憶領域２０ｍに記憶されている。吹抜経路とは、吸気ポート９０ｉｎ、燃焼室９０ａおよび排気ポート９０ｏｕｔを少なくとも含む吸排気系の経路である。制御モジュール２０は、吸気系アクチュエータ動作状態およびエンジン運転状態を表す各種パラメータを上記モデルに代入することで、吹抜量等の吹抜状態量を算出するとともに、吸気量についても算出する。
【００９０】
一方、監視モジュール３０では、スロットル通過空気量およびエンジン回転数に基づき筒内空気量を算出する。この算出に用いられるスロットル通過空気量は、監視モジュール３０により、入力保障部３１で保障されたデータに基づき算出される。例えば、吸気圧センサにより検出されたインマニ圧と、アクセルペダルセンサにより検出されたアクセル開度と、吸気温センサにより検出された吸気温とに基づき、スロットル通過空気量を算出する。具体的には、インマニ圧が高いほど、また、アクセル開度が大きいほど、吸気温が低いほど、スロットル通過空気量を多く算出する。
【００９１】
続くステップＳ３２では、後述する図１０のサブルーチン処理にしたがって、吹抜効率を吹抜効率算出部３６ａが算出する。続くステップＳ３３では、ステップＳ３２で算出された吹抜効率、およびスロットル通過空気量に基づき、筒内空気量を演算部Ｂ１５が算出する。
【００９２】
続くステップＳ３４では、エンジン回転数および充填効率に基づき、推定トルク算出部３３ａがＭＢＴ推定トルクを算出する。続くステップＳ３５では、充填効率およびエンジン回転数に基づき、ＭＢＴ点火時期算出部３３ｂがＭＢＴ点火時期を算出する。続くステップＳ３６では、充填効率およびエンジン回転数に基づき、ベース点火時期算出部３３ｃがベース点火時期を推定する。
【００９３】
続くステップＳ３７では、ステップＳ３５で算出したＭＢＴ点火時期から、ステップＳ３６で算出したベース点火時期を減算した値（ベース遅角量）に基づき、トルク効率算出部３３ｄが点火効率を算出する。続くステップＳ３８では、エンジン回転数および水温に基づき、ロストルク算出部３３ｅがロストルクを算出する。
【００９４】
続くステップＳ３９では、ステップＳ３４によるＭＢＴ推定トルクにステップＳ３７による点火効率を乗算し、その乗算値からステップＳ３８によるロストルクを減算することで、監視用の推定トルクを算出する。
【００９５】
図１０のサブルーチン処理では、先ずステップＳ３２１において、車両ユーザが要求する車両の加速度合である加速要求度を算出する。例えばこの加速要求度は、機関要求トルクに対するユーザ要求トルクの割合で定義される。続くステップＳ３２２では、ユーザが車両を加速走行させる意図が有るか否かを判定する。具体的には、ステップＳ３２１で算出された加速要求度が所定値以上であれば、加速意図有りと判定する。
【００９６】
吹抜効率算出部３６ａがマップを用いて吹抜効率を算出する旨は先述した通りであるが、上記マップとして加速用マップおよび通常用マップの２種類がメモリ１１ｍに記憶されており、加速意図の有無に応じてこれらのマップを選択して用いている。すなわち、加速意図有りと判定された場合、続くステップＳ３２３において、加速用マップを用いて、吸気量およびエンジン回転数に基づき吹抜効率を算出する。一方、加速意図無しと判定された場合、通常用マップを用いて、吸気量およびエンジン回転数に基づき吹抜効率を算出する。加速用マップと通常用マップとでは、エンジン回転数および吸気量と吹抜効率との相関が異なる。加速時には、バルブ調節装置の作動の応答遅れや吸気圧の応答遅れが存在するので、これらの応答遅れを考慮して、上記相関を異ならせている。
【００９７】
続くステップＳ３２５では、通常用マップを用いて算出された吹抜効率と加速用マップを用いて算出された吹抜効率との両方を参照して吹抜効率を決定する。換言すれば、算出された吹抜効率の履歴に基づき、図９のステップＳ３３の算出に用いる吹抜効率の値を決定する。例えば、加速意図無しから有りに変化した直後では、前回の算出において通常用マップを用いて算出された吹抜効率と、今回の算出において加速用マップを用いて算出された吹抜効率と平均値を吹抜効率の決定値とする。
【００９８】
図１１の下段はスカベンジングによる吹抜量の分だけ、スロットル通過空気量と筒内空気量とが乖離している状態を示す。このような状況下において、図１１の下段に示すように、筒内空気量に基づき推定トルクを算出すると、燃焼に寄与する空気量から吹抜量が除外されるため、機関要求トルクと推定トルクとの乖離は少ない（実線参照）。これに対し、スロットル通過空気量に基づき推定トルクを算出すると、吹抜量が含まれた空気量を燃焼に寄与する空気量とみなしてトルクを推定することになるので、機関要求トルクと推定トルクとの乖離は大きくなる（点線参照）。
【００９９】
＜４＞作用効果の説明
本実施形態に係る内燃機関制御システムは、制御モジュール２０（制御用演算装置）と、監視モジュール３０（監視用演算装置）と、を備える。制御モジュール２０は、制御用記憶領域２０ｍを用いて演算する演算装置であって、ユーザ要求トルクに応じて目標制御量を演算する。監視モジュール３０は、制御用記憶領域２０ｍとは別の監視用記憶領域３０ｍを用いて演算する演算装置であって、推定トルクが機関要求トルクに対して所定以上乖離したトルク異常状態であるか否かを監視する。そして監視モジュール３０は、筒内空気量（吹抜状態量）を用いて推定トルクを演算する。そのため、スカベンジングの有無に起因した推定トルクの演算誤差を小さくでき、トルク異常を精度良く監視できる。
【０１００】
ここで、内燃機関の制御に用いる吹抜状態量の場合、高い演算精度と短い演算周期が要求されるが、トルク異常の監視に用いる吹抜状態量の場合、内燃機関の制御に用いる場合に比べて上記要求が低くなる。但し、監視に用いる吹抜状態量の場合、吹抜状態量の演算に用いるデータが正常時であることの保障に対する要求は、制御に用いる場合に比べて高くなる。
【０１０１】
この点を鑑み、本実施形態では、制御モジュール２０は、目標制御量の演算に用いる吹抜量（吹抜状態量）を算出する制御用吹抜量算出部２２１ｂ（制御用吹抜状態算出部）を有する。監視モジュール３０は、推定トルクの演算に用いる筒内空気量（吹抜状態量）を算出する監視用筒内空気量算出部３６を有する。つまり、制御モジュール２０が算出する吹抜状態量とは別に、監視モジュール３０が吹抜状態量を算出する。そのため、監視に用いる吹抜状態量と制御に用いる吹抜状態量の各々に対して、上述した異なる要求に応じることが容易になる。例えば、制御モジュール２０が実行する演算に用いられるデータについては、監視モジュール３０が実行する演算に用いられるデータよりも正常保障を低くしつつ演算速度を速くすることで、上記要求に応じることができる。
【０１０２】
さらに本実施形態では、監視モジュール３０は、スロットル通過空気量、オーバーラップ期間、吸気圧、排気圧、およびエンジン回転数の少なくとも１つに基づき、吹抜状態量を算出する。これらのスロットル通過空気量、オーバーラップ期間、吸気圧、排気圧およびエンジン回転数は吹抜状態量と相関が高いので、本実施形態によれば吹抜状態量を精度良く算出できる。なお、スロットル通過空気量が多いほど、オーバーラップ期間が長いほど、エンジン回転数が多いほど、吹抜量（吹抜状態量）は多くなる。また、スロットル通過空気量が多いほど、エンジン回転数が多いほど、吸気圧が高いほど、筒内空気量（吹抜状態量）は多くなる。
【０１０３】
さて、監視に用いる吹抜状態量に要求される演算速度および演算精度は、制御に用いる吹抜状態量に比べて低いことは、先述した通りである。この点を鑑み、本実施形態では、監視モジュール３０の演算周期は制御モジュール２０の演算周期より長い。そのため、監視モジュール３０の演算処理負荷が必要以上に大きくなることを回避できる。
【０１０４】
また、監視に用いる吹抜状態量の場合、吹抜状態量の演算に用いるデータが正常時であることの保障に対する要求は、制御に用いる場合に比べて高くなることは、先述した通りである。この点を鑑み、本実施形態では、監視モジュール３０は、監視モジュール３０の外部から取得したデータが正常であることをチェックする入力保障部３１を有する。そのため、監視モジュール３０の演算に用いるデータが正常時であることの保障を向上でき、上記要求に応えることができる。
【０１０５】
さらに本実施形態では、監視モジュール３０は、機関要求トルク演算部３２および推定トルク演算部３３を有する。そして機関要求トルク演算部３２は、内燃機関の点火時期の遅角に伴い生じる実トルクの低下分をリザーブトルクとして算出し、算出したリザーブトルクおよびユーザ要求トルクに基づき機関要求トルクを演算する。そのため、リザーブトルクを考慮せずに機関要求トルクを演算することに起因して生じる、機関要求トルクと推定トルクとの乖離を抑制できるので、トルク異常を誤判定するおそれを抑制できる。
【０１０６】
さらに本実施形態では、制御モジュール２０は、目標点火時期を触媒暖機要求時に遅角させるように設定しており、機関要求トルク演算部３２は、触媒暖機要求の遅角量に相当する燃焼効率悪化分のトルク以上となるようにリザーブトルクを算出する。
【０１０７】
さらに本実施形態では、制御モジュール２０は、目標点火時期をアイドル運転時に遅角させるように設定しており、機関要求トルク演算部３２は、アイドル要求トルクの遅角量に相当する燃焼効率悪化分のトルク以上となるようにリザーブトルクを算出する。このように、触媒暖機要求やアイドル要求の如く点火時期の遅角に起因した燃焼効率悪化分が、監視用の機関要求トルクに反映されるので、上述した誤判定のおそれを抑制できる。
【０１０８】
（第２実施形態）
本実施形態に係る内燃機関制御システムは、上記第１実施形態の監視用筒内空気量算出部３６を図１２に示すように変形させたものであり、特に言及していない構成については第１実施形態と同じ構成である。
【０１０９】
上記第１実施形態に係る監視モジュール３０では、推定トルク算出部３３ａ、ＭＢＴ点火時期算出部３３ｂおよびベース点火時期算出部３３ｃは、エンジン回転数および筒内空気量を用いて各種の算出を実行している。そして、これらの算出に用いる筒内空気量には、監視用筒内空気量算出部３６により算出された筒内空気量が用いられている。
【０１１０】
これに対し、本実施形態に係る監視モジュール３０Ａでは、推定トルク算出部３３ａ、ＭＢＴ点火時期算出部３３ｂおよびベース点火時期算出部３３ｃは、エンジン回転数およびスロットル通過空気量を用いて各種の算出を実行している。演算部Ｂ１３Ａは、推定トルク算出部３３ａで算出された駆動トルクであってスカベンジングが考慮されていない駆動トルクに、吹抜効率算出部３６ａで算出された吹抜効率を乗算する。
【０１１１】
この乗算により得られる値は、スカベンジングが考慮された駆動トルクに補正された値であると言える。具体的には、吹抜効率が大きいほど駆動トルクは大きい値に補正され、抜効率が小さいほど駆動トルクは小さい値に補正される。本実施形態に係る吹抜効率算出部３６ａは、推定トルクの演算に用いる吹抜効率（吹抜状態量）を算出する監視用吹抜状態算出部に相当する。
【０１１２】
要するに、上記第１実施形態に係る監視モジュール３０では、推定トルクの演算に用いる吹抜状態量を筒内空気量としているのに対し、本実施形態に係る監視モジュール３０Ａでは、推定トルクの演算に用いる吹抜状態量を吹抜効率としている。先述した通り、吹抜効率とは、スロットル通過空気量（吸気量）に対する筒内空気量の割合である。
【０１１３】
以上により、本実施形態によれば、スカベンジングが考慮された駆動トルクを用いて監視用推定トルクを算出するので、スカベンジングの有無に起因した推定トルクの演算誤差を小さくでき、トルク異常を精度良く監視できる。
【０１１４】
（第３実施形態）
上記第１実施形態では、監視モジュール３０が推定トルクを演算するにあたり、その演算に用いる吹抜状態量を自身（監視モジュール３０）が算出している。具体的には、監視モジュール３０が監視用筒内空気量算出部３６を有している。
【０１１５】
これに対し、図１３に示す本実施形態の監視モジュール３０Ｂは、吹抜状態量を自身が算出することを廃止して、制御モジュール２０で算出された吹抜状態量を取得し、取得した吹抜状態量を用いて監視モジュール３０が推定トルクを演算している。具体的には、図３に示す制御用吹抜量算出部２２１ｂにより算出された吹抜量は、図１に示す入力保障部３１に入力される。入力保障部３１は、吹抜量を表すデータが正常であることをチェックする。入力保障部３１のチェックにより保障された吹抜量は、図１３に示す監視用筒内空気量算出部３６Ｐに入力される。
【０１１６】
監視用筒内空気量算出部３６Ｐは、上下限ガード算出部３６ｂ、ガード付き吹抜量算出部３６ｃおよび演算部Ｂ１５Ｂとしての機能を有する。
【０１１７】
上下限ガード算出部３６ｂは、エンジン回転数およびスロットル通過空気量（吸気量）に基づき、上下限ガードを算出する。上下限ガードとは、吹抜量の上限である上限吹抜量、および吹抜量の下限である下限吹抜量のことである。エンジン回転数が高回転数であるほど、吸気量が多いほど、上限吹抜量は多く算出される。エンジン回転数が低回転数であるほど、吸気量が少ないほど、下限吹抜量は少なく算出される。
【０１１８】
ガード付き吹抜量算出部３６ｃは、制御用吹抜量算出部２２１ｂにより算出された保障後の吹抜量と上下限ガードとを大小比較する。さらにガード付き吹抜量算出部３６ｃは、吹抜量が下限吹抜量を下回って小さい場合には、吹抜量の値を下限吹抜量とし、吹抜量が上限吹抜量を上回って大きい場合には、吹抜量の値を上限吹抜量として算出する。つまり、制御モジュール２０から取得した吹抜量を所定範囲に制限してガード付きの吹抜量を算出する。
【０１１９】
演算部Ｂ１５Ｂは、監視モジュール３０Ｂが算出したスロットル通過空気量から、ガード付き吹抜量算出部３６ｃにより算出された吹抜量を減算して、監視用の筒内空気量として演算する。このようにして演算された筒内空気量は、図５と同様にして推定トルク演算部３３による推定トルクの演算に用いられる。
【０１２０】
本実施形態では、図９に示すステップＳ３２、Ｓ３３の処理を、図１４に示すステップＳ３２Ｂ、Ｓ３２０Ｂ、Ｓ３３Ｂに変更している。ステップＳ３２Ｂでは、先述した通り、制御モジュール２０が算出した吹抜量を監視モジュール３０が取得する。続くステップＳ３２０Ｂでは、上下限ガード算出部３６ｂおよびガード付き吹抜量算出部３６ｃがガード付きの吹抜量を算出する。続くステップＳ３３Ｂでは、演算部Ｂ１５Ｂが筒内空気量を算出する。なお、ステップＳ３２の処理を実行している時の監視モジュール３０Ｂは、制御用吹抜量算出部２２１ｂにより算出された吹抜状態量を取得する「取得部」に相当する。
【０１２１】
要するに、上記第１実施形態に係る監視モジュール３０では、推定トルクの演算に用いる吹抜状態量を筒内空気量としている。これに対し、本実施形態に係る監視モジュール３０Ｂでは、推定トルクの演算に用いる吹抜状態量を、制御モジュール２０から取得した吹抜量としている。
【０１２２】
以上により、本実施形態によれば、制御モジュール２０は、目標制御量の演算に用いる吹抜状態量を算出する制御用吹抜量算出部２２１ｂを有する。監視モジュール３０Ｂは、制御用吹抜量算出部２２１ｂにより算出された吹抜状態量を取得する取得部（ステップＳ３２Ｂ）を有し、取得部により取得された吹抜状態量を用いて推定トルクを演算する。これによれば、制御モジュール２０で算出した吹抜状態量を利用して監視用の推定トルクを演算できる。
【０１２３】
ここで、監視モジュール３０Ｂの演算に用いる各種データは入力保障部３１により保障されているのに対し、制御モジュール２０の演算に用いる各種データは上記保障が為されていない。そのため、制御モジュール２０から取得した吹抜状態量は、上記第１および第２実施形態にて監視モジュール３０、３０Ａが算出した吹抜状態量に比べると、データ損傷している蓋然性高い。
【０１２４】
この点を鑑み、本実施形態では、監視モジュール３０Ｂは、取得部により取得された吹抜状態量が所定範囲を超えた場合には、推定トルクの演算に用いる吹抜状態量を、所定範囲の上限または下限に制限する。そのため、取得された吹抜状態量がデータ損傷している場合であっても、監視用の推定トルクの演算に用いる吹抜状態量は上限または下限に制限されるので、制限されない場合に比べて、データ損傷に起因したトルク異常監視精度の悪化を抑制できる。
【０１２５】
（他の実施形態）
この明細書における開示は、例示された実施形態に制限されない。開示は、例示された実施形態と、それらに基づく当業者による変形態様を包含する。例えば、開示は、実施形態において示された部品および／または要素の組み合わせに限定されない。開示は、多様な組み合わせによって実施可能である。開示は、実施形態に追加可能な追加的な部分をもつことができる。開示は、実施形態の部品および／または要素が省略されたものを包含する。開示は、１つの実施形態と他の実施形態との間における部品および／または要素の置き換え、または組み合わせを包含する。開示される技術的範囲は、実施形態の記載に限定されない。開示されるいくつかの技術的範囲は、請求の範囲の記載によって示され、さらに請求の範囲の記載と均等の意味及び範囲内での全ての変更を含むものと解されるべきである。
【０１２６】
上記第２実施形態では、監視モジュール３０Ａによる推定トルクの演算に用いる吹抜状態量を、排気ポート９０ｏｕｔから吸気が抜け出る度合（吹抜度合）としている。具体的には、吹抜度合として、スロットル通過空気量（吸気量）に対する筒内空気量の割合（吹抜効率）を用いている。これに対し、筒内空気量と吹抜量との割合と相関のある値であれば、吹抜度合として推定トルクの演算に用いることができる。例えば、吸気量に対する吹抜量の割合を吹抜度合として用いてもよいし、筒内空気量に対する吹抜量の割合を吹抜度合として用いてもよいし、これらの割合の逆数を吹抜度合として用いてもよい。
【０１２７】
上記各実施形態に係る内燃機関制御システム（ＥＣＵ１０）は、バルブ調節装置および過給機を備える内燃機関に適用されているが、バルブ調節装置を備えていない内燃機関にも適用可能であり、過給機を備えていない内燃機関にも適用可能である。
【０１２８】
上記各実施形態では、監視モジュール３０の演算速度は制御モジュール２０の演算速度よりも遅い。具体的には、入力保障部３１によるチェック処理速度がボトルネックとなり、機関要求トルク演算部３２および推定トルク演算部３３の演算速度は、機関要求トルク算出部２１の演算速度よりも遅くなっている。これに対し、監視モジュール３０の演算速度が制御モジュール２０の演算速度と同等であってもよい。
【０１２９】
上記各実施形態では、共通する１つのメモリ１１ｍの記憶領域に、制御用記憶領域２０ｍおよび監視用記憶領域３０ｍを設定している。これに対し、ＥＣＵ１０に複数のメモリを設け、第１のメモリの記憶領域を制御用記憶領域として設定し、第２のメモリの記憶領域を監視用記憶領域として設定してもよい。
【０１３０】
上記各実施形態では、共通する１つのＭＣＵ１１が、制御用記憶領域２０ｍおよび監視用記憶領域３０ｍを有している。これに対し、ＥＣＵ１０に複数のＭＣＵを設け、第１のＭＣＵが制御用記憶領域を有し、第２のＭＣＵが監視用記憶領域を有するように構成されていてもよい。
【０１３１】
上記第１実施形態に係る監視モジュール３０では、機関要求トルク演算部３２が算出する機関要求トルクにリザーブトルクを反映させ、推定トルク演算部３３が算出する推定トルクにはノック学習による点火時期の補正量を反映させていない。これに対し、機関要求トルク演算部３２が算出する機関要求トルクにリザーブトルクを反映させず、推定トルク演算部３３が算出する推定トルクには、ノック学習による点火時期の補正量つまり先述したノック学習量を反映させてもよい。
【０１３２】
上記各実施形態では、ＥＣＵ１０は、点火駆動ＩＣから出力される駆動電流または電圧を検出する検出回路を備えており、その検出回路による検出値を用いて、制御モジュール２０はノック学習制御を実行している。これに対し、駆動信号出力部２２が点火駆動ＩＣ１２へ出力する指令信号を実点火時期とみなし、上記検出値を用いることなくノック学習制御を実行してもよい。
【０１３３】
図２に示す演算部Ｂ３は、アイドルリザーブ、触媒暖機リザーブおよび補機リザーブの各々を加算してリザーブトルクを演算して演算部Ｂ４へ出力している。これに対し、アイドルリザーブ、触媒暖機リザーブおよび補機リザーブの最大値をリザーブトルクとして演算し、演算部Ｂ４へ出力してもよい。
【０１３４】
上記第１実施形態では、アイドルリザーブ、触媒暖機リザーブおよび補機リザーブの全てをリザーブトルクの算出に用いているが、これらリザーブの少なくとも１つをリザーブトルクの算出に用いるようにしてもよい。
【０１３５】
図３に示すように、上記第１実施形態では、触媒暖機要求トルクおよびアイドル要求トルクの両方を、ユーザ要求トルクに加算して機関要求トルクを算出している。これに対し、触媒暖機要求トルクおよびアイドル要求トルクのうち値の大きい方の要求トルクを、ユーザ要求トルクに加算して機関要求トルクを算出してもよい。
【０１３６】
上記各実施形態では、車両に搭載された内燃機関をＥＣＵ１０の制御対象としているが、車載以外の定置式の内燃機関をＥＣＵ１０の制御対象としてもよい。
【符号の説明】
【０１３７】
１０…ＥＣＵ（内燃機関制御システム）、２０…制御モジュール（制御用演算装置）、２０ｍ…制御用記憶領域、３０、３０Ａ、３０Ｂ…監視モジュール（監視用演算装置）、３０ｍ…監視用記憶領域。
【図１】
2019027350.tif 000003
【図２】
2019027350.tif 000004
【図３】
2019027350.tif 000005
【図４】
2019027350.tif 000006
【図５】
2019027350.tif 000007
【図６】
2019027350.tif 000008
【図７】
2019027350.tif 000009
【図８】
2019027350.tif 000010
【図９】
2019027350.tif 000011
【図１０】
2019027350.tif 000012
【図１１】
2019027350.tif 000013
【図１２】
2019027350.tif 000014
【図１３】
2019027350.tif 000015
【図１４】
2019027350.tif 000016