第三章 高応答サーボ・主軸制御を実現するアーキテクチャ
67.4 deg 10%温度上昇低減
3.5.2 コギングトルク補正
なお、モータが持つもう一つの速度変動を誘発する要因としてコギングトルクがある が、これは前述のトルクリップルとは違い、モータの回転子にある磁石とステータのス ロット形状との関係で発生する磁気抵抗の変化で生じ、これは図 3.16 に示すようにモ ータの電流制御系の外で外乱トルクとして作用する。したがって、電流制御専用ハード ウェアコアではなく、メイン CPU でのソフトウェアでの補正とした。また、このコギ ングトルクはモータ毎のバラツキが大きく、取り付ける位置検出器(エンコーダ)の取
3.07μm/div
位置偏差 3.07μm/div
3.07μm/div 3.07μm/div
q軸電流FB
位置偏差
位置偏差 位置偏差
q軸電流FB
振動計 振動計
0.158G/div
トルクリップル補正:無効時 トルクリップル補正:有効時
図3.15 トルクリップル補正の実機での検証
速度指令 速度 制御
Table
電流 制御
トルク 乗数
1 Js コギングトルク補正
コギングトルク
!sin (24)* + ,)
+ -
+ -
速度フィードバック
図3.16 コギングトルク補正
33
り付け誤差でも、補正する場合の位相に大きく影響してしまうため、固定のパラメータ で補正することが難しい。したがって、今回は、補正のパラメータを自動で推定するこ とができるコギングトルク補正を開発した。
ここで、コギングトルクはほぼ正弦波に近似することができ、また、今回対象とした モータでは磁石とステータのスロット数の関係で一回転当たり 24 山のリップルが発生 することから、コギングトルクを次のように想定する。
コギングトルク: !"# $(24() + +) …(3-1)
ここで、コギングトルク補正を以下のように実施する。図3.17に補正のブロック図を示 す。
. = 0^()) sin(24()) + 5^())cos (24()) …(3-2)
0^())="+!! ∙ 9^ ∙e∙ cos(24()) ∙ : ∙1" …(3-3)
B^())=−"+!! ∙ 9^ ∙e∙ sin (24()) ∙ : ∙1" …(3-4)
e:速度偏差=速度指令−速度フィードバック
この時、電流ループの応答が限りなく高くゲインが1とすると、モータにかかるトルク TMは
!#= −. − !"#$(24() + +)
= −0^()) sin(24()) − 5^())cos (24()) − !"#$(24()) ∙ cos(+) − !<="(24()) ∙ sin(+) = {−0^()) − !<="(+)} ∙ "#$ (24()) + {−5^()) − !"#$(+)} ∙ <=" (24()) …(3-5) ここで、
s 0^())= !
"+!∙ 9^ ∙e∙ cos(24()) ∙ : = !
"+!∙ 9^ ∙$%&" ∙ TM ∙ cos (24()) ∙ : …(3-6)
9^ = 9 …(3-7)
@ = {−0^()) − !<="(+)} 、 A = {−5^()) − !"#$(+)} …(3-8) とすると、
s 0^())= "+!! B()*' cos(24()) −()*+ sin (24())C ∙ cos (24()) ∙ : = "+!! B()*' <="((24()) −()*+ sin (24()) ∙ cos (24())C ∙ : = "+!! B),*' (1 + cos (48()) −),*+ sin (48())C ∙ :
=),*'- =),*- ∙ {−0^()) − !<="(+)} …(3-9)
34
(" +),*- )0^()) = −),*- !<="(+) …(3-10)
0^()) = $"#$!
"."#$! !<="(+) ≃ −!<="(+) …(3-11)
s B^())=−"+!! ∙ 9^ ∙e∙ sin (24()) ∙ : = −"+!! ∙ 9^ ∙$%&"∙ TM ∙ sin (24()) ∙ : …(3-12)
9^ = 9 …(3-13)
とすると、
s B^())= −"+!! B()*' cos(24()) −()*+ sin (24())C ∙ sin (24()) ∙ : = −"+!! B()*' sin (24()) ∙ cos (24()) −()*+ "#$((24())C ∙ : = −"+!! B),*' sin (48()) −),*+ (1 − cos (48()))C ∙ :
=),*+- =),*- ∙ {−5^()) − !"#$(+)} …(3-14)
G" +),*- H 5^()) = −),*- !"#$(+) …(3-15)
B^()) = $"#$!
"."#$! !"#$(+) ≃ −!"#$(+) …(3-16)
よって、モータにかかるトルクTMは、
!I =(−0/− !<="(+)) ∙ "#$(24()) + G−B/− !"#$(+)H ∙ cos(24())
≃ 0 …(3-17)
つまり、ある一定の速度でモータが回転しているときに、このコギングトルク補正のパ ラメータ0^()) と5^()) が自動で推定され、コギングトルクを相殺することができる。
35
図3.18にこの補正の効果をシミュレーションで検証した結果を示す。
運転初期には、コギングトルクにより位置偏差(ドループ:Dloop)が変動しているが、
時間が経過するとともに補正パラメータ0^()) と5^()) が自動で推定され、結果として位 置偏差(Dloop)が0へと収束できていることがわかる。
また図3.19では、実際の現場を想定して、ランダムノイズが重畳される環境下でも正 しく、コギングトルクが推定されるかどうかを検証した結果である。ここでも、補正パ
ラメータ0^()) と5^()) が自動で推定され、位置偏差(ドループ)が0へと収束している。
図3.17 コギングトルク補正のブロック図
36
図3.18 コギングトルク補正の効果検証
37