(57)【特許請求の範囲】
【請求項１】
車両に搭載された複数の駆動源（１０〜１２）と、前記車両の要求駆動トルクを演算して該要求駆動トルクに基づいて前記駆動源毎に指令トルクを演算するメイン制御回路（２４）と、前記駆動源を制御する制御回路を含む複数のサブ制御回路（２３，２５〜２９）とを備えた車両の制御装置において、
前記メイン制御回路と前記サブ制御回路は、複数の制御系統にグループ分けされ、同一の制御系統内で互いに監視して異常の有無を判定し、
前記メイン制御回路の異常と判定された場合に、前記メイン制御回路を含む制御系統とは別の制御系統の特定のサブ制御回路（２５，２７〜２９）が前記要求駆動トルクを演算して前記特定のサブ制御回路を含む制御系統の駆動源の指令トルクを演算し、
前記特定のサブ制御回路の異常と判定された場合に、前記メイン制御回路が前記要求駆動トルクを演算して前記メイン制御回路を含む制御系統の駆動源の指令トルクを演算することを特徴とする車両の制御装置。
【請求項２】
前記複数の制御系統の中に前記メイン制御回路と前記サブ制御回路のうち一つの制御回路（２７）のみを含む制御系統（以下「制御系統Ａ」と表記する）がある場合には、前記メイン制御回路と前記サブ制御回路のうち前記制御系統Ａとは別の制御系統（以下「制御系統Ｂ」と表記する）の二つの制御回路（２３〜２６）が前記制御系統Ａの制御回路を監視して異常の有無を判定することを特徴とする請求項１に記載の車両の制御装置。
【請求項３】
前記制御系統Ｂの二つの制御回路のうち少なくとも一方は、該二つの制御回路が両方とも前記制御系統Ａの制御回路の異常と判定した場合に、前記制御系統Ａの制御回路の異常を確定することを特徴とする請求項２に記載の車両の制御装置。
【請求項４】
前記制御系統Ｂの二つの制御回路は、同一のロジックで前記制御系統Ａの制御回路を監視して異常の有無を判定することを特徴とする請求項３に記載の車両の制御装置。
【請求項５】
前記制御系統Ａの制御回路は、前記制御系統Ｂの二つの制御回路を監視して異常の有無を判定する機能を有し、前記制御系統Ｂの二つの制御回路による判定結果が異なる場合に、前記制御系統Ａの制御回路による判定結果に基づいて前記制御系統Ｂの二つの制御回路のうち異常な制御回路を確定することを特徴とする請求項３又は４に記載の車両の制御装置。
【請求項６】
前記制御系統Ａの制御回路と前記制御系統Ｂの二つの制御回路のうち少なくとも一つは、前記制御系統Ｂの二つの制御回路のうち異常な制御回路を確定できず、前記制御系統Ａの制御回路と前記制御系統Ｂの二つの制御回路のうち複数の制御回路の異常の可能性がある場合には、前記駆動源を停止することを特徴とする請求項５に記載の車両の制御装置。
【請求項７】
前記制御系統Ａの制御回路は、前記制御系統Ｂの二つの制御回路を監視モニタによる簡易な監視方法で監視することを特徴とする請求項５又は６に記載の車両の制御装置。
【請求項８】
前記メイン制御回路（２４，３４）と前記サブ制御回路（２３，２５〜２９，３５）のうち少なくとも一つの制御回路は、二つのコアが互いの動作を監視して該二つのコアの演算結果が合致しないと信号を出力しないロックステップマイコンで構成され、該制御回路から信号が出力されない状態が所定時間以上継続したときに異常と判定されることを特徴とする請求項１乃至７のいずれかに記載の車両の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載された複数の駆動源を制御する車両の制御装置に関する発明である。
【背景技術】
【０００２】
近年、低燃費、低排気エミッションの社会的要請から車両の駆動源としてエンジンとモータジェネレータとを搭載したハイブリッド車が注目されている。
【０００３】
また、車両の駆動源を制御する駆動制御システムにおいては、例えば、特許文献１（特開２０１４−２２５１４２号公報）に記載されているように、監視対象（例えばエンジン）の制御量を演算する主制御部と監視用の制御量を演算する監視部との二つの制御回路（マイコン）の演算結果を用いて監視対象の故障診断を行うようにしたものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２２５１４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、車両の駆動制御システムでは、安全性を確保するために駆動源を制御する制御回路に対して二重系（二つの制御回路）で監視して異常の有無を判定することが考えられる。しかし、ハイブリッド車の駆動制御システムのように、複数の駆動源（エンジンやモータジェネレータ）を制御するために複数の制御回路を備えたシステムでは、駆動源を制御するための全ての制御回路に対して二重系で監視する構成にすると、制御回路間の通信量が増大して、いずれかの制御回路の通信負荷が過大になってしまう可能性がある。
【０００６】
そこで、本発明が解決しようとする課題は、車両の駆動源を制御するための制御回路の通信負荷の増大を抑制しながら、安全性を確保することができる車両の制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に係る発明は、車両に搭載された複数の駆動源（１０〜１２）と、車両の要求駆動トルクを演算して該要求駆動トルクに基づいて駆動源毎に指令トルクを演算するメイン制御回路（２４）と、駆動源を制御する制御回路を含む複数のサブ制御回路（２３，２５〜２９）とを備えた車両の制御装置において、メイン制御回路とサブ制御回路は、複数の制御系統にグループ分けされ、同一の制御系統内で互いに監視して異常の有無を判定し、メイン制御回路の異常と判定された場合に、メイン制御回路を含む制御系統とは別の制御系統の特定のサブ制御回路（２５，２７〜２９）が要求駆動トルクを演算して特定のサブ制御回路を含む制御系統の駆動源の指令トルクを演算し、特定のサブ制御回路の異常と判定された場合に、メイン制御回路が要求駆動トルクを演算してメイン制御回路を含む制御系統の駆動源の指令トルクを演算するようにしたものである。
【０００８】
この構成では、一方の制御系統の制御回路に異常が生じた場合に、他方の制御系統の制御回路で駆動源を制御して車両を退避走行させることができる。この際、一方の制御系統の制御回路が異常でも、他方の制御系統の制御回路で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。また、駆動源を制御するための全ての制御回路に対して二重系で監視する構成に比べて、制御回路の通信負荷の増大を抑制することができる。
【０００９】
また、請求項８に係る発明は、車両に搭載された複数の駆動源（１０〜１２）と、車両の要求駆動トルクを演算して該要求駆動トルクに基づいて駆動源毎に指令トルクを演算する一つのメイン制御回路（３４）と、駆動源を制御可能な一つのサブ制御回路（３５）とを備えた車両の制御装置において、メイン制御回路とサブ制御回路が互いに監視して異常の有無を判定すると共に、メイン制御回路及びサブ制御回路とは別に設けられた監視制御回路（３６）がメイン制御回路とサブ制御回路を監視して異常の有無を判定し、メイン制御回路とサブ制御回路のうち一方の制御回路の異常と判定された場合に、他方の制御回路が車両の要求駆動トルクを演算して駆動源の指令トルクを演算するようにしたものである。
【００１０】
この構成では、一方の制御回路に異常が生じた場合に、他方の制御回路で駆動源を制御して車両を退避走行させることができる。この際、監視制御回路が他方の制御回路を監視して異常の有無を判定することができるため、一方の制御回路が異常でも、安全性を確保しながら車両を退避走行させることができる。また、メイン制御回路とサブ制御回路は、互いに監視するだけであるため、駆動源を制御するためのメイン制御回路やサブ制御回路の通信負荷の増大を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は本発明の実施例１におけるハイブリッド車の駆動制御システムの概略構成を示す図である。
【図２】図２はコントローラの監視構成の簡略表記を説明する図である。
【図３】図３は実施例１のコントローラの監視構成を示す図である。
【図４】図４は実施例１の異常時制御ルーチンの処理の流れを示すフローチャート（その１）である。
【図５】図５は実施例１の異常時制御ルーチンの処理の流れを示すフローチャート（その２）である。
【図６】図６は実施例２のハイブリッド車の駆動制御システムの概略構成を示す図である。
【図７】図７は実施例２のコントローラの監視構成（第１のパターン）を示す図である。
【図８】図８は実施例２のコントローラの監視構成（第２のパターン）を示す図である。
【図９】図９は実施例２のコントローラの監視構成（第３のパターン）を示す図である。
【図１０】図１０は実施例３のハイブリッド車の駆動制御システムの概略構成を示す図である。
【図１１】図１１は実施例３のコントローラの監視構成（第１のパターン）を示す図である。
【図１２】図１２は実施例３のコントローラの監視構成（第２のパターン）を示す図である。
【図１３】図１３は実施例４のコントローラの監視構成を示す図である。
【図１４】図１４は実施例５のコントローラの監視構成を示す図である。
【図１５】図１５は実施例６のコントローラの監視構成を示す図である。
【図１６】図１６は実施例７のコントローラの監視構成を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態を具体化した幾つかの実施例を説明する。
【実施例１】
【００１３】
本発明の実施例１を図１乃至図５に基づいて説明する。
まず、図１に基づいてハイブリッド車の駆動制御システムの概略構成を説明する。
車両の駆動源（動力源）として内燃機関であるエンジン１０と第１のモータジェネレータ（以下「第１のＭＧ」と表記する）１１と第２のモータジェネレータ（以下「第２のＭＧ」と表記する）１２が搭載されている。エンジン１０の出力軸（クランク軸）と第１のＭＧ１１の回転軸と第２のＭＧ１２の回転軸とが動力分割機構１３（例えば遊星ギヤ機構）を介して連結されると共に、第２のＭＧ１２の回転軸が減速ギヤ機構１４等を介して車軸１５に連結され、この車軸１５に車輪１６が連結されている。
【００１４】
図示されていないが、第１のＭＧ１１を駆動する第１のインバータと第２のＭＧ１２を駆動する第２のインバータがそれぞれバッテリに接続され、各ＭＧ１１，１２がそれぞれインバータを介してバッテリと電力を授受するようになっている。
【００１５】
また、アクセルセンサ１７によってアクセル開度（アクセルペダルの操作量）が検出され、シフトセンサ１８によってシフトレバーの操作位置が検出される。更に、ブレーキセンサ１９によってブレーキ操作（又はブレーキ操作量）が検出され、車速センサ２０によって車速が検出される。また、バッテリセンサ２１によってバッテリ電圧が検出される。これらの車両の状態を検出する各種のセンサ１７〜２１の出力信号は、後述する第１のＨＶコントローラ（ハイブリッドコントローラ）２４と第２のＭＧコントローラ２７の両方に入力される。
【００１６】
第１のＨＶコントローラ２４は、車両全体を総合的に制御するコンピュータであり、上述した各種のセンサ１７〜２１の出力信号を読み込んで、車両の運転状態を検出する。この第１のＨＶコントローラ２４は、エンジン１０を制御するエンジンコントローラ２５と、第１のインバータを制御して第１のＭＧ１１を制御する第１のＭＧコントローラ２６と、第２のインバータを制御して第２のＭＧ１２を制御する第２のＭＧコントローラ２７との間で制御信号やデータ信号を送受信する。第１のＨＶコントローラ２４は、各コントローラ２５〜２７によって車両の運転状態に応じてエンジン１０と第１及び第２のＭＧ１１，１２等を制御する。また、第２のＨＶコントローラ２３は、第１のＨＶコントローラ２４等を監視する機能を有する。
【００１７】
システムの正常時に、第１のＨＶコントローラ２４は、各種のセンサ１７〜２１の出力信号等に基づいて車両の要求駆動トルクを演算して、この要求駆動トルクに基づいてエンジン指令トルク（エンジン１０の指令トルク）と第１ＭＧ指令トルク（第１のＭＧ１１の指令トルク）と第２ＭＧ指令トルク（第２のＭＧ１２の指令トルク）を演算する。そして、第１のＨＶコントローラ２４は、エンジン指令トルクをエンジンコントローラ２５へ出力し、第１ＭＧ指令トルクを第１のＭＧコントローラ２６へ出力し、第２ＭＧ指令トルクを第２のＭＧコントローラ２７へ出力する。
【００１８】
また、エンジンコントローラ２５は、エンジン指令トルクに基づいてエンジン１０を制御し、第１のＭＧコントローラ２６は、第１ＭＧ指令トルクに基づいて第１のＭＧ１１を制御し、第２のＭＧコントローラ２７は、第２ＭＧ指令トルクに基づいて第２のＭＧ１２を制御する。
【００１９】
本実施例１では、第１のＨＶコントローラ２４が特許請求の範囲でいうメイン制御回路に相当し、エンジンコントローラ２５と第１及び第２のＭＧコントローラ２６，２７と第２のＨＶコントローラ２３が特許請求の範囲でいうサブ制御回路に相当する。
【００２０】
ところで、もし、第１のＨＶコントローラ２４に異常（例えば演算異常）が生じた場合には、第１のＨＶコントローラ２４では、要求駆動トルクや指令トルクを正常に演算できなくなる可能性がある。
【００２１】
そこで、本実施例１では、第１のＨＶコントローラ２４に異常が生じた場合に、第２のＭＧコントローラ２７が、各種のセンサ１７〜２１の出力信号等に基づいて車両の要求駆動トルクを演算して、この要求駆動トルクに基づいて第２ＭＧ指令トルクを演算するようにしている。この第２のＭＧコントローラ２７が特許請求の範囲でいう特定のサブ制御回路に相当する。これにより、第１のＨＶコントローラ２４に異常が生じた場合でも、第２のＭＧ１２を制御して車両を走行させることが可能となる。
【００２２】
また、車両の駆動制御システムでは、安全性を確保するために駆動源を制御するコントローラ（制御回路）に対して二重系（二つのコントローラ）で監視して異常の有無を判定することが考えられる。しかし、本実施例１のように、複数の駆動源（エンジン１０やＭＧ１１，１２）を制御するために複数のコントローラ２３〜２７を備えたシステムでは、全てのコントローラ２３〜２７に対して二重系で監視する構成にすると、コントローラ間の通信量が増大して、いずれかのコントローラの通信負荷が過大になってしまう可能性がある。
【００２３】
そこで、本実施例１では、図３に示すように、第２のＨＶコントローラ２３と第１のＨＶコントローラ２４と第１のＭＧコントローラ２６と第２のＭＧコントローラ２７が、独立した二つの制御系統である第１の制御系統と第２の制御系統とにグループ分けされている。第１の制御系統は、第１のＨＶコントローラ２４を含む制御系統であり、第２のＨＶコントローラ２３と第１のＨＶコントローラ２４と第１のＭＧコントローラ２６からなる。一方、第２の制御系統は、第２のＭＧコントローラ２７のみを含む制御系統である。この場合、第２の制御系統が特許請求の範囲でいう制御系統Ａに相当し、第１の制御系統が特許請求の範囲でいう制御系統Ｂに相当する。
【００２４】
尚、後述するコントローラの監視構成（図３、図７乃至図９、図１１乃至図１６）において、図２（ａ）に示すように表記して「ＡコントローラがＢコントローラを相互監視方式で監視」と説明される部分は、図２（ｂ）に示す構成又は図２（ｃ）に示す構成を簡略化して表記したことを意味する。
【００２５】
図２（ｂ）の構成は、Ａコントローラの監視部がＢコントローラの制御部を監視してＢコントローラ（制御部）の異常の有無を判定する。また、Ａコントローラの監視モニタがＡコントローラの監視部を監視してＡコントローラ（監視部）の異常の有無を判定する。更に、Ｂコントローラの監視モニタがＡコントローラの監視モニタを監視してＡコントローラ（監視モニタ）の異常の有無を判定する。このようにして、ＡコントローラとＢコントローラが相互に監視して相互に異常の有無を判定する。
【００２６】
図２（ｃ）の構成は、Ｂコントローラの監視部がＢコントローラの制御部を監視してＢコントローラ（制御部）の異常の有無を判定し、Ｂコントローラの監視モニタがＢコントローラの監視部を監視してＢコントローラ（監視部）の異常の有無を判定する。また、Ａコントローラの監視モニタがＢコントローラの監視モニタを監視してＢコントローラ（監視モニタ）の異常の有無を判定する。更に、Ｂコントローラの監視モニタがＡコントローラの監視モニタを監視してＡコントローラ（監視モニタ）の異常の有無を判定する。このようにして、ＡコントローラとＢコントローラが相互に監視して相互に異常の有無を判定する。
【００２７】
ここで、監視部による監視は、例えば、監視対象（制御部）と同じ演算を実行し、監視部の演算結果と監視対象の演算結果とが不一致の場合に監視対象の異常と判定する。或は、監視対象がロックステップマイコン（二つのコアが互いの動作を監視して該二つのコアの演算結果が合致しないと信号を出力しないマイコン）で構成されている場合には、監視対象から信号が出力されない状態が所定時間以上継続したときに監視対象の異常と判定する。
【００２８】
一方、監視モニタによる監視は、監視部よりも簡易な監視であり、例えば、監視対象（監視部又は監視モニタ）のＲＯＭチェックやＲＡＭチェックを行って監視対象の異常の有無を判定する。或は、監視対象から周期的に出力されるウォッチドッグ信号が出力されない状態が所定時間以上継続したときに監視対象の異常と判定する。或は、演算質問を監視対象へ出力し、その演算質問に対する演算結果（回答）をチェックして監視対象の異常の有無を判定する。
【００２９】
本実施例１では、図３に示すように、第１の制御系統の監視は、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、第２のＨＶコントローラ２３が第１のＨＶコントローラ２４を相互監視方式で監視し、第１のＨＶコントローラ２４が第１のＭＧコントローラ２６を相互監視方式で監視する。
【００３０】
一方、第２の制御系統の監視は、第１の制御系統の二つのコントローラが第２の制御系統のコントローラを監視して異常の有無を判定する。具体的には、第２のＨＶコントローラ２３が第２のＭＧコントローラ２７を相互監視方式で監視し、第１のＨＶコントローラ２４が第２のＭＧコントローラ２７を相互監視方式で監視する。この際、第２のＨＶコントローラ２３と第１のＨＶコントローラ２４は、同一のロジック（監視方法）で第２のＭＧコントローラ２７を監視して異常の有無を判定する。また、第２のＭＧコントローラ２７は、監視モニタによる簡易な監視方法で第２のＨＶコントローラ２３と第１のＨＶコントローラ２４を監視する（図２参照）。
【００３１】
そして、第１の制御系統の第１のＨＶコントローラ２４と第２のＨＶコントローラ２３と第１のＭＧコントローラ２６のうちのいずれか一つの異常と判定された場合には、第２の制御系統で駆動源を制御して車両を走行させる。この場合、第２の制御系統の第２のＭＧコントローラ２７が、異常なコントローラを停止した後、各種のセンサ１７〜２１の出力信号等に基づいて要求駆動トルクを演算して、この要求駆動トルクに基づいて第２ＭＧ指令トルクを演算する。また、第２のＭＧコントローラ２７が第２ＭＧ指令トルクに基づいて第２のＭＧ１２を制御する。これにより、第２のＭＧ１２の動力で車両を駆動して走行させるＥＶ走行を行う。この際、第１の制御系統のコントローラ２３，２４，２６のうちのいずれか一つが異常でも、第１のＨＶコントローラ２４と第２のＨＶコントローラ２３のうちの少なくとも一方で第２のＭＧコントローラ２７を監視して異常の有無を判定することができる。
【００３２】
一方、第２の制御系統の第２のＭＧコントローラ２７の異常と判定された場合（第２のＭＧコントローラ２７の異常が確定した場合）には、第１の制御系統で駆動源を制御して車両を走行させる。この場合、第１の制御系統の第１のＨＶコントローラ２４が、第２のＭＧコントローラ２７を停止した後、各種のセンサ１７〜２１の出力信号等に基づいて要求駆動トルクを演算して、この要求駆動トルクに基づいてエンジン指令トルクと第１ＭＧ指令トルクを演算する。そして、第１のＨＶコントローラ２４が、エンジン指令トルクをエンジンコントローラ２５へ出力し、第１ＭＧ指令トルクを第１のＭＧコントローラ２６へ出力する。また、エンジンコントローラ２５がエンジン指令トルクに基づいてエンジン１０を制御し、第１のＭＧコントローラ２６が第１ＭＧ指令トルクに基づいて第１のＭＧ１１を制御する。これにより、エンジン１０及び／又は第１のＭＧ１１の動力（エンジン１０と第１のＭＧ１１の両方又はいずれか一方の動力）で車両を駆動して走行させる直行走行を行う。この際、第２の制御系統の第２のＭＧコントローラ２７が異常でも、第１の制御系統のコントローラ２３，２４，２６で互いに監視して異常の有無を判定することができる。
【００３３】
以上説明した本実施例１のコントローラ異常時の制御は、図４及び図５の異常時制御ルーチンに従って実行される。以下、このルーチンの処理内容を説明する。
図４及び図５の異常時制御ルーチンでは、まず、ステップ１０１で、第１のＨＶコントローラ２４が第２のＭＧコントローラ２７の異常を検出した（異常と判定した）か否かを判定する。このステップ１０１で、第１のＨＶコントローラ２４が第２のＭＧコントローラ２７の異常を検出していない（正常と判定した）と判定された場合には、ステップ１０２以降の処理を実行することなく、本ルーチンを終了する。
【００３４】
一方、上記ステップ１０１で、第１のＨＶコントローラ２４が第２のＭＧコントローラ２７の異常を検出したと判定された場合には、ステップ１０２に進み、第２のＨＶコントローラ２３が第１のＨＶコントローラ２４から第２のＭＧコントローラ２７の異常判定を受信する。この後、ステップ１０３に進み、第２のＨＶコントローラ２３が第２のＭＧコントローラ２７の異常を検出した（異常と判定した）か否かを判定する。
【００３５】
このステップ１０３で、第２のＨＶコントローラ２３が第２のＭＧコントローラ２７の異常を検出したと判定された場合、つまり、第１のＨＶコントローラ２４と第２のＨＶコントローラ２３が両方とも第２のＭＧコントローラ２７の異常と判定した場合には、第１のＨＶコントローラ２４又は第２のＨＶコントローラ２３が第２のＭＧコントローラ２７の異常を確定する。
【００３６】
この場合、ステップ１０４に進み、第１のＨＶコントローラ２４で第２のＭＧ１２を停止した後、ステップ１０５に進み、第１のＨＶコントローラ２４で第２のＭＧコントローラ２７を停止する。これにより、異常なコントローラ２７の信号を使用しないようにする。
【００３７】
この後、ステップ１０６に進み、第１のＨＶコントローラ２４で、各種のセンサ１７〜２１の出力信号等に基づいて要求駆動トルクを演算して、この要求駆動トルクに基づいてエンジン指令トルクと第１ＭＧ指令トルクを演算し、エンジン指令トルクをエンジンコントローラ２５へ出力し、第１ＭＧ指令トルクを第１のＭＧコントローラ２６へ出力する。
【００３８】
この後、ステップ１０７に進み、エンジンコントローラ２５でエンジン指令トルクに基づいてエンジン１０を制御し、第１のＭＧコントローラ２６で第１ＭＧ指令トルクに基づいて第１のＭＧ１１を制御する。これにより、エンジン１０及び／又は第１のＭＧ１１の動力で車両を駆動して走行させる直行走行を行う。この際、第１の制御系統のコントローラ２３，２４，２６で互いに監視して異常の有無を判定する。
【００３９】
一方、上記ステップ１０３で、第２のＨＶコントローラ２３が第２のＭＧコントローラ２７の異常を検出していない（正常と判定した）と判定された場合、つまり、第１のＨＶコントローラ２４が第２のＭＧコントローラ２７の異常と判定したが、第２のＨＶコントローラ２３が第２のＭＧコントローラ２７の正常と判定した場合には、ステップ１０８に進み、第２のＨＶコントローラ２３が第１のＨＶコントローラ２４の異常を検出した（異常と判定した）か否かを判定する。
【００４０】
このステップ１０８で、第２のＨＶコントローラ２３が第１のＨＶコントローラ２４の異常を検出したと判定された場合には、第１のＨＶコントローラ２４が異常で、第２のＭＧコントローラ２７が正常と判断できる。
【００４１】
この場合、ステップ１０９に進み、第２のＭＧコントローラ２７でエンジン１０及び第１のＭＧ１１を停止した後、ステップ１１０に進み、第２のＭＧコントローラ２７で第１のＨＶコントローラ２４を停止する。これにより、異常なコントローラ２４の信号を使用しないようにする。
【００４２】
この後、ステップ１１１に進み、第２のＭＧコントローラ２７で、各種のセンサ１７〜２１の出力信号等に基づいて要求駆動トルクを演算して、この要求駆動トルクに基づいて第２ＭＧ指令トルクを演算する。
【００４３】
この後、ステップ１１２に進み、第２のＭＧコントローラ２７で第２ＭＧ指令トルクに基づいて第２のＭＧ１２を制御する。これにより、第２のＭＧ１２の動力で車両を駆動して走行させるＥＶ走行を行う。この際、第２のＨＶコントローラ２３で第２のＭＧコントローラ２７を監視して異常の有無を判定する。
【００４４】
一方、上記ステップ１０８で、第２のＨＶコントローラ２３が第１のＨＶコントローラ２４の異常を検出していない（正常と判定した）と判定された場合には、第２のＭＧコントローラ２７による判定結果に基づいて第２のＨＶコントローラ２３と第１のＨＶコントローラ２４のうち異常なコントローラを確定する。
【００４５】
この場合、図５のステップ１１３に進み、第２のＭＧコントローラ２７が第１のＨＶコントローラ２４の異常を検出した（異常と判定した）か否かを判定する。このステップ１１３で、第２のＭＧコントローラ２７が第１のＨＶコントローラ２４の異常を検出したと判定された場合には、ステップ１１４に進み、第２のＭＧコントローラ２７が第２のＨＶコントローラ２３の異常を検出した（異常と判定した）か否かを判定する。
【００４６】
このステップ１１４で、第２のＭＧコントローラ２７が第２のＨＶコントローラ２３の異常を検出したと判定された場合、つまり、第２のＭＧコントローラ２７が第１のＨＶコントローラ２４の異常と判定すると共に第２のＨＶコントローラ２３の異常と判定した場合には、二重異常の可能性があると判断する。
【００４７】
この場合、ステップ１１５に進み、第２のＭＧコントローラ２７でエンジン１０と第１及び第２のＭＧ１１，１２を停止した後、ステップ１１６に進み、第２のＭＧコントローラ２７で第１のＨＶコントローラ２４及び第２のＨＶコントローラ２３を停止して、駆動制御システムを停止する。これにより、異常の可能性のあるコントローラ２３，２４の信号を使用しないようにする。
【００４８】
これに対して、上記ステップ１１４で、第２のＭＧコントローラ２７が第２のＨＶコントローラ２３の異常を検出していない（正常と判定した）と判定された場合、つまり、第２のＭＧコントローラ２７が、第１のＨＶコントローラ２４の異常と判定する共に第２のＨＶコントローラ２３の正常と判定した場合には、第１のＨＶコントローラ２４の異常を確定する。
【００４９】
この場合、ステップ１１７に進み、第２のＭＧコントローラ２７でエンジン１０及び第１のＭＧ１１を停止した後、ステップ１１８に進み、第２のＭＧコントローラ２７で第１のＨＶコントローラ２４を停止する。これにより、異常なコントローラ２４の信号を使用しないようにする。
【００５０】
この後、ステップ１１９に進み、第２のＭＧコントローラ２７で、各種のセンサ１７〜２１の出力信号等に基づいて要求駆動トルクを演算して、この要求駆動トルクに基づいて第２ＭＧ指令トルクを演算する。
【００５１】
この後、ステップ１２０に進み、第２のＭＧコントローラ２７で第２ＭＧ指令トルクに基づいて第２のＭＧ１２を制御する。これにより、第２のＭＧ１２の動力で車両を駆動して走行させるＥＶ走行を行う。この際、第２のＨＶコントローラ２３で第２のＭＧコントローラ２７を監視して異常の有無を判定する。
【００５２】
一方、上記ステップ１１３で、第２のＭＧコントローラ２７が第１のＨＶコントローラ２４の異常を検出していない（正常と判定した）と判定された場合には、ステップ１２１に進み、第２のＭＧコントローラ２７が第２のＨＶコントローラ２３の異常を検出した（異常と判定した）か否かを判定する。
【００５３】
このステップ１２１で、第２のＭＧコントローラ２７が第２のＨＶコントローラ２３の異常を検出したと判定された場合、つまり、第２のＭＧコントローラ２７が、第１のＨＶコントローラ２４の正常と判定する共に第２のＨＶコントローラ２３の異常と判定した場合には、第２のＨＶコントローラ２３の異常を確定する。
【００５４】
この場合、ステップ１２２に進み、第２のＭＧコントローラ２７でエンジン１０及び第１のＭＧ１１を停止した後、ステップ１２３に進み、第２のＭＧコントローラ２７で第２のＨＶコントローラ２３を停止する。これにより、異常なコントローラ２３の信号を使用しないようにする。
【００５５】
この後、ステップ１２４に進み、第２のＭＧコントローラ２７で、各種のセンサ１７〜２１の出力信号等に基づいて要求駆動トルクを演算して、この要求駆動トルクに基づいて第２ＭＧ指令トルクを演算する。
【００５６】
この後、ステップ１２５に進み、第２のＭＧコントローラ２７で第２ＭＧ指令トルクに基づいて第２のＭＧ１２を制御する。これにより、第２のＭＧ１２の動力で車両を駆動して走行させるＥＶ走行を行う。この際、第１のＨＶコントローラ２４で第２のＭＧコントローラ２７を監視して異常の有無を判定する。
【００５７】
これに対して、上記ステップ１２１で、第２のＭＧコントローラ２７が第２のＨＶコントローラ２３の異常を検出していない（正常と判定した）と判定された場合、つまり、第２のＭＧコントローラ２７が、第１のＨＶコントローラ２４の正常と判定する共に第２のＨＶコントローラ２３の正常と判定した場合には、多重異常の可能性があると判断する。
【００５８】
この場合、ステップ１２６に進み、第１のＨＶコントローラ２４と第２のＨＶコントローラ２３と第２のＭＧコントローラ２７でエンジン１０と第１及び第２のＭＧ１１，１２を停止して、駆動制御システムを停止する。これにより、異常の可能性のあるコントローラ２３，２４，２７の信号を使用しないようにする。
【００５９】
以上説明した本実施例１では、第１のＨＶコントローラ２４に異常が生じた場合に、第２のＭＧコントローラ２７が、各種のセンサ１７〜２１の出力信号等に基づいて車両の要求駆動トルクを演算して、この要求駆動トルクに基づいて第２ＭＧ指令トルクを演算するようにしている。このようにすれば、第１のＨＶコントローラ２４に異常が生じた場合には、第１のＨＶコントローラ２４に代わって、第２のＭＧコントローラ２７が要求駆動トルクを演算して第２ＭＧ指令トルクを演算することができ、その第２ＭＧ指令トルクに基づいて第２のＭＧコントローラ２７が第２のＭＧ１２を制御することができる。これにより、第１のＨＶコントローラ２４に異常が生じた場合でも、第２のＭＧ１２を制御して車両を走行させることができる。
【００６０】
また、本実施例１では、第２のＨＶコントローラ２３と第１のＨＶコントローラ２４と第１のＭＧコントローラ２６からなる第１の制御系統と、第２のＭＧコントローラ２７のみを含む第２の制御系統とにグループ分けしている。そして、第１の制御系統の監視は、同一の制御系統内のコントローラ２３，２４，２６で互いに監視して異常の有無を判定し、第２の制御系統の監視は、第１の制御系統の二つのコントローラ２３，２４が第２の制御系統のコントローラ２７を監視して異常の有無を判定するようにしている。これにより、一つのコントローラ２７のみを含む制御系統（本実施例１では第２の制御系統）がある場合でも、その制御系統のコントローラ２７を二重系で監視して異常の有無を判定することができる。また、駆動源を制御するための全てのコントローラ２３〜２７に対して二重系で監視する構成に比べて、コントローラ２３〜２７の通信負荷の増大を抑制することができる。
【００６１】
更に、本実施例１では、第１の制御系統の第１のＨＶコントローラ２４と第２のＨＶコントローラ２３と第１のＭＧコントローラ２６のうちのいずれか一つの異常と判定された場合には、第２の制御系統の第２のＭＧコントローラ２７が、要求駆動トルクを演算して第２ＭＧ指令トルクを演算し、この第２ＭＧ指令トルクに基づいて第２のＭＧ１２を制御するようにしている。これにより、第２の制御系統の第２のＭＧコントローラ２７で第２のＭＧ１２を制御して車両を退避走行させることができる。この際、第１の制御系統のコントローラ２３，２４，２６のうちのいずれか一つが異常でも、コントローラ２３，２４のうちの少なくとも一方で第２の制御系統のコントローラ２７を監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【００６２】
一方、第２の制御系統の第２のＭＧコントローラ２７に異常が生じた場合には、第１の制御系統の第１のＨＶコントローラ２４が要求駆動トルクを演算してエンジン指令トルクと第１ＭＧ指令トルクを演算し、エンジンコントローラ２５がエンジン指令トルクに基づいてエンジン１０を制御し、第１のＭＧコントローラ２６が第１ＭＧ指令トルクに基づいて第１のＭＧ１１を制御するようにしている。これにより、第１の制御系統のコントローラ２４〜２６でエンジン１０や第１のＭＧ１１を制御して車両を退避走行させることができる。この際、第２の制御系統のコントローラ２７が異常でも、第１の制御系統のコントローラ２３，２４，２６で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【００６３】
また、本実施例１では、第１のＨＶコントローラ２４と第２のＨＶコントローラ２３が両方とも第２のＭＧコントローラ２７の異常と判定した場合に、第２のＭＧコントローラ２７の異常を確定するようにしている。これにより、第２のＭＧコントローラ２７の異常を精度良く検出することができる。
【００６４】
また、本実施例１では、第２のＨＶコントローラ２３と第１のＨＶコントローラ２４は、同一のロジック（監視方法）で第２のＭＧコントローラ２７を監視して異常の有無を判定するようにしている。これにより、二つのコントローラ２３，２４間で、監視ロジックの違いによる判定結果の違いを無くすことができる。
【００６５】
また、本実施例１では、第２のＨＶコントローラ２３と第１のＨＶコントローラ２４による判定結果が異なる場合に、第２のＭＧコントローラ２７による判定結果に基づいて第２のＨＶコントローラ２３と第１のＨＶコントローラ２４のうち異常なコントローラを確定するようにしている。これにより、第２のＨＶコントローラ２３と第１のＨＶコントローラ２４による判定結果が異なる場合でも、二つのコントローラ２３，２４のうち異常なコントローラを確定することができる。
【００６６】
更に、本実施例１では、第２のＨＶコントローラ２３と第１のＨＶコントローラ２４のうち異常なコントローラを確定できず、複数のコントローラの異常（二重異常や多重異常）の可能性がある場合には、エンジン１０と第１及び第２のＭＧ１１，１２を停止するようにしている。これにより、異常なコントローラを確定できない場合の安全性を確保することができる。
【００６７】
また、本実施例１では、第２のＭＧコントローラ２７は、監視モニタによる簡易な監視方法で第２のＨＶコントローラ２３と第１のＨＶコントローラ２４を監視するようにしている。これにより、第２のＭＧコントローラ２７が二つのコントローラ２３，２４を監視する際の演算負荷を低減することができる。
【００６８】
また、本実施例１では、少なくとも一つのコントローラをロックステップマイコンで構成して、そのコントローラから信号が出力されない状態が所定時間以上継続したときに異常と判定するようにしても良い。このようにすれば、コントローラ間の通信量を減少させてコントローラの通信負荷を低減することができる。
【実施例２】
【００６９】
次に、図６乃至図９を用いて本発明の実施例２を説明する。但し、前記実施例１と実質的に同一部分には同一符号を付して説明を省略又は簡略化し、主として前記実施例１と異なる部分について説明する。
【００７０】
前記実施例１では、車両の駆動源としてエンジン１０と二つのＭＧ１１，１２が搭載されていたが、本実施例２では、図６に示すように、車両の駆動源としてエンジン１０と一つのＭＧ１２が搭載されている。エンジン１０の動力を車輪１６に伝達する動力伝達系に、ＭＧ１２の回転軸が動力伝達可能に連結されている。また、エンジン１０とＭＧ１２との間に、動力伝達を断続するための第１のクラッチＣ１が設けられ、ＭＧ１２と車軸１５との間に、動力伝達を断続するための第２のクラッチＣ２が設けられている。更に、第１のクラッチＣ１を制御する第１のＴ／Ｍコントローラ２８と、第２のクラッチＣ２を制御する第２のＴ／Ｍコントローラ２９が設けられている。但し、第１のＴ／Ｍコントローラ２８は、第２のクラッチＣ２を制御する機能も備えている。
【００７１】
ＨＶコントローラ（ハイブリッドコントローラ）２４は、エンジンコントローラ２５と、ＭＧコントローラ２７と、第１のＴ／Ｍコントローラ２８と、第２のＴ／Ｍコントローラ２９との間で制御信号やデータ信号を送受信し、各コントローラ２５，２７〜２９よってエンジン１０とＭＧ１２とクラッチＣ１，Ｃ２等を制御する。
【００７２】
システムの正常時に、ＨＶコントローラ２４（メイン制御回路）は、各種のセンサ１７〜２１（図１参照）の出力信号等に基づいて車両の要求駆動トルクを演算して、この要求駆動トルクに基づいてエンジン指令トルクとＭＧ指令トルクと第１及び第２クラッチ指令値を演算する。そして、ＨＶコントローラ２４は、エンジン指令トルクをエンジンコントローラ２５へ出力し、ＭＧ指令トルクをＭＧコントローラ２７へ出力し、第１クラッチ指令値を第１のＴ／Ｍコントローラ２８へ出力し、第２クラッチ指令値を第２のＴ／Ｍコントローラ２９へ出力する。
【００７３】
また、エンジンコントローラ２５（サブ制御回路）は、エンジン指令トルクに基づいてエンジン１０を制御し、ＭＧコントローラ２７（サブ制御回路）は、ＭＧ指令トルクに基づいてＭＧ１２を制御する。更に、第１のＴ／Ｍコントローラ２８（サブ制御回路）は、第１クラッチ指令値に基づいて第１のクラッチＣ１を制御し、第２のＴ／Ｍコントローラ２９（サブ制御回路）は、第２クラッチ指令値に基づいて第２のクラッチＣ２を制御する。
【００７４】
本実施例２では、コントローラ２４，２５，２７〜２９が、独立した二つの制御系統である第１の制御系統と第２の制御系統とにグループ分けされている。以下、グループ分けが異なる三つのパターン（第１〜第３のパターン）について説明する。
【００７５】
［第１のパターン］
図７に示すように、第１の制御系統は、ＨＶコントローラ２４とエンジンコントローラ２５と第１のＴ／Ｍコントローラ２８からなる。一方、第２の制御系統は、ＭＧコントローラ２７と第２のＴ／Ｍコントローラ２９からなる。
【００７６】
第１の制御系統の監視は、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４がエンジンコントローラ２５を相互監視方式で監視し、エンジンコントローラ２５が第１のＴ／Ｍコントローラ２８を相互監視方式で監視し、第１のＴ／Ｍコントローラ２８がＨＶコントローラ２４を相互監視方式で監視する。一方、第２の制御系統の監視も、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、ＭＧコントローラ２７が第２のＴ／Ｍコントローラ２９を相互監視方式で監視し、第２のＴ／Ｍコントローラ２９がＭＧコントローラ２７を相互監視方式で監視する。
【００７７】
そして、第１の制御系統のＨＶコントローラ２４とエンジンコントローラ２５と第１のＴ／Ｍコントローラ２８のうちのいずれか一つの異常と判定された場合には、第２の制御系統で駆動源を制御して車両を走行させる。この場合、第２の制御系統のＭＧコントローラ２７が、特定のサブ制御回路として機能して、異常なコントローラを停止した後、要求駆動トルクを演算してＭＧ指令トルクと第２クラッチ指令値を演算し、第２クラッチ指令値を第２のＴ／Ｍコントローラ２９へ出力する。或は、第２の制御系統の第２のＴ／Ｍコントローラ２９が、特定のサブ制御回路として機能して、異常なコントローラを停止した後、要求駆動トルクを演算してＭＧ指令トルクと第２クラッチ指令値を演算し、ＭＧ指令トルクをＭＧコントローラ２７へ出力するようにしても良い。
【００７８】
また、ＭＧコントローラ２７がＭＧ指令トルクに基づいてＭＧ１２を制御し、第２のＴ／Ｍコントローラ２９が第２クラッチ指令値に基づいて第２のクラッチＣ２を制御（係合）する。これにより、第２の制御系統のコントローラ２７，２９でＭＧ１２や第２のクラッチＣ２を制御して車両を退避走行させることができる。この際、第１の制御系統のコントローラ２４，２５，２８のうちのいずれか一つが異常でも、第２の制御系統のコントローラ２７，２９で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【００７９】
一方、第２の制御系統のＭＧコントローラ２７と第２のＴ／Ｍコントローラ２９のうちの一方の異常と判定された場合には、第１の制御系統で駆動源を制御して車両を走行させる。この場合、第１の制御系統のＨＶコントローラ２４が、異常なコントローラを停止した後、要求駆動トルクを演算してエンジン指令トルクと第１及び第２クラッチ指令値を演算する。そして、ＨＶコントローラ２４が、エンジン指令トルクをエンジンコントローラ２５へ出力し、第１及び第２クラッチ指令値を第１のＴ／Ｍコントローラ２８へ出力する。
【００８０】
また、エンジンコントローラ２５がエンジン指令トルクに基づいてエンジン１０を制御する。更に、第１のＴ／Ｍコントローラ２８が、第１クラッチ指令値に基づいて第１のクラッチＣ１を制御（係合）し、第２クラッチ指令値に基づいて第２のクラッチＣ２を制御（係合）する。これにより、第１の制御系統のコントローラ２４，２５，２８でエンジンや第１及び第２のクラッチＣ１，Ｃ２を制御して車両を退避走行させることができる。この際、第２の制御系統のコントローラ２７，２９のうちの一方が異常でも、第１の制御系統のコントローラ２４，２５，２８で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【００８１】
［第２のパターン］
図８に示すように、第１の制御系統は、ＨＶコントローラ２４とＭＧコントローラ２７と第２のＴ／Ｍコントローラ２９からなる。一方、第２の制御系統は、エンジンコントローラ２５と第１のＴ／Ｍコントローラ２８からなる。
【００８２】
第１の制御系統の監視は、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４がＭＧコントローラ２７を相互監視方式で監視し、ＭＧコントローラ２７が第２のＴ／Ｍコントローラ２９を相互監視方式で監視し、第２のＴ／Ｍコントローラ２９がＨＶコントローラ２４を相互監視方式で監視する。一方、第２の制御系統の監視も、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、エンジンコントローラ２５が第１のＴ／Ｍコントローラ２８を相互監視方式で監視し、第１のＴ／Ｍコントローラ２８がエンジンコントローラ２５を相互監視方式で監視する。
【００８３】
そして、第１の制御系統のＨＶコントローラ２４とＭＧコントローラ２７と第２のＴ／Ｍコントローラ２９のうちのいずれか一つの異常と判定された場合には、第２の制御系統で駆動源を制御して車両を走行させる。この場合、第２の制御系統のエンジンコントローラ２５が、特定のサブ制御回路として機能して、異常なコントローラを停止した後、要求駆動トルクを演算してエンジン指令トルクと第１及び第２クラッチ指令値を演算し、第１及び第２クラッチ指令値を第１のＴ／Ｍコントローラ２８へ出力する。或は、第２の制御系統の第１のＴ／Ｍコントローラ２８が、特定のサブ制御回路として機能して、異常なコントローラを停止した後、要求駆動トルクを演算してエンジン指令トルクと第１及び第２クラッチ指令値を演算し、エンジン指令トルクをエンジンコントローラ２５へ出力するようにしても良い。
【００８４】
また、エンジンコントローラ２５がエンジン指令トルクに基づいてエンジン１０を制御する。更に、第１のＴ／Ｍコントローラ２８が、第１クラッチ指令値に基づいて第１のクラッチＣ１を制御（係合）し、第２クラッチ指令値に基づいて第２のクラッチＣ２を制御（係合）する。これにより、第２の制御系統のコントローラ２５，２８でエンジンや第１及び第２のクラッチＣ１，Ｃ２を制御して車両を退避走行させることができる。この際、第１の制御系統のコントローラ２４，２７，２９のうちのいずれか一つが異常でも、第２の制御系統のコントローラ２５，２８で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【００８５】
一方、第２の制御系統のエンジンコントローラ２５と第１のＴ／Ｍコントローラ２８のうちの一方の異常と判定された場合には、第１の制御系統で駆動源を制御して車両を走行させる。この場合、第１の制御系統のＨＶコントローラ２４が、異常なコントローラを停止した後、要求駆動トルクを演算してＭＧ指令トルクと第２クラッチ指令値を演算する。そして、ＨＶコントローラ２４が、ＭＧ指令トルクをＭＧコントローラ２７へ出力し、第２クラッチ指令値を第２のＴ／Ｍコントローラ２９へ出力する。
【００８６】
また、ＭＧコントローラ２７がＭＧ指令トルクに基づいてＭＧ１２を制御し、第２のＴ／Ｍコントローラ２９が第２クラッチ指令値に基づいて第２のクラッチＣ２を制御（係合）する。これにより、第１の制御系統のコントローラ２４，２７，２９でＭＧ１２や第２のクラッチＣ２を制御して車両を退避走行させることができる。この際、第２の制御系統のコントローラ２５，２８のうちの一方がが異常でも、第１の制御系統のコントローラ２４，２７，２９で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【００８７】
［第３のパターン］
第１及び第２のＴ／Ｍコントローラ２８，２９が制御演算機能を持たない油圧制御装置（ＨＶコントローラ２４の指令通りに動作する油圧制御装置）の場合について説明する。図９に示すように、第１の制御系統は、ＨＶコントローラ２４とエンジンコントローラ２５からなる。一方、第２の制御系統は、ＭＧコントローラ２７のみからなる。
【００８８】
第１の制御系統の監視は、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４がエンジンコントローラ２５を相互監視方式で監視し、エンジンコントローラ２５がＨＶコントローラ２４を相互監視方式で監視する。一方、第２の制御系統の監視は、第１の制御系統の二つのコントローラが第２の制御系統のコントローラを監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４がＭＧコントローラ２７を相互監視方式で監視し、エンジンコントローラ２５がＭＧコントローラ２７を相互監視方式で監視する。
【００８９】
そして、第１の制御系統のＨＶコントローラ２４とエンジンコントローラ２５のうちの一方の異常と判定された場合には、第２の制御系統で駆動源を制御して車両を走行させる。この場合、第２の制御系統のＭＧコントローラ２７が、特定のサブ制御回路として機能して、異常なコントローラを停止した後、要求駆動トルクを演算してＭＧ指令トルクと第２クラッチ指令値を演算する。
【００９０】
また、ＭＧコントローラ２７が、ＭＧ指令トルクに基づいてＭＧ１２を制御し、第２クラッチ指令値に基づいて第２のＴ／Ｍコントローラ２９（油圧制御装置）を制御して第２のクラッチＣ２を制御（係合）する。これにより、第２の制御系統のＭＧコントローラ２７でＭＧ１２や第２のクラッチＣ２を制御して車両を退避走行させることができる。この際、第１の制御系統のコントローラ２４，２５のうちの一方が異常でも、他方で第２の制御系統のＭＧコントローラ２７を監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【００９１】
一方、第２の制御系統のＭＧコントローラ２７の異常と判定された場合（ＭＧコントローラ２７の異常が確定した場合）には、第１の制御系統で駆動源を制御して車両を走行させる。この場合、第１の制御系統のＨＶコントローラ２４が、ＭＧコントローラ２７を停止した後、要求駆動トルクを演算してエンジン指令トルクと第１及び第２クラッチ指令値を演算し、エンジン指令トルクをエンジンコントローラ２５へ出力する。
【００９２】
また、エンジンコントローラ２５がエンジン指令トルクに基づいてエンジン１０を制御する。更に、ＨＶコントローラ２４が、第１クラッチ指令値に基づいて第１のＴ／Ｍコントローラ２８（油圧制御装置）を制御して第１のクラッチＣ１を制御（係合）し、第２クラッチ指令値に基づいて第２のＴ／Ｍコントローラ２９（油圧制御装置）を制御して第２のクラッチＣ２を制御（係合）する。これにより、第１の制御系統のコントローラ２４，２５でエンジン１０や第１及び第２のクラッチＣ１，Ｃ２を制御して車両を退避走行させることができる。この際、第２の制御系統の第２のＭＧコントローラ２７が異常でも、第１の制御系統のコントローラ２４，２５で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【実施例３】
【００９３】
次に、図１０乃至図１２を用いて本発明の実施例３を説明する。但し、前記実施例１と実質的に同一部分には同一符号を付して説明を省略又は簡略化し、主として前記実施例１と異なる部分について説明する。
【００９４】
本実施例３では、図１０に示すように、エンジン１０の出力軸と第１のＭＧ１１の回転軸と第２のＭＧ１２の回転軸と車軸１５が動力伝達装置３０を介して連結されている。この動力伝達装置３０には、第１〜第３の遊星ギヤ機構３１〜３３と第１〜第４のクラッチＣ１〜Ｃ４等が設けられている。第３及び第４のクラッチＣ３，Ｃ４は、固定端（例えば動力伝達装置３０のハウジング等）に連結されたクラッチであり、ブレーキと呼ばれることもある。更に、第１及び第３のクラッチＣ１，Ｃ３を制御する第１のＴ／Ｍコントローラ２８と、第２及び第４のクラッチＣ２，Ｃ４を制御する第２のＴ／Ｍコントローラ２９が設けられている。但し、第１のＴ／Ｍコントローラ２８は、第２のクラッチＣ２を制御する機能も備えている。
【００９５】
ＨＶコントローラ２４は、エンジンコントローラ２５と、第１及び第２のＭＧコントローラ２６，２７と、第１及び第２のＴ／Ｍコントローラ２８，２９との間で制御信号やデータ信号を送受信し、各コントローラ２５〜２９によってエンジン１０とＭＧ１１，１２とクラッチＣ１〜Ｃ４等を制御する。
【００９６】
システムの正常時に、ＨＶコントローラ２４（メイン制御回路）は、各種のセンサ１７〜２１（図１参照）の出力信号等に基づいて車両の要求駆動トルクを演算して、この要求駆動トルクに基づいてエンジン指令トルクと第１及び第２ＭＧ指令トルクと第１〜第４クラッチ指令値を演算する。そして、ＨＶコントローラ２４は、エンジン指令トルクをエンジンコントローラ２５へ出力し、第１ＭＧ指令トルクを第１のＭＧコントローラ２６へ出力し、第２ＭＧ指令トルクを第２のＭＧコントローラ２７へ出力する。更に、第１及び第３クラッチ指令値を第１のＴ／Ｍコントローラ２８へ出力し、第２及び第４クラッチ指令値を第２のＴ／Ｍコントローラ２９へ出力する。
【００９７】
また、エンジンコントローラ２５（サブ制御回路）は、エンジン指令トルクに基づいてエンジン１０を制御し、第１のＭＧコントローラ２６（サブ制御回路）は、第１ＭＧ指令トルクに基づいて第１のＭＧ１１を制御し、第２のＭＧコントローラ２７（サブ制御回路）は、第２ＭＧ指令トルクに基づいて第２のＭＧ１２を制御する。更に、第１のＴ／Ｍコントローラ２８（サブ制御回路）は、第１クラッチ指令値に基づいて第１のクラッチＣ１を制御し、第３クラッチ指令値に基づいて第３のクラッチＣ３を制御する。第２のＴ／Ｍコントローラ２９（サブ制御回路）は、第２クラッチ指令値に基づいて第２のクラッチＣ２を制御し、第４クラッチ指令値に基づいて第４のクラッチＣ４を制御する。
【００９８】
本実施例５では、コントローラ２４〜２９が、独立した二つの制御系統である第１の制御系統と第２の制御系統とにグループ分けされている。以下、グループ分けが異なる二つのパターン（第１のパターンと第２のパターン）について説明する。
【００９９】
［第１のパターン］
図１１に示すように、第１の制御系統は、ＨＶコントローラ２４とエンジンコントローラ２５と第１のＭＧコントローラ２６と第１のＴ／Ｍコントローラ２８からなる。一方、第２の制御系統は、第２のＭＧコントローラ２７と第２のＴ／Ｍコントローラ２９からなる。
【０１００】
第１の制御系統の監視は、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４がエンジンコントローラ２５を相互監視方式で監視し、ＨＶコントローラ２４が第１のＴ／Ｍコントローラ２８を相互監視方式で監視する。更に、ＨＶコントローラ２４が第１のＭＧコントローラ２６を相互監視方式で監視し、第１のＭＧコントローラ２６がＨＶコントローラ２４を相互監視方式で監視する。一方、第２の制御系統の監視も、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、第２のＭＧコントローラ２７が第２のＴ／Ｍコントローラ２９を相互監視方式で監視し、第２のＴ／Ｍコントローラ２９が第２のＭＧコントローラ２７を相互監視方式で監視する。
【０１０１】
そして、第１の制御系統のＨＶコントローラ２４とエンジンコントローラ２５と第１のＭＧコントローラ２６と第１のＴ／Ｍコントローラ２８のうちのいずれか一つの異常と判定された場合には、第２の制御系統で駆動源を制御して車両を走行させる。この場合、第２の制御系統の第２のＭＧコントローラ２７が、特定のサブ制御回路として機能して、異常なコントローラを停止した後、要求駆動トルクを演算して第２ＭＧ指令トルクと第２及び第４クラッチ指令値を演算し、第２及び第４クラッチ指令値を第２のＴ／Ｍコントローラ２９へ出力する。或は、第２の制御系統の第２のＴ／Ｍコントローラ２９が、特定のサブ制御回路として機能して、異常なコントローラを停止した後、要求駆動トルクを演算して第２ＭＧ指令トルクと第２及び第４クラッチ指令値を演算し、第２ＭＧ指令トルクを第２のＭＧコントローラ２７へ出力するようにしても良い。
【０１０２】
また、第２のＭＧコントローラ２７が第２ＭＧ指令トルクに基づいて第２のＭＧ１２を制御し、第２のＴ／Ｍコントローラ２９が、第２クラッチ指令値に基づいて第２のクラッチＣ２を制御（係合）し、第４クラッチ指令値に基づいて第４のクラッチＣ４を制御（係合）する。これにより、第２の制御系統のコントローラ２７，２９で第２のＭＧ１２や第２及び第４のクラッチＣ２，Ｃ４を制御して車両を退避走行させることができる。この際、第１の制御系統のコントローラ２４〜２６，２８のうちのいずれか一つが異常でも、第２の制御系統のコントローラ２７，２９で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【０１０３】
一方、第２の制御系統の第２のＭＧコントローラ２７と第２のＴ／Ｍコントローラ２９）のうちの一方の異常と判定された場合には、第１の制御系統で駆動源を制御して車両を走行させる。この場合、第１の制御系統のＨＶコントローラ２４が、異常なコントローラを停止した後、要求駆動トルクを演算してエンジン指令トルクと第１ＭＧ指令トルクと第１〜第３クラッチ指令値を演算する。そして、ＨＶコントローラ２４が、エンジン指令トルクをエンジンコントローラ２５へ出力し、第１ＭＧ指令トルクを第１のＭＧコントローラ２６へ出力し、第１〜第３クラッチ指令値を第１のＴ／Ｍコントローラ２８へ出力する。
【０１０４】
また、エンジンコントローラ２５がエンジン指令トルクに基づいてエンジン１０を制御し、第１のＭＧコントローラ２６が第１ＭＧ指令トルクに基づいて第１のＭＧ１１を制御する。更に、第１のＴ／Ｍコントローラ２８が、第１クラッチ指令値に基づいて第１のクラッチＣ１を制御（係合）し、第２クラッチ指令値に基づいて第２のクラッチＣ２を制御（係合）し、第３クラッチ指令値に基づいて第３のクラッチＣ３を制御（係合）する。これにより、第１の制御系統のコントローラ２４〜２６，２８でエンジンや第１のＭＧ１１や第１〜第３のクラッチＣ１〜Ｃ３を制御して車両を退避走行させることができる。この際、第２の制御系統のコントローラ２７，２９のうちの一方が異常でも、第１の制御系統のコントローラ２４〜２６，２８で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【０１０５】
［第２のパターン］
第１及び第２のＴ／Ｍコントローラ２８，２９が制御演算機能を持たない油圧制御装置（ＨＶコントローラ２４の指令通りに動作する油圧制御装置）の場合について説明する。図１２に示すように、第１の制御系統は、ＨＶコントローラ２４とエンジンコントローラ２５と第１のＭＧコントローラ２６からなる。一方、第２の制御系統は、第２のＭＧコントローラ２７のみからなる。
【０１０６】
第１の制御系統の監視は、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４がエンジンコントローラ２５を相互監視方式で監視する。更に、ＨＶコントローラ２４が第１のＭＧコントローラ２６を相互監視方式で監視し、第１のＭＧコントローラ２６がＨＶコントローラ２４を相互監視方式で監視する。一方、第２の制御系統の監視は、第１の制御系統の二つのコントローラが第２の制御系統のコントローラを監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４が第２のＭＧコントローラ２７を相互監視方式で監視し、第１のＭＧコントローラ２６がＭＧコントローラ２７を相互監視方式で監視する。
【０１０７】
そして、第１の制御系統のＨＶコントローラ２４とエンジンコントローラ２５と第１のＭＧコントローラ２６のうちのいずれか一つの異常と判定された場合には、第２の制御系統で駆動源を制御して車両を走行させる。この場合、第２の制御系統の第２のＭＧコントローラ２７が、特定のサブ制御回路として機能して、異常なコントローラを停止した後、要求駆動トルクを演算して第２ＭＧ指令トルクと第２及び第４クラッチ指令値を演算する。
【０１０８】
また、第２のＭＧコントローラ２７が、第２ＭＧ指令トルクに基づいて第２のＭＧ１２を制御し、第２及び第４クラッチ指令値に基づいて第２のＴ／Ｍコントローラ２９（油圧制御装置）を制御して第２及び第４のクラッチＣ２，Ｃ４を制御（係合）する。これにより、第２の制御系統の第２のＭＧコントローラ２７で第２のＭＧ１２や第２及び第４のクラッチＣ２，Ｃ４を制御して車両を退避走行させることができる。この際、第１の制御系統のコントローラ２４〜２６のうちのいずれか一つが異常でも、コントローラ２４，２６のうちの少なくとも一方で第２の制御系統のコントローラ２７を監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【０１０９】
一方、第２の制御系統の第２のＭＧコントローラ２７の異常と判定された場合（第２のＭＧコントローラ２７の異常が確定した場合）には、第１の制御系統で駆動源を制御して車両を走行させる。この場合、第１の制御系統のＨＶコントローラ２４が、第２のＭＧコントローラ２７を停止した後、要求駆動トルクを演算してエンジン指令トルクと第１ＭＧ指令トルクと第１〜第３クラッチ指令値を演算する。そして、ＨＶコントローラ２４が、エンジン指令トルクをエンジンコントローラ２５へ出力し、第１ＭＧ指令トルクを第１のＭＧコントローラ２６へ出力する。
【０１１０】
また、エンジンコントローラ２５がエンジン指令トルクに基づいてエンジン１０を制御し、第１のＭＧコントローラ２６が第１ＭＧ指令トルクに基づいて第１のＭＧ１１を制御する。更に、ＨＶコントローラ２４が第１〜第３クラッチ指令値に基づいて第１のＴ／Ｍコントローラ２８（油圧制御装置）を制御して第１〜第３のクラッチＣ１〜Ｃ３を制御（係合）する。これにより、第１の制御系統のコントローラ２４〜２６でエンジンや第１のＭＧ１１や第１〜第３のクラッチＣ１〜Ｃ３を制御して車両を退避走行させることができる。この際、第２の制御系統の第２のＭＧコントローラ２７が異常でも、第１の制御系統のコントローラ２４〜２６で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【０１１１】
尚、上記実施例３では、第１の制御系統と第２の制御系統とにグループ分けする際に、第２のＭＧ１２の動力で走行可能なグループと、エンジン１０及び／又は第１のＭＧ１１の動力で走行可能なグループとにグループ分けするようにしている。しかし、これに限定されず、例えば、各Ｔ／Ｍコントローラ２８，２９で制御するクラッチを適宜変更して、第１のＭＧ１１の動力で走行可能なグループと、エンジン１０及び／又は第２のＭＧ１２の動力で走行可能なグループとにグループ分けするようにしても良い。或は、エンジン１０及び／又は第１のＭＧ１１の動力で走行可能なグループと、エンジン１０及び／又は第２のＭＧ１２の動力で走行可能なグループとにグループ分けするようにしても良い。
【実施例４】
【０１１２】
次に、図１３を用いて本発明の実施例４を説明する。但し、前記実施例１と実質的に同一部分には同一符号を付して説明を省略又は簡略化し、主として前記実施例１と異なる部分について説明する。
【０１１３】
本実施例４では、図１３に示すように、ＨＶコントローラ２４と第１及び第２のＭＧコントローラ２６，２７とを備え、これらのコントローラ２４，２６，２７が独立した二つの制御系統にグループ分けされている。第１の制御系統は、ＨＶコントローラ２４と第１のＭＧコントローラ２６からなる。一方、第２の制御系統は、第２のＭＧコントローラ２７のみからなる。
【０１１４】
第１の制御系統の監視は、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４が第１のＭＧコントローラ２６を相互監視方式で監視し、第１のＭＧコントローラ２６がＨＶコントローラ２４を相互監視方式で監視する。一方、第２の制御系統の監視は、第１の制御系統の二つのコントローラが第２の制御系統のコントローラを監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４が第２のＭＧコントローラ２７を相互監視方式で監視し、第１のＭＧコントローラ２６が第２のＭＧコントローラ２７を相互監視方式で監視する。
【０１１５】
そして、第１の制御系統のＨＶコントローラ２４と第１のＭＧコントローラ２６のうちの一方の異常と判定された場合には、第２の制御系統で駆動源を制御して車両を走行させる。この場合、第２の制御系統の第２のＭＧコントローラ２７が要求駆動トルクを演算して第２ＭＧ指令トルクを演算し、第２のＭＧコントローラ２７が第２のＭＧ１２を制御することで車両を退避走行させる。この際、第１の制御系統のコントローラ２４，２６のうちの一方が異常でも、他方で第２の制御系統の第２のＭＧコントローラ２７を監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【０１１６】
一方、第２の制御系統の第２のＭＧコントローラ２７の異常と判定された場合（ＭＧコントローラ２７の異常が確定した場合）には、第１の制御系統で駆動源を制御して車両を走行させる。この場合、第１の制御系統のＨＶコントローラ２４が要求駆動トルクを演算してエンジン指令トルクと第１ＭＧ指令トルクを演算し、ＨＶコントローラ２４がエンジン１０を制御すると共に第１のＭＧコントローラ２６が第１のＭＧ１１を制御することで車両を退避走行させる。この際、第２の制御系統の第２のＭＧコントローラ２７が異常でも、第１の制御系統のコントローラ２４，２６で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【実施例５】
【０１１７】
次に、図１４を用いて本発明の実施例５を説明する。但し、前記実施例１と実質的に同一部分には同一符号を付して説明を省略又は簡略化し、主として前記実施例１と異なる部分について説明する。
【０１１８】
本実施例５では、図１４に示すように、ＨＶコントローラ２４と第１及び第２のＭＧコントローラ２６，２７とＴ／Ｍコントローラ２８を備え、これらのコントローラ２４，２６〜２８が独立した二つの制御系統にグループ分けされている。第１の制御系統は、ＨＶコントローラ２４と第１のＭＧコントローラ２６からなる。一方、第２の制御系統は、第２のＭＧコントローラ２７とＴ／Ｍコントローラ２８からなる。
【０１１９】
第１の制御系統の監視は、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４が第１のＭＧコントローラ２６を相互監視方式で監視し、第１のＭＧコントローラ２６がＨＶコントローラ２４を相互監視方式で監視する。一方、第２の制御系統の監視も、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、第２のＭＧコントローラ２７がＴ／Ｍコントローラ２８を相互監視方式で監視し、Ｔ／Ｍコントローラ２８が第２のＭＧコントローラ２７を相互監視方式で監視する。
【０１２０】
そして、第１の制御系統のＨＶコントローラ２４と第１のＭＧコントローラ２６のうちの一方の異常と判定された場合には、第２の制御系統で駆動源を制御して車両を走行させる。この場合、第２の制御系統の第２のＭＧコントローラ２７又はＴ／Ｍコントローラ２８が要求駆動トルクを演算して第２ＭＧ指令トルクとクラッチ指令値を演算し、第２のＭＧコントローラ２７が第２のＭＧ１２を制御すると共にＴ／Ｍコントローラ２８がクラッチを制御することで車両を退避走行させる。この際、第１の制御系統のコントローラ２４，２６のうちの一方が異常でも、第２の制御系統のコントローラ２７，２８で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【０１２１】
一方、第２の制御系統の第２のＭＧコントローラ２７と第２のＴ／Ｍコントローラ２９のうちの一方の異常と判定された場合には、第１の制御系統で駆動源を制御して車両を走行させる。この場合、第１の制御系統のＨＶコントローラ２４が要求駆動トルクを演算してエンジン指令トルクと第１ＭＧ指令トルクを演算し、ＨＶコントローラ２４がエンジン１０を制御すると共に第１のＭＧコントローラ２６が第１のＭＧ１１を制御することで車両を退避走行させる。この際、第２の制御系統のコントローラ２７，２８のうちの一方が異常でも、第１の制御系統のコントローラ２４，２６で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【実施例６】
【０１２２】
次に、図１５を用いて本発明の実施例６を説明する。但し、前記実施例１と実質的に同一部分には同一符号を付して説明を省略又は簡略化し、主として前記実施例１と異なる部分について説明する。
【０１２３】
本実施例６では、図１５に示すように、ＨＶコントローラ２４とエンジンコントローラ２５と第１及び第２のＭＧコントローラ２６，２７とを備え、これらのコントローラ２４〜２７が独立した二つの制御系統にグループ分けされている。第１の制御系統は、ＨＶコントローラ２４とエンジンコントローラ２５と第１のＭＧコントローラ２６からなる。一方、第２の制御系統は、第２のＭＧコントローラ２７のみからなる。
【０１２４】
第１の制御系統の監視は、同一の制御系統内のコントローラで互いに監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４がエンジンコントローラ２５を相互監視方式で監視する。更に、ＨＶコントローラ２４が第１のＭＧコントローラ２６を相互監視方式で監視し、第１のＭＧコントローラ２６がＨＶコントローラ２４を相互監視方式で監視する。一方、第２の制御系統の監視は、第１の制御系統の二つのコントローラが第２の制御系統のコントローラを監視して異常の有無を判定する。具体的には、ＨＶコントローラ２４が第２のＭＧコントローラ２７を相互監視方式で監視し、第１のＭＧコントローラ２６が第２のＭＧコントローラ２７を相互監視方式で監視する。
【０１２５】
そして、第１の制御系統のＨＶコントローラ２４とエンジンコントローラ２５と第１のＭＧコントローラ２６のうちのいずれか一つの異常と判定された場合には、第２の制御系統で駆動源を制御して車両を走行させる。この場合、第２の制御系統の第２のＭＧコントローラ２７が要求駆動トルクを演算して第２ＭＧ指令トルクを演算し、第２のＭＧコントローラ２７が第２のＭＧ１２を制御することで車両を退避走行させる。この際、第１の制御系統のコントローラ２４〜２６のうちのいずれか一つが異常でも、コントローラ２４，２６のうちの少なくとも一方で第２の制御系統のコントローラ２７を監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【０１２６】
一方、第２の制御系統の第２のＭＧコントローラ２７の異常と判定された場合（ＭＧコントローラ２７の異常が確定した場合）には、第１の制御系統で駆動源を制御して車両を走行させる。この場合、第１の制御系統のＨＶコントローラ２４が要求駆動トルクを演算してエンジン指令トルクと第１ＭＧ指令トルクを演算し、エンジンコントローラ２５がエンジン１０を制御すると共に第１のＭＧコントローラ２６が第１のＭＧ１１を制御することで車両を退避走行させる。この際、第２の制御系統の第２のＭＧコントローラ２７が異常でも、第１の制御系統のコントローラ２４〜２６で互いに監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【実施例７】
【０１２７】
次に、図１６を用いて本発明の実施例７を説明する。但し、前記実施例１と実質的に同一部分には同一符号を付して説明を省略又は簡略化し、主として前記実施例１と異なる部分について説明する。
【０１２８】
本実施例７では、図１６に示すように、駆動源を制御するための一つのメインコントローラ３４（メイン制御回路）及び一つのサブコントローラ３５（サブ制御回路）と、これらのコントローラ３４，３５を監視するための一つの監視コントローラ３６（監視制御回路）とを備えている。
【０１２９】
システムの正常時に、メインコントローラ３４は、車両の要求駆動トルクを演算して、この要求駆動トルクに基づいてエンジン指令トルクと第１ＭＧ指令トルクと第２ＭＧ指令トルクを演算する。また、メインコントローラ３４は、エンジン指令トルクに基づいてエンジン１０を制御し、第１ＭＧ指令トルクに基づいて第１のＭＧ１１を制御し、第２ＭＧ指令トルクに基づいて第２のＭＧ１２を制御する。
【０１３０】
また、本実施例７では、メインコントローラ３４とサブコントローラ３５が互いに監視して異常の有無を判定する。具体的には、メインコントローラ３４がサブコントローラ３５を相互監視方式で監視し、サブコントローラ３５がメインコントローラ３４を相互監視方式で監視する。更に、監視コントローラ３６がメインコントローラ３４とサブコントローラ３５を監視して異常の有無を判定する。具体的には、監視コントローラ３６がメインコントローラ３４を相互監視方式で監視し、監視コントローラ３６がサブコントローラ３５を相互監視方式で監視する。
【０１３１】
そして、メインコントローラ３４の異常と判定された場合には、サブコントローラ３５で駆動源を制御して車両を走行させる。この場合、サブコントローラ３５が、要求駆動トルクを演算してエンジン指令トルクと第１ＭＧ指令トルクと第２ＭＧ指令トルクを演算し、エンジン１０と第１及び第２のＭＧ１１，１２を制御することで車両を退避走行させる。この際、メインコントローラ３４が異常でも、監視コントローラ３６でサブコントローラ３５を監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【０１３２】
一方、サブコントローラ３５の異常と判定された場合には、引き続きメインコントローラ３４で駆動源を制御して車両を走行させる。この際、サブコントローラ３５が異常でも、監視コントローラ３６でメインコントローラ３４を監視して異常の有無を判定することができるため、安全性を確保しながら車両を退避走行させることができる。
【０１３３】
また、本実施例７では、メインコントローラ３４とサブコントローラ３５は、互いに監視するだけであるため、駆動源を制御するためのメインコントローラ３４やサブコントローラ３５の通信負荷の増大を抑制することができる。
【０１３４】
尚、上記実施例７では、システムの正常時に、メインコントローラ３４が駆動源の指令トルクを演算して、メインコントローラ３４が駆動源を制御するシステムに本発明を適用している。しかし、これに限定されず、例えば、メインコントローラ３４が駆動源の指令トルクを演算して、サブコントローラ３５が駆動源を制御するシステムに本発明を適用しても良い。或は、メインコントローラ３４が駆動源の指令トルクを演算して、メインコントローラ３４とサブコントローラ３５が駆動源を制御するシステムに本発明を適用しても良い。
【０１３５】
また、上記各実施例１〜７では、エンジンとＭＧを駆動源とするハイブリッド車に本発明を適用したが、これに限定されず、複数のエンジンを駆動源とする車両や複数のＭＧを駆動源とする車両（電気自動車）に本発明を適用しても良い。
【符号の説明】
【０１３６】
１１…エンジン（駆動源）、１１，１２…ＭＧ（駆動源）、２３…第２のＨＶコントローラ（サブ制御回路）、２４…第１のＨＶコントローラ（メイン制御回路）、２５…エンジンコントローラ（サブ制御回路）、２６，２７…ＭＧコントローラ（サブ制御回路）、２８，２９…Ｔ／Ｍコントローラ（サブ制御回路）
【図１】
0006558043.tif 000002
【図２】
0006558043.tif 000003
【図３】
0006558043.tif 000004
【図４】
0006558043.tif 000005
【図５】
0006558043.tif 000006
【図６】
0006558043.tif 000007
【図７】
0006558043.tif 000008
【図８】
0006558043.tif 000009
【図９】
0006558043.tif 000010
【図１０】
0006558043.tif 000011
【図１１】
0006558043.tif 000012
【図１２】
0006558043.tif 000013
【図１３】
0006558043.tif 000014
【図１４】
0006558043.tif 000015
【図１５】
0006558043.tif 000016
【図１６】
0006558043.tif 000017