(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-14
(45)【発行日】2022-11-22
(54)【発明の名称】モータ制御用の情報処理装置
(51)【国際特許分類】
G06F 11/22 20060101AFI20221115BHJP
G06F 9/48 20060101ALI20221115BHJP
G06F 15/167 20060101ALI20221115BHJP
G11C 29/46 20060101ALI20221115BHJP
【FI】
G06F11/22 606B
G06F9/48 300F
G06F11/22 673J
G06F15/167 610Z
G11C29/46
(21)【出願番号】P 2018191393
(22)【出願日】2018-10-10
【審査請求日】2021-09-21
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000017
【氏名又は名称】弁理士法人アイテック国際特許事務所
(72)【発明者】
【氏名】中野 雄太
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2017-097633(JP,A)
【文献】米国特許出願公開第2018/0253390(US,A1)
【文献】特開2010-186242(JP,A)
【文献】再公表特許第2011/141992(JP,A1)
【文献】特開2004-133635(JP,A)
【文献】特開2018-013816(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/22
G06F 9/48
G06F 15/167
G11C 29/46
(57)【特許請求の範囲】
【請求項1】
マルチコアプロセッサと、
前記マルチコアプロセッサによりアクセスされるメモリと、
を備え、モータの制御に用いられるモータ制御用の情報処理装置であって、
前記マルチコアプロセッサは、
前記メモリにアクセスしながら、前記モータの回転数に基づく制御周期毎に、前記モータを制御するための所定の制御処理を繰り返し実行する制御側プロセッサコアと、
前記メモリの検査対象領域に所定のデータを書き込んだあと、前記検査対象領域からデータを読み出し、前記所定のデータと前記読み出したデータとを比較して前記メモリに異常が生じているか否かを判定する異常判定を実行する判定側プロセッサコアと、
を有し、
前記判定側プロセッサコアは、前記制御周期が一定であり、且つ、前記制御側プロセッサコアが前記所定の制御処理を終了してから次に前記所定の制御処理を開始するまでの空き期間に前記異常判定を実行する、
モータ制御用の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モータ制御用の情報処理装置に関し、詳しくは、マルチコアプロセッサと、メモリと、を備えるモータ制御用の情報処理装置に関する。
【背景技術】
【0002】
従来、情報処理装置としては、マルチコアプロセッサ(マルチコアCPU)と、メモリ(RAM)と、を備えるものが提案されている(例えば、特許文献1参照)。メモリは、複数のブロックに分割され、ブロック毎にデータを記憶すると共に、複数のブロックの状態を示すポインタを記憶している。マルチコアプロセッサは、メモリにデータを書き込んだり、メモリからデータを読み出す複数のアプリケーションを実行する。マルチコアプロセッサは、メモリの複数のブロックについて、データを書き込むためのブロックと、データを読み出すためのブロックと、を適宜切り替える。これにより、複数のアプリケーションにおけるメモリのアクセス(データの読み書き)の競合を回避している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述の情報処理装置では、2つのアプリケーションにおけるメモリのアクセスの競合を回避しているが、マルチコアプロセッサでは、複数のプロセッサコアでメモリのアクセス(データの読み書き)が競合することがある。例えば、マルチコアプロセッサが、モータを制御する制御処理を実行する制御側プロセッサコアと、メモリの異常を判定する異常判定を実行する判定側プロセッサコアと、を備える場合、制御側プロセッサコアがアクセスしているメモリの記憶領域に対して判定側プロセッサコアが異常判定を実行しようとすると、アクセスが競合してしまう。こうしたアクセスの競合は、回避されることが望ましい。
【0005】
本発明の制御側プロセッサコアと判定側プロセッサコアとを有するマルチコアプロセッサを備えるモータ制御用の情報処理装置において、制御側プロセッサコアのメモリへのアクセスと判定側プロセッサコアのメモリへのアクセスとの競合を回避することを主目的とする。
【課題を解決するための手段】
【0006】
本発明の情報処理装置は、上述の主目的を達成するために以下の手段を採った。
【0007】
本発明の情報処理装置は、
マルチコアプロセッサと、
前記マルチコアプロセッサによりアクセスされるメモリと、
を備え、モータの制御に用いられるモータ制御用の情報処理装置であって、
前記マルチコアプロセッサは、
前記メモリにアクセスしながら、前記モータの回転数に基づく制御周期毎に、前記モータを制御するための所定の制御処理を繰り返し実行する制御側プロセッサコアと、
前記メモリの検査対象領域に所定のデータを書き込んだあと、前記検査対象領域からデータを読み出し、前記所定のデータと前記読み出したデータとを比較して前記メモリに異常が生じているか否かを判定する異常判定を実行する判定側プロセッサコアと、
を有し、
前記判定側プロセッサコアは、前記制御周期が一定であり、且つ、前記制御側プロセッサコアが前記所定の制御処理を終了してから次に前記所定の制御処理を開始するまでの空き期間に前記異常判定を実行する、
ことを要旨とする。
【0008】
この本発明の情報処理装置では、制御側プロセッサコアは、メモリにアクセスしながら、モータの回転数に基づく制御周期毎に、モータを制御するための所定の制御処理を繰り返し実行する。判定側プロセッサコアは、メモリの検査対象領域に所定のデータを書き込んだあと、検査対象領域からデータを読み出し、所定のデータと読み出したデータとを比較してメモリに異常が生じているか否かを判定する異常判定を実行する。判定側プロセッサコアは、制御周期が一定であり、且つ、制御側プロセッサコアが所定の制御処理を終了してから次に所定の制御処理を開始するまでの空き期間に異常判定を実行する。これにより、制御側プロセッサコアのメモリへのアクセスと判定側プロセッサコアのメモリへのアクセスとの競合を回避できる。
【0009】
こうした本発明の情報処理装置において、前記判定側プロセッサコアは、前記所定の制御処理において優先度が高いデータが記憶されている領域から順に前記異常判定を実行してもよい。こうすれば、優先度の高いデータから異常判定を実行することができる。
【0010】
また、本発明の情報処理装置において、前記マルチコアプロセッサは、前記メモリにアクセスしながら前記制御周期より長い所定周期毎に前記モータを制御するためのモータ制御処理のうちの一部の処理を繰り返して実行する第1プロセッサコアと、前記所定の制御処理として前記モータ制御処理のうちの残部の処理を繰り返して実行する前記制御側プロセッサコアとしての第2プロセッサコアと、前記判定側プロセッサコアと、を有し、前記判定側プロセッサコアは、前記制御周期が一定であり、且つ、前記第1プロセッサコアが前記一部の処理を終了してから次に前記一部の処理を実行するまでの空き時間であり、且つ、前記第2プロセッサコアが前記残部の処理を終了してから次の前記残部の処理を実行するまでの空き時間のタイミングで前記異常判定を実行してもよい。こうすれば、第1,第2プロセッサコアが共に処理を実行していないタイミングで判定側プロセッサコアがメモリの異常判定を実行するから、第1,第2プロセッサコアのメモリへのアクセスと判定側プロセッサコアのメモリへのアクセスとが競合するのを回避できる。
【図面の簡単な説明】
【0011】
【
図1】本発明の一実施例としての情報処理装置を搭載したモータ装置20の構成の概略を示す構成図である。
【
図2】マルチコアプロセッサ32のプロセッサコア34aにより実行される定周期処理ルーチンの一例を示すフローチャートである。
【
図3】プロセッサコア34bにより実行されるフィードバック処理ルーチンの一例を示すフローチャートである。
【
図4】優先度とデータの種類との関係の一例を示す説明図である。
【
図5】プロセッサコア34cにより実行される異常判定処理ルーチンの一例を示すフローチャートである。
【
図6】プロセッサコア34a~34cの動作の一例を示すタイミングチャートである。
【発明を実施するための形態】
【0012】
次に、本発明を実施するための形態を実施例を用いて説明する。
【実施例】
【0013】
図1は、本発明の一実施例としてのモータ制御用の情報処理装置を搭載したモータ装置20の構成の概略を示す構成図である。モータ装置20は、モータ22と、インバータ24と、昇圧コンバータ26と、バッテリ28と、電子制御ユニット30と、を備える。こうしたモータ装置20は、例えば、モータ22からの動力で走行する電気自動車などに搭載される。実施例では、電子制御ユニット30が「モータ制御用の情報処理装置」に相当する。
【0014】
モータ22は、同期発電電動機として構成されており、永久磁石が埋め込まれた回転子と、三相コイルが巻回された固定子と、を備える。
【0015】
インバータ24は、モータ22の駆動に用いられる。このインバータ24は、高電圧側電力ライン25を介して昇圧コンバータ26に接続されている。インバータ24は、パワー半導体素子である図示しない複数のトランジスタ(スイッチング素子)を備えている。モータ22は、高電圧側電力ライン25に電圧が作用しているときに、電子制御ユニット30によってインバータ24の複数のトランジスタがスイッチング制御されることにより、回転駆動される。
【0016】
昇圧コンバータ26は、高電圧側電力ライン25と低電圧側電力ライン27とに接続されており、図示はしないが、スイッチング素子としての2つのトランジスタと、2つのトランジスタのそれぞれに並列に接続された2つのダイオードと、リアクトルと、を有する。昇圧コンバータ26は、電子制御ユニット30によって、2つのトランジスタのオン時間の割合が調節されることにより、低電圧側電力ライン27の電力を昇圧して高電圧側電力ライン25に供給したり、高電圧側電力ライン25の電力を降圧して低電圧側電力ライン27に供給したりする。
【0017】
バッテリ28は、例えば定格電圧が200Vや250Vなどのリチウムイオン二次電池やニッケル水素二次電池として構成されており、低電圧側電力ライン27に接続されている。
【0018】
電子制御ユニット30は、マルチコアマイコンとして構成されており、マルチコアプロセッサ32と、共有メモリ40と、タイマ42と、を備える。電子制御ユニット30は、その他に、図示しない処理プログラムや各種マップ等を記憶するROMや入出力ポートを備える。
【0019】
マルチコアプロセッサ32は、プロセッサコア34a~34cと、レジスタ36a,36bと、を備える。プロセッサコア34a~34cは、中央処理演算装置(CPU)として機能し、バス50を介して、レジスタ36a,36bや共有メモリ40とデータをやり取りしたり、共有メモリ40に各種処理要求を出力している。
【0020】
共有メモリ40は、各種データを一時的に記憶するランダムアクセスメモリとして構成されており、主記憶装置として機能する。共有メモリ40は、バス50を介してマルチコアプロセッサ32のプロセッサコア34a~34cがアクセス可能な共有バッファ40a~40bや各種アプリケーションを記憶する記憶領域などを備えている。
【0021】
タイマ42は、フリーランニングカウンタとして構成されており、モータ装置20が起動してから所定時間毎にタイマ値Tをインクリメントする。
【0022】
電子制御ユニット30には、各種センサからの信号が入力ポートを介して入力されている。電子制御ユニット30に入力される信号としては、電子制御ユニット30には、モータ22の回転子の回転位置を検出する回転位置検出センサ22aからの回転位置θmや、モータ22とインバータ24とを接続するV相,W相の電力ラインに取り付けられた電流センサ22b,22cからの相電流Iv,Iw,高電圧側電力ライン25の電圧を検出する電圧センサ25aからの電圧VH,低電圧側電力ライン27の電圧を検出する電圧センサ27aからの電圧VL,バッテリ28の状態(バッテリ電流やバッテリ電圧)を検出する各種センサからの検出値などを挙げることができる。各種センサからの信号値は、共有メモリ40に記憶される。
【0023】
電子制御ユニット30からは、各種制御信号が出力ポートを介して出力されている。電子制御ユニット30から出力される信号としては、インバータ24の各トランジスタへのスイッチング制御信号や昇圧コンバータの2つのトランジスタへのスイッチング制御信号などを挙げることができる。
【0024】
こうして構成された実施例の情報処理装置を搭載したモータ装置20では、モータ22がトルク指令Tm*で駆動されるようにパルス幅変調制御(PWM制御)によりインバータ24の各トランジスタのスイッチング制御を行なう。また、モータ22をトルク指令Tm*で駆動できるように高電圧側電力ライン25の目標電圧VH*を設定し、高電圧側電力ライン25の電圧VHが目標電圧VH*となるように昇圧コンバータ26の2つのトランジスタのスイッチング制御を行なう。
【0025】
次に、こうして構成された実施例のモータ制御用の情報処理装置を搭載したモータ装置20の動作、特に、共有メモリ40の異常を検出する際の動作について説明する。
図2は、マルチコアプロセッサ32のプロセッサコア34aにより実行される定周期処理ルーチンの一例を示すフローチャートである。定周期処理ルーチンは、所定時間X(例えば、数msec毎)毎に、実行される。
【0026】
定周期処理ルーチンが実行されると、プロセッサコア34aは、タイマ42のタイマ値Tを参照して、定周期処理の開始時刻T1sを取得する処理を実行する(ステップS100)。
【0027】
次に、モータ22のトルク指令Tm*を設定し共有メモリ40に書き込む(ステップS110)。トルク指令Tm*は、モータ装置20が電気自動車に搭載される場合には、アクセル開度と車速とに基づいて駆動輪に車軸を介して接続されている駆動軸に走行に要求される要求トルクが出力されるように設定される。
【0028】
続いて、インバータ24をPWM制御する際のキャリア電圧の周期(以下、「キャリア周期」という。)Tc(キャリア周波数fcの逆数)を設定し、共有メモリ40に書き込む(ステップS120)。周期Tcは、モータ22の回転数Nmが所定回転数Nref(例えば、2000rpm,2500rpm,3000rpmなど)以下の低回転数領域では、一定の周期に設定される。周期Tcは、回転数Nmが所定回転数Nrefより高い中~高回転数領域では、回転数Nmが高いときに低いときに比して短くなるように、すなわち、回転数Nmが高いほど短くなるように設定される。なお、モータ22の回転数Nmは、共有メモリ40に記憶されている回転位置θmからプロセッサコア34bにより演算されて共有メモリ40に記憶されたものを読み出している。
【0029】
こうしてキャリア周期Tcを設定すると、キャリア周期Tcが一定(時間変化がない)か否か(ステップS130)と、キャリア周波数fcが切り替えポイントであるか否か(ステップS140)と、を判定する。ステップS130では、前回定周期処理ルーチンが実行されたときに共有メモリ40に書き込まれたキャリア周期Tc(以下、「前回周期Tcpre」という)と、今回の定周期処理ルーチンのステップS120で設定されるキャリア周期Tcと、が一致しているときには、キャリア周期Tcが一定であると判定する。ステップS140では、モータ22の回転数Nmと、上述した低回転数領域と中~高回転数領域とを切り替える閾値である所定回転数Nrefと、の差の絶対値が判定用閾値dNm(例えば、80rpm,100rpm,120rpm)未満であるときには、キャリア周波数fcが切り替えポイントであると判定する。
【0030】
ステップS130でキャリア周期Tcが一定であり、且つ、ステップS140でキャリア周波数fcが切り替えポイントではないときには、しばらくキャリア周期Tcに変化がないと判断して、プロセッサコア34bにより実行されるフィードバック処理で共有メモリ40に記憶された開始時刻T2sを取得する(ステップS150)。ここで、フィードバック処理について説明する。
【0031】
図3は、プロセッサコア34bにより実行されるフィードバック処理ルーチンの一例を示すフローチャートである。フィードバック処理ルーチンは、キャリア周期Tc(例えば、数百μsec)毎に実行される。
【0032】
フィードバック処理ルーチンが実行されると、プロセッサコア34bは、タイマ42のタイマ値Tを参照して、フィードバック処理の開始時刻T2sを取得する処理を実行する(ステップS300)。次に、直前開始時刻T2sjbを共有メモリ40の共有バッファ40a~40cのいずれかへ書き込む(ステップS310)。
【0033】
そして、インバータ24の各トランジスタをスイッチング制御するためのPWM信号を生成する(ステップS320)。PWM信号の生成方法は、以下の通りである。プロセッサコア34bは、回転位置θmに基づくモータ22の電気角θeを用いてU相,V相,W相の相電流Iu(=0-Iv-Iw),Iv,Iwをd軸,q軸の電流Id,Iqに座標変換(3相-2相変換)する。続いて、モータ22のトルク指令Tm*に基づいてd軸,q軸の電流指令Id*,Iq*を設定する。そして、d軸,q軸の電流指令Id1*,Iq1*とd軸,q軸の電流Id1,Iq1との差分ΔId1,ΔIq1が値0に近づくように電流フィードバック制御によってd軸,q軸の電圧指令Vd*,Vq*を設定する。そして、モータ22の電気角θeを用いてd軸,q軸の電圧指令Vd*,Vq*を各相の電圧指令Vu*,Vv*,Vw*に座標変換(2相-3相変換)し、各相の電圧指令Vu*,Vv*,Vw*と三角波(搬送波、キャリア)電圧との比較によりインバータ24の各トランジスタのPWM信号を生成する。
【0034】
PWM信号を生成すると、生成したPWM信号を用いてインバータ24の各トランジスタのスイッチング制御を実行して(ステップS330)、フィードバック処理を終了する。
【0035】
プロセッサコア34bにより実行されるフィードバック処理ルーチンの実行間隔(キャリア周期Tc)は、プロセッサコア34aにより実行される定周期処理ルーチンの実行間隔(所定時間X)より短い。そのため、フィードバック処理ルーチンは、定周期処理ルーチンが1回実行される間に複数回実行され、定周期処理ルーチンが1回実行される間に共有メモリ40の共有バッファ40a~40cには複数の開始時刻T2sが書き込まれる。
図2に例示した定周期処理ルーチンのステップS150は、こうして共有バッファ40a~40cに書き込まれた複数の開始時刻T2sのうち、ステップS150を実行する直前に記憶された開始時刻T2sを直前開始時刻T2sjbとして取得する。
【0036】
ステップS150で直前開始時刻T2sjbを取得すると、定周期処理ルーチンとフィードバック処理ルーチンの各ステップが実行されていない空き期間をチェック可能期間T3(l)(nは自然数)に設定し、チェック可能期間T3(l)を共有メモリ40に書き込む(ステップS160)。空き期間の導出方法は、下記の通りである、最初に、定周期処理ルーチンのステップS100で取得した開始時刻T1sと予め定めた定周期処理ルーチンの各ステップを実行して処理を終了するまでに要する時間T1refから、現在の定周期処理ルーチンの終了時刻T1eを演算する。次に、ステップS150で取得した直前開始時刻T2sjbと予め定めたフィードバック処理ルーチンのステップS300~S330を終了するまでに要する時間とフィードバック処理ルーチンに実行間隔(キャリア周期Tc)から、終了時刻T1eから次の定周期処理ルーチンが開始されるまでの時刻T1ns(=T1s+X)までの間にフィードバック処理ルーチンが実行されている期間T2exe(m)を演算する。「m」は、値0以上の整数である。今、定周期処理ルーチンが1回実行される間にフィードバック処理ルーチンは1回以上実行されることから、期間T2exeは、1つ以上設定される。そして、定周期処理ルーチンの各処理の終了時刻T1eから次の定周期処理ルーチンの開始時刻T1nsまでの間で期間T2exeではない期間を、チェック可能期間T3(l)(lは自然数)とする。「l」は、値0以上の整数である。
【0037】
こうしてチェック可能期間T3(l)を設定すると、チェック可能期間T3(l)毎に、1回の異常判定の対象とする共有メモリ40の記憶容量(判定容量)Mcと異常判定の対象とする領域(判定領域)Acとを設定して、共有メモリ40に書き込み(ステップS170)、チェック可否フラグFcを値1に設定して共有メモリ40に書き込んで(ステップS180)、定周期処理ルーチンを終了する。ステップS170では、判定領域Acは、共有メモリ40に記憶されるデータに対して予め異常判定を実行する際の優先度を設定する。
【0038】
図4は、優先度とデータの種類との関係の一例を示す説明図である。優先度は、実施例では、優先度が高い順に、優先度1~5の5段階で設定している。
【0039】
優先度の最も高い「優先度1」のデータとしては、PWM制御の出力に比較的強く寄与する情報、例えば、トルク指令Tm*やモータ22の回転数Ne,キャリア周波数fc,生成したPWM信号の出力指令,各相の電圧指令Vu*,Vv*,Vw*,d軸,q軸の電流指令Id*,Iq*,V相,W相の相電流Iv,Iw,モータ22の電気角θeなどを挙げることができる。その他にも、d軸,q軸の電圧指令Vd*,Vq*に基づく指令電圧のベクトル位相やベクトル振幅や高電圧側電力ライン25の電圧VH,昇圧コンバータ26をPWM制御する際のキャリア周期Tcdなどを挙げることができる。
【0040】
「優先度2」のデータとしては、PWM制御の出力に寄与するが優先度1の情報よりPWM制御の出力への寄与の程度が低い情報、例えば、d軸,q軸の電圧指令Vd*,Vq*や低電圧側電力ライン27の電圧VL,昇圧コンバータ26のリアクトルに流れるリアクトル電流などを挙げることができる。その他にも、半周期毎の電流サンプリングの回数である電流サンプリング倍率やd軸,q軸の電流Id,Iqからマップを用いて得られるトルク推定値,目標電圧VH*,PWM制御モードや矩形波制御などの複数の制御モードのいずれかでインバータ24を制御する場合にはどの制御モードでインバータ24を制御しているかについての情報である制御状態などを挙げることができる。
【0041】
「優先度3」のデータとしては、各種センサにより検出される温度や状態フラグを挙げることができる。各種センサにより検出される温度としては、インバータ24を冷却するための冷却水の温度を検出する温度センサからの冷却水温やインバータ24を構成するトランジスタの温度を検出する温度センサからの素子温度などを挙げることができる。状態フラグとしては、モータ22の回転数Neが急変しているか否かを示す回転数急変状態フラグやシフト位置検出センサからのシフト位置などを挙げることができる。
【0042】
「優先度4」のデータとしては、学習に用いられる情報を挙げることができる。学習に用いられる情報としては、モータ22の回転数を検出する回転位置検出センサ22aのオフセット値の学習で得られたオフセット値やその学習の実施状態、V相,W相の相電流Iv,Iwを検出する電流センサ22b,22cのオフセット値の学習で得られたオフセット値やその学習の実施状態、温度センサのオフセット値の学習の実施状態などを挙げることができる。
【0043】
「優先度5」のデータとしては、モータ装置20の異常状態を示す情報などを挙げることができる。異常状態を示す情報としては、モータ22やインバータ24を冷却する冷却系の異常状態やその他の各種異常状態などを挙げることができる。
【0044】
ステップS130でキャリア周期Tcが一定でなかったり、ステップS130でキャリア周期Tcが一定であってもステップS140でキャリア周波数fcが切り替えポイントであるときには、キャリア周期Tcが今後変化する可能性が高いため、直前開始時刻T2sjbを用いて定周期処理ルーチン,フィードバック処理ルーチンの各ステップを実行していない空き期間を適正に演算できない可能性が高い。この場合は、チェック可否フラグFcを値0に設定して共有メモリ40に書き込み(ステップS190)、チェック可能期間T3(l)を初期化して(ステップS200)、定周期処理ルーチンを終了する。
【0045】
図5は、プロセッサコア34cにより実行される異常判定処理ルーチンの一例を示すフローチャートである。異常判定処理ルーチンは、上述したチェック可否フラグFcが値1に設定されているときに、キャリア周期Tcと同一の周期で繰り返し実行される。
【0046】
異常判定処理ルーチンが実行されると、プロセッサコア34cは、共有メモリ40に書き込まれているチェック可能期間T3(l)を読み出す処理を実行する(ステップS400)。そして、タイマ42のタイマ値Tを参照して、今がチェック可能期間T3(l)であるか否かを判定する(ステップS410)。今がチェック可能期間T3(l)でないときには、異常判定処理ルーチンを終了する。
【0047】
ステップS410で今がチェック可能期間T3(l)であるときには、チェック可能期間T3(l)に対応する共有メモリ40の判定容量Mc,判定領域Acに対して異常が生じているか否かを判定する異常判定を実行する(ステップS420)。異常判定は、共有メモリ40に記憶されているデータを書き換えることができない異常(メモリ固着)を判定するものとし、以下の方法で実行される。最初に、共有メモリ40の判定領域Acに記憶されているデータを判定容量Mc分読み出して、レジスタ36aに退避させる。続いて、データを読み出した判定領域Acに確認データDcを書き込む。確認データDcは、共有メモリ40をチェックする際のデータとして予め定めたデータである。そして、判定領域AcからデータDrをレジスタ36bに読み出し、確認データDcとレジスタ36bから読み出したデータDrとを比較する。判定領域Acが正常であるときには、確認データDcとデータDrとは一致する。したがって、確認データDcとデータDrとが一致しているときには共有メモリ40が正常であると判定し、確認データDcとデータDrとが一致していないときには共有メモリ40に異常(メモリ固着)が発生していると判定する。その後、レジスタ36aに退避させていた元のデータを共有メモリ40の判定領域Acに復帰させる。
【0048】
ステップS420で共有メモリ40の判定領域Acに記憶されている判定容量Mcのデータが正常であるときには(ステップS430)、異常判定処理ルーチンを終了する。
【0049】
ステップS420で共有メモリ40の判定領域Acに記憶されている判定容量Mcのデータに異常が発生しているときには(ステップS430)、共有メモリ40に異常が発生しているときに実行される所定のダイアグ判定処理を実行して(ステップS440)、異常判定処理ルーチンを終了する。
【0050】
図6は、プロセッサコア34a~34cの動作の一例を示すタイミングチャートである。図中、「定周期処理ルーチン」でハッチングが施されている領域は、定周期処理ルーチンのステップS130,S140が実行されている期間と、ステップS180が実行されている期間を示している。「チェック可能期間(T3(l))」でハッチングが施されている領域は、定周期処理ルーチンでチェック可能期間T3(l)に設定された期間を示している。「異常判定処理ルーチン」でハッチングが施されている領域は、異常判定処理ルーチンが実行されている期間を示している。
【0051】
プロセッサコア34bのフィードバック処理ルーチンが実行されると、図示するように、実行のたび(キャリア周期Tc毎)に、共有メモリ40の共有バッファ40a~40cに、フィードバック処理ルーチンの実行が開始された時刻(図中、T2s(m),T2s(m+1),T2s(m+2)など)が書き込まれる。
【0052】
プロセッサコア34aの定周期処理ルーチンでは、キャリア周期Tcが前回値から変化するとき(図中、周期T1から周期T2へ変化するとき)には、チェック可否フラグFcを値0に設定する(ステップS190)。チェック可否フラグFcが値0に設定されると、プロセッサコア34cの異常判定ルーチンが実行されないから、共有メモリ40の異常判定が実行されない。
【0053】
キャリア周期Tcが一定であるとき(周期Tc2で一定であるとき)には、ステップS150を実行する直前に共有メモリ40の共有バッファに書き込まれた直前開始時刻T2sjb(図中、T2s(m+7))を取得し(ステップS150)、定周期処理ルーチンとフィードバック処理ルーチンの各ステップが実行されていない空き期間を共有メモリ40のチェック可能期間T3(l)(nは自然数)に設定し、チェック可能期間T3(l)を共有メモリ40に書き込み(ステップS160)、判定容量Mc,判定領域Acを設定し(ステップS170)、チェック可否フラグFcを値1に設定する(ステップS180)。チェック可否フラグFcが値1に設定されると、プロセッサコア34cの異常判定ルーチンが実行され、チェック可能期間T3(l)で共有メモリ40の記憶領域のうち
図4に例示した優先度の高いデータが記憶されている記憶領域から順に異常判定処理ルーチンが実行される。このように、キャリア周期Tcが一定であったり、キャリア周波数fcが切り変わらない期間であって、プロセッサコア34a,34bが定周期処理ルーチン,フィードバック処理を実行していない空き期間に、プロセッサコア34cは共有メモリ40の異常判定を実行するから、プロセッサコア34a,34bの共有メモリ40へのアクセスとプロセッサコア34cの共有メモリ40へのアクセスとの競合を回避することができる。また、共有メモリ40の記憶領域のうち優先度の高いデータが記憶されている記憶領域から順に異常判定を実行するから、より適正にモータ装置20やモータ装置20が搭載されている電気自動車を作動させることができる。
【0054】
以上説明した実施例のモータ制御用の情報処理装置によれば、プロセッサコア34cは、キャリア周期(制御周期)Tcが一定であり、且つ、フィードバック処理を終了して次にフィードバック処理を開始するまでの空き期間に共有メモリ40の異常判定を実行することにより、プロセッサコア34bの共有メモリ40へのアクセスとプロセッサコア34cの共有メモリ40へのアクセスとが競合することを回避することができる。
【0055】
実施例のモータ制御用の情報処理装置では、プロセッサコア34aは、優先度の高いデータが記憶されているメモリの記憶領域から順に異常判定を実行している。しかしながら、優先度を考慮せずに、例えば、共有メモリ40のアドレスの小さい領域から順に異常判定を実行するなど、共有メモリ40のどの領域から順番に異常判定を実行するかについては適宜定めることができる。また、共有メモリ40の全ての領域に対して異常判定を実行しなくてもよく、共有メモリ40の予め定めた一部の領域のみに異常判定を実行してもよい。
【0056】
実施例のモータ制御用の情報処理装置では、インバータ24のPWM制御をプロセッサコア34a,34bで分担して実行しているが、プロセッサコア34bで全ての処理を実行しても構わないし、3つ以上のプロセッサコアで分担して実行してもよい。
【0057】
実施例では、本発明のモータ制御用の情報処理装置を、電気自動車に搭載されるモータ装置20に適用しているが、電気自動車とは異なる他の装置に搭載されるモータ装置20に適用してもよいし、モータ装置20単体に適用してもよい。
【0058】
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、マルチコアプロセッサ32が「マルチコアプロセッサ」に相当し、共有メモリ40が「メモリ」に相当し、プロセッサコア34bが「制御側プロセッサコア」に相当し、プロセッサコア34cが「判定側プロセッサコア」に相当する。
【0059】
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
【0060】
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
【産業上の利用可能性】
【0061】
本発明は、モータ制御用の情報処理装置の製造産業などに利用可能である。
【符号の説明】
【0062】
20 モータ装置、22 モータ、22a 回転位置検出センサ、22b、22c 電流センサ、24 インバータ、25 高電圧側電力ライン、25a,27a 電圧センサ、26 昇圧コンバータ、27 低電圧側電力ライン、26 昇圧コンバータ、28 バッテリ、30 電子制御ユニット、32 マルチコアプロセッサ、32a,32b,32c プロセッサコア、36a,36b レジスタ、40 共有メモリ、40a 共有バッファ、42 タイマ、50 バス。