(57)【要約】【課題】制御側プロセッサコアのメモリへのアクセスと異常判定側プロセッサコアのメモリへのアクセスとの競合を回避する。【解決手段】マルチコアプロセッサは、メモリにアクセスしながら、モータの回転数に基づく制御周期毎に、モータを制御するための所定の制御処理を繰り返し実行する制御側プロセッサコアと、メモリの検査対象領域に所定のデータを書き込んだあと、検査対象領域からデータを読み出し、所定のデータと読み出したデータとを比較してメモリに異常が生じているか否かを判定する異常判定を実行する判定側プロセッサコアと、を有し、判定側プロセッサコアは、制御周期が一定であり、且つ、制御側プロセッサコアが所定の制御処理を終了してから次の所定の制御処理を開始するまでの空き期間に異常判定を実行する。【選択図】図５
2020060928.tif 000002
【特許請求の範囲】
【請求項１】
マルチコアプロセッサと、
前記マルチコアプロセッサによりアクセスされるメモリと、
を備え、モータの制御に用いられるモータ制御用の情報処理装置であって、
前記マルチコアプロセッサは、
前記メモリにアクセスしながら、前記モータの回転数に基づく制御周期毎に、前記モータを制御するための所定の制御処理を繰り返し実行する制御側プロセッサコアと、
前記メモリの検査対象領域に所定のデータを書き込んだあと、前記検査対象領域からデータを読み出し、前記所定のデータと前記読み出したデータとを比較して前記メモリに異常が生じているか否かを判定する異常判定を実行する判定側プロセッサコアと、
を有し、
前記判定側プロセッサコアは、前記制御周期が一定であり、且つ、前記制御側プロセッサコアが前記所定の制御処理を終了してから次に前記所定の制御処理を開始するまでの空き期間に前記異常判定を実行する、
モータ制御用の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御用の情報処理装置に関し、詳しくは、マルチコアプロセッサと、メモリと、を備えるモータ制御用の情報処理装置に関する。
【背景技術】
【０００２】
従来、情報処理装置としては、マルチコアプロセッサ（マルチコアＣＰＵ）と、メモリ（ＲＡＭ）と、を備えるものが提案されている（例えば、特許文献１参照）。メモリは、複数のブロックに分割され、ブロック毎にデータを記憶すると共に、複数のブロックの状態を示すポインタを記憶している。マルチコアプロセッサは、メモリにデータを書き込んだり、メモリからデータを読み出す複数のアプリケーションを実行する。マルチコアプロセッサは、メモリの複数のブロックについて、データを書き込むためのブロックと、データを読み出すためのブロックと、を適宜切り替える。これにより、複数のアプリケーションにおけるメモリのアクセス（データの読み書き）の競合を回避している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１１００６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の情報処理装置では、２つのアプリケーションにおけるメモリのアクセスの競合を回避しているが、マルチコアプロセッサでは、複数のプロセッサコアでメモリのアクセス（データの読み書き）が競合することがある。例えば、マルチコアプロセッサが、モータを制御する制御処理を実行する制御側プロセッサコアと、メモリの異常を判定する異常判定を実行する判定側プロセッサコアと、を備える場合、制御側プロセッサコアがアクセスしているメモリの記憶領域に対して判定側プロセッサコアが異常判定を実行しようとすると、アクセスが競合してしまう。こうしたアクセスの競合は、回避されることが望ましい。
【０００５】
本発明の制御側プロセッサコアと判定側プロセッサコアとを有するマルチコアプロセッサを備えるモータ制御用の情報処理装置において、制御側プロセッサコアのメモリへのアクセスと判定側プロセッサコアのメモリへのアクセスとの競合を回避することを主目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理装置は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明の情報処理装置は、
マルチコアプロセッサと、
前記マルチコアプロセッサによりアクセスされるメモリと、
を備え、モータの制御に用いられるモータ制御用の情報処理装置であって、
前記マルチコアプロセッサは、
前記メモリにアクセスしながら、前記モータの回転数に基づく制御周期毎に、前記モータを制御するための所定の制御処理を繰り返し実行する制御側プロセッサコアと、
前記メモリの検査対象領域に所定のデータを書き込んだあと、前記検査対象領域からデータを読み出し、前記所定のデータと前記読み出したデータとを比較して前記メモリに異常が生じているか否かを判定する異常判定を実行する判定側プロセッサコアと、
を有し、
前記判定側プロセッサコアは、前記制御周期が一定であり、且つ、前記制御側プロセッサコアが前記所定の制御処理を終了してから次に前記所定の制御処理を開始するまでの空き期間に前記異常判定を実行する、
ことを要旨とする。
【０００８】
この本発明の情報処理装置では、制御側プロセッサコアは、メモリにアクセスしながら、モータの回転数に基づく制御周期毎に、モータを制御するための所定の制御処理を繰り返し実行する。判定側プロセッサコアは、メモリの検査対象領域に所定のデータを書き込んだあと、検査対象領域からデータを読み出し、所定のデータと読み出したデータとを比較してメモリに異常が生じているか否かを判定する異常判定を実行する。判定側プロセッサコアは、制御周期が一定であり、且つ、制御側プロセッサコアが所定の制御処理を終了してから次に所定の制御処理を開始するまでの空き期間に異常判定を実行する。これにより、制御側プロセッサコアのメモリへのアクセスと判定側プロセッサコアのメモリへのアクセスとの競合を回避できる。
【０００９】
こうした本発明の情報処理装置において、前記判定側プロセッサコアは、前記所定の制御処理において優先度が高いデータが記憶されている領域から順に前記異常判定を実行してもよい。こうすれば、優先度の高いデータから異常判定を実行することができる。
【００１０】
また、本発明の情報処理装置において、前記マルチコアプロセッサは、前記メモリにアクセスしながら前記制御周期より長い所定周期毎に前記モータを制御するためのモータ制御処理のうちの一部の処理を繰り返して実行する第１プロセッサコアと、前記所定の制御処理として前記モータ制御処理のうちの残部の処理を繰り返して実行する前記制御側プロセッサコアとしての第２プロセッサコアと、前記判定側プロセッサコアと、を有し、前記判定側プロセッサコアは、前記制御周期が一定であり、且つ、前記第１プロセッサコアが前記一部の処理を終了してから次に前記一部の処理を実行するまでの空き時間であり、且つ、前記第２プロセッサコアが前記残部の処理を終了してから次の前記残部の処理を実行するまでの空き時間のタイミングで前記異常判定を実行してもよい。こうすれば、第１，第２プロセッサコアが共に処理を実行していないタイミングで判定側プロセッサコアがメモリの異常判定を実行するから、第１，第２プロセッサコアのメモリへのアクセスと判定側プロセッサコアのメモリへのアクセスとが競合するのを回避できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例としての情報処理装置を搭載したモータ装置２０の構成の概略を示す構成図である。
【図２】マルチコアプロセッサ３２のプロセッサコア３４ａにより実行される定周期処理ルーチンの一例を示すフローチャートである。
【図３】プロセッサコア３４ｂにより実行されるフィードバック処理ルーチンの一例を示すフローチャートである。
【図４】優先度とデータの種類との関係の一例を示す説明図である。
【図５】プロセッサコア３４ｃにより実行される異常判定処理ルーチンの一例を示すフローチャートである。
【図６】プロセッサコア３４ａ〜３４ｃの動作の一例を示すタイミングチャートである。
【発明を実施するための形態】
【００１２】
次に、本発明を実施するための形態を実施例を用いて説明する。
【実施例】
【００１３】
図１は、本発明の一実施例としてのモータ制御用の情報処理装置を搭載したモータ装置２０の構成の概略を示す構成図である。モータ装置２０は、モータ２２と、インバータ２４と、昇圧コンバータ２６と、バッテリ２８と、電子制御ユニット３０と、を備える。こうしたモータ装置２０は、例えば、モータ２２からの動力で走行する電気自動車などに搭載される。実施例では、電子制御ユニット３０が「モータ制御用の情報処理装置」に相当する。
【００１４】
モータ２２は、同期発電電動機として構成されており、永久磁石が埋め込まれた回転子と、三相コイルが巻回された固定子と、を備える。
【００１５】
インバータ２４は、モータ２２の駆動に用いられる。このインバータ２４は、高電圧側電力ライン２５を介して昇圧コンバータ２６に接続されている。インバータ２４は、パワー半導体素子である図示しない複数のトランジスタ（スイッチング素子）を備えている。モータ２２は、高電圧側電力ライン２５に電圧が作用しているときに、電子制御ユニット３０によってインバータ２４の複数のトランジスタがスイッチング制御されることにより、回転駆動される。
【００１６】
昇圧コンバータ２６は、高電圧側電力ライン２５と低電圧側電力ライン２７とに接続されており、図示はしないが、スイッチング素子としての２つのトランジスタと、２つのトランジスタのそれぞれに並列に接続された２つのダイオードと、リアクトルと、を有する。昇圧コンバータ２６は、電子制御ユニット３０によって、２つのトランジスタのオン時間の割合が調節されることにより、低電圧側電力ライン２７の電力を昇圧して高電圧側電力ライン２５に供給したり、高電圧側電力ライン２５の電力を降圧して低電圧側電力ライン２７に供給したりする。
【００１７】
バッテリ２８は、例えば定格電圧が２００Ｖや２５０Ｖなどのリチウムイオン二次電池やニッケル水素二次電池として構成されており、低電圧側電力ライン２７に接続されている。
【００１８】
電子制御ユニット３０は、マルチコアマイコンとして構成されており、マルチコアプロセッサ３２と、共有メモリ４０と、タイマ４２と、を備える。電子制御ユニット３０は、その他に、図示しない処理プログラムや各種マップ等を記憶するＲＯＭや入出力ポートを備える。
【００１９】
マルチコアプロセッサ３２は、プロセッサコア３４ａ〜３４ｃと、レジスタ３６ａ，３６ｂと、を備える。プロセッサコア３４ａ〜３４ｃは、中央処理演算装置（ＣＰＵ）として機能し、バス５０を介して、レジスタ３６ａ，３６ｂや共有メモリ４０とデータをやり取りしたり、共有メモリ４０に各種処理要求を出力している。
【００２０】
共有メモリ４０は、各種データを一時的に記憶するランダムアクセスメモリとして構成されており、主記憶装置として機能する。共有メモリ４０は、バス５０を介してマルチコアプロセッサ３２のプロセッサコア３４ａ〜３４ｃがアクセス可能な共有バッファ４０ａ〜４０ｂや各種アプリケーションを記憶する記憶領域などを備えている。
【００２１】
タイマ４２は、フリーランニングカウンタとして構成されており、モータ装置２０が起動してから所定時間毎にタイマ値Ｔをインクリメントする。
【００２２】
電子制御ユニット３０には、各種センサからの信号が入力ポートを介して入力されている。電子制御ユニット３０に入力される信号としては、電子制御ユニット３０には、モータ２２の回転子の回転位置を検出する回転位置検出センサ２２ａからの回転位置θｍや、モータ２２とインバータ２４とを接続するＶ相，Ｗ相の電力ラインに取り付けられた電流センサ２２ｂ，２２ｃからの相電流Ｉｖ，Ｉｗ，高電圧側電力ライン２５の電圧を検出する電圧センサ２５ａからの電圧ＶＨ，低電圧側電力ライン２７の電圧を検出する電圧センサ２７ａからの電圧ＶＬ，バッテリ２８の状態（バッテリ電流やバッテリ電圧）を検出する各種センサからの検出値などを挙げることができる。各種センサからの信号値は、共有メモリ４０に記憶される。
【００２３】
電子制御ユニット３０からは、各種制御信号が出力ポートを介して出力されている。電子制御ユニット３０から出力される信号としては、インバータ２４の各トランジスタへのスイッチング制御信号や昇圧コンバータの２つのトランジスタへのスイッチング制御信号などを挙げることができる。
【００２４】
こうして構成された実施例の情報処理装置を搭載したモータ装置２０では、モータ２２がトルク指令Ｔｍ＊で駆動されるようにパルス幅変調制御（ＰＷＭ制御）によりインバータ２４の各トランジスタのスイッチング制御を行なう。また、モータ２２をトルク指令Ｔｍ＊で駆動できるように高電圧側電力ライン２５の目標電圧ＶＨ＊を設定し、高電圧側電力ライン２５の電圧ＶＨが目標電圧ＶＨ＊となるように昇圧コンバータ２６の２つのトランジスタのスイッチング制御を行なう。
【００２５】
次に、こうして構成された実施例のモータ制御用の情報処理装置を搭載したモータ装置２０の動作、特に、共有メモリ４０の異常を検出する際の動作について説明する。図２は、マルチコアプロセッサ３２のプロセッサコア３４ａにより実行される定周期処理ルーチンの一例を示すフローチャートである。定周期処理ルーチンは、所定時間Ｘ（例えば、数ｍｓｅｃ毎）毎に、実行される。
【００２６】
定周期処理ルーチンが実行されると、プロセッサコア３４ａは、タイマ４２のタイマ値Ｔを参照して、定周期処理の開始時刻Ｔ１ｓを取得する処理を実行する（ステップＳ１００）。
【００２７】
次に、モータ２２のトルク指令Ｔｍ＊を設定し共有メモリ４０に書き込む（ステップＳ１１０）。トルク指令Ｔｍ＊は、モータ装置２０が電気自動車に搭載される場合には、アクセル開度と車速とに基づいて駆動輪に車軸を介して接続されている駆動軸に走行に要求される要求トルクが出力されるように設定される。
【００２８】
続いて、インバータ２４をＰＷＭ制御する際のキャリア電圧の周期（以下、「キャリア周期」という。）Ｔｃ（キャリア周波数ｆｃの逆数）を設定し、共有メモリ４０に書き込む（ステップＳ１２０）。周期Ｔｃは、モータ２２の回転数Ｎｍが所定回転数Ｎｒｅｆ（例えば、２０００ｒｐｍ，２５００ｒｐｍ，３０００ｒｐｍなど）以下の低回転数領域では、一定の周期に設定される。周期Ｔｃは、回転数Ｎｍが所定回転数Ｎｒｅｆより高い中〜高回転数領域では、回転数Ｎｍが高いときに低いときに比して短くなるように、すなわち、回転数Ｎｍが高いほど短くなるように設定される。なお、モータ２２の回転数Ｎｍは、共有メモリ４０に記憶されている回転位置θｍからプロセッサコア３４ｂにより演算されて共有メモリ４０に記憶されたものを読み出している。
【００２９】
こうしてキャリア周期Ｔｃを設定すると、キャリア周期Ｔｃが一定（時間変化がない）か否か（ステップＳ１３０）と、キャリア周波数ｆｃが切り替えポイントであるか否か（ステップＳ１４０）と、を判定する。ステップＳ１３０では、前回定周期処理ルーチンが実行されたときに共有メモリ４０に書き込まれたキャリア周期Ｔｃ（以下、「前回周期Ｔｃｐｒｅ」という）と、今回の定周期処理ルーチンのステップＳ１２０で設定されるキャリア周期Ｔｃと、が一致しているときには、キャリア周期Ｔｃが一定であると判定する。ステップＳ１４０では、モータ２２の回転数Ｎｍと、上述した低回転数領域と中〜高回転数領域とを切り替える閾値である所定回転数Ｎｒｅｆと、の差の絶対値が判定用閾値ｄＮｍ（例えば、８０ｒｐｍ，１００ｒｐｍ，１２０ｒｐｍ）未満であるときには、キャリア周波数ｆｃが切り替えポイントであると判定する。
【００３０】
ステップＳ１３０でキャリア周期Ｔｃが一定であり、且つ、ステップＳ１４０でキャリア周波数ｆｃが切り替えポイントではないときには、しばらくキャリア周期Ｔｃに変化がないと判断して、プロセッサコア３４ｂにより実行されるフィードバック処理で共有メモリ４０に記憶された開始時刻Ｔ２ｓを取得する（ステップＳ１５０）。ここで、フィードバック処理について説明する。
【００３１】
図３は、プロセッサコア３４ｂにより実行されるフィードバック処理ルーチンの一例を示すフローチャートである。フィードバック処理ルーチンは、キャリア周期Ｔｃ（例えば、数百μｓｅｃ）毎に実行される。
【００３２】
フィードバック処理ルーチンが実行されると、プロセッサコア３４ｂは、タイマ４２のタイマ値Ｔを参照して、フィードバック処理の開始時刻Ｔ２ｓを取得する処理を実行する（ステップＳ３００）。次に、直前開始時刻Ｔ２ｓｊｂを共有メモリ４０の共有バッファ４０ａ〜４０ｃのいずれかへ書き込む（ステップＳ３１０）。
【００３３】
そして、インバータ２４の各トランジスタをスイッチング制御するためのＰＷＭ信号を生成する（ステップＳ３２０）。ＰＷＭ信号の生成方法は、以下の通りである。プロセッサコア３４ｂは、回転位置θｍに基づくモータ２２の電気角θｅを用いてＵ相，Ｖ相，Ｗ相の相電流Ｉｕ（＝０−Ｉｖ−Ｉｗ），Ｉｖ，Ｉｗをｄ軸，ｑ軸の電流Ｉｄ，Ｉｑに座標変換（３相−２相変換）する。続いて、モータ２２のトルク指令Ｔｍ＊に基づいてｄ軸，ｑ軸の電流指令Ｉｄ＊，Ｉｑ＊を設定する。そして、ｄ軸，ｑ軸の電流指令Ｉｄ１＊，Ｉｑ１＊とｄ軸，ｑ軸の電流Ｉｄ１，Ｉｑ１との差分ΔＩｄ１，ΔＩｑ１が値０に近づくように電流フィードバック制御によってｄ軸，ｑ軸の電圧指令Ｖｄ＊，Ｖｑ＊を設定する。そして、モータ２２の電気角θｅを用いてｄ軸，ｑ軸の電圧指令Ｖｄ＊，Ｖｑ＊を各相の電圧指令Ｖｕ＊，Ｖｖ＊，Ｖｗ＊に座標変換（２相−３相変換）し、各相の電圧指令Ｖｕ＊，Ｖｖ＊，Ｖｗ＊と三角波（搬送波、キャリア）電圧との比較によりインバータ２４の各トランジスタのＰＷＭ信号を生成する。
【００３４】
ＰＷＭ信号を生成すると、生成したＰＷＭ信号を用いてインバータ２４の各トランジスタのスイッチング制御を実行して（ステップＳ３３０）、フィードバック処理を終了する。
【００３５】
プロセッサコア３４ｂにより実行されるフィードバック処理ルーチンの実行間隔（キャリア周期Ｔｃ）は、プロセッサコア３４ａにより実行される定周期処理ルーチンの実行間隔（所定時間Ｘ）より短い。そのため、フィードバック処理ルーチンは、定周期処理ルーチンが１回実行される間に複数回実行され、定周期処理ルーチンが１回実行される間に共有メモリ４０の共有バッファ４０ａ〜４０ｃには複数の開始時刻Ｔ２ｓが書き込まれる。図２に例示した定周期処理ルーチンのステップＳ１５０は、こうして共有バッファ４０ａ〜４０ｃに書き込まれた複数の開始時刻Ｔ２ｓのうち、ステップＳ１５０を実行する直前に記憶された開始時刻Ｔ２ｓを直前開始時刻Ｔ２ｓｊｂとして取得する。
【００３６】
ステップＳ１５０で直前開始時刻Ｔ２ｓｊｂを取得すると、定周期処理ルーチンとフィードバック処理ルーチンの各ステップが実行されていない空き期間をチェック可能期間Ｔ３（ｌ）（ｎは自然数）に設定し、チェック可能期間Ｔ３（ｌ）を共有メモリ４０に書き込む（ステップＳ１６０）。空き期間の導出方法は、下記の通りである、最初に、定周期処理ルーチンのステップＳ１００で取得した開始時刻Ｔ１ｓと予め定めた定周期処理ルーチンの各ステップを実行して処理を終了するまでに要する時間Ｔ１ｒｅｆから、現在の定周期処理ルーチンの終了時刻Ｔ１ｅを演算する。次に、ステップＳ１５０で取得した直前開始時刻Ｔ２ｓｊｂと予め定めたフィードバック処理ルーチンのステップＳ３００〜Ｓ３３０を終了するまでに要する時間とフィードバック処理ルーチンに実行間隔（キャリア周期Ｔｃ）から、終了時刻Ｔ１ｅから次の定周期処理ルーチンが開始されるまでの時刻Ｔ１ｎｓ（＝Ｔ１ｓ＋Ｘ）までの間にフィードバック処理ルーチンが実行されている期間Ｔ２ｅｘｅ（ｍ）を演算する。「ｍ」は、値０以上の整数である。今、定周期処理ルーチンが１回実行される間にフィードバック処理ルーチンは１回以上実行されることから、期間Ｔ２ｅｘｅは、１つ以上設定される。そして、定周期処理ルーチンの各処理の終了時刻Ｔ１ｅから次の定周期処理ルーチンの開始時刻Ｔ１ｎｓまでの間で期間Ｔ２ｅｘｅではない期間を、チェック可能期間Ｔ３（ｌ）（ｌは自然数）とする。「ｌ」は、値０以上の整数である。
【００３７】
こうしてチェック可能期間Ｔ３（ｌ）を設定すると、チェック可能期間Ｔ３（ｌ）毎に、１回の異常判定の対象とする共有メモリ４０の記憶容量（判定容量）Ｍｃと異常判定の対象とする領域（判定領域）Ａｃとを設定して、共有メモリ４０に書き込み（ステップＳ１７０）、チェック可否フラグＦｃを値１に設定して共有メモリ４０に書き込んで（ステップＳ１８０）、定周期処理ルーチンを終了する。ステップＳ１７０では、判定領域Ａｃは、共有メモリ４０に記憶されるデータに対して予め異常判定を実行する際の優先度を設定する。
【００３８】
図４は、優先度とデータの種類との関係の一例を示す説明図である。優先度は、実施例では、優先度が高い順に、優先度１〜５の５段階で設定している。
【００３９】
優先度の最も高い「優先度１」のデータとしては、ＰＷＭ制御の出力に比較的強く寄与する情報、例えば、トルク指令Ｔｍ＊やモータ２２の回転数Ｎｅ，キャリア周波数ｆｃ，生成したＰＷＭ信号の出力指令，各相の電圧指令Ｖｕ＊，Ｖｖ＊，Ｖｗ＊，ｄ軸，ｑ軸の電流指令Ｉｄ＊，Ｉｑ＊，Ｖ相，Ｗ相の相電流Ｉｖ，Ｉｗ，モータ２２の電気角θｅなどを挙げることができる。その他にも、ｄ軸，ｑ軸の電圧指令Ｖｄ＊，Ｖｑ＊に基づく指令電圧のベクトル位相やベクトル振幅や高電圧側電力ライン２５の電圧ＶＨ，昇圧コンバータ２６をＰＷＭ制御する際のキャリア周期Ｔｃｄなどを挙げることができる。
【００４０】
「優先度２」のデータとしては、ＰＷＭ制御の出力に寄与するが優先度１の情報よりＰＷＭ制御の出力への寄与の程度が低い情報、例えば、ｄ軸，ｑ軸の電圧指令Ｖｄ＊，Ｖｑ＊や低電圧側電力ライン２７の電圧ＶＬ，昇圧コンバータ２６のリアクトルに流れるリアクトル電流などを挙げることができる。その他にも、半周期毎の電流サンプリングの回数である電流サンプリング倍率やｄ軸，ｑ軸の電流Ｉｄ，Ｉｑからマップを用いて得られるトルク推定値，目標電圧ＶＨ＊，ＰＷＭ制御モードや矩形波制御などの複数の制御モードのいずれかでインバータ２４を制御する場合にはどの制御モードでインバータ２４を制御しているかについての情報である制御状態などを挙げることができる。
【００４１】
「優先度３」のデータとしては、各種センサにより検出される温度や状態フラグを挙げることができる。各種センサにより検出される温度としては、インバータ２４を冷却するための冷却水の温度を検出する温度センサからの冷却水温やインバータ２４を構成するトランジスタの温度を検出する温度センサからの素子温度などを挙げることができる。状態フラグとしては、モータ２２の回転数Ｎｅが急変しているか否かを示す回転数急変状態フラグやシフト位置検出センサからのシフト位置などを挙げることができる。
【００４２】
「優先度４」のデータとしては、学習に用いられる情報を挙げることができる。学習に用いられる情報としては、モータ２２の回転数を検出する回転位置検出センサ２２ａのオフセット値の学習で得られたオフセット値やその学習の実施状態、Ｖ相，Ｗ相の相電流Ｉｖ，Ｉｗを検出する電流センサ２２ｂ，２２ｃのオフセット値の学習で得られたオフセット値やその学習の実施状態、温度センサのオフセット値の学習の実施状態などを挙げることができる。
【００４３】
「優先度５」のデータとしては、モータ装置２０の異常状態を示す情報などを挙げることができる。異常状態を示す情報としては、モータ２２やインバータ２４を冷却する冷却系の異常状態やその他の各種異常状態などを挙げることができる。
【００４４】
ステップＳ１３０でキャリア周期Ｔｃが一定でなかったり、ステップＳ１３０でキャリア周期Ｔｃが一定であってもステップＳ１４０でキャリア周波数ｆｃが切り替えポイントであるときには、キャリア周期Ｔｃが今後変化する可能性が高いため、直前開始時刻Ｔ２ｓｊｂを用いて定周期処理ルーチン，フィードバック処理ルーチンの各ステップを実行していない空き期間を適正に演算できない可能性が高い。この場合は、チェック可否フラグＦｃを値０に設定して共有メモリ４０に書き込み（ステップＳ１９０）、チェック可能期間Ｔ３（ｌ）を初期化して（ステップＳ２００）、定周期処理ルーチンを終了する。
【００４５】
図５は、プロセッサコア３４ｃにより実行される異常判定処理ルーチンの一例を示すフローチャートである。異常判定処理ルーチンは、上述したチェック可否フラグＦｃが値１に設定されているときに、キャリア周期Ｔｃと同一の周期で繰り返し実行される。
【００４６】
異常判定処理ルーチンが実行されると、プロセッサコア３４ｃは、共有メモリ４０に書き込まれているチェック可能期間Ｔ３（ｌ）を読み出す処理を実行する（ステップＳ４００）。そして、タイマ４２のタイマ値Ｔを参照して、今がチェック可能期間Ｔ３（ｌ）であるか否かを判定する（ステップＳ４１０）。今がチェック可能期間Ｔ３（ｌ）でないときには、異常判定処理ルーチンを終了する。
【００４７】
ステップＳ４１０で今がチェック可能期間Ｔ３（ｌ）であるときには、チェック可能期間Ｔ３（ｌ）に対応する共有メモリ４０の判定容量Ｍｃ，判定領域Ａｃに対して異常が生じているか否かを判定する異常判定を実行する（ステップＳ４２０）。異常判定は、共有メモリ４０に記憶されているデータを書き換えることができない異常（メモリ固着）を判定するものとし、以下の方法で実行される。最初に、共有メモリ４０の判定領域Ａｃに記憶されているデータを判定容量Ｍｃ分読み出して、レジスタ３６ａに退避させる。続いて、データを読み出した判定領域Ａｃに確認データＤｃを書き込む。確認データＤｃは、共有メモリ４０をチェックする際のデータとして予め定めたデータである。そして、判定領域ＡｃからデータＤｒをレジスタ３６ｂに読み出し、確認データＤｃとレジスタ３６ｂから読み出したデータＤｒとを比較する。判定領域Ａｃが正常であるときには、確認データＤｃとデータＤｒとは一致する。したがって、確認データＤｃとデータＤｒとが一致しているときには共有メモリ４０が正常であると判定し、確認データＤｃとデータＤｒとが一致していないときには共有メモリ４０に異常（メモリ固着）が発生していると判定する。その後、レジスタ３６ａに退避させていた元のデータを共有メモリ４０の判定領域Ａｃに復帰させる。
【００４８】
ステップＳ４２０で共有メモリ４０の判定領域Ａｃに記憶されている判定容量Ｍｃのデータが正常であるときには（ステップＳ４３０）、異常判定処理ルーチンを終了する。
【００４９】
ステップＳ４２０で共有メモリ４０の判定領域Ａｃに記憶されている判定容量Ｍｃのデータに異常が発生しているときには（ステップＳ４３０）、共有メモリ４０に異常が発生しているときに実行される所定のダイアグ判定処理を実行して（ステップＳ４４０）、異常判定処理ルーチンを終了する。
【００５０】
図６は、プロセッサコア３４ａ〜３４ｃの動作の一例を示すタイミングチャートである。図中、「定周期処理ルーチン」でハッチングが施されている領域は、定周期処理ルーチンのステップＳ１３０，Ｓ１４０が実行されている期間と、ステップＳ１８０が実行されている期間を示している。「チェック可能期間（Ｔ３（ｌ））」でハッチングが施されている領域は、定周期処理ルーチンでチェック可能期間Ｔ３（ｌ）に設定された期間を示している。「異常判定処理ルーチン」でハッチングが施されている領域は、異常判定処理ルーチンが実行されている期間を示している。
【００５１】
プロセッサコア３４ｂのフィードバック処理ルーチンが実行されると、図示するように、実行のたび（キャリア周期Ｔｃ毎）に、共有メモリ４０の共有バッファ４０ａ〜４０ｃに、フィードバック処理ルーチンの実行が開始された時刻（図中、Ｔ２ｓ（ｍ），Ｔ２ｓ（ｍ＋１），Ｔ２ｓ（ｍ＋２）など）が書き込まれる。
【００５２】
プロセッサコア３４ａの定周期処理ルーチンでは、キャリア周期Ｔｃが前回値から変化するとき（図中、周期Ｔ１から周期Ｔ２へ変化するとき）には、チェック可否フラグＦｃを値０に設定する（ステップＳ１９０）。チェック可否フラグＦｃが値０に設定されると、プロセッサコア３４ｃの異常判定ルーチンが実行されないから、共有メモリ４０の異常判定が実行されない。
【００５３】
キャリア周期Ｔｃが一定であるとき（周期Ｔｃ２で一定であるとき）には、ステップＳ１５０を実行する直前に共有メモリ４０の共有バッファに書き込まれた直前開始時刻Ｔ２ｓｊｂ（図中、Ｔ２ｓ（ｍ＋７））を取得し（ステップＳ１５０）、定周期処理ルーチンとフィードバック処理ルーチンの各ステップが実行されていない空き期間を共有メモリ４０のチェック可能期間Ｔ３（ｌ）（ｎは自然数）に設定し、チェック可能期間Ｔ３（ｌ）を共有メモリ４０に書き込み（ステップＳ１６０）、判定容量Ｍｃ，判定領域Ａｃを設定し（ステップＳ１７０）、チェック可否フラグＦｃを値１に設定する（ステップＳ１８０）。チェック可否フラグＦｃが値１に設定されると、プロセッサコア３４ｃの異常判定ルーチンが実行され、チェック可能期間Ｔ３（ｌ）で共有メモリ４０の記憶領域のうち図４に例示した優先度の高いデータが記憶されている記憶領域から順に異常判定処理ルーチンが実行される。このように、キャリア周期Ｔｃが一定であったり、キャリア周波数ｆｃが切り変わらない期間であって、プロセッサコア３４ａ，３４ｂが定周期処理ルーチン，フィードバック処理を実行していない空き期間に、プロセッサコア３４ｃは共有メモリ４０の異常判定を実行するから、プロセッサコア３４ａ，３４ｂの共有メモリ４０へのアクセスとプロセッサコア３４ｃの共有メモリ４０へのアクセスとの競合を回避することができる。また、共有メモリ４０の記憶領域のうち優先度の高いデータが記憶されている記憶領域から順に異常判定を実行するから、より適正にモータ装置２０やモータ装置２０が搭載されている電気自動車を作動させることができる。
【００５４】
以上説明した実施例のモータ制御用の情報処理装置によれば、プロセッサコア３４ｃは、キャリア周期（制御周期）Ｔｃが一定であり、且つ、フィードバック処理を終了して次にフィードバック処理を開始するまでの空き期間に共有メモリ４０の異常判定を実行することにより、プロセッサコア３４ｂの共有メモリ４０へのアクセスとプロセッサコア３４ｃの共有メモリ４０へのアクセスとが競合することを回避することができる。
【００５５】
実施例のモータ制御用の情報処理装置では、プロセッサコア３４ａは、優先度の高いデータが記憶されているメモリの記憶領域から順に異常判定を実行している。しかしながら、優先度を考慮せずに、例えば、共有メモリ４０のアドレスの小さい領域から順に異常判定を実行するなど、共有メモリ４０のどの領域から順番に異常判定を実行するかについては適宜定めることができる。また、共有メモリ４０の全ての領域に対して異常判定を実行しなくてもよく、共有メモリ４０の予め定めた一部の領域のみに異常判定を実行してもよい。
【００５６】
実施例のモータ制御用の情報処理装置では、インバータ２４のＰＷＭ制御をプロセッサコア３４ａ，３４ｂで分担して実行しているが、プロセッサコア３４ｂで全ての処理を実行しても構わないし、３つ以上のプロセッサコアで分担して実行してもよい。
【００５７】
実施例では、本発明のモータ制御用の情報処理装置を、電気自動車に搭載されるモータ装置２０に適用しているが、電気自動車とは異なる他の装置に搭載されるモータ装置２０に適用してもよいし、モータ装置２０単体に適用してもよい。
【００５８】
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、マルチコアプロセッサ３２が「マルチコアプロセッサ」に相当し、共有メモリ４０が「メモリ」に相当し、プロセッサコア３４ｂが「制御側プロセッサコア」に相当し、プロセッサコア３４ｃが「判定側プロセッサコア」に相当する。
【００５９】
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
【００６０】
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【産業上の利用可能性】
【００６１】
本発明は、モータ制御用の情報処理装置の製造産業などに利用可能である。
【符号の説明】
【００６２】
２０  モータ装置、２２  モータ、２２ａ  回転位置検出センサ、２２ｂ、２２ｃ  電流センサ、２４  インバータ、２５  高電圧側電力ライン、２５ａ，２７ａ  電圧センサ、２６  昇圧コンバータ、２７  低電圧側電力ライン、２６  昇圧コンバータ、２８  バッテリ、３０  電子制御ユニット、３２  マルチコアプロセッサ、３２ａ，３２ｂ，３２ｃ  プロセッサコア、３６ａ，３６ｂ  レジスタ、４０  共有メモリ、４０ａ  共有バッファ、４２  タイマ、５０  バス。
【図１】
2020060928.tif 000003
【図２】
2020060928.tif 000004
【図３】
2020060928.tif 000005
【図４】
2020060928.tif 000006
【図５】
2020060928.tif 000007
【図６】
2020060928.tif 000008