(57)【要約】【課題】タイマ部に異常が生じたときでも、走行用モータを制御可能にして走行（退避走行）可能にする。【解決手段】タイマ部が異常であるときに、クロック信号を第２カウント値としてカウントすると共にサブ処理部によりサブ処理が実行されているときにはクロック信号のカウントを中断し、第２カウント値を用いて時間を予測する時間予測部と、各サブ処理と各サブ処理の規定の処理時間とを関連づけて処理時間リストとして記憶する処理時間記憶部と、を備える。そして、メイン制御部は、タイマ部が異常であるときには、時間予測部により予測される時間を用いてメイン処理を周期的に実行し、時間予測部は、第２カウント値に対応する時間と、処理時間リストにおけるサブ処理部により実行されたサブ処理の規定の処理時間と、を用いて時間を予測する。【選択図】図４
2018107875.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号を生成するクロック部と、
前記クロック信号を第１カウント値としてカウントすると共に前記第１カウント値を用いて時間を測定するタイマ部と、
前記タイマ部により測定される時間を用いてメイン処理を周期的に実行して走行用モータを制御するメイン制御部と、
各サブ処理をそれぞれ実行するサブ処理部と、
を備える走行用モータの制御装置であって、
前記タイマ部が異常であるときに、前記クロック信号を第２カウント値としてカウントすると共に前記サブ処理部によりサブ処理が実行されているときには前記クロック信号のカウントを中断し、前記第２カウント値を用いて時間を予測する時間予測部と、
前記各サブ処理と前記各サブ処理の規定の処理時間とを関連づけて処理時間リストとして記憶する処理時間記憶部と、
を備え、
前記メイン制御部は、前記タイマ部が異常であるときには、前記時間予測部により予測される時間を用いて前記メイン処理を周期的に実行し、
前記時間予測部は、前記第２カウント値に対応する時間と、前記処理時間リストにおける前記サブ処理部により実行されたサブ処理の規定の処理時間と、を用いて時間を予測する、
走行用モータの制御装置。
【請求項２】
請求項１記載の走行用モータの制御装置であって、
前記時間予測部は、前記メイン処理の規定の実行周期と前記時間予測部により予測される時間とを用いて次回の前記メイン処理の実行開始までの残時間を演算し、前記処理時間リストにおける前記残時間よりも規定の処理時間の長いサブ処理の実行を禁止する、
走行用モータの制御装置。
【請求項３】
請求項１または２記載の走行用モータの制御装置であって、
前記各サブ処理と前記各サブ処理に関する変数とを関連づけて変数リストとして記憶すると共に、前記変数リストにおける前記サブ処理部により実行されたサブ処理に関する変数を更新する変数管理部を備え、
前記時間予測部は、前記変数リストにおける少なくとも１つの変数が更新されたか否かを判定することによって、前記サブ処理部により少なくとも１つのサブ処理が実行されたか否かを判定すると共に、前記変数リストにおける変更された少なくとも１つの変数に基づいて、前記サブ処理部により実行された少なくとも１つのサブ処理を特定する、
走行用モータの制御装置。
【請求項４】
請求項１ないし３のいずれか１つの請求項に記載の走行用モータの制御装置であって、
前記時間予測部は、前記メイン制御部による前記メイン処理の実行開始時に前記サブ処理部による全てのサブ処理の実行を禁止し、前記メイン制御部による前記メイン処理の実行終了時に前記サブ処理部による全てのサブ処理の実行の禁止を解除する、
走行用モータの制御装置。
【請求項５】
請求項１ないし４のいずれか１つの請求項に記載の走行用モータの制御装置であって、
前記時間予測部は、前記メイン制御部による前記メイン処理の実行終了時に、前記第２カウント値および予測する時間を値０にリセットする、
走行用モータの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、走行用モータの制御装置に関する。
【背景技術】
【０００２】
従来、この種の走行用モータの制御装置としては、走行用モータを制御する制御用マイコンとして、周期的なパルス信号であるウォッチドッグ信号を監視用マイコンに送信するものが提案されている（例えば、特許文献１参照）。監視用マイコンは、制御用マイコンからウォッチドッグ信号が規定時間に亘って入力されないときに、制御用マイコンに異常があると判断し、制御用マイコンにリセット信号を出力する。すると、制御用マイコンは、一定時間に亘って電力供給が遮断されて停止される（リセットされる）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−６０８４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の制御用マイコンでは、クロック信号をカウントして時間を測定すると共にウォッチドッグ信号を生成するタイマ部に異常が生じたときに、ウォッチドッグ信号を出力することができずに、制御用マイコンが停止されてしまう。しかし、タイマ部に異常が生じてウォッチドッグ信号を出力できないときでも、時間をある程度精度よく把握できれば、その時間を用いて周期的に走行用モータを制御可能であると考えられる。このため、時間をある程度精度よく把握可能にすることにより、走行用モータを制御可能にして走行（退避走行）可能にすることが要請される。
【０００５】
本発明の走行用モータの制御装置は、タイマ部に異常が生じたときでも、走行用モータを制御可能にして走行（退避走行）可能にすることを主目的とする。
【課題を解決するための手段】
【０００６】
本発明の走行用モータの制御装置は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明の走行用モータの制御装置は、
クロック信号を生成するクロック部と、
前記クロック信号を第１カウント値としてカウントすると共に前記第１カウント値を用いて時間を測定するタイマ部と、
前記タイマ部により測定される時間を用いてメイン処理を周期的に実行して走行用モータを制御するメイン制御部と、
各サブ処理をそれぞれ実行するサブ処理部と、
を備え、車載される走行用モータの制御装置であって、
前記タイマ部が異常であるときに、前記クロック信号を第２カウント値としてカウントすると共に前記サブ処理部によりサブ処理が実行されているときには前記クロック信号のカウントを中断し、前記第２カウント値を用いて時間を予測する時間予測部と、
前記各サブ処理と前記各サブ処理の規定の処理時間とを関連づけて処理時間リストとして記憶する処理時間記憶部と、
を備え、
前記メイン制御部は、前記タイマ部が異常であるときには、前記時間予測部により予測される時間を用いて前記メイン処理を周期的に実行し、
前記時間予測部は、前記第２カウント値に対応する時間と、前記処理時間リストにおける前記サブ処理部により実行されたサブ処理の規定の処理時間と、を用いて時間を予測する、
ことを要旨とする。
【０００８】
この本発明の走行用モータの制御装置では、タイマ部が異常であるときに、クロック信号を第２カウント値としてカウントすると共にサブ処理部によりサブ処理が実行されているときにはクロック信号のカウントを中断し、第２カウント値を用いて時間を予測する時間予測部と、各サブ処理と各サブ処理の規定の処理時間とを関連づけて処理時間リストとして記憶する処理時間記憶部と、を備える。そして、メイン制御部は、タイマ部が異常であるときには、時間予測部により予測される時間を用いてメイン処理を周期的に実行し、時間予測部は、第２カウント値に対応する時間と、処理時間リストにおけるサブ処理部により実行されたサブ処理の規定の処理時間と、を用いて時間を予測する。これにより、実行された割込処理の規定の処理時間を考慮せずに時間を予測するものに比して、予測される時間と実際の時間とのずれを小さくする（時間をある程度精度よく予測する）ことができる。この結果、タイマ部に異常が生じたときでも、予測される時間を用いてメイン制御部によりメイン処理を実行することにより、走行用モータを制御して走行する（退避走行を行なう）ことができる。なお、実行された割込処理について、規定の処理時間を用いるから、タイマ部により割込処理の実際の実行時間も含めて時間を測定する場合とは異なり、予測時間と実際の時間とに若干のずれが生じる可能性がある。
【０００９】
こうした本発明の走行用モータの制御装置において、前記時間予測部は、前記メイン処理の規定の実行周期と前記時間予測部により予測される時間とを用いて次回の前記メイン処理の実行開始までの残時間を演算し、前記処理時間リストにおける前記残時間よりも規定の処理時間の長いサブ処理の実行を禁止するものとしてもよい。これにより、予測時間がメイン処理の規定の実行周期を大きく超えるのを抑制することができ、実際の時間がメイン処理の規定の実行周期を大きく超えるのを抑制することができる。この結果、メイン処理の実際の実行周期が大きくバラつくのを抑制することができ、走行用モータをより適切に制御して走行することができる。
【００１０】
また、本発明の走行用モータの制御装置において、前記各サブ処理と前記各サブ処理に関する変数とを関連づけて変数リストとして記憶すると共に、前記変数リストにおける前記サブ処理部により実行されたサブ処理に関する変数を更新する変数管理部を備え、前記時間予測部は、前記変数リストにおける少なくとも１つの変数が更新されたか否かを判定することによって、前記サブ処理部により少なくとも１つのサブ処理が実行されたか否かを判定すると共に、前記変数リストにおける変更された少なくとも１つの変数に基づいて、前記サブ処理部により実行された少なくとも１つのサブ処理を特定するものとしてもよい。こうすれば、変数リストを用いて、少なくとも１つのサブ処理が実行されたか否かを判定すると共に実行された少なくとも１つのサブ処理を特定することができる。
【００１１】
さらに、本発明の走行用モータの制御装置において、前記時間予測部は、前記メイン制御部による前記メイン処理の実行開始時に前記サブ処理部による全てのサブ処理の実行を禁止し、前記メイン制御部による前記メイン処理の実行終了時に前記サブ処理部による全てのサブ処理の実行の禁止を解除する、ものとしてもよい。こうすれば、メイン処理の実際の実行時間がバラつくのを抑制することができる。
【００１２】
加えて、本発明の走行用モータの制御装置において、前記時間予測部は、前記メイン制御部による前記メイン処理の実行終了時に、前記第２カウント値および予測する時間を値０にリセットするものとしてもよい。こうすれば、予測される時間と実際の時間との誤差の累積を回避することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施例としての走行用モータの制御装置を搭載するハイブリッド自動車２０の構成の概略を示す構成図である。
【図２】モータＥＣＵ６０の機能ブロックを示す機能ブロック図である。
【図３】第２モータ制御マイコン６２により実行されるタイマ部異常時処理ルーチンの一例を示すフローチャートである。
【図４】第２モータ制御マイコン６２の時間予測部６２ｈにより実行される予測時間演算処理ルーチンの一例を示すフローチャートである。
【図５】予測時間の演算方法について説明する説明図である。
【発明を実施するための形態】
【００１４】
次に、本発明を実施するための形態を実施例を用いて説明する。
【実施例】
【００１５】
図１は、本発明の一実施例としての走行用モータの制御装置を搭載するハイブリッド自動車２０の構成の概略を示す構成図であり、図２は、モータＥＣＵ６０の機能ブロックを示す機能ブロック図である。実施例のハイブリッド自動車２０は、図１に示すように、エンジン２２と、プラネタリギヤ３０と、モータＭＧ１，ＭＧ２と、インバータ４１，４２と、バッテリ５０と、ハイブリッド用電子制御ユニット（以下、「ＨＶＥＣＵ」という）７０と、を備える。
【００１６】
エンジン２２は、ガソリンや軽油などを燃料として動力を出力する内燃機関として構成されている。このエンジン２２は、エンジン用電子制御ユニット（以下、「エンジンＥＣＵ」という）２４によって運転制御されている。
【００１７】
エンジンＥＣＵ２４は、図示しないが、ＣＰＵを中心とするマイクロプロセッサとして構成されており、ＣＰＵの他に、処理プログラムを記憶するＲＯＭ，データを一時的に記憶するＲＡＭ，入出力ポート，通信ポートなどを備える。エンジンＥＣＵ２４には、エンジン２２を運転制御するのに必要な各種センサからの信号、例えば、エンジン２２のクランクシャフト２６の回転位置を検出するクランクポジションセンサからのクランク角θｃｒなどが入力ポートから入力されている。エンジンＥＣＵ２４からは、エンジン２２を運転制御するための各種制御信号が出力ポートを介して出力されている。エンジンＥＣＵ２４は、ＨＶＥＣＵ７０と通信可能である。エンジンＥＣＵ２４は、クランクポジションセンサからのクランク角θｃｒに基づいてエンジン２２の回転数Ｎｅを演算している。
【００１８】
プラネタリギヤ３０は、シングルピニオン式の遊星歯車機構として構成されている。プラネタリギヤ３０のサンギヤには、モータＭＧ１の回転子が接続されている。プラネタリギヤ３０のリングギヤには、駆動輪３９ａ，３９ｂにデファレンシャルギヤ３８を介して連結された駆動軸３６が接続されている。プラネタリギヤ３０のキャリヤには、ダンパ２８を介してエンジン２２のクランクシャフト２６が接続されている。
【００１９】
モータＭＧ１は、例えば同期発電電動機として構成されており、上述したように、回転子がプラネタリギヤ３０のサンギヤに接続されている。モータＭＧ２は、例えば同期発電電動機として構成されており、回転子が駆動軸３６に接続されている。インバータ４１，４２は、モータＭＧ１，ＭＧ２の駆動に用いられると共に電力ライン５４を介してバッテリ５０に接続されている。モータＭＧ１，ＭＧ２は、走行用モータの制御装置としてのモータ用電子制御ユニット（以下、「モータＥＣＵ」という）６０によって、インバータ４１，４２の図示しない複数のスイッチング素子がスイッチング制御されることにより、回転駆動される。
【００２０】
モータＥＣＵ６０は、図２に示すように、第１，第２モータ制御用マイクロコンピュータ（以下、「第１，第２モータ制御マイコン」という）６１，６２と、第１，第２監視用マイクロコンピュータ（以下、「第１，第２監視マイコン」という）６３、６４と、を備える。第１，第２モータ制御マイコン６１，６２は、モータＭＧ１，ＭＧ２の制御用のマイコンであり、第１，第２監視用マイコン６３，６４は、第１，第２モータ制御マイコン６１，６２の監視用のマイコンである。第１，第２モータ制御マイコン６１，６２および第１，第２監視マイコン６３，６４は、それぞれ、図示しないが、ＣＰＵを中心とするマイクロプロセッサとして構成されており、ＣＰＵの他に、処理プログラムを記憶するＲＯＭ，データを一時的に記憶するＲＡＭ，入出力ポート，通信ポートなどを備える。第１モータ制御マイコン６１は、第２モータ制御マイコン６２や第１監視マイコン６３，ＨＶＥＣＵ７０と通信ポートを介して接続されている。第２モータ制御マイコン６２は、第１モータ制御マイコン６１や第２監視マイコン６４，ＨＶＥＣＵ７０と通信ポートを介して接続されている。以下、第２モータ制御マイコン６２および第２監視マイコン６４について説明する。なお、第１モータ制御マイコン６１および第１監視マイコン６３は、第２モータ制御マイコン６２および第２監視マイコン６４と同様である。
【００２１】
第２モータ制御マイコン６２は、機能ブロックとして、クロック部６２ａと、タイマ部６２ｂと、メイン制御部６２ｃと、サブ処理部としての割込処理部６２ｄと、データ取得演算部６２ｅと、処理時間記憶部６２ｆと、変数管理部６２ｇと、時間予測部６２ｈと、を備える。なお、実施例では、この機能ブロックにおいて、クロック部６２ａやタイマ部６２ｂについてはハードウェアにより実現し、それ以外についてはソフトウェアにより実現するものとした。しかし、各部について、ハードウェアにより実現するかソフトウェアにより実現するかは適宜選択可能である。
【００２２】
クロック部６２ａは、一定周期（例えば数十ｎｓｅｃ程度の周期）のパルス信号としてのクロック信号を生成する。タイマ部６２ｂは、クロック部６２ａからのクロック信号を第１カウント値Ｃ１としてカウントすると共に第１カウント値Ｃ１を用いて（クロック信号の周期と第１カウント値Ｃ１との積として）時間を測定する。さらに、タイマ部６２ｂは、第１カウント値Ｃ１に基づいて一定周期（例えば、数μｓｅｃ程度の周期）のパルス信号としてのウォッチドッグタイマ信号を生成して第２監視マイコン６４に送信する。なお、タイマ部６２ｂは、割込処理部６２ｄにより割込処理が実行されているか否かに拘わらずに時間を測定することができる。
【００２３】
メイン制御部６２ｃは、タイマ部６２ｂにより測定される時間（以下、「測定時間」という）または時間予測部６２ｈにより予測される時間（以下、「予測時間」という）を用いて、周期的に（例えば、２．５ｍｓｅｃ程度の周期で）メイン処理を実行してインバータ４２の複数のスイッチング素子をスイッチング制御することにより、モータＭＧ２を駆動制御する。メイン処理については後述する。
【００２４】
サブ処理部としての割込処理部６２ｄは、各サブ処理としての各割込処理を、それぞれ、メイン制御部６２ｃによりメイン処理が実行されていないときにはそのまま実行し、メイン制御部６２ｃによりメイン処理が実行されているときにはメイン処理の実行を中断させて実行する。ここで、各割込処理としては、測定時間または予測時間を用いて一定周期（例えば、０．５ｍｓｅｃや２．５ｍｓｅｃ，５ｍｓｅｃなどの周期）で実行する割込処理と、不定の周期で実行する割込処理とがある。一定周期で実行する割込処理としては、図示しない異常診断部により各センサ等の異常診断を行なう処理などを挙げることができる。不定の周期で実行する処理としては、後述のデータ取得演算部６２ｅによりデータの取得や演算を行なう処理などを挙げることができる。
【００２５】
データ取得演算部６２ｅは、割込処理部６２ｄによる割込処理として、回転位置検出センサからモータＭＧ２の回転子の回転位置θｍ２を取得する処理や、電流センサからモータＭＧ２の各相の相電流（アナログ値）Ｉｕ２，Ｉｖ２を取得する処理，第１モータ制御マイコン６１やＨＶＥＣＵ７０と通信してデータをやりとりする処理，回転位置θｍ２に基づいてモータＭＧ２の電気角θｅ２や回転数Ｎｍ２を演算する処理，電流センサからの相電流（アナログ値）Ｉｕ２，Ｉｖ２を相電流（デジタル値）Ｉｕ２，Ｉｖ２に変換する処理などを実行する。
【００２６】
処理時間記憶部６２ｆは、各割込処理と各割込処理の規定の処理時間とを関連づけて処理時間リストとして記憶する。ここで、規定の処理時間は、実験や解析によって定められる。変数管理部６２ｇは、各割込処理と各割込処理に関する変数とを関連づけて変数リストとして記憶すると共に、割込処理部６２ｄにより割込処理が実行されたときに、変数リストにおける実行された割込処理に関する変数を更新する。ここで、変数としては、例えば、各割込処理の実行回数や、取得したり演算したりした値（回転位置θｍ２や相電流（デジタル値）Ｉｕ２，Ｉｖ２など）などを用いることができる。なお、後者の場合、更新の前後で変数の値が同一になる可能性があることから、前者を用いるのが好ましい。
【００２７】
時間予測部６２ｈは、タイマ部６２ｂが異常であるときに、クロック部６２ａからのクロック信号を第２カウント値Ｃ２としてカウントすると共に割込処理部６２ｄにより割込処理が実行されているときにはクロック信号のカウントを中断し、第２カウント値Ｃ２を用いて時間を予測する（予測時間を演算する）。また、時間予測部６２ｈは、割込処理部６２ｄによる割込処理の実行を禁止したり禁止を解除したりする。実施例では、割込処理部６２ｄにより割込処理が実行されているときには、時間予測部６２ｈによるクロック信号のカウント用のリソース（ＣＰＵの処理能力やＲＡＭの容量）が割込処理部６２ｄによる割込処理の実行用に割り当てられるために、時間予測部６２ｈによるクロック信号のカウントが中断するものとした。言い換えれば、割込処理部６２ｄにより割込処理が実行されているときに時間予測部６２ｈによるクロック信号のカウントが中断することにより、ＣＰＵの処理能力やＲＡＭの容量の高性能化（コストの増加）を抑制することができる。また、時間予測部６２ｈは、割込処理部６２ｄによる割込処理の実行によってクロック信号のカウントを中断したことを直接に認識することができない。
【００２８】
また、第２モータ制御マイコン６２は、第２監視マイコン６４からのタイマ部異常フラグＦｔの値を調べることにより、タイマ部６２ｂが正常か否かを認識する。
【００２９】
第２監視マイコン６４は、第２モータ制御マイコン６２のタイマ部６２ｂからウォッチドッグタイマ信号を受信し、タイマ部６２ｂが正常であるか異常であるかを判定する。そして、タイマ部６２ｂが正常であるときにはタイマ部異常フラグＦｔに値０を設定し、タイマ部６２ｂが異常であるときにはタイマ部異常フラグＦｔに値１を設定し、このタイマ部異常フラグＦｔを第２モータ制御マイコン６２に送信する。タイマ部異常フラグＦｔに値１を設定する場合としては、例えば、所定時間に亘って第２モータ制御マイコン６２からウォッチドッグタイマ信号を受信していないときを挙げることができる。
【００３０】
バッテリ５０は、例えばリチウムイオン二次電池やニッケル水素二次電池として構成されており、上述したように、電力ライン５４を介してインバータ４１，４２に接続されている。このバッテリ５０は、バッテリ用電子制御ユニット（以下、「バッテリＥＣＵ」という）５２によって管理されている。
【００３１】
バッテリＥＣＵ５２は、図示しないが、ＣＰＵを中心とするマイクロプロセッサとして構成されており、ＣＰＵの他に、処理プログラムを記憶するＲＯＭ，データを一時的に記憶するＲＡＭ，入出力ポート，通信ポートなどを備える。バッテリＥＣＵ５２には、バッテリ５０を管理するのに必要な各種センサからの信号が入力ポートを介して入力されている。バッテリＥＣＵ５２に入力される信号としては、例えば、バッテリ５０の端子間に設置された電圧センサからのバッテリ５０の電圧Ｖｂやバッテリ５０の出力端子に取り付けられた電流センサからのバッテリ５０の電流Ｉｂ，バッテリ５０に取り付けられた温度センサからのバッテリ５０の温度Ｔｂを挙げることができる。バッテリＥＣＵ５２は、ＨＶＥＣＵ７０と通信ポートを介して接続されている。バッテリＥＣＵ５２は、電流センサからのバッテリ５０の電流Ｉｂの積算値に基づいて蓄電割合ＳＯＣを演算している。蓄電割合ＳＯＣは、バッテリ５０の全容量に対するバッテリ５０から放電可能な電力の容量の割合である。
【００３２】
ＨＶＥＣＵ７０は、図示しないが、ＣＰＵを中心とするマイクロプロセッサとして構成されており、ＣＰＵの他に、処理プログラムを記憶するＲＯＭ，データを一時的に記憶するＲＡＭ，入出力ポート，通信ポートなどを備える。ＨＶＥＣＵ７０には、各種センサからの信号が入力ポートを介して入力されている。ＨＶＥＣＵ７０に入力される信号としては、例えば、イグニッションスイッチ８０からのイグニッション信号や、シフトレバー８１の操作位置を検出するシフトポジションセンサ８２からのシフトポジションＳＰを挙げることができる。また、アクセルペダル８３の踏み込み量を検出するアクセルペダルポジションセンサ８４からのアクセル開度Ａｃｃや、ブレーキペダル８５の踏み込み量を検出するブレーキペダルポジションセンサ８６からのブレーキペダルポジションＢＰ，車速センサ８８からの車速Ｖも挙げることができる。ＨＶＥＣＵ７０は、上述したように、エンジンＥＣＵ２４，モータＥＣＵ６０，バッテリＥＣＵ５２と通信ポートを介して接続されている。
【００３３】
こうして構成された実施例のハイブリッド自動車２０では、アクセル開度Ａｃｃと車速Ｖとに基づいて駆動軸３６の要求駆動力を設定し、要求駆動力に見合う要求動力が駆動軸３６に出力されるように、エンジン２２とモータＭＧ１，ＭＧ２とを運転制御する。エンジン２２およびモータＭＧ１，ＭＧ２の運転モードとしては、例えば、以下の（１）〜（３）のモードを挙げることができる。
（１）トルク変換運転モード：要求動力に対応する動力がエンジン２２から出力されるようにエンジン２２を運転制御すると共に、エンジン２２から出力される動力の全てが、プラネタリギヤ３０とモータＭＧ１，ＭＧ２とによってトルク変換されて、要求動力が駆動軸３６に出力されるようにモータＭＧ１，ＭＧ２を駆動制御するモード
（２）充放電運転モード：要求動力とバッテリ５０の充放電に必要な電力との和に見合う動力がエンジン２２から出力されるようにエンジン２２を運転制御すると共に、エンジン２２から出力される動力の全てまたは一部が、バッテリ５０の充放電を伴ってプラネタリギヤ３０とモータＭＧ１，ＭＧ２とによってトルク変換されて、要求動力が駆動軸３６に出力されるようにモータＭＧ１，ＭＧ２を駆動制御するモード
（３）モータ運転モード：エンジン２２の運転を停止して、要求動力が駆動軸３６に出力されるようにモータＭＧ２を駆動制御するモード
【００３４】
また、実施例のハイブリッド自動車２０では、第２モータ制御マイコン６２によりモータＭＧ２を駆動制御する際には、基本的には、メイン制御部６２ｃが、タイマ部６２ｂにより測定される測定時間を用いて、周期的に（例えば、２．５ｍｓｅｃ程度の周期で）メイン処理を実行して、インバータ４２の複数のスイッチング素子をスイッチング制御する。なお、第１モータ制御マイコン６１によるモータＭＧ１の駆動制御は、第２モータ制御マイコン６２によるモータＭＧ２の駆動制御と同様に行なわれる。
【００３５】
メイン処理では、割込処理部６２ｄによる割込処理によりそれまでに得られた最新のモータＭＧ２のパワー指令Ｐｍ２＊や電気角θｅ２，回転数Ｎｍ２，相電流（デジタル値）Ｉｕ２，Ｉｖ２などのデータを参照し、パワー指令Ｐｍ２＊を回転数Ｎｍ２で除してモータＭＧ２のトルク指令Ｔｍ２＊を計算し、モータＭＧ２がトルク指令Ｔｍ２＊で駆動されるようにインバータ４２の駆動指令を生成してインバータ４２に出力する。パルス幅変調制御（ＰＷＭ制御）によってインバータ４２を制御する際には、インバータ４２の駆動指令は、例えば、モータＭＧ２の相電流Ｉｕ２，Ｉｖ２をｄ軸，ｑ軸の電流Ｉｄ２，Ｉｑ２に座標変換（３相−２相変換）し、モータＭＧ２のトルク指令Ｔｍ２＊に基づいてｄ軸，ｑ軸の電流指令Ｉｄ２＊，Ｉｑ２＊を設定し、ｄ軸，ｑ軸の電流指令Ｉｄ２＊，Ｉｑ２＊および電流Ｉｄ２，Ｉｑ２に基づいてｄ軸，ｑ軸の電圧指令Ｖｄ２＊，Ｖｑ２＊を設定し、ｄ軸，ｑ軸の電圧指令Ｖｄ２＊，Ｖｑ２＊を各相の電圧指令Ｖｕ２＊，Ｖｖ２＊，Ｖｗ２＊に座標変換（２相−３相変換）し、この電圧指令Ｖｕ２＊，Ｖｖ２＊，Ｖｗ２＊と搬送波（三角波）電圧との比較によってＰＷＭ信号を生成することによって生成される。割込処理部６２ｄによる割込処理については上述した。
【００３６】
次に、こうして構成された実施例のハイブリッド自動車２０の動作、特に、モータＥＣＵ６０の第２モータ制御マイコン６２のタイマ部６２ｂが異常であるときの第２モータ制御マイコン６２による処理について説明する。図３は、第２モータ制御マイコン６２により実行されるタイマ部異常時処理ルーチンの一例を示すフローチャートである。このルーチンは、タイマ部６２ｂが異常であるときに繰り返し実行される。なお、上述したように、第２モータ制御マイコン６２は、第２監視マイコン６４からのタイマ部異常フラグＦｔの値を調べることにより、タイマ部６２ｂが正常か否かを認識する。
【００３７】
図３のタイマ部異常時処理ルーチンが実行されると、時間予測部６２ｈは、図４の予測時間演算処理によって予測時間を演算し（ステップＳ１００）、演算した予測時間がメイン制御部６２ｃによるメイン処理の規定の実行周期（モータＭＧ２の規定の制御周期）に到達したか否かを判定し（ステップＳ１１０）、予測時間がメイン制御部６２ｃによるメイン処理の規定の実行周期に到達していないと判定されたときには、ステップＳ１００に戻る。そして、ステップＳ１００，Ｓ１１０の処理を繰り返し実行して、予測時間がメイン制御部６２ｃによるメイン処理の規定の実行周期に到達するのを待つ。ここで、メイン制御部６２ｃによるメイン処理の規定の実行周期としては、タイマ部６２ｂが正常であるときと同様に、例えば、２．５ｍｓｅｃ程度を用いることができる。
【００３８】
ステップＳ１１０で予測時間がメイン制御部６２ｃによるメイン処理の規定の実行周期に到達したと判定されると、時間予測部６２ｈは、割込処理部６２ｄによる全ての割込処理の実行を禁止する（ステップＳ１２０）。続いて、メイン制御部６２ｃは、メイン処理を実行する（ステップＳ１３０〜Ｓ１５０）。具体的には、割込処理部６２ｄによる割込処理によりそれまでに得られた最新のモータＭＧ２のパワー指令Ｐｍ２＊や回転数Ｎｍ２などのデータを参照し（ステップＳ１３０）、パワー指令Ｐｍ２＊を回転数Ｎｍ２で除してモータＭＧ２のトルク指令Ｔｍ２＊を計算し（ステップＳ１４０）、モータＭＧ２がトルク指令Ｔｍ２＊で駆動されるようにインバータ４２の駆動指令を生成してインバータ４２に出力する（ステップＳ１５０）。なお、実施例では、タイマ部６２ｂが異常であるときには、第２モータ制御マイコン６２は、タイマ部６２ｂが異常であることを示す信号をＨＶＥＣＵ７０に送信し、これに応じて、ＨＶＥＣＵ７０は、退避走行用のモータＭＧ２のパワー指令Ｐｍ２＊を設定して第２モータ制御マイコン６２に送信するものとした。
【００３９】
そして、時間予測部６２ｈは、カウント値Ｃ２および予測時間を値０にリセットし（ステップＳ１６０）、割込処理部６２ｄによる全ての割込処理の実行禁止を解除して（ステップＳ１７０）、本ルーチンを終了する。このように、メイン処理の実行終了時にカウント値Ｃ２および予測時間を値０にリセットすることにより、予測時間と実際の時間との誤差の累積を回避することができる。また、メイン処理の実行開始時に全ての割込処理の実行を禁止し、メイン処理の実行終了時に全ての割込処理の実行の禁止を解除することにより、メイン処理の実際の実行時間がバラつくのを抑制することができる。
【００４０】
次に、図３のタイマ部異常時処理ルーチンのステップＳ１００の処理を、図４の予測時間演算処理ルーチンを用いて説明する。図４の予測時間演算処理ルーチンは、第２モータ制御マイコン６２の時間予測部６２ｈにより実行される。図４の予測時間演算処理ルーチンが実行されると、時間予測部６２ｈは、クロック部６２ａからのクロック信号を第２カウント値Ｃ２として値０からカウントして閾値Ｃ２ｒｅｆ（例えば、数百μｓｅｃ程度に相当する値）に到達するのを待つ（ステップＳ２００）。そして、カウント値Ｃ２が閾値Ｃ２ｒｅｆに到達すると、その第２カウント値Ｃ２に対応する時間（クロック信号の周期と第２カウント値Ｃ２との積として得られる時間）だけ予測時間を加算すると共に第２カウント値Ｃ２を値０にリセットする（ステップＳ２０５）。
【００４１】
続いて、変数管理部６２ｇの変数リストをチェックし（ステップＳ２１０）、変数管理部６２ｇの変数リストにおける少なくとも１つの変数が変更されたか否かを判定する（ステップＳ２２０）。この処理は、割込処理部６２ｄにより少なくとも１つの割込処理が実行されたか否かを判定する処理である。上述したように、時間予測部６２ｈは、割込処理部６２ｄにより割込処理が実行されているときには、クロック部６２ａからのクロック信号のカウントを中断するものの、中断したことを直接に認識することができない。このため、変数管理部６２ｇの変数リストにおける少なくとも１つの変数が変更されたか否かを判定することにより、割込処理部６２ｄにより少なくとも１つの割込処理が実行されたか否かを判定するものとした。なお、変数管理部６２ｇの変数リストをチェックすることにより、第２モータ制御マイコン６２のタイマ部６２ｂ以外（具体的には、割込処理部６２ｄやデータ取得演算部６２ｅ，変数管理部６２ｇ）にも異常が生じているか否かを判定することもできる。タイマ部６２に異常が生じてウォッチドッグタイマ信号が停止すると、第２監視マイコン６４は、第２モータ制御マイコン６２が異常であることを把握することができるものの、タイマ部６２ｂだけが異常であるのか他の各部も異常であるのかを判別することはできない。変数リストの少なくとも１つの変数が変更されたときには、割込処理部６２ｄにより割込処理が実行されて変数リストの変数が変更されたと考えられるから、割込処理部６２ｄや変数管理部６２ｇは正常であると考えられる。そして、更新された変数に対応する割込処理がデータ取得演算部６２ｅに関するものであれば、データ取得演算部６２ｅも正常であると考えられる。
【００４２】
ステップＳ２２０で変数管理部６２ｇの変数リストにおける何れの変数も変更されていないと判定されたときには、割込処理部６２ｄにより何れの割込処理も実行されていないと判断し、ステップＳ２００に戻る。
【００４３】
ステップＳ２２０で変数管理部６２ｇの変数リストにおける少なくとも１つの変数が変更されたと判定されたときには、変数リストにおける変更された少なくとも１つの変数に基づいて、割込処理部６２ｄにより実行された少なくとも１つの割込処理を特定する（ステップＳ２３０）。
【００４４】
続いて、処理時間記憶部６２ｆの処理時間リストを用いて、割込処理部６２ｄにより実行された少なくとも１つの割込処理の規定の処理時間を予測時間に加算する（ステップＳ２４０）。上述したように、時間予測部６２ｈは、割込処理部６２ｄにより割込処理が実行されているときには、クロック部６２ａからのクロック信号のカウントを中断することから、このステップＳ２４０の処理を実行することにより、割込処理の実際の実行時間を考慮せずに予測時間を演算するものに比して、予測時間と実際の時間とのずれを小さくする（予測時間をある程度精度よく演算する）ことができる。この結果、タイマ部６２ｂに異常が生じたときでも、予測時間を用いてメイン制御部６２ｃによりメイン処理を実行することにより、モータＭＧ２を駆動制御して走行する（退避走行を行なう）ことができる。なお、実行された割込処理について、規定の処理時間を用いるから、タイマ部６２ｂにより割込処理の実際の実行時間を含めて時間を測定する場合とは異なり、予測時間と実際の時間とに若干のずれが生じる可能性がある。
【００４５】
そして、メイン制御部６２ｃによるメイン処理の規定の実行周期と予測時間との差分として次回のメイン処理（ステップＳ１３０〜Ｓ１５０）の実行開始までの残時間を計算し（ステップＳ２５０）、処理時間記憶部６２ｆの処理時間リストを用いて、各割込処理のうち規定の処理時間が残時間よりも長い割込処理の実行を禁止して（ステップＳ２６０）、本ルーチン終了する。これにより、予測時間がメイン制御部６２ｃによるメイン処理の規定の実行周期（モータＭＧ２の規定の制御周期）を大きく超えるのを抑制することができ、実際の時間がメイン処理の規定の実行周期を大きく超えるのを抑制することができる。この結果、メイン処理の実際の実行周期が大きくバラつくのを抑制することができ、モータＭＧ２をより適切に制御して走行することができる。しかも、各割込処理のうち規定の処理時間が残時間よりも長い割込処理の実行を禁止するから、全ての割込処理を一律に禁止するものに比して、モータＭＧ２のパワー指令Ｐｍ２＊や回転数Ｎｍ２などを可能な限り更新しながらモータＭＧ２を制御することができる。
【００４６】
図５は、予測時間の演算方法について説明する説明図である。図５の最上段は、メイン制御部６２ｃによるメイン処理の規定の実行周期（モータＭＧ２の規定の制御周期）の間の割込処理の様子の一例を示し、図５（ａ）〜図５（ｈ）は、予測時間の演算手順を示す。第２カウント値Ｃ２が閾値Ｃ２ｒｅｆに到達するまでの間に割込処理部６２ｄにより割込処理が実行されないときには、第２カウント値Ｃ２が閾値Ｃ２ｒｅｆに到達したときに（ステップＳ２００）、図５（ａ）〜（ｃ），（ｆ），（ｈ）に示すように、第２カウント値Ｃ２に相当する時間だけ予測時間を加算する（ステップＳ２０５）。一方、第２カウント値Ｃ２が閾値Ｃ２ｒｅｆに到達するまでの間に割込処理部６２ｄにより割込処理が実行されたときには、第２カウント値Ｃ２が閾値Ｃ２ｒｅｆに到達したときに（ステップＳ２００）、図５（ｄ），（ｅ），（ｇ）に示すように、第２カウント値Ｃ２に相当する時間と、実行された割込処理（図５の割込Ａ〜Ｃ）の規定の処理時間と、を予測時間に加算する（ステップＳ２０５，Ｓ２４０）。これにより、割込処理の規定の処理時間を考慮せずに予測時間を演算するものに比して、予測時間と実際の時間とのずれを小さくする（予測時間の演算精度を向上させる）ことができる。また、図５（ｇ）の予測時間の演算後には、残時間と処理時間記憶部６２ｆの処理時間リストを用いて、規定の処理時間が残時間よりも長い割込処理（図５の割込Ａなど）の実行を禁止する。これにより、予測時間がメイン処理の規定の実行周期（モータＭＧ２の規定の制御周期）を大きく超えるのを抑制することができ、実際の時間がメイン処理の規定の実行周期を大きく超えるのを抑制することができる。
【００４７】
以上説明した実施例のハイブリッド自動車２０に搭載されるモータＥＣＵ６０の第２モータ制御マイコン６２では、タイマ部６２ｂが異常であるときには、時間予測部６２ｈは、クロック部６２ａからのクロック信号をカウントした第２カウント値Ｃ２に対応する時間と、処理時間記憶部６２ｆの処理時間リストにおける実行された割込処理の規定の処理時間と、を用いて時間を予測する（予測時間を演算する）。そして、メイン制御部６２ｃは、予測時間を用いて周期的にメイン処理を実行してモータＭＧ２を駆動制御する。これにより、割込処理の実行時間を考慮せずに予測時間を演算するものに比して、予測時間と実際の時間とのずれを小さくする（予測時間をある程度精度よく演算する）ことができる。この結果、タイマ部６２ｂに異常が生じたときでも、予測時間を用いてメイン制御部６２ｃによりメイン処理を実行することにより、モータＭＧ２を駆動制御して走行する（退避走行を行なう）ことができる。
【００４８】
また、実施例の第２モータ制御マイコン６２では、メイン制御部６２ｃによるメイン処理の規定の実行周期（モータＭＧ２の規定の制御周期）と予測時間とを用いて次回のメイン処理の実行開始までの残時間を演算し、処理時間記憶部６２ｆの処理時間リストを用いて、各割込処理のうち規定の処理時間が残時間よりも長い割込処理の実行を禁止する。これにより、予測時間がメイン制御部６２ｃによるメイン処理の規定の実行周期を大きく超えるのを抑制することができ、実際の時間がメイン処理の規定の実行周期を大きく超えるのを抑制することができる。この結果、メイン処理の実際の実行周期が大きくバラつくのを抑制することができ、モータＭＧ２をより適切に制御して走行することができる。
【００４９】
実施例のハイブリッド自動車２０に搭載されるモータＥＣＵ６０の第２モータ制御マイコン６２では、時間予測部６２ｈは、処理時間記憶部６２ｆの処理時間リストにおける、次回のメイン処理の実行開始までの残時間よりも規定の処理時間の長い割込処理の実行を禁止するものとしてもよい。しかし、処理時間リストにおける残時間よりも規定の処理時間の長い割込処理の実行を禁止しないものとしてもよい。
【００５０】
実施例のハイブリッド自動車２０に搭載されるモータＥＣＵ６０の第２モータ制御マイコン６２では、時間予測部６２ｈは、メイン制御部６２ｃによるメイン処理の実行開始時に割込処理部６２ｄによる全ての割込処理の実行を禁止し、メイン制御部６２ｃによるメイン処理の実行終了時に割込処理部６２ｄによる全ての割込処理の実行の禁止を解除するものとした。しかし、時間予測部６２ｈは、メイン制御部６２ｃによるメイン処理の実行中に、割込処理部６２ｄによる少なくとも一部の割込処理の実行を禁止しないものとしてもよい。
【００５１】
実施例のハイブリッド自動車２０に搭載されるモータＥＣＵ６０の第２モータ制御マイコン６２では、時間予測部６２ｈは、メイン処理部６２ｃによるメイン処理の実行終了時にカウント値Ｃ２および予測時間を値０にリセットするものとした。しかし、メイン処理の実行終了時にカウント値Ｃ２および予測時間を値０にリセットしないものとしてもよい。この場合、図３のタイマ部異常時処理ルーチンのステップＳ１１０の処理に代えて、前回のメイン処理の実行終了時からの予測時間の変化量がメイン処理の規定の実行周期（モータＭＧ２の規定の制御周期）に到達したか否かを判定するものとしてもよい。
【００５２】
実施例のハイブリッド自動車２０に搭載されるモータＥＣＵ６０では、第２モータ制御マイコン６２のタイマ部６２ｂが異常であるときの第２モータ制御マイコン６２の処理について説明した。第１モータ制御マイコン６１のタイマ部６１ｂが異常であるときの第１モータ制御マイコン６１の処理については、これと同様に考えることができる。
【００５３】
実施例では、エンジン２２とモータＭＧ１，ＭＧ２とを備えるハイブリッド自動車２０に搭載されるモータＥＣＵ６０の第２モータ制御マイコン６２に本発明を適用するものとした。しかし、走行用モータを備える電気自動車に搭載されるモータＥＣＵのモータ制御マイコンに本発明を適用するものとしてもよい。
【００５４】
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、クロック部６２ａが「クロック部」に相当し、タイマ部６２ｂが「タイマ部」に相当し、メイン制御部６２ｃが「メイン制御部」に相当し、割込処理部６２ｄが「サブ処理部」に相当し、時間予測部６２ｈが「時間予測部」に相当し、処理時間記憶部６２ｆが「処理時間記憶部」に相当する。また、変数管理部６２ｇが「変数管理部」に相当する。
【００５５】
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
【００５６】
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【産業上の利用可能性】
【００５７】
本発明は、走行用モータの制御装置の製造産業などに利用可能である。
【符号の説明】
【００５８】
２０  ハイブリッド自動車、２２  エンジン、２４  エンジン用電子制御ユニット（エンジンＥＣＵ）、２６  クランクシャフト、２８  ダンパ、３０  プラネタリギヤ、３６  駆動軸、３８  デファレンシャルギヤ、３９ａ，３９ｂ  駆動輪、５４  電力ライン、６０  モータ用電子制御ユニット（モータＥＣＵ）、６１  第１モータ制御用マイクロコンピュータ（第１モータ制御マイコン）、６２  第２モータ制御用マイクロコンピュータ（第２モータ制御マイコン）、６２ａ  クロック部、６２ｂ  タイマ部、６２ｃ  メイン制御部、６２ｄ  割込処理部、６２ｅ  データ取得演算部、６２ｆ  処理時間記憶部、６２ｇ  変数管理部、６２ｈ  時間予測部、６３  第１監視用マイクロコンピュータ（第１監視マイコン）、６４  第２監視用マイクロコンピュータ（第２監視マイコン）、７０  ハイブリッド用電子制御ユニット（ＨＶＥＣＵ）、８０  イグニッションスイッチ、８１  シフトレバー、８２  シフトポジションセンサ、８３  アクセルペダル、８４  アクセルペダルポジションセンサ、８５  ブレーキペダル、８６  ブレーキペダルポジションセンサ、８８  車速センサ、ＭＧ１，ＭＧ２  モータ。
【図１】
2018107875.tif 000003
【図２】
2018107875.tif 000004
【図３】
2018107875.tif 000005
【図４】
2018107875.tif 000006
【図５】
2018107875.tif 000007