(57)【要約】【課題】２つのコンピュータを備える電子制御装置において、一方のコンピュータにおける所定のロジック関数が正常に機能しているか判定する処理について、他方のコンピュータによって監視すること。【解決手段】メインＣＰＵ２６は、スロットル目標開度算出ロジック及びスロットル目標推定開度算出ロジックが正常か否かを判定する際に用いたデータ（スロットル目標開度とスロットル目標推定開度、ダミースロットル目標推定開度と期待値）をサブＣＰＵ３４に送信する。サブＣＰＵ３４は、ペアとなるデータを対比判定することにより、メインＣＰＵ２４における判定処理結果が正しいか監視するための監視データを算出する。これにより、各ロジックが正常か否かを判定する処理の信頼性を向上させることができる。【選択図】      図２
2004227346.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピュータと第２のコンピュータとを備え、所定の検出信号に基づいて制御対象に対する制御信号を出力する電子制御装置であって、
前記第１のコンピュータは、
前記所定の検出信号に基づき前記制御信号を演算するためのロジック関数の異常チェックを行なうために、予め記憶されているダミーデータを用いて、前記ロジック関数によりダミー制御信号を演算するとともに、予め前記ダミーデータに対して記憶されているダミー制御信号の期待値との関係が正常であるか否かを判定する判定処理部と、
前記判定処理部の判定処理に用いられるダミー制御信号とその期待値とを前記第２のコンピュータに送信する送信部とを備え、
前記第２のコンピュータは、
前記ダミー制御信号とその期待値とを受信する受信部と、
前記受信部が受信したダミー制御信号とその期待値との対比判定を行なうことにより、前記判定処理部における判定処理結果が正しいか否かを監視するための監視データの算出処理を行なう監視処理部とを備え、
さらに、前記判定処理部における判定結果及び前記監視処理部における監視データに基づいて、フェールセーフ処理を行なうフェールセーフ処理部とを備えることを特徴とする電子制御装置。
【請求項２】
前記ロジック関数は、前記所定の検出信号に基づき前記制御信号を演算するための第１のロジック関数と、当該第１のロジック関数よりも簡易に構成され、前記所定の検出信号に基づいて簡易制御信号を演算する第２のロジック関数からなり、
前記判定処理部は、さらに、前記第１のロジック関数により演算された制御信号と前記第２のロジック関数により演算された簡易制御信号との関係が正常であるか否かを判定することを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記判定処理部は、前記第２のロジック関数に前記ダミーデータを入力することにより、ダミー簡易制御信号を演算し、このダミー簡易制御信号とその期待値との関係が正常であるか否かを判定することを特徴とする請求項２に記載の電子制御装置。
【請求項４】
前記送信部は、前記ダミー制御信号とその期待値に加え、前記制御信号と簡易制御信号も前記第２のコンピュータに対して送信するものであり、
前記監視処理部は、前記制御信号と簡易制御信号との対比判定も行なって、前記判定処理部における判定処理結果が正しいか否かを監視するための監視データの算出処理を行なうことを特徴とする請求項２または請求項３に記載の電子制御装置。
【請求項５】
前記ダミーデータは、複数種類用意され、前記判定処理部は、前記ダミー制御信号とその期待値との関係を正常と判定した場合には、その複数種類用意されたダミーデータを変更しつつ繰り返し判定処理を行なうとともに、前回の判定処理において前記ダミー制御信号とその期待値との関係を異常と判定した場合には、前回の判定処理におけるダミーデータと同じダミーデータを用いて前記ダミー制御信号を演算し、当該ダミー制御信号とその期待値との関係が正常であるか否か再度判定することを特徴とする請求項１乃至請求項４のいずれかに記載の電子制御装置。
【請求項６】
前記判定処理部による前記ダミー制御信号とその期待値との関係が正常か否かの判定において、その関係が異常との判定が所定回数なされた場合、もしくは、前記監視処理部において、前記判定処理部における判定処理においてダミー制御信号とその期待値との関係が異常と判断されるべきとの監視データの算出が前記所定回数なされた場合に、前記判定処理の異常状態が確定され、前記フェールセーフ処理部は、その異常状態が確定される前後で、異なるフェールセーフ処理を実行することを特徴とする請求項１乃至請求項５のいずれかに記載の電子制御装置。
【請求項７】
前記フェールセーフ処理は、前記異常状態の確定前は、前記制御信号をそのまま前記制御対象に出力することを許可し、前記異常状態の確定後は、前記制御信号による前記制御対象の制御を禁止することを特徴とする請求項６に記載の電子制御装置。
【請求項８】
前記判定処理部において前記制御信号と前記簡易制御信号との関係が正常ではないと判定された場合、もしくは、前記監視処理部において、前記判定処理部における判定処理において制御信号と簡易制御信号との関係が異常と判断されるべきとの監視データの算出がなされた場合に、前記判定処理部において前記ダミー簡易制御信号とその期待値との関係が正常であると判定され、かつ、前記監視処理部において、前記判定処理部における判定処理において前記ダミー簡易制御信号とその期待値との関係が正常と判断されるべきとの監視データの算出がなされた場合には、前記フェールセーフ処理部は、前記簡易制御信号を用いて前記制御対象を制御するフェールセーフ処理を実行することを特徴とする請求項２乃至請求項７のいずれかに記載の電子制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２つのコンピュータを備える電子制御装置において、一方のコンピュータが正常に作動しているか否かを他方のコンピュータによって監視する電子制御装置に関する。
【０００２】
【従来の技術】
従来、２つのコンピュータを備える電子制御装置において、一方のコンピュータが正常に作動しているか否かを他方のコンピュータによって監視するものが知られている。例えば、特許文献１に記載された電子制御装置は、車両の内燃機関のスロットル弁を制御するものであって、メインＣＰＵとサブＣＰＵとを備えて、メインＣＰＵの作動をサブＣＰＵによって監視する。具体的には、メインＣＰＵ及びサブＣＰＵにおいて、それぞれ同一の内燃機関の冷却水温、アクセル開度、及び変速機のギア位置を入力するとともに、それぞれ同一の演算式を用いてスロットル開度を算出する。そして、サブＣＰＵは、メインＣＰＵで演算されたメインＣＰＵスロットル開度を受信し、サブＣＰＵにて算出されたサブＣＰＵスロットル開度と一致するか否かを判定する。
【０００３】
さらに、このようなメインＣＰＵの監視処理が適切になされているか否かを判定するために、サブＣＰＵは、監視処理ロジックの判定処理を実施する。この判定処理においては、内燃機関の冷却水温、アクセル開度、及びギア位置に関するダミーデータを用いて、上述した監視処理のためのサブルーチンを実行する。そのサブルーチンの実行により算出されたスロットル開度と、上述したダミーデータに対応して予め用意されているスロットル開度の期待値とを比較する。このとき、ダミーデータに基づいて算出されたスロットル開度と、予め用意されている期待値とが一致すれば、監視処理ロジックは正常に機能していると判定される。
【０００４】
【特許文献１】特開平１０−８３３２１号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した従来技術によれば、監視処理ロジックが正常に機能しているか否かをサブＣＰＵでしか判定していないため、サブＣＰＵにおける判定命令（比較命令等）が異常である場合には、正確な判定が行なえない可能性がある。従って、サブＣＰＵによるメインＣＰＵの作動の監視の信頼性が十分に確保されていないとの問題があった。
【０００６】
本発明は、かかる従来の問題点を鑑みてなされたもので、２つのコンピュータを備える電子制御装置において、一方のコンピュータにおける所定のロジック関数が正常に機能しているか判定する処理について、他方のコンピュータによって監視することが可能な電子制御装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記の目的を達成するために、請求項１に記載の電子制御装置は、第１のコンピュータと第２のコンピュータとを備え、所定の検出信号に基づいて制御対象に対する制御信号を出力する電子制御装置であって、
第１のコンピュータは、
所定の検出信号に基づき制御信号を演算するためのロジック関数の異常チェックを行なうために、予め記憶されているダミーデータを用いて、ロジック関数によりダミー制御信号を演算するとともに、予めダミーデータに対して記憶されているダミー制御信号の期待値との関係が正常であるか否かを判定する判定処理部と、
判定処理部の判定処理に用いられるダミー制御信号とその期待値とを前記第２のコンピュータに送信する送信部とを備え、
第２のコンピュータは、
ダミー制御信号とその期待値とを受信する受信部と、
受信部が受信したダミー制御信号とその期待値との対比判定を行なうことにより、判定処理部における判定処理結果が正しいか監視するための監視データの算出処理を行なう監視処理部とを備え、
さらに、判定処理部における判定結果及び監視処理部における監視データに基づいて、フェールセーフ処理を行なうフェールセーフ処理部とを備えることを特徴とする。
【０００８】
このように、第１のコンピュータにおいてロジック関数の異常チェックを行なうための判定処理に用いたダミー制御信号とその期待値とを第２のコンピュータに送信する。そして、第２のコンピュータの監視処理部は、ダミー制御信号とその期待値を対比判定することにより、第１のコンピュータの判定処理部における判定処理結果が正しいか監視するための監視データの算出処理を行なう。従って、第２のコンピュータの監視処理部が算出した監視データに基づいて、第１のコンピュータにおける判定処理の信頼性を向上することができる。
【０００９】
請求項２に記載したように、ロジック関数は、所定の検出信号に基づき制御信号を演算するための第１のロジック関数と、当該第１のロジック関数よりも簡易に構成され、所定の検出信号に基づいて簡易制御信号を演算する第２のロジック関数からなり、
判定処理部は、さらに、第１のロジック関数により演算された制御信号と第２のロジック関数により演算された簡易制御信号との関係が正常であるか否かを判定することが好ましい。
【００１０】
このように、第１のロジック関数により演算された制御信号が正しいか否かを判定する基準となる信号を得るために、第１のロジック関数と全く同じ演算を行なうのではなく、その第１のロジック関数よりも簡易に構成された第２のロジック関数を用いることにより、演算負荷を低減することができる。なお、このような簡易的な第２のロジック関数を用いて演算された簡易制御信号は、必ずしも第１のロジック関数によって演算された制御信号と一致するわけではないが、例えば、簡易制御信号が制御信号よりも大きくなるように、あるいは両者の差が所定値以内に収まるように第２のロジック関数を構成することにより、簡易制御信号と制御信号との大小関係や差の大きさから制御信号の正常・異常は判定することができる。
【００１１】
上述のように、ロジック関数が第１のロジック関数と第２のロジック関数とから構成される場合、請求項３に記載したように、判定処理部は、第２のロジック関数にダミーデータを入力することにより、ダミー簡易制御信号を演算し、このダミー簡易制御信号とその期待値との関係が正常であるか否かを判定することが好ましい。
【００１２】
これにより、制御信号の正常・異常を判定するための基準となる簡易制御信号を算出する第２のロジック関数が正しいか否かを判定することができるので、結果として、制御信号の正常・異常の判定も正しく行なわれているか否かを確認することができる。さらに、簡易的に構成された第２のロジック関数によりダミー簡易制御信号を算出することにより、ダミー制御信号を算出するための演算負荷を軽減することができる。
【００１３】
請求項４に記載したように、送信部は、ダミー制御信号とその期待値に加え、制御信号と簡易制御信号も第２のコンピュータに対して送信するものであり、
診断処理部は、制御信号と簡易制御信号との対比判定も行なって、判定処理部における判定処理が正常に機能しているかを診断することが好ましい。このようにすれば、判定処理部における判定処理の信頼性をさらに向上することができる。
【００１４】
請求項５に記載したように、ダミーデータは、複数種類用意され、判定処理部は、ダミー制御信号とその期待値との関係を正常と判定した場合には、その複数種類用意されたダミーデータを変更しつつ繰り返し判定処理を行なうとともに、前回の判定処理においてダミー制御信号とその期待値との関係を異常と判定した場合には、前回の判定処理におけるダミーデータと同じダミーデータを用いてダミー制御信号を演算し、当該ダミー制御信号とその期待値との関係が正常であるか否か再度判定することが好ましい。
【００１５】
コンピュータは、上述したロジック関数によって制御信号を算出する場合等に、特定のパターンのデータに対してのみ、異常な作動を起こす場合がある。この場合、演算に用いるデータパターンが変わってしまうと、その異常作動が発生せず、あたかも正常に機能していると判定されてしまう。そのため、このような特定のパターンのデータに対してのみ異常な作動を生じる場合でも、確実にその異常状態を判定できるようにするために、異常が生じた場合には、再度同じダミーデータを用いてダミー制御信号を演算することが好ましい。
【００１６】
なお、第１のコンピュータもしくは第２のコンピュータにおいて、ダミー制御信号とその期待値とを対比して、その関係が正常ではないと１度判定されただけで、例えば制御を停止する等のフェールセール処理を行なうことは好ましくない。何故ならば、１度のみの異常判定は、例えば単なるデータのフェッチミス等で生じる場合もあり、第１のコンピュータに異常が生じているとは断言できないためである。そのため、上記したように、同じダミーデータを用いて、複数回ダミー制御信号とその期待値との関係が正常であるかを判定するのである。
【００１７】
請求項６に記載したように、判定処理部によるダミー制御信号とその期待値との関係が正常か否かの判定において、その関係が異常との判定が所定回数なされた場合、もしくは、監視処理部において、判定処理部における判定処理においてダミー制御信号とその期待値との関係が異常と判断されるべきとの監視データの算出が所定回数なされた場合に、判定処理の異常状態が確定され、フェールセーフ処理部は、その異常状態が確定される前後で、異なるフェールセーフ処理を実行することが好ましい。このように異常状態が確定する前後で異なるフェールセーフ処理を実行することにより、例えば異常状態が確定するまでは、できる限り継続的に制御対象を制御することができる。そして、異常状態が確定された後は、適切な制御を行ない得ない可能性が高いので、例えば制御信号に基づく制御を禁止する等のフェールセーフ処理を行なう。
すなわち、そのフェールセーフ処理の具体例としては、請求項７に記載したように、異常状態の確定前は、制御信号をそのまま制御対象に出力することを許可し、異常状態の確定後は、制御信号による制御対象の制御を禁止するようにしても良い。
【００１８】
また、請求項８に記載したように、判定処理部において制御信号と簡易制御信号との関係が正常ではないと判定された場合、もしくは、監視処理部において、判定処理部における判定処理において制御信号と簡易制御信号との関係が異常と判断されるべきとの監視データの算出がなされた場合に、判定処理部においてダミー簡易制御信号とその期待値との関係が正常であると判定され、かつ、監視処理部において、判定処理部における判定処理においてダミー簡易制御信号とその期待値との関係が正常と判断されるべとの監視データの算出がなされた場合には、フェールセーフ処理部は、簡易制御信号を用いて制御対象を制御するフェールセーフ処理を実行しても良い。
【００１９】
上述したケースでは、制御信号よりも簡易制御信号が正しい可能性が高いので、この簡易制御信号を用いた方が、制御信号を用いた場合よりも適切な制御を行ない得るためである。
【００２０】
【発明の実施の形態】
以下、本発明による電子制御装置の実施の形態について、図面に基づいて説明する。図１は、本実施形態による電子制御装置の全体の構成を示すブロック図である。なお、本実施形態による電子制御装置は、車両に搭載された内燃機関を制御するエンジン制御装置に適用されるものである。このエンジン制御装置は、内燃機関の点火時期や燃料噴射量、内燃機関の吸気通路に設けられたスロットル弁６を制御するものであるが、以下の説明では、スロットル弁６の制御に関する部分について説明する。
【００２１】
図１に示すように、本実施例のエンジン制御装置（以下単に、制御装置という）２は、アクセルペダルの開度（以下、ペダル開度という）を検出するアクセル開度センサ１０からの信号，内燃機関の冷却水温を検出する水温センサ１２からの信号、内燃機関の吸気通路を流れる吸気空気量を検出するエアフロセンサ１４からの信号、車両の走行速度を検出する車速センサ１６からの信号、及びスロットル弁６を駆動する駆動モータ８の駆動量から、スロットル弁６の実際の開度を検出する開度センサ１８からの信号等を入力し、それら各信号をデジタル処理可能な信号に夫々変換して出力する入力回路２０を備えている。
【００２２】
さらに、制御装置２は、スロットル弁６の開度を制御する制御信号であるスロットル目標開度を算出するためのロジック及びそのロジックが正常に機能しているかを判定するための判定処理に関するプログラムが予め内蔵されたＲＯＭ２２と、ＲＯＭ２２に内蔵されたプログラムに従って、スロットル弁６の目標開度の算出やその正常・異常の判定を行なうための様々な制御処理を実行するメインＣＰＵ２６と、メインＣＰＵ２６の処理結果を一時記憶するためのＲＡＭ２４とを備えている。
【００２３】
このメインＣＰＵ２６はウオッチドックタイマー（ＷＤＴ）２８と接続されている。ＷＤＴ２８は、メインＣＰＵ２６からウォッチドックパルスＷ／Ｄが定期的に出力されているか否かを監視し、ウォッチドックパルスＷ／Ｄの出力が停止すると、メインＣＰＵ２６にリセット信号ＲＳＴを出力する。
【００２４】
また更に、制御装置２は、メインＣＰＵ２６の判定処理が正常であるか否かを監視するための監視データを算出する監視処理及びメインＣＰＵ２６から送信されるスロットル目標開度に基づいて、スロットル弁６の開度を制御するための制御処理に関するプログラムが予め内蔵されたＲＯＭ３０と、ＲＯＭ３０に内蔵されたプログラムに従って、メインＣＰＵ２６の判定処理の監視及びスロットル弁６の開度制御を実行するサブＣＰＵ３４と、サブＣＰＵ３４の処理結果を一時記憶するためのＲＡＭ３２とを備えている。
【００２５】
そして、本実施形態の制御装置２においては、メインＣＰＵ２６が、後述する図２の処理を実行することにより、スロットル目標開度を算出するロジックが正常に機能しているか否かを判定するとともに、正常に機能していると判定した場合には、入力回路１６からの上記各信号に基づいて算出したスロットル弁６の目標制御開度（以下、スロットル目標開度という）をサブＣＰＵ３４に送信する。サブＣＰＵ３４は、そのスロットル目標開度に応じた駆動指令を出力回路３６に出力する。すると、出力回路３６によってスロットル駆動モータ８が作動され、スロットル弁６の開度がスロットル目標開度に一致するように調節される。
【００２６】
また、本実施形態の制御装置２においては、入力回路２０からメインＣＰＵ２６に入力される上記各信号が、サブＣＰＵ３４にも入力されている。更に、メインＣＰＵ２６とサブＣＰＵ３４とは、シリアル通信ライン３８によって、通信可能に接続されている。
【００２７】
そして、サブＣＰＵ３４は、メインＣＰＵ２６からウォッチドックパルスＷ／Ｄが定期的に出力されているか否かを監視して、ウォッチドックパルスＷ／Ｄの出力が停止するとメインＣＰＵ２６にリセット信号ＲＳＴを出力する、通常のウォッチドックパルスによる監視を行なう。さらに、サブＣＰＵ３４は、後述する図７の監視処理を実行することにより、メインＣＰＵ２６の判定処理が正常に動作しているか否かを監視する。
【００２８】
次に、メインＣＰＵ２６とサブＣＰＵ３４とが夫々実行する処理について説明する。図２は、メインＣＰＵ２６が実行する処理（メインＣＰＵルーチン）を表すフローチャートである。尚、このメインＣＰＵルーチンは、車両のイグニッションスイッチ（図示省略）がオンされると実行が開始されるとともに、所定時間毎に繰り返し実行される。
【００２９】
まず、ステップＳ１００において、スロットル弁６の目標開度を算出するためのスロットル目標開度算出ロジックをコールし、各センサの検出信号に基づいてスロットル目標開度を算出する。この算出結果は、一時的にＲＡＭ２４に保存される。
【００３０】
次に、ステップＳ１１０において、スロットル目標開度算出ロジックが正常に機能しているかを判定するための判定処理（チェック処理）を行なう。このチェック処理の詳細を図３のフローチャートに示す。
【００３１】
まず、図３のステップＳ１１１では、ステップＳ１００においてスロットル目標開度を算出するために用いられた各センサの検出信号の入力データをＲＡＭ２４にセットする。なお、入力データを一旦ＲＡＭ２４に設定する理由は、スロットル目標推定開度算出ロジックが、本フローチャートによる処理、及び後述する図４に示すフローチャートによる処理にてコールされるため、入力値及び出力値の切り替え易さの向上及び出力値の誤使用防止を図るため、一旦ＲＡＭ２４に入力値及び出力値を保存するようにしたためである。
【００３２】
次にステップＳ１１２では、スロットル目標推定開度算出ロジックがコールされ、ステップＳ１１１にてＲＡＭ２４にセットされた入力データに基づいて、目標推定開度を算出する。この算出結果は、ＲＡＭ２４に一旦保存される。
【００３３】
ここで、スロットル目標開度算出ロジックとスロットル目標推定開度算出ロジックとの相違について説明する。
【００３４】
スロットル目標開度算出ロジックは、実際にスロットル弁６の開度を制御するために用いられるスロットル目標開度を算出するものである。このため、アクセルセンサ１０によって検出されるアクセルペダルの踏み込み量から要求されるスロットル開度を基本とし、各種の補正をきめ細かく行なった上で、最終的なスロットル目標開度を算出する。
【００３５】
例えば、内燃機関の始動直後においては、公知のように、内燃機関の冷却水温、触媒の暖機状態、車両の減速状態、アイドルアップ状態等に基づいて、各項目ごとに始動時のスロットル開度補正量がそれぞれ算出される。そして、上述したアクセルペダル要求スロットル開度に対して各スロットル開度補正量が増減されることにより、スロットル目標開度が算出される。
【００３６】
また、スロットル目標開度算出ロジックにおいては、アクセルセンサ１０やスロットル開度センサ１８の検出信号に基づいて、アクセルペダルやスロットル弁６の全閉位置を学習する。そして、それらの学習全閉位置を基準として、アクセルセンサ１０やスロットル開度センサ１８の検出信号から、より正確にアクセルペダルの開度（踏み込み量）やスロットル弁６の開度を算出する。
【００３７】
このように、スロットル目標開度算出ロジックにおいては、内燃機関の状態を考慮したり、各センサの検出信号の誤差要因を低減するために、アクセルペダル要求スロットル開度に対して各種の補正がきめ細かく行なわれるのである。
【００３８】
一方、スロットル目標推定開度算出ロジックは、スロットル目標開度算出ロジックに比較して簡易的に構成される。これは、スロットル目標推定開度算出ロジックが、スロットル目標開度算出ロジックによって算出されたスロットル目標開度が正常であるか否かを判定するための基準としてのスロットル推定目標開度を算出するためのものだからである。なお、このような簡易的なスロットル目標推定開度算出ロジックを用いて算出されたスロットル目標推定開度は、必ずしもスロットル目標開度と一致するわけではないが、例えば、スロットル目標推定開度が制御信号よりも常に大きくなるように、あるいは両者の差が所定値以内に収まるようにスロットル目標推定開度算出ロジックを構成することにより、スロットル目標推定開度とスロットル目標開度との大小関係や差の大きさからスロットル目標開度の正常・異常を判定することができる。
【００３９】
スロットル目標推定開度算出ロジックをスロットル目標開度算出ロジックに比較して簡易的に構成するためには、例えば、スロットル目標開度算出ロジックにおけるいくつかの補正項を省略したり、アクセルペダル要求スロットル開度、各補正項による補正量、及び各学習値の算出において、可変値を固定値としたり、複数のマップを１つの代表的なマップで置き換える等により、その算出式を簡略化することにより達成できる。このように、スロットル目標推定開度算出ロジックを簡易的に構成することにより、スロットル目標開度算出ロジックによって算出されたスロットル目標開度の正常・異常を判定するための判定処理における演算負荷を軽減することができる。
【００４０】
ステップＳ１１３では、ステップＳ１００において算出されたスロットル目標開度とステップＳ１１２において算出されたスロットル目標推定開度とを比較し、両者の関係が正常であるか否か、すなわち、本実施形態の場合、スロットル目標開度がスロットル目標推定開度以下であるか否かを判定する。この判定において、スロットル目標開度とスロットル目標推定開度との関係が正常と判定された場合には、ステップＳ１１４において、スロットル目標開度算出ロジックは正常である旨の判定がなされる。一方、スロットル目標開度とスロットル目標推定開度との関係が異常と判定された場合には、ステップＳ１１５において、スロットル目標開度算出ロジックは異常である旨の判定がなされる。
【００４１】
次に、図２のフローチャートのステップＳ１２０において、スロットル目標推定開度算出ロジックは、スロットル目標推定開度を正しく算出しているか否かをチェックする判定処理（チェックルーチン）が行なわれる。すなわち、このチェックルーチンでは、所定のダミーデータに基づいてスロットル目標推定開度算出ロジックによりダミースロットル目標推定開度を算出するとともに、そのダミーデータに対応して予め用意されているスロットル目標推定開度の期待値とを比較する。このとき、ダミーデータに基づいて算出されたダミー目標推定開度と、予め用意されている期待値とが一致すれば、スロットル目標推定開度算出ロジックは、スロットル目標推定開度を正しく算出していると判定される。このチェックルーチンの詳細な内容を図４のフローチャートに示す。
【００４２】
図４において、ステップＳ１２１では、既にスロットル目標推定開度算出ロジックの異常判定がなされており、その異常判定回数が所定回数未満である仮異常状態であるか否かを判定する。そして、仮異常ではないと判定された場合、ステップＳ１２３に進み、図５に示すように、複数個用意され、かつ番号が付与されたダミーデータに関して、その番号を１つ更新したダミーデータをＲＡＭ２４にセットする。一方、ステップＳ１２１にて仮異常と判定された場合には、ステップＳ１２２に進んで、前回と同じダミーデータをＲＡＭ２４にセットする。
【００４３】
なお、このダミーデータは、図５に示すように、スロットル目標推定開度算出ロジックによりダミースロットル目標推定開度を算出するための水温ダミーデータ、アクセル開度ダミーデータ、車速ダミーデータ等の入力データと、その入力データから算出されるべきスロットル目標推定開度の期待値とからなる。
【００４４】
ここで、メインＣＰＵ２６が、上述したスロットル目標推定開度算出ロジックによってスロットル目標推定開度を算出する場合、特定のパターンのデータに対してのみ、異常な作動を起こす場合がある。この場合、スロットル目標推定開度の算出に用いるデータパターンが変わってしまうと、その異常作動が発生せず、あたかも正常にスロットル目標推定開度の算出が可能と判定されてしまう。そのため、本実施形態においては、このような特定のパターンのデータに対してのみ異常な作動を生じる場合でも、確実かつ迅速にその異常状態を判定できるようにするために、異常が生じた場合には、再度同じダミーデータを用いてダミースロットル目標推定開度を算出する。一方、スロットル目標推定開度算出ロジックが仮異常と判定されていない場合には、各種のパターンのデータに基づいて正しくスロットル目標推定開度が算出できるかどうかを確認するために、ダミーデータを更新するのである。
【００４５】
なお、ダミーデータに基づいて算出されたダミースロットル目標推定開度とその期待値とを対比して、その関係が正常ではないと１度判定されただけでは、スロットル目標推定開度算出ロジックに確実に異常が生じていると断定することはできない。何故ならば、１度のみの異常判定は、例えば単なるデータのフェッチミス等で生じる場合もあるためである。そのため、本実施形態では、後述するように、ダミースロットル目標推定開度とその期待値との関係が異常であると所定回数判定された場合に、スロットル目標推定開度算出ロジックの異常を確定する。そして、その異常が確定される前の仮異常状態においては、同じダミーデータを用いて、複数回ダミースロットル目標推定開度とその期待値との関係が正常であるかを判定する。
【００４６】
図４のステップＳ１２４では、スロットル目標推定開度算出ロジックをコールし、ステップＳ１２２もしくはＳ１２３にてＲＡＭ２４にセットされたダミーデータに基づいて、ダミースロットル目標推定開度を算出し、その算出結果を一旦ＲＡＭ２４に保存する。そして、ステップＳ１２５では、それぞれＲＡＭ２４にセットされているダミースロットル目標推定開度とその期待値とを比較する。この比較処理において、ダミースロットル目標推定開度とその期待値とが一致していると判定された場合には、ステップＳ１２６において、スロットル目標推定開度算出ロジックは正常である旨の判定がなされる。一方、ダミースロットル目標推定開度とその期待値との関係が異常と判定された場合には、ステップＳ１２７において、スロットル目標推定開度算出ロジックは異常である旨の判定がなされる。
【００４７】
このようにしてステップＳ１１０のスロットル目標開度算出ロジックのチェック及びステップＳ１２０のスロットル目標推定開度算出ロジックのチェックが終了すると、ステップＳ１３０において、サブＣＰＵ３４に対して監視要求の送信及び、その監視結果の受信を行なう。すなわち、本実施形態においては、メインＣＰＵ２６において、スロットル目標開度算出ロジック及びスロットル目標推定開度算出ロジックが正しく機能しているかをチェックするのみでなく、サブＣＰＵ３４において、メインＣＰＵ２６のチェック（判定処理）が正しく作動しているか監視するための監視データの算出を行なうようにした。これにより、メインＣＰＵにおけるチェック機能の信頼性を向上することができる。
【００４８】
図６にサブＣＰＵにおいて実行される処理（サブＣＰＵルーチン）のフローチャートを示す。まず、ステップＳ１３１では、メインＣＰＵ２６からの監視要求の受信処理が行なわれる。ここで、メインＣＰＵ２６の監視要求には、メインＣＰＵ２６におけるスロットル目標開度算出ロジック及びスロットル目標推定開度算出ロジックが正常に機能しているかを判定する際に用いられた、スロットル目標開度、スロットル目標推定開度、ダミースロットル目標推定開度、及び期待値が含まれている。サブＣＰＵ３４は、これらを一旦ＲＡＭ３２に保存する。
【００４９】
ステップＳ１３２では、スロットル目標開度とスロットル目標推定開度とが対比され、両者の関係が正しいか否かが判定される。この判定において、スロットル目標開度とスロットル目標推定開度との関係が正しい場合、ステップＳ１３３において、監視データとして、スロットル目標開度判定ロジックにおいて正常と判定されるべき旨の判定がなされる。一方、スロットル目標開度とスロットル目標推定開度との関係が異常である場合には、ステップＳ１３３において、監視データとして、スロットル目標開度判定ロジックにおいて異常と判定されるべき旨の判定がなされる。
【００５０】
ここで、スロットル目標開度とスロットル目標推定開度との関係が正常か否かの判定がメインＣＰＵ２６においてのみ行なわれる場合、それらの関係が異常にもかかわらず、メインＣＰＵ２６における判定命令（比較命令等）が異常であるために、両者の関係が正常であるとの誤った判定がなされる場合がある。そのため、本実施形態においては、メインＣＰＵ２６からスロットル目標開度とスロットル目標推定開度を受信し、サブＣＰＵ３４においてもそれらを対比判定する。これにより、メインＣＰＵ２６における判定命令等が異常でる場合にも、スロットル目標開度とスロットル目標推定開度との関係が異常である場合には、確実にその異常状態に対応した監視データが算出される。
【００５１】
ステップＳ１３５では、ダミースロットル目標推定開度と期待値とが対比され、両者の関係が正しいか否かが判定される。この判定において、ダミースロットル目標推定開度と期待値とが一致し、その関係が正常である場合、ステップＳ１３６において、監視データとして、スロットル目標推定開度判定ロジックにおいて正常と判定されるべき旨の判定がなされる。一方、ダミースロットル目標推定開度と期待値との関係が異常である場合には、ステップＳ１３７において、監視データとして、スロットル目標推定開度判定ロジックにおいて異常と判定されるべき旨の判定がなされる。
【００５２】
そして、ステップＳ１３８では、メインＣＰＵ３４に監視結果（監視データ）を送信する。この監視結果は、スロットル目標開度判定ロジックについて正常もしくは異常と判断すべき旨の判定結果、及びスロットル目標推定開度判定ロジックについて正常もしくは異常と判断すべき旨の判定結果からなる。
【００５３】
図２のフローチャートのステップＳ１３０において、サブＣＰＵ３４からの監視結果を受信すると、ステップＳ１４０において、スロットル目標開度算出ロジックにより正しくスロットル目標開度が算出されたとメインＣＰＵ２６にて判定され、メインＣＰＵ２６の判定処理にて正常と判断すべき旨の監視結果がサブＣＰＵ３６にて算出されたか否かを判定する。具体的には、スロットル目標開度が正しいか否かはメインＣＰＵ２６において、図３のフローチャートステップＳ１１４、Ｓ１１５にて判定され、またサブＣＰＵ３６の監視結果は図６のフローチャートステップＳ１３３，Ｓ１３４にて算出されているので、これらの判定結果及び監視結果に基づく判定が行なわれる。このステップＳ１４０の判定において、スロットル目標開度に関するメインＣＰＵ２６の判定結果及びサブＣＰＵ３４の監視結果がともにＯＫであれば、ステップＳ１９０にて、通常の制御モードにより、スロットル弁６の制御が行なわれる。一方、メインＣＰＵ２６の判定結果とサブＣＰＵ３４の監視結果の少なくと一方が、ＮＧである場合には、ステップＳ１５０にてスロットル目標推定開度算出ロジックのチェック判定処理が行なわれる。
【００５４】
このチェック判定処理の詳細な内容を図７のフローチャートに示す。図７に示すように、まずステップ１５１では、スロットル目標推定開度算出ロジックにより正しくスロットル目標推定開度が算出されたとメインＣＰＵ２４にて判定され、かつ、メインＣＰＵ２６の判定処理にて正常と判断すべき旨の監視結果がサブＣＰＵ３６にて算出されたか否かを判定する。具体的には、スロットル目標推定開度が正しいか否かはメインＣＰＵ２６において、図４のフローチャートステップＳ１２６、Ｓ１２７にて判定され、また、サブＣＰＵ２６の監視結果は図６のフローチャートステップＳ１３６，Ｓ１３７にて算出されているので、これらの判定結果及び監視結果に基づく判定が行なわれる。このステップＳ１５１の判定において、メインＣＰＵ２６及びサブＣＰＵ３４ともＯＫであれば、ステップＳ１５５において、スロットル目標推定開度算出ロジックのチェックは正常になされたと判定される。
【００５５】
一方、メインＣＰＵ２６の判定結果とサブＣＰＵ３４の監視結果の少なくとも一方がＮＧである場合には、ステップＳ１５２にて、その判定結果もしくは監視結果が連続してＮＧとなった回数を判定する。この連続してＮＧとなった回数が所定回数未満である場合には、上述したように、データのフェッチミス等によって異常判定がなされる場合もあるため、ステップＳ１５３において、スロットル目標推定開度算出ロジックのチェックの結果は仮異常と判定される。そしてこの仮異常状態において、スロットル目標推定開度に関するメインＣＰＵ２６の判定結果とサブＣＰＵ３４の監視結果の少なくとも一方がＮＧとなる回数が所定回数に達すると、ステップＳ１５４において、異常が確定したと判定される。
【００５６】
このようにして、ステップＳ１５０のロジックチェック判定が行なわれると、その判定結果が、ステップＳ１６０にて判別される。このとき、異常が確定したと判定された場合には、ステップＳ１７０進み、スロットル弁６の制御モードは退避走行モードに設定される。この退避走行モードにおいては、スロットル弁６の開度を、例えば、内燃機関がアイドル回転数にて回転駆動される開度に固定することにより、スロットル弁６が異常な開度に制御されることを防止する。ステップＳ１６０において、仮異常状態であると判定された場合には、異常が確定しておらず、スロットル弁６を適切に制御可能な状態である可能性もあるため、スロットル弁６の制御モードは通常制御モードに設定される。
【００５７】
この通常制御モードにおいては、各検出信号に基づいて、メインＣＰＵ２６において上述したスロットル目標開度算出ロジックを用いてスロットル目標開度が算出される。そして、この算出したスロットル目標開度を通信によりサブＣＰＵ３４に送信し、サブＣＰＵ３４は、スロットル弁６の開度がこのスロットル目標開度に一致するように、出力回路３６を介して駆動モータ８を調節する。
【００５８】
また、ステップＳ１６０において、正常と判定された場合には、ステップＳ１８０にてスロットル弁６の制御モードを目標推定開度制御モードに設定する。この目標推定開度制御モードでは、通常は、スロットル目標開度の正常・異常判定のみに用いられるスロットル目標推定開度を用いて、スロットル弁６の制御を行なう。つまり、ステップＳ１４０におけるスロットル目標開度に関するメインＣＰＵ２６とサブＣＰＵ３４の少なくとも一方の判定結果がＮＧであるが、ステップＳ１６０におけるスロットル目標推定開度に関するメインＣＰＵ２６及びサブＣＰＵ３４のいずれの判定結果も正常である場合、スロットル目標推定開度は正しく算出されているが、スロットル目標開度に異常が生じているものと推測できる。このため、そのスロットル目標推定開度に基づいて制御を継続することにより、スロットル弁６の制御を適切に行ない得るとともに、退避走行モードに比較して走行性能の低下を抑制することができる。
【００５９】
このように、本実施形態による制御装置２によれば、メインＣＰＵ２６が判定処理の際に用いたデータ（スロットル目標開度とスロットル目標推定開度、ダミースロットル目標推定開度と期待値）をサブＣＰＵ３４に送信する。サブＣＰＵ３４は、ペアとなるデータを対比判定することにより、メインＣＰＵ２４における判定処理結果が正しいか監視するための監視データを算出する。このように、本実施形態による制御装置２は、判定処理が正常に機能しているか否かを一方のＣＰＵでのみ判定するのではなく、メインＣＰＵ２６及びサブＣＰＵ３４の両者において判定、監視しているため、各ロジックが正常に機能しているか判定する処理の信頼性を向上させることができる。
【００６０】
なお、本発明による電子制御装置は、上述した実施形態に制限されることなく、種々変形して実施することが可能である。
【００６１】
（１）例えば、上述した実施形態においては、メインＣＰＵ２６において、スロットル目標開度及びスロットル目標推定開度が正しいか否かを判定する判定処理を行い、サブＣＰＵ３４にてその判定処理が正しく行なわれたか監視するための監視データの算出を行なった。しかしながら、メインＣＰＵ２６の機能とサブＣＰＵ３４の機能との割り当ては、種々変形して実施することができる。例えば、サブＣＰＵ３４において、スロットル目標開度及びスロットル目標推定開度が正しいか否かを判定する判定処理を実施し、その判定処理の監視データをメインＣＰＵ２６にて算出するようにしても良い。また、スロットル目標開度の判定処理はメインＣＰＵ２６，スロットル目標推定開度の判定処理はサブＣＰＵ３４にて行い、それぞれの判定処理の監視データを相手側のＣＰＵにて算出するように構成しても良い。
【００６２】
さらに、上述した実施形態では、監視結果をサブＣＰＵ３４からメインＣＰＵ２６に送信し、メインＣＰＵ２６における判定結果及びサブＣＰＵ３４における監視結果に基づくスロットル弁６の制御モードの判別をメインＣＰＵ２６にて実施したが、これをサブＣＰＵ３４にて実施しても良い。
【００６３】
（２）また、上述した実施形態による電子制御装置２においては、スロットル目標開度算出ロジックによって算出されたスロットル目標開度が正しいか否かを、スロットル目標推定開度算出ロジックによって算出されたスロットル目標推定開度と比較することによって判定し、さらに、ダミーデータを用いて、スロットル目標推定開度算出ロジックによって正しいスロットル目標推定開度が算出されているか否かを判定していた。
【００６４】
しかしながら、スロットル目標開度算出ロジックにダミーデータを入力してダミースロットル目標開度を算出し、これを期待値と一致するか判定することにより、スロットル目標開度算出ロジックが正しいスロットル目標開度を算出しているか否かを判別しても良い。この場合には、スロットル目標推定開度算出ロジックが省略可能である。
【００６５】
また、上述した実施形態のように、スロットル目標推定開度算出ロジックをスロットル目標開度算出ロジックに比較して簡易的に構成するのではなく、同一の演算を行なうように構成しても良い。
【００６６】
（３）上述した実施形態においては、スロットル目標開度に関するメインＣＰＵ２６の判定結果及びサブＣＰＵ３４における監視結果がともにＯＫとなると（図２のフローチャートのステップＳ１４０）、ロジックチェック判定（同ステップＳ１５０）を行なうことなく、スロットル弁６の制御モードを通常制御モードに設定していた。しかしながら、スロットル目標開度に関するメインＣＰＵ２６の判定結果及びサブＣＰＵ３４における監視結果がともにＯＫとなり、かつロジックチェック判定の結果も正常となったときに通常制御モードに設定するようにしても良い。そして、この場合、スロットル目標開度に関するメインＣＰＵ２６の判定結果及びサブＣＰＵ３４における監視結果の少なくとも一方がＮＧとなるか、もしくはロジックチェック判定が仮異常となる状態が複数回連続して生じた場合、異常確定と判定する。
【００６７】
（４）上述した実施形態においては、ロジックチェック判定結果が仮異常である場合に、スロットル弁６の制御モードを通常制御モードに設定したが、異常な制御を確実に防止するとの観点から、仮異常及び異常確定ともにスロットル弁６の制御モードを退避走行モードに設定しても良い。但し、退避走行モードでは車両の走行性が著しく低下するので、例えば、仮異常の場合には、スロットル弁６の制御モードを、所定の上限開度の下でスロットル弁６の開度を制御する上限開度制限モードに設定しても良い。
【００６８】
（５）さらに、上述した実施形態においては、スロットル目標開度に関するメインＣＰＵ２６の判定結果及びサブＣＰＵ３４における監視結果の少なくとも一方がＮＧで、かつロジックチェック判定結果が正常となった場合、スロットル弁６の制御モードを目標推定開度制御モードに設定した。しかしながら、この場合にも、目標推定開度制御モードではなく、退避走行モードや上限開度制限モードにてスロットル弁６を制御しても良い。
【図面の簡単な説明】
【図１】本発明の実施形態による電子制御装置の全体の構成を示すブロック図である。
【図２】電子制御装置のメインＣＰＵによって実施される処理を示すフローチャートである。
【図３】スロットル目標開度算出ロジックのチェックルーチンを示すフローチャートである。
【図４】スロットル目標推定開度算出ロジックのチェックルーチンを示すフローチャートである。
【図５】スロットル目標推定開度算出ロジックのチェックルーチンにおいて使用されるダミーデータのデータ構造を示す説明図である。
【図６】電子制御装置のサブＣＰＵによって実施される処理を示すフローチャートである。
【図７】ロジックチェック判定ルーチンを示すフローチャートである。
【符号の説明】
２…電子制御装置（ＥＣＵ）
６…スロットル弁
８…駆動モータ
１０…アクセルセンサ
１２…水温センサ
１４…エアフロセンサ
１６…車速センサ
１８…スロットル開度センサ
２０…入力回路
２２…ＲＯＭ
２４…ＲＡＭ
２６…メインＣＰＵ
３０…ＲＯＭ
３２…ＲＡＭ
３４…サブＣＰＵ
３６…出力回路
３８…通信ライン
【図１】
2004227346.tif 000003
【図２】
2004227346.tif 000004
【図３】
2004227346.tif 000005
【図４】
2004227346.tif 000006
【図５】
2004227346.tif 000007
【図６】
2004227346.tif 000008
【図７】
2004227346.tif 000009