以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態1.
図1は、実施の形態1に係るモータ制御装置を含むアクチュエータ装置の要部を示すブロック図である。図2は、実施の形態1に係るモータ制御装置における回転状態演算部の要部を示すブロック図である。図3は、実施の形態1に係るモータ制御装置における制御指令演算部の要部を示すブロック図である。図4は、実施の形態1に係るモータ制御装置における電圧指令演算部の要部を示すブロック図である。図1〜図4を参照して、実施の形態1に係るモータ制御装置100及びアクチュエータ装置200について説明する。
図中、1はバルブ装置である。バルブ装置1は、例えば、EGRバルブ、ウェイストゲートバルブ又はVVTにより構成されている。バルブ装置1は、リターンスプリングなどの付勢部材(不図示)を有している。バルブ装置1は、アクチュエータ装置200による駆動トルクが供給されていないとき、付勢部材による付勢トルクにより、所定の開度に保持されるようになっている。より具体的には、開弁状態、閉弁状態又は開弁状態と閉弁状態との中間状態に保持されるようになっている。
アクチュエータ装置200は、バルブ装置1に駆動トルクを供給することにより、バルブ装置1の開度を制御するものである。すなわち、ブラシレスDCモータ2は、ロータ(不図示)及びステータ(不図示)を有している。ステータは、U相に対応する巻線(以下「U相巻線」という。)、V相に対応する巻線(以下「V相巻線」という。)及びW相に対応する巻線(以下「W相巻線」という。)を有している。駆動回路3がU相巻線、V相巻線及びW相巻線の各々に駆動電流を供給することにより、バルブ装置1に対する駆動トルクが発生する。以下、U相巻線、V相巻線及びW相巻線を総称して「三相巻線」又は「電機子巻線」ということがある。
駆動回路3は、いわゆる「インバータ」により構成されている。すなわち、駆動回路3は、U相に対応するスイッチング素子、V相に対応するスイッチング素子及びW相に対応するスイッチング素子を有している。各相に対応するスイッチング素子は、いわゆる「パワー半導体」により構成されている。駆動回路3は、各相に対応するスイッチング素子のオンオフを時間的に切り替えることにより、三相巻線に駆動電流を供給するものである。
ここで、駆動回路3は、U相に対応する電圧指令(以下「U相電圧指令」という。)vu *に応じた電流をU相巻線に供給するようになっている。また、駆動回路3は、V相に対応する電圧指令(以下「V相電圧指令」という。)vv *に応じた電流をV相巻線に供給するようになっている。さらに、駆動回路3は、W相に対応する電圧指令(以下「W相電圧指令」という。)vw *に応じた電流をW相巻線に供給するようになっている。以下、U相電圧指令vu *、V相電圧指令vv *及びW相電圧指令vw *を総称して「3相電圧指令」ということがある。3相電圧指令vu *,vv *,vw *は、例えば、いわゆる「最大トルク制御」を実現するための電圧指令である。
ブラシレスDCモータ2は、ロータ用の位置センサ4を有している。位置センサ4は、例えば、U相に対応するホールIC(Integrated Circuit)、V相に対応するホールIC及びW相に対応するホールICにより構成されている。各相に対応するホールICは、ロータの回転に応じて、連続パルス状の信号(以下「位置パルス信号」という。)を出力するものである。
以下、U相に対応する位置パルス信号を「U相位置パルス信号」ということがあり、V相に対応する位置パルス信号を「V相位置パルス信号」ということがあり、W相に対応する位置パルス信号を「W相位置パルス信号」ということがある。また、U相位置パルス信号における個々のパルスを「U相位置パルス」ということがあり、V相位置パルス信号における個々のパルスを「V相位置パルス」ということがあり、W相位置パルス信号における個々のパルスを「W相位置パルス」ということがある。また、U相位置パルス、V相位置パルス及びW相位置パルスを総称して「位置パルス」ということがある。
各相に対応する位置パルス信号は、ロータが1回転する間に少なくとも1パルスが出力されるものである。例えば、各相に対応する位置パルス信号は、ロータが機械角360度分回転する毎に、ロータが電気角60度分回転する毎に、ロータが電気角30度分回転する毎に、又はロータが電気角15度分回転する毎に1パルスが出力されるものである。すなわち、位置センサ4は、ベクトル制御に用いられる一般的な位置センサ(光学式エンコーダ又はレゾルバなど)に比して低分解能なものである。
エッジ検出部11は、位置パルス信号の入力を受け付けるものである。エッジ検出部11は、当該入力された位置パルス信号における個々のエッジを検出するものである。すなわち、エッジ検出部11は、U相位置パルス信号における個々のアップエッジ、V相位置パルス信号における個々のアップエッジ、及びW相位置パルス信号における個々のアップエッジを検出するものである。または、エッジ検出部11は、U相位置パルス信号における個々のダウンエッジ、V相位置パルス信号における個々のダウンエッジ、及びW相位置パルス信号における個々のダウンエッジを検出するものである。または、エッジ検出部11は、U相位置パルス信号における個々のアップエッジ及び個々のダウンエッジ、V相位置パルス信号における個々のアップエッジ及び個々のダウンエッジ、並びにW相位置パルス信号における個々のアップエッジ及び個々のダウンエッジを検出するものである。
エッジ検出部11は、これらのエッジの検出に応じて、単発パルス状の信号(以下「更新パルス信号」という。)を出力するものである。すなわち、更新パルス信号における個々のパルスは、位置パルス信号における個々のエッジに対応するものである。以下、更新パルス信号における個々のパルスを「更新パルス」ということがある。図5は、U相位置パルス信号、V相位置パルス信号、W相位置パルス信号及び更新パルス信号の例を示している。図5に示す例においては、各相に対応する位置パルスの出力周期が電気角360度であるのに対して、更新パルスの出力周期が電気角60度である。
不定周期位置算出部12は、更新パルス信号の入力を受け付けるものである。不定周期位置算出部12は、当該入力された更新パルス信号の値が1となる度に、ロータの磁極位置(以下単に「位置」ということがある。)θeを算出するものである。ここで、θeは電気角であり、θeの単位はラジアン(rad)である。
すなわち、不定周期位置算出部12には、互いに連続する各2個の更新パルス間の区間における位置θeの変化量dθeの絶対値|dθe|を示す情報が予め記憶されている。不定周期位置算出部12は、U相位置パルス、V相位置パルス及びW相位置パルスの出力順に基づき、ロータの回転方向を判定する。不定周期位置算出部12は、前回の更新パルスの出力時における位置θeに対して、当該記憶されている情報が示す値|dθe|を当該判定の結果に応じて加算又は減算することにより、今回の更新パルスの出力時における位置θeを算出する。不定周期位置算出部12は、次回の更新パルスの出力時における位置θeが算出されるまで、当該算出された位置θe、すなわち今回の更新パルスの出力時における位置θeを出力用に保持する。
不定周期速度算出部13は、更新パルス信号の入力を受け付けるものである。不定周期速度算出部13は、当該入力された更新パルス信号の値が1となる度に、すなわち不定周期位置算出部12が位置θeを算出する度に、当該算出された位置θeを不定周期位置算出部12から取得するものである。不定周期速度算出部13は、位置θeを取得する度に、ロータの速度ωe_aveを算出するものである。ここで、ωe_aveは前回の更新パルスの出力時から今回の更新パルスの出力時までの区間における電気角速度ωeの平均値であり、ωe_aveの単位はラジアン毎秒(rad/s)である。
すなわち、不定周期速度算出部13には、位置センサ4の分解能θe_resを示す情報が予め記憶されている。不定周期速度算出部13は、前回の更新パルスの出力時から今回の更新パルスの出力時までの時間Tωeを算出する。不定周期速度算出部13は、前回の更新パルスの出力時から今回の更新パルスの出力時までの区間における変化量dθeの正負に基づき、以下の式(1)により速度ωe_aveを算出する。なお、当該式(1)におけるsgn(・)は符号関数である。不定周期速度算出部13は、次回の更新パルスの出力時における速度ωe_aveが算出されるまで、当該算出された速度ωe_ave、すなわち今回の更新パルスの出力時における速度ωe_aveを出力用に保持する。
ここで、アクチュエータ装置200が動作しているとき、更新パルスの出力周期はロータの回転速度に応じて変動する。このため、不定周期位置算出部12による位置θeの算出処理及び不定周期速度算出部13による速度ωe_aveの算出処理は、いずれも不定周期に実行されるものである。不定周期位置算出部12が位置θeを不定周期に算出することにより、仮に不定周期位置算出部12が位置θeを定周期に算出する場合に比して、ロータの磁極位置の検出漏れが発生するのを抑制することができる。不定周期速度算出部13が速度ωe_aveを不定周期に算出することにより、仮に不定周期速度算出部13が速度ωe_aveを定周期に算出する場合に比して、前回の更新パルスの出力時から今回の更新パルスの出力時までの区間における電気角速度ωeの平均値、すなわち速度ωe_aveを正確に算出することができる。
エッジ検出部11、不定周期位置算出部12及び不定周期速度算出部13により、回転状態演算部10が構成されている。上記のとおり、回転状態演算部10により実行される処理は、不定周期に実行される処理を含むものである。このため、回転状態演算部10の制御周期は不定である。
電流指令生成部21は、モータ制御装置100に対する上位の電子制御ユニット(以下「ECU」と記載する。)5により生成された位置指令θe_dirをECU5から取得するものである。また、電流指令生成部21は、不定周期位置算出部12により算出された位置θeを不定周期位置算出部12から取得するものである。
電流指令生成部21は、当該取得された位置指令θe_dir及び位置θeに基づき、いわゆる「古典制御」により、位置指令θe_dirに対する位置θeの差分値(以下「位置偏差」という。)δθeを零値に近づけるための電流指令を生成するものである。より具体的には、電流指令生成部21は、PID(Proportional Integral Differential)制御により、q軸における電流指令(以下「q軸電流指令」という。)iq *を生成するものである。
制御指令生成部22は、電流指令生成部21により生成されたq軸電流指令iq *を電流指令生成部21から取得するものである。また、制御指令生成部22は、d軸における電流指令(以下「d軸電流指令」という。)id *を電流指令生成部21から取得するものである。さらに、制御指令生成部22は、不定周期位置算出部12により算出された位置θeを不定周期位置算出部12から取得するものである。
ここで、d軸電流指令id *は所定値に設定されている。例えば、d軸電流指令id *は零値に設定されている。ただし、d軸電流指令id *は零値に限定されるものではなく、正値又は負値であっても良い。また、d軸電流指令id *は固定値であっても良く、又は可変値であっても良い。以下、d軸電流指令id *及びq軸電流指令iq *を総称して「dq軸電流指令」ということがある。
制御指令生成部22は、当該取得されたdq軸電流指令id *,iq *及び位置θeに基づき、電圧指令演算部30に対する制御指令(以下単に「制御指令」という。)を生成するものである。
すなわち、d軸及びq軸による座標系(以下「dq座標系」という。)におけるブラシレスDCモータ2の電圧方程式は、以下の式(2)により与えられる。
ここで、vd *はd軸における電圧指令(以下「d軸電圧指令」という。)であり、vd *の単位はボルト(V)である。vq *はq軸における電圧指令(以下「q軸電圧指令」という。)であり、vq *の単位はボルト(V)である。以下、d軸電圧指令vd *及びq軸電圧指令vq *を総称して「dq軸電圧指令」ということがある。
また、id *はd軸電流指令であり、id *の単位はアンペア(A)である。iq *はq軸電流指令であり、iq *の単位はアンペア(A)である。
また、Raは電機子巻線抵抗であり、Raの単位はオーム(Ω)である。
また、Ldはd軸におけるインダクタンス(以下「d軸インダクタンス」という。)であり、Ldの単位はヘンリー(H)である。Lqはq軸におけるインダクタンス(以下「q軸インダクタンス」という。)であり、Lqの単位はヘンリー(H)である。以下、d軸インダクタンスLd及びq軸インダクタンスLqを総称して「dq軸インダクタンス」ということがある。なお、ブラシレスDCモータ2が表面磁石型である場合、dq軸インダクタンスLd,Lqは互いに同等の値である。
また、ωeは電気角速度であり、ωeの単位はラジアン毎秒(rad/s)である。なお、ωeはθeの時間微分値に対応するものである。
また、φは電機子巻線鎖交磁束数であり、φの単位はボルト秒毎ラジアン(Vs/rad)である。
電機子巻線抵抗Ra、d軸インダクタンスLd、q軸インダクタンスLq及び電機子巻線鎖交磁束数φの各々は、ブラシレスDCモータ2の仕様に応じた定数である。以下、電機子巻線抵抗Ra、d軸インダクタンスLd、q軸インダクタンスLq及び電機子巻線鎖交磁束数φを総称して「モータ定数」ということがある。
d軸電流指令id *が零値に設定されている場合(すなわちid *=0である場合)、上記式(2)を整理することにより、以下の式(3)が得られる。
電気角速度ωeは、以下の式(4)により算出される。
ここで、θe(n−1)は制御指令生成部22により前回取得された位置θeであり、θe(n)は制御指令生成部22により今回取得された位置θeである。すなわち、nは、制御指令生成部22による位置θeの取得に係るサンプル番号である。
また、dTpは制御指令演算部20の制御周期である。すなわち、制御指令演算部20は所定の制御周期dTpを有するものである。この周期dTpは、例えば、4ミリ秒(ms)に設定されている。以下、この周期dTpを「第1周期」ということがある。
以上の内容を踏まえて、制御指令生成部22は、以下のように制御指令を生成する。すなわち、制御指令生成部22には、ブラシレスDCモータ2の仕様を示す情報が予め記憶されている。制御指令生成部22は、当該記憶されている情報が示す仕様に基づき、上記式(3)の計算に用いられるモータ定数Ra,Ld,Lq,φの値を設定する。
また、制御指令生成部22には、第1周期dTpを示す情報が予め記憶されている。制御指令生成部22は、当該記憶されている情報が示す第1周期dTp、今回取得された位置θe(n)及び前回取得された位置θe(n−1)に基づき、上記式(4)により電気角速度ωeを算出する。このとき、制御指令生成部22は、いわゆる「疑似微分器」を用いて電気角速度ωeを算出するものであっても良い。
次いで、制御指令生成部22は、当該設定されたモータ定数Ra,Ld,Lq,φ、当該算出された電気角速度ωe及び今回取得されたdq軸電流指令id *,iq *に基づき、上記式(3)によりdq軸電圧指令vd *,vq *を生成する。
次いで、制御指令生成部22は、当該生成されたdq軸電圧指令vd *,vq *に基づき、以下の式(5)により、dq座標系における電圧ベクトルVr *を算出する。また、制御指令生成部22は、当該生成されたdq軸電圧指令vd *,vq *に基づき、以下の式(6)により、dq座標系における電圧位相θdqを算出する。
図6は、dq軸電圧指令vd *,vq *並びにdq軸電圧指令vd *,vq *に対応する電圧ベクトルVr *及び電圧位相θdqがdq座標系にて極座標表示された状態の例を示す説明図である。なお、図中θは、θdq+θeによる電気角を示している。制御指令生成部22は、当該算出された電圧ベクトルVr *の大きさ及び電圧位相θdqを含む制御指令を生成する。
このように、ブラシレスDCモータ2の電圧方程式を用いることにより、dq軸電圧指令vd *,vq *を生成するにあたり、ブラシレスDCモータ2の駆動電流の検出を不要とすることができるのはもちろんのこと、ブラシレスDCモータ2の駆動電流の推定も不要とすることができる。この結果、ブラシレスDCモータ2の駆動電流について、フィードフォワードによるベクトル制御を実現することができる。
電流指令生成部21及び制御指令生成部22により、制御指令演算部20が構成されている。上記のとおり、制御指令演算部20は所定の制御周期dTpを有するものである。すなわち、電流指令生成部21が位置指令θe_dir及び位置θeを取得する処理、電流指令生成部21がq軸電流指令iq *を生成する処理、制御指令生成部22がdq軸電流指令id *,iq *及び位置θeを取得する処理、並びに制御指令生成部22が制御指令を生成する処理などは、第1周期dTp毎に実行されるものである。
補正位置算出部31は、制御指令生成部22により生成された制御指令を制御指令生成部22から取得するものである。また、補正位置算出部31は、不定周期位置算出部12により算出された位置θeを不定周期位置算出部12から取得するとともに、不定周期速度算出部13により算出された速度ωe_aveを不定周期速度算出部13から取得するものである。さらに、補正位置算出部31は、更新パルス信号の入力を受け付けるものである。
補正位置算出部31は、当該取得された制御指令に含まれる電圧位相θdq、当該取得された位置θe及び速度ωe_ave、並びに当該入力された更新パルス信号の値に基づき、以下の式(7)による計算及び以下の式(8)による計算を実行するものである。
ここで、dTcは電圧指令演算部30の制御周期である。すなわち、電圧指令演算部30は所定の制御周期dTcを有するものである。上記式(7)による計算及び上記式(8)による計算は、この周期dTc毎に実行されるものである。この周期dTcは、例えば、0.5ミリ秒(ms)に設定されている。以下、この周期dTcを「第2周期」ということがある。第2周期dTcは、第1周期dTp(例えば4ms)に比して短いものである。また、第2周期dTcは、更新パルスの出力周期に比して短くなり得るものである。
また、iは、個々の第1周期dTp内にて、第2周期dTcが経過する度に1が加算される(すなわちインクリメントされる)変数であり、かつ、更新パルス信号の値が1となる度に(すなわち更新パルスが出力される度に)零値にリセットされる変数である。例えば、第1周期dTpが4msに設定されており、かつ、第2周期dTcが0.5msに設定されている場合、変数iは0以上7以下の整数値を取り得るものである。また、Δθdqの上限値及び下限値は、位置パルス信号の仕様に応じた値である。例えば、更新パルスの出力周期が電気角60度である場合(図5参照)、Δθdqの上限値は+π/3radであり、Δθdqの下限値は−π/3radである。
変数iのインクリメントの要否の判定には、例えば、SR(Set Reset)フリップフロップが用いられる。すなわち、当該SRフリップフロップには、更新パルス信号と、第2周期dTcに対応する連続パルス状の信号とが入力される。補正位置算出部31は、個々の第2周期dTcにおいて、当該SRフリップフロップの出力値に基づき、変数iのインクリメントの要否を判定する。
また、変数iのインクリメントの要否の判定は、位置θe及び速度ωe_aveの取得の要否の判定でもある。補正位置算出部31は、更新パルスが出力される度に、すなわち変数iがインクリメントされる度に、位置θe及び速度ωe_aveを取得する。補正位置算出部31は、次回の更新パルスが出力されるまで、当該取得された速度ωe_aveを上記式(7)による計算用に保持するともに、当該取得された位置θeを上記式(8)による計算用に保持する。
すなわち、上記式(8)による計算は、個々の第1周期dTp内にて、電圧位相θdqに対応する電気角θ(図6参照)の値を第2周期dTc毎に時間的に補間することにより、複数個の位置(以下「補正位置」ということがある。)θe *を順次算出するものである。また、上記式(7)による計算は、当該補間に用いられる値(以下「補間値」という。)Δθdqを第2周期dTc毎に算出するものである。当該補間は位置θe及び補間値Δθdqに基づくものであり、補間値Δθdqは速度ωe_aveに基づくものである。当該複数個の補正位置θe *の各々は、3相電圧指令vu *,vv *,vw *の生成に用いられるものである。
当該補間により、位置センサ4が低分解能であるにもかかわらず、3相電圧指令vu *,vv *,vw *の生成に用いられる位置θe *をソフトウェア的に高分解能にすることができる。この結果、モータ制御装置100によるベクトル制御の精度の向上を図ることができる。また、この位置θe *を高分解能にしつつ、モータ制御装置100のうちの電圧指令演算部30を除く部位の制御周期(例えば制御指令演算部20の制御周期dTp)を電圧指令演算部30の制御周期dTcに比して長くすることができる。この結果、モータ制御装置100における演算負荷を低減することができる。
電圧指令生成部32は、補正位置算出部31により算出された個々の補正位置θe *を補正位置算出部31から取得するものである。また、電圧指令生成部32は、制御指令生成部22により生成された制御指令を制御指令生成部22から取得するものである。電圧指令生成部32は、当該取得された個々の補正位置θe *、及び当該取得された制御指令に含まれる電圧ベクトルVr *の大きさに基づき、以下の式(9)により3相電圧指令vu *,vv *,vw *を生成するものである。
ここで、vu_normal *及びvv_normal *の各々は、片振幅の最大値が1に正規化された電圧指令(以下「正規化電圧指令」という。)である。電圧指令生成部32には、電気角0〜2πラジアン(rad)の角度範囲に亘る、補正位置θe *の値と正規化電圧指令vu_normal *,vv_normal *の値との対応関係を示すテーブルが予め記憶されている。電圧指令生成部32は、当該記憶されているテーブルに基づき、補正位置算出部31により算出された個々の補正位置θe *の値に応じて、上記式(9)の計算に用いられる正規化電圧指令vu_normal *,vv_normal *の値を設定する。図7は、補正位置θe *の値と正規化電圧指令vu_normal *,vv_normal *の値との対応関係の例を示している。
電圧指令生成部32は、当該生成された3相電圧指令vu *,vv *,vw *を駆動回路3に出力するものである。駆動回路3は、上記のとおり、3相電圧指令vu *,vv *,vw *に応じた電流を三相巻線に供給するものである。
補正位置算出部31及び電圧指令生成部32により、電圧指令演算部30が構成されている。上記のとおり、制御指令演算部20は所定の制御周期dTcを有するものである。すなわち、補正位置算出部31が上記式(7)により補間値Δθdqを算出する処理、補正位置算出部31が上記式(8)により補正位置θe *を算出する処理、及び電圧指令生成部32が上記式(9)により3相電圧指令vu *,vv *,vw *を生成する処理などは、第2周期dTc毎に実行されるものである。
回転状態演算部10、制御指令演算部20及び電圧指令演算部30により、モータ制御装置100の要部が構成されている。ブラシレスDCモータ2、駆動回路3、位置センサ4及びモータ制御装置100により、アクチュエータ装置200の要部が構成されている。
次に、図8を参照して、モータ制御装置100の要部のハードウェア構成について説明する。
図8Aに示す如く、モータ制御装置100はプロセッサ41及びメモリ42を有している。メモリ42には、回転状態演算部10、制御指令演算部20及び電圧指令演算部30の機能を実現するためのプログラムが記憶されている。メモリ42に記憶されているプログラムをプロセッサ41が読み出して実行することにより、回転状態演算部10、制御指令演算部20及び電圧指令演算部30の機能が実現される。
または、図8Bに示す如く、モータ制御装置100は処理回路43を有している。この場合、回転状態演算部10、制御指令演算部20及び電圧指令演算部30の機能が専用の処理回路43により実現される。
または、モータ制御装置100はプロセッサ41、メモリ42及び処理回路43を有している(不図示)。この場合、回転状態演算部10、制御指令演算部20及び電圧指令演算部30の機能のうちの一部の機能がプロセッサ41及びメモリ42により実現されて、残余の機能が専用の処理回路43により実現される。
プロセッサ41は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、マイクロプロセッサ、マイクロコントローラ又はDSP(Digital Signal Processor)のうちの少なくとも一つを用いたものである。
メモリ42は、例えば、半導体メモリ又は磁気ディスクのうちの少なくとも一方を用いたものである。より具体的には、メモリ42は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、SSD(Solid State Drive)又はHDD(Hard Disk Drive)のうちの少なくとも一つを用いたものである。
処理回路43は、例えば、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field−Programmable Gate Array)、SoC(System−on−a−Chip)又はシステムLSI(Large−Scale Integration)のうちの少なくとも一つを用いたものである。
次に、図9のフローチャートを参照して、モータ制御装置100の動作について、制御指令演算部20及び電圧指令演算部30の動作を中心に説明する。
なお、図9に示す処理のバックグラウンドにて、回転状態演算部10による各処理が実行されている。すなわち、エッジ検出部11による更新パルス信号の出力処理が連続的に実行されており、かつ、不定周期位置算出部12による位置θeの算出処理が不定周期に実行されており、かつ、不定周期速度算出部13による速度ωe_aveの算出処理が不定周期に実行されている。
図9Aは、個々の第1周期dTp(例えば4ms)における電流指令生成部21の動作を示している。まず、ステップST1にて、電流指令生成部21は、ECU5により生成された位置指令θe_dirをECU5から取得するとともに、不定周期位置算出部12により算出された位置θeを不定周期位置算出部12から取得する。次いで、ステップST2にて、電流指令生成部21は、当該取得された位置指令θe_dir及び位置θeに基づき、古典制御(例えばPID制御)により、位置偏差δθeを零値に近づけるためのq軸電流指令iq *を生成する。
図9Bは、個々の第1周期dTp(例えば4ms)における制御指令生成部22の動作を示している。まず、ステップST11にて、制御指令生成部22は、電流指令生成部21により生成されたq軸電流指令iq *(すなわちステップST2にて生成されたq軸電流指令iq *)を電流指令生成部21から取得するとともに、所定値(例えば零値)のd軸電流指令id *を電流指令生成部21から取得する。また、ステップST11にて、制御指令生成部22は、不定周期位置算出部12により算出された位置θeを不定周期位置算出部12から取得する。また、ステップST12にて、制御指令生成部22は、上記式(3)の計算に用いられるモータ定数Ra,Ld,Lq,φの値を設定する。
次いで、制御指令生成部22は、当該取得されたdq軸電流指令id *,iq *、当該取得された位置θe(より具体的には前回のステップST11にて取得された位置θe(n−1)及び今回のステップST11にて取得された位置θe(n))、並びに当該設定されたモータ定数Ra,Ld,Lq,φに基づき、制御指令を生成する。
すなわち、制御指令生成部22は、上記式(4)により電気角速度ωeを算出する(ステップST13)。次いで、制御指令生成部22は、上記式(3)によりdq軸電圧指令vd *,vq *を生成する(ステップST14)。次いで、制御指令生成部22は、上記式(5)により電圧ベクトルVr *を算出するとともに、上記式(6)により電圧位相θdqを算出する(ステップST15)。次いで、制御指令生成部22は、当該算出された電圧ベクトルVr *の大きさ及び電圧位相θdqを含む制御指令を生成する(ステップST16)。
図9Cは、個々の第1周期dTp(例えば4ms)における補正位置算出部31の動作を示している。まず、ステップST21にて、補正位置算出部31は、制御指令生成部22により生成された制御指令(すなわちステップST16にて生成された制御指令)を制御指令生成部22から取得する。次いで、補正位置算出部31は、以下のステップST22〜ST24の処理を第2周期dTc(例えば0.5ms)毎に繰り返し実行する。
すなわち、補正位置算出部31は、更新パルス信号の値が1となった場合(すなわち更新パルスの出力があった場合)、不定周期位置算出部12により算出された位置θeを不定周期位置算出部12から取得するとともに、不定周期速度算出部13により算出された速度ωe_aveを不定周期速度算出部13から取得する(ステップST22)。なお、更新パルス信号の値が0のままである場合(すなわち更新パルスの出力がなかった場合)、ステップST22の処理はスキップされる。
次いで、補正位置算出部31は、上記式(7)により補間値Δθdqを算出する(ステップST23)。当該式(7)の計算に用いられる速度ωe_aveは、今回の第2周期dTcにおけるステップST22にて取得された速度ωe_ave、又は前回以前の第2周期dTcにおけるステップST22にて取得されて計算用に保持されている速度ωe_aveである。
次いで、補正位置算出部31は、上記式(8)により補正位置θe *を算出する(ステップST24)。当該式(8)の計算に用いられる電圧位相θdqは、ステップST21にて取得された制御指令に含まれるものである。当該式(8)の計算に用いられる位置θeは、今回の第2周期dTcにおけるステップST22にて取得された位置θe、又は前回以前の第2周期dTcにおけるステップST22にて取得されて計算用に保持されている位置θeである。
図9Dは、個々の第1周期dTp(例えば4ms)における電圧指令生成部32の動作を示している。まず、ステップST31にて、電圧指令生成部32は、制御指令生成部22により生成された制御指令(すなわちステップST16にて生成された制御指令)を制御指令生成部22から取得する。次いで、電圧指令生成部32は、以下のステップST32〜ST34の処理を第2周期dTc(例えば0.5ms)毎に繰り返し実行する。
すなわち、電圧指令生成部32は、補正位置算出部31により算出された補正位置θe *(すなわち今回の第2周期dTcにおけるステップST24にて生成された補正位置θe *)を補正位置算出部31から取得する(ステップST32)。次いで、電圧指令生成部32は、予め記憶されているテーブルに基づき、当該取得された補正位置θe *の値に応じて、上記式(9)の計算に用いられる正規化電圧指令vu_normal *,vv_normal *の値を設定する(ステップST33)。次いで、電圧指令生成部32は、当該式(9)により3相電圧指令vu *,vv *,vw *を生成する(ステップST34)。当該式(9)の計算に用いられる電圧ベクトルVr *の大きさは、ステップST31にて取得された制御指令に含まれるものである。
なお、第1周期dTpは第2周期dTcに比して長い周期であれば良く、4ミリ秒に限定されるものではない。例えば、第1周期dTpは2ミリ秒に設定されているものであっても良い。また、第2周期dTcは第1周期dTpに比して短い周期であれば良く、0.5ミリ秒に限定されるものではない。
また、アクチュエータ装置200の用途は、車載用のバルブ装置1の開度制御に限定されるものではない。アクチュエータ装置200は、従来のアクチュエータ装置と同様の種々の用途に用いることができる。
また、モータ制御装置100の用途は、アクチュエータ装置200におけるブラシレスDCモータ2の制御に限定されるものではない。ブラシレスDCモータ2は、従来のブラシレスDCモータと同様の種々の装置に用いることができる。モータ制御装置100は、当該種々の装置におけるブラシレスDCモータ2の制御に用いることができる。例えば、モータ制御装置100は、いわゆる「回転数制御」に用いられるものであっても良い。または、例えば、モータ制御装置100は、フィードバックによらずにdq軸電流指令id *,iq *を一定にする制御に用いられるものであっても良い。または、例えば、モータ制御装置100は、ブラシレスDCモータ2を連続回転させる制御に用いられるものであっても良い。
ただし、車載用のバルブ装置1の開度制御においては、アクチュエータ装置200を安価に実現する観点から、低分解能な位置センサ4を用いることが要求される。また、制御周期の長い(すなわち処理速度の低い)プロセッサ41又は処理回路43を用いることが要求される。これに対して、実施の形態1に係るモータ制御装置100は、低分解能な位置センサ4を用いてベクトル制御の精度の向上を図ることができ、かつ、電圧指令演算部30を除く部位の制御周期を長くすることができる。このため、車載用のバルブ装置1の開度制御においては、実施の形態1に係るモータ制御装置100及びアクチュエータ装置200を用いるのが特に好適である。
また、制御指令演算部20は、アクチュエータ装置200内にてモータ制御装置100外に設けられているものであっても良い。すなわち、回転状態演算部10及び電圧指令演算部30によりモータ制御装置100の要部が構成されているものであっても良い。
以上のように、実施の形態1に係るモータ制御装置100は、ロータ用の位置センサ4を有するブラシレスDCモータ2に対する駆動電流を電流センサレス方式のベクトル制御により制御するモータ制御装置100であって、位置センサ4の出力に対応する位置パルス信号を用いてロータの位置θe及びロータの速度ωe_aveを算出する回転状態演算部10と、電気角θの値を速度ωe_aveに基づき時間的に補間することにより複数個の補正位置θe *を順次算出するとともに、個々の補正位置θe *に基づきブラシレスDCモータ2用の駆動回路3に対する3相電圧指令vu *,vv *,vw *を生成する電圧指令演算部30と、を備える。当該補間により、位置センサ4が低分解能であっても、3相電圧指令vu *,vv *,vw *の生成に用いられる位置θe *をソフトウェア的に高分解能にすることができる。この結果、低分解能な位置センサ4を用いて、モータ制御装置100によるベクトル制御の精度の向上を図ることができる。また、この位置θe *を高分解能にしつつ、モータ制御装置100のうちの電圧指令演算部30を除く部位の制御周期(例えば制御指令演算部20の制御周期dTp)を電圧指令演算部30の制御周期dTcに比して長くすることができる。この結果、モータ制御装置100における演算負荷を低減することができる。
また、回転状態演算部10は、位置パルス信号におけるエッジを検出して、エッジに対応する更新パルスを含む更新パルス信号を出力するエッジ検出部11と、更新パルスの出力に応じて不定周期に位置θeを算出する不定周期位置算出部12と、更新パルスの出力に応じて不定周期に速度ωe_aveを算出する不定周期速度算出部13と、を有する。不定周期位置算出部12が位置θeを不定周期に算出することにより、ロータの磁極位置の検出漏れが発生するのを抑制することができる。不定周期速度算出部13が速度ωe_aveを不定周期に算出することにより、前回の更新パルスの出力時から今回の更新パルスの出力時までの区間における電気角速度ωeの平均値、すなわち速度ωe_aveを正確に算出することができる。
また、位置パルス信号は、ロータが1回転する間に少なくとも1パルスが出力されるものである。かかる低分解能な位置センサ4を用いることにより、アクチュエータ装置200を安価に実現することができる。
また、モータ制御装置100は、位置指令θe_dirに対する位置θeの差分値(位置偏差δθe)に応じた電圧位相θdqを含む制御指令を生成する制御指令演算部20を備え、電圧指令演算部30は、電圧位相θdqに対応する電気角θの値を位置θe及び速度ωe_aveに基づき時間的に補間することにより複数個の補正位置θe *を順次算出する。これにより、位置偏差δθeに応じたベクトル制御を実現することができる。
また、位置指令θe_dirは、モータ制御装置100に対する上位の電子制御ユニット(ECU5)により出力されるものであり、制御指令演算部20は、差分値(位置偏差δθe)に応じたq軸電流指令iq *を生成する電流指令生成部21と、q軸電流指令iq *を含むdq軸電流指令id *,iq *に応じた制御指令を生成する制御指令生成部22と、を有する。ECU5により出力された位置指令θe_dirを用いることにより、最大トルク制御などの任意の制御を実現することができる。
また、制御指令生成部22は、ブラシレスDCモータ2の電圧方程式を用いて制御指令を生成する。ブラシレスDCモータ2の電圧方程式を用いることにより、ブラシレスDCモータ2の駆動電流について、フィードフォワードによるベクトル制御を実現することができる。
また、制御指令は、差分値(位置偏差δθe)に応じた電圧ベクトルVr *の大きさを含むものであり、電圧指令演算部30は、複数個の補正位置θe *を順次算出する補正位置算出部31と、電圧ベクトルVr *の大きさ及び個々の補正位置θe *に基づき3相電圧指令vu *,vv *,vw *を生成する電圧指令生成部32と、を有する。電圧ベクトルVr *の大きさ及び電圧位相θdqを含む制御指令を用いることにより、電圧指令演算部30による上記式(7)の計算、上記式(8)の計算及び上記式(9)の計算を実現することができる。
また、実施の形態1に係るアクチュエータ装置200は、モータ制御装置100と、ブラシレスDCモータ2と、駆動回路3と、位置センサ4を、を備える。これにより、モータ制御装置100を用いたアクチュエータ装置200を実現することができる。
また、アクチュエータ装置200は、車載用のバルブ装置1の開度制御に用いられるものである。上記のとおり、車載用のバルブ装置1の開度制御においては、モータ制御装置100及びアクチュエータ装置200を用いるのが特に好適である。
また、実施の形態1に係るモータ制御方法は、ロータ用の位置センサ4を有するブラシレスDCモータ2に対する駆動電流を電流センサレス方式のベクトル制御により制御するモータ制御方法であって、回転状態演算部10が、位置センサ4の出力に対応する位置パルス信号を用いて、ロータの位置θe及びロータの速度ωe_aveを算出し、電圧指令演算部30が、電気角θの値を速度ωe_aveに基づき時間的に補間することにより複数個の補正位置θe *を順次算出するとともに、個々の補正位置θe *に基づきブラシレスDCモータ2用の駆動回路3に対する3相電圧指令vu *,vv *,vw *を生成する。これにより、モータ制御装置100による上記効果と同様の効果を得ることができる。
実施の形態2.
図10は、実施の形態2に係るモータ制御装置を含むアクチュエータ装置の要部を示すブロック図である。図11は、実施の形態2に係るモータ制御装置における制御指令演算部の要部を示すブロック図である。図10及び図11を参照して、実施の形態2に係るモータ制御装置100a及びアクチュエータ装置200aについて説明する。なお、図10において、図1に示すブロックと同様のブロックには同一符号を付して説明を省略する。また、図11において、図3に示すブロックと同様のブロックには同一符号を付して説明を省略する。
実施の形態2に係るモータ制御装置100aは、実施の形態1に係るモータ制御装置100に対して、dq軸電圧指令vd *,vq *の生成に用いられる電圧方程式が異なるものである。すなわち、モータ制御装置100における制御指令生成部22は、上記式(2)に示す電圧方程式をdq軸電圧指令vd *,vq *の生成に用いるものであった。これに対して、モータ制御装置100aにおける制御指令生成部22aは、以下の式(10)に示す電圧方程式をdq軸電圧指令vd *,vq *の生成に用いるものである。
ここで、Tcは、dq座標系における電流応答時定数である。すなわち、上記式(10)に示す電圧方程式は、上記式(2)に示す電圧方程式に対して、「1/(1+Tcs)」によるフィルタが追加されたものである。電流応答時定数Tcの値を設定することにより、ブラシレスDCモータ2の駆動電流の制御において、任意の時間応答を実現することができる。
電流指令生成部21及び制御指令生成部22aにより、制御指令演算部20aが構成されている。回転状態演算部10、制御指令演算部20a及び電圧指令演算部30により、モータ制御装置100aの要部が構成されている。ブラシレスDCモータ2、駆動回路3、位置センサ4及びモータ制御装置100aにより、アクチュエータ装置200aの要部が構成されている。
モータ制御装置100aの要部のハードウェア構成は、実施の形態1にて図8を参照して説明したものと同様であるため、図示及び説明を省略する。すなわち、回転状態演算部10、制御指令演算部20a及び電圧指令演算部30の各々の機能は、プロセッサ41及びメモリ42により実現されるものであっても良く、又は専用の処理回路43により実現されるものであっても良い。
次に、図12のフローチャートを参照して、モータ制御装置100aの動作について、制御指令生成部22aの動作を中心に説明する。
なお、電流指令生成部21の動作は、実施の形態1にて図9Aを参照して説明したものと同様であるため、図示及び説明を省略する。補正位置算出部31の動作は、実施の形態1にて図9Cを参照して説明したものと同様であるため、図示及び説明を省略する。電圧指令生成部32の動作は、実施の形態1にて図9Dを参照して説明したものと同様であるため、図示及び説明を省略する。
図12は、個々の第1周期dTp(例えば4ms)における制御指令生成部22aの動作を示している。まず、ステップST11にて、制御指令生成部22aは、電流指令生成部21により生成されたq軸電流指令iq *を電流指令生成部21から取得するとともに、所定値(例えば零値)のd軸電流指令id *を電流指令生成部21から取得する。また、ステップST11にて、制御指令生成部22aは、不定周期位置算出部12により算出された位置θeを不定周期位置算出部12から取得する。また、ステップST12aにて、制御指令生成部22aは、上記式(10)の計算に用いられるモータ定数Ra,Ld,Lq,φの値を設定するとともに、上記式(10)の計算に用いられる電流応答時定数Tcの値を設定する。
次いで、制御指令生成部22aは、当該取得されたdq軸電流指令id *,iq *、当該取得された位置θe(より具体的には前回のステップST11にて取得された位置θe(n−1)及び今回のステップST11にて取得された位置θe(n))、当該設定されたモータ定数Ra,Ld,Lq,φ、並びに当該設定された電流応答時定数Tcに基づき、制御指令を生成する。
すなわち、制御指令生成部22aは、上記式(4)により電気角速度ωeを算出する(ステップST13)。次いで、制御指令生成部22aは、上記式(10)によりdq軸電圧指令vd *,vq *を生成する(ステップST14a)。次いで、制御指令生成部22aは、上記式(5)により電圧ベクトルVr *を算出するとともに、上記式(6)により電圧位相θdqを算出する(ステップST15)。次いで、制御指令生成部22aは、当該算出された電圧ベクトルVr *の大きさ及び電圧位相θdqを含む制御指令を生成する(ステップST16)。
なお、モータ制御装置100aは、実施の形態1にて説明したものと同様の種々の変形例、すなわちモータ制御装置100と同様の種々の変形例を採用することができる。
以上のように、実施の形態2に係るモータ制御装置100aにおいて、電圧方程式は、電流応答時定数Tcに応じたフィルタを含むものである。電流応答時定数Tcの値を設定することにより、ブラシレスDCモータ2の駆動電流の制御において、任意の時間応答を実現することができる。
実施の形態3.
図13は、実施の形態3に係るモータ制御装置を含むアクチュエータ装置の要部を示すブロック図である。図14は、実施の形態3に係るモータ制御装置における制御指令演算部の要部を示すブロック図である。図13及び図14を参照して、実施の形態3に係るモータ制御装置100b及びアクチュエータ装置200bについて説明する。なお、図13において、図1に示すブロックと同様のブロックには同一符号を付して説明を省略する。また、図14において、図3に示すブロックと同様のブロックには同一符号を付して説明を省略する。
図13に示す如く、ブラシレスDCモータ2に温度センサ6が設けられている。温度センサ6は、ブラシレスDCモータ2における電機子巻線の温度Tempを検出するものである。
制御指令生成部22bは、実施の形態1に係るモータ制御装置100における制御指令生成部22と同様に、dq軸電流指令id *,iq *及び位置θeを取得するものである。これに加えて、制御指令生成部22bは、温度センサ6により検出された温度Tempを温度センサ6から取得するものである。制御指令生成部22bは、上記式(2)に示す電圧方程式に代えて、以下の式(11)に示す電圧方程式をdq軸電圧指令vd *,vq *の生成に用いるものである。
すなわち、上記式(11)に示す電圧方程式においては、電機子巻線抵抗Ra、d軸インダクタンスLd、q軸インダクタンスLq及び電機子巻線鎖交磁束数φの各々が温度Tempの関数である。そこで、制御指令生成部22bは、以下のように、上記式(11)の計算に用いられるモータ定数Ra,Ld,Lq,φの値を設定する。
制御指令生成部22bには、温度Tempの値と電機子巻線抵抗Raの値との対応関係を示すマップ、すなわち関数Ra(Temp)を示すマップが予め記憶されている。制御指令生成部22bは、当該記憶されているマップに基づき、温度センサ6により検出された温度Tempの値に応じて、上記式(11)の計算に用いられるモータ定数Raの値を設定する。
同様に、制御指令生成部22bには、温度Tempの値とd軸インダクタンスLdの値との対応関係を示すマップ、すなわち関数Ld(Temp)を示すマップが予め記憶されている。制御指令生成部22bは、当該記憶されているマップに基づき、温度センサ6により検出された温度Tempの値に応じて、上記式(11)の計算に用いられるモータ定数Ldの値を設定する。
同様に、制御指令生成部22bには、温度Tempの値とq軸インダクタンスLqの値との対応関係を示すマップ、すなわち関数Lq(Temp)を示すマップが予め記憶されている。制御指令生成部22bは、当該記憶されているマップに基づき、温度センサ6により検出された温度Tempの値に応じて、上記式(11)の計算に用いられるモータ定数Lqの値を設定する。
同様に、制御指令生成部22bには、温度Tempの値と電機子巻線鎖交磁束数φの値との対応関係を示すマップ、すなわち関数φ(Temp)を示すマップが予め記憶されている。制御指令生成部22bは、当該記憶されているマップに基づき、温度センサ6により検出された温度Tempの値に応じて、上記式(11)の計算に用いられるモータ定数φの値を設定する。
電流指令生成部21及び制御指令生成部22bにより、制御指令演算部20bが構成されている。回転状態演算部10、制御指令演算部20b及び電圧指令演算部30により、モータ制御装置100bの要部が構成されている。ブラシレスDCモータ2、駆動回路3、位置センサ4、温度センサ6及びモータ制御装置100bにより、アクチュエータ装置200bの要部が構成されている。
モータ制御装置100bの要部のハードウェア構成は、実施の形態1にて図8を参照して説明したものと同様であるため、図示及び説明を省略する。すなわち、回転状態演算部10、制御指令演算部20b及び電圧指令演算部30の各々の機能は、プロセッサ41及びメモリ42により実現されるものであっても良く、又は専用の処理回路43により実現されるものであっても良い。
次に、図15のフローチャートを参照して、モータ制御装置100bの動作について、制御指令生成部22bの動作を中心に説明する。
なお、電流指令生成部21の動作は、実施の形態1にて図9Aを参照して説明したものと同様であるため、図示及び説明を省略する。補正位置算出部31の動作は、実施の形態1にて図9Cを参照して説明したものと同様であるため、図示及び説明を省略する。電圧指令生成部32の動作は、実施の形態1にて図9Dを参照して説明したものと同様であるため、図示及び説明を省略する。
図15は、個々の第1周期dTp(例えば4ms)における制御指令生成部22bの動作を示している。まず、ステップST11bにて、制御指令生成部22bは、電流指令生成部21により生成されたq軸電流指令iq *を電流指令生成部21から取得するとともに、所定値(例えば零値)のd軸電流指令id *を電流指令生成部21から取得する。また、ステップST11bにて、制御指令生成部22bは、不定周期位置算出部12により算出された位置θeを不定周期位置算出部12から取得する。さらに、ステップST11bにて、制御指令生成部22bは、温度センサ6により検出された温度Tempを温度センサ6から取得する。
次いで、ステップST12bにて、制御指令生成部22bは、当該取得された温度Tempの値に応じて、上記式(11)の計算に用いられるモータ定数Ra,Ld,Lq,φの値を設定する。
次いで、制御指令生成部22bは、当該取得されたdq軸電流指令id *,iq *、当該取得された位置θe(より具体的には前回のステップST11bにて取得された位置θe(n−1)及び今回のステップST11bにて取得された位置θe(n))、並びに当該設定されたモータ定数Ra,Ld,Lq,φに基づき、制御指令を生成する。
すなわち、制御指令生成部22bは、上記式(4)により電気角速度ωeを算出する(ステップST13)。次いで、制御指令生成部22bは、上記式(11)によりdq軸電圧指令vd *,vq *を生成する(ステップST14b)。次いで、制御指令生成部22bは、上記式(5)により電圧ベクトルVr *を算出するとともに、上記式(6)により電圧位相θdqを算出する(ステップST15)。次いで、制御指令生成部22bは、当該算出された電圧ベクトルVr *の大きさ電圧位相θdqを含む制御指令を生成する(ステップST16)。
なお、図16に示す如く、ブラシレスDCモータ2に代えて駆動回路3に温度センサ6が設けられているものであっても良い。この場合、温度センサ6は、駆動回路3におけるパワー半導体の温度Temp、すなわち3相に対応するスイッチング素子の温度Tempを検出するものであっても良い。
また、図17に示す如く、ブラシレスDCモータ2に代えてバルブ装置1に温度センサ6が設けられているものであっても良い。この場合、温度センサ6は、バルブ装置1における流路内の温度Tempを検出するものであっても良い。
また、バルブ装置1、ブラシレスDCモータ2又は駆動回路3のうちのいずれか二つ以上の各々に温度センサ6が設けられているものであっても良い(不図示)。この場合、制御指令生成部22bは、これらの温度センサ6により検出された温度Tempに基づき、バルブ装置1の使用環境温度、すなわちアクチュエータ装置200bの使用環境温度を推定するものであっても良い。制御指令生成部22bは、当該推定された温度の値に応じて、モータ定数Ra,Ld,Lq,φの値を設定するものであっても良い。
また、制御指令生成部22bは、実施の形態2に係るモータ制御装置100aにおける制御指令生成部22aと同様の処理を実行するものであっても良い。すなわち、制御指令生成部22bは、電流応答時定数Tcの値を設定するものであっても良い。制御指令生成部22bは、上記式(11)に示す電圧方程式に代えて、以下の式(12)に示す電圧方程式をdq軸電圧指令vd *,vq *の生成に用いるものであっても良い。当該式(12)に示す電圧方程式は、上記式(11)に示す電圧方程式に対して、「1/(1+Tcs)」によるフィルタが追加されたものである。
また、モータ制御装置100bは、実施の形態1にて説明したものと同様の種々の変形例、すなわちモータ制御装置100と同様の種々の変形例を採用することができる。
以上のように、実施の形態3に係るモータ制御装置100bにおいては、ブラシレスDCモータ2に温度センサ6が設けられており、制御指令生成部22bは、温度センサ6により検出された温度Tempの値に応じて電圧方程式におけるモータ定数Ra,Ld,Lq,φの値を設定する。これにより、ブラシレスDCモータ2の駆動電流の制御において、アクチュエータ装置200の使用環境温度、すなわちバルブ装置1の使用環境温度による電流応答のばらつきが発生するのを抑制することができる。
参考例1.
図18は、参考例1に係るモータ制御装置を含むアクチュエータ装置の要部を示すブロック図である。図19は、参考例1に係るモータ制御装置における回転状態演算部の要部を示すブロック図である。図20は、参考例1に係るモータ制御装置における制御指令演算部の要部を示すブロック図である。図21は、参考例1に係るモータ制御装置における電圧指令演算部の要部を示すブロック図である。図18〜図21を参照して、参考例1に係るモータ制御装置100c及びアクチュエータ装置200cについて説明する。なお、図18〜図21において、図1〜図4に示すブロックと同様のブロックには同一符号を付して説明を省略する。
図19に示す如く、回転状態演算部10cはエッジ検出部11及び不定周期位置算出部12を有するものである。すなわち、回転状態演算部10cは不定周期速度算出部13を有しないものである。これにより、回転状態演算部10cにおける演算負荷を低減することができる。
制御指令生成部22cは、電流指令生成部21により生成されたq軸電流指令iq *を電流指令生成部21から取得するとともに、所定値(例えば零値)のd軸電流指令id *を電流指令生成部21から取得するものである。制御指令生成部22cは、モータ定数Ra,Lqの値を設定するとともに、電流応答時定数Tcの値を設定するものである。
制御指令生成部22cは、当該取得されたdq軸電流指令id *,iq *、当該設定されたモータ定数Ra,Lq、及び当該設定された電流応答時定数Tcに基づき、以下の式(13)によりvd_dummy *及びvq_dummy *を算出するものである。すなわち、制御指令生成部22cは、上記式(10)に示す電圧方程式のうちの速度ωe_aveを含まない項のみを計算することにより、vd_dummy *及びvq_dummy *を算出するものである。なお、当該式(13)は、id *=0の場合における式である。また、当該式(13)は、ブラシレスDCモータ2における突極性が小さい場合、すなわちLq≒Ldの場合を想定した式である。
制御指令生成部22cは、当該算出されたvd_dummy *及びvq_dummy *を含む制御指令を生成するものである。
電圧指令生成部32cは、不定周期位置算出部12により算出された位置θeを不定周期位置算出部12から取得するものである。電圧指令生成部32cは、当該取得された位置θeに基づき、以下の式(14)により、ロータの速度ωeを算出するものである。ここで、ωeは電気角速度であり、ωeの単位はラジアン毎秒(rad/s)である。
ここで、θe(n−1)は電圧指令生成部32cにより前回取得された位置θeであり、θe(n)は電圧指令生成部32cにより今回取得された位置θeである。すなわち、nは、電圧指令生成部32cによる位置θeの取得に係るサンプル番号である。また、dTcは電圧指令演算部30cの制御周期(例えば0.5秒)である。
すなわち、上記式(14)による計算は、ロータの位置θeを第2周期dTc毎に時間微分することにより、ロータの速度ωeを算出するものである。なお、電圧指令生成部32cは、当該式(14)の計算に疑似微分器を用いるものであっても良い。
また、電圧指令生成部32cは、制御指令生成部22cにより生成された制御指令を制御指令生成部22cから取得するものである。電圧指令生成部32cは、モータ定数φの値を設定するものである。電圧指令生成部32cは、当該取得された制御指令に含まれるvd_dummy *及びvq_dummy *、当該設定されたモータ定数φ、並びに上記式(14)により算出された速度ωeに基づき、以下の式(15)により、dq軸電圧指令vd *,vq *を生成するものである。
2軸3相変換部33は、電圧指令生成部32cにより生成されたdq軸電圧指令vd *,vq *を電圧指令生成部32cから取得するものである。2軸3相変換部33は、所定の変換行例を用いて、当該取得されたdq軸電圧指令vd *,vq *を3相電圧指令vu *,vv *,vw *に変換するものである。dq軸電圧指令vd *,vq *を3相電圧指令vu *,vv *,vw *に変換するための変換行列は公知である。このため、当該変換行列についての詳細な説明は省略する。
2軸3相変換部33は、当該変換された3相電圧指令vu *,vv *,vw *を駆動回路3に出力するものである。駆動回路3は、上記のとおり、3相電圧指令vu *,vv *,vw *に応じた電流を三相巻線に供給するものである。
エッジ検出部11及び不定周期位置算出部12により、回転状態演算部10cが構成されている。電流指令生成部21及び制御指令生成部22cにより、制御指令演算部20cが構成されている。電圧指令生成部32c及び2軸3相変換部33により、電圧指令演算部30cが構成されている。回転状態演算部10c、制御指令生成部22c及び電圧指令演算部30cにより、モータ制御装置100cの要部が構成されている。ブラシレスDCモータ2、駆動回路3、位置センサ4及びモータ制御装置100cにより、アクチュエータ装置200cの要部が構成されている。
モータ制御装置100cの要部のハードウェア構成は、実施の形態1にて図8を参照して説明したものと同様であるため、図示及び説明を省略する。すなわち、回転状態演算部10c、制御指令演算部20c及び電圧指令演算部30cの各々の機能は、プロセッサ41及びメモリ42により実現されるものであっても良く、又は専用の処理回路43により実現されるものであっても良い。
参考例1に係るモータ制御装置100cは、上記のとおり、回転状態演算部10cにおいて、ロータの速度ωe_aveを不定周期に算出する処理を不要とすることができる。これにより、回転状態演算部10cにおける演算負荷を低減することができる。また、電圧指令演算部30cにおいて、電圧位相θdqに対応する電気角θの値を時間的に補間する処理を不要とすることができる。この結果、電圧指令演算部30cにおける演算負荷を低減することができる。
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。