(57)【特許請求の範囲】
【請求項１】
交流モータが搭載された車両の車両用制御装置であって、
前記交流モータを駆動するための交流電流を検出するための電流検出部と、
前記電流検出部の検出誤差を補正するための補正値を用いて前記電流検出部により検出された前記交流電流の実測値を補正するための補正部と、
前記補正部によって補正された実測値を用いたフィードバック制御により、前記交流モータの出力トルクが目標トルクとなるように前記交流モータを制御するためのフィードバック制御部と、
前記車両が走行状態であるという第１条件と、前記フィードバック制御の実行中の第１判定期間において前記目標トルクの変化量が第１しきい値以下であるという第２条件とを含む学習条件が成立した場合に、前記車両の走行中に前記フィードバック制御を停止して前記補正値を学習するための学習部とを含み、
前記フィードバック制御部は、
前記目標トルクをｄ軸電流およびｑ軸電流のうちのいずれか一方の指令値に変換するための第１変換部と、
前記補正部によって補正された実測値を前記ｄ軸電流および前記ｑ軸電流のうちの前記指令値に対応するいずれか一方の電流値に変換するための第２変換部とを含み、
前記学習部は、
前記学習条件が成立した場合に、前記補正値の暫定値を決定するための暫定値決定部と、
前記指令値と、前記暫定値を用いて補正された実測値を前記第２変換部によって変換された電流値との偏差の絶対値の極大値を算出するための算出部と、
前記暫定値決定部によって複数の暫定値が前記補正値として決定されて前記算出部によって複数の極大値が算出された場合に、前記複数の極大値のうちの最小値に対応する暫定値を最終的な補正値として決定するための最終決定部とを含む、車両用制御装置。
【請求項２】
前記暫定値決定部は、前回決定された暫定値に予め定められた値を加算または減算することによって今回の暫定値を決定し、
前記最終決定部は、前記算出部によって今回まで算出された前記複数の極大値のうち前記暫定値に変化に対して極小となる値に対応する暫定値を前記最終的な補正値として決定する、請求項１に記載の車両用制御装置。
【請求項３】
前記車両は、前記交流モータを用いて発電するための動力源として内燃機関を搭載し、
前記学習部は、前記学習条件に加えて、前記第１判定期間においての前記内燃機関の回転数の変化量が第２しきい値以下であるという条件が成立した場合に、前記フィードバック制御を停止して前記補正値を学習する、請求項１または２に記載の車両用制御装置。
【請求項４】
前記学習部は、前記フィードバック制御中に第２判定期間が経過するまで前記第２条件が成立しない場合、および、前記車両が予め定められた距離以上の距離を走行するまで前記第２条件が成立しない場合のうちの少なくともいずれか一方の場合、前記フィードバック制御を停止して前記補正値を学習する、請求項１〜３のいずれかに記載の車両用制御装置。
【請求項５】
交流モータが搭載された車両の車両用制御方法であって、
前記交流モータを駆動するための交流電流を検出するステップと、
前記交流電流を検出する際の検出誤差を補正するための補正値を用いて前記交流電流の実測値を補正するステップと、
前記実測値を補正するステップにて補正された実測値を用いたフィードバック制御により、前記交流モータの出力トルクが目標トルクとなるように前記交流モータを制御するステップと、
前記車両が走行状態であるという第１条件と、前記フィードバック制御の実行中の第１判定期間において前記目標トルクの変化量が第１しきい値以下であるという第２条件とを含む学習条件が成立した場合に、前記車両の走行中に前記フィードバック制御を停止して前記補正値を学習するステップとを含み、
前記交流モータを制御するステップは、
前記目標トルクをｄ軸電流およびｑ軸電流のうちのいずれか一方の指令値に変換するステップと、
前記実測値を補正するステップにて補正された実測値を前記ｄ軸電流および前記ｑ軸電流のうちの前記指令値に対応するいずれか一方の電流値に変換するステップとを含み、
前記補正値を学習するステップは、
前記学習条件が成立した場合に、前記補正値の暫定値を決定するステップと、
前記指令値と、前記暫定値を用いて補正された実測値から変換された電流値との偏差の絶対値の極大値を算出するステップと、
前記暫定値を決定するステップにて複数の暫定値が前記補正値として決定されて、前記極大値を算出するステップにて複数の極大値が算出された場合に、前記複数の極大値のうちの最小値に対応する暫定値を最終的な補正値として決定するステップとを含む、車両用制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、交流モータを搭載した車両の制御に関し、特に車両が走行状態である場合、センサによって検出されたモータ電流を精度高く補正する技術に関する。
【背景技術】
【０００２】
従来、電気自動車やハイブリッド自動車等の車両には、駆動源あるいは発電機として交流モータが搭載される。交流モータには、高電圧の電池から供給される直流電力がインバータによって３相交流電力に変換されて供給される。
【０００３】
このような技術は、２００７−０２８７０２号（特許文献１）の二次電池を迅速かつ容易に昇温可能な二次電池の制御装置に開示される。この二次電池の制御装置は、二次電池から電力の供給を受けて負荷を駆動する駆動回路と、二次電池の電池温度を取得する電池温度取得手段と、取得された電池温度が所定のしきい値温度よりも低いとき、負荷の出力を、目標出力値を中心値とする所定出力範囲内で周期的に振動させるように駆動回路を制御する制御回路とを備える。
【０００４】
上述した公報に開示された二次電池の制御装置によると、負荷の出力を意図的に振動させて二次電池から負荷への電力の入出力を繰返すことにより、二次電池の充放電電流を強制的に発生させることによって、迅速かつ容易に二次電池を昇温させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−０２８７０２号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、交流モータに供給される交流電流のセンサを用いた実測値には、センサの検出誤差が含まれる。そのため、交流モータに供給される交流電力を精度高く制御することができないという問題がある。特に、車両が停止状態である場合と比較して車両が走行状態である場合には、交流モータにおいて生じる熱等によってセンサの検出誤差が変化する場合がある。そのため、たとえば、予め定められた値を検出誤差として考慮した場合、交流モータに供給される交流電力を精度高く制御することができない場合がある。このような場合には、交流モータにおいて減磁が生じて、目標トルクを精度高く発生させることができない可能性がある。
【０００７】
上述した公報に開示された二次電池の制御装置においては、交流モータの交流電流の検出誤差を予め定められた値として考慮しており、やはり、交流モータに供給される交流電力を精度高く制御することができない。
【０００８】
本発明は、上述した課題を解決するためになされたものであって、その目的は、車両が走行状態である場合にモータ電流を検出するセンサの検出誤差を精度高く学習する車両用制御装置および車両用制御方法を提供することである。
【課題を解決するための手段】
【０００９】
この発明のある局面に係る車両用制御装置は、交流モータが搭載された車両の車両用制御装置である。この車両用制御装置は、交流モータを駆動するための交流電流を検出するための電流検出部と、電流検出部の検出誤差を補正するための補正値を用いて電流検出部により検出された交流電流の実測値を補正するための補正部と、補正部によって補正された実測値を用いたフィードバック制御により、交流モータの出力トルクが目標トルクとなるように交流モータを制御するためのフィードバック制御部と、車両が走行状態であるという第１条件と、フィードバック制御の実行中の第１判定期間において目標トルクの変化量が第１しきい値以下であるという第２条件とを含む学習条件が成立した場合に、車両の走行中にフィードバック制御を停止して補正値を学習するための学習部とを含む。
【００１０】
好ましくは、フィードバック制御部は、目標トルクをｄ軸電流およびｑ軸電流のうちのいずれか一方の指令値に変換するための第１変換部と、補正部によって補正された実測値をｄ軸電流およびｑ軸電流のうちの指令値に対応するいずれか一方の電流値に変換するための第２変換部とを含む。学習部は、学習条件が成立した場合に、補正値の暫定値を決定するための暫定値決定部と、指令値と、暫定値を用いて補正された実測値を第２変換部によって変換された電流値との偏差の絶対値の極大値を算出するための算出部と、暫定値決定部によって複数の暫定値が補正値として決定されて算出部によって複数の極大値が算出された場合に、複数の極大値のうちの最小値に対応する暫定値を最終的な補正値として決定するための最終決定部とを含む。
【００１１】
さらに好ましくは、暫定値決定部は、前回決定された暫定値に予め定められた値を加算または減算することによって今回の暫定値を決定する。最終決定部は、算出部によって今回まで算出された複数の極大値のうち暫定値に変化に対して極小となる値に対応する暫定値を最終的な補正値として決定する。
【００１２】
さらに好ましくは、車両は、交流モータを用いて発電するための動力源として内燃機関を搭載する。学習部は、学習条件に加えて、第１判定期間においての内燃機関の回転数の変化量が第２しきい値以下であるという条件が成立した場合に、フィードバック制御を停止して補正値を学習する。
【００１３】
さらに好ましくは、学習部は、フィードバック制御中に第２判定期間が経過するまで第２条件が成立しない場合、および、車両が予め定められた距離以上の距離を走行するまで第２条件が成立しない場合のうちの少なくともいずれか一方の場合、フィードバック制御を停止して補正値を学習する。
【００１４】
この発明の他の局面に係る車両用制御方法は、交流モータが搭載された車両の車両用制御方法である。この車両用制御方法は、交流モータを駆動するための交流電流を検出するステップと、交流電流を検出する際の検出誤差を補正するための補正値を用いて交流電流の実測値を補正するステップと、実測値を補正するステップにて補正された実測値を用いたフィードバック制御により、交流モータの出力トルクが目標トルクとなるように交流モータを制御するステップと、車両が走行状態であるという第１条件と、フィードバック制御の実行中の第１判定期間において目標トルクの変化量が第１しきい値以下であるという第２条件とを含む学習条件が成立した場合に、車両の走行中にフィードバック制御を停止して補正値を学習するステップとを含む。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態に係る車両用制御装置が搭載された車両の概略構成を示す図である。
【図２】本実施の形態に係る車両用制御装置であるＥＣＵを用いてインバータを制御するための機能ブロック図である。
【図３】検出誤差を含まない場合のモータの相電流の変化を示すタイミングチャートである。
【図４】検出誤差を含まない場合の電流指令値Ｉｄ＿ｃｏｍと電流値Ｉｄ１との変化を示すタイミングチャートである。
【図５】検出誤差を含む場合のモータの相電流の変化を示すタイミングチャートである。
【図６】検出誤差を含む場合の電流指令値Ｉｄ＿ｃｏｍと電流値Ｉｄ１との変化を示すタイミングチャートである。
【図７】学習部の機能ブロック図である。
【図８】偏差Δｉと補正値との関係を示す図（その１）である。
【図９】本実施の形態に係る車両用制御装置であるＥＣＵで実行されるプログラムの制御構造を示すフローチャートである。
【図１０】偏差Δｉと補正値との関係を示す図（その２）である。
【図１１】トルク指令値が単調増加する場合の偏差Δｉの変化を示すタイミングチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００１７】
図１に示すように、車両１０は、昇圧コンバータ１２と、バッテリ１３と、インバータ１４，１６と、モータジェネレータ（以下、ＭＧと記載する）１８，２０と、電圧センサ２２，３６と、電流センサ２４，２６と、駆動輪２８と、エンジン３０と、回転センサ３２，３４と、ＥＣＵ（Electronic  Control  Unit）４０とを含む。本実施の形態において車両１０は、モータジェネレータ２０とエンジン３０とを駆動源とするハイブリッド自動車を一例として説明するが、モータジェネレータのみを駆動源とする電気自動車であってもよい。
【００１８】
ＭＧ１８は、エンジン３０に連結される。ＭＧ１８は、エンジン３０の動力によって交流電圧を発生する発電機としての機能を有するとともに、エンジン３０を始動する電動機としての機能を有する。
【００１９】
ＭＧ２０は、車両１０の駆動輪２８を駆動するための電動機としての機能を有するとともに、回生制動によって交流電圧を発生する発電機としての機能を有する。なお、回生制動とは、車両１０を運転するドライバーによるフットブレーキ操作があった場合の回生発電を伴って制動する場合と、フットブレーキは操作されないものの、走行中にアクセルペダルがオフされることで回生発電をさせながら車速を減速（または加速を中止）させる場合とを含む。
【００２０】
ＭＧ１８，２０の各々は、３相の交流モータであり、Ｕ相コイル、Ｖ相コイルおよびＷ相コイルを含む。ＭＧ１８，２０の各々のＵ相コイル、Ｖ相コイルおよびＷ相コイルの一端は、中点に共通に接続される。
【００２１】
動力分割機構３８は、エンジン３０、モータジェネレータ１８，２０に結合されてこれらの間で動力を分配する。たとえば、サンギヤ、プラネタリキャリヤおよびリングギヤの３つの回転軸を有する遊星歯車を動力分割機構３８として用いることができ、この３つの回転軸がエンジン３０、モータジェネレータ１８，２０にそれぞれ接続される。
【００２２】
昇圧コンバータ１２は、リアクトルＬ１と、ＮＰＮトランジスタＱ１，Ｑ２と、ダイオードＤ１，Ｄ２とを含む。
【００２３】
リアクトルＬ１の一方端はバッテリ１３の電源ラインＰＬ１に接続され、他方端はＮＰＮトランジスタＱ１とＮＰＮトランジスタＱ２との中間点、すなわち、ＮＰＮトランジスタＱ１のエミッタとＮＰＮトランジスタＱ２のコレクタとの間に接続される。
【００２４】
ＮＰＮトランジスタＱ１，Ｑ２は、電源ラインＰＬ２とアースラインＳＬ１との間に直列に接続される。ＮＰＮトランジスタＱ１のコレクタは電源ラインＰＬ２に接続され、ＮＰＮトランジスタＱ２のエミッタはアースラインＳＬ１に接続される。また、各ＮＰＮトランジスタＱ１，Ｑ２のコレクタ−エミッタ間には、エミッタ側からコレクタ側に電流を流すダイオードＤ１，Ｄ２がそれぞれ配されている。
【００２５】
インバータ１４，１６の各々は、ＭＧ１８，２０のＵ相コイルの各々に接続されるＵ相上下アームと、ＭＧ１８，２０のＶ相コイルの各々に接続されるＶ相上下アームと、ＭＧ１８，２０のＷ相コイルの各々に接続されるＷ相上下アームとを含む。各相の上下アームの構成は、ＮＰＮトランジスタＱ１，Ｑ２の中間点に接続される接続先がリアクトルＬ１の一方端であることに代えて各相のコイルの一端であることを除いて、昇圧コンバータ１２のＮＰＮトランジスタＱ１，Ｑ２と、ダイオードＤ１，Ｄ２と同様の構成であり、その詳細な説明は繰返さない。
【００２６】
インバータ１４は、ＭＧ１８のＵ相コイル、Ｖ相コイルおよびＷ相コイルに交流電力を供給する。インバータ１６は、ＭＧ２０のＵ相コイル、Ｖ相コイルおよびＷ相コイルに交流電力を供給する。インバータ１４，１６は、電源ラインＰＬ２とアースラインＳＬ１との間に並列に接続される。
【００２７】
なお、昇圧コンバータ１２およびインバータ１４，１６にそれぞれ含まれるスイッチング素子は、ＮＰＮトランジスタに限定されず、ＩＧＢＴ（Insulated  Gate  Bipolar  Transistor）やＭＯＳＦＥＴ（Metal-Oxide-Semiconductor  Field-Effect  Transistor）等の他のパワー素子で構成しても良い。
【００２８】
本実施の形態において、バッテリ１３は、ニッケル水素またはリチウムイオンなどの二次電池であるとして説明するが、二次電池に代えて大容量キャパシタ等を用いてもよい。電圧センサ３６は、バッテリ１３から出力される直流の電圧Ｖｂを検出し、検出した電圧Ｖｂを示す信号をＥＣＵ４０に送信する。
【００２９】
回転センサ３２は、ＭＧ１８の回転角度θ１およびモータ回転数ＭＲＮ１を検出し、検出した回転角度θ１およびモータ回転数ＭＲＮ１を示す信号をＥＣＵ４０に送信する。回転センサ３４は、ＭＧ２０の回転角度θ２およびモータ回転数ＭＲＮ２を検出し、検出した回転角度θ２およびモータ回転数ＭＲＮ２を示す信号をＥＣＵ４０に送信する。回転センサ３２，３４として、たとえば、レゾルバが用いられる。
【００３０】
昇圧コンバータ１２は、バッテリ１３から供給された電圧を昇圧してコンデンサＣ１に供給する。より具体的には、昇圧コンバータ１２は、ＥＣＵ４０から信号ＰＷＣを受信した場合に、信号ＰＷＣによってＮＰＮトランジスタＱ２がオンされた期間に応じて電圧を昇圧してコンデンサＣ１に供給する。
【００３１】
また、昇圧コンバータ１２は、ＥＣＵ４０から信号ＰＷＣを受信した場合に、コンデンサＣ１を介してインバータ１４から供給された電圧を降圧してバッテリ１３へ供給する。
【００３２】
コンデンサＣ１は、昇圧コンバータ１２から出力された直流電圧を平滑化し、平滑化した直流電圧をインバータ１４，１６へ供給する。
【００３３】
電圧センサ２２は、コンデンサＣ１の両端の電圧ＶＨ（すなわち、インバータ１４，１６の入力電圧に相当する。以下同じ。）を検出し、その検出した電圧ＶＨを示す信号をＥＣＵ４０に送信する。
【００３４】
インバータ１４は、コンデンサＣ１から直流電圧が供給される場合、ＥＣＵ４０から受信した信号ＰＷＭＩ１に基づいて直流電圧を交流電圧に変換してＭＧ１８を駆動する。ＥＣＵ４０は、目標トルクであるトルク指令値ＴＲ１に基づいて信号ＰＷＭＩ１を生成する。
【００３５】
また、インバータ１４は、エンジン３０の動力を用いて発電を行なう場合に、ＭＧ１８が発電した交流電圧をＥＣＵ４０から受信した信号ＰＷＭＩ１に基づいて直流電圧に変換し、その変換した直流電圧をコンデンサＣ１および電源ラインＰＬ２およびアースラインＳＬ１を介して昇圧コンバータ１２に供給する。
【００３６】
同様に、インバータ１６は、コンデンサＣ１から直流電圧が供給される場合、ＥＣＵ４０から受信した信号ＰＷＭＩ２に基づいて直流電圧を交流電圧に変換してＭＧ２０を駆動する。ＥＣＵ４０は、トルク指令値ＴＲ２に基づいて信号ＰＷＭＩ２を生成する。
【００３７】
また、インバータ１６は、車両１０の回生制動時に、ＭＧ２０が発電した交流電圧をＥＣＵ４０から受信した信号ＰＷＭＩ２に基づいて直流電圧に変換し、その変換した直流電圧をコンデンサＣ１および電源ラインＰＬ２およびアースラインＳＬ１を介して昇圧コンバータ１２に供給する。
【００３８】
電流センサ２４は、ＭＧ１８のＶ相コイルおよびＷ相コイルに流れるモータ電流（以下、相電流ともいう）Ｉｖ１，Ｉｗ１を検出し、その検出したモータ電流Ｉｖ１，Ｉｗ１を示す信号をＥＣＵ４０に送信する。電流センサ２６は、ＭＧ２０のＶ相コイルおよびＷ相コイルに流れるモータ電流Ｉｖ２，Ｉｗ２を検出し、その検出したモータ電流Ｉｖ２，Ｉｗ２を示す信号をＥＣＵ４０に送信する。
【００３９】
なお、本実施の形態において、電流センサ２４は、ＭＧ１８のＶ相コイルおよびＷ相コイルに流れるモータ電流Ｉｖ１，Ｉｗ１を検出して、検出されたモータ電流Ｉｖ１，Ｉｗ１に基づいてＭＧ１８のＵ相コイルに流れるモータ電流Ｉｕ１を算出するとして説明するが、特にこれに限定されるものではない。たとえば、電流センサ２４は、ＭＧ１８のＵ相コイル、Ｖ相コイルおよびＷ相コイルに流れるモータ電流Ｉｕ１，Ｉｖ１，Ｉｗ１を検出するようにしてもよい。
【００４０】
また、同様に、本実施の形態において、電流センサ２６は、ＭＧ２０のＶ相コイルおよびＷ相コイルに流れるモータ電流Ｉｖ２，Ｉｗ２を検出して、検出されたモータ電流Ｉｖ２，Ｉｗ２に基づいてＭＧ２０のＵ相コイルに流れるモータ電流Ｉｕ２を算出するとして説明するが、特にこれに限定されるものではない。たとえば、電流センサ２６は、ＭＧ２０のＵ相コイル、Ｖ相コイルおよびＷ相コイルに流れるモータ電流Ｉｕ２，Ｉｖ２，Ｉｗ２を検出するようにしてもよい。
【００４１】
ＥＣＵ４０は、運転者のアクセルペダルの操作量に基づくトルク指令値ＴＲ１，ＴＲ２と、回転センサ３２，３４からのモータ回転数ＭＲＮ１，ＭＲＮ２と、電圧センサ２２，３６からの電圧ＶＨ，Ｖｂと、電流センサ２４，２６からのモータ電流Ｉｖ１，Ｉｗ１，Ｉｖ２，Ｉｗ２とを受信する。
【００４２】
ＥＣＵ４０は、電圧ＶＨ、トルク指令値ＴＲ１およびモータ電流Ｉｖ１、Ｉｗ１に基づいて、インバータ１４がＭＧ１８を駆動するときにインバータ１４の複数のＮＰＮトランジスタに対してスイッチング制御を実行するための信号ＰＷＭＩ１を生成し、生成した信号ＰＷＭＩ１をインバータ１４に送信する。
【００４３】
ＥＣＵ４０は、電圧ＶＨ、トルク指令値ＴＲ２およびモータ電流Ｉｖ２，Ｉｗ２に基づいて、インバータ１６がＭＧ２０を駆動するときにインバータ１６の複数のＮＰＮトランジスタに対してスイッチング制御を実行するための信号ＰＷＭＩ２を生成し、生成した信号ＰＷＭＩ２をインバータ１６に送信する。
【００４４】
さらに、ＥＣＵ４０は、インバータ１４（またはインバータ１６）がＭＧ１８（またはＭＧ２０）を駆動するとき、バッテリ１３の電圧Ｖｂ、電圧ＶＨ、トルク指令値ＴＲ１（またはトルク指令値ＴＲ２）およびモータ回転数ＭＲＮ１（またはモータ回転数ＭＲＮ２）に基づいて、昇圧コンバータ１２の複数のＮＰＮトランジスタＱ１、Ｑ２に対してスイッチング制御を実行するための信号ＰＷＣを生成し、生成した信号ＰＷＣを昇圧コンバータ１２に送信する。
【００４５】
図２に、ＥＣＵ４０を用いてインバータ１４を制御するための機能ブロック図を示す。なお、ＥＣＵ４０を用いたインバータ１６の制御は、ＥＣＵ４０を用いたインバータ１４の制御と実質的に同じであるため、その詳細な説明は繰返さない。
【００４６】
ＥＣＵ４０は、電流指令値変換部４１０と、減算器４１２，４１４と、ＰＩ制御部４１６，４１８と、２相／３相変換部４２０と、ＰＷＭ生成部４２２と、センサ値補正部４３０と、３相／２相変換部４３２と、学習部４３４とを含む。
【００４７】
電流指令値変換部４１０には、目標トルクであるトルク指令値ＴＲ１と、ＭＧ１８のモータ回転数ＭＲＮ１と、電圧ＶＨとが入力される。電流指令値変換部４１０は、トルク指令値ＴＲ１とモータ回転数ＭＲＮ１と電圧ＶＨとに基づいてトルク指令値ＴＲ１によって指定されたトルクを出力するための２相（ｄ軸およびｑ軸）の電流指令値Ｉｄ＿ｃｏｍ，Ｉｑ＿ｃｏｍを生成し、その生成した電流指令値Ｉｄ＿ｃｏｍを減算器４１２へ出力し、生成した電流指令値Ｉｑ＿ｃｏｍを減算器４１４へ出力する。
【００４８】
減算器４１２には、電流指令値変換部４１０から電流指令値Ｉｄ＿ｃｏｍが入力され、３相／２相変換部４３２から電流値Ｉｄ１が入力される。減算器４１２は、電流指令値Ｉｄ＿ｃｏｍと電流値Ｉｄ１との偏差（＝Ｉｄ＿ｃｏｍ−Ｉｄ１）を算出し、その算出した偏差をＰＩ制御部４１６に出力する。
【００４９】
減算器４１４には、電流指令値変換部４１０から電流指令値Ｉｑ＿ｃｏｍが入力され、３相／２相変換部４３２から電流値Ｉｑ１が入力される。減算器４１４は、電流指令値Ｉｑ＿ｃｏｍと電流値Ｉｑ１との偏差（＝Ｉｑ＿ｃｏｍ−Ｉｑ１）を算出し、その算出した偏差をＰＩ制御部４１８に出力する。
【００５０】
ＰＩ制御部４１６，４１８の各々は、減算器４１２，４１４の各々から入力された偏差Ｉｄ＿ｃｏｍ−Ｉｄ１，Ｉｑ＿ｃｏｍ−Ｉｑ１に対してＰＩゲインを用いてモータ電流調整用の電圧操作量Ｖｄ１，Ｖｑ１を算出し、その算出した電圧操作量Ｖｄ１，Ｖｑ１を２相／３相変換部４２０に出力する。
【００５１】
２相／３相変換部４２０は、ＰＩ制御部４１６，４１８から入力された電圧操作量Ｖｄ１，Ｖｑ１を回転センサ３２から受信した回転角度θ１と変換式とを用いて２相／３相変換してＭＧ１８に印加する電圧操作量Ｖｕ１，Ｖｖ１，Ｖｗ１を算出する。２相／３相変換部４２０は、算出された電圧操作量Ｖｕ１，Ｖｖ１，Ｖｗ１をＰＷＭ生成部４２２に出力する。
【００５２】
ＰＷＭ生成部４２２は、電圧操作量Ｖｕ１，Ｖｖ１，Ｖｗ１と、電圧ＶＨとに基づいて信号ＰＷＭＩ１を生成し、その生成した信号ＰＷＭＩ１をインバータ１４に出力する。
【００５３】
インバータ１４においては、ＰＷＭ生成部４２２から入力された信号ＰＷＭＩ１に応じて、スイッチング制御が実行される。これにより、ＭＧ１８のＵ相コイル、Ｖ相コイルおよびＷ相コイルには、モータ電流Ｉｕ１，Ｉｖ１，Ｉｗ１がそれぞれ流れる。
【００５４】
センサ値補正部４３０には、電流センサ２４からモータ電流Ｉｖ１，Ｉｗ１を示す信号が入力される。センサ値補正部４３０は、電流センサ２４のセンサ値であるモータ電流Ｉｖ１，Ｉｗ１に検出誤差を補正するための補正値（以下、オフセット補正値ともいう）ΔＩｖ１，ΔＩｗ１を加算する。
【００５５】
センサ値補正部４３０は、オフセット補正値ΔＩｖ１，ΔＩｗ１を加算したモータ電流Ｉｖ１＋ΔＩｖ１，Ｉｗ１＋ΔＩｗ１を３相／２相変換部４３２に出力する。
【００５６】
３相／２相変換部４３２には、センサ値補正部４３０からモータ電流Ｉｖ１＋ΔＩｖ１，Ｉｗ１＋ΔＩｗ１が入力される。３相／２相変換部４３２は、入力されたモータ電流Ｉｖ１＋ΔＩｖ１，Ｉｗ１＋ΔＩｗ１に基づいてモータ電流Ｉｕ１（＝−（Ｉｖ１＋ΔＩｖ１）−（Ｉｗ１＋ΔＩｗ１））を算出する。
【００５７】
３相／２相変換部４３２は、ＭＧ１８のＵ相コイル、Ｖ相コイルおよびＷ相コイルの各相に流れるモータ電流Ｉｕ１，Ｉｖ１＋ΔＩｖ１，Ｉｗ１＋ΔＩｗ１を回転センサ３２から受信した回転角度θ１と変換式とを用いて３相／２相変換して、ｄ軸およびｑ軸に流れる電流値Ｉｄ１，Ｉｑ１を算出する。
【００５８】
３相／２相変換部４３２は、算出された電流値Ｉｄ１を減算器４１２に出力し、算出された電流値Ｉｑ１を減算器４１４に出力する。なお、変換式を用いた３相／２相変換および２相／３相変換については周知であるため、その詳細な説明は行なわない。
【００５９】
学習部４３４は、電流センサ２４のセンサ値の検出誤差を補正するための補正値を学習してセンサ値補正部４３０に出力する。
【００６０】
このようにして、電流値Ｉｄ１，Ｉｑ１と電流指令値Ｉｄ＿ｃｏｍ，Ｉｑ＿ｃｏｍとがそれぞれ一致するようにフィードバック制御が行なわれる。
【００６１】
このような構成を有する車両１０において、電流センサ２４，２６を用いたＭＧ１８，２０に流れる交流電流の実測値Ｉｖ１，Ｉｗ１には、電流センサ２４，２６の検出誤差が含まれる。そのため、ＭＧ１８，２０に供給される交流電力を精度高く制御することができない場合がある。
【００６２】
特に、車両１０が停止状態である場合と比較して車両１０が走行状態である場合には、ＭＧ１８，２０において生じる熱等によってセンサの検出誤差が変化する場合がある。そのため、車両１０が停止状態である場合のセンサの検出誤差と、車両１０が走行状態である場合のセンサの検出誤差とは、異なる場合がある。したがって、たとえば、車両１０が停止状態である場合のセンサの検出誤差を考慮してセンサの実測値を補正した場合、ＭＧ１８，２０に供給される交流電力を精度高く制御することができない可能性がある。その結果、ＭＧ１８，２０のトルク変動によって減磁が発生する場合がある。
【００６３】
たとえば、図３に、検出誤差を含まない場合の電流センサ２４の実測値の時間変化を示す。なお、図３の縦軸は、Ｖ相コイルの相電流を示し、図３の横軸は、時間を示す。図３の実線に示すように、検出誤差を含まない場合、電流センサ２４は、振動中心がオフセットすることなく、Ｖ相コイルの相電流を検出する。
【００６４】
そのため、図４の実線と破線とに示すように、電流指令値Ｉｄ＿ｃｏｍ（図４の破線）が一定である場合には、電流指令値Ｉｄ＿ｃｏｍと電流センサ２４の実測値を３相／２相変換した電流値Ｉｄ１（図４の実線）とは実質的に一致する。なお、図４の縦軸は、ｄ軸に流れる電流値を示し、図４の横軸は、時間を示す。
【００６５】
一方、図５に、検出誤差を含む場合の電流センサ２４の実測値の時間変化を示す。図５の縦軸は、Ｖ相コイルの相電流を示し、図５の横軸は、時間を示す。図５の実線に示すように、検出誤差を含む場合、電流センサ２４は、振動中心が正方向にオフセットした状態でＶ相コイルの相電流を検出する。
【００６６】
そのため、図６の実線と破線とに示すように、電流指令値Ｉｄ＿ｃｏｍ（図６の破線）が一定である場合でも、電流指令値Ｉｄ＿ｃｏｍと電流センサ２４の実測値を３相／２相変換した電流値Ｉｄ１（図６の実線）とは一致せず、電流値Ｉｄ１は、ゼロを振動中心として振動することとなる。その結果、ＭＧ１８，２０に供給される交流電力を精度高く制御することができない場合がある。
【００６７】
そこで、本実施の形態においては、ＥＣＵ４０が、車両１０が走行状態であるという第１条件と、フィードバック制御の実行中の第１判定期間において目標トルクの変化量が第１しきい値以下である第２条件とを含む学習条件が成立した場合に、車両１０の走行中にフィードバック制御を停止して検出誤差を学習する点に特徴を有する。
【００６８】
具体的には、ＥＣＵ４０は、学習条件が成立した場合、車両１０の走行中にフィードバック制御を停止して、検出誤差を補正するための補正値の暫定値（以下、暫定補正値という）を決定して、電流指令値と、暫定補正値を用いて補正された電流値との偏差の絶対値の極大値を算出する。ＥＣＵ４０は、複数の暫定補正値が決定されて複数の極大値が算出された場合に、複数の極大値のうちの最小値に対応する暫定補正値を最終的な補正値（以下、最終補正値という）Ｃｆ１として決定する。ＥＣＵ４０は、決定された最終補正値Ｃｆ１を用いて電流センサ２４によって検出された実測値Ｉｖ１，Ｉｗ１を補正する。
【００６９】
なお、ＥＣＵ４０は、同様に、電流センサ２６の検出誤差に対する最終補正値Ｃｆ２を決定し、検定された最終補正値Ｃｆ２を用いて電流センサ２６によって検出された実測値Ｉｖ２，Ｉｗ２を補正する。そのため、その詳細な説明は繰返さない。
【００７０】
さらに、本実施の形態においては、ＥＣＵ４０は、前回決定された暫定補正値Ｃ（ｎ−１）に予め定められた値を加算または減算することによって今回の暫定補正値Ｃ（ｎ）を決定する。ＥＣＵ４０は、今回までに算出された複数の極大値のうち暫定補正値の変化に対して極小となる値に対応する暫定補正値を最終補正値Ｃｆ１として決定する。
【００７１】
図７に、学習部４３４の機能ブロック図を示す。学習部４３４は、トルク指令判定部１０２と、フィードバック制御停止部１０４と、暫定補正値決定部１０６と、偏差算出部１０８と、最終補正値決定部１１０とを含む。
【００７２】
なお、本実施の形態においては、インバータ１４の制御に対して本発明を適用した場合について説明するがインバータ１６の制御に対して本発明を適用した場合も同様である。そのため、その詳細な説明は繰返さない。さらに、本実施の形態においては、ｄ軸の電流指令値Ｉｄ＿ｃｏｍと、ｄ軸の電流値Ｉｄ１とを用いて検出誤差を学習して最終補正値Ｃｆ１を決定してもよいし、ｑ軸の電流指令値Ｉｑ＿ｃｏｍと、ｑ軸の電流値Ｉｑ１とを用いて検出誤差を学習して最終補正値Ｃｆ１を決定するようにしてもよい。以下の説明においては、ｄ軸の電流指令値Ｉｄ＿ｃｏｍと、ｄ軸の電流値Ｉｄ１とを用いた場合を一例として説明する。
【００７３】
トルク指令判定部１０２は、トルク指令値（ＴＲ１）が実質的に一定の状態であるか否かを判定する。具体的には、トルク指令判定部１０２は、車両１０が走行状態であるという第１条件と、フィードバック制御中の第１判定期間のおいてトルク指令値（ＴＲ１）の変化量がしきい値以下であるという第２条件とを含む学習条件が成立するか否かを判定する。なお、しきい値は、予め定められた値であってもよいし、車両１０の走行状態に応じて決定される値であってもよい。トルク指令判定部１０２は、学習条件が成立すると判定した場合に、実質的にトルク指令値が一定の状態であると判定する。
【００７４】
なお、トルク指令判定部１０２は、トルク指令値が実質的に一定の状態であると判定された場合に、トルク指令判定フラグをオンするようにしてもよい。また、トルク指令判定部１０２は、Ｉｄ＿ｃｏｍが実質的に一定の状態である場合（Ｉｄ＿ｃｏｍがしきい値以下である場合）に第２条件が成立したと判定するようにしてもよい。さらに、トルク指令判定部１０２は、たとえば、駆動輪２８の回転速度あるいはＭＧ２０の回転速度等がゼロより大きい場合、あるいは、予め定められた速度よりも大きい場合に、第１条件が成立したと判定すればよい。
【００７５】
フィードバック制御停止部１０４は、トルク指令判定部１０２によってトルク指令値が実質的に一定の状態であると判定された場合に、フィードバック制御を停止する。フィードバック制御停止部１０４は、図２に示した減算器４１２において算出されるＩｄ＿ｃｏｍとＩｄ１との偏差を強制的にゼロとするようにしてもよいし、あるいは、ＰＩ制御部４１６の入力値を強制的にゼロとしてもよい。
【００７６】
フィードバック制御停止部１０４は、たとえば、電流指令値変換部４１０から減算器４１２に入力される電流指令値Ｉｄ＿ｃｏｍをＩｄ１と同一の値とすることによって、Ｉｄ＿ｃｏｍとＩｄ１との偏差を強制的にゼロとするようにしてもよい。
【００７７】
本実施の形態においては、フィードバック制御停止部１０４は、トルク指令判定部１０２によってトルク指令値が一定の状態であると判定された時点から後述する最終補正値Ｃｆ１が決定されるまでフィードバック制御を停止するとして説明するが、特にフィードバック制御を停止する期間の終わりとしては最終補正値Ｃｆ１が決定されるまでに限定されるものではない。たとえば、フィードバック制御停止部１０４は、トルク指令判定部１０２によってトルク指令値が一定の状態であると判定された時点から予め定められた時間が経過するまでフィードバック制御を停止するようにしてもよいし、トルク指令判定部１０２によってトルク指令値が一定の状態であると判定された時点からトルク指令判定部１０２によってトルク指令値が一定の状態でないと判定されるまでフィードバック制御を停止するようにしてもよい。
【００７８】
なお、フィードバック制御停止部１０４は、たとえば、トルク指令判定フラグがオンである場合に、フィードバック制御を停止するようにしてもよい。
【００７９】
暫定補正値決定部１０６は、フィードバック制御停止部１０４によってフィードバック制御が停止された場合に暫定補正値を決定する。暫定補正値決定部１０６は、暫定補正値の決定がフィードバック制御停止後の初回である場合には、予め定められた初期値Ｃ（０）を暫定補正値として決定する。暫定補正値決定部１０６は、後述する最終補正値決定部１１０において最終補正値Ｃｆ１が決定されない場合に、再度、暫定補正値を決定する。暫定補正値決定部１０６は、たとえば、暫定補正値の決定がフィードバック制御停止後の初回でない場合には、前回決定された暫定補正値Ｃ（ｎ−１）に予め定められた値ａを加算または前回決定された暫定補正値Ｃ（ｎ−１）から予め定められた値ａを減算した値を今回の暫定補正値Ｃ（ｎ）として決定する。
【００８０】
本実施の形態において、暫定補正値決定部１０６は、フィードバック制御停止後の初回に、たとえば、暫定補正値Ｃ（０）（＝０）を決定する。暫定補正値決定部１０６は、後述する最終補正値決定部１１０において最終補正値Ｃｆ１が決定されない場合に、前回の暫定補正値Ｃ（０）に予め定められた値ａを加算して今回の暫定補正値Ｃ（１）（＝ａ）を決定する。以降、暫定補正値決定部１０６は、前回の暫定補正値Ｃ（ｎ−１）に対応する偏差Δｉ（ｎ−１）を算出された場合であって、最終補正値Ｃｆ１が決定されない場合に、前回の暫定補正値Ｃ（ｎ−１）に予め定められた値ａを加算して今回の暫定補正値Ｃ（ｎ）（＝Ｃ（ｎ−１）＋ａ）を決定する。
【００８１】
偏差算出部１０８は、電流指令値Ｉｄ＿ｃｏｍと、決定された暫定補正値を用いて補正された実測値を３相２相変換部４３２によって変換された電流値Ｉｄ１との偏差の絶対値の極大値（以下、偏差Δｉ（ｎ）という）を算出する。偏差算出部１０８は、少なくとも半周期の電流指令値Ｉｄ＿ｃｏｍと電流値Ｉｄ１との偏差Δｉ（ｎ）を算出する。
【００８２】
なお、偏差算出部１０８は、たとえば、予め定められた周期に亘って電流指令値Ｉｄ＿ｃｏｍと電流値Ｉｄ１との偏差の絶対値の極大値を複数算出し、算出された複数の極大値の平均値を偏差Δｉ（ｎ）としてもよい。
【００８３】
最終補正値決定部１１０は、偏差算出部１０８において算出された複数の偏差Δｉ（０）〜偏差Δｉ（ｎ）に基づいて最終補正値Ｃｆ１を決定する。最終補正値決定部１１０は、偏差算出部１０８によって算出された複数の偏差Δｉ（０）〜偏差Δｉ（ｎ）のうちの最小偏差Δｉ＿ｍｉｎに対応する暫定補正値Ｃｍｉｎを最終補正値Ｃｆ１として決定する。最終補正値決定部は、決定した最終補正値Ｃｆ１を図２に示したセンサ値補正部４３０に出力する。
【００８４】
図８に、補正値と偏差Δｉとの関係を示す。図８に示すように、補正値の増加に対して偏差Δｉは、Ｃｍｉｎにおいて極小となる値Δｉ＿ｍｉｎを有するように変化する。したがって、最終補正値決定部１１０は、最小偏差Δｉ＿ｍｉｎに対応する暫定補正値Ｃｍｉｎを最終補正値Ｃｆ１として決定する。
【００８５】
本実施の形態において、暫定補正値決定部１０６によって、ゼロを初期値として、予め定められた値ａを加算して暫定補正値が決定され、偏差算出部１０８によって偏差Δｉが算出される計算が最終補正値が決定されるまで繰返される。このとき、図８に示すように、偏差Δｉは、暫定補正値の増加に減少していき、極小となる暫定補正値Ｃ（ｎ−１）（Ｃｍｉｎ）よりも大きい暫定補正値Ｃ（ｎ）が設定された場合に、増加に転じる。
【００８６】
したがって、最終補正値決定部１１０は、今回の暫定補正値Ｃ（ｎ）に対応する偏差Δｉ（ｎ）が前回の暫定補正値Ｃ（ｎ−１）に対応する偏差Δｉ（ｎ−１）に対して増加した場合に、前回の暫定補正値に対応する偏差Δｉ（ｎ−１）が最小偏差Δｉ＿ｍｉｎとして算出される。暫定補正値決定部１０６は、算出された最小偏差Δｉ＿ｍｉｎに対応する暫定補正値Ｃｍｉｎを最終補正値Ｃｆ１として決定する。
【００８７】
最終補正値決定部１１０は、今回の暫定補正値Ｃ（ｎ）に対応する偏差Δｉ（ｎ）が前回の暫定補正値Ｃ（ｎ−１）に対して減少した場合に、最終補正値を決定しない。
【００８８】
本実施の形態において、トルク指令判定部１０２と、フィードバック制御停止部１０４と、暫定補正値決定部１０６と、偏差算出部１０８と、最終補正値決定部１１０とは、いずれもＥＣＵ４０のＣＰＵがメモリに記憶されたプログラムを実行することにより実現される、ソフトウェアとして機能するものとして説明するが、ハードウェアにより実現されるようにしてもよい。なお、このようなプログラムは記憶媒体に記録されて車両に搭載される。
【００８９】
図９を参照して、本実施の形態に係る車両用制御装置であるＥＣＵ４０で実行されるプログラムの制御構造について説明する。
【００９０】
ステップ（以下、ステップをＳと記載する）１００にて、ＥＣＵ４０は、トルク指令値ＴＲ１が一定の状態であるか否かを判定する。トルク指令値ＴＲ１が一定の状態である場合（Ｓ１００にてＹＥＳ）、処理はＳ１０２に移される。もしそうでない場合（Ｓ１００にてＮＯ）、この処理はＳ１００に戻され、トルク指令値ＴＲ１が一定の状態になるまで待機する。
【００９１】
Ｓ１０２にて、ＥＣＵ４０は、フィードバック制御を停止する。Ｓ１０４にて、ＥＣＵ４０は、前回の暫定補正値Ｃ（ｎ−１）に予め定められた値ａを加算して、今回の暫定補正値Ｃ（ｎ）を決定する。
【００９２】
Ｓ１０６にて、ＥＣＵ４０は、決定された今回の暫定補正値Ｃ（ｎ）に基づいて偏差Δｉ（ｎ）を算出する。なお、偏差Δｉ（ｎ）の算出方法については上述したとおりであるため、その詳細な説明は繰返さない。
【００９３】
Ｓ１０８にて、ＥＣＵ４０は、今回の偏差Δｉ（ｎ）が前回の偏差Δｉ（ｎ−１）よりも大きいか否かを判定する。今回の偏差Δｉ（ｎ）が前回の偏差Δｉ（ｎ−１）よりも大きい場合に、処理はＳ１１０に移される。もしそうでない場合（Ｓ１０８にてＮＯ）、処理はＳ１０４に移される。
【００９４】
Ｓ１１０にて、ＥＣＵ４０は、前回の偏差Δｉ（ｎ−１）に対応する暫定補正値Ｃ（ｎ−１）を最終補正値Ｃｆ１として決定する。Ｓ１１２にて、ＥＣＵ４０は、フィードバック制御を開始する。
【００９５】
以上のような構造およびフローチャートに基づく本実施の形態に係る車両用制御装置であるＥＣＵ４０の動作について説明する。
【００９６】
たとえば、車両１０が走行状態である場合であって、かつ、運転者がアクセルペダルの踏み込み量を一定としている場合を想定する。この場合、トルク指令値ＴＲ１が一定の状態であるため（Ｓ１００にてＹＥＳ）、車両１０の走行中にフィードバック制御が停止されて（Ｓ１０２）、検出誤差の学習が開始される。
【００９７】
すなわち、今回の暫定補正値Ｃ（ｎ）が決定されて（Ｓ１０４）、決定された今回の暫定補正値Ｃ（ｎ）に基づいて偏差Δｉ（ｎ）が算出される（Ｓ１０６）。算出された今回の偏差Δｉ（ｎ）が前回の偏差Δｉ（ｎ−１）以下である場合には（Ｓ１０８にてＮＯ）、今回の暫定補正値Ｃ（ｎ）に予め定められた値ａが加算されて、次回の暫定補正値Ｃ（ｎ＋１）が決定される（Ｓ１０４）。
【００９８】
一方、算出された今回の偏差Δｉ（ｎ）が前回の偏差Δｉ（ｎ−１）よりも大きい場合には（Ｓ１０８にてＹＥＳ）、前回の暫定補正値Ｃ（ｎ−１）が最終補正値Ｃｆ１として決定される（Ｓ１１０）。ＥＣＵ４０は、決定された最終補正値Ｃｆ１を用いたフィードバック制御を開始する（Ｓ１１２）。
【００９９】
ＥＣＵ４０は、このような上述の検出誤差の学習によってＶ相コイルのモータ電流およびＷ相コイルのモータ電流の各々についての最終補正値Ｃｖｆ１およびＣｗｆ１を決定する。ＥＣＵ４０は、図３に示したセンサ値補正部４３０において、電流センサ２４から受信したモータ電流Ｉｖ１，Ｉｗ１から最終補正値Ｃｖｆ１，Ｃｗｆ１をそれぞれ減算して、減算された値Ｉｖ１−Ｃｖｆ１，Ｉｗ１−Ｃｗｆ１を用いてフィードバック制御を実行する。図３に示したΔＩｖ１は、−Ｃｖｆ１であって、ΔＩｗ１は、−Ｃｗｆ１である。
【０１００】
モータ電流Ｉｖ１，Ｉｗ１から最終補正値Ｃｖｆ１，Ｃｗｆ１をそれぞれ減算することによって、電流センサ２４の実測値は、図５に示すような実測値の振動中心がオフセットした波形から図３に示すように、ゼロを振動中心とした波形に補正される。
【０１０１】
また、ＥＣＵ４０は、次にトルク指令値が一定の状態になるまで、決定した最終補正値Ｃｖｆ１およびＣｗｆ１を用いてフィードバック制御を実行し、トルク指令値が一定の状態になった場合に（Ｓ１００にてＹＥＳ）、最終補正値Ｃｖｆ１およびＣｗｆ１を更新する（Ｓ１１０）。
【０１０２】
以上のようにして、本実施の形態に係る車両用制御装置によると、学習条件が成立した場合に、車両の走行中に最終補正値を決定する際に、フィードバック制御を停止することによって、フィードバック制御による影響を排除して最終補正値を精度高く算出することができる。そのため、たとえば、長時間車両が走行することによって、電流センサの検出誤差に変化が生じた場合でも、適切に電流センサの検出誤差を補正することができる。また、トルク指令値が一定の状態である場合に学習を実行するため、車両の走行中における電流制御の制御精度の悪化を抑制することができる。したがって、車両の走行中である場合に検出誤差を学習することによって交流モータに供給される交流電力を精度高く制御する車両用制御装置および車両用制御方法を提供することができる。
【０１０３】
また、本実施の形態に係る車両用制御装置によると、車両の走行中においても電流センサの検出誤差の学習が可能となるため、モータの停止時に実行されていた検出誤差の学習領域を拡大させることができる。
【０１０４】
本実施の形態において、暫定補正値決定部１０６は、暫定補正値の初期値Ｃ（０）としてゼロを決定するものとして説明したが、特に、初期値はゼロに限定されるものではない。初期値は、たとえば、補正値として取り得る値よりも大きな値であってもよい。
【０１０５】
この場合、暫定補正値決定部１０６は、最終補正値決定部１１０において最終補正値Ｃｆ１が決定されない場合に、前回の暫定補正値Ｃ（ｎ−１）から予め定められた値ａを減算して今回の暫定補正値Ｃ（ｎ）（Ｃ（ｎ）−ａ）を決定すればよい。
【０１０６】
なお、偏差算出部１０８および最終補正値決定部１１０の最小偏差Δｉ＿ｍｉｎに対応する暫定補正値Ｃｍｉｎを最終補正値Ｃｆ１として決定する動作については、初期値をゼロとした場合と同様であるため、その詳細な説明は繰返さない。
【０１０７】
あるいは、図１０に示すように、暫定補正値決定部１０６は、まず、暫定補正値Ｃａを決定し、偏差算出部１０８は、決定された暫定補正値Ｃａに基づいて偏差Δｉａを算出し、次に、暫定補正値決定部１０６は、暫定補正値Ｃａに予め定められた値ａを加算した値を暫定補正値Ｃｂとして決定し、偏差算出部１０８は、決定された暫定補正値Ｃｂに基づいて偏差Δｉｂを算出するようにしてもよい。
【０１０８】
この場合、次回の計算において、暫定補正値決定部１０６は、２つの偏差ΔｉａおよびΔｉｂを比較し、ΔｉａがΔｉｂよりも小さい場合に、暫定補正値Ｃａから予め定められた値ａを減算した値を暫定補正値Ｃｃとして決定し、偏差算出部１０８は、決定された暫定補正値Ｃｃに基づいて偏差Δｉｃを算出する。
【０１０９】
最終補正値決定部１１０は、算出された偏差Δｉｃが偏差Δｉａよりも大きい場合には、偏差Δｉａが最小偏差Δｉ＿ｍｉｎとして算出され、図１０に示すように、算出されたΔｉｃが偏差Δｉａよりも小さい場合には、最終補正値Ｃｆ１が決定されるまで、前回の暫定補正値から予め定められた値ａを減算して今回の暫定補正値を算出し、算出された今回の暫定補正値に対応する偏差Δｉを算出するという計算を繰返すようにしてもよい。
【０１１０】
また、暫定補正値決定部１０６は、２つの偏差ΔｉａおよびΔｉｂを比較して、ΔｉｂがΔｉａよりも小さい場合に、暫定補正値Ｃｂに予め定められた値ａを加算した値を暫定補正値Ｃｃ’として決定し、偏差算出部１０８は、決定された暫定補正値Ｃｃ’に基づいて偏差Δｉｃ’を算出する。
【０１１１】
最終補正値決定部１１０は、算出された偏差Δｉｃ’が偏差Δｉｂよりも大きい場合には、偏差Δｉｂが最小偏差Δｉ＿ｍｉｎとして算出され、算出されたΔｉｃ’が偏差Δｉｂよりも小さい場合には、最終補正値Ｃｆ１が決定されるまで、前回の暫定補正値に予め定められた値ａを加算して今回の暫定補正値を算出し、算出された今回の暫定補正値に対応する偏差Δｉを算出するという計算を繰返すようにしてもよい。
【０１１２】
さらに、ＥＣＵ４０は、トルク指令値が一定の状態であるという学習条件に加えて、第１判定期間においてエンジン３０の回転数の変化量がしきい値以下であるという条件が成立した場合に、車両１０の走行中にフィードバック制御を停止して検出誤差を学習するようにしてもよい。このようにすると、より精度高く最終補正値を決定することができる。
【０１１３】
また、ＥＣＵ４０は、第２判定期間が経過するまで学習条件が成立しない場合、または、車両が予め定められた距離以上走行するまで学習条件が成立しない場合、車両１０の走行中にフィードバック制御を停止して検出誤差を学習するようにしてもよい。このようにすると、速やかに検出誤差を補正することができる。
【０１１４】
さらに、本実施の形態においては、トルク指令値が一定の状態である場合に、フィードバック制御を停止して、最終補正値を決定することとしたが、たとえば、トルク指令値が単調増加あるいは単調減少している場合に、車両の走行中にフィードバック制御を停止して、最終補正値Ｃｆ１を決定するようにしてもよい。
【０１１５】
この場合、ＥＣＵ４０は、たとえば、図１１に示すように、１周期におけるＩｄ＿ｃｏｍと電流値Ｉｄ１との偏差の絶対値の極大値を偏差Δｉとして算出する。なお、具体的な最終補正値Ｃｆ１の決定方法については、トルク指令値が一定の状態である場合の最終補正値Ｃｆ１の決定方法と同様であるため、その詳細な説明は繰返さない。
【０１１６】
また、ＥＣＵ４０は、最終補正値Ｃｆ１を決定する際のフィードバック制御の停止中には、フィードフォワード項のみを変更することによって電流制御を実行する。
【０１１７】
たとえば、この場合の図３に示した電圧操作量Ｖｄ１は、Ｖｄ１＝Σｖｄｉ＋ｖｄ＿ｆｆの式により算出される。Σｖｄｉは、フィードバック制御を停止する直前までのｖｄｉ（ゲインＫｉと偏差Δｉｄとの積）の積算値である。ｖｄ＿ｆｆは、フィードフォワード項である。ｖｄ＿ｆｆは、ｖｄ＿ｆｆ＝−１×回転速度ω×インダクタンスＬｑ×電流指令値Ｉｑ＿ｃｏｍの式より算出される。
【０１１８】
また、この場合の図３に示した電圧操作量Ｖｑ１は、Ｖｑ１＝ΣＶｑｉ＋ｖｑ＿ｆｆの式により算出される。ΣＶｑｉは、フィードバック制御を停止する直前までのｖｑｉ（ゲインＫｉと偏差Δｉｑとの積）の積算値である。ｖｑ＿ｆｆは、フィードフォワード項である。ｖｑ＿ｆｆは、ｖｑ＿ｆｆ＝回転速度ω×インダクタンスＬｄ×電流指令値Ｉｄ＿ｃｏｍ＋回転速度ω×永久磁石によるモータ鎖交磁束φの式より算出される。
【０１１９】
このようにしても、フィードバック制御による影響を排除して最終補正値を精度高く算出することができる。
【０１２０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２１】
１０  車両、１２  昇圧コンバータ、１３  バッテリ、１４，１６  インバータ、１８，２０  ＭＧ、２２，３６  電圧センサ、２４，２６  電流センサ、２８  駆動輪、３０  エンジン、３２，３４  回転センサ、３８  動力分割機構、４０  ＥＣＵ、１０２  トルク指令判定部、１０４  フィードバック制御停止部、１０６  暫定補正値決定部、１０８  偏差算出部、１１０  最終補正値決定部、４１０  電流指令値変換部、４１２，４１４  減算器、４１６，４１８  ＰＩ制御部、４２０  ２相／３相変換部、４２２  ＰＷＭ生成部、４３０  センサ値補正部、４３２  ３相／２相変換部、４３４  学習部。
【図１】
0005402736.tif 000002
【図２】
0005402736.tif 000003
【図３】
0005402736.tif 000004
【図４】
0005402736.tif 000005
【図５】
0005402736.tif 000006
【図６】
0005402736.tif 000007
【図７】
0005402736.tif 000008
【図８】
0005402736.tif 000009
【図９】
0005402736.tif 000010
【図１０】
0005402736.tif 000011
【図１１】
0005402736.tif 000012