(57)【特許請求の範囲】
【請求項１】
複数個の演算処理状態より選択された一つの演算処理状態を取り得ることができ、選択された演算処理状態に応じた実効の演算処理を行うＣＰＵの診断装置であって、
例題を出題する例題出題部と、
前記ＣＰＵ内に、前記複数個の演算処理状態の各々に対応して設けられ、前記例題出題部が出題する例題を演算する例題演算処理部を有し、
前記例題演算処理部による例題演算の解答に基づいて前記ＣＰＵが正常であるか否かを診断することを特徴とするＣＰＵの診断装置。
【請求項２】
前記ＣＰＵは、演算処理状態に応じて異なる関数により演算処理を行うものを実効の演算処理とし、前記例題演算処理部は、複数の関数のうちから前記ＣＰＵが現在取り得ている状態に対応した関数を選択して例題演算を行うことを特徴とする請求項１に記載のＣＰＵの診断装置。
【請求項３】
前記例題出題部は、複数種類の例題を出題することを特徴とする請求項１又は２に記載のＣＰＵの診断装置。
【請求項４】
前記例題出題部は、前記ＣＰＵの外部に設けられ、例題を前記ＣＰＵに送信し、前記ＣＰＵによる前記例題演算処理部より解答を受信することを特徴とする請求項１〜３の何れか１項に記載のＣＰＵの診断装置。
【請求項５】
前記例題演算部は、実効の演算処理と同一の演算処理状態に対応する例題演算処理部を選択され、選択された前記例題演算処理部が前記例題出題部よりの例題を演算することを特徴とする請求項１、３、４の何れか１項に記載のＣＰＵの診断装置。
【請求項６】
前記例題演算処理部は、各演算処理状態に対応する例題演算処理部をサイクリックに順次選択され、選択された前記例題演算処理部が前記例題出題部よりの例題を演算することを特徴とする請求項１、３、４の何れか１項に記載のＣＰＵの診断装置。
【請求項７】
前記例題演算処理部は、複数種類の関数用例題演算処理部を有し、選択された関数用例題演算処理部によって前記例題出題部よりの例題を演算することを特徴とする請求項１〜６の何れか１項に記載のＣＰＵの診断装置。
【請求項８】
前記例題演算処理部は、乱数を用いて例題演算を実行する関数用例題演算処理部を選択することを特徴とする請求項７に記載のＣＰＵの診断装置。
【請求項９】
前記例題演算処理部は、ＣＰＵのタイマまたはカウンタの一部または全ての桁の所定時間経過毎の数値を乱数として演算処理に使用することを特徴とする請求項８に記載のＣＰＵの診断装置。
【請求項１０】
診断されるＣＰＵは、エンジン制御用のＣＰＵであることを特徴とする請求項１〜９の何れか１項に記載のＣＰＵの診断装置。
【請求項１１】
複数個の演算処理状態は、エンジンが取り得る複数個の燃焼モードに応じて設定されていることを特徴とする請求項１０に記載のＣＰＵの診断装置。
【請求項１２】
エンジンが取り得る前記燃焼モードは、ストイキモードとリーンモードとを含んでいることを特徴とする請求項１１に記載のＣＰＵの診断装置。
【請求項１３】
エンジンが取り得る前記燃焼モードは、ストイキモードと、均質リーンモードと、成層リーンモードの３種類であることを特徴とする請求項１１に記載のＣＰＵの診断装置。
【請求項１４】
エンジンのモードを切換える切換え手段を備え、前記切換え手段は、前記ＣＰＵが正常でないと診断した場合には、正常でないと診断した燃焼モードによる運転を禁止し、それ以外の燃焼モードによってエンジンが運転されるように指令することを特徴とする請求項１１〜１３の何れか１項に記載のＣＰＵの診断装置。
【請求項１５】
診断されるＣＰＵは、車輪のトルク、速度を制御する制御装置用のＣＰＵであり、車輪の速度、加速度、駆動トルク、制動トルクのいずれか、またはそれら複数のパラメータの組合せを例題として例題の演算を行うことを特徴とする請求項１〜９の何れか１項に記載のＣＰＵの診断装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵの診断装置に関し、特に、制御モード等に応じた複数個の演算処理状態より選択された一つの演算処理状態を取り得ることができ、選択された演算処理状態に応じた演算式により実演算処理を行うＣＰＵの診断装置に関する。
【０００２】
【従来の技術】
一般に、自動車用のコンピュータシステムによる制御装置で、ＣＰＵが故障すると、運転性を損なう可能性のある制御装置に対しては、ＣＰＵの監視を行って動作保証を行うＣＰＵの診断装置がある。
【０００３】
ＣＰＵの診断装置としては、特表平１０−５０７８０５号公報や特開２０００−２９７３４公報に示されているようなものが既が提案されている。これらの公報に示されているＣＰＵの診断装置は、少なくとも２つのレベル、すなわち機能レベル（実制御演算処理レベル）と、モニタリングレベル（診断のための演算処理レベル）を形成することにより、少なくともエラーケース以外においては、相互にその機能に影響を与えない２つのチャネルが計算要素（ＣＰＵ）内に設けられ、これにより１つの計算要素によって２つの計算要素に匹敵する運転の確実性および利用度が達成される。また、第２のレベルの動作検査を行う第３のレベルは、動作検査を質問／応答動作として実行する能動的なウォッチドッグを使用している。
【０００４】
上述のようなＣＰＵの診断装置では、ＣＰＵの外部よりＣＰＵに例題が与えられ、該ＣＰＵにおいて、実制御のための演算処理とは別に、例題の演算を行い、その演算結果（解答）を例題側（ＣＰＵ外部）に返し、その解答に基づいてＣＰＵが正常であるか否かを診断することが行われる。
【０００５】
【発明が解決しょうとする課題】
ところで、上述のような従来のＣＰＵの診断装置は、第１のレベルを実行する関数と、第２のレベルを実行する関数と、第２のレベルの動作検査を行う第３の関数によって構成されている。ここで、診断対象のＣＰＵの動作を考えると、第１のレベルを実行する関数や、第２のレベルを実行する関数が、条件の変化によって変わる可能性がある。
【０００６】
例えば、エンジンの制御装置では、エンジンの燃焼モードが、ストイキモード、均質リーンモード、成層リーンモードと云うように、３種類あるが、それぞれ、第１のレベルで各アクチュエータへの出力を決定する関数も、第２のレベルで例えば出力トルクを推定する関数もモードによって変わる。このことに対して、従来のＣＰＵの診断装置は、いずれも格別の配慮をなされていない。
【０００７】
これは、ＣＰＵが複数個の演算処理状態、例えば、ストイキモード、均質リーンモード、成層リーンモードの各燃焼モードより選択された一つの演算処理状態を取り得ることができ、選択された演算処理状態に応じた実効の演算処理を行うことを意味し、現在の演算処理状態で、正常な演算処理が行われているかを診断する必要がある。
【０００８】
本発明は、上述の如き問題に鑑みてなされたもので、その目的とするところは、ＣＰＵの演算処理状態によって監視（診断）態様を変化し、現在の演算処理状態での演算処理が正常に行われているかの診断を、大きいリソースを要することなく効率よく最適に行うＣＰＵの診断装置を提供することである。
【０００９】
【課題を解決するための手段】
前記目的を達成すべく、本発明に係るＣＰＵの診断装置は、複数個の演算処理状態より選択された一つの演算処理状態を取り得ることができ、選択された演算処理状態に応じた実効の演算処理を行うＣＰＵの診断装置であって、例題を出題する例題出題部と、前記複数個の演算処理状態の各々に対応して設けられ、前記例題出題部が出題する例題を演算する例題演算処理部とを有し、前記例題演算処理部による例題演算の解答に基づいてＣＰＵが正常であるか否かを診断するものである。
【００１０】
これにより、ＣＰＵの演算処理状態によって監視（診断）態様を変化させて現在の演算処理状態での演算処理が正常に行われているかの診断を行うことができる。
本発明に係るＣＰＵの診断装置の一つの実施の形態は、前記ＣＰＵは演算処理状態に応じて異なる関数により演算処理を行うものであり、前記例題演算処理部は、複数の関数のうちからＣＰＵが現在取り得ている状態に対応した関数を選択して例題演算を行うものである。
【００１１】
この場合、ＣＰＵが現在取り得ている状態に対応した関数とは、現在取り得ている状態で使用している関数である。
また、本発明に係るＣＰＵの診断装置の一つの実施の形態では、前記例題出題部は、複数種類の例題を出題する。
【００１２】
また、本発明に係るＣＰＵの診断装置では、前記例題出題部は、前記ＣＰＵの外部に設けられ、例題を前記ＣＰＵに送信し、前記ＣＰＵによる前記例題演算処理部より解答を受信するものである。
また、本発明に係るＣＰＵの診断装置の一つの実施の形態では、前記例題演算部は、実効の演算処理と同一の演算処理状態に対応する例題演算処理部を選択され、選択された前記例題演算処理部が前記例題出題部よりの例題を演算するものである。
【００１３】
また、本発明に係るＣＰＵの診断装置の他の実施の形態では、前記例題演算処理部は、各演算処理状態に対応する例題演算処理部をサイクリックに順次選択され、選択された前記例題演算処理部が前記例題出題部よりの例題を演算するものである。
また、本発明に係るＣＰＵの診断装置は、更に、前記例題演算処理部が、各々複数種類の例題演算処理部を有し、選択された例題演算処理部によって前記例題出題部よりの例題を演算するものである。
【００１４】
また、本発明に係るＣＰＵの診断装置では、前記例題演算処理部は、乱数を用いて例題演算を実行する例題演算処理部を選択することができる。
この場合、ＣＰＵのタイマまたはカウンタの一部または全ての桁の所定時間経過毎の数値を乱数として使用することができる。
【００１５】
また、本発明に係るＣＰＵの診断装置は、診断されるＣＰＵが、エンジン制御用のＣＰＵとすることができる。
この場合、ＣＰＵの複数個の演算処理状態は、エンジンが取り得る複数個の燃焼モードに応じて設定され、その燃焼モードは、ストイキモードとリーンモードとを含んでいるもの、更には、ストイキモードと、均質リーンモードと、成層リーンモードの３種類であるものとすることができる。
【００１６】
また、本発明に係るＣＰＵの診断装置は、ＣＰＵが正常でないと診断した場合には、正常でないと診断した燃焼モードによる運転を禁止し、それ以外の燃焼モードによってエンジンが運転されるように指令するものである。
また、本発明に係るＣＰＵの診断装置では、診断されるＣＰＵが、車輪のトルク、速度を制御する制御装置用のＣＰＵであり、車輪の速度、加速度、駆動トルク、制動トルクのいずれか、またはそれら複数のパラメータの組合せを例題として例題の演算を行うものである。
【００１７】
【発明の実施の形態】
以下、図面に基づき本発明のＣＰＵの診断装置をエンジン制御装置に適用した一実施形態について説明する。
【００１８】
図１は、本実施形態の筒内噴射エンジン５０７の制御システムの全体構成を示したものである。エンジン５０７の燃焼室５０７ｃに導入される空気（流量Ｑｃ）は、吸入空気（流量Ｑａ）とＥＧＲガス（流量Ｑｅ）とが合わさったものであり、吸入空気は、エアクリーナ５０２の入口部５０２ａから取り入れられ、エンジン５０７の運転状態計測手段の一つである空気流量計（エアフロセンサ）５０３を通り、吸気流量を制御する電制スロットル弁５０５ａが収容されているスロットルボディ５０５を通ってコレクタ５０６に入る。電制スロットル弁５０５ａは電制スロットル・モータ５２６によって駆動される。
【００１９】
エアフロセンサ５０３からは、吸気流量Ｑａを表す信号がエンジン制御装置であるコントロールユニット５１５に出力されている。
スロットルボディ５０５には、電制スロットル弁５０５ａの開度を検出するエンジンの運転状態計測手段の一つであるスロットルセンサ５０４が取り付けられており、その信号もコントロールユニット５１５に出力されるようになっている。
【００２０】
吸気管５０１と排気管５１９との間には、側路管５２５が備えられて排気ガスを再循環させるためのバイパス管路を形成しており、該側路管５２５には、排気ガスの再循環流量を調節する手段の一つである電制式のＥＧＲ弁５２４が設けられている。
【００２１】
コレクタ５０６に吸入された空気（圧力Ｐｍ）は、エンジン５０７の各シリンダ５０７ｂに接続された各吸気管５０１に分配された後、ＥＧＲガスと合流してシリンダ５０７ｂ内の燃焼室５０７ｃに導かれる。
【００２２】
ガソリン等の燃料は、燃料タンク５１４から燃料ポンプ５１０により一次加圧されて燃圧レギュレータ５１２により一定の圧力（一次規定圧）に調圧されるとともに、燃料ポンプ５１１でより高い圧力に二次加圧されて燃圧レギュレータ５１３によって一定の圧力（二次規定圧）に調圧され、各気筒毎に設けられているインジェクタ５０９から燃焼室５０７ｃに直接噴射される。燃焼室５０７ｃに噴射された燃料は、点火コイル５２２で高電圧化された点火信号により点火プラグ５０８で着火される。
【００２３】
エンジン５０７のクランク軸５０７ｄに取り付けられたクランク角センサ５１６（図２参照）は、クランク軸５０７ｄの回転位置を表す回転信号（回転数）検出用の角度信号ＰＯＳをコントロールユニット５１５に出力する。
排気管５１９の途中には触媒コンバータ５２０が設けられており、触媒コンバータ５２０の上流に設けられたＡ／Ｆセンサ５１８は、排気ガス成分を検出し、その検出信号がコントロールユニット５１５に出力されている。
【００２４】
コントロールユニット５１５は、図２に示されているように、ＣＰＵ６０１と、ＲＯＭ６０２と、ＲＡＭ６０４と、Ａ／Ｄ変換器を含むＩ／Ｏ・ＬＳＩ６０４等で構成され、エンジンの運転状態を計測（検出）する手段である上述の各センサ、ならびに、アクセル開度センサ（ＡＰＳ）５２１、燃圧センサ５２３、スタータスイッチ５２７からの信号を入力として取り込み、所定の演算処理を実行し、この演算結果として算定された各種の制御信号を出力し、各インジェクタ５０９、点火コイル５２２、電制スロット・モータ５２６、ＥＧＲ弁５２４等に所定の制御信号を供給して燃料供給量制御、点火時期制御、スロット開度制御、ＥＧＲ制御等を実行するものである。
【００２５】
図３、図４は、筒内噴射エンジン５０７において、コントロールユニット５１５で実行される制御のブロック図の全体概要を示したものであり、紙面の大きさの関係上、図３と図４とで一つの制御ブロック図が完成する。
エアフロセンサ５０３によって検出された吸入空気流量Ｑａの信号はフィルタ処理手段１０２でフィルタ処理を施される。この後に、基本燃料噴射量決定手段１０３にて、吸入空気量Ｑａをエンジン回転数Ｎｅで除するとともに、空燃比がストイキ（Ａ／Ｆ＝１４．７）となるような係数ｋを乗じて１シリンダ当たりの基本燃料噴射パルス幅、すなわち、基本燃料噴射量Ｔｐ１が求められる。
【００２６】
ストイキ時（ストイキモード時）には、エアフロセンサ５０３とインジェクタ５０９との個々の特性差及び経時変化により生ずる特性ずれを補正するため、基本燃料噴射量補正手段１１７によって基本燃料噴射量Ｔｐ１とエンジン回転数Ｎｅとから決まる動作点毎に、後述する燃料噴射量Ｔｐの算出に用いられるＯ２Ｆ／Ｂ補正係数を学習する。
【００２７】
一方、後述する基準燃料噴射量決定手段１０１では、エンジン回転数Ｎｅとアクセル開度Ａｃｃとから、基本燃料噴射量Ｔｐ１と同次元で、目標燃料噴射量Ｔｐ３の基準になる基準燃料噴射量Ｔｐ２が基準Ｔｐマップにより求められる。
【００２８】
基本燃料噴射量Ｔｐ１と基準燃料噴射量Ｔｐ２との関係は、アクセル開度Ａｃｃとエンジン回転数Ｎｅで決まる動作点において、ストイキで運転した場合の基準燃料噴射量Ｔｐ２が基本燃料噴射量Ｔｐ１になるような基準燃料噴射量Ｔｐ２の前記マップの値をあらかじめ設定しておく。ただし、実車でのセンサ等のばらつきに対応し、ストイキ時の基本燃料噴射量Ｔｐ１（実Ｔｐ）に基づいて基準燃料噴射量Ｔｐ２（基準Ｔｐ）が学習できるように、基準燃料噴射量Ｔｐ２の前記マップは書換え可能となっている。
【００２９】
本実施形態では、エンジン５０７の制御パラメータである空燃比、点火時期、燃料噴射時期、ＥＧＲ率の各マップは、エンジン回転数Ｎｅと基準燃料噴射量Ｔｐ２との二変数を軸として検索できるようになっている。基準燃料噴射量Ｔｐ２は、エンジン負荷の関数として示されるものであるから、該基準燃料噴射量Ｔｐ２の軸は、エンジンの負荷の軸に置換えることができるとともに、アクセル開度Ａｃｃの軸にすることもでき、さらに、ストイキ時においては、基本燃料噴射量Ｔｐ１と一致する。
【００３０】
前記各パラメータのうち空燃比設定マップＩは、ストイキＡ／Ｆマップ１０４と均質リーンＡ／Ｆマップ１０５と成層リーンＡ／Ｆマップ１０６の３枚から構成され、点火時期マップＩＩは、ストイキ点火マップ１０７と均質リーン点火マップ１０８と成層リーン点火マップ１０９の３枚から構成され、噴射時期マップＩＩＩは、ストイキ噴射時期マップ１１０と均質リーン噴射時期マップ１１１と成層リーン噴射時期マップ１１２の３枚から構成され、さらに、ＥＧＲ率マップＩＶは、ストイキＥＧＲマップ１１３と均質リーンＥＧＲマップ１１４と成層リーンＥＧＲマップ１１５の３枚から構成されており、この空燃比、点火時期、燃料噴射時期、及びＥＧＲ率の各パラメータにおいて、どのマップを使用するかは、燃焼モード切換手段１２０で決定される。なお、該燃焼モード切換手段１２０中の処理については図７を参照して後述する。
【００３１】
エンジン運転の空燃比を決定する目標の吸入空気流量Ｑ及び燃料噴射量Ｔｐの二要素は、いずれも基準燃料噴射量Ｔｐ２に基づいて計算される。燃料噴射量Ｔｐは、基準燃料噴射量補正手段１２３で基準燃料噴射量Ｔｐ２に基準変化量ΔＴｐ２を加算して補正後の基準燃料噴射量Ｔｐ２′とした後、該基準燃料噴射量Ｔｐ２′にインジェクタ５０９の無効噴射パルス幅ＴＳを加えて求められる。なお、ストイキ制御の場合には、基本燃料噴射量Ｔｐ１で補正し、Ｏ２Ｆ／Ｂ補正係数を乗じて求められる。
【００３２】
吸入空気流量Ｑは、上述の補正後の基準燃料噴射量Ｔｐ２′がスロットル開度設定手段１３０に入り、目標燃料噴射量算出手段１２４で基準燃料噴射量Ｔｐ２′に目標空燃比（例えば４０）を乗ずるとともに、ストイキの空燃比１４．７で除することにより、前記目標空燃比を達成するのに必要な目標燃料噴射量Ｔｐ３を算出する。ただし、目標燃料噴射量Ｔｐ３は、制御上、燃料噴射量の目標値としてでなく、吸入空気量の目標値として使われる。
【００３３】
目標燃料噴射量Ｔｐ３と基本燃料噴射量Ｔｐ１とは、後述するＩ−ＰＤ制御手段１１８で比較されてスロットル開度をフィードバック制御し、基本燃料噴射量Ｔｐ１を目標燃料噴射量Ｔｐ３に追従させて目標の吸入空気流量Ｑを制御する。上述のように設定される吸入空気流量Ｑと燃料噴射量Ｔｐとによって所望の空燃比に合わせ込むことができる。
【００３４】
本実施形態のエンジン制御装置５１５は、燃料変化をベースにして吸入空気流量Ｑａのフィードバック制御を電制スロットル弁５０５ａで常に行っており、ＥＧＲ弁５２４を閉弁してＥＧＲを停止する場合には、吸入空気流量Ｑａである新気の割合が増加するので、電制スロットル弁５０５ａの開度を低減し、これに対し、ＥＧＲ弁５２４を開弁する場合には、新気の割合が減少するので、電制スロットル弁５０５ａの開度を増大する制御が行われる。
【００３５】
Ｉ−ＰＤ制御手段１１８は、目標燃料噴射量Ｔｐ３（目標Ｔｐ）と基本燃料噴射量Ｔｐ１（実Ｔｐ）とを比較し、その偏差からスロットル目標開度を決定するＴｐフィードバック制御を行うものであり、スロットル目標開度のトルク分である操作量ＴＯＲＤＴＹは、数式（１）により求められる。
ＴＯＲＤＴＹ＝ＴＯＲＤＴ１＋ＴＰＦＢ    …（１）
【００３６】
ここで、ＴＯＲＤＴ１は１０ｍｓ前の操作量であり、ＴＰＦＢはＴｐフィードバック分である制御量であり、数式（２）により求められる。
ＴＰＦＢ＝ＴＰＦＢＩ＋ＴＰＦＢＰ＋ＴＰＦＢＤ    …（２）
【００３７】
ここで、ＴＰＦＢＩはＴｐフィードバック分の積分分、ＴＰＦＢＰはＴｐフィードバック分の比例分、ＴＰＦＢＤはＴｐフィードバック分の微分分であり、これらの総和を制御量としている。なお、積分分ＴＰＦＢＩ、比例分ＴＰＦＢＰ、微分分ＴＰＦＢＤは、数式（３）〜（５）により求められる。
ＴＰＦＢＩ＝ＫＴＰＦＢＩ＃×ＤＥＬＴＰ    …（３）
なお、ＤＥＬＴＰ＝ＴＡＲＧＴＰ−ＴＰである。
【００３８】
ここで、ＫＴＰＦＢＩは積分ゲインであり、ＤＥＬＴＰはＴｐの偏差分を示している。ＴＡＲＧＴＰは目標燃料噴射量Ｔｐ３であり、前述のように、ストイキ制御では基本燃料噴射量Ｔｐ１になるが、リーン制御では基準燃料噴射量Ｔｐ２′に目標空燃比を乗ずるとともに、ストイキの空燃比１４．７で除して求められる。
ＴＰＦＢＰ＝ＫＴＰＦＢＰ＃×（ＴＰＫ１−ＴＰ）    …（４）
ＴＰＦＢＤ＝ＫＴＰＦＢＤ＃×（２×ＴＰＫ１−ＴＰＫ２−ＴＰ）…（５）
【００３９】
すなわち、Ｔｐフィードバック制御は、アナログ方式のＰＩＤ制御を離散時間用の差分式に書換えており、さらに、制御量ＴＰＦＢを１時刻前の操作量ＴＯＲＤＴ１に足し込んでいく速度アルゴリズムを用いることにより、ＡＰＳ及びＡＦＭ信号の瞬断、瞬停、ノイズ等によるスロットル開度の急変を抑える性質を制御自体に持たせている。そして、スロットル目標開度司令（操作量）ＴＯＲＤＴＹは、ＴＣＭ（Ｔｈｒｏｔｔｌｅ  Ｃｏｎｔｒｏｌ  Ｍｏｄｕｌｅ）１１９に出力されてスロットル開度が制御されている。
【００４０】
図５は、本実施形態の筒内噴射エンジン５０７の空燃比設定マップＩを表したものであり、これに基づいてストイキＡ／Ｆ、均質リーンＡ／Ｆ、及び成層リーンＡ／Ｆの３枚のマップに展開される。この空燃比設定マップＩをみると、アイドル領域は成層リーンで空燃比４０となっているが、このマップはエンジン暖機時のものであり、エンジン冷機時には安定した成層リーンの燃焼ができないことからストイキの燃焼となり、エンジン５０７の制御パラメータである空燃比、点火時期、燃料噴射時期、ＥＧＲ率の各マップもストイキ用のマップによってパラメータが検索されている。
【００４１】
図６は、トルク及びエンジン回転数の二変数におけるＥＧＲ率との関係を示したものであり、空燃比設定マップＩと比較すると、成層リーン及びストイキ制御の場合にはＥＧＲ装置を作動させるのに対し、均質リーン制御の場合にはＥＧＲ装置を作動させないことが分かる。
このように、燃焼モードを決定するのが燃焼モード切換え手段１２０であり、図７を参照してその処理内容を説明する。図７は燃焼モード切換え手段１２０の状態遷移図を示したものである。
【００４２】
エンジン５０７のスタート時は、まず、（Ａ）ストイキモードとなる。（Ａ）ストイキモードから（Ｂ）均質リーンモードに移行するには、条件Ａが成立しなければならない。さらに、（Ｂ）均質リーンモードの運転中に条件Ｂが成立すれば、（Ｃ）成層リーンモードに移行する。そして、（Ｃ）成層リーンモードの運転中に条件Ｃが成立すれば、（Ａ）ストイキモードに戻り、また、（Ｃ）成層リーンモードの運転中に条件Ｅが成立すれば、（Ｂ）均質リーンモードに戻る。なお、（Ｂ）均質リーンモードの運転中に条件Ｄが成立すると、（Ａ）ストイキモードに戻る。条件Ａ乃至Ｅの例を次に示す。
【００４３】
条件Ａ：次のＡ１乃至Ａ３がすべて成立すること。
Ａ１：ストイキ空燃比マップ１０４で検索した目標Ａ／Ｆ≧２０
Ａ２：エンジン冷却水温ＴＷＮ≧４０℃
Ａ３：エンジン始動後の増量係数＝０
条件Ｂ：均質リーン空燃比マップ１０５で検索した目標Ａ／Ｆ≧３０であること。
条件Ｃ：減速時の燃料カット条件が成立したこと。
条件Ｄ：均質リーン空燃比マップ１０５で検索した目標Ａ／Ｆ≦１９であること。
条件Ｅ：成層リーン空燃比マップ１０６で検索した目標Ａ／Ｆ≦２８であること。
【００４４】
このように、燃焼モード切換手段１２０によって燃焼モードが決定すると、空燃比のほか、点火時期、噴射時期、ＥＧＲ率もまた各モード用のマップで設定値が検索される。
【００４５】
つぎに、本発明によるＣＰＵの診断装置について図８を参照して説明する。ＣＰＵ６０１は、実制御用演算処理部２０１と例題演算処理部２１１とをソウトフェア的に具現化し、外部に設けられた例題出題・判定部３０１と双方向にデータ伝送する。
【００４６】
実制御用演算処理部２０１は、選択された演算処理状態に応じた実効の演算処理を行うものであり、ＣＰＵ６０１の３つの演算処理状態（制御実行状態）、つまり、（Ａ）ストイキモード、（Ｂ）均質リーンモード、（Ｃ）成層リーンモードに応じた個別の関数による演算処理を行うストイキモード演算処理部（関数１）２０２と、均質リーンモード演算処理部（関数２）２０３と、成層リーン演算処理部（関数３）２０４と、これら演算処理部の一つを選択的に使用するための入力側スイッチ２０５および出力側スイッチ２０６とを含んでいる。入力側スイッチ２０５および出力側スイッチ２０６が図３に示されている燃焼モード切換え手段１２０と考えることができる。
【００４７】
例題演算処理部２１１は、ＣＰＵ６０１の３つの演算処理状態（制御実行状態）、つまり、（Ａ）ストイキモード、（Ｂ）均質リーンモード、（Ｃ）成層リーンモードに応じた個別の関数によって例題を演算するストイキモード用例題演算処理部（関数１）２１２と、均質リーンモード用例題演算処理部（関数２）２１３と、成層リーン用例題演算処理部（関数３）２１４と、これら例題演算処理部の一つを選択的に使用するための関数選択部２１５と、解答選択部２１６とを含んでいる。
【００４８】
関数選択部２１５と解答選択部２１６はスイッチ要素であり、燃焼モード切換え手段１２０によって選択された燃焼モードと同じとなるように入力スイッチ２０５、出力スイッチ２０６と同一ポジションに切り換えられる。すなわち、ＣＰＵ６０１は、例題演算処理部２１１が燃焼モード切換え手段１２０によって選択された燃焼モードと同じとなるように関数選択部２１５を切り換え、ストイキモード用例題演算処理部２１２、均質リーンモード用例題演算処理部２１３、成層リーン用例題演算処理部２１４の何れかにて、いずれかの関数で演算した解答を、関数選択部２１５と同じポジションになるようなスイッチ要素である解答選択手部２１６にて選択し、解答を例題出題・判定部３０１へ出力する。
【００４９】
例題出題・判定部３０１は、ｍ種類の例題を出題するために、例題１出題部３０２１〜３０２ｍを有しており、例題１〜例題ｍのうちのいずれか一つををＣＰＵ状態と関係なく、例題選択部３０３にて選択してＣＰＵ６０１に送信する。ＣＰＵ６０１は、受信した例題を現在取り得ている状態固有の関数で解くように、関数選択部２１５で選択して例題演算処理部２１２，２１３，２１４の何れかに与える。
【００５０】
つぎに、上述した構成によるＣＰＵの診断装置の動作を図９に示されているフローチャートを参照して説明する。一連の処理は、一定周期（例えば１０ｍｓ）で実行され、割り込みによって処理を開始し、リターンでもとに戻る。始めに、例題を受信し（ステップ１５０２）、現在の燃焼状態（燃焼モード）を判定する（ステップ１５０３）。
【００５１】
ここで、ストイキモードであれば、ストイキモードに対応した関数１による解答演算を行い（ステップ１５０４）、均質リーンモードであれば、均質リーンモードに対応した関数２による解答演算を行い（ステップ１５０５）、成層リーンモードであれば、成層リーンモードに対応した関数３による解答演算を行う（ステップ１５０６）。そして、解答演算の結果（解答）を送信して終了する（ステップ１５０７）。
【００５２】
他の実施の形態として、各例題演算処理部２１３〜２１４は、図１０に示されているように、例題拡張手段として、複数個の解答演算部２１７ａ、２１７ｂを持つことができ、互いに同一ポジションを取る選択部２１８、２１９によって解答演算部２１７ａと２１７ｂの何れかを選択使用することができる。この場合には、例題を関数選択部２１５によって現在のＣＰＵ状態を表す関数に分配し、乱数を入力とした乱数による選択部２１８によって解答演算部２１７ａと２１７ｂの何れかに分配するようにしている。
【００５３】
選択部２１９は選択部２１８と同じポジションを取り、例題の演算結果（解答結果）を解答チェッカー２２０に入力する。解答チェッカー２２０は、予め記憶している解答と解答結果が同じであるかをチェックし、同じであれば、解答を解答選択部２１６を介して例題出題・判定部３０１へ送信する。例題出題・判定部３０１は、ＣＰＵ６０１よりの解答を解答選択部３０４で受け取る。
【００５４】
図１１は例題拡張手段をさらに、もう１段加えたものであり、第１群の解答演算部２２１ａ、２２１ｂと、第２群の解答演算部２２２ａ、２２２ｂとを有している。この実施の形態では、例題を関数選択部２１５によって現在のＣＰＵ状態を表す関数に分配し、さらに、乱数Ａを入力とした乱数による選択部２２３によって第１群の解答演算部２２１ａ、２２１ｂと、第２群の解答演算部２２２ａ、２２２ｂの何れかに分配する。さらに、乱数Ｂを入力とした乱数による選択部２２４によって何れかの群の何れか一つの解答演算部に分配する。なお、解答出力側にも同等の選択部２２５，２２６が設けられており、演算結果を解答チェッカー２２０に渡すようになっている。
【００５５】
ここで、例題の種類がｍ、関数選択部２１５による分岐数がｎ、第１段の乱数による選択手段がｐ１種類、第２段の乱数による選択手段がｐ２種類とすれば、例題演算はｍ×ｎ×ｐ１×ｐ２種類に拡張できる。
上述した解答演算部選択のための乱数は、ＣＰＵ２１１のタイマまたはカウンタの一部または全ての桁の所定時間経過毎の数値をもちいることができ、奇数、偶数で、各選択部のポジションを反転させることができる。
【００５６】
乱数発生について、図１２、図１３を参照して説明する。図１２は、連続的に増加するＣＰＵ６０１の２バイトのタイマまたはカウンタ波形を示している。ここで、ある一定周期ｔで上記タイマまたはカウンタの数値を読み込む。ある一定周期というのは、例えばＣＰＵ６０１の１０ｍｓ周期ＪＯＢ中の、ある命令でカウンタ値を取り込むが、１０ｍｓ周期ＪＯＢそのものの周期が正確に１０ｍｓでなく数ｕｓから数十ｕｓの誤差を含んでいてもよい。図１２に１０ｍｓ周期ＪＯＢで取り込んだカウンタ値を黒丸で示す。
【００５７】
図１３は各１０ｍｓＪＯＢで取り込んだタイマまたはカウンタ値を矩形波で示す。この結果を乱数による選択部２１８等に適用する場合、例えば、偶数だったらスイッチを上側、奇数だったらスイッチを下側に倒すというように設定しておく。
【００５８】
つぎに、上述した例題拡張手段を含むＣＰＵの診断装置（図１０に示されているもの）の動作を図１４に示されているフローチャートを参照して説明する。この場合も、一連の処理は、一定周期（例えば１０ｍｓ）で実行され、割り込みによって処理を開始し、リターンでもとに戻る。始めに、例題を受信し（ステップ１６０２）、次に、タイマ値Ｔを読み込む（ステップ１６０３）。次に、タイマ値Ｔが偶数であるか否かを判定する（ステップ１６０４）。
【００５９】
ここで、タイマ値Ｔが偶数であれば、ステップ１６０５へ進み、偶数でなければ、ステップ１６０６へ進む。これは、選択部２１８の切り換えを意味し、偶数であれば、解答演算部２１７ａがアクティブになって解答演算部２１７ｂがスリープし、これとは反対に、偶数でなければ、解答演算部２１７ａがスリープして解答演算部２１７ｂがアクティブになる。
【００６０】
何れの場合も、現在の燃焼状態（燃焼モード）を判定する（ステップ１６０５あるいはステップ１６０６）。ここで、ストイキモードであれば、ストイキモードに対応した関数１による解答演算を行い（ステップ１６０７あるいはステップ１６１０）、均質リーンモードであれば、均質リーンモードに対応した関数２による解答演算を行い（ステップ１６０８あるいはステップ１６１１）、成層リーンモードであれば、成層リーンモードに対応した関数３による解答演算を行う（ステップ１６０９あるいはステップ１６１２）。そして、解答演算の結果（解答）を送信して終了する（ステップ１６１３）。
【００６１】
次に、解答演算の具体的な例について図１５、図１６を用いて説明する。
図１５に示されている例では、ＣＰＵ６０１が全３段のブロックで構成される。
上段は、ドライバ要求トルク、ＴＣＳ、ＡＴの中からトルク選択手段１２０１で目標トルクＴＴＱを演算する。さらに、負荷変換手段１２０２で負荷値ＫＩＪＵＮＴＰに変換する。
【００６２】
中段は、ＭＡＦＳ１２０４で計測した吸入空気量の値Ｑａを元に基本燃料噴射量算出部１２０６にて基本燃料噴射量ＴＰを計算し、さらに空燃比センサ５１８が検出した値ＲＥＡＬＫＭＲと補正係数ＣＯＥＦ、ＡＬＰＨＡで補正して実際の負荷値Ａｃｔｕａｌ  ＫＩＪＵＮ  ＴＰを計算する。
【００６３】
このようにして求めた上段のＫＩＪＵＮ  ＴＰと中段のＡｃｔｕａｌ  ＫＩＪＪＵＮ  ＴＰを負荷比較手段１２０３によって比較することにより、目標の負荷と実際の負荷が等しいか、あるいは所定の範囲内にあるか否かによって、負荷に関するセンサ、演算、アクチュエータの診断を行うことができる。目標の負荷と実際の負荷が所定値以上、異なっている場合には、アクチュエータの停止、トルク制限等のフェイルセーフの動作を行う。
【００６４】
ここで、中段のトルク推定が正しく動作しているかどうかチェックするために下段では、中段と同じブロック構成のもの（例題演算処理部２１１）に例題を出題し、機能のチェックを行う。
【００６５】
基本燃料噴射量の例題演算部１２０７にはＭＡＦＳ１２０４で計測した吸入空気量の値Ｑａと同じ次元のダミー値を例題として入力し、その入力値を元にダミー基本燃料噴射量ＴＥＳＴ  ＴＰを計算し、さらに空燃比センサと同じ次元のダミー値ＴＥＳＴＫＭＲと補正係数ＣＯＥＦ１、ＡＬＰＨＡ１で補正して実際の負荷値Ａｃｔｕａｌ  ＫＩＪＵＮ  ＴＰを計算する。このようにして求めたＴＥＳＴ  ＫＩＪＵＮ  ＴＰを解答として、例題出題・判定部３０１に送信する。
【００６６】
ここで、ＣＰＵ状態がストイキモードの時には空燃比センサ５１８で検出する空燃比Ａ／Ｆ＝ＲＥＡＬＫＭＲ＝１４．７付近の値を負荷値計算に使用する。同時に、ストイキモードでは、例題演算処理部２１１でも実動作状態に近いＴＥＳＴＫＭＲ＝１４．７として、例題演算を行い、解答を計算する。
【００６７】
これに対し、ＣＰＵ状態が均質リーンモードの時には、空燃比センサ５１８で検出する空燃比Ａ／Ｆ＝ＲＥＡＬＫＭＲ＝２０〜２３付近の値を負荷値計算に使用する。同時に、均質リーンモードでは、例題演算処理部２１１でも実動作状態に近いＴＥＳＴＫＭＲ＝２２として、例題演算を行い、解答を計算する。
また、ＣＰＵ状態が成層リーンモードの時には、空燃比センサ５１８で検出する空燃比Ａ／Ｆ＝ＲＥＡＬＫＭＲ＝３６〜４４付近の値を負荷値計算に使用する。同時に、成層リーンモードでは、例題演算処理部２１１でも実動作状態に近いＴＥＳＴＫＭＲ＝４０として、例題演算を行い、解答を計算する。
【００６８】
つぎに、図１６に示されている例について説明する。図１６に示されているもと、図１５に示されているものとの違いは、負荷を無次元化した負荷値として比較しているか、トルクとして比較しているかの違いである。
図１６に示されている例でも、ＣＰＵ６０１は全３段のブロックで構成される。
【００６９】
上段は、ドライバ要求トルク、ＴＣＳ、ＡＴの中からトルク選択手段１２０１で目標トルクＴＴＱを演算する。さらに、負荷変換手段１２０２で負荷値ＫＩＪＵＮＴＰに変換し、その後に、補正処理等の関数を実行した後、トルク変換手段１３０１でトルク値に変換する。
【００７０】
中段は、ＭＡＦＳ１２０４で計測した吸入空気量の値Ｑａを元に基本燃料噴射量算出部１２０６にて基本燃料噴射量ＴＰを計算し、さらに空燃比センサ５１８で検出した値ＲＥＡＬＫＭＲと補正係数ＣＯＥＦ、ＡＬＰＨＡで補正して実際の負荷値Ａｃｔｕａｌ  ＫＩＪＵＮ  ＴＰを計算し、その後に、トルク変換手段１３０１でトルク値ＫＩＪＵＮ  ＴＲＱに変換する。
【００７１】
このようにして求めた上段のＫＩＪＵＮ  ＴＲＱと中段のＡｃｔｕａｌ  ＴＲＱとを負荷比較気１２０３で比較し、目標のトルクと実際のトルクが等しいか所定の範囲にあれば、トルクに関するセンサ、演算、アクチュエータが正常と診断できる。これに対し、目標のトルクと実際のトルクが所定値以上離れていると、アクチュエータの停止、トルク制限等のフェイルセーフの動作を行う。
ここで、中段のトルク推定が正しく動作しているかどうかチェックするために下段では中段と同じブロック構成のもの（例題演算処理部２１１）に例題を出題し、機能のチェックを行う。
【００７２】
基本燃料噴射量の例題演算部１２０７にはＭＡＦＳ１２０４で計測した吸入空気量の値Ｑａと同じ次元のダミー値を例題として入力し、その入力値を元にダミー基本燃料噴射量ＴＥＳＴ  ＴＰを計算し、さらに空燃比センサ５１８と同じ次元のダミー値ＴＥＳＴＫＭＲと補正係数ＣＯＥＦ２、ＡＬＰＨＡ２で補正して推定負荷値ＴＥＳＴ  ＫＩＪＵＮ  ＴＰを計算する。さらに、トルク変換手段１３０１でトルク値に変換したＴＥＳＴ  ＫＩＪＵＮ  ＴＲＱを解答として例題出題・判定部３０１に送信する。
【００７３】
この場合も、ＣＰＵ状態がストイキモードの時には、空燃比センサ５１８で検出する空燃比Ａ／Ｆ＝ＲＥＡＬＫＭＲ＝１４．７付近の値を負荷値計算に使用する。同時に、ストイキモードでは、例題演算処理部２１１でも実動作状態に近いＴＥＳＴＫＭＲ＝１４．７として、例題演算を行い、解答を計算する。
【００７４】
これに対し、ＣＰＵ状態が均質リーンモードの時には、空燃比センサ５１８で検出する空燃比Ａ／Ｆ＝ＲＥＡＬＫＭＲ＝２０〜２３付近の値を負荷値計算に使用する。同時に、均質リーンモードでは、例題演算処理部２１１でも実動作状態に近いＴＥＳＴＫＭＲ＝２２として、例題演算を行い、解答を計算する。
また、ＣＰＵ状態が成層リーンモードの時には、空燃比センサ５１８で検出する空燃比Ａ／Ｆ＝ＲＥＡＬＫＭＲ＝３６〜４４付近の値を負荷値計算に使用する。同時に、成層リーンモードでは、例題演算処理部２１１でも実動作状態に近いＴＥＳＴＫＭＲ＝４０として、例題演算を行い、解答を計算する。
【００７５】
このようにして、本発明装置によれば、ＣＰＵ６０１の診断をＣＰＵ６０１の状態によらずに確実に実行することができる。
上述のようなＣＰＵ６０１の診断において、ＣＰＵ６０１が正常でないと診断した場合には、正常でないと診断した燃焼モードによる運転を禁止し、それ以外の燃焼モードによってエンジンが運転されるように指令を出すことができる。
【００７６】
図１７はこの発明によるＣＰＵの診断装置の他の実施形態を示したものである。この実施の形態では、関数選択部２１５と解答選択部２１６の切換動作が、ＣＰＵ６０１の演算処理状態（燃焼モード）によらずに、サイクリックな切換信号発生部２５０が発生する切換信号により行われる。これにより、各燃焼モードに対応する例題演算処理部２１２、２１３，２１４がサイクリックに順次選択され、選択された例題演算処理部が例題出題・判定部３０１よりの例題を受取って例題の演算を行う。
【００７７】
この場合には、ＣＰＵ６０１の現在の状態以外の状態時の関数による例題演算も行われるが、現在の状態に対応する関数による例題演算の解答を採用することにより、上述の実施の形態のものと同様の効果が得られる。
以上、本発明のいくつかの一実施の形態について詳説したが、本発明は上述した実施の形態に限定されるものではなく、特許請求の範囲に記載された発明の精神を逸脱しない範囲で、設計において種々の変更ができるものである。
【００７８】
例えば、上述の実施の形態におけるエンジン制御装置をブレーキ制御装置と読み替え、さらに、上述の実施の形態におけるエンジントルク推定をブレーキトルク推定と読み替えてもよく、この場合にもＣＰＵの故障を確実に判定することができる。この場合、診断されるＣＰＵは、車輪のトルク、速度を制御する制御装置用のＣＰＵであり、車輪の速度、加速度、駆動トルク、制動トルクのいずれか、またはそれら複数のパラメータの組合せを例題として例題の演算を行うことができる。
【００７９】
【発明の効果】
以上の説明から理解できるように、本発明のＣＰＵ診断装置は、ＣＰＵの状態によらずに、現在使っている関数と等価な関数で例題演算を行うため、確実にＣＰＵの診断を行うことができる。
また、本発明のＣＰＵ診断装置を適用したエンジン制御装置のＣＰＵは、燃焼状態の３つのモード（ストイキモード、均質リーンモード、成層リーンモード）それぞれに対応した関数を用いてＣＰＵの診断を行うことができる。
【図面の簡単な説明】
【図１】本発明によるＣＰＵ診断装置が適用される筒内噴射エンジンの全体構成図。
【図２】本発明によるＣＰＵ診断装置が適用される筒内噴射エンジンの制御系を示すブロック図。
【図３】エンジン制御装置の前段制御ブロック図。
【図４】エンジン制御装置の後段制御ブロック図。
【図５】エンジン制御装置の空燃比の設定例を示す図。
【図６】エンジン制御装置のＥＧＲ率の設定例を示す図。
【図７】エンジン制御装置の燃焼モード切換え手段の状態遷移図。
【図８】本発明によるＣＰＵの診断装置の一つの実施の形態を示すブロック図。
【図９】本発明によるＣＰＵの診断装置の動作を示すフローチャート。
【図１０】本発明によるＣＰＵの診断装置の他の実施の形態の例題演算部を示すブロック図。
【図１１】本発明によるＣＰＵの診断装置のもう一つの他の実施の形態の例題演算部を示すブロック図。
【図１２】ＣＰＵのタイマ、カウンタの動作を示す説明図。
【図１３】ＣＰＵのタイマ、カウンタの動作と取り込みタイミングを示す説明図
【図１４】本発明によるＣＰＵの診断装置の動作を示すフローチャート。
【図１５】本発明によるＣＰＵ診断装置のエンジン制御装置への組み込み例を示す説明図。
【図１６】本発明によるＣＰＵ診断装置のエンジン制御装置への他の組み込み例を示す説明図。
【図１７】本発明によるＣＰＵの診断装置の更に他の実施の形態を示すブロック図。
【符号の説明】
２０１  実制御用演算処理部
２０２  ストイキモード演算処理部
２０３  均質リーンモード演算処理部
２０４  成層リーン演算処理部
２０５  入力側スイッチ
２０６  出力側スイッチ
２１１  例題演算処理部
２１２  ストイキモード用例題演算処理部
２１３  均質リーンモード用例題演算処理部
２１４  成層リーン用例題演算処理部
２１５  関数選択部
２１６  解答選択部
３０１  例題出題・判定部
３０２１〜３０２ｍ    例題１出題部〜例題ｍ出題部
３０３  例題選択部
３０４  解答選択部
６０１  ＣＰＵ
【図１】
0003616319.tif 000002
【図２】
0003616319.tif 000003
【図３】
0003616319.tif 000004
【図４】
0003616319.tif 000005
【図５】
0003616319.tif 000006
【図６】
0003616319.tif 000007
【図７】
0003616319.tif 000008
【図８】
0003616319.tif 000009
【図９】
0003616319.tif 000010
【図１０】
0003616319.tif 000011
【図１１】
0003616319.tif 000012
【図１２】
0003616319.tif 000013
【図１３】
0003616319.tif 000014
【図１４】
0003616319.tif 000015
【図１５】
0003616319.tif 000016
【図１６】
0003616319.tif 000017
【図１７】
0003616319.tif 000018