(57)【要約】【課題】  マイクロコンピュータのソフトウェア異常を広い監視範囲で早期に検出可能なモータ制御装置を提供する。【解決手段】  モータ制御装置１０は、各センサ７５、７０、９４からのアナログ電気信号をデジタル電気信号に変換するハードウェアであるＡ／Ｄ変換器１１、１２、１３と、ソフトウェアであるマイコン３０と、インバータ６０を駆動しモータに電力を供給するハードウェアである駆動部４０とから構成されている。マイコン３０は、個別に入力から出力を演算する「単位ブロック」としての各演算部３１〜３７を含み、モータの駆動に係る制御量を演算する。また、マイコン３０は、制御演算と並行して、当該制御演算が正常に実行されているか否かを監視するソフトウェア監視処理を単位ブロック毎に実行する。これにより、モータ制御装置１０は、別の監視用ハードウェアを用いることなく、ソフトウェア異常を検出することができる。【選択図】図４
2014003765.tif 000002
【特許請求の範囲】
【請求項１】
モータ（８０）を駆動する駆動部（４０）と、
前記モータの駆動に関するセンサ（７０、７５、９４）からのアナログ電気信号をデジタル電気信号に変換するＡ／Ｄ変換器（１１、１２、１３）と、
前記Ａ／Ｄ変換器からの入力信号を用いて制御ソフトウェアを実行することで前記モータの駆動に係る制御量を演算し、演算結果を前記駆動部に出力するマイクロコンピュータ（３０）と、
を備え、
前記マイクロコンピュータは、制御演算と並行して、当該制御演算が正常に実行されているか否かを監視するソフトウェア監視処理を実行することを特徴とするモータ制御装置（１０）。
【請求項２】
前記マイクロコンピュータが実行する制御ソフトウェアは、個別に入力から出力を演算する複数の単位ブロックから構成され、
前記マイクロコンピュータは、当該単位ブロック毎に前記ソフトウェア監視処理を実行することを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
２組の巻線組（８０１、８０２）を有するモータに適用され、前記２組の巻線組に対し電力を供給する２系統のインバータ（６０１、６０２）を前記駆動部に含む請求項１または２に記載のモータ制御装置において、
前記マイクロコンピュータは、系統毎に検出された検出値、又は当該検出値に基づいて演算された演算値を系統間で比較することにより、前記ソフトウェア監視処理を実行することを特徴とするモータ制御装置。
【請求項４】
運転者の操舵を補助するためのアシストトルクを発生する操舵アシストモータ（８０）と、
当該操舵アシストモータの駆動を制御する請求項１〜３のいずれか一項に記載のモータ制御装置と、
前記操舵アシストモータのトルクをステアリングシャフトに伝達する動力伝達手段（８９）と、
を備えた電動パワーステアリング装置（１）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの駆動を制御するモータ制御装置、及び、これを用いた電動パワーステアリング装置に関する。
【背景技術】
【０００２】
従来、モータ制御装置を構成するインバータや電源リレー等の故障、或いは、モータ制御装置へ入力される各物理量を検知する電流センサや回転角センサ等の故障が発生したとき、これらの故障を検出し、フェールセーフの思想によって制御を変更する技術が知られている。しかし、モータ制御装置に関する故障モードは、これらのハードウェア故障に限らず、マイクロコンピュータが実行する制御ソフトウェアにバグが存在する場合が考えられる。こうしたソフトウェアの異常は、ユーザに対し重大な影響を与える可能性がある。
【０００３】
そこで、例えば特許文献１に開示された装置は、ハードウェアである検証装置をマイクロコンピュータと別に設け、この検証装置がマイクロコンピュータと独立して、同演算や簡易的な演算を並行して行う。マイクロコンピュータと検査装置との演算出力を比較することで、マイクロコンピュータのソフトウェア異常を検出するというものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許４４９６２０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の装置では、マイクロコンピュータとは別のハードウェアが必要となる。また、マイクロコンピュータからハードウェアへ、通信線を経由して信号を出力するため、監視対象の組合せによって出力数が膨大となる場合、誤検出を回避するために監視範囲を狭めざるを得ないという問題がある。さらに、通信線による通信速度の制約が生じる。
【０００６】
本発明は、上述の課題に鑑みてなされたものであり、その目的は、別のハードウェアを用いることなく、マイクロコンピュータのソフトウェア異常を広い監視範囲で早期に検出可能なモータ制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、モータを駆動する駆動部と、モータの駆動に関するセンサからのアナログ電気信号をデジタル電気信号に変換するＡ／Ｄ変換器と、Ａ／Ｄ変換器からの入力信号を用いて制御ソフトウェアを実行することでモータの駆動に係る制御量を演算し、演算結果を駆動部に出力するマイクロコンピュータとを備えるモータ制御装置において、マイクロコンピュータが、制御演算と並行して、当該制御演算が正常に実行されているか否かを監視する「ソフトウェア監視処理」を実行することを特徴とする。
【０００８】
これにより、本発明のモータ制御装置は、別のハードウェアを用いることなく、マイクロコンピュータのソフトウェア異常を内部で検出することができる。通信線を用いないので、ノイズ等の影響を考慮し監視領域に大きなマージンを設ける必要が無く、また、通信線による通信速度の制約を受けない。よって、マイクロコンピュータのソフトウェア異常を広い監視範囲で早期に検出することができる。そのため、例えば電動パワーステアリング装置の操舵アシストモータのように、特に安全性の要求が高いモータに適用されると有効である。
【０００９】
ところで、マイクロコンピュータ自体が制御演算と共にソフトウェア監視処理を実行すると、演算負荷が増大しＣＰＵリソースを多大に消費するのではないかということが考えられる。この点については、例えばソフトウェア監視周期を制御演算周期よりも長い周期に設定することにより、演算負荷を低減することが可能である。
【００１０】
また、マイクロコンピュータが実行する制御ソフトウェアは、個別に入力から出力を演算する複数の単位ブロックから構成され、当該単位ブロック毎にソフトウェア監視処理が実行されることが好ましい。これにより、単位ブロック毎に入力と出力との関係におけるエラーの有無を監視するため、監視単位での演算量を低減することができる。また、異常箇所の特定が容易となる。さらに、全体ブロック監視に比べ単位ブロック監視の方が、一意的に出力を特性できるため、監視領域を厳しく設定できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態によるモータ制御装置の回路模式図。
【図２】本発明の一実施形態によるモータ制御装置を適用した電動パワーステアリング装置の概略構成図。
【図３】本発明の一実施形態によるモータ制御装置が適用されるモータの模式図。
【図４】本発明の一実施形態によるモータ制御装置全体の制御ブロック図。
【図５】機械角演算部の制御ブロック図。
【図６】機械角演算部のソフトウェア監視処理のフローチャート。
【図７】機械角演算部のソフトウェア監視処理のフローチャート。
【図８】回転角センサの検出回路の構成を示す模式図。
【図９】回転角センサの検出回路の出力信号を示す説明図。
【図１０】電流検出演算部の制御ブロック図。
【図１１】電流検出演算部のソフトウェア監視処理のフローチャート。
【図１２】電流検出演算部のソフトウェア監視処理のフローチャート。
【図１３】ＰＷＭ制御における電流検出タイミングを説明する説明図。
【図１４】ＰＷＭ指令の上シフト処理によるブラインド補正を説明する説明図。
【図１５】３相２相変換演算部の制御ブロック図。
【図１６】３相２相変換演算部のソフトウェア監視処理のフローチャート。
【図１７】３相２相変換演算部のソフトウェア監視処理のフローチャート。
【図１８】電流フィードバック演算部の制御ブロック図。
【図１９】電流フィードバック演算部のソフトウェア監視処理のフローチャート。
【図２０】電流フィードバック演算部のソフトウェア監視処理のフローチャート。
【図２１】電流フィードバック演算部のソフトウェア監視処理のフローチャート。
【図２２】電流フィードバック演算部のソフトウェア監視処理のフローチャート。
【図２３】ｑ軸電圧指令値の飽和ガードを説明する説明図。
【図２４】電流和差演算を説明する説明図。
【図２５】２相３相変換演算部の制御ブロック図。
【図２６】２相３相変換演算部のソフトウェア監視処理のフローチャート。
【図２７】ＰＷＭ指令演算部の制御ブロック図。
【図２８】ＰＷＭ指令演算部のソフトウェア監視処理のフローチャート。
【図２９】ＰＷＭ指令演算部のソフトウェア監視処理のフローチャート。
【図３０】ＰＷＭ指令演算部のソフトウェア監視処理のフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明によるモータ制御装置の実施形態を図面に基づいて説明する。
（一実施形態）
［全体構成］
本発明によるモータ制御装置を車両の電動パワーステアリング装置に適用した実施形態の全体構成について、図１〜図４を参照して説明する。
図２は、電動パワーステアリング装置１を備えたステアリングシステム９０を示す。ハンドル９１に接続されたステアリングシャフト９２には、操舵トルクを検出するためのトルクセンサ９４が設置されている。ステアリングシャフト９２の先端にはピニオンギア９６が設けられており、ピニオンギア９６はラック軸９７に噛み合っている。ラック軸９７の両端には、タイロッド等を介して一対の車輪９８が回転可能に連結されている。ステアリングシャフト９２の回転運動は、ピニオンギア９６によってラック軸９７の直線運動に変換され、ラック軸９７の直線運動変位に応じた角度について一対の車輪９８が操舵される。
【００１３】
電動パワーステアリング装置１は、回転軸を回転させるアクチュエータ２、及び、回転軸の回転を減速してステアリングシャフト９２に伝達する「動力伝達手段」としての減速ギア８９を含む。アクチュエータ２は、操舵アシストモータ８０とモータ制御装置１０とから構成される。モータ８０は、モータ制御装置１０の制御によって駆動され、ハンドル９１の操舵を補助するための操舵アシストトルクを発生し、ステアリングシャフト９２に伝達する。
本実施形態のモータ８０は、３相交流ブラシレスモータである。また、モータ８０の回転角は、回転角センサ７５によって検出される。
【００１４】
詳しくは、図１に示すように、モータ８０は、２組の巻線組８０１、８０２を有する。
第１巻線組８０１は、Ｕ、Ｖ、Ｗ相の３相巻線８１１、８１２、８１３から構成され、第２巻線組８０２は、Ｕ、Ｖ、Ｗ相の３相巻線８２１、８２２、８２３から構成される。
インバータ６０は、第１巻線組８０１に対応して設けられる第１系統インバータ６０１と、第２巻線組８０２に対応して設けられる第２系統インバータ６０２から構成される。以下、インバータ、及びそのインバータと対応する３相巻線組の組合せの単位を「系統」という。
【００１５】
モータ制御装置１０は、入力側のハードウェアであるＡ／Ｄ変換器１１、１２、１３と、ソフトウェアであるマイクロコンピュータ（以下「マイコン」という）３０と、出力側のハードウェアである駆動部４０とから構成されている。
Ａ／Ｄ変換器１１、１２、１３は、それぞれ回転角センサ７５、電流センサ７０、トルクセンサ９４からのアナログ電気信号を入力し、デジタル電気信号に変換する。
マイコン３０は、Ａ／Ｄ変換器１１、１２、１３の入力信号を用いて制御ソフトウェアを実行することでモータ８０の駆動に係る制御量を演算し、演算結果を駆動部４０に出力する。
【００１６】
駆動部４０は、タイマー４１、プリドライバ４１、電源リレー５２、コンデンサ５３、第１系統インバータ６０１、第２系統インバータ６０２、電流センサ７０等を含む。
タイマー４１は、マイコン３０のＰＷＭ指令に基づきプリドライバ４２の駆動信号を生成する。プリドライバ４２は、スイッチング素子をオン／オフすることで、インバータ６０１、６０２を駆動する。
【００１７】
電源リレー５２は、例えば１２Ｖの直流電源であるバッテリ５１から、インバータ６０１、６０２への電力供給を遮断可能である。
コンデンサ５３は、バッテリ５１と並列に接続され、電荷を蓄え、インバータ６０１、６０２への電力供給を補助したり、サージ電流などのノイズ成分を抑制したりする。
【００１８】
第１系統インバータ６０１は、第１巻線組８０１の各巻線８１１、８１２、８１３への通電を切り替えるべく、６つのスイッチング素子６１１〜６１６がブリッジ接続されている。本実施形態のスイッチング素子６１１〜６１６は、ＭＯＳＦＥＴ（金属酸化物半導体電界効果トランジスタ）である。以下、スイッチング素子６１１〜６１６をＭＯＳ６１１〜６１６という。また、高電位側のＭＯＳ６１１、６１２、６１３を「上ＭＯＳ」といい、低電位側のＭＯＳ６１４、６１５、６１６を「下ＭＯＳ」という。
【００１９】
上ＭＯＳ６１１、６１２、６１３は、ドレインがバッテリ５１の正極側に接続されている。また、上ＭＯＳ６１１、６１２、６１３のソースは、下ＭＯＳ６１４、６１５、６１６のドレインに接続されている。上ＭＯＳ６１１、６１２、６１３と下ＭＯＳ６１４、６１５、６１６との接続点は、それぞれ、巻線８１１、８１２、８１３の一端に接続されている。ＭＯＳ６１１〜６１６のゲートは、プリドライバ４２に接続され、プリドライバ４２の駆動信号によってオン／オフする。
【００２０】
電流センサ７０は、第１系統の電流センサ７０１と第２系統の電流センサ７０２とからなり、インバータ６０１、６０２が巻線組８０１、８０２に供給する相電流を相毎に検出する。本実施形態の電流センサ７０１、７０２は、シャント抵抗により構成されている。第１系統の電流センサ７０１を構成するシャント抵抗７１１、７１２、７１３は、下ＭＯＳ６１４、６１５、６１６のソースとバッテリ５１の負極側の間に接続されており、第１系統Ｕ、Ｖ、Ｗ相の巻線８１１、８１２、８１３に通電される相電流を検出する。
第２系統インバータ６０２について、スイッチング素子（ＭＯＳ）６２１〜６２６、シャント抵抗７２１、７２２、７２３の構成は、第１系統インバータ６０１と同様である。
【００２１】
モータ８０の具体的な構成について、図３を参照して説明する。図３（ａ）に示すように、モータ８０は、回転軸を中心としてロータ８３がステータ８４に対して回転する。
本実施形態による３相交流ブラシレスモータは、ｍを自然数とすると、ステータ８４のコイル数が（１２×ｍ）であり、ロータ８３の永久磁石８７の極数が（２×ｍ）である。図３に示す例ではｍ＝５である。なお、ｍは５以外の自然数であってもよい。
【００２２】
図３（ｂ）は、スラスト方向Ｚ（図３（ａ）参照）から視たロータ８３の永久磁石８７及びステータ８４の模式図である。永久磁石８７は、Ｎ極とＳ極が交互に５個ずつ、計１０（＝２×５）極設けられている。
ステータコイルは、６個のコイルからなるコイル群が１０群、すなわち６０（＝１２×５）個のコイルから構成される。１つのコイル群は、Ｕ１、Ｕ２、Ｖ１、Ｖ２、Ｗ１、Ｗ２の各コイルがこの順に時計回りで配列される。また、２個ずつのコイル群に対応する５つのエリア（エリア０〜エリア４）を定義する。図の上側を０°とし時計回り方向で角度を示すと、各エリアの基端の角度位置は（ｎ×７２°、ｎ＝０〜４）となる。
【００２３】
図３（ｃ）は、スラスト方向Ｚから視たステータ８４の展開図であり、図３（ｄ）は、ラジアル方向Ｒ（図３（ａ）参照）から視た巻線の展開図である。図３（ｄ）に示すように、例えばＵ１コイルを形成する巻線は、１本の導線が、６個おきに配置される突出部８６に順に巻回されることにより形成される。
これにより、Ｕ相を例に取ると、第２巻線組８０２を構成するＵ２コイル８２１の周方向の配置は、第１巻線組８０１を構成するＵ１コイル８１１に対し、電気角３０°に相当する角度だけ進んだ位置関係になる。よって、第２巻線組８０２に供給される３相交流の位相を、第１巻線組８０１に供給される３相交流の位相に対して３０°進めることが可能となる。
【００２４】
次に、モータ制御装置１０全体の制御ブロック図を図４に示す。図４に示す構成は、２系統の場合に限定するものでなく、１系統のモータ制御装置にも適用可能である。
図４において、ハードウェアであるＡ／Ｄ変換器１１、１２、１３、及び駆動部４０については図１で説明したとおりである。一方、マイコン３０内のソフトウェアについて、一連の制御演算処理を複数の単位ブロック３１〜３７に分けて示している。この単位ブロックは、それぞれ個別に入力から出力を演算する処理単位である。
【００２５】
具体的には、マイコン３０は、単位ブロックとして、機械角演算部３１、電流検出演算部３２、３相２相変換演算部３３、電流フィードバック演算部３４、２相３相変換演算部３５、ＰＷＭ指令演算部３６及び電流指令値演算部３７を含む。そして、これらの単位ブロックは、更に詳細なブロックに分けることもできる。
【００２６】
各演算部の概略について説明すると、機械角演算部３１は、回転角センサ７５が検出したモータの回転角をＡ／Ｄ変換器１１の出力電圧として取得し、機械角ψを演算する。そして、機械角ψを３相２相変換演算部３３及び２相３相変換演算部３５に出力する。
電流検出演算部３２は、電流センサ７０が検出した相電流をＡ／Ｄ変換器１２の出力電圧として取得し、３相電流検出値Ｉｕ、Ｉｖ、Ｉｗを演算する。
３相２相変換演算部３３は、３相電流検出値Ｉｕ、Ｉｖ、Ｉｗをｄｑ軸電流検出値Ｉｄ、Ｉｑに変換し、電流フィードバック演算部３４に出力する。
【００２７】
電流指令値演算部３７は、トルクセンサ９４が検出した操舵トルクをＡ／Ｄ変換器１３の出力電圧として取得し、ｑ軸電流指令値Ｉｑ*を演算する。そして、ｑ軸電流指令値Ｉｑ*を電流フィードバック演算部３４に出力する。
電流フィードバック演算部３４は、電流指令値演算部３７から取得したｑ軸電流指令値Ｉｑ*、及び、内部で演算したｄ軸電流指令値Ｉｄ*と、３相２相変換演算部３３からのｄｑ軸電流検出値Ｉｄ、Ｉｑとの偏差に基づいて、ＰＩ制御により電圧指令値Ｖｄ*、Ｖｑ*を生成し、２相３相変換演算部３５に出力する。
【００２８】
２相３相変換演算部３５は、電圧指令値Ｖｄ*、Ｖｑ*をＵ相、Ｖ相、Ｗ相の３相電圧指令値Ｖｕ*、Ｖｖ*、Ｖｗ*に変換してＰＷＭ指令演算部３６に出力する。ＰＷＭ指令演算部３６は、デューティ（％）を表すＰＷＭ指令を演算する。
このＰＷＭ指令がマイコン３０から駆動部４０のタイマー４１に出力され、三角波比較によりインバータ６０の上下ＭＯＳのスイッチング信号が生成される。そして、このスイッチング信号に基づき、プリドライバ４２によってインバータ６０が駆動される。
【００２９】
ところで一般にモータ制御装置では、インバータ６０１、６０２のＭＯＳ６１１〜６１６、６２１〜６２６や電源リレー５２等の短絡または断線故障、或いは、電流センサ７０や回転角センサ７５の検知部の故障等のハード的な故障については、様々な故障検出方法が提案されている。また、特に電動パワーステアリング装置のように安全性の要求が高い装置では、故障が生じた場合、フェールセーフの思想によって常に安全側に制御を変更することも一般に行われている。
【００３０】
しかし、マイコン３０内の制御ソフトウェアの異常、いわゆるバグについては、今まで注目されてこなかった。それに対し、本実施形態のモータ制御装置１０は、制御演算と並行して、マイコン３０内の制御ソフトウェアの異常を監視することを特徴とする。以下、この処理を「ソフトウェア監視処理」という。「ソフトウェア監視処理」は、ユーザに対し重大な影響を与える可能性があるソフトウェア異常を検出し、モータ制御装置１０が適用される電動パワーステアリング装置１の信頼性を向上させるものである。なお、ソフトウェアの異常には、演算値が最大値、最小値又は他の値に張り付く異常、或いは演算値が正常値の倍の値や（１／２）の値となる異常等が考えられる。
【００３１】
本実施形態では、ソフトウェア監視処理は、上記の単位ブロック毎に実行される。ここで、ソフトウェア監視処理は、制御演算と同じ演算周期で実行されてもよいし、或いは、演算負荷を低減するニーズが優先する場合、ソフトウェア監視周期を制御演算周期よりも長い周期に設定してもよい。
以下、電流指令値演算部３７を除く６つの演算部３１〜３６について、具体的なソフトウェア監視処理の例について、図５〜図３０を参照して説明する。
【００３２】
以下の説明で２系統における電流、電圧等の制御量を系統毎に区別するときは、記号の末尾に、第１系統または第２系統を示す数字「１」、「２」を付し、系統毎に区別しないときは、数字「１」、「２」を除いた記号を用いる。
また、ソフトウェア監視処理では、検出ノイズ等の考慮から「ゼロ近似値」を定義し、監視対象量の絶対値が「ゼロ近似値」以下の場合、事実上「ゼロ」に等しいとみなす。例えば、「ゼロ近似電圧値Ｖａｐｐ０」は０．１Ｖ、「ゼロ近似電流値Ｖａｐｐ０」は１Ａ、「ゼロ近似デューティＤａｐｐ０」は１％というように設定することができる。
【００３３】
[機械角演算部３１]
機械角演算部３１のソフトウェア監視処理について、図５〜図９を参照して説明する。
図５に示すように、機械角演算部３１の実行する演算は、差分演算３１１、第１補正演算３１２、擬似信号演算３１３、第２補正演算３１４、角度演算３１５、第３補正演算３１６を含む。
ここで、回転角センサ７５の検出素子として、例えば磁気抵抗素子（ＭＲ）が採用される。磁気抵抗素子は、被検出体の回転に応じて変化する回転磁界によってインピーダンスが変化する。本実施形態では、磁気抵抗素子の電気角が機械角ψに相当する。また、図３に示すように本実施形態のモータ８０は磁極対の数が５であるので、機械角ψは、モータ電気角θの（１／５）に相当する。
【００３４】
図６は、２系統での算出機械角を比較する監視処理のフローチャートである。以下のフローチャ−トの説明で、記号Ｓは「ステップ」を示す。Ｓ１０１では、第１系統及び第２系統の両系統で算出した機械角ψと、第１系統又は第２系統のいずれか片系統で算出した機械角ψとの角度差が所定の角度閾値ψ1-2ｔｈ以下であるか判断する。角度差が閾値ψ1-2ｔｈ以下であればエラーフラグをオフ（Ｓ１０２）とし、閾値ψ1-2ｔｈより大きければエラーフラグをオン（Ｓ１０３）とする。
【００３５】
図７のフローチャートは、特開２０１１−９９８４６号公報に開示された回転角センサの検出回路の出力信号を監視するものである。この検出回路は、図８に示すように、４つのハーフブリッジ回路２１０、２２０、２３０、２４０、増幅部２５、制御部であるマイコン３０から構成されている。
第１ハーフブリッジ２１０は、２つの磁気抵抗素子２１１、２１２が電源ＶｃｃとグランドＧＮＤとの間に直列に接続されている。電源Ｖｃｃの電圧は例えば５Ｖである。
第２ハーフブリッジ２２０、第３ハーフブリッジ２３０、第４ハーフブリッジ２４０も同様に、それぞれ２つの磁気抵抗素子２２１、２２２、２３１、２３２、２４１、２４２が電源ＶｃｃとグランドＧＮＤとの間に直列に接続されている。
【００３６】
各ハーフブリッジ２１０、２２０、２３０、２４０の中点２１５、２２５、２３５、２４５は、増幅部２５のオペアンプ２５１〜２５４のプラス側に接続されている。また、オペアンプ２５１〜２５４のマイナス側には、２．５Ｖのオフセット電圧が入力される。
増幅部２５は、各ハーフブリッジ２１０、２２０、２３０、２４０の中点２１５、２２５、２３５、２４５から出力された出力信号を増幅すると共にオフセットして、マイコン３０に出力する。その結果、マイコン３０には、図９（ａ）、（ｂ）に示す出力信号が出力される。
【００３７】
つまり、第１ハーフブリッジ２１０の出力に基づく出力信号をＶx1、第２ハーフブリッジ２２０の出力に基づく出力信号をＶy1、第３ハーフブリッジ２３０の出力に基づく出力信号をＶx2、第４ハーフブリッジ２４０の出力に基づく出力信号をＶy2、振幅をＢとすると、各出力信号は、回転角ψとの関係で下式１．１〜１．４のように表される。
Ｖx1＝  Ｂ１ｃｏｓψ＋２．５＋Ｃ１    ・・・式（１．１）
Ｖy1＝  Ｂ２ｓｉｎψ＋２．５＋Ｃ２    ・・・式（１．２）
Ｖx2＝−Ｂ３ｃｏｓψ＋２．５＋Ｃ３    ・・・式（１．３）
Ｖy2＝−Ｂ４ｓｉｎψ＋２．５＋Ｃ４    ・・・式（１．４）
ここで、回転角ψは磁気抵抗素子の電気角、すなわち機械角ψに相当する。
【００３８】
マイコン３０は、式１．１と式１．３との差分、式１．２と式１．４との差分を演算してオフセット電圧値を消去した上で、下式１．５のようにそれらの比を演算し、その結果に基づいて機械角ψを算出する。
（Ｖy1−Ｖy2）／（Ｖx1−Ｖx2）
＝２Ｂ’ｓｉｎψ／２Ｂ’ｃｏｓψ＝ｔａｎψ    ・・・式（１．５）
【００３９】
ここで、オフセット電圧２．５Ｖの補正値をＶｏｆｆ、ゲイン補正値をＧで表すと、式１．１〜式１．４を下式１．６〜１．９のように書き換えることができる。
｜Ｖx1−（Ｂ１ｃｏｓψ＋Ｖｏｆｆ１）／Ｇ１｜＝０    ・・・式（１．６）
｜Ｖy1−（Ｂ２ｓｉｎψ＋Ｖｏｆｆ２）／Ｇ２｜＝０    ・・・式（１．７）
｜Ｖx2＋（Ｂ３ｃｏｓψ−Ｖｏｆｆ３）／Ｇ３｜＝０    ・・・式（１．８）
｜Ｖy2＋（Ｂ４ｓｉｎψ−Ｖｏｆｆ４）／Ｇ４｜＝０    ・・・式（１．９）
【００４０】
演算が正常ならば、式１．６〜１．９の右辺を「ゼロ近似電圧値Ｖａｐｐ０」以下とみなした条件式が成立する。そこで、図７のフローチャートでは、Ｓ１１１〜Ｓ１１４で、この４つの条件式の成立可否を判断し、全て成立すればエラーフラグをオフ（Ｓ１１５）とし、いずれか１つでも不成立ならばエラーフラグをオン（Ｓ１１６）とする。
【００４１】
[電流検出演算部３２]
電流検出演算部３２のソフトウェア監視処理について、図１０〜図１４を参照して説明する。
図１０に示すように、電流検出演算部３２の実行する演算は、山読み電圧演算３２１、オフセット補正／ゲイン補正演算３２２、ブラインド補正演算３２３を含む。電流検出演算部３２は、各系統各相の「山読み電流Ａ／Ｄ値」（ＩｔＡ／Ｄ）、「谷読み電流Ａ／Ｄ値」（ＩｂＡ／Ｄ）が入力され、各系統各相の制御用電流（Ｉｃｔｒｌ）を出力する。
【００４２】
本実施形態では、駆動部４０において、三角波比較によるＰＷＭ制御によりインバータ６０のＭＯＳのオン／オフ信号が生成される。ここで、ＰＷＭ制御における電流検出タイミングについて図１３を参照して説明する。ＰＷＭ制御では、各相ＰＷＭ指令ＰＷＭｕ、ＰＷＭｖ、ＰＷＭｗと搬送波とを比較し、ＭＯＳのオン／オフ信号を生成する。本実施形態で採用する方式では、三角波Ｃｒが各相ＰＷＭ指令ＰＷＭｕ、ＰＷＭｖ、ＰＷＭｗを上回る区間において、上ＭＯＳがオフとなり、対応する下ＭＯＳがオンとなる。また、三角波Ｃｒが各相ＰＷＭ指令信号ＰＷＭｕ、ＰＷＭｖ、ＰＷＭｗを下回る区間において、上ＭＯＳがオンとなり、対応する下ＭＯＳがオフとなる。
【００４３】
図１３に示す例では、ＰＷＭ指令が大きい方からＵ相、Ｖ相、Ｗ相の順となっている。例えば区間ＫＶ１では、三角波Ｃｒは、Ｕ相ＰＷＭ指令ＰＷＭｕよりも下に位置し、Ｖ相ＰＷＭ指令ＰＷＭｖ指令信号及びＷ相ＰＷＭ指令ＰＷＭｗよりも上に位置している。したがって、Ｕ相については、上ＭＯＳがオンとなり、下ＭＯＳがオフとなる。Ｖ相及びＷ相については、上ＭＯＳがオフとなり、下ＭＯＳがオンとなる。
このように、ＭＯＳのオン／オフ状態は、電圧ベクトルパターンによって示すことができる（例えば特開２０１２−５０２５２号公報参照）。
【００４４】
本実施形態では、シャント抵抗７１１、７１２、７１３等が下ＭＯＳ６１４、６１５、６１６等側に設けられている。したがって、３相全ての上ＭＯＳがオフとなり、３相全ての下ＭＯＳがオンとなる「ゼロ電圧ベクトルＶ０発生期間」、すなわち三角波Ｃｒの山のタイミングでＡ／Ｄ変換器１２が出力する「山読み電圧」を検出することにより、「下ＭＯＳを流れる電流」を演算する。この電流を「山読み電流」という。
また、３相全ての下ＭＯＳがオフとなり、３相全ての上ＭＯＳがオンとなる「ゼロ電圧ベクトルＶ７発生期間」、すなわち三角波Ｃｒの谷のタイミングでＡ／Ｄ変換器１２が出力する「谷読み電圧」を検出することにより、補正のための「谷読み電流」を演算する。
【００４５】
ところで、シャント抵抗が電流検出するための最短時間として、リンギングタイムやデッドタイムを考慮すると約５μｓ必要である。すると、三角波の周期が５０μｓである場合にはデューティ９０％でのゼロ電圧ベクトルＶ０の発生期間が５μｓであるため、デューティが９０％を超えると、ゼロ電圧ベクトルＶ０の発生期間が５μｓよりも短くなる。したがって、シャント抵抗の最短電流検出時間を確保することができなくなる。
【００４６】
そこで、このような場合、ゼロ電圧ベクトルＶ０発生期間に電流検出するのではなく、「３相のうち２相の下ＭＯＳがオンし、他の１相の下ＭＯＳがオフする期間」に電流を検出する方法が知られている（例えば特許第４７１５６７７号公報参照）。この方法では、下ＭＯＳがオンしている２相のシャント抵抗を流れる電流を検出し、下ＭＯＳがオフしている１相の電流を下式２．１に示すキルヒホッフの法則により推定する。これが「ブラインド補正」に相当する。
Ｉｕ＋Ｉｖ＋Ｉｗ＝０    ・・・式（２．１）
【００４７】
ブラインド補正は、電流を推定する相がＵ相の場合は電圧ベクトルＶ１発生期間に行われ、Ｖ相の場合は電圧ベクトルＶ３発生期間に行われ、Ｗ相の場合は電圧ベクトルＶ５発生期間に行われる。すなわち、奇数電圧ベクトル発生期間に行われる。
また、ブラインド補正において奇数電圧ベクトル発生期間をできるだけ長く確保するため、図１４に示す「上シフト処理」が行われる。図１４に示す例では、ＰＷＭ指令が大きい方からＵ相、Ｖ相、Ｗ相の順となっている。この場合、最大であるＵ相のＰＷＭ指令ＰＷＭｕを１００％とするように電圧平均値を高電圧側に上シフトする。これにより、シフト前のゼロ電圧ベクトルＶ０発生期間が無くなり、ゼロ電圧ベクトルＶ０発生期間の前後の電圧ベクトルＶ１発生期間が一連の期間となる。その結果、電圧ベクトルＶ１発生期間に電流検出が実行される。
【００４８】
図１１（ａ）のフローチャートは、山読み電圧演算３２１が正常であるか否か監視するものである。Ｓ２０１では、山読み電圧の平均値Ｖｔａとオフセット値２．５Ｖとを比較する。電圧差の絶対値がゼロ近似電圧値Ｖａｐｐ０以下であればエラーフラグをオフ（Ｓ２０２）とし、Ｖａｐｐ０を超える場合はエラーフラグをオン（Ｓ２０３）とする。
【００４９】
図１１（ｂ）のフローチャートは、オフセット補正演算３２２が正常であるか否か監視するものである。Ｓ２１１では、谷読み電圧Ｖｂと、ゲイン補正前の電圧値Ｖｏにオフセット値２．５Ｖを加えた電圧値とを比較する。電圧差の絶対値がゼロ近似電圧値Ｖａｐｐ０以下であればエラーフラグをオフ（Ｓ２１２）とし、Ｖａｐｐ０を超える場合はエラーフラグをオン（Ｓ２１３）とする。
【００５０】
図１１（ｃ）のフローチャートは、ゲイン補正演算３２２が正常であるか否か監視するものである。Ｓ２２１では、ゲイン補正前の電圧値Ｖｏと、ゲイン補正後の電圧値Ｖｇを係数ｋで除した値とを比較する。電圧差の絶対値がゼロ近似電圧値Ｖａｐｐ０以下であればエラーフラグをオフ（Ｓ２２２）とし、Ｖａｐｐ０を超える場合はエラーフラグをオン（Ｓ２２３）とする。
【００５１】
図１２のフローチャートは、ブラインド補正演算３２３が正常であるか否か監視するものである。ブラインド補正が実行されているとき（Ｓ２３１：ＹＥＳ）、Ｕ、Ｖ、Ｗ相の結合点におけるキルヒホッフの法則が前提となるため、演算が正常ならば、３相の制御用電流の和は「０」に一致する。そこで、３相の制御用電流の和Ｓｕｍ（Ｉｕ，ｖ，ｗｃｔｒｌ）の絶対値がゼロ近似電流値Ｉａｐｐ０以下であればエラーフラグをオフ（Ｓ２３３）とし、Ｉａｐｐ０を超える場合はエラーフラグをオン（Ｓ２３４）とする。
【００５２】
一方、ブラインド補正が実行されていないとき（Ｓ２３１：ＹＥＳ）、演算が正常ならば、各相の検出電流Ｉｕ、Ｉｖ、Ｉｗと制御用電流Ｉｕｃｔｒｌ、Ｉｖｃｔｒｌ、Ｉｗｃｔｒｌとの積の値が負となるはずはない。そこで、Ｓ２３５、Ｓ２３６、Ｓ２３７でいずれもＮＯの場合にはエラーフラグをオフ（Ｓ２３８）とし、いずれか１つでもＹＥＳの場合はエラーフラグをオン（Ｓ２３９）とする。
【００５３】
[３相２相変換演算部３３]
３相２相変換演算部３３のソフトウェア監視処理について、図１５〜図１７を参照して説明する。
図１５に示すように、３相２相変換演算部３３の実行する演算は、モータ電気角演算３３１、３相２相変換用電気角演算３３２、各系統３相２相変換用電気角演算３３３、各系統３相２相変換演算３３４を含む。
【００５４】
モータ電気角演算３３１は、機械角演算部３１が出力した補正後の機械角ψに基づき、補正後モータ電気角θａを演算する。本実施形態では、補正後モータ電気角θａは、機械角ψの５倍の角度に相当する。
３相２相変換用電気角演算３３２及び各系統３相２相変換用電気角演算３３３は、補正後モータ電気角θａと、ローパスフィルタ後のモータ回転角速度ωLPFとから３相２相変換用の電気角θｂ１、θｂ２を演算する。ここで、図３に示すモータ８０の構成により、第２系統の電気角θｂ２は、第１系統の電気角θｂ１に対し３０°進むこととなる。この３０°の電気角の差は、（θａ±１５°）を使って下式３．１のように表される。
θｂ２−θｂ１＝（θａ＋１５°）−（θａ−１５°）  ・・・式（３．１）
【００５５】
図１６（ａ）のフローチャートは、この段階の演算を監視するものである。演算が正常ならば、第１系統についてのθｂ１と（θａ−１５°）との角度差、及び、第２系統についてのθｂ２と（θａ＋１５°）との角度差の絶対値は、いずれも所定の角度閾値θｔｈ未満となるはずである。そこで、Ｓ３０１でθｂ１と（θａ−１５°）との角度差を、Ｓ３０２でθｂ２と（θａ＋１５°）との角度差を、それぞれ閾値θｔｈと比較する。角度差の絶対値がいずれも閾値θｔｈ未満であればエラーフラグをオフ（Ｓ３０３）とし、少なくとも一系統で閾値θｔｈ以上であればエラーフラグをオン（Ｓ３０４）とする。
【００５６】
また、各系統３相２相変換演算３３４は、電気角θｂ１、θｂ２を用いて各系統の３相電流検出値Ｉｕ、Ｉｖ、Ｉｗをｄｑ軸電流検出値Ｉｄ、Ｉｑにｄｑ変換する。
図１６（ｂ）のフローチャートは、３相２相変換演算が正常であるか否かを監視するものである。Ｓ３１１では、系統毎に、ｄｑ軸電流検出値Ｉｄ、Ｉｑを逆ｄｑ変換によって２相３相変換した値（Ｉｄ，ｑ２→３）を３相電流検出値Ｉｕ、Ｉｖ、Ｉｗと比較する。電流差の絶対値がゼロ近似電流値Ｉａｐｐ０以下であればエラーフラグをオフ（Ｓ３１２）とし、Ｉａｐｐ０を超える場合はエラーフラグをオン（Ｓ３１３）とする。
【００５７】
また、図１７のフローチャートは、モータ８０の５つのエリア毎に、演算された電気角θと機械角ψとの整合性を監視するものである。Ｓ３２１において、ｎは、エリアの番号０、１、２、３、４に対応する。各エリアについて、電気角θの（１／５）と、エリアの基端を基準とした機械角（ψ＋ｎ×７２°）との差が、所定の機械角閾値ψｔｈ未満であればエラーフラグをオフ（Ｓ３２２）とし、機械角閾値ψｔｈ以上であればエラーフラグをオン（Ｓ３２３）とする。
【００５８】
[電流フィードバック演算部３４]
電流フィードバック演算部３４のソフトウェア監視処理について、図１８〜図２４を参照して説明する。図中、「Ｆ／Ｂ」は「フィードバック」を意味する。
図１８に示すように、電流フィードバック演算部３４の実行する演算は、ｄｑ軸電流和差演算３４１、ｄｑ軸電流偏差演算３４２、ＰＩ制御演算３４３、各系統電圧指令演算３４４、ｄ軸電流指令値演算３４５を含む。
【００５９】
電流フィードバック演算部３４は、３相２相変換演算部３３からｄｑ軸電流検出値Ｉｑ、Ｉｄが入力され、２相３相変換演算部３５にｄｑ軸電圧指令値Ｖｑ*、Ｖｄ*を出力する。制御全体の流れについては後で図２４を参照して説明することとし、ここでは、特にｄｑ軸電流指令値Ｉｑ*、Ｉｄ*の生成について補足する。
ｑ軸電流指令値Ｉｑ*は電流指令値演算部３７で生成され、ｄｑ軸電流偏差演算３４２に入力される。一方、ｄ軸電流指令値Ｉｄ*は、電流フィードバック演算部３４内のｄ軸電流指令値演算３４５で生成され、ｄｑ軸電流偏差演算３４２に入力される。ｄ軸電流指令値演算３４５は、ｄｑ軸電流和差演算３４１が演算した「Ｉｑ和」、及び、各系統電圧指令演算３４４が出力した各系統のｑ軸電圧指令値Ｖｑ１*、Ｖｑ２*に基づいてｄ軸電流指令値Ｉｄ*を演算する。
【００６０】
図１９（ａ）のフローチャートは、各系統電圧指令演算３４４が出力した各系統のｑ軸電圧指令値Ｖｑ*の妥当性を監視するものである。Ｓ４０１では、ｑ軸電圧指令値Ｖｑ*を電圧感応ゲインＧｖｓで除した値と、フィードバック制御用ｑ軸電圧値ＶｑF/Bとを比較する。電圧差の絶対値がゼロ近似電圧値Ｖａｐｐ０以下であればエラーフラグをオフ（Ｓ４０２）とし、Ｖａｐｐ０を超える場合はエラーフラグをオン（Ｓ４０３）とする。
【００６１】
図１９（ｂ）のフローチャートは、さらに飽和ガード後のｑ軸電圧指令値Ｖｑ*の妥当性を監視するものである。ここで、図２３に示すように、飽和ガードとは、ｑ軸電圧指令値Ｖｑ*が下式４．１で定義される基準電圧円ＣＡの内側に入るようにする処理をいう。
Ｖｄ2＋Ｖｑ2＝Ｖａ2  ・・・式（４．１）
すなわち、ｑ軸電圧指令値Ｖｑ*が基準電圧円ＣＡの外側にある場合には、飽和ガードによって、基準電圧円ＣＡの内側に入るように補正する。
【００６２】
図１９（ｂ）のＳ４１１では、飽和ガード前後のｑ軸電圧指令値Ｖｑ*を比較する。上述のように飽和ガードは、ｑ軸電圧指令値Ｖｑ*が基準電流円ＣＡの内側に入るように補正する処理であるから、演算が正常ならば、飽和ガード後のｑ軸電圧指令値Ｖｑ*が元のｑ軸電圧指令値Ｖｑ*よりも大きくなる（Ｓ４１１：ＹＥＳ）はずがない。また、飽和ガード前後のｑ軸電圧指令値Ｖｑ*の積の値が負となる（Ｓ４１２：ＹＥＳ）はずがない。
したがって、Ｓ４１１、Ｓ４１２でいずれものＮＯの場合、エラーフラグをオフ（Ｓ４１３）とし、いずれか一方でもＹＥＳの場合はエラーフラグをオン（Ｓ４１４）とする。
【００６３】
図２０のフローチャートは、２系統の電流和差演算を監視するものである。ここで、電流和差演算の具体的な流れについて、図２４を参照して説明する。図２４では、説明を簡単にするため、電流及び電圧をｄｑ軸のベクトルに分解しないで示す。
図２４に示すように、電流フィードバック演算部３４は、下式４．２、４．３に示す「２系統の電流の和と差」を制御する。
Ｉ和＝Ｉ１＋Ｉ２  ・・・式（４．２）
Ｉ差＝Ｉ１−Ｉ２  ・・・式（４．３）
【００６４】
まず、２系統の電流和の制御について、電流和差演算３４１の電流加算器３８１は、第１系統インバータ６０１の出力電流の検出値Ｉ１と、第２系統インバータ６０２の出力電流の検出値Ｉ２とを加算し、「Ｉ和」を出力する。
電流偏差演算３４２の電流和偏差算出部３８２は、２系統の電流指令値の和である「Ｉ和*」と、電流検出値の和である「Ｉ和」との偏差「Ｅ（Ｉ和）」を算出し、ＰＩ制御演算３４３の和演算器３８３に出力する。和演算器３８３は、「Ｅ（Ｉ和）」を０に収束させるように、比例積分制御演算によって、下式４．４に示す電圧指令値の和である「Ｖ和*」を演算する。
Ｖ和*＝Ｖ１*＋Ｖ２*  ・・・式（４．４）
【００６５】
一方、２系統の電流差の制御について、電流和差演算３４１の電流減算器３９１は、第１系統インバータ６０１の出力電流の検出値Ｉ１から第２系統インバータ６０２の出力電流の検出値Ｉ２を減算し、「Ｉ差」を出力する。
電流偏差演算３４２の電流差偏差算出部３９２は、２系統の電流指令値の差である「Ｉ差*」と、電流検出値の差である「Ｉ差」との偏差「Ｅ（Ｉ差）」を算出し、ＰＩ制御演算３４３の差演算器３９３に出力する。差演算器３９３は、「Ｅ（Ｉ差）」を０に収束させるように、比例積分制御演算によって、下式４．５に示す電圧指令値の差である「Ｖ差*」を演算する。
Ｖ差*＝Ｖ１*−Ｖ２*  ・・・式（４．５）
ここで、第１系統インバータ６０１と第２系統インバータ６０２との電気的特性は同等であるから、２系統の電流指令値の差であるＩ差*は原則として０（Ａ）である。
【００６６】
各系統電圧指令演算３４４について、第１系統の電圧演算器３８４は、下式４．６により第１系統の電圧指令値Ｖ１を演算する。第２系統の電圧演算器３９４は、下式４．７により第２系統の電圧指令値Ｖ２を演算する。
Ｖ１*＝（Ｖ和*＋Ｖ差*）／２  ・・・式（４．６）
Ｖ２*＝（Ｖ和*−Ｖ差*）／２  ・・・式（４．７）
以上の式４．２〜４．７は、ｄｑ軸座標系ではＩがＩｄ及びＩｑに、ＶがＶｄ及びＶｑに置き換わる。
【００６７】
図２０のフローチャートのＳ４２１〜Ｓ４２４では、電流和差演算が正常であるか否かを監視する。図２０のフローチャートでは、電流及び電圧をｄｑ軸で示す。
Ｓ４２１では、第１系統のｑ軸電流検出値Ｉｑ１と、ｑ軸電流検出値の和である「Ｉｑ和」から第２系統ｑ軸電流検出値Ｉｑ２を引いた値とが一致するか否か判断する。
Ｓ４２２では、第１系統のｑ軸電流検出値Ｉｑ１と、ｑ軸電流検出値の差である「Ｉｑ差」に第２系統ｑ軸電流検出値Ｉｑ２を加えた値とが一致するか否か判断する。
【００６８】
Ｓ４２３では、ｑ軸電流指令値の和である「Ｉｑ*和」と、和の偏差「Ｅ（Ｉｑ和）」に「Ｉｑ和」を加えた値とが一致するか否か判断する。
Ｓ４２４では、ｑ軸電流指令値の差である「Ｉｑ*差」、すなわち「０*」と、差の偏差「Ｅ（Ｉｑ差）」に「Ｉｑ差」を加えた値とが一致するか否か判断する。
Ｓ４２１〜Ｓ４２４の条件がすべて成立すればエラーフラグをオフ（Ｓ４２５）とし、いずれか１つでもＮＯの場合はエラーフラグをオン（Ｓ４２６）とする。
【００６９】
図２１及び図２２のフローチャートは、電流フィードバック制御のＰＩ制御演算３４３に係る演算を監視するものである。
図２１のフローチャートは、比例制御（Ｐ制御）の定数に関する。比例制御は、目標値から現在値を差し引いた偏差に比例した操作量を与える制御であるから、演算が正常ならば、監視周期における今回偏差が前回偏差より大きい場合（Ｓ４３１：ＹＥＳ）にＰ項の値が負になる（Ｓ４３２：ＹＥＳ）はずがない。一方、今回偏差が前回偏差より小さい場合（Ｓ４３３：ＹＥＳ）にＰ項の値が正になる（Ｓ４３４：ＹＥＳ）はずがない。
そこで、Ｓ４３２、Ｓ４３４でＮＯの場合にはエラーフラグをオフ（Ｓ４３５）とし、いずれか一方でもＹＥＳの場合はエラーフラグをオン（Ｓ４３６）とする。
【００７０】
図２２のフローチャートは、積分制御（Ｉ制御）の定数に関する。積分制御は、それまでの偏差の累計値に比例した操作量を与える制御であるから、演算が正常ならば、監視周期における今回偏差が０Ａより大きいアンダーシュートの場合（Ｓ４４１：ＹＥＳ）に、Ｉ項今回値がＩ項前回値以下になる（Ｓ４４２：ＹＥＳ）はずがない。一方、今回偏差が０Ａより小さいオーバーシュートの場合（Ｓ４４３：ＹＥＳ）に、Ｉ項今回値がＩ項前回値以上になる（Ｓ４４４：ＹＥＳ）はずがない。
そこで、Ｓ４４２、Ｓ４４４でＮＯの場合にはエラーフラグをオフ（Ｓ４４５）とし、いずれか一方でもＹＥＳの場合はエラーフラグをオン（Ｓ４４６）とする。
【００７１】
[２相３相変換演算部３５]
２相３相変換演算部３５のソフトウェア監視処理について、図２５、図２６を参照して説明する。
図２５に示すように、２相３相変換演算部３５の実行する演算は、モータ電気角演算３５１、２相３相変換用電気角演算３５２、各系統２相３相変換用電気角演算３５３、各系統２相３相変換演算３５４を含む。
【００７２】
モータ電気角演算３５１は、３相２相変換演算部３３のモータ電気角演算３３１と同様である。また、２相３相変換用電気角演算３５２及び各系統２相３相変換用電気角演算３５３は、補正後モータ電気角θａと、ローパスフィルタ後のモータ回転角速度ωLPFとから２相３相変換用の電気角θｃ１、θｃ２を演算する。ここで、第２系統の電気角θｃ２は、第１系統の電気角θｃ１に対し３０°進むこととなる。この３０°の電気角の差は、（θａ±１５°）を使って下式５．１のように表される。
θｃ２−θｃ１＝（θａ＋１５°）−（θａ−１５°）  ・・・式（５．１）
【００７３】
図２６（ａ）のフローチャートは、この段階の演算を監視するものである。演算が正常ならば、第１系統についてのθｃ１と（θａ−１５°）との角度差、及び、第２系統についてのθｃ２と（θａ＋１５°）との角度差の時間Ｔにおける変化と、モータ回転角速度ωLPFとの差の絶対値は、いずれも所定の角速度閾値ωｔｈ未満となるはずである。そこで、Ｓ５０１で第１系統の角速度差を、Ｓ５０２で第２系統の角速度差を、それぞれ閾値ωｔｈと比較する。角速度差の絶対値がいずれも閾値ωｔｈ未満であればエラーフラグをオフ（Ｓ５０３）とし、少なくとも一系統で閾値ωｔｈ以上であればエラーフラグをオン（Ｓ５０４）とする。
【００７４】
また、各系統３相２相変換演算３５４は、電気角θｃ１、θｃ２を用いて各系統の２相電圧指令値Ｖｄ*、Ｖｑ*を３相電圧指令値Ｖｕ*、Ｖｖ*、Ｖｗ*に変換する。
図２６（ｂ）のフローチャートは、２相３相変換演算が正常であるか否かを監視するものである。Ｓ５１１では、系統毎に、３相電圧指令値Ｖｕ*、Ｖｖ*、Ｖｗ*をｄｑ変換によって３相２相変換した値（Ｖｕ，ｖ，ｗ*３→２）をｄｑ軸電圧指令値Ｖｄ*、Ｖｑ*と比較する。電圧差の絶対値がゼロ近似電圧値Ｖａｐｐ０以下であればエラーフラグをオフ（Ｓ５１２）とし、Ｖａｐｐ０を超える場合はエラーフラグをオン（Ｓ５１３）とする。
【００７５】
なお、演算された電気角θと機械角ψとの整合性の監視については、３相２相変換演算部３３における図１７のフローチャートと同様であるので省略する。
【００７６】
[ＰＷＭ指令演算部３６]
ＰＷＭ指令演算部３６のソフトウェア監視処理について、図２７〜図３０を参照して説明する。
図２７に示すように、ＰＷＭ指令演算部３６の実行する演算は、電圧利用率係数処理演算３６１、駆動回路補償演算３６２、ＰＷＭ変調処理演算３６３、ＰＷＭ変換演算３６４、ＰＷＭ制限演算３６５を含む。
【００７７】
図２８のフローチャートは、ＰＷＭ変換演算３６４までの演算が正常であるか否かを監視するものである。Ｓ６０１において、条件式の左辺第１項の記号は下記の意味である。
ＰＷＭｕ−ｖ*：（Ｕ相ＰＷＭ指令−Ｖ相ＰＷＭ指令）（％）
ＰＷＭｖ−ｗ*：（Ｖ相ＰＷＭ指令−Ｗ相ＰＷＭ指令）（％）
ＰＷＭｗ−ｕ*：（Ｗ相ＰＷＭ指令−Ｕ相ＰＷＭ指令）（％）
α：ＰＷＭ指令（％）を電圧に換算する係数（Ｖ／％）
すなわち、Ｓ６０１では、各相間のＰＷＭ指令差の電圧換算値を３相２相変換した値をｄｑ軸電圧指令値Ｖｄ*、Ｖｑ*と比較する。電圧差の絶対値がゼロ近似電圧値Ｖａｐｐ０以下であればエラーフラグをオフ（Ｓ６０２）とし、Ｖａｐｐ０を超える場合はエラーフラグをオン（Ｓ６０３）とする。
【００７８】
図２９のフローチャートは、ＰＷＭ制限演算３６５が正常であるか否かを監視するものである。ＰＷＭ制限は、各相ＰＷＭ指令が所定の下限値から上限値までの範囲に入るように制限するものである。したがって、演算が正常ならば、ＰＷＭ指令の中間値（５０％）より上の領域（Ｓ６１１：ＹＥＳ）で、制限後の各相ＰＷＭ指令（ＰＷＭｕ，ｖ，ｗ*）’が制限前の各相ＰＷＭ指令ＰＷＭｕ，ｖ，ｗ*より大きくなる（Ｓ６１２：ＹＥＳ）はずがない。また、ＰＷＭ指令の中間値（５０％）より下の領域（Ｓ６１３：ＹＥＳ）で、制限後の各相ＰＷＭ指令（ＰＷＭｕ，ｖ，ｗ*）’が制限前の各相ＰＷＭ指令ＰＷＭｕ，ｖ，ｗ*より小さくなる（Ｓ６１４：ＹＥＳ）はずがない。
そこで、Ｓ６１２、Ｓ６１４でＮＯの場合にはエラーフラグをオフ（Ｓ６１５）とし、いずれか一方でもＹＥＳの場合はエラーフラグをオン（Ｓ６１６）とする。
【００７９】
図３０のフローチャートは、擬似デューティ更新処理における更新演算が正常であるか否かを監視するものである。擬似デューティ更新処理とは、モータの制御を安定させ、騒音、振動、トルクリップル等の低減を図るため、ＰＷＭ指令の制御演算周期の１周期に複数回の擬似デューティを出力する処理をいう。例えば制御演算周期が２００μｓの場合、その（１／２）に当たる１００μｓの更新周期で擬似デューティを出力する。
【００８０】
擬似デューティ更新処理をする場合、擬似ＰＷＭ指令は、例えば直前のＰＷＭ指令と、その１周期前のＰＷＭ指令前回値とから線形補完によって算出される。ここで、下記のように記号を定義する。
ＰＷＭｏ（ｎ）：ｎ回目の制御演算でのＰＷＭ指令
ＰＷＭｏ（ｎ−１）：（ｎ−１）回目の制御演算でのＰＷＭ指令（前回値）
ＰＷＭｒ（ｎ）：ｎ回目の制御演算の１００μｓ後に更新出力される擬似デューティ
すると、擬似デューティは、下式６．１によって算出される。
ＰＷＭｒ（ｎ）＝｛ＰＷＭｏ（ｎ−１）＋ＰＷＭｏ（ｎ）｝／２・・・式（６．１）
【００８１】
式６．１は、式６．２のように書き直される。
２×ＰＷＭｒ（ｎ）−ＰＷＭｏ（ｎ−１）＝ＰＷＭｏ（ｎ）    ・・・式（６．２）
一方、擬似デューティ更新処理をしない場合には、ｎ回目の制御演算の１００μｓ後の出力は、下式６．３に示すように、ｎ回目の制御演算でのＰＷＭ指令と等しくなる。
ＰＷＭｒ（ｎ）＝ＰＷＭｏ（ｎ）    ・・・式（６．３）
【００８２】
図３０のフローチャートによれば、擬似デューティ更新処理をする場合（Ｓ６２１：ＹＥＳ）、式６．２の両辺の差の絶対値がゼロ近似デューティＤａｐｐ０以下であればエラーフラグをオフ（Ｓ６２４）とし、Ｄａｐｐ０を超える場合はエラーフラグをオン（Ｓ６２５）とする。また、擬似デューティ更新処理をしない場合（Ｓ６２１：ＮＯ）、式６．３の両辺の差の絶対値がゼロ近似デューティＤａｐｐ０以下であればエラーフラグをオフ（Ｓ６２４）とし、Ｄａｐｐ０を超える場合はエラーフラグをオン（Ｓ６２５）とする。
【００８３】
［総括］
以上のように、本実施形態のモータ制御装置１０は、マイコン３０が制御演算と並行してソフトウェア監視処理を実行することにより、別の監視用ハードウェアを用いることなく、マイコン３０のソフトウェア異常を内部で検出することができる。すなわち、別の監視用ハードウェアを用いる場合のように通信線を用いないので、誤検出を回避するために監視閾値にマージンを多く取る必要がなく、また、通信線による通信速度の制約を受けない。よって、マイコン３０のソフトウェア異常を広い監視範囲で早期に検出することができる
また、本実施形態によるソフトウェア監視処理では、マイコン３０の単位ブロック毎に入力と出力との関係におけるエラーの有無を監視するため、監視単位での演算量を低減することができる。また、異常箇所の特定が容易となる。
【００８４】
さらに、本実施形態のモータ制御装置１０は、２系統のモータ８０及び駆動部４０に適用されるため、系統毎の検出値又は演算値を２系統間で比較することで、演算が正常であるか監視することができる。よって、ソフトウェア監視処理における具体的な監視方法の選択の幅が広がる。
加えて、本実施形態のモータ制御装置１０が適用される電動パワーステアリング装置１は、特に安全性の要求が高い装置である。したがって、既存技術によるハード故障の検出に加え、本実施形態のソフトウェア監視処理を実行することで、より信頼性を向上することができる。
【００８５】
上記実施形態のモータの機械的構成、及びモータ制御に係るソフトウェアの構成は一例に過ぎない。したがって、本発明によるモータ制御装置は、上記実施形態に限定されるものでなく、発明の趣旨を逸脱しない範囲において、種々の形態で実施することができる。
（ア）ソフトウェア監視処理は、必ずしもマイコンの単位ブロック毎に実行されなくてもよい。例えば、マイコン全体の制御演算に対して一括して実行されてもよい。
（イ）モータ及び駆動部は２系統に限らず、１系統であってもよい。また、２系統のモータの場合、系統間の位相差が３０°である構成に限らない。
（ウ）モータの磁極対の数は５対に限らない。磁極対の数に応じて、モータ電気角と機械角との比は適宜変更される。
【００８６】
（エ）回転角センサや電流センサの方式は上記のものに限らない。シャント抵抗を電流センサとする場合、設置箇所はインバータの下ＭＯＳ側に限らず、上ＭＯＳ側であってもよく、インバータとモータとの間であってもよい。
（オ）本発明のモータ制御装置は、３相交流ブラシレスモータに限らず、直流モータ、ブラシ付きモータに適用されてもよい。また、本発明のモータ制御装置は、電動パワーステアリング装置の操舵アシストモータに限らず、他のいかなるモータ用の制御装置として適用されてもよい。
【符号の説明】
【００８７】
１０  ・・・モータ制御装置、
１１、１２、１３・・・Ａ／Ｄ変換器、
３０  ・・・マイコン（マイクロコンピュータ）、
７０  ・・・電流センサ（センサ）、
７５  ・・・回転角センサ（センサ）、
８０  ・・・モータ、
９４  ・・・トルクセンサ（センサ）。
【図１】
2014003765.tif 000003
【図２】
2014003765.tif 000004
【図３】
2014003765.tif 000005
【図４】
2014003765.tif 000006
【図５】
2014003765.tif 000007
【図６】
2014003765.tif 000008
【図７】
2014003765.tif 000009
【図８】
2014003765.tif 000010
【図９】
2014003765.tif 000011
【図１０】
2014003765.tif 000012
【図１１】
2014003765.tif 000013
【図１２】
2014003765.tif 000014
【図１３】
2014003765.tif 000015
【図１４】
2014003765.tif 000016
【図１５】
2014003765.tif 000017
【図１６】
2014003765.tif 000018
【図１７】
2014003765.tif 000019
【図１８】
2014003765.tif 000020
【図１９】
2014003765.tif 000021
【図２０】
2014003765.tif 000022
【図２１】
2014003765.tif 000023
【図２２】
2014003765.tif 000024
【図２３】
2014003765.tif 000025
【図２４】
2014003765.tif 000026
【図２５】
2014003765.tif 000027
【図２６】
2014003765.tif 000028
【図２７】
2014003765.tif 000029
【図２８】
2014003765.tif 000030
【図２９】
2014003765.tif 000031
【図３０】
2014003765.tif 000032