以下、添付図面を参照しつつ本発明を実施するための実施形態について説明する。
図1は、モータ制御装置を適用した車両用内燃機関(エンジン)の一例を示す構成図である。
エンジン1は、シリンダブロック10と、シリンダブロック10のシリンダボア10Aに往復動可能に挿入されたピストン12と、シリンダブロック10の上部に取り付けられたシリンダヘッド14と、を備えている。ピストン12の冠面12Aとシリンダヘッド14の下面との間には、燃焼室Sが形成されている。
ピストン12は、コネクティングロッド(コンロッド(conn-rod))16を介してクランクシャフト18に連結されている。シリンダヘッド14には、それぞれ、燃焼室Sに向かって開口する吸気ポート14A及び排気ポート14Bが設けられている。また、シリンダヘッド14には、吸気ポート14Aの開口を開閉する吸気バルブ20Aと、排気ポート14Bの開口を開閉する排気バルブ20Bとが取り付けられている。さらに、シリンダヘッド14には、燃焼室Sに燃料を噴射する燃料噴射装置22と、燃料と空気との混合気を着火する点火装置24とが取り付けられている。
また、エンジン1は、例えば、特開2002-276446号公報に開示されるような複リンク機構によって、燃焼室Sの容積を変更することで、圧縮比を可変とする可変圧縮比(VCR:Variable Compression Ratio)機構26を備えている。
VCR機構26の複リンク機構は、例えば、以下のように構成されている。
コンロッド16は、ロアリンク16A及びアッパリンク16Bを有する。ロアリンク16Aは、略三角形状の2つの部材で構成されている。ロアリンク16Aの略中央部には、クランクシャフト18に連結するための連結孔が形成されている。アッパリンク16Bは、下端側が第1の連結ピン28によりロアリンク16Aの一端に回動可能に連結され、上端側がピストンピン30によりピストン12に回動可能に連結されている。クランクシャフト18は、複数のジャーナル部18A及びクランクピン部18Bを有する。ジャーナル部18Aは、シリンダブロック10の主軸受(図示省略)に回転自在に支持されている。クランクピン部18Bは、ロアリンク16Aの連結孔に挿入されている。これにより、ロアリンク16Aがクランクピン部18Bに回転自在に連結される。また、クランクピン部18Bは、ジャーナル部18Aから所定量偏心している。シリンダブロック10の下部には、コントロールシャフト32が回転可能に支持されている。コントロールシャフト32は、その回転中心から偏心している偏心カム部32Aを有する。このコントロールシャフト32とロアリンク16Aの他端とは、コントロールリンク34を介して連結されている。コントロールリンク34は、上端側が第2の連結ピン36によりロアリンク16Aの他端に回動可能に連結され、下端側がコントロールシャフト32を介してシリンダブロック10の下部に回動可能に連結されている。より詳細には、コントロールリンク34の下端側は、偏心カム部32Aに回転可能に嵌合している。
このような複リンク機構を用いたVCR機構26では、コントロールシャフト32の回動位置が電動アクチュエータ38によって制御される。電動アクチュエータ38は、詳細を後述するモータと、減速機38Aと、出力軸38Bと、を含む。モータの回転出力は、まず、減速機38Aによって減速されて出力軸38Bに伝達される。回転出力は、出力軸38Bに伝達された後、出力軸38Bに形成されたギア(例えば、ウォームギア)38B1とコントロールシャフト32に形成されたギア(例えば、ウォームホイール)32Bとの噛合によって、コントロールシャフト32に伝達される。出力軸38Bの回転角度(実際の角度)βは、例えば、出力軸38Bにロータが取り付けられたレゾルバなどの回転角度センサ40によって検出される。回転角度センサ40は、実際の角度βに対応した実角度信号を出力する。
そして、VCR機構26では、電動アクチュエータ38の出力軸38Bを正回転又は逆回転させることでコントロールシャフト32が回動すると、偏心カム部32Aの中心位置が変化する。つまり、シリンダブロック10に対する偏心カム部32Aの相対位置が変化する。これにより、コントロールリンク34の下端の揺動支持位置が変化すると、ピストン上死点(TDC)におけるピストン12の位置が高くなったり低くなったりして、燃焼室Sの容積が増減する。したがって、エンジン1の圧縮比が低圧縮比又は高圧縮比に変更される。すなわち、エンジン1の圧縮比は、出力軸38Bの回転角度に応じて変化する。
VCR機構26には、図2に示すように、コントロールシャフト32が通常の制御範囲を超えて回動しようとするときに、通常の制御範囲以上の回動を規制するストッパ機構42が取り付けられている。ストッパ機構42は、コントロールシャフト32に要の部分が固定された第1の部材42Aと、シリンダブロック10に固定された板形状の第2の部材42Bとを有する。
第1の部材42Aは、コントロールシャフト32と一体回転する。第2の部材42Bは、通常の制御範囲である最高圧縮比(又は最低圧縮比)を超えてコントロールシャフト32が回動したときに、第1の部材42Aの中心角を規定する2辺の一方に当接する。これにより、コントロールシャフト32の変位が規制される。ここで、ストッパ機構42は、コントロールシャフト32が通常の制御範囲を超えようとするときに機能する。そのため、通常制御では、第1の部材42Aが第2の部材42Bに当接しないので、例えば、異音発生などを抑制することができる。
エンジン1の燃焼制御は、マイクロコンピュータを内蔵したエンジンコントローラ44が、燃料噴射装置22の噴射量及び噴射時期、並びに、点火装置24の点火時期などを電子制御することで行われる。エンジンコントローラ44には、例えば、車載ネットワークの一例であるCAN(Controller Area Network)を介して、VCR機構26を電子制御するVCRコントローラ46が接続されている。したがって、エンジンコントローラ44とVCRコントローラ46との間では、CANを介して任意のデータを送受信できる。尚、車載ネットワークとしては、CANに限らず、FlexRay(登録商標)などの公知のネットワークを使用することができる。
エンジンコントローラ44には、例えば、図示省略の入出力ポート又は入出力回路を介して、回転速度センサ48及び負荷センサ50の各出力信号が入力される。回転速度センサ48は、エンジン1の回転速度Neを検出する。負荷センサ50は、エンジン1の負荷Qを検出する。ここで、エンジン1の負荷Qとしては、例えば、吸気負圧、吸気流量、過給圧力、アクセル開度、スロットル開度など、トルクと密接に関連する状態量を使用することができる。
エンジンコントローラ44は、例えば、回転速度及び負荷に適合した目標値が設定されたマップを参照し、回転速度Ne及び負荷Qに応じた目標圧縮比を求める。また、エンジンコントローラ44は、求めた目標圧縮比に応じた出力軸38Bの回転角度(目標角度)βtを演算する。そして、エンジンコントローラ44は、CANを介して、目標角度βtに対応する目標角度信号をVCRコントローラ46に出力する。
VCRコントローラ46は、エンジンコントローラ44から出力された目標角度信号、回転角度センサ40から出力された実角度信号に基づいて、電動アクチュエータ38のモータの駆動を制御する。したがって、VCRコントローラ46がモータ制御装置の一例として挙げられる。モータの駆動が制御されることにより、出力軸38Bの正逆回転駆動が制御され、エンジン1の圧縮比が変更される。
図3は、電動アクチュエータ38のモータ及びVCRコントローラ46の内部構成を示す構成図である。電動アクチュエータ38のモータの一例としては、3相ブラシレスモータ60などが挙げられる。3相ブラシレスモータ60(以下、単に「モータ60」という)は、U相コイル60u、V相コイル60v及びW相コイル60wがスター結線された3相コイルを巻き回してなる略円筒状のステータ(図示省略)と、このステータの中央部に形成されている空間においてステータの軸線を中心として回転可能に配置されたロータ(永久磁石回転子)60Rと、を備えている。
モータ60には、例えば、ロータ60Rの回転に伴う磁界変化を検出し、ロータ60Rの回転角度θに応じた磁界検出信号を出力するホール素子又はエンコーダなどのロータ角度センサ60Sが内蔵されている。但し、これに限るものではなく、ロータ角度センサ60Sは、例えば、ロータ60Rの回転角度θに応じた信号を検出するレゾルバであってもよい。
VCRコントローラ46は、インバータ70及び制御器80を有する。インバータ70は、車載バッテリBの直流電力を交流電力に変換して当該交流電力をモータ60(その3相コイル)に供給することでモータ60を駆動する電力変換器である。
インバータ70は、スイッチング素子70A、70Bを直列接続したU相アームと、スイッチング素子70C、70Dを直列接続したV相アームと、スイッチング素子70E、70Fを直列接続したW相アームと、を有する。これらU、V、W相アームは、車載バッテリBの正極側の母線と車載バッテリBの負極側の母線との間において、それぞれ並列に接続されている。U、V、W相アームの2つのスイッチング素子間がモータ60における対応相のコイルに接続されていることにより、3相ブリッジ回路が構成されている。
図3では、スイッチング素子70A~70Fをダイオードが逆並列に接続されたIGBTとして示している。但し、これに限るものではなく、スイッチング素子70A~70Fは、ダイオードが逆並列に接続されたFETなど、他の電力制御用の半導体素子であってもよい。スイッチング素子70A~70Fの制御端子(例えば、ゲート端子)は、制御器80の出力ポートに接続されている。
U、V、W相アームには、例えば、シャント抵抗により各相電流Iu、Iv、Iwを検出するための電流検出手段(U相電流検出部72u、V相電流検出部72v、W相電流検出部72w)が設けられている。これら電流検出手段72u、72v、72wは、例えば、各シャント抵抗の両端電位差をオペアアンプなどによって検出し、各シャント抵抗における両端電位差Viu、Viv、Viwに対応した電位差信号を制御器80に出力する。
制御器80は、各種制御プログラムを実行する処理装置であるCPU(Central Processing Unit)と、制御プログラムなどが格納されると共に各種データを保存可能なフラッシュROM(Read Only Memory)と、一時的な記憶領域となるRAM(Random Access Memory)と、CANなどのネットワークに接続するためのCANトランシーバである通信回路と、これらを相互に接続するバスを含むマイクロコンピュータを備えている。
制御器80は、エンジンコントローラ44から出力された目標角度信号、及び、回転角度センサ40から出力された実角度信号に加えて、電流検出手段から出力された電位差信号と、ロータ角度センサ60Sから出力された磁界検出信号とに基づいて所定の制御信号を生成する。この制御信号は、スイッチング素子70A~70Fの各制御端子に出力され、スイッチング素子70A~70Fのオン・オフ状態の切り換えが制御される。これにより、電動アクチュエータ38の出力軸38Bが回転し、ピストン12の上死点位置が変更される。したがって、エンジン1の圧縮比が、低圧縮比化される方向又は高圧縮比化される方向に変更される。
制御器80は、機能ブロックとして、回転角度演算部100、回転速度演算部200、相電流検出部300、3相-2軸変換部400、目標電流設定部500、ベクトル制御部600、2軸-3相変換部700及び信号生成部800を有する。
回転角度演算部100は、ロータ角度センサ60Sから出力された磁界検出信号に基づいて、ロータ60Rの回転角度θを演算する。
回転速度演算部200は、回転角度演算部100が演算した回転角度θの時間変化からモータ60の角速度(実際の回転速度)ωr[rpm](回転/分)を演算することで検出する。尚、ωrが負の値の場合、圧縮比が高くなる方向にモータ60が回転しているものとする一方、ωrが正の値である場合、圧縮比が低くなる方向にモータ60が回転しているものとする。
相電流検出部300は、U、V、W相電流検出部72u、72v、72wから出力された電位差信号をそれぞれA/D(Analog to Digital)変換し、変換後の値に基づいて各相の相電流Iu、Iv、Iwを検出する。
3相-2軸変換部400は、回転角度θを用いて相電流検出値Iu、Iv、Iwをdq回転座標におけるd軸電流検出値Id及びq軸電流検出値Iqに変換する。dq回転座標は、モータ60のロータ60R(永久磁石回転子)に同期して回転する界磁方向をd軸とし、このd軸に直交するトルク生成方向をq軸とした回転座標である。
目標電流設定部500は、エンジンコントローラ44から出力された目標角度信号(目標角度βt)、回転角度センサ40から出力された実角度信号(実際の角度β)、回転速度演算部200が検出した回転速度検出値ωr及び3相-2軸変換部400で得られるq軸電流検出値Iqに基づいて、目標電流値であるd軸電流指令値Id
*及びq軸電流指令値Iq
*を設定する。目標電流設定部500によるこれら目標電流値の設定処理については後述する。
ベクトル制御部600は、d、q軸電流検出値Id、Iqと、d、q軸電流指令値Id
*、Iq
*と、回転速度検出値ωrとに基づいて所定周期毎にd、q軸電圧指令値Vd、Vqを演算するベクトル制御を実行する。例えば、ベクトル制御部600は、回転速度検出値ωrを考慮しつつ、d、q軸電流検出値Id、Iqとd、q軸電流指令値Id
*、Iq
*との電流偏差に対する比例積分制御(PI制御)などの電流フィードバック制御を実行する。この電流フィードバック制御により、d、q軸電流検出値Id、Iqを、それぞれ、d、q軸電流指令値Id
*、Iq
*に近付けるように、d、q軸電圧指令値Vd、Vqが演算される。
2軸-3相変換部700は、回転角度θを用いてベクトル制御部600で演算されたd、q軸電圧指令値Vd、VqをU相電圧指令値Vu、V相電圧指令値Vv及びW相電圧指令値Vwの3相電圧指令値に変換する。
信号生成部800は、3相電圧指令値Vu、Vv、Vwと、例えば、三角波キャリアであるキャリア波(搬送波)と、に基づいてスイッチング素子70A~70Fに出力するための信号を生成する。より詳細には、信号生成部800は、例えば、スイッチング素子70A~70Fを駆動するためのPWM(Pulse Width Modulation)パルス幅を、Vu、Vv、Vwに基づいて生成される変調波(例えば、正弦波)と搬送波との比較に基づいて決定することで、上記信号としてのPWMパルスを生成する。そして、信号生成部800は、生成したPWMパルスをスイッチング素子70A~70Fに出力する。
以下、第1実施形態に係る制御器80の目標電流設定部500の詳細について説明する。目標電流設定部500は、まず、目標角度βtと実際の角度βとの角度偏差を演算する。そして、目標電流設定部310は、例えば、演算した角度偏差に基づく比例積分制御(PI制御)などのフィードバック制御処理を実行する。これにより、実際の角度βが目標角度βtに近付くようにモータ60の駆動を制御するための指令トルクが演算される。そして、モータ60の発生トルクはq軸電流に比例するので、目標電流設定部310は、この指令トルクに応じたq軸電流指令値Iq
*を演算する。すなわち、制御器80は、d、q軸電流検出値Id、Iqとこのq軸電流指令値Iq
*及び後述のd軸電流指令値Id
*とに基づいてモータ60の発生トルクを制御する。尚、角度偏差が負の値であることは、βをβtに近付けるべく圧縮比が高くなる方向にモータ60を駆動させる必要があることを意味するものとする。また、角度偏差が正の値であることは、βをβtに近付けるべく圧縮比が低くなる方向にモータ60を駆動させる必要があることを意味するものとする。
一方、目標電流設定部500は、d軸電流指令値Id
*を負の値(例えば、-20[A](アンペア))又は0[A]に設定する。Id
*が負の値に設定されるのは、例えば、VCR機構26を用いてピストン12の上死点位置を圧縮比が低くなる方向に変更するときである。すなわち、エンジン1の燃焼圧力によりモータ60の回転方向と同一方向に負荷トルクが加わるときに、Id
*が負の値に設定される。Id
*を負の値に設定して、モータ60の界磁磁束を意図的に弱めるように3相コイル60u、60v、60wに電流を流す、いわゆる弱め磁束制御が実行される。これにより、ピストン12の上死点位置を圧縮比が高くなる方向に変更する場合と比較してモータ60の回転速度が上昇しやすくなる。したがって、弱め磁束制御を実行することでVCR機構26の応答性を向上させることができる。
d軸電流指令値Id
*が0[A]に設定されるのは、例えば、ピストン12の上死点位置を圧縮比が高くなる方向に変更するとき、すなわち、エンジン1の燃焼圧力によりモータ60の回転方向と反対方向にトルクが加わるときである。このときに、弱め磁束制御を実行すると、上述したモータ60の回転方向と反対方向のトルクに加えて、界磁磁束の減少によりモータ60の発生トルクが低下する。そのため、VCR機構26の応答性が低下してしまうおそれがある。したがって、ピストン12の上死点位置を圧縮比が高くなる方向に変更するときは、Id
*は0[A]に設定され、弱め磁束制御が実行されない。これにより、ピストン12の上死点位置を圧縮比が高くなる方向に変更する際のVCR機構26の応答性の低下を抑制している。
ここで、上述の弱め磁束制御が実行された場合や何らかの原因で負荷トルクが減少した場合など、モータ60の発生トルクが負荷トルクを上回ってモータ60の回転速度が上昇しやすくなる。回転速度が上昇しやすい状況では、回転速度検出値ωrが、例えば、定格回転速度、最大回転速度又は許容回転速度などの予め設定された回転速度制限値ωlmt(例えば、±4000[rpm])を超えるオーバーシュートが発生するおそれがあった。そこで、モータ60の発生トルクがq軸電流に比例していることを考慮して、上述した従来のモータ制御装置では、ωrがその制限値ωlmtを超えたときにq軸電流指令値Iq
*を小さくするように補正して発生トルクを低減させていた。より詳細には、従来のモータ制御装置では、モータ60の過回転を抑制すべく、ωrとωlmtとの速度偏差に対する比例積分制御(PI制御)を含むフィードバック制御を実行する。そして、Iq
*を、このフィードバック制御により得られる補正値によって発生トルクを低減するように補正することでωrをωlmtに収束させていた。
図4は、従来のモータ制御装置による制御結果を示すタイムチャートである。このタイムチャートは、回転速度、速度偏差に対するPI制御による補正値及びq軸電流の時間変化を示している。尚、図4を参照した説明では、q軸電流指令値Iq
*が正の値であるものとする。また、以下の説明では、q軸電流検出値Iqが正の値のときのモータ60の回転を正回転とし、Iqが負の値のとき、モータ60は逆回転しているものとする。すなわち、q軸電流指令値Iq
*が正の値である場合、モータ60の正回転が要求され、Iq
*が負の値である場合、モータ60の逆回転が要求されることになる。
図4に示すように、従来のモータ制御装置では、回転速度検出値ωrが制限値ωlmtを超えてから(ωr>ωlmt)PI制御が開始され、補正値が演算され始める(時刻t1)。ここで、ωr>ωlmtの場合、速度偏差(ωlmt-ωr)は負の値となり、比例制御による補正値P及び積分制御による補正値Iは共に負の値となる。そして、補正値Iと補正値Pとを加算した値がq軸電流指令値Iq
*に加算されることで、Iq
*が補正される。したがって、補正後のIq
*は、補正前のIq
*よりも小さくなり、q軸電流検出値Iqが補正後のIq
*に追従して変化する。これにより、モータの発生トルクが低減される。その後、所定時間経過後、時刻t2においてωrがωlmtに収束する。しかしながら、時刻t1から時刻t2までの間に回転速度ωrがその制限値ωlmtを超えるオーバーシュートが発生する。これは、ωrがωlmtを超えてからPI制御によるIq
*の補正が開始されるためである。
そこで、第1実施形態に係るモータ制御装置の制御器80は、q軸電流指令値Iq
*を、回転速度検出値ωrと回転速度制限値ωlmtとに基づくフィードバック制御により得られる補正値によって発生トルクを低減するように補正する。より詳細には、制御器80は、ωrの絶対値がωlmtの絶対値よりも絶対値が所定値δだけ小さい閾値以上のとき、ωrとその制限値ωlmtとの速度偏差に対する積分制御の出力値である第1の補正値に、ωrと閾値との速度偏差に対する比例制御の出力値である第2の補正値を加算した値によって、Iq
*を補正する。そして、制御器80は、補正前のIq
*に代えて補正後のIq
*を用いて発生トルクを制御する。
要するに、第1実施形態において、制御器80によるフィードバック制御は、回転速度制限値ωlmtから回転速度検出値ωrを減算した偏差に対する積分制御(以下、単に「I制御」という)と共に、ωlmt-δからωrを減算した偏差に対する比例制御(以下、単に「P制御」という)を実行するものである。また、所定値δについては、少なくとも不等式0<δ<ωlmtが成り立っているものとする。このような制御器80を備えたモータ制御装置によれば、以下で説明する作用効果が得られる。この点について、図5を参照して説明する。尚、図5を参照した説明では、図4と同様、q軸電流指令値Iq
*が正の値であり、モータ60が正回転しているものとする。
より詳細には、第1実施形態によるフィードバック制御は、回転速度制限値ωlmt(以下、これを単に「第1の制限値」という)から回転速度検出値ωrを減算した偏差(以下、これを単に「第1の偏差」という)に対するI制御により第1の補正値を演算する。これに加えて、第1実施形態によるフィードバック制御は、閾値ωlmt-δ(以下、これを単に「第2の制限値」という)からωrを減算した偏差(以下、これを単に「第2の偏差」という)に対するP制御により第2の補正値を演算する。また、このフィードバック制御は、ωrが第2の制限値に達してから実行される。すなわち、図5では、時刻t3以降、I制御による第1の補正値(以下、単に「補正値I」という)及びP制御による第2の補正値(以下、単に「補正値P」という)は、ωrが第1の制限値に達する前から演算され始める。そして、ωrが第2の制限値を超えているが第1の制限値未満(ωlmt-δ<ωr<ωlmt)のとき、第1の偏差が正の値となるため補正値Iが正の値となり、第2の偏差が負の値となるため補正値Pが負の値となる。
要するに、I制御では、ωlmt-δ<ωr<ωlmtのとき、ωrを第1の制限値に近付けるべく、発生トルクを増大させるようにq軸電流指令値Iq
*を大きくする補正値Iが演算される。一方、ωlmt-δ<ωr<ωlmtのとき、P制御では、回転速度検出値ωrを第1の制限値よりも小さい第2の制限値に近付けるべく、発生トルクを低減させるようにIq
*を小さくする補正値Pが演算される。また、一般に、積分は所定時間間隔における偏差を累積するものといえるため、I制御による影響が出るのに時間がかかる(補正値Iの上昇に時間がかかる)。一方、補正値Pは偏差に比例ゲインを乗じるものであるため、P制御による影響が出るのはI制御と比較して早い。特に、ωrがωlmt-δに達してIq
*を補正する制御が開始されてからすぐは、P制御による影響が支配的となる。すなわち、時刻t3以降、P制御による影響が支配的となり、補正値Iと補正値Pとを加算した総補正値Tは負の値となる。そして、制御器80は、d軸電流指令値Id
*とd軸電流検出値Idとの電流偏差及び補正後のIq
*とq軸電流検出値Iqとの電流偏差に基づいて発生トルクを制御する。これにより、回転速度検出値が第1の制限値を超えてからIq
*の補正が開始される従来のモータ制御装置よりも早く発生トルクを低下させることが可能となる。したがって、上述の回転速度が上昇しやすい状況においてモータ60の過回転が抑制されるので、オーバーシュートの発生を抑制することができる。
特に、ωlmt-δ<ωr<ωlmtのとき、詳細を後述するように、補正値Iを、その絶対値が補正値Pの絶対値よりも小さくなるように制限すれば、補正値Iと補正値Pとを加算した総補正値Tは負の値となる。これにより、回転速度検出値ωrが第1の制限値ωlmtに達する前からq軸電流指令値Iq
*を小さくすることが可能となるので、上述の状況での回転速度の上昇を抑制する効果を高めることができる。
また、時刻t3から所定時間経過した後は、補正値Iが徐々に上昇してくるため、これに伴って総補正値Tが徐々に大きくなる。例えば、補正開始前のIq
*が25[A]であり、時刻t3のとき、補正値Pが-5[A]、補正値Iが0[A]であったとすると、補正後のIq
*は20[A](=25+(-5))となる。そして、所定時間経過後、例えば、補正値Iが3[A]になったとすると、補正後のIq
*は、23[A](=25+(-5+3))となり、20[A]の場合と比較して発生トルクが増大することになる(但し、補正開始前(Iq
*=25[A]のとき)よりも発生トルクは低減されている)。これにより、回転速度検出値ωrを上昇させて第1制限値ωlmtに近付けることが可能となる。したがって、オーバーシュートを抑制しつつ回転速度を回転速度制限値(第1の制限値)ωlmtに収束(一致)させることができる。
以上説明した第1実施形態によるフィードバック制御を実行すべく、制御器80の目標電流設定部500は、例えば、q軸電流指令値Iq
*を補正するq軸電流補正部502を含む(図6を参照)。尚、図4及び図5では、Iq
*が正の値である場合について説明したが、図6に示すq軸電流補正部502は、Iq
*が負の値である場合にも対応可能に構成されている。
q軸電流補正部502は、図6に示す各種処理を含む。この処理は、回転方向判定処理502Aと、所定値選択処理502Bと、第1の制限値選択処理502Cと、第2の制限値演算処理502Dと、第1の判定処理502Eと、第2の判定処理502Fと、補正決定処理502Gと、第2の偏差演算処理502Hと、P制御処理502Iと、補正値選択処理502Jと、第1の偏差演算処理502Kと、積分ゲイン乗算処理502Lと、積分演算処理502Mと、加算処理502Nと、補正処理502Oと、を含む。尚、これら各種処理は、制御器80のCPUが実行する処理である。
回転方向判定処理502Aは、上述した指令トルクに基づくq軸電流指令値Iq
*を入力し、このIq
*が0[A]以上であるか否かを判定する。
q軸電流指令値Iq
*が0以上(Iq
*≧0)のとき、モータ60は正回転している。そして、回転方向判定処理502Aは、Iq
*≧0のとき、True信号を所定値選択処理502B、第1の制限値選択処理502C及び補正決定処理502Gに出力する。
一方、q軸電流指令値Iq
*が0未満(Iq
*<0)のとき、モータ60は逆回転している。そして、回転方向判定処理502Aは、Iq
*<0のとき、False信号を所定値選択処理502B、第1の制限値選択処理502C及び補正決定処理502Gに出力する。
所定値選択処理502Bは、回転方向判定処理502Aからの信号に応じて、正側の所定値+δ及び負側の所定値-δの一方を選択して出力する。所定値選択処理502Bは、True信号を入力した場合は、+δを選択して第2の制限値演算処理502Dに出力する。一方、所定値選択処理502Bは、False信号を入力した場合は、-δを選択して第2の制限値演算処理502Dに出力する。尚、この所定値δは、詳細を後述する設定方法により設定される。
第1の制限値選択処理502Cは、回転方向判定処理502Aからの信号に応じて、正側の回転速度制限値+ωlmt及び負側の回転速度制限値-ωlmtの一方を選択して出力する。第1の制限値選択処理502Cは、True信号を入力した場合は、+ωlmtを選択して第2の制限値演算処理502D及び第1の偏差演算処理502Kに出力する。すなわち、+ωlmtは、モータ60が正回転している場合の第1の制限値である。一方、第1の制限値選択処理502Cは、False信号を入力した場合は、-ωlmtを選択して第2の制限値演算処理502D及び第1の偏差演算処理502Kに出力する。すなわち、-ωlmtは、モータ60が逆回転している場合の第1の制限値である。
第2の制限値演算処理502Dは、所定値選択処理502Bが選択した所定値(+δ又は-δ)及び第1の制限値選択処理502Cが選択した第1の制限値(+ωlmt又は-ωlmt)を入力する。そして、第2の制限値演算処理502Dは、第1の制限値から所定値を減算することでP制御用の回転速度制限値、すなわち、第2の制限値を演算する。q軸電流指令値Iq
*≧0のとき、ωlmt-δが正側の第2の制限値となる。一方、Iq
*<0のとき、-ωlmt+δが負側の第2の制限値となる。すなわち、正側及び負側の第2の制限値の絶対値は、ωlmt-δとなり、第1の制限値の絶対値ωlmtよりも所定値δ(<ωlmt)だけ小さい値となる。第2の制限値演算処理502Dは、演算した第2の制限値を第1の判定処理502E、第2の判定処理502F及び第2の偏差演算処理502Hに出力する。
第1の判定処理502Eは、第2の制限値演算処理502Dからの第2の制限値に加えて、回転速度演算部200からの回転速度検出値ωrを入力する。第1の判定処理502Eは、ωrが第2の制限値以上のとき、True信号を補正決定処理502Gに出力する。一方、第1の判定処理502Eは、ωrが第2の制限値未満のとき、False信号を補正決定処理502Gに出力する。
第2の判定処理502Fは、第1の判定処理502Eと同様、回転速度検出値ωrと第2の制限値とを入力する。ただし、第2の判定処理502Fは、ωrが第2の制限値以下のとき、True信号を補正決定処理502Gに出力する。一方、第2の判定処理502Fは、ωrが第2の制限値を超えているとき、False信号を補正決定処理502Gに出力する。
補正決定処理502Gは、回転方向判定処理502Aからの信号(True又はFalse)に応じて第1の判定処理502Eからの信号(True又はFalse)及び第2の判定処理502Fからの信号(True又はFalse)の一方を選択して出力する。
例えば、補正決定処理502Gは、回転方向判定処理502AがTrue信号を出力した場合、第1の判定処理502Eからの信号を選択して補正値選択処理502J及び積分演算処理502Mに出力する。この場合において、第1の判定処理502EがTrue信号を出力していれば、True信号が出力され、第1の判定処理502EがFalse信号を出力していれば、False信号が出力される。
一方、補正決定処理502Gは、回転方向判定処理502AがFalse信号を出力した場合、第2の判定処理502Fからの信号を選択して補正値選択処理502J及び積分演算処理502Mに出力する。この場合において、第2の判定処理502FがTrue信号を出力していれば、True信号が出力され、第2の判定処理502FがFalse信号を出力していれば、False信号が出力される。
第2の偏差演算処理502Hは、第2の制限値に加えて回転速度検出値ωrを入力する。そして、第2の偏差演算処理502Hは、第2の制限値からωrを減算することでP制御用の速度偏差、すなわち、第2の偏差を演算する。そして、第2の偏差演算処理502Hは、演算した第2の偏差をP制御処理502Iに出力する。
P制御処理502Iは、第2の偏差に比例ゲインKpを乗じることでP制御による第2の補正値、すなわち、補正値Pを演算する。そして、P制御処理502Iは、補正値Pを補正値選択処理502J及び積分演算処理502Mに出力する。尚、比例ゲインKpは、詳細を後述する設定方法により設定される。
補正値選択処理502Jは、補正決定処理502Gからの信号に応じて、補正値P及び0[A]の一方を選択して出力する。補正値選択処理502Jは、補正決定処理502Gからの信号がTrueである場合、補正値Pを選択して加算処理502Nに出力する。補正決定処理502Gからの信号がTrueである場合とは、Iq
*≧0且つωr≧ωlmt-δ(以下、これを単に「第1の条件」という)、又は、Iq
*<0且つωr≦-ωlmt+δ(以下、これを単に「第2の条件」という)が成り立つことを意味する。すなわち、モータ60が正回転している場合において回転速度検出値ωrが正側の第2の制限値(ωlmt-δ)以上のとき、又は、モータ60が逆回転している場合において回転速度検出値ωrが負側の第2の制限値(-ωlmt+δ)以下のとき、P制御による補正が実行される。
一方、補正値選択処理502Jは、補正決定処理502Gからの信号がFalseである場合、0[A]を選択して加算処理502Nに出力する。すなわち、補正値Pは0[A]に設定される。補正決定処理502Gからの信号がFalseである場合とは、Iq
*≧0且つωr<ωlmt-δ、又は、Iq
*<0且つωr>-ωlmt+δが成り立つことを意味する。すなわち、モータ60が正回転している場合において回転速度検出値ωrが正側の第2の制限値(ωlmt-δ)未満のとき、又は、モータ60が逆回転している場合においてωrが負側の第2の制限値(-ωlmt+δ)を超えているとき、P制御による補正が実行されない(補正値P=0[A])。
要するに、Iq
*≧0の場合、0[A]が補正値Pの上限値となる。したがって、モータ60の正回転中、P制御用の補正値は0[A]以下となる。一方、Iq
*<0の場合、0[A]が補正値Pの下限値となる。したがって、モータ60の逆回転中、P制御用の補正値は0[A]以上となる。
第1の偏差演算処理502Kは、第1の制限値(ωlmt又は-ωlmt)に加えて、回転速度検出値ωrを入力する。第1の偏差演算処理502Kは、第1の制限値からωrを減算することでI制御用の速度偏差、すなわち、第1の偏差を演算する。そして、第1の偏差演算処理502Kは、第1の偏差を積分ゲイン乗算処理502Lに出力する。
積分ゲイン乗算処理502Lは、第1の偏差に積分ゲインKiを乗算して得られた値を積分演算処理502Mに出力する。尚、積分ゲインKiは、詳細を後述する設定方法により設定される。
積分演算処理502Mは、第1の偏差に積分ゲインKiを乗算して得られた値を積分することでI制御による第1の補正値、すなわち、補正値Iを演算する。したがって、積分ゲイン乗算処理502L及び積分演算処理502MがI制御処理を構成している。
また、積分演算処理502Mは、補正値P及び補正決定処理502Gからの信号を入力する。積分演算処理502Mは、入力した補正値Pと、設計時に予め設定された最大電流値などに基づいて、補正値Iについての上下限値を設定する。この上下限値は、詳細を後述するように、補正値Pに補正値Iを加算した総補正値Tが0以下となるように補正値Iを制限する値である。そして、積分演算処理502Mは、演算した補正値Iが設定した上下限値で規定される範囲内のとき、この補正値Iを出力予定値とする。一方、積分演算処理502Mは、演算した補正値Iが設定した上下限値で規定される範囲外のときは、出力予定値をこの上下限値で規定される範囲内に制限する。例えば、演算した補正値Iが上限値を超えていれば、この上限値を出力予定値にする。一方、演算した補正値Iが下限値未満であれば、この下限値を出力予定値にする。尚、この上下限値も、詳細を後述する設定方法により設定される。
積分演算処理502Mは、出力予定値を決めると、補正決定処理502Gからの信号に応じて出力予定値を加算処理502Nに出力するか否かを判定する。より詳細には、補正決定処理502Gからの信号がTrueであれば、積分演算処理502Mは出力予定値、すなわち、演算した補正値I、上限値又は下限値を出力する。一方、補正決定処理502Gからの信号がFalseであれば、積分演算処理502Mは、出力予定値を初期値(例えば、0[A])に初期化する。すなわち、積分演算処理502Mは、補正値Iとして0[A]を出力し、I制御による補正は実行されない。
要するに、上述した第1の条件又は第2の条件が成立しているとき、P制御による補正及びI制御による補正が実行される。すなわち、制御器80は、回転速度検出値ωrが第2の制限値に達してから、q軸電流指令値Iq
*を補正するフィードバック制御を実行する。一方、制御器80は、ωrが第2の制限値に達していなければ(第1の条件及び第2の条件が成立していないとき)、P制御による補正及びI制御による補正が実行されない。
加算処理502Nは、補正値Iと補正値Pとを加算した総補正値Tを補正処理502Oに出力する。すなわち、加算処理502Nは、q軸電流指令値Iq
*を補正するための総補正値T(=補正値I+補正値P)を決定する。
補正処理502Oは、q軸電流指令値Iq
*に総補正値Tを加算することでIq
*を補正する。補正処理502Oは、補正後のIq
*をベクトル制御部600に出力する。この総補正値Tは、後述の設定方法で設定される所定値δ、比例ゲインKp、積分ゲインKi及び上下限値により、Iq
*≧0の場合は0[A]以下に制限され、Iq
*<0の場合は0[A]以上に制限される。つまり、総補正値Tは、Iq
*を小さくするような値である。したがって、Iq
*は、回転速度検出値ωrが第2の制限値に達してから発生トルクを低減するように補正される。
ここで、例えば、補正前のIq
*が正(負)の値の場合において、総補正値Tは、補正後のIq
*が負(正)の値となるような値であってもよい。この場合、Iq
*の補正後、補正前のトルクの方向とは逆向き方向にトルクが発生することとなる。また、上述した回転速度が上昇しやすい状況としては、例えば、VCR機構26においてエンジン1の燃焼圧力によりモータ60の回転方向と同一方向に負荷トルクが加わるなど、モータ60に対して回転速度を上昇させる方向に外力が働く状況が挙げられる。このような状況において、回転速度の上昇を抑制するためには、逆方向のトルクを発生させることが必要となる場合がある。したがって、q軸電流補正部502は、補正前のIq
*と補正後のIq
*とでその符号を反転させるような総補正値Tが演算されることを許容するようになっていることが好ましい。
次に、所定値δ、比例ゲインKp、積分ゲインKi及び上下限値の設定方法について説明する。まず、所定値δ及び比例ゲインKpは、例えば、以下の2つの設定方法により設定される。
第1の設定方法では、例えば、実機試験におけるモータ制御の応答遅れを考慮する。この実機試験では、P制御及びI制御は実行されないものとする。実機試験において、まず、q軸電流指令値Iq
*を上述の最大電流値に設定してモータ60を回転(正回転)させる。この最大電流値は、モータ60、インバータ70及び制御器80を含むモータ制御システムの回路上限電流など、システムとしての最大電流値(例えば、25[A])である。次に、回転速度検出値ωrが第1の制限値ωlmtに達したときに、Iq
*をモータ60の逆回転を要求するような最大の電流値(例えば、-最大電流値=-25[A])に切り替える。電流指令値を切り替えると、切り換え前のIq
*に応じた回転速度から切り替え後のIq
*に応じた回転速度に達するまでに応答遅れが生じる。
そこで、回転速度演算部200の演算結果に基づいて、逆回転を要求するような最大の電流値にq軸電流指令値Iq
*を切り替えてから回転速度検出値ωrの上昇が止まるまでに上昇した回転速度(上昇量)を求めておく。つまり、求めた上昇量は、P制御及びI制御による補正が行われない場合のオーバーシュートによって想定され得る回転速度の上昇量である。そして、所定値δは、この上昇量を考慮して設定される。例えば、所定値δ=上昇量であってもよいが、これに限るものではない。例えば、モータ60の仕様に応じて所定値δを上昇量よりも若干大きい値にしてもよい。尚、以上では、Iq
*を最大電流値から-最大電流値に切り替えた場合について説明したが、Iq
*を-最大電流値から最大電流値に切り替えた場合も同様である。
要するに、所定値δは、P制御及びI制御(つまり、フィードバック制御)を実行しない場合において、q軸電流指令値Iq
*を、モータ60を一方向に回転させる最大の電流値に設定した後、回転速度検出値ωrが第1の制限値(+ωlmt又は-ωlmt)に達したときに、Iq
*を、モータ60を逆方向に回転させる最大の電流値に切り換えてからωrの上昇が止まるまでに上昇した回転速度を考慮して予め設定された値である。
一方、比例ゲインKpは、上述の所定値δ及び最大電流値に基づいて設定される。例えば、比例ゲインKpは、Kp×δ=2×最大電流値という式を満たすように設定される。この式は、P制御による補正値Pの絶対値が取り得る最大の値を規定している。以下、この式について説明する。まず、q軸電流指令値Iq
*が上述の最大電流値(例えば、25[A])であり(モータ60が正回転している)、I制御による補正が実行されないと仮定する。回転速度検出値ωrが正側の第1の制限値に達すると、第2の偏差は、(ωlmt-δ)-ωlmtという式に従って-δとなる。この場合において、Iq
*が最大電流値から逆回転を要求する最大の電流値(-最大電流値)に補正されたとする。このとき、補正後のIq
*から補正前のIq
*を減算した値、すなわち、-2×最大電流値(=-50[A])は、補正値P(=-Kp×δ)が取り得る最小値(補正値Pの絶対値が取り得る最大の値)である。尚、モータ60が逆回転している場合は補正値Pが取り得る最大の値を考慮すればよいので、説明を省略する。したがって、比例ゲインKpは、2×最大電流値/δと等しい値に設定される。但し、比例ゲインKpは、2×最大電流値/δと略等しい値であってもよく、モータ60の仕様に応じて2×最大電流値/δよりも若干大きい値又は小さい値に設定されてもよい。
ところで、I制御は、一般に、P制御と併用することで実際の値(検出値)の目標値への追従性を向上させることができるものの、検出値の目標値に対する応答遅れを生じさせやすい。また、I制御における積分ゲインの設定次第では、目標値への追従の際、検出値が目標値を基準として正負両側に振動するおそれがある。すなわち、I制御は、上述のオーバーシュートを発生させ得る一因でもある。ここで、第1の設定方法では、第2の制限値は、予めオーバーシュートによる回転速度の上昇量を考慮して設定した所定値δだけ第1の制限値を低くするようにオフセットさせた値である。したがって、仮に積分ゲインKiが比較的大きい値であり、P制御による影響よりもI制御による影響が強く出た場合であっても、オーバーシュートが発生しにくいようになっている。
次に、第2の設定方法について説明する。第2の設定方法では、以下で説明するように、回転速度検出値ωrに重畳するノイズ及びq軸電流検出値Iqに重畳するノイズを考慮して比例ゲインKpを設定した後、この比例ゲインKpを用いて所定値δを設定する。
補正値Pは、第2の偏差に比例ゲインKpを乗じて得られる値である。そのため、補正値Pは、回転速度検出値ωrに重畳したノイズの影響を受ける。したがって、この補正値Pで補正されるq軸電流指令値Iq
*及びこれに追従するq軸電流検出値Iqにも影響が及ぶ。ここで、比例ゲインKpが大きすぎると、ノイズの影響が大きくなりIqが安定しない。一方、比例ゲインKpが小さすぎると、ωrの応答が遅くなってしまう。そこで、例えば、実機試験において、比例ゲインKpを調整しながらωrの振れ幅及びIqの振れ幅を監視しておく。そして、監視したωrの振れ幅に比例ゲインKpを乗じた値がIqの振れ幅と略等しくなる条件(ωrの振れ幅×Kp≒Iqの振れ幅)を満たす比例ゲインKpを求めておく。すなわち、第2の設定方法において、比例ゲインKpは、Iqの振れ幅をωrの振れ幅で割った値と略等しい値(Kp≒Iqの振れ幅/ωrの振れ幅)に設定される。尚、比例ゲインKpは、(Iqの振れ幅/ωrの振れ幅)という値と等しい値であってもよい(Kp=Iqの振れ幅/ωrの振れ幅)。
所定値δは、設定した比例ゲインKpを用いて、上述した第1の設定方法で比例ゲインKpを設定したのと同様の考え方で設定される。すなわち、所定値δは、Kp×δ≒2×最大電流値を満たすように設定される。したがって、第2の設定方法において、所定値δは、2×最大電流値/Kpと略等しい値に設定される。
積分ゲインKiは、第1の設定方法又は第2の設定方法により所定値δ及び比例ゲインKpを設定した後、上記フィードバック制御を実行する場合の実機試験により決定される。ここで、一般に、積分ゲインKiが大きいと、検出値が目標値に追従するまでの応答が速いものの、検出値が目標値に対して振動するなど、オーバーシュートが発生しやすい。また、積分ゲインKiが小さいと、オーバーシュートが発生しにくく、検出値が目標値に対して振動しにくいものの、応答が遅くなる。そこで、応答速度と、オーバーシュートの発生や検出値の振動の抑制などのモータ制御の安定性とを考慮する。例えば、積分ゲインKiを設定する実機試験では、第1の設定方法又は第2の設定方法により設定した所定値δ及び比例ゲインKpを用いると共に、回転速度検出値ωrが第2の制限値(ωlmt-δ又は-ωlmt+δ)に達してからP制御及びI制御を開始する。そして、この実機試験において、オーバーシュートの発生及びωrの振動が発生せず、且つ、ωrの応答時間が所望の応答時間となるような積分ゲインKiを求め、これを積分ゲインKiに設定することが好ましい。
上下限値は、設定した所定値δ及び比例ゲインKpに基づいて設定される。ここで、上述の第1の条件が成立している場合について説明する。この場合、第2の偏差は0以下となり、補正値Pは0[A]以下となる一方、第1の偏差は0[A]以上となり、補正値Iは0[A]以上となる。特に、回転速度検出値ωrが第2の制限値を超えているとき(ωlmt-δ<ωr)のとき、補正値Pは負の値となる一方、補正値Iは正の値となる。このため、総補正値Tは、正の値である補正値Iと負の値である補正値Pとの足し合わせである総補正値Tがq軸電流指令値Iq
*に加算される。しかし、上述したように、補正後のIq
*を補正前のIq
*よりも小さくするように補正することで発生トルクを低減させて回転速度を制限する観点から、総補正値Tは0[A]以下であることが好ましい。すなわち、少なくとも総補正値T≦0が成り立っていることが正回転中の回転速度を制限するための条件(以下、単に「正回転中の制限条件」という)となる。そして、第1の条件が成立しているとき補正値Pは負の値であることから、この正回転中の制限条件に基づいて補正値Iの上限値を設定することが可能である。すなわち、正回転中の制限条件である総補正量T=補正値I+補正値P≦0から、補正値Iの上限値は、-補正値Pとなる。したがって、正回転中においてωrが第2の制限値を超えている間(ωr>ωlmt-δ)、補正値Iは、-補正値P以下に制限される(補正値I≦-補正値P)。
また、第1の条件が成立している場合において、総補正値Tは、補正前のq軸電流指令値Iq
*(≧0)から補正後のq軸電流指令値Iq
*を減算した値(=補正前のIq
*-補正後のIq
*)を取り得る。ここで、Iq
*は、例えば、最大電流値(例えば、25[A])と-最大電流値(例えば、-25[A])とで規定される範囲内の値を取り得る。例えば、補正前のIq
*が最大電流値であり、補正後のIq
*が-最大電流値であれば、補正前のIq
*-補正後のIq
*に従って、総補正値Tは-50[A]となる。すなわち、総補正値Tが取り得る最小値は、-最大電流値の2倍(例えば、-50[A])となる(総補正値T≧-2×最大電流値)。また、補正前のIq
*が最大電流値であり、補正後のIq
*が-最大電流値となる状況は、回転速度検出値ωrが第1の制限値(+ωlmt)となった場合に発生トルクを最大限に低減したい場合(例えば、モータ60の回転方向と同一方向に負荷トルクが加わるなど、回転速度を上昇する方向に外力が働く状況で回転速度の上昇を抑制すべく逆向きのトルクを発生させたい場合)に起こり得る。この場合において、第2の偏差は、第2の制限値(=+ωlmt-δ)からωr(=+ωlmt)を減算した値(=-δ)であるので、補正値Pは、第2の偏差(=-δ)に比例ゲインKpを乗算した値(=-Kp×δ)となる。以上の点を考慮すると、補正値Iの下限値は、総補正値Tの最小値(-2×最大電流値)から上述の状況で補正値Pが取り得る値を減算した値であることが好ましい(補正値I≧-(2×最大電流値-Kp×δ))。このように、モータ60の正回転時における補正値Iの下限値を-(2×最大電流値-Kp×δ)に設定することにより、逆向きのトルクを発生するような総補正値T(例えば、Iq
*を3[A]から-25[A]に補正するような値)の演算を許容することができる。
したがって、第1の条件が成立している場合、積分演算処理502Mは、演算した補正値Iが上述の上限値以上(補正値I≧-補正値P)のときは上限値を出力し、演算した補正値Iが上述の下限値以下(補正値I≦-2×最大電流値+Kp×δ)のときは下限値を出力する。一方、演算した補正値Iが-2×最大電流値+Kp×δ<補正値I<-補正値Pのときは演算した補正値Iがそのまま出力される。
一方、上述の第2の条件が成立している場合は、第2の偏差及び補正値Pが0[A]以上となり、第1の偏差及び補正値Iが0[A]以下となる。また、q軸電流指令値Iq
*は0[A]以下であるため、逆回転中の制限条件は総補正値T≧0[A]であり、総補正値Tが取り得る最小値は0[A]である。したがって、補正値I≧-補正値Pから、補正値Iの下限値は、-補正値Pとなる。一方、総補正値Tが取り得る最大値は、補正前のq軸電流指令値Iq
*が-最大電流値であり、補正後のIq
*が最大電流値となる状況を考慮すると、2×最大電流値である(総補正値T≦2×最大電流値)。また、この状況は、回転数検出値ωrが負側の第1の制限値(-ωlmt)に到達した場合に起こり得る点を考慮すれば、補正値I≦2×最大電流値-Kp×δとなり、補正値Iの上限値は2×最大電流値-Kp×δとなる。
第2の条件が成立している場合、積分演算処理502Mは、第1の条件が成立している場合と同様、補正値Iがその上限値(2×最大電流値-Kp×δ)以上のときは上限値を出力し、補正値Iがその下限値(-補正値P)以下のときは下限値を出力する。一方、補正値Iが-補正値P<補正値I<2×最大電流値-Kp×δのときは演算した補正値Iがそのまま出力される。
このように、補正値Iは、モータ60の最大電流値と、補正値Pと、比例ゲインKpと、所定値δとから求まる上下限値で規定される所定の範囲内に制限される。より詳細には、第1の条件及び第2の条件の両方を考慮すると、発生トルクを低減して回転速度を制限するためには、補正値Iの絶対値が補正値Pの絶対値以下に制限されていればよい。これにより、補正値Pと補正値Iの合計である総補正値Tは、補正後のq軸電流指令値Iq
*が補正前のIq
*以下に制限されるので、発生トルクを低減することが可能である。
以上説明した第1実施形態に係る制御器80では、回転速度検出値ωrと回転速度制限値とに基づくPI制御を含むフィードバック制御によりq軸電流指令値Iq
*が補正されるが、これに限るものではない。例えば、以下に説明する第2実施形態に係る制御器80では、PI制御に更に微分制御(以下、単に「D制御」という)を加えたPID制御によりIq
*を補正してもよい。そのため、第2実施形態に係る制御器80では、目標電流設定部500のq軸電流補正部502は、図7に示すように、以上説明した各種処理502A~502Oに加えて微分ゲイン乗算処理502P及び微分演算処理502Qを含む。
微分ゲイン乗算処理502Pは、第1の偏差演算処理502Kから第1の偏差を入力し、この第1の偏差に微分ゲインKdを乗算する。そして、微分ゲイン乗算処理502Pは、第1の偏差に微分ゲインKdを乗算した値を微分演算処理502Qに出力する。
微分演算処理502Qは、補正決定処理502Gからの信号を入力すると共に第1の偏差に微分ゲインKdを乗算した値を微分することで、D制御による補正値Dを演算する。そして、微分演算処理502Qは、補正決定処理502Gからの信号がTrueであれば、演算した補正値Dを加算処理502Nに出力する。すなわち、D制御による補正も、P制御及びI制御による補正と同様、回転速度検出値ωrが第2の制限値(ωlmt-δ又は-ωlmt+δ)に達してから実行される。一方、微分演算処理502Qは、補正決定処理502Gからの信号がFalseであれば、0[A]を加算処理502Nに出力する。
加算処理502Nは、補正値Pと、補正値Iと、補正値Dとを加算した値を補正処理502Oに出力する。すなわち、総補正量Tは、補正値P+補正値I+補正値Dとなる。
D制御の出力は、一般に、目標値から検出値を減算した偏差の時間変化率に比例しており、検出値が目標値に近付く速度が速ければ速いほど絶対値が大きな負の値となる。ここで、第2実施形態による制御器80の作用、すなわち、q軸電流補正部502においてPI制御にD制御を加えた場合の作用について説明する。例えば、q軸電流指令値Iq
*が正の値であり、ωlmt-δ<ωr<ωlmtのとき、第1の偏差は正の値となり、第2の偏差は負の値となる。すなわち、補正値Iは正の値となり、補正値Pは負の値となる。また、補正値Iは-補正値P以下に制限されるので、I制御による影響は、P制御により弱められる。しかしながら、回転速度検出値ωrが第1の制限値ωlmtに近付く速度が速い場合には、ωrがωlmtを超えるオーバーシュートが発生し得る。しかしながら、ωrがωlmtに近付く速度が速い場合にはD制御による補正値Dが絶対値の大きい負の値となるので、オーバーシュートの発生を抑制することができる。
また、D制御を加えることにより、比例ゲインKp及び積分ゲインKiをD制御がない場合と比較して大きくすることが可能である。これにより、オーバーシュートの発生を抑制しつつ回転速度制限の制御の応答性を向上させることができる。
ここで、モータ60、インバータ70、及び、D制御が加わったq軸電流補正部502を含む制御器80を備えたモータ制御システム(以下、単に「システム」という)900の伝達関数について考える。図8は、システム900の伝達関数を説明するための図である。
図8に示すように、システム900は、概略的に、速度制御系902、電流制御系904、トルク生成系906及びモータ機械系908で構成されている。
速度制御系902は、q軸電流補正部502を含む目標電流設定部500に相当し、回転速度検出値ωrと第1の制限値ωlmt又は-ωlmtに基づくPID制御により電流指令I*を生成する。速度制御系902では、P制御は比例ゲインKpで表され、I制御はKi/sで表され、D制御はsKdで表される。ここで、sは微分演算子であり、1/sは積分演算子である。このような速度制御系902の伝達関数は、(s2Kd+sKp+Ki)/sと表せる。
電流制御系904は、ベクトル制御部600、2軸-3相変換部700及び信号生成部800に相当し、モータ60を制御する電流Iを生成する。電流制御系904の伝達関数は、1/(s×τc+1)で表される。ここで、τcは、電流制御の時定数であって、電流制御の制御応答角周波数ωACRの逆数である(τc=(ωACR)-1)。すなわち、電流制御系904は、時定数τcの一次遅れ系により構成されている。
トルク生成系906は、モータ60に相当し、電流Iにトルク定数Ktを乗じて得られるトルクTを生成する。そして、電流制御系904の伝達関数に、トルク生成系のトルク定数Ktを乗じることにより、Kt/(s×τc+1)が得られる(図8の符号910を参照)。
モータ機械系908は、モータ60に付随する機器等の負荷に相当するものであり、この負荷によりモータ60が所定の回転速度(回転速度検出値ωr)で回転することになる。より詳細には、モータ機械系908はモータ機械イナーシャJ及びモータ機械フリクションDのフィードバック結合で表される。このようなモータ機械系908の伝達関数は、フィードバック変換により1つの伝達関数(1/Js)/(1+D/Js)で表される。
ここで、図8に示すように、速度制御の応答角周波数ωASRの逆数である時定数τsを用いて、微分ゲインKdを、K'd/τsとし、比例ゲインKpを、K'p/τsとし、積分ゲインKiを、K'i/τsとする。これにより、モータ制御システム900の伝達関数は、(数1)に従って、回転速度でフィードバック結合された伝達関数で表される(図8の符号912を参照)。
ここで、(数1)において、括弧内=1を満たすようなK'd、K'p、K'iは、それぞれ、τcJ/Kt、(τcD+J)/Kt、D/Ktである。これらを(数1)に代入することにより、モータ制御システム900は、1/sτsという伝達関数が回転速度でフィードバック結合されたものとして表すことが可能となる。そして、この伝達関数は、(数2)に示すように、フィードバック変換により1つの伝達関数で表される。
(数2)は、時定数τsの一次遅れ系の伝達関数である。したがって、q軸電流補正部502のフィードバック制御をPID制御とすることにより、モータ制御システム900において、時定数τsの一次遅れ系の応答を得ることが可能になる。これにより、回転速度制限における応答のおおよその速さについての予測が容易になる。
言い換えれば、比例ゲインKp、積分ゲインKi及び微分ゲインKdを、(数3)に従って設定することにより、モータ制御システム900において時定数τsの一次遅れ系の応答を得ることができる。但し、比例ゲインKp、積分ゲインKi及び微分ゲインKdを、以下の(数3)から求まる値に設定することに限るものではなく、(数3)を目安として設定してもよい。
ここで、モータ制御システム900において、入力を任意の回転速度ωr1のステップ関数ωr1/sとした場合、ラプラス逆変換を用いることにより出力である回転速度ωrの応答波形を示す関数ωr=ωr1(1-exp(-t/τs))が得られる。この関数を用いて、回転速度0から任意の回転速度ωr1に収束するまでのI制御による出力、つまり、補正値Iを計算すると、(数4)に従って、Dωr1/Ktとなる。
Dωr1/Ktという値は、図9においてハッチングで示す領域の面積(積分値=偏差ωr1×exp(-ωASRt)の時間積分)に積分ゲインKiを乗じて得られる値である。また、この積分値Dωr1/Ktは、回転速度がωr1のときのモータ機械フリクションDによる影響を除去するための電流値に相当する。
ここで、第1実施形態では、回転速度検出値ωrが第2の制限値に達してからPI制御が開始されることから、補正値Iの初期値を0[A]としている。しかしながら、本来、回転速度検出値ωrが0から第2の制限値に至るまでに補正値Iが0[A]よりも大きい値となっているはずである。そこで、D制御を実行しない第1実施形態では、少なくともPI制御を開始する際に、I制御の影響よりもP制御の影響を強くするために、補正値Iを0[A]としていた。
一方、第2実施形態では、D制御を実行するため、D制御がI制御の影響を弱めるように働く。そこで、第2実施形態によるq軸電流補正部502では、回転速度検出値ωrが0から第2の制限値に至るまでの0[A]よりも大きい補正値Iとして、第2の制限値ωlmt-δ又は-ωlmt+δを用いたD(ωlmt-δ)/Kt又はD(-ωlmt+δ)/Ktを補正値Iの初期値に設定する。すなわち、積分演算処理502Mでは、補正決定処理502Gからの信号がFalseである場合、補正値IはDωr/Ktに初期設定される。このように、D制御を加えて一次遅れ系の応答を得ることで補正値Iの適切な初期値を予測して設定することが可能となる。但し、例えば、実機試験において積分ゲインKiを上述のDωASR/Ktより大きい値とすることが適切であると判断された場合、回転速度検出値ωrやd、q軸電流検出値Id、Iqなどの制御量の振動が所望の範囲内に抑制されていれば、補正値Iの初期値を第1実施形態と同様に0[A]としてもよい。
また、所定値δは、例えば、上述した比例ゲインKpと最大電流値とを用いてKp×δ=最大電流値を満たすように設定される。第2実施形態に係る制御器80では、D制御により、D制御がない場合と比較して制御量の急激な変化が抑制される。したがって、D制御が加わった分、第1実施形態と比較して、補正値Pが取り得る最小値を小さくすることが可能である。より詳細には、補正値Pが取り得る最小値は、第1実施形態では、およそ-最大電流値の2倍であったのに対し、第2実施形態では、-最大電流値とすることができる。すなわち、D制御が加わった分、D制御がない場合と比較して所定値δを小さくすることができる。
補正値Iについての上下限値は、例えば、以下のように設定される。モータ60が正回転している場合、補正値Iの下限値は、-(2×最大電流値-Kp×δ))に設定される。また、補正値Iの上限値は、補正値Iの初期値がD(ωlmt-δ)/Ktに設定されていることを考慮して、2×最大電流値に設定されることが好ましい。これは、補正値Iの上限値を-補正値Pとすると、PID制御の開始時に補正値Pは0となるため補正値Iも0となり、初期値をD(ωlmt-δ)/Ktに設定した意味がなくなるからである。但し、上述したように補正値Iの初期値を0[A]に設定した場合は、第1実施形態と同様に補正値Iの上限値を-補正値Pとしてもよい。一方、モータ60が逆回転している場合、補正値Iの上限値は、2×最大電流値-Kp×δに設定され、補正値Iの下限値は、-2×最大電流値又は-補正値Pに設定される。
以上説明した第1実施形態及び第2実施形態では、q軸電流指令値Iq
*を補正したが、これに限るものではない。例えば、以下に説明する第3実施形態に係る制御器80は、d軸電流指令値Id
*を補正することで発生トルクを低減してオーバーシュートの発生を抑制することが可能である。
ここで、d軸電流指令値Id
*を補正する状況は、q軸電流指令値Iq
*を補正する状況と同様、モータ60の回転速度が上昇しやすい状況であって、特に、Id
*を負の値に設定する弱め磁束制御の実行中である。例えば、q軸電流指令値Iq
*が正の値である場合における弱め磁束制御の実行中は、Id
*をそれまでのId
*よりも大きくし、これに追従してd軸電流検出値Idが大きくなると、q軸電流検出値Iqが小さくなる。
例えば、モータ60が正回転している場合の弱め磁束制御の実行中、図10に示すように時刻t4において回転速度検出値ωrが第2の制限値ωlmt-δに達すると、d軸電流指令値Id
*を大きくする補正を開始する。これにより、d軸電流検出値Idが補正後のId
*に追従して大きくなるように変化する。Idの変化に伴って、モータ60の正回転中はq軸電流検出値Iq(>0)が小さくなる(図10を参照)。また、モータ60の逆回転中は、Id
*の補正に追従してIdが大きくなることによりIq(<0)が大きくなる(Iqが正の値となる場合も含む)。すなわち、弱め磁束制御の実行を中止するようにId
*を補正することでIqを小さくすることが可能である。これにより、発生トルクを低減して回転速度の上昇を抑制することができる。
要するに、制御器80が界磁磁束を弱める弱め磁束制御を実行している間、発生トルクの低減に寄与する電流指令値は、d軸電流指令値Id
*である。但し、弱め磁束制御が実行されている場合でも、第1実施形態及び第2実施形態で説明したように、q軸電流指令値Iq
*を補正することで発生トルクを低減することが可能である。すなわち、発生トルクの低減に寄与する電流指令値は、Id
*=0[A]での制御を実行している間はq軸電流指令値Iq
*であり、弱め磁束制御を実行している間はq軸電流指令値Iq
*又はd軸電流指令値Id
*である。
第3実施形態に係る制御器80の目標電流設定部500は、d軸電流指令値Id
*を補正することで発生トルクを低減すべく、q軸電流補正部502に代えて、Id
*を補正するd軸電流補正部504を含む(図11を参照)。d軸電流補正部504は、図6を参照して説明したq軸電流補正部502の各種処理502A~502Oと同様の処理504A~504Nを含む。但し、d軸電流補正部504は、加算処理504Nが演算した総補正値Tの絶対値を補正処理504Oに出力する絶対値処理504Pを更に含む点でq軸電流補正部502とは異なる。
例えば、モータ60が正回転している場合(q軸電流指令値Iq
*>0)の弱め磁束制御を実行中(d軸電流指令値Id
*<0)の補正処理について説明する。今、回転速度検出値ωrが第2の制限値ωlmt-δを超えているが第1の制限値ωlmt未満になったとする(ωlmt-δ<ωr<ωlmt)。このとき、第2の偏差及び補正値Pは負の値となる。一方、第1の偏差及び補正値Iは正の値となる。ここで、補正値Iについては、第1実施形態と同様、少なくとも補正値I≦-補正値Pという条件を満たすように制限されていることが好ましい。これにより、加算処理504Nで演算される総補正値Tは0[A]以下となる。絶対値処理504Pは、この総補正値T(≦0)を入力すると、総補正値Tの絶対値(すなわち、正の値)を補正処理504Oに出力する。補正処理504Oは、補正前のId
*に総補正値Tを加算することでId
*を補正する。総補正値Tの絶対値が0よりも大きければ、補正後のId
*は、補正前のId
*よりも大きくなり、補正後のId
*に追従してd軸電流検出値Idが大きくなる。これにより、q軸電流検出値Iqが小さくなり、発生トルクが低減される。したがって、回転速度の上昇が抑制され、回転速度検出値ωrが第1制限値ωlmtを超えるオーバーシュートの発生を抑制することができる。
モータ60が逆回転している場合(q軸電流指令値Iq
*及びq軸電流検出値Iq<0)の弱め磁束制御中の補正処理について説明する。-ωlmt<ωr<-ωlmt+δのとき、第2の偏差及び補正値Pは正の値となり、第1の偏差及び補正値Iは負の値となる。但し、第1実施形態と同様、モータ60が逆回転している場合、補正値Iは-補正値P以上(すなわち、補正値Iの絶対値は、補正値Pの絶対値以下に制限される)であることが好ましいので、総補正値Tは0[A]以上となる。絶対値処理504Pでは、総補正値T≧0[A]であるので総補正値Tがそのまま出力される。これにより、補正後のd軸電流指令値Id
*は、補正前のId
*よりも大きくなる。したがって、モータ60が正回転している場合と同様、Iq(≦0)が大きくなり(補正によってIqが正の値となる場合を含む)、発生トルクが低減される。よって、回転速度の上昇が抑制され、オーバーシュートの発生を抑制することができる。
d軸電流補正部504が設けられている場合、比例ゲインKp、所定値δ、積分ゲインKi及び上下限値は、例えば、以下のように設定される。
上述したように、弱め磁束制御の実行中にd軸電流検出値Idが大きくなると(但し、Id≦0)、q軸電流検出値Iq(≧0)が小さくなることで発生トルクが低減される。ここで、例えば、モータ60の回転速度が正回転方向に上昇しやすい場合に、比例ゲインKpが大きすぎると、補正後のd軸電流指令値Id
*と補正前のId
*との差が大きくなる。その結果、図12(a)に示すように、Idが0[A]を超えて正側に大きく振れるなど、Idが補正後のId
*に追従するまでに振動するおそれがある。この際、Idの正側への大きな振れに伴って、Iqが負の値にまで変化すると、モータ60の逆回転を生じさせるような発生トルクが生じてしまう。そのため、回転速度検出値ωrも振動するなど、モータ60の動作にガタつきが生じるおそれがある。
一方、比例ゲインKpが小さすぎると、図12(b)に示すように、d軸電流検出値Idの振動は抑制されるものの、その変化は小さいためq軸電流検出値Iqが小さくなりにくい。したがって、発生トルクを低減させにくく、回転速度検出値ωrが第1の制限値ωlmtを超えるオーバーシュートが発生するおそれがあった。
したがって、実機試験において、例えば、図12に示す応答波形を監視しながら、動作のガタつき及びオーバーシュートの発生が抑制されるような比例ゲインKpについての最適な値を探し、比例ゲインKpをこの値に設定することが好ましい。
所定値δは、比例ゲインKpが大きいほど小さくすることができ、比例ゲインKpが小さいほど大きくすることができる。但し、所定値δの設定次第では、d軸電流指令値Id
*の補正が実行される際に、回転速度(回転速度検出値ωr)が急激に変化するおそれがある。したがって、所定値δについても、設定した比例ゲインKpを用いて図12に示す応答波形を監視しながら回転速度が急激に変化しないような最適な値を探し、所定値δをこの値に設定することが好ましい。
積分ゲインKiは、例えば、第1実施形態と同様に設定される。積分ゲインKiを大きくすれば、補正値Iの変化が速くなり、それに応じた補正後のd軸電流指令値Id
*に対するd軸電流検出値Idの変化も速くなる。ただし、積分ゲインKiを大きくし過ぎると、回転速度(回転速度検出値ωr)が振動したり、第1の制限値ωlmtに対するオーバーシュートが発生しやすくなったりする(図13(a)を参照)。一方、積分ゲインKiを小さくし過ぎると、d軸電流検出値Idの変化及びこれに追従するq軸電流検出値Iqの変化が遅くなり、回転速度制御の応答が遅くなってしまう(図13(b)を参照)。そこで、例えば、実機試験において、オーバーシュートの発生及び振動の抑制などの制御の安定性と、応答の速度とがバランスするような積分ゲインKiの値を探し、この値を積分ゲインKiに設定することが好ましい。
補正値Iについての上下限値は、第1実施形態と同様、補正値P及び最大電流値に基づいて設定される。すなわち、q軸電流指令値Iq
*≧0の場合、上限値は、-補正値Pであり、下限値は、-(2×最大電流値-Kp×δ)である。一方、Iq
*が0未満の場合、上限値は、2×最大電流値-Kp×δであり、下限値は、-補正値Pである。
要するに、補正値Iは、少なくとも補正値Iの絶対値が補正値Pの絶対値以下であれば、総補正値TへのP制御による影響がI制御による影響よりも強く出る。すなわち、回転速度が上昇しやすい状況において、P制御により回転速度検出値の絶対値ωrが第2の制限値の絶対値ωlmt-δに向かうような抑止力が働くので、回転速度が、第1の制限値の絶対値ωlmtを超えるオーバーシュートの発生を抑制することができる。
尚、上述した第3実施形態では、弱め磁束制御を実行している間、d軸電流指令値Id
*を補正するものとして説明したが、これに限るものではない。例えば、Id
*=0[A]での制御中にd軸電流指令値Id
*を大きくするように補正することで、q軸電流検出値Iqを小さくして発生トルクを低減することが可能である。
以上説明した第1実施形態~第3実施形態では、q軸電流指令値Iq
*又はd軸電流指令値Id
*を補正することで発生トルクを低減したが、これに限るものではない。例えば、上述したq軸電流補正部502及びd軸電流補正部504に代えて、ベクトル制御部600で演算されたq軸電圧指令値Vqを補正するq軸電圧補正部602をベクトル制御部600に設けてもよい(図14を参照)。このq軸電圧補正部602は、上述した回転速度検出値ωrと第1の制限値ωlmtとに基づくPI制御を含むフィードバック制御によりVqを補正する。
要するに、q軸電圧補正部602は、ベクトル制御部600においてd、q軸電流指令値Id
*、Iq
*とd、q軸電流検出値Id、Iqとの電流偏差に対するPI制御などのフィードバック制御により演算されたq軸電圧指令値Vqを補正する。
q軸電圧補正部602は、図6に示す各種処理502A~502Oと基本的には同様の処理602A~602Nを含む。ただし、q軸電圧補正部602では、回転方向判定処理602Aが、q軸電圧指令値Vqを0[V](ボルト)と比較して回転方向を判定し、補正処理602Oが、q軸電圧指令値Vqに総補正量Tを加算することで補正後のq軸電圧指令値Vqを演算する。
また、所定値δ、比例ゲインKp、積分ゲインKi及び上下限値は、例えば、第1実施形態で説明した第1の設定方法と同様の設定方法により設定される。
所定値δは、q軸電流指令値Iq
*を、モータ60を一方向に回転させる最大の電流値(=最大電流値)に設定した後、回転速度検出値ωrが第1の制限値(ωlmt又は-ωlmt)に達したときに、Iq
*を、モータ60を逆方向に回転させる最大の電流値(=-最大電流値)に切り換えてからωrの上昇が止まるまでに上昇した回転速度を考慮して予め設定された値である。
比例ゲインKpは、例えば、設定した所定値δを用いると共に、最大電流値に代えて最大電圧値を用いて設定可能である。例えば、比例ゲインKpは、Kp×δ≒2×最大電圧値を満たすような値に設定される。ここで、最大電圧値は、例えば、回路上限電圧(インバータ70の電源電圧の1/2倍)など、モータ60に印加可能な最大の電圧値であってもよい。
積分ゲインKiも、第1実施形態と同様に、実機試験によって、応答速度と、モータ60の制御安定性とがバランスするような値を求め、求めた値に設定される。
上下限値についても、最大電流値に代えて最大電圧値を用いて設定可能である。例えば、Vqが0以上、すなわち、モータ60が正回転している場合、補正値Iの上限値は、-補正値Pであり、補正値Iの下限値は、-(2×最大電圧値-Kp×δ)である。すなわち、補正値Iは、Vqが0以上の場合、-(2×最大電圧値-Kp×δ)≦補正値I≦-補正値Pを満たすように制限される。一方、Vq<0の場合、補正値Iは、-補正値P≦補正値I≦2×最大電圧値-Kp×δを満たすように制限される。
第4実施形態によるq軸電圧補正部602においても、回転速度検出値ωrが第2の制限値(ωlmt-δ又は-ωlmt+δ)に達してからPI制御が実行される。例えば、Vq>0の場合において、第2の制限値ωlmt-δ<ωr<第1の制限値ωlmtのとき、補正値Pは負の値となり、補正値Iは正の値となる。但し、補正値Iは、-補正値P以下に制限されるため、補正値Pと補正値Iとを加算した値である総補正値Tは、負の値となる。すなわち、補正後のq軸電圧指令値Vqは補正前のVqよりも小さくなる。これにより、q軸電流検出値IqがPI制御の実行前よりも小さくなり、回転速度検出値ωrが第1の制限値ωlmtに達する前から発生トルクを低減することが可能となる。したがって、モータ60の回転速度が上昇しやすい場合であっても、オーバーシュートの発生を抑制することができる。
以上説明した第4実施形態においても、第1~第3実施形態と同様、モータ60として3相ブラシレスモータを用いたが、これに限るものではない。例えば、第4実施形態では、モータ60として、電圧を可変制御することで回転速度を変更可能なブラシ付きの直流モータを用いてもよい。この場合、インバータ70は省略され、制御器80は、回転角度演算部100、回転速度演算部200の他、モータ60の印加電圧を設定する電圧設定部を新たに備えることが好ましい。また、新たに設けた電圧設定部には、回転速度検出値、第1の制限値及び第2の制限値に基づくフィードバック制御によりモータ60の印加電圧を補正する電圧補正部を設けることが好ましい。これにより、ブラシ付きの直流モータに第4実施形態に係る制御器80を適用することが可能となる。
また、第3実施形態及び第4実施形態においても、例えば、第2の制限値ωlmt-δ<回転速度検出値ωr<第1の制限値ωlmtのとき、補正値I及び補正値Pは互いに異なる符号の値となる。したがって、第1実施形態で述べたように、I制御により回転速度を第の制限値に近付けようとする作用がP制御により回転速度を第2の制限値に近付けようとする作用によって相殺される。これにより、P制御及びI制御の両方をωrがωlmtに達したときに開始する場合と比較して、オーバーシュートの発生が抑制される。したがって、第3実施形態及び第4実施形態においても、必ずしも補正値Iの絶対値が補正値Pの絶対値以下となるように補正値Iが制限されなくてもよい。この点は、第1実施形態においても同様である。さらに、第3実施形態又は第4実施形態においても、PI制御に加えてD制御を加えてd軸電流指令値Id
*又はq軸電圧指令値Vqを補正するようになっていてもよい。
尚、当業者であれば、様々な上記実施形態の技術的思想について、その一部を省略したり、その一部を適宜組み合わせたり、その一部を置換したりすることで、新たな実施形態を生み出せることを容易に理解できるであろう。