(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】車両制御装置
(51)【国際特許分類】
B60L 3/00 20190101AFI20241022BHJP
B60L 15/20 20060101ALI20241022BHJP
B60R 16/02 20060101ALI20241022BHJP
B60L 9/18 20060101ALN20241022BHJP
【FI】
B60L3/00 N
B60L15/20 S
B60R16/02 660G
B60L9/18 P
(21)【出願番号】P 2021106781
(22)【出願日】2021-06-28
【審査請求日】2024-01-25
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100087480
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】後藤 寛明
【審査官】加藤 昌人
(56)【参考文献】
【文献】特開2017-136989(JP,A)
【文献】特開2015-156763(JP,A)
【文献】米国特許出願公開第2011/0238262(US,A1)
【文献】特開2020-35503(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B60L 1/00- 3/12
B60L 7/00-13/00
B60L 15/00-58/40
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
車両の第1駆動力源を制御する第1コンピュータと、
前記車両の第2駆動力源を制御する第2コンピュータと、
前記第1コンピュータ及び前記第2コンピュータに対し前記第1駆動力源及び前記第2駆動力源の制御に関する指示を行う第3コンピュータとを有し、
前記第2コンピュータは、不揮発性メモリを有し、前記第3コンピュータの指示に従って制御を停止する場合、前記不揮発性メモリに停止記録を書き込み、制御の開始時に前記停止記録に基づき前記第2コンピュータの異常の有無を判定し、
前記第1コンピュータは、不揮発性メモリを有しておらず、前記第1コンピュータの起動時刻からの経過時間を計時し、
前記第3コンピュータは、前記第2コンピュータが異常有りと判定した場合、前記経過時間が閾値未満であるとき、前記第1コンピュータ及び前記第2コンピュータに制御の停止を指示する、
車両制御装置。
【請求項2】
前記第3コンピュータは、前記第2コンピュータが異常有りと判定した場合、前記経過時間が前記閾値以上であるとき、前記第2コンピュータに制御の停止を指示する、
請求項1に記載の車両制御装置。
【請求項3】
前記第3コンピュータは、前記第2コンピュータが異常有りと判定した場合、前記経過時間が前記閾値以上であるとき、前記第1コンピュータに前記第1駆動力源及び前記第2駆動力源の制御の実行を指示する、
請求項2に記載の車両制御装置。
【請求項4】
前記第3コンピュータは、前記第2コンピュータが異常なしと判定した場合、前記第1コンピュータ及び前記第2コンピュータに制御の実行を指示する、
請求項1乃至3の何れかに記載の車両制御装置。
【請求項5】
前記第3コンピュータは、前記第3コンピュータの起動後、前記第2コンピュータが最初に異常有りと判定した場合、前記第2コンピュータに一時的に制御を停止するように指示する、
請求項1乃至4の何れかに記載の車両制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両制御装置に関する。
【背景技術】
【0002】
例えば特許文献1には、ハイブリッド車の複数の駆動力源を複数のスレーブECU(Electronic Control Unit)によりそれぞれ制御し、マスターECUにより各スレーブECUを統括し各駆動力を調停する技術が開示されている。マスターECU及び各スレーブECUは、例えばマイクロコントローラにより実現される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ECUに用いられるマイクロコントローラには、例えばマイクロコントローラの起動及び停止を記録する不揮発性メモリを備えるものがある。この種のマイクロコントローラは、例えば電源の瞬断などにより意図せずに動作が停止した場合、不揮発性メモリの記録が起動状態を示したままであるため、異常を検出することができる。
【0005】
これに対し、不揮発性メモリを備えないマイクロコントローラの場合、上記のような異常を検出することができない。例えばマスターECUは、スレーブECUのマイクロコントローラに異常が発生した場合、フェイルセーフ機能により駆動力源の制御を停止させる。
【0006】
しかし、例えば不揮発性メモリを備えるマイクロコントローラのスレーブECU、及び不揮発性メモリを備えていないマイクロコントローラのスレーブECUが混在する場合、不揮発性メモリを備えていないマイクロコントローラは異常を検出できないため、マスターECUは適切なフェイルセーフを実現することが難しい。
【0007】
そこで本発明は上記の課題に鑑みてなされたものであり、適切なフェイルセーフを実現することができる車両制御装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本明細書に記載の車両制御装置は、車両の第1駆動力源を制御する第1コンピュータと、前記車両の第2駆動力源を制御する第2コンピュータと、前記第1コンピュータ及び前記第2コンピュータに対し前記第1駆動力源及び前記第2駆動力源の制御に関する指示を行う第3コンピュータとを有し、前記第2コンピュータは、不揮発性メモリを有し、前記第3コンピュータの指示に従って制御を停止する場合、前記不揮発性メモリに停止記録を書き込み、制御の開始時に前記停止記録に基づき前記第2コンピュータの異常の有無を判定し、前記第1コンピュータは、不揮発性メモリを有しておらず、前記第1コンピュータの起動時刻からの経過時間を計時し、前記第3コンピュータは、前記第2コンピュータが異常有りと判定した場合、前記経過時間が閾値未満であるとき、前記第1コンピュータ及び前記第2コンピュータに制御の停止を指示する。
【0009】
上記の構成において、前記第3コンピュータは、前記第2コンピュータが異常有りと判定した場合、前記経過時間が前記閾値以上であるとき、前記第2コンピュータに制御の停止を指示してもよい。
【0010】
上記の構成において、前記第3コンピュータは、前記第2コンピュータが異常有りと判定した場合、前記経過時間が前記閾値以上であるとき、前記第1コンピュータに前記第1駆動力源及び前記第2駆動力源の制御の実行を指示してもよい。
【0011】
上記の構成において、前記第3コンピュータは、前記第2コンピュータが異常なしと判定した場合、前記第1コンピュータ及び前記第2コンピュータに制御の実行を指示してもよい。
【0012】
上記の構成において、前記第3コンピュータは、前記第3コンピュータの起動後、前記第2コンピュータが最初に異常有りと判定した場合、前記第2コンピュータに一時的に制御を停止するように指示してもよい。
【発明の効果】
【0013】
本発明によれば、適切なフェイルセーフを実現することができる。
【図面の簡単な説明】
【0014】
【
図2】車両ECU及びMG-ECUの一例を示す構成図である。
【
図3】MG-ECUが異常なしと判定する例を示すタイムチャートである。
【
図4】MG-ECUが異常有りと判定する例を示すタイムチャートである。
【
図5】インバータの駆動処理の一例を示すフローチャートである。
【
図6】MG-ECUの動作の一例を示すフローチャートである。
【
図7】MG-ECUの動作の一例を示すフローチャートである。
【
図8】車両ECUの動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0015】
図1は、車両90の一例を示す構成図である。車両90は、一例としてハイブリッド車であり、車両制御装置9、インバータ60,61、電流センサ62,63、昇圧コンバータ64、MGバッテリ65、モータジェネレータ(MG)50,51、車軸52、車輪53、ディファレンシャルギア装置54、動力分割装置55、及びエンジン56を有する。なお、車両90は、ハイブリッド車に限定されず、エンジン56のない電気自動車であってもよい。
【0016】
MG50,51は発電機及び電動機の両方の機能を備える。本例ではMG50は、電動機として機能し、MGバッテリ65の電力を消費することによりトルクを出力する。MG51は、発電機として機能し、回生動作を行うことにより発電して、発電電力をMGバッテリ65にチャージする。MGバッテリ65は、例えばリチウムイオンバッテリであり、MG50の電源として機能する。なお、MG50,51は、それぞれ、車両90の第1駆動力源及び第2駆動力源の一例である。
【0017】
MG50は、ディファレンシャルギア装置54を介して車軸52に接続されており、トルクを車軸52に出力する。また、エンジン56は、動力分割装置55を介して車軸52に接続されており、その動力の一部を車軸52に伝達する。車軸52の端部には車輪53が接続されている。MG50及びエンジン56の駆動力は車軸52を介して車輪53に伝達される。
【0018】
エンジン56の残りの動力は動力分割装置55によりMG51に伝達される。これによりMG51は発電してインバータ61に三相交流電流を出力する。
【0019】
インバータ61は、例えばIGBT(Insulated Gate Bipolar Transistor)などの複数のスイッチング素子を有する。インバータ60の各スイッチング素子は、車両制御装置9から入力されるスイッチング信号によりオンオフ制御される。これにより、インバータ61は三相交流電流から直流電圧を生成する。直流電圧は昇圧コンバータ64により変換されてMGバッテリ65に印加される。これにより、MGバッテリ65が充電される。
【0020】
また、昇圧コンバータ64は、MGバッテリ65から入力される直流電圧を目標電圧に昇圧する。インバータ60には昇圧コンバータ64から直流電圧が印加される。インバータ60は、例えばIGBTなどの複数のスイッチング素子を有する。インバータ60の各スイッチング素子は、車両制御装置9から入力されるスイッチング信号によりオンオフ制御される。これにより、インバータ60は昇圧コンバータ64の直流電圧から三相交流電流を生成する。MG50は、インバータ60から入力される三相交流電流からトルクを出力する。
【0021】
電流センサ62は、インバータ60からMG50に出力される三相交流電流の各電流値を検出する。電流センサ63は、MG51からインバータ61に出力される三相交流電流の各電流値を検出する。電流センサ62,63は各検出値を車両制御装置9に出力する。
【0022】
車両制御装置9は、MG-ECU1,2、車両ECU3、イグニッションスイッチ(IGスイッチ)40、アクセルセンサ41、ブレーキセンサ42、車速センサ43、及びECUバッテリ44を有する。ECUバッテリ44はMG-ECU1,2及び車両ECU3の電源である。ECUバッテリ44は、給電線45を介してMG-ECU1,2及び車両ECU3に電力供給する。
【0023】
MG-ECU1は、MG50を制御する第1コンピュータの一例であり、MG-ECU2は、MG51を制御する第2コンピュータの一例である。MG-ECU1,2及び車両ECU3はマイクロコントローラを有するが、これに限定されず、他の種類のコンピュータで実現されてもよい。
【0024】
車両ECU3には、アクセルセンサ41、ブレーキセンサ42、及び車速センサ43から検出値がそれぞれ入力される。アクセルセンサ41は車両90のアクセルペダル(不図示)の開度を検出し、その検出値を車両ECU3に出力する。ブレーキセンサ42は車両90のブレーキペダル(不図示)の開度を検出し、その検出値を車両ECU3に出力する。車速センサ43は車両90の速度を検出し、その検出値を車両ECU3に出力する。
【0025】
また、IGスイッチ40は、車両90のスタートボタン(不図示)のオンオフを車両ECU3及びECUバッテリ44に通知する。ECUバッテリ44は、スタートボタンがオンになると電力供給を開始し、スタートボタンがオフになると電力供給を停止する。
【0026】
車両ECU3は、スタートボタンがオンになると起動して車両90の制御を開始する。車両ECU3は、アクセルセンサ41、ブレーキセンサ42、及び車速センサ43の各検出値からMG50に要求されるトルク(以下、要求トルクと表記)を算出する。車両ECU3は、要求トルクに基づきMG50に力行動作させる制御をMG-ECU60に指示し、要求トルクに基づきMG51に回生動作させる制御をMG-ECU61に指示する。なお、車両ECU3は、MG-ECU1,2に対しMG50,51の制御に関する指示を行う第3コンピュータの一例である。
【0027】
MG-ECU1,2は、車両ECU3からの制御指示に従ってインバータ60,61をそれぞれ駆動する。MG-ECU1,2は、MG50から要求トルクが出力されるようにインバータ60,61の各スイッチング素子をスイッチング信号によりそれぞれオンオフ制御する。また、MG-ECU1は、MG-ECU2に異常が検出された場合、一点鎖線で示されるように車両ECU3の制御指示に従ってMG-ECU2の代わりにインバータ61も駆動する。
【0028】
MG-ECU1,2には、電流センサ62,63から三相交流電流の電流値が入力される。MG-ECU1は電流センサ62の電流値を用いてインバータ60を駆動し、MG-ECU2は電流センサ63の電流値を用いてインバータ61を駆動する。また、MG-ECU1は、MG-ECU2に異常が検出された場合、電流センサ63の電流値を用いてインバータ61を駆動する。
【0029】
(車両ECU及びMG-ECUの構成)
図2は、車両ECU3及びMG-ECU1,2の一例を示す構成図である。MG-ECU1はマイクロコントローラ1a及び信号送受信回路1bを有し、MG-ECU2はマイクロコントローラ2a及び信号送受信回路2bを有する。車両ECU3はマイクロコントローラ3a及び信号送受信回路3bを有する。
【0030】
マイクロコントローラ1aは、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、RAM(Random Access Memory)12、通信ポート13、及びハードウェアインターフェース部(HW-IF)14を有する。CPU10は、互いに信号の入出力ができるように、ROM11、RAM12、通信ポート13、及びHW-IF14と、バス19を介して電気的に接続されている。
【0031】
ROM11は、CPU10を駆動するプログラムが格納されている。RAM12は、CPU10のワーキングメモリとして機能する。通信ポート13は、CPU10と車両ECU3のマイクロコントローラ3aの間の通信を処理する。HW-IF14は、CPU10と信号送受信回路1bの間の通信を処理する。
【0032】
信号送受信回路1bはインバータ60,61及び電流センサ62,63と接続されている。信号送受信回路1bは電流センサ62,63から電流値を受信してCPU10に出力する。また、信号送受信回路1bは、CPU10から入力されるスイッチング素子のオンオフタイミングの通知に基づきスイッチング信号を生成してインバータ60,61に出力する。なお、信号送受信回路1bは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specified Integrated Circuit)などのハードウェアである。
【0033】
マイクロコントローラ2aは、CPU20、ROM21、RAM22、通信ポート23、不揮発性メモリ24、及びHW-IF25を有する。CPU20は、互いに信号の入出力ができるように、ROM21、RAM22、通信ポート23、不揮発性メモリ24、及びHW-IF25と、バス29を介して電気的に接続されている。
【0034】
ROM21は、CPU20を駆動するプログラムが格納されている。RAM22は、CPU20のワーキングメモリとして機能する。通信ポート23は、CPU20と車両ECU3のマイクロコントローラ3aの間の通信を処理する。HW-IF25は、CPU20と信号送受信回路2bの間の通信を処理する。
【0035】
信号送受信回路2bはインバータ61及び電流センサ63と接続されている。信号送受信回路2bは電流センサ63から電流値を受信してCPU20に出力する。また、信号送受信回路2bは、CPU20から入力されるスイッチング素子のオンオフタイミングの通知に基づきスイッチング信号を生成してインバータ61に出力する。なお、信号送受信回路2bは、例えばFPGAやASICなどのハードウェアである。
【0036】
また、不揮発性メモリ24には、CPU20から起動状態情報240が書き込まれる。起動状態情報240は、CPU20が正常に起動または停止したことを示す情報である。CPU20は、起動時、起動状態情報240を読み出し、起動状態情報240に基づいてマイクロコントローラ2aの異常の有無を判定する。なお、起動状態情報240に基づく異常の有無の判定処理の詳細は後述する。
【0037】
マイクロコントローラ3aは、CPU30、ROM31、RAM32、通信ポート33、不揮発性メモリ34、及びHW-IF35を有する。CPU30は、互いに信号の入出力ができるように、CPU30、ROM31、RAM32、通信ポート33、不揮発性メモリ34、及びHW-IF35と、バス39を介して電気的に接続されている。
【0038】
ROM31は、CPU30を駆動するプログラムが格納されている。RAM32は、CPU30のワーキングメモリとして機能する。通信ポート33は、CPU30とMG-ECU1,2のマイクロコントローラ1a,2aの間の通信を処理する。不揮発性メモリ34は、例えば車両90の制御に関する各種のデータを格納する。HW-IF35は、CPU30と信号送受信回路3bの間の通信を処理する。
【0039】
信号送受信回路3bはIGスイッチ40、アクセルセンサ41、ブレーキセンサ42、及び車速センサ43と接続されている。信号送受信回路3bはアクセルセンサ41、ブレーキセンサ42、及び車速センサ43から検出値を受信してCPU30に出力する。また、信号送受信回路3bは、IGスイッチ40からスタートボタンのオンオフの通知を受信してCPU30に出力する。なお、信号送受信回路3bは、例えばFPGAやASICなどのハードウェアである。
【0040】
このように、MG-ECU2は、不揮発性メモリ24を備えるマイクロコントローラ2aを有するのに対し、MG-ECU1は、不揮発性メモリを備えていないマイクロコントローラ1aを有する。
【0041】
(起動状態情報による異常判定)
次に不揮発性メモリ24を備えるマイクロコントローラ2aが起動状態情報に基づき異常判定を行う手法を述べる。ここで、異常としては、例えば給電線45にノイズが生じたことによるECUバッテリ44の電力供給の瞬断(以下、電源の瞬断)が挙げられる。
【0042】
図3は、MG-ECU2が異常なしと判定する例を示すタイムチャートである。まず、時刻t1においてスタートボタンがオンになると、IGスイッチ40がオンになり、MG-ECU2の電源(MG電源)がオンとなる。
【0043】
次に時刻t2において、MG-ECU2は起動する(ECU状態=起動)。このとき、MG-ECU2のCPU20は不揮発性メモリ24内の起動状態情報240を「停止」状態から「起動」状態に更新する。
【0044】
次に時刻t3において、スタートボタンがオフになると、IGスイッチ40がオフになる。MG-ECU2は、車両ECU3からの停止指示に従ってインバータ61の駆動(MG51の制御)を停止する(ECU状態=停止)。このとき、MG-ECU2のCPU20は不揮発性メモリ24内の起動状態情報240を「起動」状態から「停止」状態に更新する。その後の時刻t4においてMG-ECU2の電源がオフとなる。
【0045】
次に時刻t5においてスタートボタンが再びオンになると、IGスイッチ40がオンになり、MG-ECU2の電源がオンとなる。このとき、MG-ECU2のCPU20は、不揮発性メモリ24内の起動状態情報240に基づき異常有無の判定を行う。MG-ECU2は、時刻t3において正常に停止したため、起動状態情報240は「停止」状態を示す。したがって、MG-ECU2は、異常判定結果として自己の状態を「正常」(異常なし)と判定する。
【0046】
次に時刻t6において、MG-ECU2は起動する(ECU状態=起動)。このとき、MG-ECU2のCPU20は不揮発性メモリ24内の起動状態情報240を「停止」状態から「起動」状態に更新する。このように、CPU20はMG-ECU2の起動時に起動状態情報240を確認する。
【0047】
図4は、MG-ECU2が異常有りと判定する例を示すタイムチャートである。まず、時刻t11においてスタートボタンがオンになると、IGスイッチ40がオンになり、MG-ECU2の電源がオンとなる。
【0048】
次に時刻t12にいて、MG-ECU2は起動する(ECU状態=起動)。このとき、MG-ECU2のCPU20は不揮発性メモリ24内の起動状態情報240を「停止」状態から「起動」状態に更新する。
【0049】
時刻t13~t14において、MG-ECU2の電源が瞬断する。電源の瞬断は例えば給電線45にノイズが生じた場合に発生し得る。電源は時刻t13から時刻t14の間オフとなる。このため、MG-ECU2は時刻t14において電源の瞬断により強制的に停止する。
【0050】
時刻t15においてMG-ECU2の電源がオンになると、MG-ECU2のCPU20は、不揮発性メモリ24内の起動状態情報240に基づき異常有無の判定を行う。MG-ECU2は、時刻t13において電源の瞬断による異常により停止したため、起動状態情報240は、
図3の例とは異なり「停止」状態に更新されていない。このため起動状態情報240は「起動」状態を示す。したがって、MG-ECU2は、異常判定結果として自己の状態を「異常」(異常有り)と判定する。
【0051】
その後、後述するように車両ECU3は、MG-ECU2からの異常通知に応じてMG-ECU2を停止する。
【0052】
このように、MG-ECU2は、起動時及び停止時に不揮発性メモリ24内の起動状態情報240を更新する。このため、MG-ECU2は、起動時、前回正常に停止したか否かを起動状態情報240から判定することができる。これに対し、他方のMG-ECU1は不揮発性メモリを備えていないため、起動時に異常判定を行うことができない。
【0053】
(インバータの駆動処理)
図5は、インバータ60,61の駆動処理の一例を示すフローチャートである。MG-ECU1,2のCPU10,20は、車両ECU3からの制御指示に従い、一例として以下の処理を実行することによりインバータ60,61をPWM(Pulse Width Modulation)制御する。
【0054】
まず、CPU10,20は、車両ECU3から要求トルクが入力される(ステップSt1)。車両ECU3は、例えばアクセルセンサ41、ブレーキセンサ42、及び車速センサ43の各検出値から要求トルクを算出する。
【0055】
次にCPU10,20は、要求トルクに応じたMG50,51の三相交流電流の電流指令値を算出する(ステップSt2)。例えばCPU10,20は要求トルクから電流指令値マップを参照することにより電流指令値を算出する。
【0056】
次にCPU10,20は電流センサ62,63により三相交流電流の各電流値を検出する(ステップSt3)。なお、CPU10,20は三相交流電流及び電流指令値を3相―2相変換によりd-q座標系において処理してもよい。
【0057】
次にCPU10,20は電流指令値と三相交流電流の各電流値の差分をフィードバック制御することによりMG50,51の電圧指令値を算出する(ステップSt4)。
【0058】
次にCPU10,20は、インバータ60,61に出力するスイッチング信号のデューティ比を電圧指令値から演算する(ステップSt5)。CPU10,20は、符号Gで示されるように、時間軸において、三角波状に変化するキャリア信号を生成して、正弦波状に変化する各相の電圧指令値とキャリア信号の信号値を比較する。キャリア信号は、スイッチング信号のオンオフタイミングを決めるための信号であり、キャリア信号の信号値が電圧指令値以上である場合、スイッチング信号はオフとなり、キャリア信号の信号値が電圧指令値未満である場合、スイッチング信号はオフとなる。CPU10,20は、スイッチング信号がオンとなる時間Ton、及びスイッチング信号がオフとなる時間Toffを算出する。この時間Ton,ToffによりPWM信号のデューティ比が決定される。
【0059】
次にCPU10,20は、スイッチング信号のオンオフのタイミングを信号送受信回路1b,2bにそれぞれ通知する(ステップSt6)。これにより、信号送受信回路1b,2bはスイッチング信号を生成してインバータ60,61に出力する。
【0060】
(MG-ECUの動作)
図6は、MG-ECU1の動作の一例を示すフローチャートである。MG-ECU1は他方のMG-ECU2とは異なり不揮発性メモリを有していないため、電源の瞬断などにより生じた異常を検出することができない。このため、MG-ECU1は起動時間を計時して車両ECU3に通知し、車両ECU3は他方のMG-ECU2の異常有りの判定通知を受けたときのMG-ECU1の起動時間からMG-ECU1,2の異常を判定する。
【0061】
まず、CPU10はMG-ECU1の起動処理を行う(ステップSt11)。起動処理には、ROM11からプログラムを読み出しRAM12に展開する処理、ブート処理、及び各種の初期設定処理などが含まれる。
【0062】
次にCPU10は起動時間の計時を開始する(ステップSt12)。ここで、起動時間とは、MG-ECU1の起動時刻からの経過時間である。CPU10は、例えばプログラムに従ってカウンタを生成し、起動後にカウンタのカウント動作を開始させる。
【0063】
次にCPU10は、車両ECU3からのMG50の制御の指示の有無を判定する(ステップSt13)。CPU10は、MG50の制御の指示を受けている場合(ステップSt13のYes)、インバータ60の駆動処理を開始する(ステップSt14)。
【0064】
次にCPU10は、車両ECU3からのMG51の制御の指示の有無を判定する(ステップSt15)。車両ECU3は、MG-ECU1,2のうち、MG-ECU2だけが異常である場合、MG-ECU2に代えてMG-ECU1にMG51の制御を指示する。CPU10は、MG51の制御の指示を受けている場合(ステップSt15のYes)、インバータ61の駆動処理を開始する(ステップSt16)。なお、インバータ60,61の駆動処理は、上述したとおりである。
【0065】
また、CPU10は、MG50の制御の指示を受けていない場合(ステップSt13のNo)、またはMG51の制御の指示を受けていない場合(ステップSt15のNo)、以下のステップSt17の動作を実行する。
【0066】
次にCPU10は、車両ECU3からの起動時間の要求の有無を判定する(ステップSt17)。CPU10は、起動時間が要求されている場合(ステップSt17のYes)、起動時間を車両ECU3に通知し(ステップSt18)、起動時間が要求されていない場合(ステップSt17のNo)、以下のステップSt19の動作を実行する。
【0067】
車両ECU3は、他方のMG-ECU2が異常有りと判定した場合、起動時間に基づいてMG-ECU1の異常の有無を判定する。これにより、車両ECU3は、MG-ECU1,2に異常が発生した場合に応じた適切なフェイルセーフを実現することができる。
【0068】
次にCPU10は、車両ECU3からの停止の指示の有無を判定する(ステップSt19)。CPU10は、停止の指示を受けている場合(ステップSt19のYes)、インバータ60,61の駆動処理などを停止する処理を実行する(ステップSt20)。このとき、MG-ECU1はインバータ60,61の各スイッチング素子をオフ制御する。
【0069】
車両ECU3は、MG-ECU1に異常が発生した場合、またはIGスイッチ40がオフになった場合、MG-ECU1に停止を指示する。その後、CPU10は動作を終了するが、ECUバッテリ44から給電されている場合、所定時間の経過後、ステップSt1から動作を再開する。
【0070】
このように、MG-ECU1は起動時間を車両ECU3に通知する。車両ECU3は、他方のMG-ECU2から異常有りの判定の通知を受けた場合、起動時間からMG-ECU1の異常の有無を判定する。例えばMG-ECU1,2の給電線45にノイズが発生することによりMG-ECU1,2の両方の電源が瞬断した場合、MG-ECU2は異常有りと判定し、その判定時刻におけるMG-ECU1の起動時間は所定の閾値より短くなる(つまり起動直後である)ことから車両ECU3はMG-ECU1の異常の有無を判定することができる。
【0071】
図7は、MG-ECU2の動作の一例を示すフローチャートである。MG-ECU2は、起動時に不揮発性メモリ24内の起動状態情報240を読み出すことにより、電源の瞬断などにより生じた異常を検出することができる。このため、MG-ECU2は、起動状態情報240に基づき異常有りと判定した場合、異常を車両ECU3に通知する。
【0072】
まず、CPU20はMG-ECU2の起動処理を行う(ステップSt31)。起動処理には、ROM21からプログラムを読み出しRAM22に展開する処理、ブート処理、及び各種の初期設定処理などが含まれる。
【0073】
次にCPU20は不揮発性メモリ24から起動状態情報240を読み出し(ステップSt32)、起動状態情報240が「停止」状態を示すか否かを判定する(ステップSt33)。CPU20は、起動状態情報240が「停止」状態を示す場合(ステップSt33のYes)、起動前、MG-ECU2に電源の瞬断などの異常は発生しておらず、正常に停止処理が実行されたと判定し、車両ECU3に異常を通知せず、起動状態情報240を「起動」状態に更新する(ステップSt34)。
【0074】
また、CPU20は、起動状態情報240が「起動」状態を示す場合(ステップSt33のNo)、起動前、MG-ECU2に電源の瞬断などの異常が発生したために正常に停止処理が実行されていないと判定し、異常有りの判定を車両ECU3に通知する(ステップSt40)。これにより、車両ECU3は、MG-ECU2に異常が発生したと判断して、MG-ECU2にMG51に制御の停止を指示する。
【0075】
次にCPU20は、車両ECU3からのMG51の制御の指示の有無を判定する(ステップSt35)。CPU20は、MG51の制御の指示を受けている場合(ステップSt35のYes)、インバータ61の駆動処理を開始する(ステップSt36)。なお、インバータ61の駆動処理は、上述したとおりである。
【0076】
また、CPU20は、MG51の制御の指示を受けていない場合(ステップSt35のNo)、インバータ61の駆動処理を行わず、以下のステップSt37の動作を実行する。
【0077】
次にCPU20は、車両ECU3からの停止の指示の有無を判定する(ステップSt37)。CPU20は、停止の指示を受けている場合(ステップSt37のYes)、インバータ61の駆動処理などを停止する処理を実行する(ステップSt38)。車両ECU3は、MG-ECU2に異常が発生した場合、またはIGスイッチ40がオフになった場合、MG-ECU1に停止を指示する。このとき、MG-ECU2はインバータ61の各スイッチング素子をオフ制御する。なお、CPU20はインバータ61の駆動処理を行っていないときに停止の指示を受けた場合でも、給電の停止に備えた各種の処理を行う。
【0078】
次にCPU20は、起動状態情報240を「停止」状態に更新する(ステップSt39)。このため、CPU20は、次回の起動時、上記のステップSt33において、起動状態情報240が停止状態を示していることからMG-ECU2に異常が発生していないと判定することができる。その後、CPU20は動作を終了するが、ECUバッテリ44から給電されている場合、所定時間の経過後、ステップSt31から動作を再開する。
【0079】
また、CPU20は、停止の指示を受けていない場合(ステップSt37のNo)、再びステップSt37の動作を実行する。
【0080】
このように、MG-ECU2は車両ECU3の指示に従ってMG51の制御を停止する場合、停止記録として不揮発性メモリ24に起動状態情報240=「停止」を書き込み、制御の開始時に起動状態情報240に基づきMG-ECU2の異常の有無を判定する。
【0081】
(車両ECUの動作)
図8は、車両ECU3の動作の一例を示すフローチャートである。
図8において、2箇所の符号Aは互いに連結される。車両ECU3は、MG-ECU2からの異常有無の判定の通知、及びMG-ECU1からの起動時間の通知に基づいてMG-ECU1の異常の有無を判定する。
【0082】
まず、CPU30は車両ECU3の起動処理を行う(ステップSt51)。起動処理には、ROM31からプログラムを読み出しRAM32に展開する処理、ブート処理、及び各種の初期設定処理などが含まれる。
【0083】
次にCPU30は、MG-ECU2から異常有りの判定の通知を受けているか否かを判定する(ステップSt52)。CPU30は、通知を受けていない場合(ステップSt52のNo)、MG-ECU1,2にMG50,51の制御をそれぞれ指示する(ステップSt53)。このとき、CPU30は、制御の指示とともに各MG50,51の要求トルクをMG-ECU1,2にそれぞれ通知する。MG-ECU1,2は制御の指示に従って、MG50,51から要求トルクが出力されるようにインバータ60,61の駆動をそれぞれ開始する。
【0084】
このように、車両ECU3は、MG-ECU2が異常なしと判定した場合、MG-ECU1,2に制御の実行を指示する。このため、MG-ECU2に異常がない場合、MG-ECU2がMG51を制御することができるだけでなく、MG-ECU1もMG50を制御することができる。
【0085】
次にCPU30は、IGスイッチ40がオフであるか否かを判定する(ステップSt54)。IGスイッチ40がオフである場合(ステップSt54のYes)、CPU30は、MG-ECU1,2にMG50,51の制御の停止をそれぞれ指示する(ステップSt55)。MG-ECU1,2は制御の指示に従ってMG50,51の制御の停止などをそれぞれ実行する。
【0086】
次にCPU30は車両ECU3の停止処理を行う(ステップSt56)。その後、CPU30は動作を停止する。
【0087】
また、IGスイッチ40がオンである場合(ステップSt54のNo)、再びステップSt52以降の各動作が実行される。
【0088】
また、CPU30は、異常有りの判定の通知を受けている場合(ステップSt52のYes)、通知がステップSt51の起動処理後の1回目、つまり最初の通知であるか否かを判定する(ステップSt57)。ここで、CPU30は起動処理後の通知の回数を例えばカウンタにより計数する。
【0089】
CPU30は、通知がステップSt51の起動処理後の1回目の通知である場合(ステップSt57のYes)、MG-ECU2に制御の停止を指示する(ステップSt58)。MG-ECU2は、停止の指示に従いインバータ61の駆動を停止する。その後、CPU30は再びステップSt52の動作を行う。このため、MG-ECU2は一時的に制御を停止するが、所定時間経過後に制御を再開する。
【0090】
このように、車両ECU3は、起動後、MG-ECU2が最初に異常有りと判定した場合、MG-ECU2に所定時間だけ制御を停止するように指示する。このため、MG-ECU2の異常状態が一過性である場合、車両ECU3は、MG-ECU2に一時的に制御を停止させることで異常状態を速やかに復旧することができる。
【0091】
また、CPU30は、通知がステップSt51の起動処理後の2回目の通知である場合(ステップSt57のNo)、MG-ECU1の異常の有無を判定するため、MG-ECU1に起動時間の通知を要求する(ステップSt59)。MG-ECU1のCPU10は要求に応じて起動時間をCPU30に通知する。
【0092】
次にCPU30は起動時間を所定の閾値THと比較する(ステップSt60)。CPU30は、起動時間<THが成立する場合(ステップSt60のYes)、MG-ECU1が異常の発生により再起動の直後の状態であると判断し、MG-ECU1,2に制御の停止をそれぞれ指示する(ステップSt61)。ここで、閾値THは、例えばMG-ECU1,2の起動処理の所要時間に基づいて予め設定されている。MG-ECU2だけでなく、MG-ECU1にも電源の瞬断などの異常が生じた場合、MG-ECU1は再起動するため、その起動時間の短さから異常を判定することが可能である。
【0093】
このように、車両ECU3は、MG-ECU2が異常有りと判定した場合、起動時間が閾値未満であるとき、MG-ECU1,2に制御の停止を指示する。このため、MG-ECU1,2は、停止の指示に従ってインバータ60,61の駆動をそれぞれ停止する。これにより、車両ECU3はMG-ECU1,2の異常に応じた適切なフェイルセーフを実現することができる。
【0094】
また、CPU30は、起動時間≧THが成立する場合(ステップSt60のNo)、MG-ECU2のみに異常が発生したと判断し、MG-ECU2に制御の停止を指示する(ステップSt62)。このように車両ECU3は、MG-ECU2が異常有りと判定した場合、起動時間が閾値TH以上であるとき、MG-ECU2に制御の停止を指示する。このため、MG-ECU2は、停止の指示に従ってMG51の制御を停止する。これにより、車両ECU3はMG-ECU2の異常に応じた適切なフェイルセーフを実現することができる。
【0095】
次にCPU30は、MG-ECU1に、MG-ECU2に代えてMG51の制御を指示する(ステップSt63)。MG-ECU1は、制御の指示に従ってインバータ61を駆動する。
【0096】
このように車両ECU3は、MG-ECU2が異常有りと判定した場合、起動時間が閾値TH以上であるとき、MG-ECU1にMG50,51の制御の実行を指示する。このため、車両ECU3は、MG-ECU2のみが異常である場合に応じた適切なフェイルセーフを実現することができる。
【0097】
次にCPU30は、IGスイッチ40がオフであるか否かを判定する(ステップSt64)。IGスイッチ40がオフである場合(ステップSt64のYes)、CPU30は、MG-ECU1にMG50,51の制御の停止をそれぞれ指示する(ステップSt65)。MG-ECU1は、制御の停止の指示に従い、インバータ60,61に駆動を停止することによりMG50,51の制御を停止する。
【0098】
また、IGスイッチ40がオンである場合(ステップSt64のNo)、CPU30は、再びステップSt63の動作を実行する。このようにして車両ECU3は動作する。
【0099】
このように、車両ECU3は、MG-ECU2の異常有無の判定結果に加え、MG-ECU1の起動時間に基づいて、MG-ECU1,2の両方の異常を判定して適切なフェイルセーフを実現することができる。
【0100】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【0101】
1 MG-ECU(第1コンピュータ)
2 MG-ECU(第2コンピュータ)
3 車両ECU(第3コンピュータ)
9 車両制御装置
24 不揮発性メモリ
50 モータジェネレータ(第1駆動力源)
51 モータジェネレータ(第2駆動力源)
60,61 インバータ
90 車両