以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重畳した説明を省略する。
<第1実施形態>
第1実施形態に係るモータ駆動システムについて、図1〜図13を参照して説明する。
図1は、本実施形態に係るモータ駆動システムの構成の一例を示す図である。図1のモータ駆動システムは、モータ1と、インバータ2と、電流検出器3と、モータ制御装置100と、を備える。インバータ2、電流検出器3、及びモータ制御装置100は、モータ1を駆動するモータ駆動装置を構成する。
モータ1は、90度位相が異なる2相の交流電流により駆動されるモータである。モータ1の各相を、A相及びB相と称する。以下では、モータ1は、2相のステッピングモータ(STM)であるものとするが、これに限られない。図2は、モータ1の一例を示す図である。図2のモータ1は、回転子11と、A相コイル12Aと、B相コイル12Bと、を備える。
回転子11は、円周状に配置された永久磁石や、円周状に着磁された磁性体により構成される。回転子11は、p個の極ペア(S極及びN極のペア)を有する。図2の例では、極ペア数pは1である。回転子11の実際の角度(位置)を実角度θmという。
以下では、回転子11の1回転を1周期とする角度を機械角と称し、回転子11の1回転をp周期とする角度を電気角と称する。電気角は、機械角のp倍に相当する。以降、断りのない限り、回転子11の角度及び速度を電気角で表す。実角度θmは、電気角である。
A相コイル12A及びB相コイル12Bは、互いに接続されていない独立したコイルであり、90度位相をずらして配置される。以下、A相コイル12Aの2つの端子の電圧を、それぞれ端子電圧A+,A−という。また、B相コイル12Bの2つの端子の電圧を、それぞれ端子電圧B+,B−という。A相コイル12A及びB相コイル12Bに、90度位相が異なる交流電流を流すことで、回転子11は回転する。
インバータ2は、モータ制御装置100から入力された電圧指令値に従って、モータ1に駆動電流Iを供給する回路である。インバータ2は、PWM(Pulse Width Modulation)回路(制御信号生成部)やドライバ回路などにより構成される。PWM回路は、モータ制御装置100に設けられてもよい。
インバータ2は、モータ制御装置100から入力されたa軸電圧指令値Vaを、端子電圧A+,A−に変換し、A相コイル12Aの端子にそれぞれ印加する。具体的には、PWM回路は、a軸電圧指令値Vaに応じた制御信号(パルス信号)を生成し、ドライバ回路に入力する。ドライバ回路は、制御信号に応じた端子電圧A+,A−をA相コイル12Aの端子にそれぞれ印加する。端子電圧A+,A−の差が、A相コイル12Aの端子間電圧となる。この端子間電圧を印加されることにより、A相コイル12Aにa軸電圧指令値Vaに応じたA相駆動電流Iaが流れる。a軸電圧指令値Vaは、駆動電圧のa軸成分であり、A相コイル12Aの駆動電圧値に相当する。なお、インバータ2がA相コイル12Aに印加可能な端子間電圧は、インバータ2の電源電圧Vcc以下である。
また、インバータ2は、モータ制御装置100から入力されたb軸電圧指令値Vbを、端子電圧B+,B−に変換し、B相コイル12Bの端子にそれぞれ印加する。具体的には、PWM回路は、b軸電圧指令値Vbに応じた制御信号(パルス信号)を生成し、ドライバ回路に入力する。ドライバ回路は、制御信号に応じた端子電圧B+,B−をB相コイル12Bの端子にそれぞれ印加する。端子電圧B+,B−の差が、B相コイル12Bの端子間電圧となる。この端子間電圧を印加されることにより、B相コイル12Bにb軸電圧指令値Vbに応じたB相駆動電流Ibが流れる。b軸電圧指令値Vbは、駆動電圧のb軸成分であり、B相コイル12Bの駆動電圧に相当する。なお、インバータ2がB相コイル12Bに印加可能な端子間電圧は、インバータ2の電源電圧Vcc以下である。
電流検出器3は、電流値を検出し、デジタル値として出力する電流センサである。電流検出器3は、シャント抵抗、差動増幅器、及びAD(Analog to Digital)変換器などにより構成される。
電流検出器3は、A相駆動電流Iaの電流値であるa軸電流値iaを検出し、出力する。a軸電流値iaは、駆動電流Iの検出値のa軸成分である。また、電流検出器3は、B相駆動電流Ibの電流値であるb軸電流値ibを検出し、出力する。b軸電流値ibは、駆動電流Iの検出値のb軸成分である。a,b軸は、それぞれA,B相に対応する。a,b軸について、詳しくは後述する。電流検出器3が出力したa軸電流値ia及びb軸電流値ibは、モータ制御装置100に入力される。
モータ制御装置100は、プロセッサと、メモリと、により構成される。プロセッサは、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)などである。プロセッサは、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)などであってもよい。プロセッサは、メモリに格納されたプログラムを実行する。
メモリは、DRAM(Dynamic Random Access Memory)、SRAM(Static RAM)、MRAM(Magnetic RAM)、フラッシュメモリなどである。メモリは、プロセッサが実行するプログラムを格納する。
モータ制御装置100は、例えば、1つ又は複数のプロセッサと、1つ又は複数のメモリと、を備えるICチップにより実現される。ICチップには、インバータ2及び電流検出器3の少なくとも一方が含まれてもよい。
モータ制御装置100は、基準パルスrefclkを入力される。基準パルスrefclkは、モータ1を制御するためのパルスであり、従来の制御装置に入力されるパルスと同様のものである。モータ制御装置100は、基準パルスrefclkに基づいて、閉ループ制御と、開ループ制御と、の2種類の制御方法でモータ1を制御する。
閉ループ制御は、フィードバックされた制御結果(回転子11の角度及び速度)に基づいて算出された電流指令値により、モータ1を制御する制御方法である。本実施形態のように、モータ1をセンサレス制御する場合、モータ1の角度及び速度を直接的に取得することはできない。このため、本実施形態では、モータ1の角度及び速度の推定値がフィードバックされる。閉ループ制御によれば、モータ1を高精度に制御することができる。
開ループ制御は、予め設定された電流指令値によってモータ1を制御する制御方法である。開ループ制御では、閉ループ制御とは異なり、制御結果であるモータ1の角度及び速度がフィードバックされない。開ループ制御によれば、簡易な方法でモータ1を制御することができる。
図1に示すように、モータ制御装置100は、機能構成として、角度指令値算出部101と、角度制御部102と、第1選択部103と、第2選択部104と、d軸電流制御部105と、q軸電流制御部106と、を備える。また、モータ制御装置100は、第1ベクトル回転部107と、第2ベクトル回転部108と、第3選択部109と、角度推定部110と、制御方法選択部111と、を備える。これらの機能構成は、プロセッサがプログラムを実行することにより実現される。
角度指令値算出部101は、外部から基準パルスrefclkを入力される。角度指令値算出部101は、基準パルスrefclkを積算することにより、角度指令値θtgtを算出し、出力する。角度指令値θtgtは、回転子11の角度の目標値である。角度指令値算出部101が出力した角度指令値θtgtは、角度制御部102と、第3選択部109と、に入力される。
また、角度指令値算出部101は、基準パルスrefclkの周波数を計測することにより、速度指令値ωtgtを算出し、出力する。速度指令値ωtgtは、回転子11の速度(角速度)の目標値である。角度指令値算出部101が出力した速度指令値ωtgtは、制御方法選択部111に入力される。
図3は、角度指令値算出部101の一例を示す図である。図3の角度指令値算出部101は、カウンタ1011と、周期計測部1012と、逆数算出部1013と、を備える。
カウンタ1011は、基準パルスrefclkを入力される。カウンタ1011は、基準パルスrefclkをカウントし、カウント値を角度指令値θtgtとして出力する。基準パルスrefclkのカウントは、基準パルスrefclkの積算に相当する。
周期計測部1012は、基準パルスrefclkを入力される。周期計測部1012は、基準パルスrefclkの周期tωを計測し、出力する。周期tωは、基準パルスrefclkより十分高速な固定周波数のクロックで、基準パルスrefclkのエッジ間隔を計測することにより、計測できる。
逆数算出部1013は、周期tωを入力され、周期tωの逆数を算出し、得られた値に係数Kを乗算した値を、速度指令値ωtgtとして出力する。係数Kは、周期tωの逆数を、基準パルスrefclkの周波数に相当する値に変換するための係数である。
なお、角度指令値算出部101は、角度指令値θtgtを微分することにより、速度指令値ωtgtを算出してもよい。この場合、角度指令値算出部101は、一定時間ごとに角度指令値θtgtの差分を計算することにより、速度指令値ωtgtを算出できる。角度指令値θtgtの差分が、速度指令値ωtgtに相当する。
角度制御部102は、角度指令値θtgtと、角度推定値θestと、速度指令値ωestと、を入力される。角度推定値θestは、回転子11の角度の推定値である。速度指令値ωestは、回転子11の速度(角速度)の推定値である。角度推定値θest及び速度指令値ωestについて、詳しくは後述する。
角度制御部102は、角度推定値θestが角度指令値θtgtに一致するように、電流指令値itgtを算出し、出力する。電流指令値itgt(第2の目標値)は、モータ1を閉ループ制御する際のq軸電流指令値iqt(第2の電流指令値)の目標値である。q軸電流指令値iqtは、駆動電流Iのq軸成分(トルク成分)である。
図4は、角度制御部102の一例を示す図である。図4の角度制御部102は、比較部1021と、増幅部1022と、比較部1023と、増幅部1024,1025と、積分部1026と、加算部1027と、を備える。
比較部1021は、角度指令値θtgtと、角度推定値θestと、を入力される。角度指令値θtgtは、角度制御の目標値に相当する。また、角度推定値θestは、角度制御の検出角度値に相当する。比較部1021は、角度指令値θtgtと角度指令値θestとの差を算出し、出力する。比較部1021の出力値は、増幅部1022に入力される。
増幅部1022は、比較部1021の出力値を、所定のゲインG1で増幅し、出力する。増幅部1022の出力値は、角度制御の操作量に相当する。以下、増幅部1022の出力値を操作量C(=G1×(θtgt−θest))と称する。操作量Cは、比較部1023に入力される。
比較部1023は、操作量Cと、速度推定値ωestと、を入力される。比較部1023は、操作量Cと速度推定値ωestとの差を算出し、出力する。速度推定値ωestは、速度制御の検出角度値に相当する。また、操作量Cは、速度制御の目標値に相当する。比較部1023の出力値は、増幅部1024に入力される。
増幅部1024は、比較部1023の出力値を、所定のゲインG2で増幅し、出力する。増幅部1024の出力値は、増幅部1025と、加算部1027と、に入力される。
増幅部1025は、増幅部1024の出力値を、所定のゲインG3で増幅し、出力する。増幅部1025の出力値は、積分部1026に入力される。
積分部1026は、増幅部1025の出力値を積分し、出力する。積分部1026の出力値は、加算部1055に入力される。
加算部1027は、増幅部1024の出力値と、積分部1026の出力値と、を加算して、電流指令値itgtとして出力する。電流指令値itgtは、角度制御に含まれる速度制御の操作量に相当する。電流指令値itgtは、以下の式で表される。
図4の角度制御部102によれば、角度制御ループの内側に速度制御ループ(比較部1023及び増幅部1024)が含まれる。この速度制御ループは、位相進み要素となるため、図4の構成により、角度制御部102の位相余裕を確保することができる。また、図4の角度制御部102は、微分要素を含まないため、ノイズの影響を受けにくく、電流指令値itgtを安定して出力することができる。
なお、角度制御部102は、速度制御ループを含まない構成も可能である。この場合、図4の構成から、比較部1023及び増幅部1024を除去し、増幅部1022の出力値を、増幅部1025と、加算部1027と、に入力すればよい。
第1選択部103は、指令値出力部の一例である。第1選択部103は、電流値0と、電流値irefと、を入力される。電流値iref(第1の目標値)は、開ループ制御の際のd軸電流指令値idt(第1の電流指令値)の目標値として予め設定された値である。d軸電流指令値idtは、駆動電流Iのd軸成分(磁束成分)である。
また、第1選択部103は、選択信号selを入力される。選択信号selは、制御方法選択部111による制御方法の選択結果を示す0又は1の信号である。以下では、制御方法選択部111は、開ループ制御を選択した場合、選択信号selとして0を出力し、閉ループ制御を選択した場合、選択信号selとして1を出力するものとする。選択信号selについて、詳しくは後述する。
第1選択部103は、選択信号selに従って、電流値0又は電流値irefをd軸電流指令値idtとして選択し、出力する。第1選択部103が出力したd軸電流指令値idtは、d軸電流制御部105に入力される。
第1選択部103は、選択信号selが0の場合(制御方法が開ループ制御の場合)、d軸電流指令値idtとして電流値irefを選択し、選択信号selが1の場合(制御方法が閉ループ制御の場合)、d軸電流指令値idtとして電流値0を選択する。
第2選択部104は、指令値出力部の一例である。第2選択部104は、電流指令値itgtと、電流値0と、を入力される。また、第2選択部104は、選択信号selを入力される。第2選択部104は、選択信号selに応じた電流値を、q軸電流指令値iqtとして選択し、出力する。第2選択部104が出力したq軸電流指令値iqtは、q軸電流制御部106に入力される。
第2選択部104は、選択信号selが0の場合(制御方法が開ループ制御の場合)、q軸電流指令値iqtとして電流値0を選択し、選択信号selが1の場合(制御方法が閉ループ制御の場合)、q軸電流指令値iqtとして電流指令値itgtを選択する。
d軸電流制御部105は、d軸電流値idと、d軸電流指令値idtと、を入力される。d軸電流値idは、駆動電流Iの検出値のd軸成分である。d軸電流制御部105は、PI(Proportional Integral)制御などを利用して、d軸電流値idがd軸電流指令値idtに一致するように、d軸電圧指令値Vdを制御し、得られたd軸電圧指令値Vdを出力する。d軸電圧指令値Vdは、電圧指令値のd軸成分である。d軸電流制御部105が出力したd軸電圧指令値Vdは、第1ベクトル回転部107に入力される。
図5は、d軸電流制御部105の一例を示す図である。図5のd軸電流制御部105は、比較部1051と、増幅部1052,1053と、積分部1054と、加算部1055と、を備える。
比較部1051は、d軸電流指令値idtと、d軸電流値idと、を入力される。比較部1051は、d軸電流指令値idtとd軸電流値idとの差を算出し、出力する。比較部1051の出力値は、増幅部1052に入力される。
増幅部1052は、比較部1051の出力値を、所定のゲインG4で増幅し、出力する。増幅部1052の出力値は、増幅部1053及び加算部1055に入力される。
増幅部1053は、増幅部1052の出力値を、所定のゲインG5で増幅し、出力する。増幅部1053の出力値は、積分部1054に入力される。
積分部1054は、増幅部1053の出力値を積分し、出力する。積分部1054の出力値は、加算部1055に入力される。
加算部1055は、増幅部1052の出力値と、積分部1054の出力値と、を加算して、d軸電圧指令値Vdとして出力する。このd軸電圧指令値Vdは、以下の式で表される。
q軸電流制御部106は、q軸電流値iqと、q軸電流指令値iqtと、を入力される。q軸電流値iqは、駆動電流Iの検出値のq軸成分である。q軸電流制御部106は、PI制御などを利用して、q軸電流値iqがq軸電流指令値iqtに一致するように、q軸電圧指令値Vqを制御し、得られたq軸電圧指令値Vqを出力する。q軸電圧指令値Vqは、電圧指令値のq軸成分である。q軸電流制御部106が出力したq軸電圧指令値Vqは、第1ベクトル回転部107に入力される。
図6は、q軸電流制御部106の一例を示す図である。図6のq軸電流制御部106は、比較部1061と、増幅部1062,1063と、積分部1064と、加算部1065と、を備える。これらの各構成は、図5のd軸電流制御部105の各構成と同様である。増幅部1062,1063のゲインをそれぞれG6,G7とすると、q軸電圧指令値Vqは、以下の式で表される。
第1ベクトル回転部107は、d軸電圧指令値Vdと、q軸電圧指令値Vqと、駆動角drvと、を入力される。駆動角drvは、dq座標系をAB座標系に座標変換するための位相角である。dq座標系は、磁束成分に対応するd軸と、トルク成分に対応するq軸と、からなる回転座標系である。AB座標系は、A相に対応するa軸と、B相に対応するb軸と、からなる固定座標系である。回転子11の角度は、a軸に対するd軸の角度に相当する。駆動角drvは、第3選択部109から入力される。駆動角drvについて、詳しくは後述する。
第1ベクトル回転部107は、dq座標系をAB座標系に座標変換することにより、d軸電圧指令値Vd及びq軸電圧指令値Vqから、a軸電圧指令値Va及びb軸電圧指令値Vbを算出し、出力する。第1ベクトル回転部107が出力したa軸電圧指令値Va及びb軸電圧指令値Vbは、インバータ2と、角度推定部110と、に入力される。
具体的には、第1ベクトル回転部107は、d軸電圧指令値Vd及びq軸電圧指令値Vqからなるベクトル電圧を、駆動角drvだけ回転させることにより、a軸電圧指令値Va及びb軸電圧指令値Vbを算出する。a軸電圧指令値Va及びb軸電圧指令値Vbは、以下の式で表される。
式(4)及び式(5)は、以下の行列式で表される。
図7及び図8は、第1ベクトル回転部107の動作を説明するグラフである。以下では、閉ループ制御の場合を例に説明する。図7及び図8において、破線はd軸電圧指令値Vd、一点鎖線はq軸電圧指令値Vq、点線はa軸電圧指令値Va、実線はb軸電圧指令値Vbを示す。縦軸は電圧レベル[a.u.]であり、横軸は回転子11の実角度θm[degree]である。
図7の例では、Vd=0、Vq=1である。このとき、a軸電圧指令値Va(=−sin(θm))及びb軸電圧指令値Vb(=cos(θm))は、振幅が1となり、位相が実角度θmに一致する。これに対して、図8の例では、Vd=−0.342、Vq=0.940である。このとき、a軸電圧指令値Va及びb軸電圧指令値Vbは、振幅が1となり、位相が実角度θmに対して約20度進む。
このように、d軸電圧指令値Vd及びq軸電圧指令値Vqに応じて、a軸電圧指令値Va及びb軸電圧指令値Vbの位相が変化する。本実施形態では、モータ1の駆動速度が上昇し、速度a軸電流値ia及びb軸電流値ibの位相遅れが大きくなると、a軸電圧指令値Va及びb軸電圧指令値Vbの位相が進むように、d軸電圧指令値Vd及びq軸電圧指令値Vqが制御される。このため、駆動速度の上昇に伴う電力効率の低下が抑制される。
第2ベクトル回転部108は、a軸電流値iaと、b軸電流値ibと、駆動角drvと、を入力される。第2ベクトル回転部108は、AB座標系をdq座標系に座標変換することにより、a軸電流値ia及びb軸電流値ibから、d軸電流値id及びq軸電流値iqを算出し、出力する。第2ベクトル回転部108が出力したd軸電流値idは、d軸電流制御部105に入力される。また、第2ベクトル回転部108が出力したq軸電流値iqは、q軸電流制御部106に入力される。
具体的には、第2ベクトル回転部108は、a軸電流値ia及びb軸電流値ibからなるベクトル電流を、駆動角drvだけ回転させることにより、d軸電流値id及びq軸電流値iqを算出する。d軸電流値id及びq軸電流値iqは、以下の式で表される。
式(7)及び式(8)は、以下の行列式で表される。
図9は、第2ベクトル回転部108の動作を説明するグラフである。以下では、閉ループ制御の場合を例に説明する。図9において、破線はa軸電流値ia、一点鎖線はb軸電流値ib、点線はd軸電流値id、実線はq軸電流値iqを示す。縦軸は電流レベル[a.u.]であり、横軸は回転子11の実角度θm[degree]である。
図9の例では、a軸電流値ia及びb軸電流値ibは、実角度θmに対して位相が約30度遅れている。このとき、id=0.5、iq=0.866となる。これに対して、a軸電流値ia及びb軸電流値ibの位相が実角度θmに一致している場合、id=0、iq=1となる。
このように、a軸電流値ia及びb軸電流値ibの位相に応じて、d軸電流値id及びq軸電流値iqが変化する。逆に言うと、d軸電流値id及びq軸電流値iqが所定の値となるように電流制御することにより、a軸電流値ia及びb軸電流値ibの位相を所望の位相に制御することができる。
例えば、id=0となるように電流制御することにより、a軸電流値ia及びb軸電流値ibの位相を実角度θmに一致させることができる。また、idが0以外の所定の値になるように電流制御することにより、a軸電流値ia及びb軸電流値ibの位相を実角度θmから所定値ずらし、リラクタンストルクを向上させることも可能である。
第3選択部109は、角度指令値θtgtと、角度推定値θestと、選択信号selと、を入力される。第3選択部109は、選択信号selに従って、角度指令値θtgt又は角度推定値θestを駆動角θdrvとして選択し、出力する。以下では、第3選択部109は、選択信号selが0の場合、駆動角θdrvとして角度指令値θtgtを選択し、選択信号selが1の場合、駆動角θdrvとして角度推定値θestを選択するものとする。
角度推定部110は、a軸電圧指令値Vaと、b軸電圧指令値Vbと、a軸電流値iaと、b軸電流値ibと、を入力される。角度推定部110は、これらに基づいて、回転子11の角度及び速度を推定する。すなわち、角度推定部110は、角度推定値θest及び速度推定値ωestを算出し、出力する。
図10は、角度推定部110の一例を示す図である。図10の角度推定部110は、回転子11の回転により生じる誘起電圧を利用して、実角度θmを推定する。図10の角度推定部110は、第3ベクトル回転部1101と、第4ベクトル回転部1102と、推定誤差算出部1103と、増幅部1104,1105と、積分部1106と、加算部1107と、積分部1108と、を備える。
第3ベクトル回転部1101は、a軸電圧指令値Va及びb軸電圧指令値Vbを入力される。第3ベクトル回転部1101は、a軸電圧指令値Va及びb軸電圧指令値Vbからなるベクトル電圧を、角度推定値θestだけ回転させることにより、d軸電圧指令値Vde及びq軸電圧指令値Vqeを算出し、出力する。第3ベクトル回転部1101が出力したd軸電圧指令値Vde及びq軸電圧指令値Vqeは、推定誤差算出部1103に入力される。d軸電圧指令値Vde及びq軸電圧指令値Vqeは、以下の式で表される。
式(10)及び式(11)は、以下の行列式で表される。
第4ベクトル回転部1102は、a軸電流値ia及びb軸電流値ibを入力される。第4ベクトル回転部1102は、a軸電流値ia及びb軸電流値ibからなるベクトル電流を、角度推定値θestだけ回転させることにより、d軸電流値ide及びq軸電流値iqeを算出し、出力する。第4ベクトル回転部1102が出力したd軸電流値ide及びq軸電流値iqeは、推定誤差算出部1103に入力される。d軸電流値ide及びq軸電流値iqeは、以下の式で表される。
式(13)及び式(14)は、以下の行列式で表される。
推定誤差算出部1103は、d軸電圧指令値Vde及びq軸電圧指令値Vqeと、d軸電流値ide及びq軸電流値iqeと、を入力される。推定誤差算出部1103は、これらに基づいて、推定誤差Xerrを算出し、出力する。推定誤差Xerrは、回転子11の実角度θmと、角度推定値θestと、の誤差である角度誤差θerr(=θm−θest)に比例するパラメータである。推定誤差Xerrは、例えば、以下の式により算出される。
式(16)において、Keは逆起電圧定数(回転子11の速度に比例してコイルに生じる逆起電圧の比率)、Rはコイル抵抗、Lはコイルインダクタンスである。Ke,R,Lの値は、モータ1の仕様により決定される。また、回転子11の速度ωとして、速度推定値ωestが利用される。
式(16)により算出される推定誤差Xerrは、角度誤差θerrを位相とする正弦波となる(Xerr=sin(θerr))。したがって、角度誤差θerrが十分に小さい場合、推定誤差Xerrは角度誤差θerrに比例するものとみなされる。推定誤差算出部1103が出力した推定誤差Xerrは、増幅部1104に入力される。
増幅部1104は、推定誤差Xerrを所定のゲインG8で増幅し、出力する。増幅部1104の出力値は、増幅部1105及び加算部1107に入力される。
増幅部1105は、増幅部1104の出力値を、所定のゲインG9で増幅し、出力する。増幅部1105の出力値は、積分部1106に入力される。
積分部1106は、増幅部1105の出力値を積分し、出力する。積分部1106の出力値は、加算部1107に入力される。
加算部1107は、増幅部1104の出力値と、積分部1106の出力値と、を加算して、速度推定値ωestとして出力する。加算部1107が出力した速度推定値ωestは、角度制御部102と、積分部1108と、推定誤差算出部1103と、に入力される。推定誤差算出部1103は、この速度推定値ωestを利用して、推定誤差Xerrを算出する。
積分部1108は、速度推定値ωestを積分し、角度推定値θestとして出力する。積分部1108が出力した角度推定値θestは、角度制御部102と、第3選択部109と、第3ベクトル回転部1101と、第4ベクトル回転部1102と、に入力される。この角度推定値θestを利用して、第3ベクトル回転部1101はd軸電圧指令値Vde及びq軸電圧指令値Vqeを算出し、第4ベクトル回転部1102は、d軸電流値ide及びq軸電流値iqeを算出する。
このように、角度推定値θestは、第3ベクトル回転部1101及び第4ベクトル回転部1102にフィードバックされる。これにより、角度誤差θerr(推定誤差Xerr)が0に追従する、すなわち、角度推定値θerrが実角度θmに追従する、位相同期ループ(PLL:Phase Locked Loop)が構成される。結果として、角度推定値θestを精度よく推定することができる。
なお、推定誤差算出部1103は、式(16)の計算を行うために、回転子11の速度ωとして、速度指令値ωtgtを利用してもよいし、速度推定値ωest及び速度指令値ωtgtの両方を利用してもよい。推定誤差算出部1103は、モータ1の低速駆動時(起動時や停止時など)に、速度指令値ωtgtを利用し、他の期間に速度推定値ωestを利用するのが好ましい。これは、モータ1の低速駆動時には、誘起電圧が小さいため、推定誤差Xerrが不安定になり、結果として、速度推定値ωestの推定精度が低下するためである。このような低速駆動時には、速度指令値ωtgtを利用することにより、速度推定値ωestの推定精度を向上させることができる。
また、本実施形態において、角度推定部110は、開ループ制御中に動作してもよい。これにより、開ループ制御中のモータ制御装置100の消費電力を低減できる。また、角度推定部110は、開ループ制御中に動作してもよい。これにより、開ループ制御中であっても、回転子11の速度推定値ωestを、モータ1の異常動作の検出などに利用することができる。
制御方法選択部111は、速度指令値ωtgtを入力される。制御方法選択部111は、速度指令値ωtgtに基づいて、制御方法を選択し、選択結果を示す選択信号selを出力する。上述の通り、制御方法選択部111は、開ループ制御を選択した場合、選択信号selとして0を出力し、閉ループ制御を選択した場合、選択信号selとして1を出力する。
図11は、本実施形態における制御方法の選択方法を説明する状態遷移図である。図11の各ノードは、モータ1の制御方法選択部111による制御方法の選択状態を示している。以下、ノードN1,N2,N3の選択状態を、それぞれ状態OP1(OPEN1),OP2(OPEN2),CL(CLOSED)という。
状態OP1は、制御方法選択部111が開ループ制御を選択し、選択信号selとして0を出力している状態である。状態OP1において、速度指令値ωtgtが所定の速度閾値ω1以上になると、状態OP1は、状態OP2に遷移する。
状態OP2は、制御方法選択部111が開ループ制御を選択し、選択信号selとして0を出力している状態である。状態OP2において、速度指令値ωtgtが所定の速度閾値ω2未満になると、状態OP2は、状態OP1に遷移する。また、状態OP2において、状態OP2の継続期間tが所定期間T1以上になると、状態OP2は、状態CLに遷移する。
状態CLは、制御方法選択部111が閉ループ制御を選択し、選択信号selとして1を出力している状態である。状態CLにおいて、速度指令値ωtgtが所定の速度閾値ω2未満になると、状態CLは、状態OP1に遷移する。
なお、速度閾値ω1,ω2は、予め設定された速度指令値ωtgtの閾値である。速度閾値ω1は、モータ1を加速した際に、安定して閉ループ制御を実行できる速度指令値ωtgtの下限値として、実験やシミュレーションなどにより設定される。速度閾値ω2は、モータ1を減速した際に、安定して閉ループ制御を実行できる速度指令値ωtgtの下限値として、実験やシミュレーションなどにより設定される。安定した閉ループ制御とは、トルク振動が小さく、同期が確立した閉ループ制御のことである。
図12は、本実施形態におけるモータ駆動システムの動作の一例を示すフローチャートである。図12は、各制御タイミングにおける動作を示している。
制御タイミングが到来すると、まず、角度指令値算出部101が、基準パルスrefclkの周波数を計測し、速度指令値ωtgtを算出する。速度指令値ωtgtは、制御方法選択部111に入力される。また、角度指令値算出部101は、前回の制御タイミングから今回の制御タイミングまでの基準パルスrefclkを積算し、角度指令値θtgtを算出する(ステップS101)。また、角度指令値θtgtは、角度制御部102及び第3選択部109に入力される。
次に、制御方法選択部111が、速度指令値ωtgtが速度閾値ω2未満であるか判定する(ステップS102)。速度指令値ωtgtが速度閾値ω2未満である場合(ステップS102のYES)、制御方法選択部111は、制御方法として開ループ制御を選択し、選択信号selとして0を出力する(ステップS103)。このとき、選択状態は、状態OP1に相当する。選択信号selは、第1選択部103と、第2選択部104と、第3選択部109に入力される。
選択信号selとして0を入力されると、第1選択部103は、d軸電流指令値idtとして電流値irefを出力し、第2選択部104はq軸電流指令値iqtとして0を出力する。また、選択信号selとして0を入力されると、第3選択部109は、駆動角θdrvとして角度指令値θtgtを出力する(ステップS104)。d軸電流指令値idtは、d軸電流制御部105に入力される。q軸電流指令値iqtは、q軸電流制御部106に入力される。駆動角θdrvは、第1ベクトル回転部107及び第2ベクトル回転部108に入力される。
なお、開ループ制御が選択された場合、角度制御部102は、動作してもよいし、しなくてもよい。角度制御部102に選択信号selを入力することにより、開ループ制御が選択された場合に、角度制御部102の動作を停止させることができる。
続いて、d軸電流制御部105が、d軸電流指令値idt(=iref)と、前回の制御タイミングに入力されたd軸電流値idと、に基づいて、d軸電圧指令値Vdを算出する。また、q軸電流制御部106が、q軸電流指令値iqt(=0)と、前回の制御タイミングに入力されたq軸電流値iqと、に基づいて、q軸電圧指令値Vqを算出する(ステップS105)。d軸電圧指令値Vd及びq軸電圧指令値Vqは、第1ベクトル回転部107に入力される。
第1ベクトル回転部107は、d軸電圧指令値Vd及びq軸電圧指令値Vqからなるベクトル電圧を、駆動角θdrv(=θtgt)だけ回転させることにより、a軸電圧指令値Va及びb軸電圧指令値Vbを算出する(ステップS106)。a軸電圧指令値Va及びb軸電圧指令値Vbは、角度推定部110及びインバータ2に入力される。
その後、インバータ2は、a軸電圧指令値Vaに応じたA相駆動電流IaをA相コイル12Aに供給し、b軸電圧指令値Vbに応じたB相駆動電流IbをB相コイル12Bに供給する(ステップS107)。これにより、モータ1が駆動される。
モータ1にA相駆動電流Ia及びB相駆動電流Ibを供給すると、電流検出器3が、a軸電流値ia及びb軸電流値ibをそれぞれ検出する(ステップS108)。a軸電流値ia及びb軸電流値ibは、第2ベクトル回転部108及び角度推定部110に入力される。
第2ベクトル回転部108は、a軸電流値ia及びb軸電流値ibからなるベクトル電流を、駆動角θdrv(=θtgt)だけ回転させることにより、d軸電流値Id及びq軸電流値iqを算出する(ステップS109)。d軸電流値Id及びq軸電流値iqは、d軸電流制御部105及びq軸電流制御部106にそれぞれ入力される。
また、角度推定部110が、a軸電圧指令値Va及びb軸電圧指令値Vbと、a軸電流値ia及びb軸電流値ibと、に基づいて、角度推定値θest及び速度推定値ωestを算出する(ステップS110)。
なお、開ループ制御が選択された場合、角度推定部110は、動作してもよいし、しなくてもよい。角度推定部110に選択信号selを入力することにより、開ループ制御が選択された場合に、角度推定部110の動作を停止させることができる。
モータ1の駆動を終了する場合(ステップS111のYES)、処理は終了する。一方、モータ1の駆動を継続する場合(ステップS111のNO)、処理はステップS101に戻る。
これに対して、速度指令値ωtgtが速度閾値ω2以上である場合(ステップS102のNO)、制御方法選択部111は、速度指令値ωtgtが速度閾値ω1以上であるか判定する(ステップS112)。
速度指令値ωtgtが速度閾値ω1未満である場合(ステップS112のNO)、上述のステップS102〜ステップS111の処理が実行される。
一方、速度指令値ωtgtが速度閾値ω1以上である場合(ステップS112のYES)、制御方法選択部111は、速度指令値ωtgtが速度閾値ω1以上の継続期間tが所定期間T1以上であるか判定する(ステップS113)。
継続期間tが所定期間T1未満である場合(ステップS113のNO)、制御方法選択部111は、制御方法として開ループ制御を選択し、選択信号selとして0を出力する(ステップS114)。選択信号selは、第1選択部103と、第2選択部104と、第3選択部109に入力される。このとき、選択状態は、状態OP2に相当する。以降、上述のステップS104〜ステップS111の処理が実行される。
これに対して、継続期間tが所定期間T1以上である場合(ステップS113のYES)、制御方法選択部111は、制御方法として閉ループ制御を選択し、選択信号selとして1を出力する(ステップS115)。選択信号selは、第1選択部103と、第2選択部104と、第3選択部109に入力される。このとき、選択状態は、状態CLに相当する。
閉ループ制御が選択された場合、角度制御部102が、角度指令値θtgtと、前回の制御タイミングに入力された角度推定値θest及び速度推定値ωestと、に基づいて、電流指令値itgtを算出する(ステップS116)。電流指令値itgtは、第2選択部104に入力される。
選択信号selとして1と入力されると、第1選択部103は、d軸電流指令値idtとして電流値0を出力し、第2選択部104はq軸電流指令値iqtとして電流指令値itgtを出力する。また、選択信号selとして1と入力されると、第3選択部109は、駆動角θdrvとして角度指令値θestを出力する(ステップS117)。d軸電流指令値idtは、d軸電流制御部105に入力される。q軸電流指令値iqtは、q軸電流制御部106に入力される。駆動角θdrvは、第1ベクトル回転部107及び第2ベクトル回転部108に入力される。以降、上述のステップS105〜S111の処理が実行される。なお、閉ループ制御の場合、駆動角θdrvとして、角度推定値θestが利用される。
以上まとめると、本実施形態によれば、sel=0のとき、idt=iref、iqt=0、θdrv=θtgtとなる。したがって、sel=0のとき、a軸電流値ia及びb軸電流値ibは、以下のように制御される。
式(17)及び式(18)からわかるように、a軸電流値ia及びb軸電流値ibは、位相が角度指令値θtgtに同期し、振幅が一定値irefとなるように制御される。すなわち、a軸電流値ia及びb軸電流値ibが回転子11の角度(位置)とは無関係に制御される開ループ制御が実現されている。
一方、sel=1のとき、idt=0、iqt=itgt、θdrv=θestとなる。したがって、sel=1のとき、a軸電流値ia及びb軸電流値ibは、以下のように制御される。
式(19)及び式(20)からわかるように、a軸電流値ia及びb軸電流値ibは、位相が角度推定値θestに同期し、振幅が速度推定値ωestに応じた電流指令値itgtとなるように制御される。すなわち、a軸電流値ia及びb軸電流値ibが回転子11の角度(位置)の推定値に応じて制御される閉ループ制御が実現されている。
以上説明した通り、本実施形態によれば、モータ1は、開ループ制御と閉ループ制御とを切り替えながら制御される。モータ1は、低速駆動時(状態OP1,OP2のとき)に開ループ制御により制御され、高速駆動時(状態CLのとき)に閉ループ制御により制御される。
低速駆動時に開ループ制御することにより、モータ1の駆動を精度よく制御することができる。すなわち、回転子11を角度指令値θtgtに追従して回転させることができる。また、モータ1の停止時における回転子11の角度(位置)を、所定の角度に固定することができる。
また、高速駆動時に閉ループ制御することにより、モータ1の駆動を精度よく制御することができる。すなわち、回転子11を角度推定値θestに追従して回転させることができる。
また、閉ループ制御によれば、a軸電流値ia及びb軸電流値ibの振幅である電流指令値itgtを速度推定値ωestに応じた値とすることができる。これにより、電流指令値itgtを、負荷、速度、外乱などに釣り合う値に制御することができる。すなわち、負荷等が小さい場合、電流指令値itgtを小さくし、負荷等が大きい場合、電流指令値itgtを小さくすることができる。結果として、モータ1の消費電力を低減し、電力効率を向上させることができる。
また、電流指令値itgtは、負の値をとり得るため、回転子11に対して、回転子11の回転方向とは逆方向のトルクを生じさせることができる。このため、モータ1を搭載した電気自動車が坂を下る場合のように、進行方向に対する逆方向のトルクを発生させることが要求される場合であっても、本実施形態により、所望のトルクを発生させることができる。
また、本実施形態に係るモータ制御装置100は、従来のステッピングモータの制御装置と同様に、基準パルスrefclkに基づいてモータ1を制御するため、従来の制御装置と互換性を有する。この結果、モータ制御装置100の導入に伴う上位システムの設計変更が不要となり、導入に関するコストを低減し、納期を短縮することができる。
また、本実施形態によれば、交流電流であるA相駆動電流Ia及びB相駆動電流Ibは、直流(低周波)のd軸電圧指令値Vd及びq軸電圧指令値Vq(d軸電流指令値idt及びq軸電流指令値iqt)により制御される。したがって、a軸電流値ia及びb軸電流値ibを直接制御する場合に比べて、制御帯域を低くすることができる。結果として、制御帯域の低い安価なモータ制御装置100によりモータ駆動システムを構成することができる。
また、本実施形態によれば、選択信号selに応じて各構成の入力を切り替えるだけで、同一の構成により、開ループ制御及び閉ループ制御を実行することができる。したがって、モータ制御装置100の構成を簡易化し、モータ制御装置100を安価に構成することができる。
また、本実施形態によれば、d軸電圧指令値Vd及びq軸電圧指令値Vqにより、a軸電流値ia及びb軸電流値ibの位相を制御できるため、A相駆動電流Ia及びB相駆動電流Ibの電圧や電流を、制御方法の切替前後でスムースに接続することができる。これにより、制御方法の切替に起因するモータ1の脱調を抑制することができる。
図13は、本実施形態に係るモータ駆動システムのシミュレーション結果を示す図である。
図13の上段は、速度指令値ωtgt(太線)と、速度推定値ωest(細線)と、のグラフを示す。図13の例では、速度指令値ωtgtは、いわゆる台形速度プロファイルに従い、一定の加速度で加速し、定常速度となり、その後、一定の加速度で減速している。
図13の中段は、制御方法選択部111による制御方法の選択状態を示す。選択状態は、モータ1の起動後、速度指令値ωtgtが速度閾値ω1未満の間、状態OP1となっている。選択状態は、速度指令値ωtgtが速度閾値ω1以上になると、状態OP2に遷移し、状態OP2に遷移してから所定期間T1が経過すると、状態CLに遷移し、速度指令値ωtgtが速度閾値ω2未満になると、状態OP1に遷移している。
図13の下段は、選択信号selの値を示す。選択信号selは、モータ1の起動後、速度指令値ωtgtが速度閾値ω1以上になってから所定期間T1が経過するまで0であり、その後、1となる。選択信号selは、速度指令値ωtgtが速度閾値ω2未満になると、0となる。
すなわち、モータ1は、起動後、速度指令値ωtgtが速度閾値ω1以上になってから所定期間T1が経過するまで開ループ制御され、その後、閉ループ制御される。モータ1は、速度指令値ωtgtが速度閾値ω2未満になると、開ループ制御で制御される。
図13からわかるように、速度推定値ωestは、モータ1の起動後、角度推定の位相同期が確立するまで、不安定な値となり、位相同期の確立後、速度指令値ωtgtとほぼ一致している。また、速度推定値ωestは、モータ1の減速中、速度指令値ωtgtが小さくなると、角度推定が困難になるため、再び不安定になっている。
図13の例では、速度推定値ωestの値が不安定になる期間に開ループ制御が選択されるように、速度閾値ω1,ω2が設定されている。このように速度閾値ω1,ω2を設定することにより、速度推定値ωestの値が不安定な期間(閉ループ制御ではモータ1を精度よく制御できない期間)に、モータ1を開ループ制御することができる。また、速度推定値ωestが速度指令値ωtgtに追従する期間(閉ループ制御によりモータ1を精度よく制御できる期間)に、モータ1を閉ループ制御することができる。結果として、モータ1の駆動中の全期間にわたって、モータ1を精度よく制御することができる。
また、図13の例のように、速度閾値ω1,ω2を定常速度よりも低く設定することにより、モータ1が定常速度の間、モータ1を閉ループ制御することができる。一般に、定常速度でモータ1を駆動する期間は、モータ1の加速期間や減速期間よりも大幅に長い。このため、上記のように速度閾値ω1,ω2を設定することにより、駆動期間のほとんどの期間で、モータ1を閉ループ制御し、モータ1の消費電力を大幅に低減することができる。これに伴い、モータ1の発熱を抑制し、モータ1の小型化や低コスト化も可能となる。
なお、本実施形態に係るモータ駆動システムの構成は、図1に限られない。例えば、dq座標系を介さずに、a軸電流値ia及びb軸電流値ibを直接制御する構成も可能である。この場合、式(17)〜(20)を満たすように、a軸電流値ia及びb軸電流値ibを制御すればよい。
<第2実施形態>
第2実施形態に係るモータ駆動システムについて、図14及び図15を参照して説明する。本実施形態では、角度制御部102の他の例について説明する。
図14は、本実施形態に係るモータ駆動システムの構成を示す図である。図14に示すように、本実施形態では、角度指令値算出部101が出力した速度指令値ωtgtは、角度制御部102と、制御方法選択部111と、に入力される。他の構成は、第1実施形態(図1)と同様である。
図15は、本実施形態に係る角度制御部102の一例を示す図である。図15に示すように、速度指令値ωtgtは、比較部1023に入力される。比較部1023は、速度推定値ωestと速度指令値ωtgtとの差と、操作量Cと、を加算して出力する。他の構成は、第1実施形態(図4)と同様である。このような構成により、本実施形態では、電流指令値itgtは、以下の式で表される。
式(1)及び式(21)からわかるように、本実施形態における電流指令値itgtは、第1実施形態における電流指令値itgtの右辺第1項に速度指令値ωtgtを加算したものである。本実施形態において、速度指令値ωtgtは、速度制御の目標値として利用される。
第1実施形態(図4)の角度制御部102では、操作量Cを目標値として速度制御が行われるため、操作量Cは、速度指令値ωtgtに比例した値となる。すなわち、角度指令値θtgtと角度推定値θestとの差は、速度指令値ωtgtに比例した値となる。この結果、モータ1が高速駆動するほど、角度指令値θtgtと角度推定値θestとの差が大きくなる。
これに対して、本実施形態(図15)の角度制御部102では、速度指令値ωtgtを目標値として速度制御が行われるため、操作量Cは、速度指令値ωtgtとは独立して操作される。結果として、操作量Cは、速度指令値ωtgtとは比例した値とはならず、ゼロ近傍の値となる。したがって、本実施形態の角度制御部102によれば、角度指令値θtgtに対する追従性を向上させることができる。
また、第1実施形態の角度制御部102では、速度指令値ωtgtの変化に対する応答(速度制御応答)は、角度指令値θtgtの変化に対する応答(角度制御応答)の後に行われる。
これに対して、本実施形態の角度制御部102では、速度指令値ωtgtが変化すると、速度制御応答が瞬時に開始される。したがって、本実施形態の角度制御部102によれば、速度指令値ωtgtの変化に対する応答速度を向上させ、速度指令値ωtgtに対する追従性を向上させることができる。
<第3実施形態>
第3実施形態に係るモータ駆動システムについて、図16〜図18を参照して説明する。本実施形態では、制御方法選択部111による制御方法の選択方法の他の例について説明する。
図16は、本実施形態に係るモータ駆動システムの構成を示す図である。図16に示すように、本実施形態では、角度推定部110が出力した速度推定値ωestは、角度制御部102と、制御方法選択部111と、に入力される。他の構成は、第1実施形態(図1)と同様である。
図17は、本実施形態における制御方法の選択方法を説明する状態遷移図である。図17に示すように、本実施形態では、選択状態が遷移する条件(制御方法の選択方法)は以下のとおりである。
状態OP1において、速度指令値ωtgtが所定の速度閾値ω1以上になり、かつ、速度指令値ωtgtと速度推定値ωestとの差(以下、「速度誤差ωerr」という)が誤差閾値e未満になると、状態OP1は、状態OP2に遷移する。
状態OP2において、速度指令値ωtgtが所定の速度閾値ω2未満になる、又は速度誤差ωerrが誤差閾値e以上になると、状態OP2は、状態OP1に遷移する。また、状態OP2において、状態OP2の継続期間tが所定期間T1以上になると、状態OP2は、状態CLに遷移する。
状態CLにおいて、速度指令値ωtgtが所定の速度閾値ω2未満になる、又は速度誤差ωerrが誤差閾値e以上になると、状態CLは、状態OP1に遷移する。
なお、誤差閾値eは、予め設定された速度誤差ωerrの閾値である。誤差閾値eは、安定して閉ループ制御を実行可能な速度誤差ωerrの上限値として、実験やシミュレーションなどにより設定される。
図18は、本実施形態におけるモータ駆動システムの動作の一例を示すフローチャートである。図18のフローチャートは、ステップS118を有する。図18のステップS101〜S117は、第1実施形態(図12)と同様である。
図18に示すように、本実施形態では、速度指令値ωtgtが速度閾値ω2以上である場合(ステップS102のNO)、制御方法選択部111は、速度誤差ωerrが誤差閾値e以上であるか判定する(ステップS118)。
速度誤差ωerrが誤差閾値e以上である場合(ステップS118のYES)、制御方法選択部111は、制御方法として開ループ制御を選択し、選択信号selとして0を出力する(ステップS103)。以降の処理は、上述の通りである。
一方、速度誤差ωerrが誤差閾値e未満である場合(ステップS118のNO)、処理は、ステップS112に進む。以降の処理は、上述の通りである。
以上説明した通り、本実施形態によれば、速度誤差ωerrが小さく、安定した閉ループ制御を実行可能なときに、閉ループ制御が選択される。したがって、閉ループ制御によるモータ1の制御の安定性をより向上させることができる。
<第4実施形態>
第4実施形態に係るモータ駆動システムについて、図19〜図24を参照して説明する。本実施形態では、弱め界磁制御について説明する。
図19は、本実施形態に係るモータ駆動システムの構成を示す図である。本実施形態に係るモータ駆動システムの構成は、第1選択部103を除き、第1実施形態と同様である。以下、第1選択部103について説明する。
図19に示すように、第1選択部103は、電流値0の代わりに、d軸電圧指令値Vd、q軸電圧指令値Vq、及び電源電圧Vccを入力される。本実施形態において、第1選択部103は、選択信号selが0の場合(制御方法が開ループ制御の場合)、d軸電流指令値idtとして電流値irefを選択する。したがって、選択信号selが0の場合のモータ駆動システムの動作は、第1実施形態と同様となる。
一方、第1選択部103は、選択信号selが1の場合(制御方法が閉ループ制御の場合)、d軸電圧指令値Vd、q軸電圧指令値Vq、及び電源電圧Vccに基づいて、d軸電流指令値idtとして、q軸電流指令値iqtの所定値倍の値を出力する。本実施形態におけるd軸電流指令値idtについて、詳しくは後述する。
ここで、閉ループ制御時における、第1選択部103の動作について説明する。なお、上述の通り、d軸電流値idはd軸電流指令値idtに追従し、q軸電流値iqはq軸電流指令値iqtに追従する。したがって、d軸電流指令値idt及びq軸電流指令値iqtを制御することは、d軸電流値id及びq軸電流値iqを制御することに相当する。
モータ1が駆動している間、A相コイル12A及びB相コイル12Bの端子間には、回転子11の速度及び磁束の強さに比例した逆起電圧が発生する。このため、閉ループ制御を成立させる場合、d軸電圧指令値Vd及びq軸電圧指令値Vqは、それぞれ以下の式を満たすことを要求される。
式(22),(23)において、R及びLは、A相コイル12A及びB相コイル12Bの抵抗値(ohm)及びインダクタンス(H)、wは回転子11の回転数(rad/sec)、Keは回転数wに比例して発生する逆起電圧定数(V/rad/sec)である。
第1実施形態のように、閉ループ制御時に、d軸電流指令値idt(d軸電流値id)を電流値0に制御する場合、式(22)より、d軸電圧指令値Vdは負の値になることがわかる。また、式(23)より、回転数wが大きい場合、q軸電圧指令値Vqは大きな値となることがわかる。
図20は、閉ループ制御時における電圧指令値と回転速度との関係を示すグラフである。図20の例では、d軸電流指令値idtを電流値0に制御する場合を想定している。図20において、抵抗値Rは9.1(ohm)、インダクタンスHは20mH、逆起電圧定数Keは0.008(V/rad/sec)、d軸電流値idは0(A)、q軸電流値iqは0.3(A)、電源電圧Vccは24(V)である。また、破線はd軸電圧指令値Vd、実線はq軸電圧指令値Vq、一点鎖線は相電圧Vab(=(Vd2+Vq2)1/2)を示す。
図20に示すように、d軸電圧指令値Vd、q軸電圧指令値Vq、及び相電圧Vabは、その振幅が24V(電源電圧Vcc)になると飽和する。図20の例では、d軸電圧指令値Vdは約2000rpmで飽和し、相電圧Vabは約1700rpmで飽和している。一般に、d軸電圧指令値Vd及びq軸電圧指令値Vqのいずれかが飽和するまで、閉ループ制御は成立するため、図20の例では、約2000rpmまで閉ループ制御が可能であることがわかる。言い換えると、図20の例では、約2000rpmまでしか閉ループ制御を実現できない。
図21は、閉ループ制御時における電圧指令値と回転速度との関係を示すグラフである。図21の例では、d軸電流指令値idtを−0.14(A)に制御する場合を想定している。図21の例では、d軸電圧指令値Vdは2500rpmでも飽和していないため、2500rpm以上の回転速度まで閉ループ制御が可能であることがわかる。
このように、d軸電流値idを0(A)以外の値に制御することで、閉ループ制御を成立させるために要求される電圧指令値を低下させる制御を、弱め界磁制御という。弱め界磁制御により、電圧指令値を低下させ、閉ループ制御を正常に実現可能な回転速度の上限値を上昇させることができる。本実施形態における第1選択部103は、d軸電流指令値idtとして、d軸電流指令値idtとq軸電流指令値iqtとの比Aを出力することにより、この弱め界磁制御を実現する。
図22は、本実施形態に係る第1選択部103の一例を示す図である。図22の第1選択部103は、加算部1031と、減算部1032と、増幅部1033と、積分部1034と、乗算部1035と、選択部1036と、弱め界磁判定部1037と、を備える。
加算部1031は、d軸電圧指令値Vd及びq軸電圧指令値Vqを入力される。加算部1031は、d軸電圧指令値Vd及びq軸電圧指令値Vqを加算して出力する。加算部1031の出力値は、減算部1032に入力される。
減算部1032は、加算部1031の出力値及び所定値V0(第2所定値)を入力される。所定値V0は、予め設定された一定値である。減算部1032は、所定値V0から加算部1031の出力値を減算して出力する。減算部1032の出力値は、増幅部1033に入力される。
増幅部1033は、減算部1032の出力値を入力される。増幅部1033は、減算部1032の出力値を、所定のゲインKで増幅し、出力する。ゲインKは、後述する積分の収束速度を決める定数である。ゲインKを適切に設定することにより、電流指令値idtの急激な変化を避け、トルクや回転数の変動を抑制することができる。増幅部1033の出力値は、積分部1034に入力される。
積分部1034は、増幅部1033の出力値、所定値A0(第1所定値)、及び切替信号loadを入力される。所定値A0は、予め設定された一定値である。切替信号loadは、弱め界磁制御の有効化及び無効化を切り替える2値の信号であり、弱め界磁判定部1037から入力される。以下では、弱め界磁判定部1037は、弱め界磁制御を有効化する場合、切替信号loadとして0を出力し、弱め界磁制御を無効化する場合、切替信号loadとして1を出力するものとする。
積分部1034は、切替信号loadとして1を入力された(弱め界磁制御が無効化された)場合、出力値Aとして所定値A0を出力する。所定値A0は、例えば、0である。この場合、d軸電流指令値idtとして電流値0が出力されるため、第1実施形態における閉ループ制御と同様の制御が行われる。
一方、積分部1034は、切替信号loadとして0を入力された(弱め界磁制御が有効化された)場合、出力値Aとして、所定値A0に増幅部1033の出力値を積分した値を出力する。積分部1034の出力値Aは、乗算部1035に入力される。
乗算部1035は、積分部1034の出力値A及び電流指令値itgtを入力される。乗算部1035は、出力値Aと電流指令値itgtを乗算して出力する。乗算部1035の出力値は、選択部1036に入力される。
選択部1036は、乗算部1035の出力値、電流値iref、及び選択信号selを入力される。選択部1036は、選択信号selとして0を入力された場合、d軸電流指令値idtとして、電流値irefを出力する。一方、選択部1036は、選択信号selとして1を入力された場合、d軸電流指令値idtとして、乗算部1035の出力値を出力する。
弱め界磁判定部1037は、d軸電圧指令値Vd、q軸電圧指令値Vd、及び電源電圧値Vccを入力される。弱め界磁判定部1037は、d軸電圧指令値Vd、q軸電圧指令値Vd、及び電源電圧値Vccに基づいて、弱め界磁制御を有効化するか否かを判定し、判定結果に応じた切替信号loadを出力する。上述の通り、弱め界磁判定部1037は、弱め界磁制御を有効化する場合、切替信号loadとして0を出力し、弱め界磁制御を無効化する場合、切替信号loadとして1を出力する。
図23は、本実施形態における弱め界磁制御の切替方法を説明する状態遷移図である。図23の各ノードは、弱め界磁判定部1037による弱め界磁制御の判定状態を示している。以下、ノードN4,N5の判定状態を、それぞれ状態NORM,ENという。
状態NORMは、弱め界磁判定部1037が弱め界磁制御を無効化すると判定し、切替信号loadとして1を出力している状態である。状態NORMにおいて、d軸電圧指令値Vdの大きさ(絶対値)が第1閾値V1以上になる、又はq軸電圧指令値Vqの大きさ(絶対値)が第1閾値V1以上になると、状態NORMは、状態ENに遷移する。
状態ENは、弱め界磁判定部1037が弱め界磁制御を有効化すると判定し、切替信号loadとして0を出力している状態である。状態ENにおいて、d軸電圧指令値Vdの大きさ(絶対値)が第2閾値V2未満になり、かつ、q軸電圧指令値Vqの大きさ(絶対値)が第2閾値V2未満になると、状態ENは、状態NORMに遷移する。
第1閾値V1は、電源電圧値Vccの近傍の値に設定される。第1閾値V1は、例えば、0.95Vccであるが、これに限られない。第1閾値V1をこのように設定することにより、d軸電圧指令値Vdが電源電圧値Vccに近づくと、状態NORMが状態ENに遷移し、弱め界磁制御が有効化されるため、d軸電圧指令値Vdの飽和を遅らせることができる。また、q軸電圧指令値Vqが電源電圧値Vccに近づくと、状態NORMが状態ENに遷移し、弱め界磁制御が有効化されるため、q軸電圧指令値Vqの飽和を遅らせることができる。
第2閾値V2は、第1閾値V1より小さい値に設定される。第2閾値V2は、例えば、0.8Vccであるが、これに限られない。d軸電圧指令値Vd及びq軸電圧指令値Vqの大きさが、第1閾値V1より小さい第2閾値V2未満となった場合に、状態ENを状態NORMに遷移させることにより、2つの状態間の往復を抑制することができる。これにより、状態遷移に起因する、トルクや回転数の変動を抑制することができる。
以上のような構成により、閉ループ制御が選択され(sel=1)、弱め界磁制御が有効化されている場合(load=0)、積分部1034は、d軸電圧指令値Vd及びq軸電圧指令値Vqの和が所定値A0と一致する(Vd+Vq=A0)ように、出力値Aを出力する。例えば、所定値A0が0である場合、積分部1034の出力値Aにより、Vd+Vq=0となるように、d軸電圧指令値Vd及びq軸電圧指令値Vqが制御される。
また、このとき、q軸電流指令値iqtは電流値itgtであり(iqt=itgt)、d軸電流指令値idtは電流値itgtのA倍であるため、出力値Aは、q軸電流指令値iqtと、d軸電流指令値idtと、の比に相当する(idt=A×iqt)。
このように、弱め界磁制御が有効である場合、積算部1034は、d軸電圧指令値Vd及びq軸電圧指令値Vqの和が一定となるように、d軸電流指令値idt及びq軸電流指令値iqtの比Aを調整する調整部として機能する。例えば、図21の例では、2500rpm付近でVd+Vq=0となっている。これは、積算部1034により、Vd+Vq=0となるように、出力値Aが約−0.46に制御された結果である(iqt=0.3(A),idt=−0.14(A)=A×iqt)。
以上説明した通り、本実施形態によれば、d軸電圧指令値Vd及びq軸電圧指令値Vqの和が一定となるように、d軸電流指令値idtとq軸電流指令値iqtとの比(出力値)Aを制御することができる。これにより、d軸電圧指令値Vd及びq軸電圧指令値Vqが電源電圧値Vccに到達し、飽和するのを遅らせることができる。言い換えると、閉ループ制御により正常に制御可能な回転速度や負荷の範囲を広げる(上限値を上昇させる)ことができる。また、d軸電流指令値idt及びq軸電流指令値iqtを連動させることができるため、モータ1のトルクの利用効率を向上させることができる。
また、本実施形態によれば、比Aは、モータ定数などの仕様値を用いずに、d軸電圧指令値Vd及びq軸電圧指令値Vqに基づいて算出することができる。これにより、モータ1の製造ばらつきの影響を抑制し、安定した弱め界磁制御を実現することができる。
また、第1選択部103は、加算器や減算器などの基本的な回路素子の組み合わせにより構成できるため、安価に製造することができる。
図24は、本実施形態に係る第1選択部103の一例を示す図である。図24の第1選択部103は、図22の第1選択部103の変形例に相当し、乗算部1035を備えず、積分部1034の出力値Aが選択部1036に直接入力される。図24の他の構成は、図22と同様である。なお、図24の構成は、図22の積分部1035に、電流指令値itgtの代わりに、定数1を入力したものと同様である。
図24の第1選択部103は、閉ループ制御が選択され(sel=1)、弱め界磁制御が有効化されている場合(load=0)、d軸電流指令値idtとして出力値Aを出力する。すなわち、d軸電流指令値idtは、電流指令値itgtに依存しない。したがって、図24の構成により、外乱等により電流指令値itgtが過渡的に変化した場合であっても、当該変化によるd軸電流指令値idtへの影響を抑制し、トルクや回転数の変動を抑制することができる。
なお、本実施形態における弱め界磁制御は、光学エンコーダや磁気エンコーダなどの位置センサを備えるモータ駆動システムにも適用可能である。
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせなど、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。