(第一実施形態)
本発明の第一実施形態について、図1から図14を参照して説明する。
図1は、本実施形態に係るモータ制御装置400を搭載する電動パワーステアリング装置300の構成を示す模式図である。電動パワーステアリング装置300は、コラム部(ステアリングシャフト)に電動モータと減速機構とが配置されるコラムアシスト式電動パワーステアリング装置である。
[電動パワーステアリング装置300]
電動パワーステアリング装置300は、ハンドル1のコラム軸(ステアリングシャフト、ハンドル軸)2、減速ギア3、ユニバーサルジョイント4a,4b、ピニオンラック機構5、タイロッド6a,6bを経て、更にハブユニット7a,7bを介して操向車輪8L,8Rに連結されている。また、コラム軸2には、ハンドル1の舵角θeを検出する舵角センサ14と、ハンドル1の操舵トルクThを検出するトルクセンサ10とが設けられており、ハンドル1の操舵力を補助するモータ100が減速ギア3を介してコラム軸2に連結されている。電動パワーステアリング装置300を制御するコントロールユニット(ECU)30には、バッテリ13から電力が供給されると共に、イグニションキー11を経てイグニションキー信号が入力される。
コントロールユニット30は、トルクセンサ10で検出された操舵トルクThと車速センサ12で検出された車速Vsとに基づいてアシスト(操舵補助)指令の電流指令値の演算を行い、演算された電流指令値に補償等を施した電圧制御指令値Vrefによってモータ100を制御する。舵角センサ14は必須のものではなく、配設されていなくても良く、モータ100に連結されたレゾルバ等の回転センサから舵角(モータ角度)θeを得ることもできる。
コントロールユニット30は、主としてCPU(Central Processing Unit)(MPU(Micro Processor Unit)やMCU(Micro Controller Unit)等を含む)を含むプログラム実行可能なコンピュータを備えている。
コントロールユニット30は、モータ100を駆動するインバータ161や、モータ100の電流を検出するモータ電流検出回路162や、モータ100のモータ角度θeを検出する角度検出部110Aなどの回路を備えている。なお、これらの回路は、モータ100側に搭載されていてもよい。
コントロールユニット30には、車両の各種情報を授受するCAN(Controller Area Network)40が接続されており、車速VsはCAN40から受信することも可能である。また、コントロールユニット30には、CAN40以外の通信、アナログ/ディジタル信号、電波等を授受する非CAN41も接続可能である。
モータ100は、近年、電動パワーステアリング装置300のアクチュエータとして主流である3相ブラシレスモータである。モータ100は、空間ベクトル駆動を用いたベクトル制御方式により制御される。空間ベクトル駆動を用いたベクトル制御方式は、モータ100のロータの座標軸であるトルクを制御するq軸と、磁界の強さを制御するd軸とを独立に設定し、dq軸が90°の関係にあることから、そのベクトルで各軸に相当する電流(d軸電流指令値Iref_d,q軸電流指令値Iref_q)を制御する。
[モータ制御装置400]
図2は、コントロールユニット30によって構成されるモータ制御装置400の機能構成図である。モータ制御装置400の機能は、CPU等において実行されるプログラムと、インバータ等の電子回路とを適宜組み合わせて実現される。以降の説明において電子回路として記載された機能が、CPU等において実行されるプログラムとして実現されていてもよい。
モータ制御装置400は、モータ100の駆動制御を行う。モータ制御装置400は、電流指令値演算部31と、モータ制御部39と、PWM制御部160と、インバータ161と、モータ電流検出回路162と、モータ角度検出部110Aと、角速度演算部110Bと、3相交流/dq軸変換部130と、を備える。
電流指令値演算部31は、操舵トルクThと車速Vs等に基づきアシストマップ等を用いて演算された2軸(dq軸座標系)のdq軸電流指令値Iref_m(m=d,q)を、モータ制御部39に出力する。
モータ制御部39は、入力されるdq軸電流指令値Iref_m(m=d,q)、モータ角度θeおよびモータ回転数N等から、デッドタイム補償を施した電圧制御指令値Vref_mb(m=d,q)を算出する。また、モータ制御部39は、電圧制御指令値Vref_mb(m=d,q)等から、空間ベクトル変調により3相のDuty指令値Du_o,Dv_o,Dw_oを算出して、PWM制御部160に出力する。
図3は、PWM制御部160およびインバータ161の構成図である。
インバータ161は、図3に示すように、FETの3相ブリッジで構成されており、PWM-Duty値D1〜D6でON/OFFされることによってモータ100を駆動する。インバータ161とモータ100との間には、アシスト制御停止時等に電流の供給を遮断するためのモータスイッチ101が介挿されている。上側アームはスイッチング素子としてのFETQ1,Q2,Q3で構成され、下側アームはFETQ4,Q5,Q6で構成されている。また、FETQ1およびQ4がU相、FETQ2およびQ5がV相、FETQ3およびQ6がW相の駆動素子である。
PWM制御部160は、図3に示すように、入力された3相のDuty指令値Du_o,Dv_o,Dw_oに基づき、図3に示すような上下アームのブリッジ構成で成るインバータ(インバータ印加電圧VR)161を介してモータ100を駆動制御する。PWM制御部160は、図3に示すように、PWM部160A−2と、ゲート駆動部160Bとを有する。
PWM部160A−2は、図3に示すように、3相のDuty指令値Du_o,Dv_o,Dw_oをそれぞれ所定式に従って3相分PWM―Duty値D1〜D6を算出する。PWM部160A−2には、発振部160Cから例えば三角波の変調信号(キャリア)CFが入力されており、PWM部160A−2は変調信号CFに同期してPWM―Duty値D1〜D6を算出する。
ゲート駆動部160Bは、図3に示すように、PWM―Duty値D1〜D6を出力して駆動素子であるFETQ1〜Q6のゲートを駆動する。
電動パワーステアリング装置300は車載製品であるため、稼動温度範囲が広く、フェールセーフの観点からモータ100を駆動するインバータ161は家電製品を代表とする一般産業用と比較して、デッドタイムを大きく(産業用機器<EPS)する必要がある。一般にスイッチング素子(例えばFET(Field-Effect Transistor))にはOFFの際に遅れ時間があるため、上下アームのスイッチング素子のOFF/ON切替えを同時に行うと、直流リンクが短絡する状況が発生する場合がある。この状況の発生を防ぐため、上下アーム両方のスイッチング素子がOFFになる時間(デッドタイム)が設けられる。
上記のようなデッドタイム補償を行った場合、電流波形が歪み、電流制御の応答性や操舵感が悪化し、例えばハンドルがオンセンター付近にある状態でゆっくり操舵すると、トルクリップル等による不連続な操舵感などが生じる場合がある。
電流検出器162は、図2に示すように、モータ100の3相モータ電流Iu,Iv,Iwを検出する。検出された3相モータ電流Iu,Iv,Iwは、3相交流/dq軸変換部130に入力され、2相のフィードバックdq軸電流Id,Iqに変換される。2相のフィードバックdq軸電流Id,Iqは、モータ制御部39に入力される。
モータ角度検出部110Aは、モータ100のモータ角度θeを、必要がある場合は演算を行い、取得する。モータ角度θeは、角速度演算部110B、モータ制御部39および3相交流/dq軸変換部130に入力される。
角速度演算部110Bは、モータ角度θeからモータ回転数Nおよびモータ角速度ωを演算により取得する。モータ回転数Nおよびモータ角速度ωは、モータ制御部39に入力される。
[モータ制御部39]
図4は、モータ制御部39の機能構成図である。
モータ制御部39は、電圧指令値演算部220と、電気角補間部240と、空間ベクトル変調部250と、最終Duty演算部200と、Duty出力設定部160A−1と、を備えている。
電圧指令値演算部220は、dq軸デッドタイム補償値演算部201と、dq軸電流フィードバック制御部203と、電圧/Duty変換係数演算部204と、加算部205と、dq軸Dutyクランプ/VR感応演算部210と、を備えている。
電圧指令値演算部220は、モータ100から制御周期Tcごとに取得したモータ電気角θeおよびモータ回転数θeと電流指令値Iref_m(m=d,q)などを用いて電圧指令値を算出する(電圧指令値演算工程)。
dq軸デッドタイム補償値演算部201は、入力されるモータ回転数N、モータ角度(電気角)θe、dq軸電流指令値Iref_m(m=d,q)から算出したdq軸デッドタイム補償値DT_m(m=d,q)を加算部205に出力する。
dq軸電流フィードバック制御部203は、入力されるモータ角速度ω、dq軸電流指令値Iref_m(m=d,q)、2相のフィードバックdq軸電流Im(m=d,q)(Id,Iq)から算出した電圧制御指令値Vref_ma(m=d,q)を加算部205に出力する。
電圧/Duty変換係数演算部204は、インバータ印加電圧VRに応じて電圧/Dutyの変換係数Kcを算出する。
加算部205は、dq軸デッドタイム補償値DT_m(m=d,q)と、電圧制御指令値Vref_ma(m=d,q)とを加算した電圧制御指令値Vref_mb(m=d,q)を、3相Dutyクランプ/VR感応演算部210に出力する。
dq軸Dutyクランプ/VR(インバータ印加電圧)感応演算部210は、電圧制御指令値Vref_mb(m=d,q)と、電圧/Duty変換の変換係数Kcとを乗算して算出したdq軸正規用のDuty指令値D1m(m=d,q)(Duty_d,Duty_q)を、空間ベクトル変調部250に入力する。
[電気角補間部240]
図5は、電気角補間部240の構成図である。
電気角補間部240は、入力されたモータ角度θeから、補間Duty演算用のモータ角度(補間電気角)θsを算出して、空間ベクトル変調部250に出力する(電気角補間工程)。
電気角補間部240は、制御周期250μs(Tc)で検出されたモータ角度θeに対する2次関数補間演算(Second Order Hold演算:以下では、2次関数補間演算のことを単に「SOH演算」とする場合もある。)により、制御周期TcからTc/2経過後のモータ角度(補間電気角)θsを推定し、推定されたモータ角度(補間電気角)θsに基づいて補間Duty指令値を算出する。
電気角補間部240が行うdq軸電流制御では、空間ベクトル変調後のDuty指令値を補間対象としない。空間ベクトル変調後のDuty指令値には、過渡変化のあるデッドタイム補償値や空間ベクトル変調による3次高周波の歪み成分等に起因するノイズ成分が含まれ、Duty指令値を直接補間して算出した補間Duty指令値には、大きなノイズを含む値となる場合があるためである。
電気角補間部240は、図5に示すように、モータ角度θeを入力して直接的にSOH演算を行う演算処理部241(SOH演算部241−1およびロールオーバ処理部241−2)と、モータ角度θeを入力してオフセット処理等を行い、SOH演算を行うオフセット付き演算処理部242と、モータ角度θeが90°より大きく、270°以下である範囲とそれ以外の範囲のいずれに属するかを判定して切替フラグSFを出力するモータ角度切替判定部243と、切替フラグSFによって接点a,bを切替えて補間Duty演算用のモータ角度(補間電気角)θsを出力する切替部244と、を備えている。
図6は、制御周期TcからTc/2経過後において、SOH演算により算出した補間電気角を示している。以前に検出したモータ電気角θeを用いて補間電気角θsを算出することで、電気角の変化を滑らかにすることができる。
図6(A)に示すように円弧状の理想モータ角度波形に対して、250μs毎のサンプリング波形は当然250μsの階段波形となるが、図6(B)に示すように、SOH演算によって125μs後のモータ角度を推定することにより、サンプリング周期を2倍相当にすることができる。
SOH演算に用いられる関数y[k]は、式1で表される。y[k]は制御周期数kにおけるモータ角度(電気角)を表す関数である。
係数a,b,cを用いて、前々回値y[−2]、前回値y[−1]、今回値y[0]で表すと式2が成立する。
以上の数式を整理してa,b,cは、y[0],y[−1],y[−2]を用いて式3のように表される。
補間電気角θs1は、制御周期TcからTc/2経過後の電気角であるから、式4にk=0.5を代入することで算出することができる。
図7は、SOH演算部241−1(242−4)の機能構成図である。
SOH演算部241−1は、モータ角度θeの前回値の保持ユニット245−1および保持ユニット245−2と、係数部B0(245−3)と、係数部B1(245−4)と、係数部B2(245−5)と、加算部245−6と、加算部245−7と、を有している。
モータ角度θeは、係数部B0(245−3)および保持ユニット245−1に入力され、保持ユニット245−1の保持値は係数部B1(245−4)および保持ユニット245−2に入力される。保持ユニット245−2の保持値は係数部B2(245−5)に入力され、係数部B0(245−3)、係数部B1(245−4)および係数部B2(245−5)の各出力値が、加算部245−7および加算部245−6で加算されて、補間電気角θsとして出力される。
補間電気角θsを算出する際の係数B0,B1,B2は、式5により、図7に示すように算出される。
電気角補間部240内の演算処理部241は、図5に示すように、モータ角度θeを入力してSOH演算を行うSOH演算部241−1と、SOH演算部241−1から出力されるモータ角度θe1をロールオーバ処理(波形処理)するロールオーバ処理部241−2と、を備えている。ロールオーバ処理部241−2でロールオーバ処理されたモータ角度(第1の補間用モータ角度)θe2は、切替部244の接点aに入力される。
オフセット付き演算処理部242は、図5に示すように、モータ角度θeが入力されて固定部242−1から入力される係数180°によるオフセット処理を行う加算部242−2と、加算部242−2から入力されるモータ角度θe3をロールオーバ処理(波形処理)するロールオーバ処理部242−3と、ロールオーバ処理部242−3から入力されるモータ角度θe4を補正するSOH演算部242−4と、SOH演算部242−4からモータ角度θe5が入力されて固定部242−5から入力される係数180°によるオフセット戻し処理を行う減算部242−6と、減算部242−6から入力されるモータ角度θe6をロールオーバ処理(波形処理)するロールオーバ処理部242−7と、を備えている。ロールオーバ処理部242−7でロールオーバ処理されたモータ角度(第2の補間用モータ角度)θe7は、切替部244の接点bに入力される。
演算処理部241のロールオーバ処理部241−2からのモータ角度θe2は切替部244の接点aに入力されており、オフセット付き演算処理部242のロールオーバ処理部242−7からのモータ角度θe7は切替部244の接点bに入力されている。そして、切替部244の接点a及びbは、モータ角度切替判定部243からの切替フラグSF(「H」、「L」)によって切替えられ、切替部244から補間Duty演算用のモータ角度(補間電気角)θsが出力される。
モータ角度(電気角)θeは、現在のモータ角度から次のモータ角度に移る際において360°を超えた場合、0°に戻る。このとき過渡的な角度変動が発生するため、現在のモータ角度を用いてSOH演算を行うと正確な補間演算結果にならない場合がある。この問題を回避するため、電気角補間部240は、入力電気角のモータ角度θeに応じて演算出力(補間Duty演算用のモータ角度θs)を切替える。
モータ角度θeが90°<θe≦270°の範囲では、モータ角度θeに過渡的な角度変動がない。そのため、電気角補間部240は、入力されるモータ角度θeに対してSOH演算を行う。
一方、モータ角度θeが0°≦θe≦90°または270°<θe≦360°の範囲では、モータ角度θeに過渡的な角度変動がある。そのため、電気角補間部240は、モータ角度θeを180°オフセット処理し、連続的な角度信号にしてからSOH演算を行い、SOH演算後の補間演算結果に対して180°オフセット戻し処理を行う。
モータ角度切替判定部243は、入力モータ角度θeから切替フラグSF(90°<θe≦270°のとき「H」、0°≦θe≦90°または270°<θe≦360°のとき「L」)を生成する。
切替部244は、切替フラグSFに基づいて、SOH演算後の補間Duty演算用のモータ角度(補間電気角)θsを選択して出力する。
すなわち、切替部244は、90°<θe≦270°のとき、式6のように制御され、モータ角度θe2を補間Duty演算用のモータ角度θsとして出力する。
また、切替部244は、0°≦θe≦90°または270°<θe≦360°のとき、式7のように制御され、モータ角度θe7を補間Duty演算用のモータ角度θsとして出力する。
図8は、電気角補間部240の制御フローチャートを示す。
電気角補間部240にモータ角度(電気角)θeが入力される(ステップS1)。
演算処理部241のSOH演算部241−1は、SOH演算を行う(ステップS10)。モータ角度θeは、次のSOH演算において前回値として使用するため、保持ユニット245−1に入力される。また、保持ユニット245−1に入力されていた前回値は、次のSOH演算において前々回値として使用するため、保持ユニット245−2に入力される。
ロールオーバ処理部241−2は、SOH演算されたモータ角度θe1をロールオーバ処理してモータ角度θe2を出力する(ステップS11)。
オフセット付き演算処理部242は、加算部242−2が固定部242−1から入力される係数180°を用いてモータ角度(電気角)θeをオフセット処理する(ステップS20)。
ロールオーバ処理部242−3は、オフセット処理されたモータ角度θe3をロールオーバ処理してモータ角度θe4を出力する(ステップS21)。
SOH演算部242−4は、入力されたモータ角度θe4に対してSOH演算を行う(ステップS22)。モータ角度θeは、次のSOH演算において前回値として使用するため、保持ユニット245−1に入力される。また、保持ユニット245−1に入力されていた前回値は、次のSOH演算において前々回値として使用するため、保持ユニット245−2に入力される。
SOH演算されたモータ角度θe5は減算部242−6に入力され、固定部242−5から入力される係数180°でオフセット戻し処理が行われる(ステップS23)。
オフセット戻し処理されたモータ角度θe6は、ロールオーバ処理部242−7でロールオーバ処理されてモータ角度θe7が出力される(ステップS24)。
モータ角度切替判定部243は、モータ角度θeが90°より大きく、270°以下であることを判定する(ステップS2)。
この条件に当てはまる場合(YESの場合)、モータ角度切替判定部243は、切替フラグSFを「H」にする。
上記条件に当てはまらない場合(NOの場合)、モータ角度θeは0°以上で90°以下、または270°より大きく360°以下であり、モータ角度切替判定部243は、切替フラグSFを「L」にする(ステップS3)。
モータ角度切替判定部243から入力された切替フラグSFが「H」の場合、切替部244は、θe2を選択し、補間Duty演算用のモータ角度(補間電気角)θsとして出力する。モータ角度切替判定部243から入力された切替フラグSFが「L」の場合、切替部244は、θe7を選択し、補間Duty演算用のモータ角度(補間電気角)θsとして出力する(ステップS4およびステップ5)。
図9は、電気角補間部240の各部波形を示しており、横軸は時間[sec]であり、縦軸はMPU等で処理する内部値で、64[dec]/1[deg]である。なお、23040[dec]=360[deg]である。
図9(A)は演算処理部241から出力されるモータ角度θe2の波形例であり、図9(B)はオフセット付き演算処理部242から出力されるモータ角度θe7の波形例である。また、図9(C)は切替フラグSFの「H」、「L」の切替のタイミングを示しており、図9(D)は切替部244から出力される補間Duty演算用のモータ角度(補間電気角)θsの波形例を示している。
図9(D)に示すように、電気角補間部240の出力するモータ角度(補間電気角)θsは、図9(A)に示す波形と比較して、モータ角度θsが360°を超えて0°に戻る際において、過渡的な角度変動がない。モータ角度θeはリニアリティが高ければ比較的ノイズが少なく、360°から0°に切替える角度変化以外に過渡的な変化がないため、SOH演算による補間電気角の算出において高い精度を確保することができる。
[空間ベクトル変調部250]
図10は、空間ベクトル変調部250の機能構成図である。
空間ベクトル変調部(変換部)250は、電圧の次元からDutyの次元に変換してから空間ベクトル変換演算を行う(変換工程)。空間ベクトル変調部250は、dq軸空間の正規演算用のDuty指令値D1m(m=d,q)(Duty_d,Duty_q)を3相Duty指令値(Duty_ua,Duty_va,Duty_wa)に変換して、3次高調波を重畳し、3相のDuty指令値Duty_u,Duty_v,Duty_wを出力する機能を有していれば良く、例えば本出願人による特開2017−70066号公報や国際公開第2017/098840号等で提案している空間ベクトル変調の手法を用いても良い。
空間ベクトル変調部250は、モータ角度(電気角)θeを用いて上記の空間ベクトル変換演算を行う空間ベクトル変調部250−0と、補間電気角θsを用いて空間ベクトル変換演算を行う空間ベクトル変調部250−1を有する。
空間ベクトル変調部(第1の空間ベクトル変調部)250−0は、モータ角度(電気角)θeを用いて空間ベクトル変換演算を行い、3相のDuty指令値Duty_n(n=u,v,w)(Duty_u,Duty_v,Duty_w)を出力する。
空間ベクトル変調部(第2の空間ベクトル変調部)250−1は、補間電気角θsを用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_n_m1(n=u,v,w)(Duty_u_m1,Duty_v_m1,Duty_w_m1)を出力する。
[最終Duty演算部200]
図11は、最終Duty演算部200の機能構成図である。
最終Duty演算部200は、空間ベクトル変調部250からの正規Duty指令値Duty_n(n=u,v,w)が加算部221に入力される。加算部221でDuty50%のオフセットを加算されたDuty値は、Duty出力を0〜100%の範囲(可変)で制限するリミッタ222に入力される。リミッタ222からは最終正規Duty指令値Dn(n=u,v,w)が出力される。
空間ベクトル変調部250からの補間Duty指令値Duty_n_m1は加算部231に入力され、加算部231でDuty50%のオフセットを加算されたDuty値は、Duty出力を0〜100%の範囲(可変)で制限するリミッタ232に入力される。リミッタ232から最終補間Duty指令値Dnm1(n=u,v,w)が出力される。
一般的にEPSはバッテリ(DC+12V)からモータ印加電圧を供給するため、負(−)方向の印加電圧を供給することができない。このままでは負方向の相電圧指令値を供給できないため、負方向に相電流を流すことができない。この問題に対応するため、3相ともDuty値50%(+6V)オフセットして基準電圧にすることにより、3相が0Vでなくても3相Duty値50%時に相電流が0Aになる(モータ印加電圧+12V時)。例えば、U相Duty値50%(+6V)、V相Duty値50%(+6V)、W相Duty値50%(+6V)の場合、U相0A、V相0A、W相0Aとなり、U相Duty値60%(+7.2V)、V相Duty値50%(+6V)、W相Duty値40%(+4.8V)とした場合、U相には正(+)方向に電流が流れ、U相Duty値40%(+4.8V)、V相Duty値50%(+6V)、W相Duty値60%(+7.2V)とした場合、U相には負方向に電流が流れる。3相ともDuty値50%にオフセットして基準電圧にすることによって、印加電圧が正のまま、負方向の電流を流すことができる。なお、Duty値50%オフセットは基本的に固定であるが、Duty値50%時の基準電圧は、供給される印加電圧状態によって変動する。例えば、印加電圧11Vの時、Duty値50%は5.5Vとなり、印加電圧13Vの時、Duty値50%は6.5Vになる。
[Duty出力設定部160A−1]
図12は、Duty出力設定部160A−1の機能構成図である。
Duty出力設定部(出力設定部)160A−1は、図12に示すように、制御周期Tcおよび制御周期TcからTc/2μs経過後において、制御周期Tcからの経過時間Tに基づいて、出力する最終的なDuty指令値Du_o,Dv_o,Dw_oを切り替えて出力する(出力設定工程)。
図13は制御周期と最終正規Duty指令値Dn及び最終補間Duty指令値Dnm1の出力タイミングを示している。
制御周期Tc(n)で演算された最終正規Duty指令値Dnおよび最終補間Duty指令値Dnm1は、次の制御周期(n+1)の0μsのタイミングで最終正規Duty指令値Dnが出力され、その後125μsのタイミングで最終補間Duty指令値Dnm1が出力される。
図14はシミュレーション装置におけるシミュレーション結果であり、横軸は時間[sec]であり、縦軸はMPU等で処理する内部値で、64[dec]/1[deg]である。図14(A)はモータ角度(太線)の波形であり、250μs周期のサンプリングデータをSOH演算により算出した推定モータ角度(細線)が、250μs周期の125μs後の角度(電気角)として演算されていることが確認できる。推定モータ角度(細線)を横軸に125μsオフセットすると、モータ角度(太線)の250μs周期のサンプリングデータの中間データを示す角度波形となる。図14(B)は空間ベクトル変調により演算されたDuty指令値の波形であり、推定モータ角度を適応した補間Duty指令値の波形(細線)が、250μs周期の125μs後の波形として演算されていることが確認できる。補間Duty指令値の波形(細線)を横軸に125μsオフセットすると、正規Duty指令値(太線)の250μs周期のデータの中間データを示すDuty指令値波形となる。
本実施形態のモータ制御装置400によれば、デッドタイム補償の影響を受けずに、ノイズが少ない補間Duty指令値を算出し、PWM演算を行う周期よりも早い周期(50μs)でPWM制御の制御信号を変動させることができる。これにより、マイクロコンピュータの演算処理量の増加は軽微でありながら、ブラシレスモータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
以上、本発明の第一実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。また、上述の実施形態および変形例において示された構成要素は適宜に組み合わせて構成することが可能である。
(変形例1)
例えば、上記実施形態に係るモータ制御装置400は、モータ100が空間ベクトル駆動を用いたベクトル制御方式により制御されていたが、モータ制御装置の制御対象のモータはこれに限定されない。本発明に係るモータ制御装置の制御対象のモータは、例えば正弦波制御方式のブラシレスモータであってもよい。本発明に係るモータ制御装置は、Duty指令値を直接の補間対象とせず、モータ角度(電気角)θeを補間対象とする。モータ角度θeはリニアリティが高ければ比較的ノイズが少なく、360°から0°に切替える角度変化以外に過渡的な変化がないため、SOH演算による補間電気角の算出および補間Duty指令値の算出において高い精度を確保することができる。
(変形例2)
例えば、上記実施形態に係るモータ制御装置400は、電動パワーステアリング装置300に搭載されていたが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、高トルクが要求される一方で低騒音が要求されるモータ駆動装置に搭載することが適している。例えば、本発明に係るモータ制御装置は、装着者の歩行時の筋力を支援する歩行支援装置や、室内で動作する掃除装置等に搭載することで、モータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
(変形例3)
例えば、上記実施形態に係るモータ制御装置400は、制御周期Tcが250μs(周波数4KHz)であったが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、制御周期Tcが100μs以上、250μs以下であるとき好適に可聴帯域のモータに起因する音を低減することができる。モータ制御装置が搭載するCPU等の性能が向上したり、制御対象のモータの極数が増加したりすることで、制御周期が250μsより短くなることが予測される。制御周期Tcが100μs以上、250μs以下である場合、上記実施形態と同様に、可聴帯域のモータに起因する音を生じる問題が発生するが、本発明に係るモータ制御装置によれば、ブラシレスモータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
(第二実施形態)
本発明の第二実施形態について、図15から図37を参照して説明する。
図15は、本実施形態に係るモータ制御装置400Bを搭載する電動パワーステアリング装置300Bの構成を示す模式図である。電動パワーステアリング装置300Bは、コラム部(ステアリングシャフト)に電動モータと減速機構とが配置されるコラムアシスト式電動パワーステアリング装置である。
[電動パワーステアリング装置300B]
電動パワーステアリング装置300Bは、ハンドル1のコラム軸(ステアリングシャフト、ハンドル軸)2、減速ギア3、ユニバーサルジョイント4a,4b、ピニオンラック機構5、タイロッド6a,6bを経て、更にハブユニット7a,7bを介して操向車輪8L,8Rに連結されている。また、コラム軸2には、ハンドル1の舵角θeを検出する舵角センサ14と、ハンドル1の操舵トルクThを検出するトルクセンサ10とが設けられており、ハンドル1の操舵力を補助するモータ100が減速ギア3を介してコラム軸2に連結されている。電動パワーステアリング装置300Bを制御するコントロールユニット(ECU)30には、バッテリ13から電力が供給されると共に、イグニションキー11を経てイグニションキー信号が入力される。
コントロールユニット30は、トルクセンサ10で検出された操舵トルクThと車速センサ12で検出された車速Vsとに基づいてアシスト(操舵補助)指令の電流指令値の演算を行い、演算された電流指令値に補償等を施した電圧制御指令値Vrefによってモータ100を制御する。舵角センサ14は必須のものではなく、配設されていなくても良く、モータ100に連結されたレゾルバ等の回転センサから舵角(モータ角度)θeを得ることもできる。
コントロールユニット30は、主としてCPU(Central Processing Unit)(MPU(Micro Processor Unit)やMCU(Micro Controller Unit)等を含む)を含むプログラム実行可能なコンピュータを備えている。
コントロールユニット30は、モータ100を駆動するインバータ161や、モータ100の電流を検出するモータ電流検出回路162や、モータ100のモータ角度θeを検出する角度検出部110Aなどの回路を備えている。なお、これらの回路は、モータ100側に搭載されていてもよい。
コントロールユニット30には、車両の各種情報を授受するCAN(Controller Area Network)40が接続されており、車速VsはCAN40から受信することも可能である。また、コントロールユニット30には、CAN40以外の通信、アナログ/ディジタル信号、電波等を授受する非CAN41も接続可能である。
モータ100は、近年、電動パワーステアリング装置300Bのアクチュエータとして主流である3相ブラシレスモータである。モータ100は、空間ベクトル駆動を用いたベクトル制御方式により制御される。空間ベクトル駆動を用いたベクトル制御方式は、モータ100のロータの座標軸であるトルクを制御するq軸と、磁界の強さを制御するd軸とを独立に設定し、dq軸が90°の関係にあることから、そのベクトルで各軸に相当する電流(d軸電流指令値Iref_d,q軸電流指令値Iref_q)を制御する。
[モータ制御装置400B]
図16は、コントロールユニット30によって構成されるモータ制御装置400Bの機能構成図である。モータ制御装置400Bの機能は、CPU等において実行されるプログラムと、インバータ等の電子回路とを適宜組み合わせて実現される。以降の説明において電子回路として記載された機能が、CPU等において実行されるプログラムとして実現されていてもよい。
モータ制御装置400Bは、モータ100の駆動制御を行う。モータ制御装置400Bは、電流指令値演算部31と、モータ制御部39Bと、PWM制御部160と、インバータ161と、モータ電流検出回路162と、モータ角度検出部110Aと、角速度演算部110Bと、3相交流/dq軸変換部130と、を備える。
電流指令値演算部31は、操舵トルクThと車速Vs等に基づきアシストマップ等を用いて演算された2軸(dq軸座標系)のdq軸電流指令値Iref_m(m=d,q)を、モータ制御部39Bに出力する。
モータ制御部39Bは、入力されるdq軸電流指令値Iref_m(m=d,q)、モータ角度θeおよびモータ回転数N等から、デッドタイム補償を施した電圧制御指令値Vref_mb(m=d,q)を算出する。また、モータ制御部39Bは、電圧制御指令値Vref_mb(m=d,q)等から、空間ベクトル変調により3相のDuty指令値Du_o,Dv_o,Dw_oを算出して、PWM制御部160に出力する。
図17は、PWM制御部160およびインバータ161の構成図である。
インバータ161は、図17に示すように、FETの3相ブリッジで構成されており、PWM-Duty値D1〜D6でON/OFFされることによってモータ100を駆動する。インバータ161とモータ100との間には、アシスト制御停止時等に電流の供給を遮断するためのモータスイッチ101が介挿されている。上側アームはスイッチング素子としてのFETQ1,Q2,Q3で構成され、下側アームはFETQ4,Q5,Q6で構成されている。また、FETQ1およびQ4がU相、FETQ2およびQ5がV相、FETQ3およびQ6がW相の駆動素子である。
PWM制御部160は、図17に示すように、入力された3相のDuty指令値Du_o,Dv_o,Dw_oに基づき、図17に示すような上下アームのブリッジ構成で成るインバータ(インバータ印加電圧VR)161を介してモータ100を駆動制御する。PWM制御部160は、図17に示すように、PWM部160A−2と、ゲート駆動部160Bとを有する。
PWM部160A−2は、図17に示すように、3相のDuty指令値Du_o,Dv_o,Dw_oをそれぞれ所定式に従って3相分PWM―Duty値D1〜D6を算出する。PWM部160A−2には、発振部160Cから例えば三角波の変調信号(キャリア)CFが入力されており、PWM部160A−2は変調信号CFに同期してPWM―Duty値D1〜D6を算出する。
ゲート駆動部160Bは、図17に示すように、PWM―Duty値D1〜D6を出力して駆動素子であるFETQ1〜Q6のゲートを駆動する。
電動パワーステアリング装置300Bは車載製品であるため、稼動温度範囲が広く、フェールセーフの観点からモータ100を駆動するインバータ161は家電製品を代表とする一般産業用と比較して、デッドタイムを大きく(産業用機器<EPS)する必要がある。一般にスイッチング素子(例えばFET(Field-Effect Transistor))にはOFFの際に遅れ時間があるため、上下アームのスイッチング素子のOFF/ON切替えを同時に行うと、直流リンクが短絡する状況が発生する場合がある。この状況の発生を防ぐため、上下アーム両方のスイッチング素子がOFFになる時間(デッドタイム)が設けられる。
上記のようなデッドタイム補償を行った場合、電流波形が歪み、電流制御の応答性や操舵感が悪化し、例えばハンドルがオンセンター付近にある状態でゆっくり操舵すると、トルクリップル等による不連続な操舵感などが生じる場合がある。
電流検出器162は、図16に示すように、モータ100の3相モータ電流Iu,Iv,Iwを検出する。検出された3相モータ電流Iu,Iv,Iwは、3相交流/dq軸変換部130に入力され、2相のフィードバックdq軸電流Id,Iqに変換される。2相のフィードバックdq軸電流Id,Iqは、モータ制御部39Bに入力される。
モータ角度検出部110Aは、モータ100のモータ角度θeを、必要がある場合は演算を行い、取得する。モータ角度θeは、角速度演算部110B、モータ制御部39Bおよび3相交流/dq軸変換部130に入力される。
角速度演算部110Bは、モータ角度θeからモータ回転数Nおよびモータ角速度ωを演算により取得する。モータ回転数Nおよびモータ角速度ωは、モータ制御部39Bに入力される。
[モータ制御部39B]
図18は、モータ制御部39Bの機能構成図である。
モータ制御部39Bは、電圧指令値演算部220と、電気角補間部240Bと、空間ベクトル変調部250と、最終Duty演算部200と、Duty出力設定部160A−1と、を備えている。
電圧指令値演算部220は、dq軸デッドタイム補償値演算部201と、dq軸電流フィードバック制御部203と、電圧/Duty変換係数演算部204と、加算部205と、dq軸Dutyクランプ/VR感応演算部210と、を備えている。
電圧指令値演算部220は、モータ100から制御周期Tcごとに取得したモータ電気角θeおよびモータ回転数θeと電流指令値Iref_m(m=d,q)などを用いて電圧指令値を算出する(電圧指令値演算工程)。
dq軸デッドタイム補償値演算部201は、入力されるモータ回転数N、モータ角度(電気角)θe、dq軸電流指令値Iref_m(m=d,q)から算出したdq軸デッドタイム補償値DT_m(m=d,q)を加算部205に出力する。
dq軸電流フィードバック制御部203は、入力されるモータ角速度ω、dq軸電流指令値Iref_m(m=d,q)、2相のフィードバックdq軸電流Id,Iqから算出した電圧制御指令値Vref_ma(m=d,q)を加算部205に出力する。
電圧/Duty変換係数演算部204は、インバータ印加電圧VRに応じて電圧/Dutyの変換係数Kcを算出する。
加算部205は、dq軸デッドタイム補償値DT_m(m=d,q)と、電圧制御指令値Vref_ma(m=d,q)とを加算した電圧制御指令値Vref_mb(m=d,q)を、3相Dutyクランプ/VR感応演算部210に出力する。
dq軸Dutyクランプ/VR(インバータ印加電圧)感応演算部210は、電圧制御指令値Vref_mb(m=d,q)と、電圧/Duty変換の変換係数Kcとを乗算して算出したdq軸正規用のDuty指令値D1m(m=d,q)(Duty_d,Duty_q)を、空間ベクトル変調部250に入力する。
[電気角補間部240B]
図19は、電気角補間部240Bの構成図である。
電気角補間部240Bは、入力されたモータ角度θeから、補間Duty演算用のモータ角度(補間電気角)θsを算出して、空間ベクトル変調部250に出力する(電気角補間工程)。
電気角補間部240Bは、制御周期250μs(Tc)で検出されたモータ角度θeに対する2次関数補間演算(Second Order Hold演算:以下では、2次関数補間演算のことを単に「SOH演算」とする場合もある。)により、制御周期Tcを1/5に分割した50μsの間隔(分割間隔)でモータ角度(補間電気角)θsを推定し、推定されたモータ角度(補間電気角)θsに基づいて補間Duty指令値を算出する。
電気角補間部240Bが行うdq軸電流制御では、空間ベクトル変調後のDuty指令値を補間対象としない。空間ベクトル変調後のDuty指令値には、過渡変化のあるデッドタイム補償値や空間ベクトル変調による3次高周波の歪み成分等に起因するノイズ成分が含まれ、Duty指令値を直接補間して算出した補間Duty指令値には、大きなノイズを含む値となる場合があるためである。
電気角補間部240Bは、図19に示すように、モータ角度θeを入力して直接的にSOH演算を行う演算処理部241(SOH演算部241−1およびロールオーバ処理部241−2)と、モータ角度θeを入力してオフセット処理等を行い、SOH演算を行うオフセット付き演算処理部242と、モータ角度θeが90°より大きく、270°以下である範囲とそれ以外の範囲のいずれに属するかを判定して切替フラグSFを出力するモータ角度切替判定部243と、切替フラグSFによって接点a,bを切替えて補間Duty演算用のモータ角度(補間電気角)θsを出力する切替部244と、を備えている。
図20から図23は、制御周期Tcを1/5に分割した50μsの間隔でSOH演算により算出した4つの補間電気角(以降、「補間電気角1〜4」と称す)を示している。以前に検出したモータ電気角θeを用いて補間電気角1〜4(θs1〜4)を算出することで、電気角の変化を滑らかにすることができる。
SOH演算に用いられる関数y[k]は、式8で表される。y[k]は制御周期数kにおけるモータ角度(電気角)を表す関数である。
係数a,b,cを用いて、前々回値y[−2]、前回値y[−1]、今回値y[0]で表すと式9が成立する。
以上の数式を整理してa,b,cは、y[0],y[−1],y[−2]を用いて式10のように表される。
補間電気角1(θs1)は、制御周期Tcから50μs(Tc*{1/5})後の電気角であるから、式11にk=0.2を代入することで算出することができる。
補間電気角2(θs2)は、制御周期Tcから100μs(Tc*{2/5})後の電気角であるから、式11にk=0.4を代入することで算出することができる。
補間電気角3(θs3)は、制御周期Tcから150μs(Tc*{3/5})後の電気角であるから、式11にk=0.6を代入することで算出することができる。
補間電気角4(θs4)は、制御周期Tcから200μs(Tc*{4/5})後の電気角であるから、式11にk=0.8を代入することで算出することができる。
図24は、SOH演算部241−1(242−4)の機能構成図である。
SOH演算部241−1は、モータ角度θeの前回値の保持ユニット245−1および保持ユニット245−2と、係数部B0(245−3)と、係数部B1(245−4)と、係数部B2(245−5)と、加算部245−6と、加算部245−7と、を有している。
モータ角度θeは、係数部B0(245−3)および保持ユニット245−1に入力され、保持ユニット245−1の保持値は係数部B1(245−4)および保持ユニット245−2に入力される。保持ユニット245−2の保持値は係数部B2(245−5)に入力され、係数部B0(245−3)、係数部B1(245−4)および係数部B2(245−5)の各出力値が、加算部245−7および加算部245−6で加算されて、補間電気角θsとして出力される。
補間電気角1〜4(θs1〜4)を算出する際の係数B0,B1,B2は、式12〜15により、表1のように表される。
電気角補間部240B内の演算処理部241は、図19に示すように、モータ角度θeを入力してSOH演算を行うSOH演算部241−1と、SOH演算部241−1から出力されるモータ角度θe1をロールオーバ処理(波形処理)するロールオーバ処理部241−2と、を備えている。ロールオーバ処理部241−2でロールオーバ処理されたモータ角度θe2は、切替部244の接点aに入力される。
オフセット付き演算処理部242は、図19に示すように、モータ角度θeが入力されて固定部242−1から入力される係数180°によるオフセット処理を行う加算部242−2と、加算部242−2から入力されるモータ角度θe3をロールオーバ処理(波形処理)するロールオーバ処理部242−3と、ロールオーバ処理部242−3から入力されるモータ角度θe4を補正するSOH演算部242−4と、SOH演算部242−4からモータ角度θe5が入力されて固定部242−5から入力される係数180°によるオフセット戻し処理を行う減算部242−6と、減算部242−6から入力されるモータ角度θe6をロールオーバ処理(波形処理)するロールオーバ処理部242−7と、を備えている。ロールオーバ処理部242−7でロールオーバ処理されたモータ角度θe7は、切替部244の接点bに入力される。
演算処理部241のロールオーバ処理部241−2からのモータ角度θe2は切替部244の接点aに入力されており、オフセット付き演算処理部242のロールオーバ処理部242−7からのモータ角度θe7は切替部244の接点bに入力されている。そして、切替部244の接点a及びbは、モータ角度切替判定部243からの切替フラグSF(「H」、「L」)によって切替えられ、切替部244から補間Duty演算用のモータ角度(補間電気角)θsが出力される。
モータ角度(電気角)θeは、現在のモータ角度から次のモータ角度に移る際において360°を超えた場合、0°に戻る。このとき過渡的な角度変動が発生するため、現在のモータ角度を用いてSOH演算を行うと正確な補間演算結果にならない場合がある。この問題を回避するため、電気角補間部240Bは、入力電気角のモータ角度θeに応じて演算出力(補間Duty演算用のモータ角度θs)を切替える。
モータ角度θeが90°<θe≦270°の範囲では、モータ角度θeに過渡的な角度変動がない。そのため、電気角補間部240Bは、入力されるモータ角度θeに対してSOH演算を行う。
一方、モータ角度θeが0°≦θe≦90°または270°<θe≦360°の範囲では、モータ角度θeに過渡的な角度変動がある。そのため、電気角補間部240Bは、モータ角度θeを180°オフセット処理し、連続的な角度信号にしてからSOH演算を行い、SOH演算後の補間演算結果に対して180°オフセット戻し処理を行う。
モータ角度切替判定部243は、入力モータ角度θeから切替フラグSF(90°<θe≦270°のとき「H」、0°≦θe≦90°または270°<θe≦360°のとき「L」)を生成する。
切替部244は、切替フラグSFに基づいて、SOH演算後の補間Duty演算用のモータ角度(補間電気角)θsを選択して出力する。
すなわち、切替部244は、90°<θe≦270°のとき、式16のように制御され、モータ角度θe2を補間Duty演算用のモータ角度θsとして出力する。
また、切替部244は、0°≦θe≦90°または270°<θe≦360°のとき、式17のように制御され、モータ角度θe7を補間Duty演算用のモータ角度θsとして出力する。
図25は、電気角補間部240Bの制御フローチャートを示す。
電気角補間部240Bにモータ角度(電気角)θeが入力される(ステップS101)。
演算処理部241のSOH演算部241−1は、SOH演算を行う(ステップS110)。モータ角度θeは、次のSOH演算において前回値として使用するため、保持ユニット245−1に入力される。また、保持ユニット245−1に入力されていた前回値は、次のSOH演算において前々回値として使用するため、保持ユニット245−2に入力される。
ロールオーバ処理部241−2は、SOH演算されたモータ角度θe1をロールオーバ処理してモータ角度θe2を出力する(ステップS111)。
オフセット付き演算処理部242は、加算部242−2が固定部242−1から入力される係数180°を用いてモータ角度(電気角)θeをオフセット処理する(ステップS120)。
ロールオーバ処理部242−3は、オフセット処理されたモータ角度θe3をロールオーバ処理してモータ角度θe4を出力する(ステップS121)。
SOH演算部242−4は、入力されたモータ角度θe4に対してSOH演算を行う(ステップS122)。モータ角度θeは、次のSOH演算において前回値として使用するため、保持ユニット245−1に入力される。また、保持ユニット245−1に入力されていた前回値は、次のSOH演算において前々回値として使用するため、保持ユニット245−2に入力される。
SOH演算されたモータ角度θe5は減算部242−6に入力され、固定部242−5から入力される係数180°でオフセット戻し処理が行われる(ステップS123)。
オフセット戻し処理されたモータ角度θe6は、ロールオーバ処理部242−7でロールオーバ処理されてモータ角度θe7が出力される(ステップS124)。
ステップS111およびステップS124の処理完了後、モータ角度切替判定部243は、モータ角度θeが90°より大きく、270°以下であることを判定する(ステップS102)。
この条件に当てはまる場合(YESの場合)、モータ角度切替判定部243は、切替フラグSFを「H」にする。
上記条件に当てはまらない場合(NOの場合)、モータ角度θeは0°以上で90°以下、または270°より大きく360°以下であり、モータ角度切替判定部243は、切替フラグSFを「L」にする。
モータ角度切替判定部243から入力された切替フラグSFが「H」の場合、切替部244は、θe2を選択し、補間Duty演算用のモータ角度(補間電気角)θsとして出力する(ステップS103)。
モータ角度切替判定部243から入力された切替フラグSFが「L」の場合、切替部244は、θe7を選択し、補間Duty演算用のモータ角度(補間電気角)θsとして出力する(ステップS104)。
電気角補間部240Bは、補間電気角1〜4(θs1〜4)に対応する係数B0,B1,B2(表1参照)を用いてSOH演算を行い、補間電気角1〜4(θs1〜4)をそれぞれ算出する。
図26は、電気角補間部240Bの各部波形を示しており、横軸は時間[sec]であり、縦軸はMPU等で処理する内部値で、64[dec]/1[deg]である。なお、23040[dec]=360[deg]である。
図26(A)は演算処理部241から出力されるモータ角度θe2の波形例であり、図26(B)はオフセット付き演算処理部242から出力されるモータ角度θe7の波形例である。また、図26(C)は切替フラグSFの「H」、「L」の切替のタイミングを示しており、図26(D)は切替部244から出力される補間Duty演算用のモータ角度(補間電気角)θsの波形例を示している。
図26(D)に示すように、電気角補間部240Bの出力するモータ角度(補間電気角)θsは、図26(A)に示す波形と比較して、モータ角度θsが360°を超えて0°に戻る際において、過渡的な角度変動がない。モータ角度θeはリニアリティが高ければ比較的ノイズが少なく、360°から0°に切替える角度変化以外に過渡的な変化がないため、SOH演算による補間電気角の算出において高い精度を確保することができる。
[空間ベクトル変調部250]
図27は、空間ベクトル変調部250の機能構成図である。
空間ベクトル変調部(変換部)250は、電圧の次元からDutyの次元に変換してから空間ベクトル変換演算を行う(変換工程)。空間ベクトル変調部250は、dq軸空間の正規演算用のDuty指令値D1m(m=d,q)(Duty_d,Duty_q)を3相Duty指令値(Duty_ua,Duty_va,Duty_wa)に変換して、3次高調波を重畳し、3相のDuty指令値Duty_u,Duty_v,Duty_wを出力する機能を有していれば良く、例えば本出願人による特開2017−70066号公報や国際公開第2017/098840号等で提案している空間ベクトル変調の手法を用いても良い。
空間ベクトル変調部250は、モータ角度(電気角)θeを用いて上記の空間ベクトル変換演算を行う空間ベクトル変調部250−0と、補間電気角1〜4(θs1〜4)をそれぞれ用いて空間ベクトル変換演算を行う空間ベクトル変調部250−1,250−2,250−3,250−4と、を有する。
空間ベクトル変調部250−0は、モータ角度(電気角)θeを用いて空間ベクトル変換演算を行い、3相のDuty指令値Duty_u,Duty_v,Duty_wを出力する。
空間ベクトル変調部250−1は、補間電気角1(θs1)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m1,Duty_v_m1,Duty_w_m1を出力する。
空間ベクトル変調部250−2は、補間電気角2(θs2)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m2,Duty_v_m2,Duty_w_m2を出力する。
空間ベクトル変調部250−3は、補間電気角3(θs3)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m3,Duty_v_m3,Duty_w_m3を出力する。
空間ベクトル変調部250−4は、補間電気角4(θs4)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m4,Duty_v_m4,Duty_w_m4を出力する。
[最終Duty演算部200]
図28は、最終Duty演算部200の機能構成図である。
最終Duty演算部200は、空間ベクトル変調部250からの正規Duty指令値Duty_n(n=u,v,w)が加算部221に入力される。加算部221でDuty50%のオフセットを加算されたDuty値は、Duty出力を0〜100%の範囲(可変)で制限するリミッタ222に入力される。リミッタ222からは最終正規Duty指令値Dn(n=u,v,w)が出力される。
空間ベクトル変調部250からの補間Duty指令値Duty_n_m1は加算部231に入力され、加算部231でDuty50%のオフセットを加算されたDuty値は、Duty出力を0〜100%の範囲(可変)で制限するリミッタ232に入力される。リミッタ232から最終補間Duty指令値Dnm1(n=u,v,w)が出力される。
空間ベクトル変調部250からの補間Duty指令値Duty_n_m2,Duty_n_m3,Duty_n_m4は、補間Duty指令値Duty_n_m1と同様の処理がなされ、リミッタ232から最終補間Duty指令値Dnm2,Dnm3,Dnm4(n=u,v,w)が出力される。
一般的にEPSはバッテリ(DC+12V)からモータ印加電圧を供給するため、負(−)方向の印加電圧を供給することができない。このままでは負方向の相電圧指令値を供給できないため、負方向に相電流を流すことができない。この問題に対応するため、3相ともDuty値50%(+6V)オフセットして基準電圧にすることにより、3相が0Vでなくても3相Duty値50%時に相電流が0Aになる(モータ印加電圧+12V時)。例えば、U相Duty値50%(+6V)、V相Duty値50%(+6V)、W相Duty値50%(+6V)の場合、U相0A、V相0A、W相0Aとなり、U相Duty値60%(+7.2V)、V相Duty値50%(+6V)、W相Duty値40%(+4.8V)とした場合、U相には正(+)方向に電流が流れ、U相Duty値40%(+4.8V)、V相Duty値50%(+6V)、W相Duty値60%(+7.2V)とした場合、U相には負方向に電流が流れる。3相ともDuty値50%にオフセットして基準電圧にすることによって、印加電圧が正のまま、負方向の電流を流すことができる。なお、Duty値50%オフセットは基本的に固定であるが、Duty値50%時の基準電圧は、供給される印加電圧状態によって変動する。例えば、印加電圧11Vの時、Duty値50%は5.5Vとなり、印加電圧13Vの時、Duty値50%は6.5Vになる。
[Duty出力設定部160A−1]
図29は、Duty出力設定部160A−1の機能構成図である。
Duty出力設定部(出力設定部)160A−1は、図29に示すように、制御周期Tcを1/5に分割した50μsの間隔(分割間隔)に合わせ、制御周期Tcからの経過時間Tに基づいて、出力する最終的なDuty指令値Du_o,Dv_o,Dw_oを切り替えて出力する(出力設定工程)。
図30から図33は、モータ回転数が一定回転数(1200rpm)になるように操舵した条件において、補間電気角1〜4(θs1〜4)[deg]を推定したシミュレーション結果である。いずれの結果においても、補間電気角1〜4が、モータ電気角θeを線形補間した線に重なっており、SOH演算による推定角度演算が精度高く適切に行われていることが確認できる。
図34から図37は、図30から図33に結果を示すシミュレーションと同一条件において推定した補間電気角1〜4(θs1〜4)を使用して演算したDuty指令値(U相)Du_m1〜Du_m4のシミュレーション波形である。横軸は時間[sec]であり、縦軸はMPU等で処理する内部値で、8192[dec]/100[%]である。いずれの結果においても、補間Duty指令値が、正規Duty指令値Duを線形補間した線上または近傍に出力され、補間電気角を用いたDuty指令値の補間が精度高く適切に行われていることが確認できる。なお、V,W相は図示されていないが同様の結果を示す。
本実施形態のモータ制御装置400Bによれば、デッドタイム補償の影響を受けずに、ノイズが少ない補間Duty指令値を算出し、PWM演算を行う周期よりも早い周期(50μs)でPWM制御の制御信号を変動させることができる。これにより、マイクロコンピュータの演算処理量の増加は軽微でありながら、ブラシレスモータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
以上、本発明の第二実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。また、上述の実施形態および変形例において示された構成要素は適宜に組み合わせて構成することが可能である。
(変形例4)
例えば、上記実施形態に係るモータ制御装置400Bは、モータ100が空間ベクトル駆動を用いたベクトル制御方式により制御されていたが、モータ制御装置の制御対象のモータはこれに限定されない。本発明に係るモータ制御装置の制御対象のモータは、例えば正弦波制御方式のブラシレスモータであってもよい。本発明に係るモータ制御装置は、Duty指令値を直接の補間対象とせず、モータ角度(電気角)θeを補間対象とする。モータ角度θeはリニアリティが高ければ比較的ノイズが少なく、360°から0°に切替える角度変化以外に過渡的な変化がないため、SOH演算による補間電気角の算出および補間Duty指令値の算出において高い精度を確保することができる。
(変形例5)
例えば、上記実施形態に係るモータ制御装置400Bは、電動パワーステアリング装置300Bに搭載されていたが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、高トルクが要求される一方で低騒音が要求されるモータ駆動装置に搭載することが適している。例えば、本発明に係るモータ制御装置は、装着者の歩行時の筋力を支援する歩行支援装置や、室内で動作する掃除装置等に搭載することで、モータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
(変形例6)
例えば、上記実施形態に係るモータ制御装置400Bは、制御周期Tcが250μs(周波数4KHz)であったが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、制御周期Tcが100μs以上、250μs以下であるとき好適に可聴帯域のモータに起因する音を低減することができる。モータ制御装置が搭載するCPU等の性能が向上したり、制御対象のモータの極数が増加したりすることで、制御周期が250μsより短くなることが予測される。制御周期Tcが100μs以上、250μs以下である場合、上記実施形態と同様に、可聴帯域のモータに起因する音を生じる問題が発生するが、本発明に係るモータ制御装置によれば、ブラシレスモータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
(第三実施形態)
本発明の第三実施形態について、図38から図53を参照して説明する。
図38は、本実施形態に係るモータ制御装置400Cを搭載する電動パワーステアリング装置300Cの構成を示す模式図である。電動パワーステアリング装置300Cは、コラム部(ステアリングシャフト)に電動モータと減速機構とが配置されるコラムアシスト式電動パワーステアリング装置である。
[電動パワーステアリング装置300C]
電動パワーステアリング装置300Cは、ハンドル1のコラム軸(ステアリングシャフト、ハンドル軸)2、減速ギア3、ユニバーサルジョイント4a,4b、ピニオンラック機構5、タイロッド6a,6bを経て、更にハブユニット7a,7bを介して操向車輪8L,8Rに連結されている。また、コラム軸2には、ハンドル1の舵角θeを検出する舵角センサ14と、ハンドル1の操舵トルクThを検出するトルクセンサ10とが設けられており、ハンドル1の操舵力を補助するモータ100が減速ギア3を介してコラム軸2に連結されている。電動パワーステアリング装置300Cを制御するコントロールユニット(ECU)30には、バッテリ13から電力が供給されると共に、イグニションキー11を経てイグニションキー信号が入力される。
コントロールユニット30は、トルクセンサ10で検出された操舵トルクThと車速センサ12で検出された車速Vsとに基づいてアシスト(操舵補助)指令の電流指令値の演算を行い、演算された電流指令値に補償等を施した電圧制御指令値Vrefによってモータ100を制御する。舵角センサ14は必須のものではなく、配設されていなくても良く、モータ100に連結されたレゾルバ等の回転センサから舵角(モータ角度)θeを得ることもできる。
コントロールユニット30は、主としてCPU(Central Processing Unit)(MPU(Micro Processor Unit)やMCU(Micro Controller Unit)等を含む)を含むプログラム実行可能なコンピュータを備えている。
コントロールユニット30は、モータ100を駆動するインバータ161や、モータ100の電流を検出するモータ電流検出回路162や、モータ100のモータ角度θeを検出する角度検出部110Aなどの回路を備えている。なお、これらの回路は、モータ100側に搭載されていてもよい。
コントロールユニット30には、車両の各種情報を授受するCAN(Controller Area Network)40が接続されており、車速VsはCAN40から受信することも可能である。また、コントロールユニット30には、CAN40以外の通信、アナログ/ディジタル信号、電波等を授受する非CAN41も接続可能である。
モータ100は、近年、電動パワーステアリング装置300Cのアクチュエータとして主流である3相ブラシレスモータである。モータ100は、空間ベクトル駆動を用いたベクトル制御方式により制御される。空間ベクトル駆動を用いたベクトル制御方式は、モータ100のロータの座標軸であるトルクを制御するq軸と、磁界の強さを制御するd軸とを独立に設定し、dq軸が90°の関係にあることから、そのベクトルで各軸に相当する電流(d軸電流指令値Iref_d,q軸電流指令値Iref_q)を制御する。
[モータ制御装置400C]
図39は、コントロールユニット30によって構成されるモータ制御装置400Cの機能構成図である。モータ制御装置400Cの機能は、CPU等において実行されるプログラムと、インバータ等の電子回路とを適宜組み合わせて実現される。以降の説明において電子回路として記載された機能が、CPU等において実行されるプログラムとして実現されていてもよい。
モータ制御装置400Cは、モータ100の駆動制御を行う。モータ制御装置400Cは、電流指令値演算部31と、モータ制御部39Cと、PWM制御部160と、インバータ161と、モータ電流検出回路162と、モータ角度検出部110Aと、角速度演算部110Bと、3相交流/dq軸変換部130と、を備える。
電流指令値演算部31は、操舵トルクThと車速Vs等に基づきアシストマップ等を用いて演算された2軸(dq軸座標系)のdq軸電流指令値Iref_m(m=d,q)を、モータ制御部39Cに出力する。
モータ制御部39Cは、入力されるdq軸電流指令値Iref_m(m=d,q)、モータ角度θeおよびモータ回転数N等から、デッドタイム補償を施した電圧制御指令値Vref_mb(m=d,q)を算出する。また、モータ制御部39Cは、電圧制御指令値Vref_mb(m=d,q)等から、空間ベクトル変調により3相のDuty指令値Du_o,Dv_o,Dw_oを算出して、PWM制御部160に出力する。
図40は、PWM制御部160およびインバータ161の構成図である。
インバータ161は、図40に示すように、FETの3相ブリッジで構成されており、PWM-Duty値D1〜D6でON/OFFされることによってモータ100を駆動する。インバータ161とモータ100との間には、アシスト制御停止時等に電流の供給を遮断するためのモータスイッチ101が介挿されている。上側アームはスイッチング素子としてのFETQ1,Q2,Q3で構成され、下側アームはFETQ4,Q5,Q6で構成されている。また、FETQ1およびQ4がU相、FETQ2およびQ5がV相、FETQ3およびQ6がW相の駆動素子である。
PWM制御部160は、図40に示すように、入力された3相のDuty指令値Du_o,Dv_o,Dw_oに基づき、図40に示すような上下アームのブリッジ構成で成るインバータ(インバータ印加電圧VR)161を介してモータ100を駆動制御する。PWM制御部160は、図40に示すように、PWM部160A−2と、ゲート駆動部160Bとを有する。
PWM部160A−2は、図40に示すように、3相のDuty指令値Du_o,Dv_o,Dw_oをそれぞれ所定式に従って3相分PWM―Duty値D1〜D6を算出する。PWM部160A−2には、発振部160Cから例えば三角波の変調信号(キャリア)CFが入力されており、PWM部160A−2は変調信号CFに同期してPWM―Duty値D1〜D6を算出する。
ゲート駆動部160Bは、図40に示すように、PWM―Duty値D1〜D6を出力して駆動素子であるFETQ1〜Q6のゲートを駆動する。
電動パワーステアリング装置300Cは車載製品であるため、稼動温度範囲が広く、フェールセーフの観点からモータ100を駆動するインバータ161は家電製品を代表とする一般産業用と比較して、デッドタイムを大きく(産業用機器<EPS)する必要がある。一般にスイッチング素子(例えばFET(Field-Effect Transistor))にはOFFの際に遅れ時間があるため、上下アームのスイッチング素子のOFF/ON切替えを同時に行うと、直流リンクが短絡する状況が発生する場合がある。この状況の発生を防ぐため、上下アーム両方のスイッチング素子がOFFになる時間(デッドタイム)が設けられる。
上記のようなデッドタイム補償を行った場合、電流波形が歪み、電流制御の応答性や操舵感が悪化し、例えばハンドルがオンセンター付近にある状態でゆっくり操舵すると、トルクリップル等による不連続な操舵感などが生じる場合がある。
電流検出器162は、図39に示すように、モータ100の3相モータ電流Iu,Iv,Iwを検出する。検出された3相モータ電流Iu,Iv,Iwは、3相交流/dq軸変換部130に入力され、2相のフィードバックdq軸電流Id,Iqに変換される。2相のフィードバックdq軸電流Id,Iqは、モータ制御部39Cに入力される。
モータ角度検出部110Aは、モータ100のモータ角度θeを、必要がある場合は演算を行い、取得する。モータ角度θeは、角速度演算部110B、モータ制御部39Cおよび3相交流/dq軸変換部130に入力される。
角速度演算部110Bは、モータ角度θeからモータ回転数Nおよびモータ角速度ωを演算により取得する。モータ回転数Nおよびモータ角速度ωは、モータ制御部39Cに入力される。
[モータ制御部39C]
図41は、モータ制御部39Cの機能構成図である。
モータ制御部39Cは、電圧指令値演算部220と、電気角補間部240Cと、空間ベクトル変調部250と、最終Duty演算部200と、Duty出力設定部160A−1と、を備えている。
電圧指令値演算部220は、dq軸デッドタイム補償値演算部201と、dq軸電流フィードバック制御部203と、電圧/Duty変換係数演算部204と、加算部205と、dq軸Dutyクランプ/VR感応演算部210と、を備えている。
電圧指令値演算部220は、モータ100から制御周期Tcごとに取得したモータ電気角θeおよびモータ回転数θeと電流指令値Iref_m(m=d,q)などを用いて電圧指令値を算出する(電圧指令値演算工程)。
dq軸デッドタイム補償値演算部201は、入力されるモータ回転数N、モータ角度(電気角)θe、dq軸電流指令値Iref_m(m=d,q)から算出したdq軸デッドタイム補償値DT_m(m=d,q)を加算部205に出力する。
dq軸電流フィードバック制御部203は、入力されるモータ角速度ω、dq軸電流指令値Iref_m(m=d,q)、2相のフィードバックdq軸電流Id,Iqから算出した電圧制御指令値Vref_ma(m=d,q)を加算部205に出力する。
電圧/Duty変換係数演算部204は、インバータ印加電圧VRに応じて電圧/Dutyの変換係数Kcを算出する。
加算部205は、dq軸デッドタイム補償値DT_m(m=d,q)と、電圧制御指令値Vref_ma(m=d,q)とを加算した電圧制御指令値Vref_mb(m=d,q)を、3相Dutyクランプ/VR感応演算部210に出力する。
dq軸Dutyクランプ/VR(インバータ印加電圧)感応演算部210は、電圧制御指令値Vref_mb(m=d,q)と、電圧/Duty変換の変換係数Kcとを乗算して算出したdq軸正規用のDuty指令値D1m(m=d,q)(Duty_d,Duty_q)を、空間ベクトル変調部250に入力する。
[電気角補間部240C]
図42は、電気角補間部240Cの構成図である。
電気角補間部240Cは、入力されたモータ角度θeから、補間Duty演算用のモータ角度(補間電気角)θsを算出して、空間ベクトル変調部250に出力する(電気角補間工程)。
電気角補間部240Cは、制御周期250μs(Tc)で検出されたモータ角度θeに対する1次関数補間演算(First Order Hold演算:以下では、1次関数補間演算のことを単に「FOH演算」とする場合もある。)により、制御周期TcからTmμs(0<Tm<Tc)経過後のモータ角度(補間電気角)θsを推定し、推定されたモータ角度(補間電気角)θsに基づいて補間Duty指令値を算出する。
電気角補間部240Cが行うdq軸電流制御では、空間ベクトル変調後のDuty指令値を補間対象としない。空間ベクトル変調後のDuty指令値には、過渡変化のあるデッドタイム補償値や空間ベクトル変調による3次高周波の歪み成分等に起因するノイズ成分が含まれ、Duty指令値を直接補間して算出した補間Duty指令値には、大きなノイズを含む値となる場合があるためである。
電気角補間部240Cは、図42に示すように、モータ角度θeを入力して直接的にFOH演算を行う演算処理部241C(FOH演算部241C−1およびロールオーバ処理部241−2)と、モータ角度θeを入力してオフセット処理等を行い、FOH演算を行うオフセット付き演算処理部242Cと、モータ角度θeが90°より大きく、270°以下である範囲とそれ以外の範囲のいずれに属するかを判定して切替フラグSFを出力するモータ角度切替判定部243と、切替フラグSFによって接点a,bを切替えて補間Duty演算用のモータ角度(補間電気角)θsを出力する切替部244と、を備えている。
図43は、制御周期TcからTmμs(0<Tm<Tc)経過後において、FOH演算により算出した補間電気角を示している。以前に検出したモータ電気角θeを用いて補間電気角θsを算出することで、電気角の変化を滑らかにすることができる。
FOH演算に用いられる関数y[k]は、式18で表される。y[k]は制御周期数kにおけるモータ角度(電気角)を表す関数である。
係数a,bを用いて、前回値y[−1]、今回値y[0]で表すと式19が成立する。
以上の数式を整理してa,bは、y[0],y[−1]を用いて式20のように表される。
補間電気角θsは、制御周期TcからTm後の電気角であるから、式21にk=Tm/Tcを代入することで算出することができる。例として、制御周期Tc=250[us]、Tm=125[us]とすると、y[k]は式21にk=0.5を代入することで算出することができる。
また、制御周期Tc=250[us]、Tm=150[us]とすると、y[k]は式21にk=0.6を代入することで算出することができる。
図44は、FOH演算部241C−1(242C−4)の機能構成図である。
FOH演算部241C−1は、モータ角度θeの前回値の保持ユニット245−1および保持ユニット245−2と、係数部B0(245−3)と、係数部B1(245−4)と、係数部B2(245−5)と、加算部245−6と、加算部245−7と、を有している。
モータ角度θeは、係数部B0(245−3)および保持ユニット245−1に入力され、保持ユニット245−1の保持値は係数部B1(245−4)に入力される。係数部B0(245−3)および係数部B1(245−4)の各出力値が、加算部245−6で加算されて、補間電気角θsとして出力される。
補間電気角θsを算出する際の係数B0,B1は、式22〜23により、表2のように表される。
電気角補間部240C内の演算処理部241Cは、図42に示すように、モータ角度θeを入力してFOH演算を行うFOH演算部241C−1と、FOH演算部241C−1から出力されるモータ角度θe1をロールオーバ処理(波形処理)するロールオーバ処理部241−2と、を備えている。ロールオーバ処理部241−2でロールオーバ処理されたモータ角度θe2は、切替部244の接点aに入力される。
オフセット付き演算処理部242Cは、図42に示すように、モータ角度θeが入力されて固定部242−1から入力される係数180°によるオフセット処理を行う加算部242−2と、加算部242−2から入力されるモータ角度θe3をロールオーバ処理(波形処理)するロールオーバ処理部242−3と、ロールオーバ処理部242−3から入力されるモータ角度θe4を補正するFOH演算部242C−4と、FOH演算部242C−4からモータ角度θe5が入力されて固定部242−5から入力される係数180°によるオフセット戻し処理を行う減算部242−6と、減算部242−6から入力されるモータ角度θe6をロールオーバ処理(波形処理)するロールオーバ処理部242−7と、を備えている。ロールオーバ処理部242−7でロールオーバ処理されたモータ角度θe7は、切替部244の接点bに入力される。
演算処理部241Cのロールオーバ処理部241−2からのモータ角度θe2は切替部244の接点aに入力されており、オフセット付き演算処理部242Cのロールオーバ処理部242−7からのモータ角度θe7は切替部244の接点bに入力されている。そして、切替部244の接点a及びbは、モータ角度切替判定部243からの切替フラグSF(「H」、「L」)によって切替えられ、切替部244から補間Duty演算用のモータ角度(補間電気角)θsが出力される。
モータ角度(電気角)θeは、現在のモータ角度から次のモータ角度に移る際において360°を超えた場合、0°に戻る。このとき過渡的な角度変動が発生するため、現在のモータ角度を用いてFOH演算を行うと正確な補間演算結果にならない場合がある。この問題を回避するため、電気角補間部240Cは、入力電気角のモータ角度θeに応じて演算出力(補間Duty演算用のモータ角度θs)を切替える。
モータ角度θeが90°<θe≦270°の範囲では、モータ角度θeに過渡的な角度変動がない。そのため、電気角補間部240Cは、入力されるモータ角度θeに対してFOH演算を行う。
一方、モータ角度θeが0°≦θe≦90°または270°<θe≦360°の範囲では、モータ角度θeに過渡的な角度変動がある。そのため、電気角補間部240Cは、モータ角度θeを180°オフセット処理し、連続的な角度信号にしてからFOH演算を行い、FOH演算後の補間演算結果に対して180°オフセット戻し処理を行う。
モータ角度切替判定部243は、入力モータ角度θeから切替フラグSF(90°<θe≦270°のとき「H」、0°≦θe≦90°または270°<θe≦360°のとき「L」)を生成する。
切替部244は、切替フラグSFに基づいて、FOH演算後の補間Duty演算用のモータ角度(補間電気角)θsを選択して出力する。
すなわち、切替部244は、90°<θe≦270°のとき、式24のように制御され、モータ角度θe2を補間Duty演算用のモータ角度θsとして出力する。
また、切替部244は、0°≦θe≦90°または270°<θe≦360°のとき、式25のように制御され、モータ角度θe7を補間Duty演算用のモータ角度θsとして出力する。
図45は、電気角補間部240Cの制御フローチャートを示す。
電気角補間部240Cにモータ角度(電気角)θeが入力される(ステップS201)。
演算処理部241CのFOH演算部241C−1は、FOH演算を行う(ステップS210)。モータ角度θeは、次のFOH演算において前回値として使用するため、保持ユニット245−1に入力される。また、保持ユニット245−1に入力されていた前回値は、次のFOH演算において前々回値として使用するため、保持ユニット245−2に入力される。
ロールオーバ処理部241−2は、FOH演算されたモータ角度θe1をロールオーバ処理してモータ角度θe2を出力する(ステップS211)。
オフセット付き演算処理部242Cは、加算部242−2が固定部242−1から入力される係数180°を用いてモータ角度(電気角)θeをオフセット処理する(ステップS220)。
ロールオーバ処理部242−3は、オフセット処理されたモータ角度θe3をロールオーバ処理してモータ角度θe4を出力する(ステップS221)。
FOH演算部242C−4は、入力されたモータ角度θe4に対してFOH演算を行う(ステップS222)。モータ角度θeは、次のFOH演算において前回値として使用するため、保持ユニット245−1に入力される。
FOH演算されたモータ角度θe5は減算部242−6に入力され、固定部242−5から入力される係数180°でオフセット戻し処理が行われる(ステップS223)。
オフセット戻し処理されたモータ角度θe6は、ロールオーバ処理部242−7でロールオーバ処理されてモータ角度θe7が出力される(ステップS224)。
ステップS211およびステップS224の処理完了後、モータ角度切替判定部243は、モータ角度θeが90°より大きく、270°以下であることを判定する(ステップS202)。
この条件に当てはまる場合(YESの場合)、モータ角度切替判定部243は、切替フラグSFを「H」にする。
上記条件に当てはまらない場合(NOの場合)、モータ角度θeは0°以上で90°以下、または270°より大きく360°以下であり、モータ角度切替判定部243は、切替フラグSFを「L」にする。
モータ角度切替判定部243から入力された切替フラグSFが「H」の場合、切替部244は、θe2を選択し、補間Duty演算用のモータ角度(補間電気角)θsとして出力する(ステップS203)。
モータ角度切替判定部243から入力された切替フラグSFが「L」の場合、切替部244は、θe7を選択し、補間Duty演算用のモータ角度(補間電気角)θsとして出力する(ステップS204)。
図46は、電気角補間部240Cの各部波形を示しており、横軸は時間[sec]であり、縦軸はMPU等で処理する内部値で、64[dec]/1[deg]である。なお、23040[dec]=360[deg]である。
図46(A)は演算処理部241Cから出力されるモータ角度θe2の波形例であり、図46(B)はオフセット付き演算処理部242Cから出力されるモータ角度θe7の波形例である。また、図46(C)は切替フラグSFの「H」、「L」の切替のタイミングを示しており、図46(D)は切替部244から出力される補間Duty演算用のモータ角度(補間電気角)θsの波形例を示している。
図46(D)に示すように、電気角補間部240Cの出力するモータ角度(補間電気角)θsは、図46(A)に示す波形と比較して、モータ角度θsが360°を超えて0°に戻る際において、過渡的な角度変動がない。モータ角度θeはリニアリティが高ければ比較的ノイズが少なく、360°から0°に切替える角度変化以外に過渡的な変化がないため、FOH演算による補間電気角の算出において高い精度を確保することができる。
[空間ベクトル変調部250]
図47は、空間ベクトル変調部250の機能構成図である。
空間ベクトル変調部(変換部)250は、電圧の次元からDutyの次元に変換してから空間ベクトル変換演算を行う(変換工程)。空間ベクトル変調部250は、dq軸空間の正規演算用のDuty指令値D1m(m=d,q)(Duty_d,Duty_q)を3相Duty指令値(Duty_ua,Duty_va,Duty_wa)に変換して、3次高調波を重畳し、3相のDuty指令値Duty_u,Duty_v,Duty_wを出力する機能を有していれば良く、例えば本出願人による特開2017−70066号公報や国際公開第2017/098840号等で提案している空間ベクトル変調の手法を用いても良い。
空間ベクトル変調部250は、モータ角度(電気角)θeを用いて上記の空間ベクトル変換演算を行う空間ベクトル変調部250−0と、補間電気角θsを用いて空間ベクトル変換演算を行う空間ベクトル変調部250−1と、を有する。
空間ベクトル変調部250−0は、モータ角度(電気角)θeを用いて空間ベクトル変換演算を行い、3相のDuty指令値Duty_n(n=u,v,w)(Duty_u,Duty_v,Duty_w)を出力する。
空間ベクトル変調部250−1は、補間電気角θsを用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_n_m1(n=u,v,w)(Duty_u_m1,Duty_v_m1,Duty_w_m1)を出力する。
[最終Duty演算部200]
図48は、最終Duty演算部200の機能構成図である。
最終Duty演算部200は、空間ベクトル変調部250からの正規Duty指令値Duty_n(n=u,v,w)が加算部221に入力される。加算部221でDuty50%のオフセットを加算されたDuty値は、Duty出力を0〜100%の範囲(可変)で制限するリミッタ222に入力される。リミッタ222からは最終正規Duty指令値Dn(n=u,v,w)が出力される。
空間ベクトル変調部250からの補間Duty指令値Duty_n_m1は加算部231に入力され、加算部231でDuty50%のオフセットを加算されたDuty値は、Duty出力を0〜100%の範囲(可変)で制限するリミッタ232に入力される。リミッタ232から最終補間Duty指令値Dnm1(n=u,v,w)が出力される。
一般的にEPSはバッテリ(DC+12V)からモータ印加電圧を供給するため、負(−)方向の印加電圧を供給することができない。このままでは負方向の相電圧指令値を供給できないため、負方向に相電流を流すことができない。この問題に対応するため、3相ともDuty値50%(+6V)オフセットして基準電圧にすることにより、3相が0Vでなくても3相Duty値50%時に相電流が0Aになる(モータ印加電圧+12V時)。例えば、U相Duty値50%(+6V)、V相Duty値50%(+6V)、W相Duty値50%(+6V)の場合、U相0A、V相0A、W相0Aとなり、U相Duty値60%(+7.2V)、V相Duty値50%(+6V)、W相Duty値40%(+4.8V)とした場合、U相には正(+)方向に電流が流れ、U相Duty値40%(+4.8V)、V相Duty値50%(+6V)、W相Duty値60%(+7.2V)とした場合、U相には負方向に電流が流れる。3相ともDuty値50%にオフセットして基準電圧にすることによって、印加電圧が正のまま、負方向の電流を流すことができる。なお、Duty値50%オフセットは基本的に固定であるが、Duty値50%時の基準電圧は、供給される印加電圧状態によって変動する。例えば、印加電圧11Vの時、Duty値50%は5.5Vとなり、印加電圧13Vの時、Duty値50%は6.5Vになる。
[Duty出力設定部160A−1]
図49は、Duty出力設定部160A−1の機能構成図である。
Duty出力設定部(出力設定部)160A−1は、図49に示すように、制御周期Tcおよび制御周期TcからTmμs(0<Tm<Tc)経過後において、制御周期Tcからの経過時間Tに基づいて、出力する最終的なDuty指令値Du_o,Dv_o,Dw_oを切り替えて出力する(出力設定工程)。
図50および図51は、モータ回転数が一定回転数(2000rpm)になるように操舵した条件において、補間電気角θs[deg]を推定したシミュレーション結果である。図50は、制御周期Tc=250[us]、Tm=125[us]の条件におけるシミュレーション結果である。図51は、制御周期Tc=250[us]、Tm=150[us]の条件におけるシミュレーション結果である。いずれの結果においても、補間電気角が、モータ電気角θeを線形補間した線に重なっており、FOH演算による推定角度演算が精度高く適切に行われていることが確認できる。
図52および図53は、図50および図51に結果を示すシミュレーションと同一条件において推定した補間電気角θsを使用して演算したDuty指令値(U相)Du_m1〜Du_m4のシミュレーション波形である。いずれの結果においても、補間Duty指令値が、正規Duty指令値Duを線形補間した線上または近傍に出力され、補間電気角を用いたDuty指令値の補間が精度高く適切に行われていることが確認できる。なお、V,W相は図示されていないが同様の結果を示す。
本実施形態のモータ制御装置400Cによれば、デッドタイム補償の影響を受けずに、ノイズが少ない補間Duty指令値を算出し、PWM演算を行う周期よりも早い周期(50μs)でPWM制御の制御信号を変動させることができる。これにより、マイクロコンピュータの演算処理量の増加は軽微でありながら、ブラシレスモータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
本実施形態のモータ制御装置400Cによれば、補間電気角の演算に一次関数補間演算FOHを使用しており、二次関数補間演算等の補間演算と比較して、精度がわずかに低下するものの、マイクロコンピュータの演算処理量の増加を好適に抑えることができる。
以上、本発明の第三実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。また、上述の実施形態および変形例において示された構成要素は適宜に組み合わせて構成することが可能である。
(変形例7)
例えば、上記実施形態に係るモータ制御装置400Cは、モータ100が空間ベクトル駆動を用いたベクトル制御方式により制御されていたが、モータ制御装置の制御対象のモータはこれに限定されない。本発明に係るモータ制御装置の制御対象のモータは、例えば正弦波制御方式のブラシレスモータであってもよい。本発明に係るモータ制御装置は、Duty指令値を直接の補間対象とせず、モータ角度(電気角)θeを補間対象とする。モータ角度θeはリニアリティが高ければ比較的ノイズが少なく、360°から0°に切替える角度変化以外に過渡的な変化がないため、FOH演算による補間電気角の算出および補間Duty指令値の算出において高い精度を確保することができる。
(変形例8)
例えば、上記実施形態に係るモータ制御装置400Cは、電動パワーステアリング装置300Cに搭載されていたが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、高トルクが要求される一方で低騒音が要求されるモータ駆動装置に搭載することが適している。例えば、本発明に係るモータ制御装置は、装着者の歩行時の筋力を支援する歩行支援装置や、室内で動作する掃除装置等に搭載することで、モータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
(変形例9)
例えば、上記実施形態に係るモータ制御装置400Cは、制御周期Tcが250μs(周波数4KHz)であったが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、制御周期Tcが100μs以上、250μs以下であるとき好適に可聴帯域のモータに起因する音を低減することができる。モータ制御装置が搭載するCPU等の性能が向上したり、制御対象のモータの極数が増加したりすることで、制御周期が250μsより短くなることが予測される。制御周期Tcが100μs以上、250μs以下である場合、上記実施形態と同様に、可聴帯域のモータに起因する音を生じる問題が発生するが、本発明に係るモータ制御装置によれば、ブラシレスモータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
(第四実施形態)
本発明の第四実施形態について、図54から図76を参照して説明する。
図54は、本実施形態に係るモータ制御装置400Dを搭載する電動パワーステアリング装置300Dの構成を示す模式図である。電動パワーステアリング装置300Dは、コラム部(ステアリングシャフト)に電動モータと減速機構とが配置されるコラムアシスト式電動パワーステアリング装置である。
[電動パワーステアリング装置300D]
電動パワーステアリング装置300Dは、ハンドル1のコラム軸(ステアリングシャフト、ハンドル軸)2、減速ギア3、ユニバーサルジョイント4a,4b、ピニオンラック機構5、タイロッド6a,6bを経て、更にハブユニット7a,7bを介して操向車輪8L,8Rに連結されている。また、コラム軸2には、ハンドル1の舵角θeを検出する舵角センサ14と、ハンドル1の操舵トルクThを検出するトルクセンサ10とが設けられており、ハンドル1の操舵力を補助するモータ100が減速ギア3を介してコラム軸2に連結されている。電動パワーステアリング装置300Dを制御するコントロールユニット(ECU)30には、バッテリ13から電力が供給されると共に、イグニションキー11を経てイグニションキー信号が入力される。
コントロールユニット30は、トルクセンサ10で検出された操舵トルクThと車速センサ12で検出された車速Vsとに基づいてアシスト(操舵補助)指令の電流指令値の演算を行い、演算された電流指令値に補償等を施した電圧制御指令値Vrefによってモータ100を制御する。舵角センサ14は必須のものではなく、配設されていなくても良く、モータ100に連結されたレゾルバ等の回転センサから舵角(モータ角度)θeを得ることもできる。
コントロールユニット30は、主としてCPU(Central Processing Unit)(MPU(Micro Processor Unit)やMCU(Micro Controller Unit)等を含む)を含むプログラム実行可能なコンピュータを備えている。
コントロールユニット30は、モータ100を駆動するインバータ161や、モータ100の電流を検出するモータ電流検出回路162や、モータ100のモータ角度θeを検出する角度検出部110Aなどの回路を備えている。なお、これらの回路は、モータ100側に搭載されていてもよい。
コントロールユニット30には、車両の各種情報を授受するCAN(Controller Area Network)40が接続されており、車速VsはCAN40から受信することも可能である。また、コントロールユニット30には、CAN40以外の通信、アナログ/ディジタル信号、電波等を授受する非CAN41も接続可能である。
モータ100は、近年、電動パワーステアリング装置300Dのアクチュエータとして主流である3相ブラシレスモータである。モータ100は、空間ベクトル駆動を用いたベクトル制御方式により制御される。空間ベクトル駆動を用いたベクトル制御方式は、モータ100のロータの座標軸であるトルクを制御するq軸と、磁界の強さを制御するd軸とを独立に設定し、dq軸が90°の関係にあることから、そのベクトルで各軸に相当する電流(d軸電流指令値Iref_d,q軸電流指令値Iref_q)を制御する。
[モータ制御装置400D]
図55は、コントロールユニット30によって構成されるモータ制御装置400Dの機能構成図である。モータ制御装置400Dの機能は、CPU等において実行されるプログラムと、インバータ等の電子回路とを適宜組み合わせて実現される。以降の説明において電子回路として記載された機能が、CPU等において実行されるプログラムとして実現されていてもよい。
モータ制御装置400Dは、モータ100の駆動制御を行う。モータ制御装置400Dは、電流指令値演算部31と、モータ制御部39Dと、PWM制御部160と、インバータ161と、モータ電流検出回路162と、モータ角度検出部110Aと、角速度演算部110Bと、3相交流/dq軸変換部130と、を備える。
電流指令値演算部31は、操舵トルクThと車速Vs等に基づきアシストマップ等を用いて演算された2軸(dq軸座標系)のdq軸電流指令値Iref_m(m=d,q)を、モータ制御部39Dに出力する。
モータ制御部39Dは、入力されるdq軸電流指令値Iref_m(m=d,q)、モータ角度θeおよびモータ回転数N等から、デッドタイム補償を施した電圧制御指令値Vref_mb(m=d,q)を算出する。また、モータ制御部39Dは、電圧制御指令値Vref_mb(m=d,q)等から、空間ベクトル変調により3相のDuty指令値Du_o,Dv_o,Dw_oを算出して、PWM制御部160に出力する。
図56は、PWM制御部160およびインバータ161の構成図である。
インバータ161は、図56に示すように、FETの3相ブリッジで構成されており、PWM-Duty値D1〜D6でON/OFFされることによってモータ100を駆動する。インバータ161とモータ100との間には、アシスト制御停止時等に電流の供給を遮断するためのモータスイッチ101が介挿されている。上側アームはスイッチング素子としてのFETQ1,Q2,Q3で構成され、下側アームはFETQ4,Q5,Q6で構成されている。また、FETQ1およびQ4がU相、FETQ2およびQ5がV相、FETQ3およびQ6がW相の駆動素子である。
PWM制御部160は、図56に示すように、入力された3相のDuty指令値Du_o,Dv_o,Dw_oに基づき、図56に示すような上下アームのブリッジ構成で成るインバータ(インバータ印加電圧VR)161を介してモータ100を駆動制御する。PWM制御部160は、図56に示すように、PWM部160A−2と、ゲート駆動部160Bとを有する。
PWM部160A−2は、図56に示すように、3相のDuty指令値Du_o,Dv_o,Dw_oをそれぞれ所定式に従って3相分PWM―Duty値D1〜D6を算出する。PWM部160A−2には、発振部160Cから例えば三角波の変調信号(キャリア)CFが入力されており、PWM部160A−2は変調信号CFに同期してPWM―Duty値D1〜D6を算出する。
ゲート駆動部160Bは、図56に示すように、PWM―Duty値D1〜D6を出力して駆動素子であるFETQ1〜Q6のゲートを駆動する。
電動パワーステアリング装置300Dは車載製品であるため、稼動温度範囲が広く、フェールセーフの観点からモータ100を駆動するインバータ161は家電製品を代表とする一般産業用と比較して、デッドタイムを大きく(産業用機器<EPS)する必要がある。一般にスイッチング素子(例えばFET(Field-Effect Transistor))にはOFFの際に遅れ時間があるため、上下アームのスイッチング素子のOFF/ON切替えを同時に行うと、直流リンクが短絡する状況が発生する場合がある。この状況の発生を防ぐため、上下アーム両方のスイッチング素子がOFFになる時間(デッドタイム)が設けられる。
上記のようなデッドタイム補償を行った場合、電流波形が歪み、電流制御の応答性や操舵感が悪化し、例えばハンドルがオンセンター付近にある状態でゆっくり操舵すると、トルクリップル等による不連続な操舵感などが生じる場合がある。
電流検出器162は、図55に示すように、モータ100の3相モータ電流Iu,Iv,Iwを検出する。検出された3相モータ電流Iu,Iv,Iwは、3相交流/dq軸変換部130に入力され、2相のフィードバックdq軸電流Id,Iqに変換される。2相のフィードバックdq軸電流Id,Iqは、モータ制御部39Dに入力される。
モータ角度検出部110Aは、モータ100のモータ角度θeを、必要がある場合は演算を行い、取得する。モータ角度θeは、角速度演算部110B、モータ制御部39Dおよび3相交流/dq軸変換部130に入力される。
角速度演算部110Bは、モータ角度θeからモータ回転数Nおよびモータ角速度ωを演算により取得する。モータ回転数Nおよびモータ角速度ωは、モータ制御部39Dに入力される。
[モータ制御部39D]
図57は、モータ制御部39Dの機能構成図である。
モータ制御部39Dは、電圧指令値演算部220と、電気角補間部240Dと、空間ベクトル変調部250と、最終Duty演算部200と、Duty出力設定部160A−1と、を備えている。
電圧指令値演算部220は、dq軸デッドタイム補償値演算部201と、dq軸電流フィードバック制御部203と、電圧/Duty変換係数演算部204と、加算部205と、dq軸Dutyクランプ/VR感応演算部210と、を備えている。
電圧指令値演算部220は、モータ100から制御周期Tcごとに取得したモータ電気角θeおよびモータ回転数θeと電流指令値Iref_m(m=d,q)などを用いて電圧指令値を算出する(電圧指令値演算工程)。
dq軸デッドタイム補償値演算部201は、入力されるモータ回転数N、モータ角度(電気角)θe、dq軸電流指令値Iref_m(m=d,q)から算出したdq軸デッドタイム補償値DT_m(m=d,q)を加算部205に出力する。
dq軸電流フィードバック制御部203は、入力されるモータ角速度ω、dq軸電流指令値Iref_m(m=d,q)、2相のフィードバックdq軸電流Id,Iqから算出した電圧制御指令値Vref_ma(m=d,q)を加算部205に出力する。
電圧/Duty変換係数演算部204は、インバータ印加電圧VRに応じて電圧/Dutyの変換係数Kcを算出する。
加算部205は、dq軸デッドタイム補償値DT_m(m=d,q)と、電圧制御指令値Vref_ma(m=d,q)とを加算した電圧制御指令値Vref_mb(m=d,q)を、3相Dutyクランプ/VR感応演算部210に出力する。
dq軸Dutyクランプ/VR(インバータ印加電圧)感応演算部210は、電圧制御指令値Vref_mb(m=d,q)と、電圧/Duty変換の変換係数Kcとを乗算して算出したdq軸正規用のDuty指令値D1m(m=d,q)(Duty_d,Duty_q)を、空間ベクトル変調部250に入力する。
[電気角補間部240D]
図58は、電気角補間部240Dの構成図である。
電気角補間部240Dは、入力されたモータ角度θeから、補間Duty演算用のモータ角度(補間電気角)θsを算出して、空間ベクトル変調部250に出力する(電気角補間工程)。
電気角補間部240Dは、制御周期250μs(Tc)で検出されたモータ角度θeに対する1次関数補間演算(First Order Hold演算:以下では、1次関数補間演算のことを単に「FOH演算」とする場合もある。)により、制御周期Tcを1/5に分割した50μsの間隔(分割間隔)でモータ角度(補間電気角)θsを推定し、推定されたモータ角度(補間電気角)θsに基づいて補間Duty指令値を算出する。
電気角補間部240Dが行うdq軸電流制御では、空間ベクトル変調後のDuty指令値を補間対象としない。空間ベクトル変調後のDuty指令値には、過渡変化のあるデッドタイム補償値や空間ベクトル変調による3次高周波の歪み成分等に起因するノイズ成分が含まれ、Duty指令値を直接補間して算出した補間Duty指令値には、大きなノイズを含む値となる場合があるためである。
電気角補間部240Dは、図58に示すように、モータ角度θeを入力して直接的にFOH演算を行う演算処理部241D(FOH演算部241D−1およびロールオーバ処理部241−2)と、モータ角度θeを入力してオフセット処理等を行い、FOH演算を行うオフセット付き演算処理部242Dと、モータ角度θeが90°より大きく、270°以下である範囲とそれ以外の範囲のいずれに属するかを判定して切替フラグSFを出力するモータ角度切替判定部243と、切替フラグSFによって接点a,bを切替えて補間Duty演算用のモータ角度(補間電気角)θsを出力する切替部244と、を備えている。
図59から図62は、制御周期Tcを1/5に分割した50μsの間隔でFOH演算により算出した4つの補間電気角(以降、「補間電気角1〜4」と称す)を示している。以前に検出したモータ電気角θeを用いて補間電気角1〜4(θs1〜4)を算出することで、電気角の変化を滑らかにすることができる。
FOH演算に用いられる関数y[k]は、式26で表される。y[k]は制御周期数kにおけるモータ角度(電気角)を表す関数である。
係数a,bを用いて、前回値y[−1]、今回値y[0]で表すと式27が成立する。
以上の数式を整理してa,bは、y[0],y[−1]を用いて式28のように表される。
補間電気角1(θs1)は、制御周期Tcから50μs(Tc*{1/5})後の電気角であるから、式29にk=0.2を代入することで算出することができる。
補間電気角2(θs2)は、制御周期Tcから100μs(Tc*{2/5})後の電気角であるから、式29にk=0.4を代入することで算出することができる。
補間電気角3(θs3)は、制御周期Tcから150μs(Tc*{3/5})後の電気角であるから、式29にk=0.6を代入することで算出することができる。
補間電気角4(θs4)は、制御周期Tcから200μs(Tc*{4/5})後の電気角であるから、式29にk=0.8を代入することで算出することができる。
図63は、FOH演算部241D−1(242D−4)の機能構成図である。
FOH演算部241D−1は、モータ角度θeの前回値の保持ユニット245−1および保持ユニット245−2と、係数部B0(245−3)と、係数部B1(245−4)と、係数部B2(245−5)と、加算部245−6と、加算部245−7と、を有している。
モータ角度θeは、係数部B0(245−3)および保持ユニット245−1に入力され、保持ユニット245−1の保持値は係数部B1(245−4)および保持ユニット245−2に入力される。保持ユニット245−2の保持値は係数部B2(245−5)に入力され、係数部B0(245−3)、係数部B1(245−4)および係数部B2(245−5)の各出力値が、加算部245−7および加算部245−6で加算されて、補間電気角θsとして出力される。
補間電気角1〜4(θs1〜4)を算出する際の係数B0,B1は、式30〜33により、表3のように表される。
電気角補間部240D内の演算処理部241Dは、図58に示すように、モータ角度θeを入力してFOH演算を行うFOH演算部241D−1と、FOH演算部241D−1から出力されるモータ角度θe1をロールオーバ処理(波形処理)するロールオーバ処理部241−2と、を備えている。ロールオーバ処理部241−2でロールオーバ処理されたモータ角度θe2は、切替部244の接点aに入力される。
オフセット付き演算処理部242Dは、図58に示すように、モータ角度θeが入力されて固定部242−1から入力される係数180°によるオフセット処理を行う加算部242−2と、加算部242−2から入力されるモータ角度θe3をロールオーバ処理(波形処理)するロールオーバ処理部242−3と、ロールオーバ処理部242−3から入力されるモータ角度θe4を補正するFOH演算部242D−4と、FOH演算部242D−4からモータ角度θe5が入力されて固定部242−5から入力される係数180°によるオフセット戻し処理を行う減算部242−6と、減算部242−6から入力されるモータ角度θe6をロールオーバ処理(波形処理)するロールオーバ処理部242−7と、を備えている。ロールオーバ処理部242−7でロールオーバ処理されたモータ角度θe7は、切替部244の接点bに入力される。
演算処理部241Dのロールオーバ処理部241−2からのモータ角度θe2は切替部244の接点aに入力されており、オフセット付き演算処理部242Dのロールオーバ処理部242−7からのモータ角度θe7は切替部244の接点bに入力されている。そして、切替部244の接点a及びbは、モータ角度切替判定部243からの切替フラグSF(「H」、「L」)によって切替えられ、切替部244から補間Duty演算用のモータ角度(補間電気角)θsが出力される。
モータ角度(電気角)θeは、現在のモータ角度から次のモータ角度に移る際において360°を超えた場合、0°に戻る。このとき過渡的な角度変動が発生するため、現在のモータ角度を用いてFOH演算を行うと正確な補間演算結果にならない場合がある。この問題を回避するため、電気角補間部240Dは、入力電気角のモータ角度θeに応じて演算出力(補間Duty演算用のモータ角度θs)を切替える。
モータ角度θeが90°<θe≦270°の範囲では、モータ角度θeに過渡的な角度変動がない。そのため、電気角補間部240Dは、入力されるモータ角度θeに対してFOH演算を行う。
一方、モータ角度θeが0°≦θe≦90°または270°<θe≦360°の範囲では、モータ角度θeに過渡的な角度変動がある。そのため、電気角補間部240Dは、モータ角度θeを180°オフセット処理し、連続的な角度信号にしてからFOH演算を行い、FOH演算後の補間演算結果に対して180°オフセット戻し処理を行う。
モータ角度切替判定部243は、入力モータ角度θeから切替フラグSF(90°<θe≦270°のとき「H」、0°≦θe≦90°または270°<θe≦360°のとき「L」)を生成する。
切替部244は、切替フラグSFに基づいて、FOH演算後の補間Duty演算用のモータ角度(補間電気角)θsを選択して出力する。
すなわち、切替部244は、90°<θe≦270°のとき、式34のように制御され、モータ角度θe2を補間Duty演算用のモータ角度θsとして出力する。
また、切替部244は、0°≦θe≦90°または270°<θe≦360°のとき、式35のように制御され、モータ角度θe7を補間Duty演算用のモータ角度θsとして出力する。
図64は、電気角補間部240Dの制御フローチャートを示す。
電気角補間部240Dにモータ角度(電気角)θeが入力される(ステップS301)。
演算処理部241DのFOH演算部241D−1は、FOH演算を行う(ステップS310)。モータ角度θeは、次のFOH演算において前回値として使用するため、保持ユニット245−1に入力される。また、保持ユニット245−1に入力されていた前回値は、次のFOH演算において前々回値として使用するため、保持ユニット245−2に入力される。
ロールオーバ処理部241−2は、FOH演算されたモータ角度θe1をロールオーバ処理してモータ角度θe2を出力する(ステップS311)。
オフセット付き演算処理部242Dは、加算部242−2が固定部242−1から入力される係数180°を用いてモータ角度(電気角)θeをオフセット処理する(ステップS320)。
ロールオーバ処理部242−3は、オフセット処理されたモータ角度θe3をロールオーバ処理してモータ角度θe4を出力する(ステップS321)。
FOH演算部242D−4は、入力されたモータ角度θe4に対してFOH演算を行う(ステップS322)。モータ角度θeは、次のFOH演算において前回値として使用するため、保持ユニット245−1に入力される。また、保持ユニット245−1に入力されていた前回値は、次のFOH演算において前々回値として使用するため、保持ユニット245−2に入力される。
FOH演算されたモータ角度θe5は減算部242−6に入力され、固定部242−5から入力される係数180°でオフセット戻し処理が行われる(ステップS323)。
オフセット戻し処理されたモータ角度θe6は、ロールオーバ処理部242−7でロールオーバ処理されてモータ角度θe7が出力される(ステップS324)。
ステップS311およびステップS324の処理完了後、モータ角度切替判定部243は、モータ角度θeが90°より大きく、270°以下であることを判定する(ステップS302)。
この条件に当てはまる場合(YESの場合)、モータ角度切替判定部243は、切替フラグSFを「H」にする。
上記条件に当てはまらない場合(NOの場合)、モータ角度θeは0°以上で90°以下、または270°より大きく360°以下であり、モータ角度切替判定部243は、切替フラグSFを「L」にする。
モータ角度切替判定部243から入力された切替フラグSFが「H」の場合、切替部244は、θe2を選択し、補間Duty演算用のモータ角度(補間電気角)θsとして出力する(ステップS303)。
モータ角度切替判定部243から入力された切替フラグSFが「L」の場合、切替部244は、θe7を選択し、補間Duty演算用のモータ角度(補間電気角)θsとして出力する(ステップS304)。
電気角補間部240Dは、補間電気角1〜4(θs1〜4)に対応する係数B0,B1(表1参照)を用いてFOH演算を行い、補間電気角1〜4(θs1〜4)をそれぞれ算出する。
図65は、電気角補間部240Dの各部波形を示しており、横軸は時間[sec]であり、縦軸はMPU等で処理する内部値で、64[dec]/1[deg]である。なお、23040[dec]=360[deg]である。
図65(A)は演算処理部241Dから出力されるモータ角度θe2の波形例であり、図65(B)はオフセット付き演算処理部242Dから出力されるモータ角度θe7の波形例である。また、図65(C)は切替フラグSFの「H」、「L」の切替のタイミングを示しており、図65(D)は切替部244から出力される補間Duty演算用のモータ角度(補間電気角)θsの波形例を示している。
図65(D)に示すように、電気角補間部240Dの出力するモータ角度(補間電気角)θsは、図65(A)に示す波形と比較して、モータ角度θsが360°を超えて0°に戻る際において、過渡的な角度変動がない。モータ角度θeはリニアリティが高ければ比較的ノイズが少なく、360°から0°に切替える角度変化以外に過渡的な変化がないため、FOH演算による補間電気角の算出において高い精度を確保することができる。
[空間ベクトル変調部250]
図66は、空間ベクトル変調部250の機能構成図である。
空間ベクトル変調部(変換部)250は、電圧の次元からDutyの次元に変換してから空間ベクトル変換演算を行う(変換工程)。空間ベクトル変調部250は、dq軸空間の正規演算用のDuty指令値D1m(m=d,q)(Duty_d,Duty_q)を3相Duty指令値(Duty_ua,Duty_va,Duty_wa)に変換して、3次高調波を重畳し、3相のDuty指令値Duty_u,Duty_v,Duty_wを出力する機能を有していれば良く、例えば本出願人による特開2017−70066号公報や国際公開第2017/098840号等で提案している空間ベクトル変調の手法を用いても良い。
空間ベクトル変調部250は、モータ角度(電気角)θeを用いて上記の空間ベクトル変換演算を行う空間ベクトル変調部250−0と、補間電気角1〜4(θs1〜4)をそれぞれ用いて空間ベクトル変換演算を行う空間ベクトル変調部250−1,250−2,250−3,250−4と、を有する。
空間ベクトル変調部250−0は、モータ角度(電気角)θeを用いて空間ベクトル変換演算を行い、3相のDuty指令値Duty_u,Duty_v,Duty_wを出力する。
空間ベクトル変調部250−1は、補間電気角1(θs1)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m1,Duty_v_m1,Duty_w_m1を出力する。
空間ベクトル変調部250−2は、補間電気角2(θs2)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m2,Duty_v_m2,Duty_w_m2を出力する。
空間ベクトル変調部250−3は、補間電気角3(θs3)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m3,Duty_v_m3,Duty_w_m3を出力する。
空間ベクトル変調部250−4は、補間電気角4(θs4)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m4,Duty_v_m4,Duty_w_m4を出力する。
[最終Duty演算部200]
図67は、最終Duty演算部200の機能構成図である。
最終Duty演算部200は、空間ベクトル変調部250からの正規Duty指令値Duty_n(n=u,v,w)が加算部221に入力される。加算部221でDuty50%のオフセットを加算されたDuty値は、Duty出力を0〜100%の範囲(可変)で制限するリミッタ222に入力される。リミッタ222からは最終正規Duty指令値Dn(n=u,v,w)が出力される。
空間ベクトル変調部250からの補間Duty指令値Duty_n_m1は加算部231に入力され、加算部231でDuty50%のオフセットを加算されたDuty値は、Duty出力を0〜100%の範囲(可変)で制限するリミッタ232に入力される。リミッタ232から最終補間Duty指令値Dnm1(n=u,v,w)が出力される。
空間ベクトル変調部250からの補間Duty指令値Duty_n_m2,Duty_n_m3,Duty_n_m4は、補間Duty指令値Duty_n_m1と同様の処理がなされ、リミッタ232から最終補間Duty指令値Dnm2,Dnm3,Dnm4(n=u,v,w)が出力される。
一般的にEPSはバッテリ(DC+12V)からモータ印加電圧を供給するため、負(−)方向の印加電圧を供給することができない。このままでは負方向の相電圧指令値を供給できないため、負方向に相電流を流すことができない。この問題に対応するため、3相ともDuty値50%(+6V)オフセットして基準電圧にすることにより、3相が0Vでなくても3相Duty値50%時に相電流が0Aになる(モータ印加電圧+12V時)。例えば、U相Duty値50%(+6V)、V相Duty値50%(+6V)、W相Duty値50%(+6V)の場合、U相0A、V相0A、W相0Aとなり、U相Duty値60%(+7.2V)、V相Duty値50%(+6V)、W相Duty値40%(+4.8V)とした場合、U相には正(+)方向に電流が流れ、U相Duty値40%(+4.8V)、V相Duty値50%(+6V)、W相Duty値60%(+7.2V)とした場合、U相には負方向に電流が流れる。3相ともDuty値50%にオフセットして基準電圧にすることによって、印加電圧が正のまま、負方向の電流を流すことができる。なお、Duty値50%オフセットは基本的に固定であるが、Duty値50%時の基準電圧は、供給される印加電圧状態によって変動する。例えば、印加電圧11Vの時、Duty値50%は5.5Vとなり、印加電圧13Vの時、Duty値50%は6.5Vになる。
[Duty出力設定部160A−1]
図68は、Duty出力設定部160A−1の機能構成図である。
Duty出力設定部(出力設定部)160A−1は、図68に示すように、制御周期Tcを1/5に分割した50μsの間隔(分割間隔)に合わせ、制御周期Tcからの経過時間Tに基づいて、出力する最終的なDuty指令値Du_o,Dv_o,Dw_oを切り替えて出力する(出力設定工程)。
図69から図72は、モータ回転数が一定回転数(2000rpm)になるように操舵した条件において、補間電気角1〜4(θs1〜4)[deg]を推定したシミュレーション結果である。いずれの結果においても、補間電気角1〜4が、モータ電気角θeを線形補間した線に重なっており、FOH演算による推定角度演算が精度高く適切に行われていることが確認できる。
図73から図76は、図69から図72に結果を示すシミュレーションと同一条件において推定した補間電気角1〜4(θs1〜4)を使用して演算したDuty指令値(U相)Du_m1〜Du_m4のシミュレーション波形である。いずれの結果においても、補間Duty指令値が、正規Duty指令値Duを線形補間した線上または近傍に出力され、補間電気角を用いたDuty指令値の補間が精度高く適切に行われていることが確認できる。なお、V,W相は図示されていないが同様の結果を示す。
本実施形態のモータ制御装置400Dによれば、デッドタイム補償の影響を受けずに、ノイズが少ない補間Duty指令値を算出し、PWM演算を行う周期よりも早い周期(50μs)でPWM制御の制御信号を変動させることができる。これにより、マイクロコンピュータの演算処理量の増加は軽微でありながら、ブラシレスモータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
本実施形態のモータ制御装置400Dによれば、補間電気角の演算に一次関数補間演算FOHを使用しており、二次関数補間演算等の補間演算と比較して、精度がわずかに低下するものの、マイクロコンピュータの演算処理量の増加を好適に抑えることができる。
以上、本発明の第四実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。また、上述の実施形態および変形例において示された構成要素は適宜に組み合わせて構成することが可能である。
(変形例10)
例えば、上記実施形態に係るモータ制御装置400Dは、モータ100が空間ベクトル駆動を用いたベクトル制御方式により制御されていたが、モータ制御装置の制御対象のモータはこれに限定されない。本発明に係るモータ制御装置の制御対象のモータは、例えば正弦波制御方式のブラシレスモータであってもよい。本発明に係るモータ制御装置は、Duty指令値を直接の補間対象とせず、モータ角度(電気角)θeを補間対象とする。モータ角度θeはリニアリティが高ければ比較的ノイズが少なく、360°から0°に切替える角度変化以外に過渡的な変化がないため、FOH演算による補間電気角の算出および補間Duty指令値の算出において高い精度を確保することができる。
(変形例11)
例えば、上記実施形態に係るモータ制御装置400Dは、電動パワーステアリング装置300Dに搭載されていたが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、高トルクが要求される一方で低騒音が要求されるモータ駆動装置に搭載することが適している。例えば、本発明に係るモータ制御装置は、装着者の歩行時の筋力を支援する歩行支援装置や、室内で動作する掃除装置等に搭載することで、モータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
(変形例12)
例えば、上記実施形態に係るモータ制御装置400Dは、制御周期Tcを1/5に分割した50μsの等間隔(分割間隔)でモータ角度(補間電気角)θsを推定していたが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、制御周期Tcを任意の分割数で分割してもよく、また、不等間隔で分割してもよい。
(変形例13)
例えば、上記実施形態に係るモータ制御装置400Dは、制御周期Tcが250μs(周波数4KHz)であったが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、制御周期Tcが100μs以上、250μs以下であるとき好適に可聴帯域のモータに起因する音を低減することができる。モータ制御装置が搭載するCPU等の性能が向上したり、制御対象のモータの極数が増加したりすることで、制御周期が250μsより短くなることが予測される。制御周期Tcが100μs以上、250μs以下である場合、上記実施形態と同様に、可聴帯域のモータに起因する音を生じる問題が発生するが、本発明に係るモータ制御装置によれば、ブラシレスモータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
(第五実施形態)
本発明の第五実施形態について、図77から図95を参照して説明する。
図77は、本実施形態に係るモータ制御装置400Eを搭載する電動パワーステアリング装置300Eの構成を示す模式図である。電動パワーステアリング装置300Eは、コラム部(ステアリングシャフト)に電動モータと減速機構とが配置されるコラムアシスト式電動パワーステアリング装置である。
[電動パワーステアリング装置300E]
電動パワーステアリング装置300Eは、ハンドル1のコラム軸(ステアリングシャフト、ハンドル軸)2、減速ギア3、ユニバーサルジョイント4a,4b、ピニオンラック機構5、タイロッド6a,6bを経て、更にハブユニット7a,7bを介して操向車輪8L,8Rに連結されている。また、コラム軸2には、ハンドル1の舵角θeを検出する舵角センサ14と、ハンドル1の操舵トルクThを検出するトルクセンサ10とが設けられており、ハンドル1の操舵力を補助するモータ100が減速ギア3を介してコラム軸2に連結されている。電動パワーステアリング装置300Eを制御するコントロールユニット(ECU)30には、バッテリ13から電力が供給されると共に、イグニションキー11を経てイグニションキー信号が入力される。
コントロールユニット30は、トルクセンサ10で検出された操舵トルクThと車速センサ12で検出された車速Vsとに基づいてアシスト(操舵補助)指令の電流指令値の演算を行い、演算された電流指令値に補償等を施した電圧制御指令値Vrefによってモータ100を制御する。舵角センサ14は必須のものではなく、配設されていなくても良く、モータ100に連結されたレゾルバ等の回転センサから舵角(モータ角度)θeを得ることもできる。
コントロールユニット30は、主としてCPU(Central Processing Unit)(MPU(Micro Processor Unit)やMCU(Micro Controller Unit)等を含む)を含むプログラム実行可能なコンピュータを備えている。
コントロールユニット30は、モータ100を駆動するインバータ161や、モータ100の電流を検出するモータ電流検出回路162や、モータ100のモータ角度θeを検出する角度検出部110Aなどの回路を備えている。なお、これらの回路は、モータ100側に搭載されていてもよい。
コントロールユニット30には、車両の各種情報を授受するCAN(Controller Area Network)40が接続されており、車速VsはCAN40から受信することも可能である。また、コントロールユニット30には、CAN40以外の通信、アナログ/ディジタル信号、電波等を授受する非CAN41も接続可能である。
モータ100は、近年、電動パワーステアリング装置300Eのアクチュエータとして主流である3相ブラシレスモータである。モータ100は、空間ベクトル駆動を用いたベクトル制御方式により制御される。空間ベクトル駆動を用いたベクトル制御方式は、モータ100のロータの座標軸であるトルクを制御するq軸と、磁界の強さを制御するd軸とを独立に設定し、dq軸が90°の関係にあることから、そのベクトルで各軸に相当する電流(d軸電流指令値Iref_d,q軸電流指令値Iref_q)を制御する。
[モータ制御装置400E]
図78は、コントロールユニット30によって構成されるモータ制御装置400Eの機能構成図である。モータ制御装置400Eの機能は、CPU等において実行されるプログラムと、インバータ等の電子回路とを適宜組み合わせて実現される。以降の説明において電子回路として記載された機能が、CPU等において実行されるプログラムとして実現されていてもよい。
モータ制御装置400Eは、モータ100の駆動制御を行う。モータ制御装置400Eは、電流指令値演算部31と、モータ制御部39Eと、PWM制御部160と、インバータ161と、モータ電流検出回路162と、モータ角度検出部110Aと、角速度演算部110Bと、3相交流/dq軸変換部130と、を備える。
電流指令値演算部31は、操舵トルクThと車速Vs等に基づきアシストマップ等を用いて演算された2軸(dq軸座標系)のdq軸電流指令値Iref_m(m=d,q)を、モータ制御部39Eに出力する。
モータ制御部39Eは、入力されるdq軸電流指令値Iref_m(m=d,q)、モータ角度θeおよびモータ回転数N等から、デッドタイム補償を施した電圧制御指令値Vref_mb(m=d,q)を算出する。また、モータ制御部39Eは、電圧制御指令値Vref_mb(m=d,q)等から、空間ベクトル変調により3相のDuty指令値Du_o,Dv_o,Dw_oを算出して、PWM制御部160に出力する。
図79は、PWM制御部160およびインバータ161の構成図である。
インバータ161は、図79に示すように、FETの3相ブリッジで構成されており、PWM-Duty値D1〜D6でON/OFFされることによってモータ100を駆動する。インバータ161とモータ100との間には、アシスト制御停止時等に電流の供給を遮断するためのモータスイッチ101が介挿されている。上側アームはスイッチング素子としてのFETQ1,Q2,Q3で構成され、下側アームはFETQ4,Q5,Q6で構成されている。また、FETQ1およびQ4がU相、FETQ2およびQ5がV相、FETQ3およびQ6がW相の駆動素子である。
PWM制御部160は、図79に示すように、入力された3相のDuty指令値Du_o,Dv_o,Dw_oに基づき、図79に示すような上下アームのブリッジ構成で成るインバータ(インバータ印加電圧VR)161を介してモータ100を駆動制御する。PWM制御部160は、図79に示すように、PWM部160A−2と、ゲート駆動部160Bとを有する。
PWM部160A−2は、図79に示すように、3相のDuty指令値Du_o,Dv_o,Dw_oをそれぞれ所定式に従って3相分PWM―Duty値D1〜D6を算出する。PWM部160A−2には、発振部160Cから例えば三角波の変調信号(キャリア)CFが入力されており、PWM部160A−2は変調信号CFに同期してPWM―Duty値D1〜D6を算出する。
ゲート駆動部160Bは、図79に示すように、PWM―Duty値D1〜D6を出力して駆動素子であるFETQ1〜Q6のゲートを駆動する。
電動パワーステアリング装置300Eは車載製品であるため、稼動温度範囲が広く、フェールセーフの観点からモータ100を駆動するインバータ161は家電製品を代表とする一般産業用と比較して、デッドタイムを大きく(産業用機器<EPS)する必要がある。一般にスイッチング素子(例えばFET(Field-Effect Transistor))にはOFFの際に遅れ時間があるため、上下アームのスイッチング素子のOFF/ON切替えを同時に行うと、直流リンクが短絡する状況が発生する場合がある。この状況の発生を防ぐため、上下アーム両方のスイッチング素子がOFFになる時間(デッドタイム)が設けられる。
上記のようなデッドタイム補償を行った場合、電流波形が歪み、電流制御の応答性や操舵感が悪化し、例えばハンドルがオンセンター付近にある状態でゆっくり操舵すると、トルクリップル等による不連続な操舵感などが生じる場合がある。
電流検出器162は、図78に示すように、モータ100の3相モータ電流Iu,Iv,Iwを検出する。検出された3相モータ電流Iu,Iv,Iwは、3相交流/dq軸変換部130に入力され、2相のフィードバックdq軸電流Id,Iqに変換される。2相のフィードバックdq軸電流Id,Iqは、モータ制御部39Eに入力される。
モータ角度検出部110Aは、モータ100のモータ角度θeを、必要がある場合は演算を行い、取得する。モータ角度θeは、角速度演算部110B、モータ制御部39Eおよび3相交流/dq軸変換部130に入力される。
角速度演算部110Bは、モータ角度θeからモータ回転数Nおよびモータ角速度ωを演算により取得する。モータ回転数Nおよびモータ角速度ωは、モータ制御部39Eに入力される。
[モータ制御部39E]
図80は、モータ制御部39Eの機能構成図である。
モータ制御部39Eは、電圧指令値演算部220と、電気角補間部240Eと、空間ベクトル変調部250と、最終Duty演算部200と、Duty出力設定部160A−1と、を備えている。
電圧指令値演算部220は、dq軸デッドタイム補償値演算部201と、dq軸電流フィードバック制御部203と、電圧/Duty変換係数演算部204と、加算部205と、dq軸Dutyクランプ/VR感応演算部210と、を備えている。
電圧指令値演算部220は、モータ100から制御周期Tcごとに取得したモータ電気角θeおよびモータ回転数θeと電流指令値Iref_m(m=d,q)などを用いて電圧指令値を算出する(電圧指令値演算工程)。
dq軸デッドタイム補償値演算部201は、入力されるモータ回転数N、モータ角度(電気角)θe、dq軸電流指令値Iref_m(m=d,q)から算出したdq軸デッドタイム補償値DT_m(m=d,q)を加算部205に出力する。
dq軸電流フィードバック制御部203は、入力されるモータ角速度ω、dq軸電流指令値Iref_m(m=d,q)、2相のフィードバックdq軸電流Id,Iqから算出した電圧制御指令値Vref_ma(m=d,q)を加算部205に出力する。
電圧/Duty変換係数演算部204は、インバータ印加電圧VRに応じて電圧/Dutyの変換係数Kcを算出する。
加算部205は、dq軸デッドタイム補償値DT_m(m=d,q)と、電圧制御指令値Vref_ma(m=d,q)とを加算した電圧制御指令値Vref_mb(m=d,q)を、3相Dutyクランプ/VR感応演算部210に出力する。
dq軸Dutyクランプ/VR(インバータ印加電圧)感応演算部210は、電圧制御指令値Vref_mb(m=d,q)と、電圧/Duty変換の変換係数Kcとを乗算して算出したdq軸正規用のDuty指令値D1m(m=d,q)(Duty_d,Duty_q)を、空間ベクトル変調部250に入力する。
[電気角補間部240E]
図81は、電気角補間部240Eの構成図である。
電気角補間部240Eは、入力されたモータ角度θeから、補間Duty演算用のモータ角度(補間電気角)θcを算出して、空間ベクトル変調部250に出力する(電気角補間工程)。
電気角補間部240Eは、制御周期250μs(Tc)で検出されたモータ角度θeに対する2次関数補間演算(Second Order Hold演算:以下では、2次関数補間演算のことを単に「SOH演算」とする場合もある。)もしくは1次関数補間演算(First Order Hold演算:以下では、1次関数補間演算のことを単に「FOH演算」とする場合もある。)により、制御周期Tcを1/5に分割した50μsの間隔(分割間隔)でモータ角度(補間電気角)θsを推定し、推定されたモータ角度(補間電気角)θsに基づいて補間Duty指令値を算出する。
電気角補間部240Eが行うdq軸電流制御では、空間ベクトル変調後のDuty指令値を補間対象としない。空間ベクトル変調後のDuty指令値には、過渡変化のあるデッドタイム補償値や空間ベクトル変調による3次高周波の歪み成分等に起因するノイズ成分が含まれ、Duty指令値を直接補間して算出した補間Duty指令値には、大きなノイズを含む値となる場合があるためである。
電気角補間部240Eは、図81に示すように、モータ角度θeを入力して直接的にSOH演算もしくはFOH演算を行う演算処理部241Eと、モータ角度θeを入力してオフセット処理等を行い、SOH演算もしくはFOH演算を行うオフセット付き演算処理部242Eと、モータ角度θeが90°より大きく、270°以下である範囲とそれ以外の範囲のいずれに属するかを判定して切替フラグ(電気角切替フラグ)SFを出力するモータ角度切替判定部243と、切替フラグSFによって接点a,bを切替えて補間Duty演算用のモータ角度(補間電気角)θsを出力する切替部244と、補間演算切替フラグHFと補間切替フラグEFを出力する補間演算切替判定部247と、最終的な補間Duty演算用のモータ角度(補間電気角)θcを出力する第二切替部246と、を備えている。
図82から図85は、制御周期Tcを1/5に分割した50μsの間隔で推定された4つの補間電気角(以降、「補間電気角1〜4」と称す)を示している。以前に検出したモータ電気角θeを用いて補間電気角1〜4(θs1〜4)を算出することで、電気角の変化を滑らかにすることができる。
以降の説明において、制御周期Tcを1/5に分割した50μsの間隔でSOH演算により推定された4つの補間電気角1〜4を「θss1〜4」とする。また、制御周期Tcを1/5に分割した50μsの間隔でFOH演算により推定された4つの補間電気角1〜4を「θsf1〜4」とする。
SOH演算に用いられる関数y[k]は、式36で表される。y[k]は制御周期数kにおけるモータ角度(電気角)を表す関数である。
係数a,b,cを用いて、前々回値y[−2]、前回値y[−1]、今回値y[0]で表すと式37が成立する。
以上の数式を整理してa,b,cは、y[0],y[−1],y[−2]を用いて式38のように表される。
補間電気角1(θss1)は、制御周期Tcから50μs(Tc*{1/5})後の電気角であるから、式39にk=0.2を代入することで算出することができる。
補間電気角2(θss2)は、制御周期Tcから100μs(Tc*{2/5})後の電気角であるから、式39にk=0.4を代入することで算出することができる。
補間電気角3(θss3)は、制御周期Tcから150μs(Tc*{3/5})後の電気角であるから、式39にk=0.6を代入することで算出することができる。
補間電気角4(θss4)は、制御周期Tcから200μs(Tc*{4/5})後の電気角であるから、式39にk=0.8を代入することで算出することができる。
図86は、SOH演算部241−1(242−4)の機能構成図である。
SOH演算部241−1は、モータ角度θeの前回値の保持ユニット245−1および保持ユニット245−2と、係数部B0(245−3)と、係数部B1(245−4)と、係数部B2(245−5)と、加算部245−6と、加算部245−7と、を有している。
モータ角度θeは、係数部B0(245−3)および保持ユニット245−1に入力され、保持ユニット245−1の保持値は係数部B1(245−4)および保持ユニット245−2に入力される。保持ユニット245−2の保持値は係数部B2(245−5)に入力され、係数部B0(245−3)、係数部B1(245−4)および係数部B2(245−5)の各出力値が、加算部245−7および加算部245−6で加算されて、補間電気角θssとして出力される。
補間電気角1〜4(θss1〜4)を算出する際の係数B0,B1,B2は、式40〜43により、表4のように表される。
FOH演算に用いられる関数y[k]は、式44で表される。y[k]は制御周期数kにおけるモータ角度(電気角)を表す関数である。
係数a,bを用いて、前回値y[−1]、今回値y[0]で表すと式45が成立する。
以上の数式を整理してa,bは、y[0],y[−1]を用いて式46のように表される。
補間電気角1(θsf1)は、制御周期Tcから50μs(Tc*{1/5})後の電気角であるから、式47にk=0.2を代入することで算出することができる。
補間電気角2(θsf2)は、制御周期Tcから100μs(Tc*{2/5})後の電気角であるから、式47にk=0.4を代入することで算出することができる。
補間電気角3(θsf3)は、制御周期Tcから150μs(Tc*{3/5})後の電気角であるから、式47にk=0.6を代入することで算出することができる。
補間電気角4(θsf4)は、制御周期Tcから200μs(Tc*{4/5})後の電気角であるから、式47にk=0.8を代入することで算出することができる。
図87は、FOH演算部241D−1(242D−4)の機能構成図である。
FOH演算部241D−1は、モータ角度θeの前回値の保持ユニット245−1および保持ユニット245−2と、係数部B0(245−3)と、係数部B1(245−4)と、係数部B2(245−5)と、加算部245−6と、加算部245−7と、を有している。
モータ角度θeは、係数部B0(245−3)および保持ユニット245−1に入力され、保持ユニット245−1の保持値は係数部B1(245−4)および保持ユニット245−2に入力される。保持ユニット245−2の保持値は係数部B2(245−5)に入力され、係数部B0(245−3)、係数部B1(245−4)および係数部B2(245−5)の各出力値が、加算部245−7および加算部245−6で加算されて、補間電気角θsfとして出力される。
補間電気角1〜4(θsf1〜4)を算出する際の係数B0,B1は、式48〜51により、表5のように表される。
FOH演算は、SOH演算と比較して、演算処理量が少なく、コントロールユニット30が実行する際の処理負荷も少ない。
電気角補間部240E内の演算処理部241は、図81に示すように、モータ角度θeを入力してSOH演算を行うSOH演算部241−1と、モータ角度θeを入力してFOH演算を行うFOH演算部241D−1と、補間演算切替フラグHFに基づいて、SOH演算部241−1の出力θssとFOH演算部241D−1の出力θsfとを切り替えて出力する補間演算切替部241−3と、補間演算切替部241−3から出力されるモータ角度θe1をロールオーバ処理(波形処理)するロールオーバ処理部241−2と、を備えている。ロールオーバ処理部241−2でロールオーバ処理されたモータ角度θe2は、切替部244の接点aに入力される。
補間演算切替部241−3は、補間演算切替フラグHFがHである場合、FOH演算部241D−1の出力θsfをθs1として出力する。補間演算切替部241−3は、補間演算切替フラグHFがLである場合、SOH演算部241−1の出力θssをθs1として出力する。
オフセット付き演算処理部242は、図81に示すように、モータ角度θeが入力されて固定部242−1から入力される係数180°によるオフセット処理を行う加算部242−2と、加算部242−2から入力されるモータ角度θe3をロールオーバ処理(波形処理)するロールオーバ処理部242−3と、ロールオーバ処理部242−3から入力されるモータ角度θe4を補正するSOH演算部242−4と、モータ角度θe4を補正するFOH演算部242D−4と、補間演算切替フラグHFに基づいて、SOH演算部242−4の出力θssとFOH演算部242D−4の出力θsfとを切り替えて出力する補間演算切替部242−8と、補間演算切替部242−8からモータ角度θe5が入力されて固定部242−5から入力される係数180°によるオフセット戻し処理を行う減算部242−6と、減算部242−6から入力されるモータ角度θe6をロールオーバ処理(波形処理)するロールオーバ処理部242−7と、を備えている。ロールオーバ処理部242−7でロールオーバ処理されたモータ角度θe7は、切替部244の接点bに入力される。
補間演算切替部242−8は、補間演算切替フラグHFがHである場合、FOH演算部242D−4の出力θsfをθs5として出力する。補間演算切替部242−8は、補間演算切替フラグHFがLである場合、SOH演算部242−4の出力θssをθs5として出力する。
演算処理部241Eのロールオーバ処理部241−2からのモータ角度θe2は切替部244の接点aに入力されており、オフセット付き演算処理部242Eのロールオーバ処理部242−7からのモータ角度θe7は切替部244の接点bに入力されている。そして、切替部244の接点a及びbは、モータ角度切替判定部243からの切替フラグ(電気角切替フラグ)SF(「H」、「L」)によって切替えられ、切替部244から補間Duty演算用のモータ角度(補間電気角)θsが出力される。
モータ角度(電気角)θeは、現在のモータ角度から次のモータ角度に移る際において360°を超えた場合、0°に戻る。このとき過渡的な角度変動が発生するため、現在のモータ角度を用いてSOH演算を行うと正確な補間演算結果にならない場合がある。この問題を回避するため、電気角補間部240Eは、入力電気角のモータ角度θeに応じて演算出力(補間Duty演算用のモータ角度θs)を切替える。
モータ角度θeが90°<θe≦270°の範囲では、モータ角度θeに過渡的な角度変動がない。そのため、電気角補間部240Eは、入力されるモータ角度θeに対してSOH演算を行う。
一方、モータ角度θeが0°≦θe≦90°または270°<θe≦360°の範囲では、モータ角度θeに過渡的な角度変動がある。そのため、電気角補間部240Eは、モータ角度θeを180°オフセット処理し、連続的な角度信号にしてからSOH演算を行い、SOH演算後の補間演算結果に対して180°オフセット戻し処理を行う。
モータ角度切替判定部243は、入力モータ角度θeから切替フラグSF(90°<θe≦270°のとき「H」、0°≦θe≦90°または270°<θe≦360°のとき「L」)を生成する。
切替部244は、切替フラグSFに基づいて、SOH演算後の補間Duty演算用のモータ角度(補間電気角)θsを選択して出力する。
すなわち、切替部244は、90°<θe≦270°のとき、式52のように制御され、モータ角度θe2を補間Duty演算用のモータ角度θsとして出力する。
また、切替部244は、0°≦θe≦90°または270°<θe≦360°のとき、式53のように制御され、モータ角度θe7を補間Duty演算用のモータ角度θsとして出力する。
第二切替部246は、補間切替フラグEFに基づいて、最終的な補間Duty演算用のモータ角度(補間電気角)θcを選択して出力する。第二切替部246は、補間切替フラグEFがHである場合、モータ角度(電気角)θeをθcとして出力する。第二切替部246は、補間切替フラグEFがLである場合、補間Duty演算用のモータ角度θsをθcとして出力する。
図88は、補間演算切替判定部247の機能構成図である。
補間演算切替判定部247は、入力されるモータ回転数Nの絶対値を算出する絶対値算出部247−1と、補間演算判定部247−3と、補間判定部247−4と、を有している。
補間演算判定部247−3は、絶対値算出部247−1が出力するモータ回転数に基づいて、補間演算切替フラグHFを出力する。補間演算判定部247−3は、例えば、(1)モータ回転数Nが高くなり(モータ回転数Nが第一回転数以上になり)、SOH演算に必要な処理がコントロールユニット30の性能限界を超えると判断した場合や、(2)前回および前々回のSOH演算に用いたモータ角度θeを使用するSOH演算の結果に多くのノイズが含まれると判断した場合など、SOH演算を行うことが適切でないと判断した場合に、補間演算切替フラグHFを「H」に切り替える。それ以外の場合は、補間演算判定部247−3は、補間演算切替フラグHFを「L」に切り替える。
モータ電気角θeが360[deg]から0[deg]に切り換わる際にモータ電気角θeに過渡的な角度変動が生じるため、電気角補間部240Eは、切替部244の出力切替機能により、過渡的な角度変動の影響を含まない補間電気角θsを選択して出力する。しかしながら、モータ回転数Nが高くなると(例えば制御周期Tc毎に変動する角度45[deg]以上)、モータ角度切替判定部243等に必要な演算処理がコントロールユニット30の性能限界を超え、モータ角度切替判定部243が正確に90°<θe≦270°の条件を判定できない場合がある。そのため、回転数が高くなると、電気角補間部240Eは、過渡的な角度変動の影響を含まない補間電気角θsを出力することが難しくなる。この場合、補間演算判定部247−3は、補間演算切替フラグHFを「H」に切り替え、SOH演算をFOH演算に切り換える。FOH演算に切り換えることで、コントロールユニット30の演算処理負荷が低減され、モータ角度切替判定部243の判定が正常化される。
また、SOH演算は、演算時のモータ角度θeと前回および前々回のSOH演算に用いたモータ角度θeを使用する。そのため、SOH演算に使用する3種類のモータ角度θe全てが過渡的な角度変動の影響を含まない必要がある。モータ回転数Nが高くなると、3種類のモータ角度θeのいずれかが過渡的な角度変動の影響を含む確率は高くなり、電気角補間部240Eは、過渡的な角度変動の影響を含まない補間電気角θsを出力することが難しくなる。この場合、補間演算判定部247−3は、補間演算切替フラグHFを「H」に切り替え、SOH演算をFOH演算に切り換える。FOH演算は、演算時のモータ角度θeと前回のSOH演算に用いたモータ角度θeを使用する。そのため、FOH演算に使用する2種類のみのモータ角度θeが過渡的な角度変動の影響を含まなければよい。FOH演算に切り換えることで、演算に使用するモータ角度θeのいずれかが過渡的な角度変動の影響を含む確率は低くなり、過渡的な角度変動の影響を含まない補間電気角θsが出力される確率は高くなる。
また、低・中速回転時において、電気角判定フラグSFのHとLの比率は1:1であるが、モータ回転数Nが高くなると、角度変動が大きいため、電気角判定フラグSFのHとLの比率は5:3や3:5等になる場合がある。この場合、電気角判定フラグSFに基づいて動作する切替部244が、過渡的な角度変動の影響を含む補間電気角θsを選択して出力してしまう場合がある。この場合、補間演算判定部247−3は、補間演算切替フラグHFを「H」に切り替え、SOH演算をFOH演算に切り換える。FOH演算に切り換えることで、上述したように、演算に使用するモータ角度θeのいずれかが過渡的な角度変動の影響を含む確率は低くなる。そのため、電気角判定フラグSFのHとLの比率が変動した場合であっても、過渡的な角度変動の影響を含まない補間電気角θsが出力される確率は高くなる。
また、モータ100の種類によっては、高速回転数領域(例えば5000[rpm]以上)で、角度センサのノイズが大きくなる場合や、角度のリニアリティ誤差が大きくなる場合がある。これらの場合、SOH演算はFOH演算と比較して結果にノイズが含まれる可能性が高くなる。この場合、補間演算判定部247−3は、補間演算切替フラグHFを「H」に切り替え、SOH演算をFOH演算に切り換える。FOH演算は、演算時のモータ角度θeと前回のSOH演算に用いたモータ角度θeを使用する。そのため、FOH演算に使用する2種類のみのモータ角度θeが過渡的な角度変動の影響を含まなければよい。FOH演算に切り換えることで、演算の結果にノイズが含まれる確率を低減することができる。
さらに、モータ制御装置400Eの問題で、モータ角度θeのサンプリングが間に合わない場合において、補間演算判定部247−3は、補間演算切替フラグHFを「H」に切り替え、SOH演算をFOH演算に切り換える。FOH演算に切り換えることで、コントロールユニット30の演算処理負荷が低減され、モータ角度θeのサンプリングを確実に行うことができる。
補間判定部247−4は、絶対値算出部247−1が出力するモータ回転数に基づいて、補間切替フラグEFを出力する。補間判定部247−4は、明らかにSOH演算およびFOH演算を実施できないような高速回転数領域(例えば9000[rpm]以上)において(モータ回転数Nが第二回転数以上になった場合)、補間切替フラグEFをHに切り換える。明らかにSOH演算およびFOH演算を実施できないような高速回転数領域においては、演算が正しく行われない可能性が高いため、電気角補間部240Eは補間演算結果を出力しない。
また、モータ制御装置400Eの問題で、コントロールユニット30に通常以上の処理負荷がかかっており、SOH演算およびFOH演算を実施する処理リソースが不足している場合等も補間判定部247−4は、補間切替フラグEFをHに切り換える。
図89および図90は、補間演算判定部247−3および補間判定部247−4のフラグ(HFおよびEF)生成のグラフである。補間演算判定部247−3および補間判定部247−4は、ヒステリシス閾値Hiとヒステリシス閾値Loとを用いて、HとLの2値のフラグ(HFおよびEF)を生成している。ヒステリシス閾値Hiとヒステリシス閾値Loは、それぞれ例えば、200[rpm]程度のヒステリシス幅を有しており、フラグ(HFおよびEF)が閾値境界で急激に変動することを防止する。
図91は、電気角補間部240Eの制御フローチャートを示す。
電気角補間部240Eにモータ角度(電気角)θeが入力される(ステップS401)。
演算処理部241のSOH演算部241−1は、補間演算切替フラグHFに基づいてSOH演算もしくはFOH演算を行う(ステップS410)。モータ角度θeは、次のSOH演算において前回値として使用するため、保持ユニット245−1に入力される。また、保持ユニット245−1に入力されていた前回値は、次のSOH演算において前々回値として使用するため、保持ユニット245−2に入力される。
ロールオーバ処理部241−2は、SOH演算されたモータ角度θe1をロールオーバ処理してモータ角度θe2を出力する(ステップS411)。
オフセット付き演算処理部242は、加算部242−2が固定部242−1から入力される係数180°を用いてモータ角度(電気角)θeをオフセット処理する(ステップS420)。
ロールオーバ処理部242−3は、オフセット処理されたモータ角度θe3をロールオーバ処理してモータ角度θe4を出力する(ステップS4421)。
SOH演算部242−4は、入力されたモータ角度θe4に対して、補間演算切替フラグHFに基づいてSOH演算もしくはFOH演算を行う(ステップS422)。モータ角度θeは、次のSOH演算において前回値として使用するため、保持ユニット245−1に入力される。また、保持ユニット245−1に入力されていた前回値は、次のSOH演算において前々回値として使用するため、保持ユニット245−2に入力される。
SOH演算されたモータ角度θe5は減算部242−6に入力され、固定部242−5から入力される係数180°でオフセット戻し処理が行われる(ステップS423)。
オフセット戻し処理されたモータ角度θe6は、ロールオーバ処理部242−7でロールオーバ処理されてモータ角度θe7が出力される(ステップS424)。
ステップS411およびステップS424の処理完了後、モータ角度切替判定部243は、モータ角度θeが90°より大きく、270°以下であることを判定する(ステップS402)。
この条件に当てはまる場合(YESの場合)、モータ角度切替判定部243は、切替フラグSFを「H」にする。
上記条件に当てはまらない場合(NOの場合)、モータ角度θeは0°以上で90°以下、または270°より大きく360°以下であり、モータ角度切替判定部243は、切替フラグSFを「L」にする。
モータ角度切替判定部243から入力された切替フラグSFが「H」の場合、切替部244は、θe2を選択し、補間Duty演算用のモータ角度(補間電気角)θsとして出力する(ステップS403)。
モータ角度切替判定部243から入力された切替フラグSFが「L」の場合、切替部244は、θe7を選択し、補間Duty演算用のモータ角度(補間電気角)θsとして出力する(ステップS404)。
第二切替部246は、補間切替フラグEFがHであることを判定する(ステップS405)。
この条件に当てはまる場合(YESの場合)、第二切替部246は、モータ角度(電気角)θeをθcとして出力する(ステップS406)。
上記条件に当てはまらない場合(NOの場合)、第二切替部246は、補間Duty演算用のモータ角度θsをθcとして出力する(ステップS407)。
電気角補間部240Eは、SOH演算が推定する補間電気角1〜4(θss1〜4)に対応する係数B0,B1,B2(表1参照)およびFOH演算が推定する補間電気角1〜4(θsf1〜4)に対応する係数B0,B1(表2参照)を用いて補間演算を行い、補間電気角1〜4(θs1〜4)をそれぞれ算出する。電気角補間部240Eは、補間切替フラグEFに基づき、モータ角度(電気角)θeもしくは補間電気角1〜4(θs1〜4)を選択し、補間電気角1〜4(θc1〜4)として出力する。
図92は、電気角補間部240Eの各部波形を示しており、横軸は時間[sec]であり、縦軸はMPU等で処理する内部値で、64[dec]/1[deg]である。なお、23040[dec]=360[deg]である。
図92(A)は演算処理部241Eから出力されるモータ角度θe2の波形例であり、図92(B)はオフセット付き演算処理部242Eから出力されるモータ角度θe7の波形例である。また、図92(C)は切替フラグSFの「H」、「L」の切替のタイミングを示しており、図92(D)は切替部244から出力される補間Duty演算用のモータ角度(補間電気角)θsの波形例を示している。
モータ回転数Nが高くなると(例えば制御周期Tc毎に変動する角度45[deg]以上)、モータ角度切替判定部243等に必要な演算処理がコントロールユニット30の性能限界を超え、図92(C)の丸印に示すように、モータ角度切替判定部243が正確に90°<θe≦270°の条件を判定できない場合がある。
この場合、図92(D)に示すように、補間電気角θsが過渡的な角度変動の影響を含む可能性が高くなる。この場合、補間演算判定部247−3は、補間演算切替フラグHFを「H」に切り替え、SOH演算をFOH演算に切り換える。FOH演算に切り換えることで、コントロールユニット30の演算処理負荷が低減され、モータ角度切替判定部243の判定が正常化される。その結果、過渡的な角度変動の影響を含まない補間電気角θsが出力される確率は高くなる。
[空間ベクトル変調部250]
図93は、空間ベクトル変調部250の機能構成図である。
空間ベクトル変調部(変換部)250は、電圧の次元からDutyの次元に変換してから空間ベクトル変換演算を行う(変換工程)。空間ベクトル変調部250は、dq軸空間の正規演算用のDuty指令値D1m(m=d,q)(Duty_d,Duty_q)を3相Duty指令値(Duty_ua,Duty_va,Duty_wa)に変換して、3次高調波を重畳し、3相のDuty指令値Duty_u,Duty_v,Duty_wを出力する機能を有していれば良く、例えば本出願人による特開2017−70066号公報や国際公開第2017/098840号等で提案している空間ベクトル変調の手法を用いても良い。
空間ベクトル変調部250は、モータ角度(電気角)θeを用いて上記の空間ベクトル変換演算を行う空間ベクトル変調部250−0と、補間電気角1〜4(θs1〜4)をそれぞれ用いて空間ベクトル変換演算を行う空間ベクトル変調部250−1,250−2,250−3,250−4と、を有する。
空間ベクトル変調部250−0は、モータ角度(電気角)θeを用いて空間ベクトル変換演算を行い、3相のDuty指令値Duty_u,Duty_v,Duty_wを出力する。
空間ベクトル変調部250−1は、補間電気角1(θc1)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m1,Duty_v_m1,Duty_w_m1を出力する。
空間ベクトル変調部250−2は、補間電気角2(θc2)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m2,Duty_v_m2,Duty_w_m2を出力する。
空間ベクトル変調部250−3は、補間電気角3(θc3)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m3,Duty_v_m3,Duty_w_m3を出力する。
空間ベクトル変調部250−4は、補間電気角4(θc4)を用いて空間ベクトル変換演算を行い、3相の補間Duty指令値Duty_u_m4,Duty_v_m4,Duty_w_m4を出力する。
[最終Duty演算部200]
図94は、最終Duty演算部200の機能構成図である。
最終Duty演算部200は、空間ベクトル変調部250からの正規Duty指令値Duty_n(n=u,v,w)が加算部221に入力される。加算部221でDuty50%のオフセットを加算されたDuty値は、Duty出力を0〜100%の範囲(可変)で制限するリミッタ222に入力される。リミッタ222からは最終正規Duty指令値Dn(n=u,v,w)が出力される。
空間ベクトル変調部250からの補間Duty指令値Duty_n_m1は加算部231に入力され、加算部231でDuty50%のオフセットを加算されたDuty値は、Duty出力を0〜100%の範囲(可変)で制限するリミッタ232に入力される。リミッタ232から最終補間Duty指令値Dnm1(n=u,v,w)が出力される。
空間ベクトル変調部250からの補間Duty指令値Duty_n_m2,Duty_n_m3,Duty_n_m4は、補間Duty指令値Duty_n_m1と同様の処理がなされ、リミッタ232から最終補間Duty指令値Dnm2,Dnm3,Dnm4(n=u,v,w)が出力される。
一般的にEPSはバッテリ(DC+12V)からモータ印加電圧を供給するため、負(−)方向の印加電圧を供給することができない。このままでは負方向の相電圧指令値を供給できないため、負方向に相電流を流すことができない。この問題に対応するため、3相ともDuty値50%(+6V)オフセットして基準電圧にすることにより、3相が0Vでなくても3相Duty値50%時に相電流が0Aになる(モータ印加電圧+12V時)。例えば、U相Duty値50%(+6V)、V相Duty値50%(+6V)、W相Duty値50%(+6V)の場合、U相0A、V相0A、W相0Aとなり、U相Duty値60%(+7.2V)、V相Duty値50%(+6V)、W相Duty値40%(+4.8V)とした場合、U相には正(+)方向に電流が流れ、U相Duty値40%(+4.8V)、V相Duty値50%(+6V)、W相Duty値60%(+7.2V)とした場合、U相には負方向に電流が流れる。3相ともDuty値50%にオフセットして基準電圧にすることによって、印加電圧が正のまま、負方向の電流を流すことができる。なお、Duty値50%オフセットは基本的に固定であるが、Duty値50%時の基準電圧は、供給される印加電圧状態によって変動する。例えば、印加電圧11Vの時、Duty値50%は5.5Vとなり、印加電圧13Vの時、Duty値50%は6.5Vになる。
[Duty出力設定部160A−1]
図95は、Duty出力設定部160A−1の機能構成図である。
Duty出力設定部(出力設定部)160A−1は、図95に示すように、制御周期Tcを1/5に分割した50μsの間隔(分割間隔)に合わせ、制御周期Tcからの経過時間Tに基づいて、出力する最終的なDuty指令値Du_o,Dv_o,Dw_oを切り替えて出力する(出力設定工程)。
本実施形態のモータ制御装置400Eによれば、デッドタイム補償の影響を受けずに、ノイズが少ない補間Duty指令値を算出し、PWM演算を行う周期よりも早い周期(50μs)でPWM制御の制御信号を変動させることができる。これにより、マイクロコンピュータの演算処理量の増加は軽微でありながら、ブラシレスモータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
本実施形態のモータ制御装置400Eによれば、例えば、(1)モータ回転数Nが高くなり、SOH演算に必要な処理がコントロールユニット30の性能限界を超えると判断した場合や、(2)前回および前々回のSOH演算に用いたモータ角度θeを使用するSOH演算の結果に多くのノイズが含まれると判断した場合など、SOH演算を行うことが適切でないと判断した場合に、SOH演算をFOH演算に切り替える。その結果、過渡的な角度変動の影響を含まない補間電気角θsが出力される確率は高くなる。
本実施形態のモータ制御装置400Eによれば、例えば、明らかにSOH演算およびFOH演算を実施できないような高速回転数領域(例えば9000[rpm]以上)など、明らかにSOH演算およびFOH演算を実施できない場合に、補間演算結果を使用しない。その結果、モータ制御装置400Eはより安全にモータ100の制御を行うことができる。
以上、本発明の第五実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。また、上述の実施形態および変形例において示された構成要素は適宜に組み合わせて構成することが可能である。
(変形例14)
例えば、上記実施形態に係るモータ制御装置400Eは、モータ100が空間ベクトル駆動を用いたベクトル制御方式により制御されていたが、モータ制御装置の制御対象のモータはこれに限定されない。本発明に係るモータ制御装置の制御対象のモータは、例えば正弦波制御方式のブラシレスモータであってもよい。本発明に係るモータ制御装置は、Duty指令値を直接の補間対象とせず、モータ角度(電気角)θeを補間対象とする。モータ角度θeはリニアリティが高ければ比較的ノイズが少なく、360°から0°に切替える角度変化以外に過渡的な変化がないため、SOH演算による補間電気角の算出および補間Duty指令値の算出において高い精度を確保することができる。
(変形例15)
例えば、上記実施形態に係るモータ制御装置400Eは、電動パワーステアリング装置300Eに搭載されていたが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、高トルクが要求される一方で低騒音が要求されるモータ駆動装置に搭載することが適している。例えば、本発明に係るモータ制御装置は、装着者の歩行時の筋力を支援する歩行支援装置や、室内で動作する掃除装置等に搭載することで、モータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
(変形例16)
例えば、上記実施形態に係るモータ制御装置400Eは、制御周期Tcを1/5に分割した50μsの等間隔(分割間隔)でモータ角度(補間電気角)θsを推定していたが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、制御周期Tcを任意の分割数で分割してもよく、また、不等間隔で分割してもよい。
(変形例17)
例えば、上記実施形態に係るモータ制御装置400Eは、制御周期Tcが250μs(周波数4KHz)であったが、モータ制御装置の態様はこれに限定されない。本発明に係るモータ制御装置は、制御周期Tcが100μs以上、250μs以下であるとき好適に可聴帯域のモータに起因する音を低減することができる。モータ制御装置が搭載するCPU等の性能が向上したり、制御対象のモータの極数が増加したりすることで、制御周期が250μsより短くなることが予測される。制御周期Tcが100μs以上、250μs以下である場合、上記実施形態と同様に、可聴帯域のモータに起因する音を生じる問題が発生するが、本発明に係るモータ制御装置によれば、ブラシレスモータの振動やモータに起因する音を好適に抑制し、可聴帯域のモータに起因する音を低減することができる。
(従来技術)
参考情報として、以下に従来技術について述べる。
図96は、一般的なモータ制御装置の機能構成図である。トルクセンサ10からの操舵トルクTh及び車速センサ12からの車速Vsは、操舵補助指令値演算部31に入力される。操舵補助指令値演算部31は、操舵トルクTh及び車速Vsに基づいてアシストマップ等を用いて操舵補助指令値Iref1を演算する。演算された操舵補助指令値Iref1は、加算部32Aで、特性を改善するための補償部34からの補償信号CMと加算される。加算された操舵補助指令値Iref2は、電流制限部33で最大値を制限される。最大値を制限された電流指令値Irefmは、減算部32Bに入力され、モータ電流検出値Imと減算される。
減算部32Bでの減算結果である偏差ΔI(=Irefm−Im)は、PI(比例積分)制御部35でPI等の電流制御が実施される。電流制御された電圧制御指令値Vrefは、変調信号(三角波キャリア)CFと共にPWM制御部36に入力され、Duty指令値が演算される。Duty指令値から算出されたPWM信号は、インバータ37を介してモータ20をPWM駆動する。モータ20のモータ電流値Imは、モータ電流検出器38で検出され、減算部32Bに入力されてフィードバックされる。
補償部34は、検出若しくは推定されたセルフアライニングトルク(SAT)を加算部344で慣性補償値342と加算し、その加算結果に更に加算部345で収れん性制御値341を加算し、その加算結果を補償信号CMとして加算部32Aに入力し、特性改善を実施する。
図97は、ベクトル制御方式で3相ブラシレスモータ100を駆動制御する場合の機能構成図を示す。操舵トルクTh、車速Vs等に基づいて操舵補助指令値演算部(図示せず)で演算された2軸(dq軸座標系)の操舵補助指令値が演算され、最大値を制限された2軸のd軸電流指令値id*及びq軸電流指令値iq*は、それぞれ減算部131d及び131qに入力される。減算部131d及び131qで求められた電流偏差Δid*及びΔiq*は、それぞれPI制御部120d及び120qに入力される。PI制御部120d及び120qでPI制御された電圧指令値vd及びvqは、それぞれ減算部141d及び加算部1421qに入力され、減算部141d及び加算部141qで求められた指令電圧Δvd及びΔvqはdq軸/3相交流変換部150に入力される。
図98は、PWM制御部163及びインバータ161の機能構成図である。
dq軸/3相交流変換部150で3相に変換された電圧制御指令値Vref_u,Vref_v,Vref_wは、PWM制御部163に入力され、演算された3相のDuty指令値に基づくPWM信号により、図98に示すような上下アームのブリッジ構成で成るインバータ(インバータ印加電圧VR)161を介してモータ100が駆動される。上側アームはスイッチング素子としてのFETQ1,Q2,Q3で構成され、下側アームはFETQ4,Q5,Q6で構成されている。また、FETQ1及びQ4がU相、FETQ2及びQ5がV相、FETQ3及びQ6がW相の駆動となっている。
モータ100の3相モータ電流iu,iv,iwは、電流検出器162で検出される。検出された3相モータ電流iu,iv,iwは、3相交流/dq軸変換部130に入力される。3相交流/dq軸変換部130で変換された2相のフィードバック電流id及びiqは、それぞれ減算部131d及び131qに減算入力されると共に、dq軸非干渉制御部140に入力される。
また、モータ100には回転センサ等が取り付けられており、センサ信号を処理する角度検出部110からモータ角度θ及びモータ回転数ωが出力される。モータ角度θはdq軸/3相交流換部150及び3相交流/dq軸変換部130に入力され、モータ回転数ωはdq軸非干渉制御部140に入力される。dq軸非干渉制御部140からの2相の電圧vnid及びvniqはそれぞれ減算部121d及び加算部121qに入力され、減算部121dで求められた電圧指令値Δvd及び加算部121qで求められた電圧指令値Δvqが、dq軸/3相交流変換部150に入力される。
PWM制御部163及びインバータ161は、図98に示すような構成であり、PWM制御部163は、電圧制御指令値Vref_u,Vref_v,Vref_wをそれぞれ所定式に従って3相分のPWM-Duty値D1〜D6を演算するデューティ演算部160Aと、PWM-Duty値D1〜D6で駆動素子としてのFETQ1〜Q6のゲートを駆動すると共に、デッドタイムの補償をしてON/OFFするゲート駆動部160Bとで構成されている。デューティ演算部160Aには発振部160Cから例えば三角波の変調信号(キャリア)CFが入力されており、デューティ演算部160Aは変調信号CFに同期してPWM-Duty値D1〜D6を演算する。インバータ161は上述のようにFETの3相ブリッジで構成されており、PWM-Duty値D1〜D6でON/OFFされることによってモータ100を駆動し、インバータ161とモータ100との間には、アシスト制御停止時等に電流の供給を遮断するためのモータスイッチ101が介挿されている。
このようなベクトル制御方式の電動パワーステアリング装置は、運転者の操舵をアシストする装置であると同時に、モータの音や振動、リップル等はハンドルを介して運転者へ力の感覚として伝達される。インバータを駆動するパワーデバイスは一般的にFETが用いられており、モータへ通電を行うが、3相モータの場合には、図98に示されるように各相に上下アームの直列接続されたFETが用いられている。上下アームのFETは交互にON/OFFを繰り返すが、FETは理想スイッチではなく、ゲート信号の指令通りに瞬時にON/OFFせず、ターンオン時間やターンオフ時間を要する。このため、上側アームFETへのON指令と下側アームのOFF指令が同時になされると、上側アームFETと下側アームFETが同時にONになって、上下アームが短絡する問題がある。FETのターンオン時間とターンオフ時間には差があり、同時にFETに指令を出した場合、上側FETにON指令を出してターンオン時間が短い場合(例えば100ns)、直ぐにFETがONになり、下側FETにOFF指令を出してもターンオフ時間が長い場合(例えば400ns)、直ぐにFETがOFFにならず、瞬間的に上側FETがON、下側FETがONになる状態(例えば、400ns−100ns間、ON−ON)が発生することがある。
そこで、上側アームFETと下側アームFETが同時にONすることがないよう、ゲート駆動部にデッドタイムという所定時間をおいてON信号を与えることが行われる。このデッドタイムは非線形であるため電流波形は歪み、制御の応答性能が悪化し、音や振動、リップルが発生する。コラム式電動パワーステアリング装置の場合、ハンドルと鋼製のコラム軸で接続されるギアボックスに直結されるモータの配置が、その構造上運転者に極めて近い位置となっているため、モータに起因する音、振動、リップル等には、下流アシスト方式の電動パワーステアリング装置に比べて、特に配慮する必要がある。
図99は、従来のSOH演算によるDuty指令値の補間の機能構成図である。デッドタイム補償値を加算していない3相Duty指令値に対し、SOH演算して補間Duty値を算出する手法である。本従来手法では、過渡変化のあるデッドタイム補償はSOH演算対象外であるが、Duty指令値に対して直接SOH演算を行っている。3次高調波重畳のDuty指令値に対してSOH演算を行うと、演算結果に含まれるノイズが大きくなり、異音が発生する場合がある。また、dq軸制御においては、3相のDuty指令値は空間ベクトル変調後のDuty指令値しかなく、空間ベクトル変調後のDuty指令値を使用してSOH演算で補間Duty値を演算した場合、デッドタイム補償の過渡的な応答や空間ベクトルによる3次高調波の歪み成分を含むため、ノイズの大きな補間Duty値となってしまう。
図99に示すモータ制御装置では、モータ回転数ω、3相電流指令値Iref_n(n=u,v,w)、モータ角度(電気角)θeを入力して3相デッドタイム補償値DT_n(n=u,v,w)を演算する3相デッドタイム補償値演算部201Aが設けられている。演算されたデッドタイム補償値DT_nは、最終Duty演算部200Aに入力される。
また、図99に示すモータ制御装置は、モータ回転数ω及びモータ角度θeを入力して3相の逆起電圧補償値EMF_na(n=u,v,w)を演算する逆起電圧補償値演算部202と、3相電流指令値Iref_n及び3相電流in(n=u,v,w)を入力して3相の電圧制御指令値Vref_na(n=u,v,w)を出力する3相電流フィードバック(FB)制御部203Aと、インバータ印加電圧VRに応じて電圧/Dutyの変換係数Kcを演算する電圧/Duty変換係数演算部204と、を備える。
逆起電圧補償値演算部202からの逆起電圧補償値EMF_naと、3相電流フィードバック制御部203Aからの電圧制御指令値Vref_naとは、加算部205で加算される。加算部205で逆起電圧補償された電圧制御指令値Vref_nb(n=u,v,w)は、電圧/Duty変換の変換係数Kcと共に3相Dutyクランプ/インバータ印加電圧感応演算部210Aに入力される。
3相Dutyクランプ/インバータ印加電圧感応演算部210Aで,電圧/Duty変換の変換係数Kcを乗算された演算された3相正規Duty指令値D1n(n=u,v,w)は、最終Duty演算部200A、補間Duty−SOH演算部220及び3次高調波演算部230に入力される。補間Duty−SOH演算部220で演算された補間Duty指令値D2nは、最終Duty演算部200A及び3次高調波演算部230に入力され、3次高調波演算部230で演算された3次高調波補償値(正規用)及び3次高調波補償値(補間用)は最終Duty演算部200Aに入力される。
最終Duty演算部200Aは、dq軸デッドタイム補償値演算部201からの3相デッドタイム補償値DT_n、3相Dutyクランプ/インバータ印加電圧感応演算部210からの3相正規Duty指令値D1n、補間Duty−SOH演算部220からの補間Duty指令値D2n、3次高調波演算部230からの3次高調波補償値(正規用)及び3次高調波補償値(補間用)を入力し、演算した最終正規Duty値Du,Dv,Dw及び最終補間Duty値Dum,Dvm,Dwmを出力する。
図100は、最終Duty演算部200Aの機能構成図である。
最終Duty演算部200Aにおいて、デッドタイム補償値DT_n、正規Duty指令値D1n及び3次高調波補償値(正規用)は、加算部201Aで加算され、デッドタイム補償値DT_n、補間Duty指令値D2n及び3次高調波補償値(補間用)は、加算部211Aで加算される。加算部201A及び211Aでの加算結果はそれぞれ加算部202A及び212Aに入力され、加算部202A及び212AでそれぞれDuty50%のオフセットを加算されたDuty値はそれぞれDuty出力を0〜100%の範囲(可変)で制限するリミッタ203A及び213Aに入力される。リミッタ203Aからは最終正規Duty値Dnが出力され、リミッタ213Aからは最終補間Duty値Dnfが出力される。
最終Duty演算部200Aから出力された最終正規Duty値Dn及び最終補間Duty値Dnfは、PWM制御部163内入力される。最終正規Duty値Dn及び最終補間Duty値Dnfは演算終了後、次の制御周期の演算終了まで、値が保持されている。
次に、空間ベクトル変調について説明する。上記の実施形態では演算回数の削減などのため、電圧の次元からDutyの次元に変換してから空間ベクトル変換演算を行っている。空間ベクトル変調部250は、図10に示すように、dq軸Dutyクランプ/インバータ印加電圧感応演算部210からのdq軸空間の正規演算用のDuty指令値D1m(Duty_d,Duty_q)を3相Duty指令値(Duty_ua,Duty_va,Duty_wa)に変換し、3相Duty指令値(Duty_ua,Duty_va,Duty_wa)に3次高調波を重畳して正規Duty指令値Duty_n(Duty_u,Duty_v,Duty_w)を出力する機能を有していれば良く、例えば本出願人による特開2017−70066号公報や国際公開第2017/098840号等で提案している空間ベクトル変調の手法を用いても良い。
すなわち、空間ベクトル変調を分かり易く電圧の式で説明すると、ベクトル変調は、dq軸空間の電圧指令値Vd**及びVq**、モータ角度θe及びセクター番号n(#1〜#6)に基づいて、以下に示すような座標変換を行い、ブリッジ構成のインバータのFET(上側アームQ1、Q3、Q5、下側アームQ2、Q4、Q6)のON/OFFを制御する、セクター#1〜#6に対応したスイッチングパターンS1〜S6をモータに供給することによって、モータの回転を制御する機能を有する。
図101は、座標変換に用いる座標軸及びモータ角度θeの関係を示すグラフである。
座標変換については、空間ベクトル変調において、電圧指令値Vd**及びVq**は、式54に基づいて、α−β座標系における電圧ベクトルVα及びVβに座標変換が行われる。
なお、Duty指令値Duty_d,Duty_qと電圧指令値Vd**及びVq**との関係は、インバータ印加電圧をVRとして、式55または式56で表わされる。
d−q座標系における目標電圧ベクトルとα−β座標系における目標電圧ベクトルとの間には、式57のような関係が存在し、目標電圧ベクトルVの絶対値は保存される。
空間ベクトル制御におけるスイッチングパターンでは、インバータの出力電圧をFET(Q1〜Q6)のスイッチングパターンS1〜S6に応じて、図102の空間ベクトル図に示す8種類の離散的な基準電圧ベクトルV0〜V7(π/3[rad]ずつ位相の異なる非零電圧ベクトルV1〜V6と零電圧ベクトルV0,V7)で定義する。そして、それら基準出力電圧ベクトルV0〜V7の選択とその発生時間を制御するようにしている。また、隣接する基準出力電圧ベクトルによって挟まれた6つの領域を用いて、空間ベクトルを6つのセクター#1〜#6に分割することができ、目標電圧ベクトルVは、セクター#1〜#6のいずれか1つに属し、セクター番号を割り当てることができる。Vα及びVβの合成ベクトルである目標電圧ベクトルVが、α−β空間において正6角形に区切られた図102に示されたようなセクター内のいずれに存在するかは、目標電圧ベクトルVのα−β座標系における回転角γに基づいて求めることができる。また、回転角γはモータ角度θeとd−q座標系における電圧指令値Vd**及びVq**の関係から得られる位相δの和として、γ=θe+δで決定される。
図103は、空間ベクトル制御におけるインバータのスイッチングパターンS1、S3,S5によるディジタル制御で、インバータから目標電圧ベクトルVを出力させるために、FETに対するON/OFF信号S1〜S6(スイッチングパターン)におけるスイッチングパルス幅とそのタイミングを決定する基本的なタイミングチャートを示す。空間ベクトル変調は、規定されたサンプリング期間Ts毎に演算などをサンプリング期間Ts内で行い、その演算結果を次のサンプリング期間Tsにて、スイッチングパターンS1〜S6における各スイッチングパルス幅とそのタイミングに変換して出力する。
空間ベクトル変調は、目標電圧ベクトルVに基づいて求められたセクター番号に応じたスイッチングパターンS1〜S6を生成する。図103には、セクター番号#1(n=1)の場合における、インバータのFETのスイッチングパターンS1〜S6の一例が示されている。信号S1、S3及びS5は、上側アームに対応するFETQ1、Q3、Q5のゲート信号を示している。横軸は時間を示しており、Tsはスイッチング周期に対応し、8期間に分割され、T0/4、T1/2、T2/2、T0/4、T0/4、T2/2、T1/2及びT0/4で構成される期間である。また、期間T1及びT2は、それぞれセクター番号n及び回転角γに依存する時間である。