(57)【要約】【課題】モータの制御指令を生成する第１制御部からモータを制御する第２制御部に送信可能なデータ量が制限されるときでも、第１制御部と第２制御部との通信を伴うモータの制御を可能にする。【解決手段】第１制御部と第２制御部とは、第１通信線を介して互いに接続されると共に、少なくとも１つの第３制御部と共に第２通信線に接続されている。そして、第１通信線に異常が生じていないときには、第１制御部は、制御指令の第１データを第１通信線を介して第２制御部に送信し、第２制御部は、第１データに基づいてモータを制御する。一方、第１通信線に異常が生じたときには、第１制御部は、制御指令に基づいて第１データよりもデータ量の少ない第２データを生成すると共に第２データを第２通信線を介して第２制御部に送信し、第２制御部は、第２データに基づいてモータを制御する。【選択図】図３
2019140835.tif 000002
【特許請求の範囲】
【請求項１】
モータの制御指令を生成する第１制御部と、
前記第１制御部と通信可能で前記モータを制御する第２制御部と、
を備えるモータの制御装置であって、
前記第１制御部と前記第２制御部とは、第１通信線を介して互いに接続されると共に、少なくとも１つの第３制御部と共に第２通信線に接続され、
前記第１通信線に異常が生じていないときには、
前記第１制御部は、前記制御指令の第１データを前記第１通信線を介して前記第２制御部に送信し、
前記第２制御部は、前記第１データに基づいて前記モータを制御し、
前記第１通信線に異常が生じたときには、
前記第１制御部は、前記制御指令に基づいて前記第１データよりもデータ量の少ない第２データを生成すると共に前記第２データを前記第２通信線を介して前記第２制御部に送信し、
前記第２制御部は、前記第２データに基づいて前記モータを制御する、
モータの制御装置。
【請求項２】
請求項１記載のモータの制御装置であって、
前記第１データは、前記モータのトルク指令値の第１ビット数のデータであり、
前記第２データは、前記トルク指令値の変化率に基づく変化率データと、前記トルク指令値に基づく指令値データと、を組み合わせた第２ビット数のデータである、
モータの制御装置。
【請求項３】
請求項２記載のモータの制御装置であって、
前記第２制御部は、前記第２データに含まれる前記変化率データおよび前記指令値データを用いて各時刻の制御用トルクを設定し、前記制御用トルクを用いて前記モータを制御する、
モータの制御装置。
【請求項４】
請求項３記載のモータの制御装置であって、
前記第２制御部は、
前記指令値データを前記トルク指令値に変換し、
前記変化率データに基づいて、前記制御用トルクの時間変化の様子を示した複数のマップから１つのマップを選択し、
選択した前記マップと、今回および前回の前記トルク指令値と、前記第２データを受信してからの経過時間と、に基づいて各時刻の前記制御用トルクを設定する、
モータの制御装置。
【請求項５】
請求項１ないし４のうちの何れか１つの請求項に記載のモータの制御装置であって、
走行用の前記モータと共に車両に搭載され、
前記第１通信線に異常が生じたときには、前記第１制御部と前記第２制御部との前記第２通信線を介した通信を伴って前記第２制御部により前記モータを制御して走行を行なう、
モータの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの制御装置に関する。
【背景技術】
【０００２】
従来、この種のモータの制御装置としては、モータの制御指令を生成する第１制御部と、第１制御部に通信線を介して接続されると共に第１制御部からの制御指令に基づいてモータを制御する第２制御部と、を備えるものが提案されている（例えば、特許文献１参照）。ここで、第１制御部および第２制御部は、パワートレイン系のＣＡＮバスに接続されている。この制御装置では、第１制御部と第２制御部とを接続する通信線に異常が発生したときには、第２制御部は、独自にモータの制御指令を生成してモータを制御する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−３０５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
こうしたモータの制御装置では、第１制御部と第２制御部とを接続する通信線（専用線）に異常が発生したときに、第１制御部から第２制御部にＣＡＮバスを介してデータを送信し、第２制御部によりこのデータに基づいてモータを制御する手法の構築も求められている。ＣＡＮバスは、第１制御部や第２制御部を含む複数の制御部間で種々のデータがやりとりされ、専用線に比してバスの負荷が高くなりやすいから、一般に、通信可能なデータ量が制限される。このため、この手法をどのようにして構築するかが課題となる。
【０００５】
本発明のモータの制御装置は、モータの制御指令を生成する第１制御部からモータを制御する第２制御部に送信可能なデータ量が制限されるときでも、第１制御部と第２制御部との通信を伴うモータの制御を可能にすることを主目的とする。
【課題を解決するための手段】
【０００６】
本発明のモータの制御装置は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明のモータの制御装置は、
モータの制御指令を生成する第１制御部と、
前記第１制御部と通信可能で前記モータを制御する第２制御部と、
を備えるモータの制御装置であって、
前記第１制御部と前記第２制御部とは、第１通信線を介して互いに接続されると共に、少なくとも１つの第３制御部と共に第２通信線に接続され、
前記第１通信線に異常が生じていないときには、
前記第１制御部は、前記制御指令の第１データを前記第１通信線を介して前記第２制御部に送信し、
前記第２制御部は、前記第１データに基づいて前記モータを制御し、
前記第１通信線に異常が生じたときには、
前記第１制御部は、前記制御指令に基づいて前記第１データよりもデータ量の少ない第２データを生成すると共に前記第２データを前記第２通信線を介して前記第２制御部に送信し、
前記第２制御部は、前記第２データに基づいて前記モータを制御する、
ことを要旨とする。
【０００８】
この本発明のモータの制御装置では、第１制御部と第２制御部とは、第１通信線を介して互いに接続されると共に、少なくとも１つの第３制御部と共に第２通信線に接続されている。そして、第１通信線に異常が生じていないときには、第１制御部は、制御指令の第１データを第１通信線を介して第２制御部に送信し、第２制御部は、第１データに基づいてモータを制御する。一方、第１通信線に異常が生じたときには、第１制御部は、制御指令に基づいて第１データよりもデータ量の少ない第２データを生成すると共に第２データを第２通信線を介して第２制御部に送信し、第２制御部は、第２データに基づいてモータを制御する。第２通信線は、第１制御部や第２制御部に加えて、少なくとも１つの第３制御部にも接続され、第１通信線に比して負荷が高くなりやすいから、一般に、通信可能なデータ量が制限される。これを踏まえて、第１通信線に異常が生じたときに、第１制御部が制御指令に基づいて第２データを生成して第２通信線を介して第２制御部に送信し、第２制御部が第２データに基づいてモータを制御することにより、第１制御部から第２制御部に送信可能なデータ量が制限されるときでも、第１制御部と第２制御部との通信を伴うモータの制御を可能にすることができる。
【０００９】
こうした本発明のモータの制御装置において、前記第１データは、前記モータのトルク指令値の第１ビット数のデータであり、前記第２データは、前記トルク指令値の変化率に基づく変化率データと、前記トルク指令値に基づく指令値データと、を組み合わせた第２ビット数のデータであるものとしてもよい。この場合、前記第２制御部は、前記第２データに含まれる前記変化率データおよび前記指令値データを用いて各時刻の制御用トルクを設定し、前記制御用トルクを用いて前記モータを制御するものとしてもよい。この場合、前記第２制御部は、前記指令値データを前記トルク指令値に変換し、前記変化率データに基づいて、前記制御用トルクの時間変化の様子を示した複数のマップから１つのマップを選択し、選択した前記マップと、今回および前回の前記トルク指令値と、前記第２データを受信してからの経過時間と、に基づいて各時刻の前記制御用トルクを設定するものとしてもよい。これらのようにすることにより、モータの制御をより適切に行なうことができる。
【００１０】
本発明のモータの制御装置において、走行用の前記モータと共に車両に搭載され、前記第１通信線に異常が生じたときには、前記第１制御部と前記第２制御部との前記第２通信線を介した通信を伴って前記第２制御部により前記モータを制御して走行を行なうものとしてもよい。こうすれば、退避走行を行なうことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例としてのモータの制御装置を搭載する電気自動車２０の構成の概略を示す構成図である。
【図２】メインＥＣＵ５０により実行される第１処理ルーチンの一例を示すフローチャートである。
【図３】メインＥＣＵ５０により実行される第１異常時処理ルーチンの一例を示すフローチャートである。
【図４】変化率データの設定に用いる４つの変化率マップＡ〜Ｄの一例を示す説明図である。
【図５】モータ３２のトルク指令値Ｔｃｏｍと指令値データとの関係の一例を示す説明図である。
【図６】異常時データの作成の様子を示す説明図である。
【図７】モータＥＣＵ４０により実行される第２処理ルーチンの一例を示すフローチャートである。
【図８】モータＥＣＵ４０により実行される第２異常時処理ルーチンの一例を示すフローチャートである。
【図９】指令値変化率Ｄｍ［ｋ］の設定処理の様子を示す説明図である。
【図１０】メインＥＣＵ５０が図３の第１異常時処理ルーチンを実行すると共にモータＥＣＵ４０が図８の第２異常時処理ルーチンを実行するときのモータＥＣＵ４０でのモータ３２のトルク指令値Ｔｃｏｍおよび制御用トルクＴｍ＊の時間変化の様子の一例を示す説明図である。
【図１１】変形例のモータ３２のトルク指令値Ｔｃｏｍと指令値データとの関係の一例を示す説明図である。
【発明を実施するための形態】
【００１２】
次に、本発明を実施するための形態を実施例を用いて説明する。
【実施例】
【００１３】
図１は、本発明の一実施例としてのモータの制御装置を搭載する電気自動車２０の構成の概略を示す構成図である。図示するように、実施例の電気自動車２０は、モータ３２と、インバータ３４と、蓄電装置としてのバッテリ３６と、モータ用電子制御ユニット（以下、「モータＥＣＵ」という）４０と、メイン電子制御ユニット（以下、「メインＥＣＵ」という）５０と、を備える。実施例では、「モータの制御装置」としては、モータＥＣＵ４０およびメインＥＣＵ５０が該当する。
【００１４】
モータ３２は、例えば同期発電電動機として構成されており、回転子が駆動輪２２ａ，２２ｂにデファレンシャルギヤ２４を介して連結された駆動軸２６に接続されている。インバータ３４は、モータ３２の駆動に用いられると共に電力ライン３８を介してバッテリ３７に接続されている。モータ３２は、モータＥＣＵ４０によってインバータ３４の複数のスイッチング素子がスイッチング制御されることにより、回転駆動される。バッテリ３６は、例えばリチウムイオン二次電池やニッケル水素二次電池として構成されている。
【００１５】
モータＥＣＵ４０は、ＣＰＵ４２を中心とするマイクロプロセッサとして構成されており、ＣＰＵ４２に加えて、処理プログラムを記憶するＲＯＭ４４や、データを一時的に記憶するＲＡＭ４６、入出力ポート、通信ポートを備える。モータＥＣＵ４０には、モータ３２の回転子の回転位置を検出する回転位置センサ３２ａからの回転位置θｍや、モータ３２の各相の相電流を検出する電流センサ３２ｕ，３２ｖからの相電流Ｉｕ，Ｉｖなどのデータが入力ポートを介して入力されている。モータＥＣＵ４０からは、インバータ３４の複数のスイッチング素子へのスイッチング制御信号などが出力ポートを介して出力されている。モータＥＣＵ４０は、第１通信線（ローカル線）７０を介してメインＥＣＵ５０と接続されると共に、メインＥＣＵ５０やバッテリ用電子制御ユニット（以下、「バッテリＥＣＵ」という）４８ａ、ブレーキ用電子制御ユニット（以下、「ブレーキＥＣＵ」という）４８などの各ＥＣＵと共に第２通信線（グローバル線）７２に接続されている。バッテリＥＣＵ４８ａは、バッテリ３６を管理するＥＣＵであり、ブレーキＥＣＵ４８ｂは、駆動輪２２ａ，２２ｂや図示しない従動輪に油圧による制動力を作用させる図示しない油圧ブレーキ装置を制御するＥＣＵである。
【００１６】
メインＥＣＵ５０は、ＣＰＵ５２を中心とするマイクロプロセッサとして構成されており、ＣＰＵ５２に加えて、処理プログラムを記憶するＲＯＭ５４や、データを一時的に記憶するＲＡＭ５６、入出力ポート、通信ポートを備える。メインＥＣＵ５０には、各種センサからの信号が入力ポートを介して入力されている。メインＥＣＵ５０に入力される信号としては、例えば、バッテリ３６の端子間に取り付けられた電圧センサ３６ａからのバッテリ３６の電圧Ｖｂや、バッテリ３６の出力端子に取り付けられた電流センサ３６ｂからのバッテリ３６の電流Ｉｂを挙げることができる。イグニッションスイッチ６０からのイグニッション信号や、シフトレバー６１の操作位置を検出するシフトポジションセンサ６２からのシフトポジションＳＰも挙げることができる。アクセルペダル６３の踏み込み量を検出するアクセルペダルポジションセンサ６４からのアクセル開度Ａｃｃや、ブレーキペダル６５の踏み込み量を検出するブレーキペダルポジションセンサ６６からのブレーキペダルポジションＢＰ、車速センサ６８からの車速Ｖも挙げることができる。メインＥＣＵ５０は、上述したように、第１通信線７０を介してモータＥＣＵ４０と接続されると共に、モータＥＣＵ４０やバッテリＥＣＵ４８ａ、ブレーキＥＣＵ４８ｂなどの各ＥＣＵと共に第２通信線７２に接続されている。
【００１７】
次に、こうして構成された実施例の電気自動車２０の動作、特に、メインＥＣＵ５０およびモータＥＣＵ４０の処理について説明する。以下、メインＥＣＵ５０の処理、モータＥＣＵ４０の処理の順に説明する。図２は、メインＥＣＵ５０により実行される第１処理ルーチンの一例を示すフローチャートである。このルーチンは、第１通信線７０に異常が生じていないときに繰り返し実行される。
【００１８】
なお、以下の説明において、第１通信線７０を介したモータＥＣＵ４０とメインＥＣＵ５０との通信を「第１通信」といい、第２通信線７２を介したモータＥＣＵ４０とメインＥＣＵ５０との通信を「第２通信」という。第２通信は、多くのＥＣＵ間でデータがやりとりされ、第１通信に比して負荷が高くなりやすい。このため、第２通信は、一般に、第１通信に比して通信可能なデータ量が制限されたり通信周期が長くなったりする。
【００１９】
図２の第１処理ルーチンが実行されると、メインＥＣＵ５０は、最初に、第１通信線７０に異常が生じたか否かを判定する（ステップＳ１００）。この判定処理は、例えば、モータＥＣＵ４０との第１通信が所定時間（例えば、１ｓｅｃや１．２ｓｅｃ、１．５ｓｅｃなど）に亘って途絶しているか否かを判定することにより行なわれる。
【００２０】
ステップＳ１００で第１通信線７０に異常が生じていないと判定したときには、モータ３２のトルク指令値Ｔｃｏｍを生成すると共に生成したモータ３２のトルク指令値Ｔｃｏｍを第１通信でモータＥＣＵ４０に送信して（ステップＳ１１０）、本ルーチンを終了する。
【００２１】
ここで、モータ３２のトルク指令値Ｔｃｏｍは、実施例では、１６ビット（２バイト）のデータとして構成されるものとした。モータ３２のトルク指令値Ｔｃｏｍの生成は、アクセルペダルポジションセンサ６４からのアクセル開度Ａｃｃと車速センサ６８からの車速Ｖとに基づいて駆動軸２６に要求される要求トルクＴｄ＊を設定し、設定した要求トルクＴｄ＊をモータ３２のトルク指令値Ｔｃｏｍに設定することにより行なわれる。モータＥＣＵ４０は、後述の第２処理ルーチンにより、メインＥＣＵ５０からモータ３２のトルク指令値Ｔｃｏｍを受信すると、そのトルク指令値Ｔｃｏｍを用いてモータ３２を駆動制御する。
【００２２】
ステップＳ１００で第１通信線７０に異常が生じたと判定したときには、退避走行要求を第２通信でモータＥＣＵ４０に送信する（ステップＳ１２０）。モータＥＣＵ４０は、後述の第２処理ルーチンにより、メインＥＣＵ５０から第２通信で退避走行要求を受信すると、退避走行要求に対する応答信号を第２通信で７０に送信する。そして、メインＥＣＵ５０は、モータＥＣＵ４０から第２通信で応答信号を受信したか否かを判定する（ステップＳ１３０）。
【００２３】
ステップＳ１３０でモータＥＣＵ４０から第２通信で応答信号を受信しなかったと判定したときには、モータＥＣＵ４０が停止または再起動している可能性があると判断し（ステップＳ１４０）、モータＥＣＵ４０の復帰に要する時間（例えば、０．８ｓｅｃや１．０ｓｅｃ、１．２ｓｅｃなど）が経過するのを待つ（ステップＳ１４０）。そして、第２通信での退避走行要求のモータＥＣＵ４０への送信のリトライをｎ回（例えば、２回や３回、４回など）だけ行なったか否かを判定する（ステップＳ１５０）。
【００２４】
ステップＳ１５０で、第２通信での退避走行要求のモータＥＣＵ４０への送信のリトライを未だｎ回だけ行なっていないと判定したときには、ステップＳ１２０に戻る。一方、第２通信での退避走行要求のモータＥＣＵ４０への送信のリトライをｎ回だけ行なったと判定したときには、レディオフして（ステップＳ１６０）、本ルーチンを終了する。
【００２５】
ステップＳ１３０でモータＥＣＵ４０から第２通信で応答信号を受信したと判定したときには、異常時処理の実行開始を指示して（ステップＳ１７０）、本ルーチンを終了する。こうして異常時処理の実行開始を指示すると、メインＥＣＵ５０は、図３の第１異常時処理ルーチンの繰り返しの実行を開始する。
【００２６】
図３の第１異常時処理ルーチンが実行されると、メインＥＣＵ５０は、最初に、図２の第１処理ルーチンのステップＳ１１０の処理と同様に、モータ３２のトルク指令値Ｔｃｏｍを生成する（ステップＳ２００）。続いて、モータ３２の今回のトルク指令値Ｔｃｏｍから前回のトルク指令値Ｔｃｏｍを減じてトルク指令値変化量ΔＴｃｏｍを計算する（ステップＳ２１０）。
【００２７】
そして、トルク指令値変化量ΔＴｃｏｍに基づいて変化率データを設定する（ステップＳ２２０〜Ｓ２８０）。ここで、変化率データは、実施例では、２ビットのデータとして構成されるものとした。図４は、変化率データの設定に用いる４つの変化率マップＡ〜Ｄの一例を示す説明図である。４つの変化率マップは、それぞれ、モータＥＣＵ４０でモータ３２の制御に用いる制御用トルクＴｍ＊の時間変化の様子を示したマップであり、モータＥＣＵ４０のＲＯＭ４４に記憶されている。メインＥＣＵ５０のＲＯＭ５４には、４つの変化率マップに対応する変化率データが記憶されている。変化率データの設定処理では、トルク指令値変化量ΔＴｃｏｍに基づいて、図４の４つの変化率マップＡ〜Ｄのうちモータ３２の制御用トルクＴｍ＊の変化の様子として何れの変化率マップを選択するのが適切であるかを判断し、その変化率マップに対応する変化率データを設定する。以下、具体的に説明する。
【００２８】
最初に、トルク指令値変化量ΔＴｃｏｍを値０と比較し（ステップＳ２２０）、トルク指令値変化量ΔＴｃｏｍが値０よりも大きいときには、トルク指令値Ｔｃｏｍが増加したと判断し、トルク指令値変化量ΔＴｃｏｍの絶対値を閾値ΔＴｒｅｆ１と比較する（ステップＳ２３０）。ここで、閾値ΔＴｒｅｆ１は、モータ３２のトルク指令値Ｔｃｏｍが比較的大きく増加したか否かを判定するのに用いられる閾値であり、例えば、２５Ｎｍや３０Ｎｍ、３５Ｎｍなどが用いられる。
【００２９】
ステップＳ２３０でトルク指令値変化量ΔＴｃｏｍの絶対値が閾値ΔＴｒｅｆ１未満のときには、モータ３２の制御用トルクＴｍ＊を緩やかに増加させる変化率マップＡを選択するのが適切であると判断し、変化率マップＡに対応する変化率データ（２ビットで「００」）を設定する（ステップＳ２４０）。
【００３０】
ステップＳ２３０でトルク指令値変化量ΔＴｃｏｍの絶対値が閾値ΔＴｒｅｆ１以上のときには、モータ３２の制御用トルクＴｍ＊を急峻に増加させる変化率マップＢを選択するのが適切であると判断し、変化率マップＢに対応する変化率データ（２ビットで「０１」）を設定する（ステップＳ２５０）。
【００３１】
ステップＳ２２０でトルク指令値変化量ΔＴｃｏｍが値０以下のときには、トルク指令値Ｔｃｏｍが増加していないと判断し、トルク指令値変化量ΔＴｃｏｍの絶対値を閾値ΔＴｒｅｆ２と比較する（ステップＳ２６０）。ここで、閾値ΔＴｅｒｆ２は、モータ３２のトルク指令値Ｔｃｏｍが比較的大きく減少したか否かを判定するのに用いられる閾値であり、例えば、２５Ｎｍや３０Ｎｍ、３５Ｎｍなどが用いられる。
【００３２】
ステップＳ２６０でトルク指令値変化量ΔＴｃｏｍの絶対値が閾値ΔＴｒｅｆ２未満のときには、モータ３２の制御用トルクＴｍ＊を緩やかに減少させる変化率マップＣを選択するのが適切であると判断し、変化率マップＣに対応する変化率データ（２ビットで「１０」）を設定する（ステップＳ２７０）。
【００３３】
ステップＳ２６０でトルク指令値変化量ΔＴｃｏｍの絶対値が閾値ΔＴｒｅｆ２以上のときには、モータ３２の制御用トルクＴｍ＊を急峻に減少させる変化率マップＤを選択するのが適切であると判断し、変化率マップＤに対応する変化率データ（２ビットで「１１」）を設定する（ステップＳ２８０）。
【００３４】
こうして変化率データを設定すると、モータ３２のトルク指令値Ｔｃｏｍから指令値データを設定する（ステップＳ２９０）。ここで、指令値データは、実施例では、６ビットのデータとして構成されるものとした。図５は、モータ３２のトルク指令値Ｔｃｏｍと指令値データとの関係の一例を示す説明図である。指令値データの設定処理では、図５のマップにモータ３２のトルク指令値Ｔｃｏｍを適用することにより、モータ３２のトルク指令値Ｔｃｏｍを指令値データに変換、即ち、６５５３６段階（１６ビット）のデータを６４段階（６ビット）のデータに変換する。例えば、図５に示すように、モータ３２のトルク指令値Ｔｃｏｍが値Ｔ１のときには、指令値データに４８（６ビットで「１１００００」）を設定する。
【００３５】
そして、変化率データ（２ビットのデータ）と指令値データ（６ビットのデータ）とを組み合わせて異常時データ（８ビットのデータ）を生成すると共に生成した異常時データを第２通信でモータＥＣＵ４０に送信して（ステップＳ３００）、本ルーチンを終了する。モータＥＣＵ４０は、後述の第２処理ルーチンにより、メインＥＣＵ５０から異常時データを受信すると、その異常時データを用いてモータ３２を駆動制御する。
【００３６】
図６は、異常時データの作成の様子を示す説明図である。実施例では、図６に示すように、異常時データのデータサイズ（１バイト）を、モータ３２のトルク指令値Ｔｃｏｍのデータサイズ（２バイト）の半分にすることができる。
【００３７】
ここまで、メインＥＣＵ５０による処理について説明した。次に、モータＥＣＵ４０による処理について説明する。図７は、モータＥＣＵ４０により実行される第２処理ルーチンの一例を示すフローチャートである。このルーチンは、第１通信線７０に異常が生じていないときに繰り返し実行される。
【００３８】
図７の第２処理ルーチンが実行されると、モータＥＣＵ４０は、最初に、第１通信線７０に異常が生じたか否かを判定する（ステップＳ４００）。この判定処理は、例えば、メインＥＣＵ５０との第１通信が所定時間（例えば、１ｓｅｃや１．２ｓｅｃ、１．５ｓｅｃなど）に亘って途絶しているか否かを判定することにより行なわれる。
【００３９】
ステップＳ４００で第１通信線７０に異常が生じていないと判定したときには、メインＥＣＵ５０から第１通信で受信したモータ３２のトルク指令値Ｔｃｏｍを入力し、モータ３２がトルク指令値Ｔｃｏｍで駆動されるようにインバータ３４の複数のスイッチング素子をスイッチング制御することによりモータ３２を駆動制御して（ステップＳ４１０）、本ルーチンを終了する。
【００４０】
ステップＳ４００で第１通信線７０に異常が生じたと判定したときには、メインＥＣＵ５０から第２通信で退避走行要求を受信したか否かを判定し（ステップＳ４２０）、第２通信で退避走行要求を受信していないと判定したときには、退避走行要求を受信するのを待つ。
【００４１】
ステップＳ４２０でメインＥＣＵ５０から第２通信で退避走行要求を受信したと判定したときには、上述したように、退避走行要求に対する応答信号を第２通信でメインＥＣＵ５０に送信し（ステップＳ４３０）、異常時処理の実行開始を指示して（ステップＳ４４０）、本ルーチンを終了する。こうして異常時処理の実行開始を指示すると、モータＥＣＵ４０は、図８の第２異常時処理ルーチンの繰り返しの実行を開始する。
【００４２】
図８の第２異常時処理ルーチンが実行されると、モータＥＣＵ４０は、最初に、メインＥＣＵ５０から第２通信で受信した異常時データを入力し（ステップＳ５００）、入力した異常時データに含まれる指令値データからモータ３２のトルク指令値Ｔｃｏｍを設定する（ステップＳ５１０）。モータ３２のトルク指令値Ｔｃｏｍの設定処理では、図５のマップを用いて指令値データをモータ３２のトルク指令値Ｔｃｏｍに変換する。例えば、指令値データが４８のときには、モータ３２のトルク指令値Ｔｃｏｍに値Ｔ１を設定する。なお、メインＥＣＵ５０でモータ３２のトルク指令値Ｔｃｏｍ（１６ビットのデータ）から指令値データ（６ビットのデータ）に変換し、モータＥＣＵ４０で指令値データからモータ３２のトルク指令値Ｔｃｏｍに変換するから、メインＥＣＵ５０でのモータ３２のトルク指令値ＴｃｏｍとモータＥＣＵ４０でのモータ３２のトルク指令値Ｔｃｏｍとはずれる場合がある。
【００４３】
続いて、異常時データに含まれる変化率データから変化率マップを選択する（ステップＳ５２０）。上述したように、モータＥＣＵ４０のＲＯＭ４４には、４つの変化率マップＡ〜Ｄが記憶されている（図４参照）。したがって、変化率マップの選択処理では、４つの変化率マップＡ〜Ｄから変化率データ（２ビットのデータ）に対応する変化率マップを選択する。
【００４４】
そして、選択した変化率マップと異常時データを受信してからの経過時間（以下、「受信後時間」という）ｋとに基づいて指令値変化率Ｄｍ［ｋ］を設定する（ステップＳ５３０）。図９は、指令値変化率Ｄｍ［ｋ］の設定処理の様子を示す説明図である。図９では、図４の変化率マップＡを選択したときの様子を示した。指令値変化率Ｄｍ［ｋ］の設定処理では、選択した変化率マップ（図９では変化率マップＡ）に受信後時間ｋを適用することにより、指令値変化率Ｄｍ［ｋ］を設定する。例えば、図９に示すように、受信後時間ｋが値ｋ１のときには、指令値変化率Ｄｍ［ｋ］に値Ｄｍ［ｋ１］を設定する。
【００４５】
こうして指令値変化率Ｄｍ［ｋ］を設定すると、式（１）に示すように、モータ３２の今回のトルク指令値Ｔｃｏｍから前回のトルク指令値（前回Ｔｃｏｍ）を減じた値に指令値変化率Ｄｍ［ｋ］を乗じて指令値変化量ΔＴｍ［ｋ］を計算する（ステップＳ５４０）。続いて、式（２）に示すように、モータ３２の前回のトルク指令値（前回Ｔｃｏｍ）に指令値変化量ΔＴｍ［ｋ］を加えて制御用トルクＴｍ＊を設定する（ステップＳ５５０）。そして、モータ３２が制御用トルクＴｍ＊で駆動されるようにインバータ３４の複数のスイッチング素子をスイッチング制御することによりモータ３２を駆動制御する（ステップＳ５６０）。
【００４６】
ΔTm[k]=(Tcom-前回Tcom)・Dm[k]                  (1)
Tm*[k]=前回Tcom+ΔTm[k]                         (2)
【００４７】
次に、受信後時間ｋを、メインＥＣＵ５０とモータＥＣＵ４０との第２通信線７２を介した通信周期ｋｒｅｆと比較し（ステップＳ５７０）、受信後時間ｋが通信周期ｋｒｅｆ未満のときには、ステップＳ５３０に戻る。こうしてステップＳ５３０〜Ｓ５７０の処理を繰り返し実行し、ステップＳ５７０で受信後時間ｋが通信周期ｋｒｅｆ以上に至ると、本ルーチンを終了する。
【００４８】
図１０は、メインＥＣＵ５０が図３の第１異常時処理ルーチンを実行すると共にモータＥＣＵ４０が図８の第２異常時処理ルーチンを実行するときのモータＥＣＵ４０でのモータ３２のトルク指令値Ｔｃｏｍおよび制御用トルクＴｍ＊の時間変化の様子の一例を示す説明図である。図中、「ｎ−１」，「ｎ」，「ｎ＋１」，「ｎ＋２」は、それぞれモータＥＣＵ４０がメインＥＣＵ５０から異常時データを受信した時刻であり、「Ｔｃｏｍ［ｎ−１］」，「Ｔｃｏｍ［ｎ］」，「Ｔｃｏｍ［ｎ＋１］」，「Ｔｃｏｍ［ｎ＋２］」は、各時刻ｎ−１，ｎ，ｎ＋１，ｎ＋２に受信した異常時データに含まれる指令値データに基づくモータ３２のトルク指令値Ｔｃｏｍである。また、図中、破線は、各時刻のモータ３２のトルク指令値Ｔｃｏｍの近似曲線である。メインＥＣＵ５０が図３の第１異常時処理ルーチンを実行すると共にモータＥＣＵ４０が図８の第２異常時処理ルーチンを実行することにより、図１０に示すように、モータ３２の制御用トルクＴｍ＊をトルク指令値Ｔｃｏｍに追従させることができる。したがって、メインＥＣＵ５０からモータＥＣＵ４０に第２通信線７２を介してデータを送信するとき（送信可能なデータ量がモータ３２のトルク指令値Ｔｃｏｍのデータ量（１６ビット）よりも制限されるとき）でも、メインＥＣＵ５０からモータＥＣＵ４０に異常時データ（８ビットのデータ）を送信して、モータＥＣＵ４０によりモータ３２を制御することができる。この結果、第１通信線７０に異常が生じたときに、退避走行を行なうことができる。
【００４９】
以上説明した実施例の電気自動車２０に搭載されるモータの制御装置では、モータＥＣＵ４０とメインＥＣＵ５０とは、第１通信線７０を介して接続されると共に、バッテリＥＣＵ４８ａやブレーキＥＣＵ４８ｂなどの各ＥＣＵと共に第２通信線７２に接続されている。そして、第１通信線７０が正常であるときには、メインＥＣＵ５０は、モータ３２のトルク指令値Ｔｃｏｍ（１６ビットのデータ）を第１通信線７０を介してモータＥＣＵ４０に送信し、モータＥＣＵ４０は、モータ３２のトルク指令値Ｔｃｏｍに基づいてモータ３２を駆動制御する。一方、第１通信線７０に異常が生じたときには、メインＥＣＵ５０は、モータ３２のトルク指令値Ｔｃｏｍに基づいてトルク指令値Ｔｃｏｍよりもデータ量の少ない異常時データ（８ビットのデータ）を生成すると共に生成した異常時データを第２通信線７２を介してモータＥＣＵ４０に送信し、モータＥＣＵ４０は、以上指令値データに基づいてモータ３２を駆動制御する。こうした処理により、メインＥＣＵ５０からモータＥＣＵ４０に送信可能なデータ量がモータ３２のトルク指令値Ｔｃｏｍのデータ量（１６ビット）よりも制限されるときでも、メインＥＣＵ５０からモータＥＣＵ４０に異常時データ（８ビットのデータ）を送信して、モータＥＣＵ４０によりモータ３２を制御することができる。この結果、第１通信線７０に異常が生じたときに、退避走行を行なうことができる。
【００５０】
実施例の電気自動車２０に搭載されるモータの制御装置では、モータ３２のトルク指令値Ｔｃｏｍと指令値データとの関係を示すマップとして、図５に示したように、トルク指令値Ｔｃｏｍと指令値データとが線形の関係となるマップを用いるものとしたが、トルク指令値Ｔｃｏｍと指令値データとが非線形の関係となるマップを用いるものとしてもよい。図１１は、変形例のモータ３２のトルク指令値Ｔｃｏｍと指令値データとの関係の一例を示す説明図である。図１１の場合、モータ３２のトルク指令値Ｔｃｏｍが絶対値の比較的小さい範囲（値０付近の範囲）で変化するときに、モータ３２のトルク指令値Ｔｃｏｍから指令値データにより精度よく変換することができる。
【００５１】
実施例の電気自動車２０に搭載されるモータの制御装置では、モータ３２のトルク指令値Ｔｃｏｍが１６ビットのデータとして構成され、変化率データが２ビットのデータとして構成され、指令値データが６ビットのデータとして構成されるものとしたが、これに限定されるものではなく、変化率データと指令値データとのビット数の和（異常時データのビット数）がモータ３２のトルク指令値Ｔｃｏｍのビット数よりも少なくなるものであればよい。例えば、モータ３２のトルク指令値Ｔｃｏｍが１６ビットとして構成される場合に、変化率データが３ビットのデータとして構成され、指令値データが５ビットのデータとして構成されるものとしてもよい。
【００５２】
実施例の電気自動車２０に搭載されるモータの制御装置では、メインＥＣＵ５０は、第１通信線７０の異常を検知したときに、退避走行要求を１回だけ第２通信でモータＥＣＵ４０に送信するものとしたが、３回や５回、７回などの所定回数Ｎ１だけ連続で送信するものとしてもよい。この場合、モータＥＣＵ４０は、第１通信線７０の異常を検知し且つメインＥＣＵ５０から第２通信で所定回数Ｎ１だけ連続で退避走行要求を受信したときに、退避走行要求に対する応答信号をメインＥＣＵ５０に送信すればよい。また、モータＥＣＵ４０は、応答信号を１回だけ第２通信でメインＥＣＵ５０に送信するものとしたが、３回や５回、７回などの所定回数Ｎ２だけ連続で送信するものとしてもよい。この場合、メインＥＣＵ５０は、モータＥＣＵ４０から第２通信で所定回数Ｎ２だけ連続で応答信号を受信したときに、異常時処理の実行（図３の第１異常時処理ルーチンの繰り返しの実行）を開始すればよい。
【００５３】
実施例では、モータ３２を備える電気自動車２０に搭載されるモータの制御装置の形態とした。しかし、モータ３２に加えてエンジンも備えるハイブリッド自動車に搭載されるモータの制御装置の形態としてもよいし、自動車以外の車両や船舶、航空機などの移動体に搭載されるモータの制御装置の形態としてもよいし、建設設備などの移動しない設備に搭載されるモータの制御装置の形態としてもよい。
【００５４】
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、モータＥＣＵ４０が「第１制御部」に相当し、メインＥＣＵ５０が「第２制御部」に相当し、第１通信線７０が「第１通信線」に相当し、第２通信線７２が「第２通信線」に相当する。
【００５５】
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
【００５６】
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【産業上の利用可能性】
【００５７】
本発明は、モータの制御装置の製造産業などに利用可能である。
【符号の説明】
【００５８】
２０  電気自動車、２２ａ，２２ｂ  駆動輪、２４  デファレンシャルギヤ、２６  駆動軸、３２  モータ、３２ａ  回転位置センサ、３２ｕ，３２ｖ  電流センサ、３４  インバータ、３６  バッテリ、３６ａ  電圧センサ、３６ｂ  電流センサ、３８  電力ライン、４０  モータ用電子制御ユニット（モータＥＣＵ）、４２，５２  ＣＰＵ、４４，５４  ＲＯＭ、４６，５６  ＲＡＭ、４８ａ  バッテリ用電子制御ユニット（バッテリＥＣＵ）、４８ｂ  ブレーキ用電子制御ユニット（ブレーキＥＣＵ）、５０  メイン電子制御ユニット（メインＥＣＵ）、６０  イグニッションスイッチ、６１  シフトレバー、６２  シフトポジションセンサ、６３  アクセルペダル、６４  アクセルペダルポジションセンサ、６５  ブレーキペダル、６６  ブレーキペダルポジションセンサ、６８  車速センサ、７０  第１通信線、７２  第２通信線。
【図１】
2019140835.tif 000003
【図２】
2019140835.tif 000004
【図３】
2019140835.tif 000005
【図４】
2019140835.tif 000006
【図５】
2019140835.tif 000007
【図６】
2019140835.tif 000008
【図７】
2019140835.tif 000009
【図８】
2019140835.tif 000010
【図９】
2019140835.tif 000011
【図１０】
2019140835.tif 000012
【図１１】
2019140835.tif 000013