(57)【要約】【課題】サーボモータが反転等する場合でも、サーボモータに対して適正な補正量を算出することができ、より精密な加工が可能なサーボモータの制御装置を提供すること。【解決手段】サーボモータの位置又は速度の指令を作成する指令作成部と、サーボモータが「反転」しているか、又は「停止からの移動」をしているかを判定する判定部と、サーボモータが「反転」しているか、又は「停止からの移動」をしているかを判定した場合、その判定結果に基づき、サーボモータの加速度を求める加速度計算部と、サーボモータの遅れを補正するための補正量を計算する補正量計算部と、を備えるサーボモータ制御装置であり、加速度計算部は、サーボモータが「反転」、又は「停止からの移動」をした後も、加速度を求め、補正量計算部は、サーボモータが「反転」、又は「停止からの移動」をした後も、加速度計算部が求めた加速度に応じて、前記補正量を計算する。【選択図】図１
2018092357.tif 000002
【特許請求の範囲】
【請求項１】
サーボモータを制御するサーボモータ制御装置であって、
所定周期毎に、前記サーボモータの位置又は速度の指令を作成する指令作成部と、
所定周期毎に、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているかを判定する判定部と、
前記判定部が、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているか、のいずれかを判定した場合、前記判定の結果に基づき、前記サーボモータの加速度を求める加速度計算部と、
前記サーボモータが「反転」しているか、又は「停止からの移動」をしている場合、前記サーボモータの遅れを補正するための補正量を計算する補正量計算部と、を備え、
前記加速度計算部は、前記サーボモータが「反転」、又は「停止からの移動」をした後も、加速度を求め、
前記補正量計算部は、前記サーボモータが「反転」、又は「停止からの移動」をした後も、所定時間ごとに、前記加速度計算部が求めた加速度に応じて、前記補正量を計算するサーボモータ制御装置。
【請求項２】
前記補正量計算部は、前記補正量にオーバライドをかけ、オーバライドされた補正量を計算する請求項１に記載のサーボモータ制御装置。
【請求項３】
前記判定部が、前記サーボモータが「停止からの移動」をしていると判定した場合、前記補正量計算部は、前記補正量に１未満の係数を乗算することによって、オーバライドされた前記補正量を計算する請求項２に記載のサーボモータ制御装置。
【請求項４】
サーボモータを制御する制御方法であって、
所定周期毎に、前記サーボモータの位置又は速度の指令を作成する指令作成工程と、
所定周期毎に、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているかを判定する判定工程と、
前記判定工程において、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているか、のいずれかを判定した場合、前記判定の結果に基づき、前記サーボモータの加速度を求める加速度計算工程と、
前記サーボモータが「反転」しているか、又は「停止からの移動」をしている場合、前記サーボモータの遅れを補正するための補正量を計算する補正量計算工程と、を含み、
前記加速度計算工程は、前記サーボモータが「反転」、又は「停止からの移動」をした後も引き続き、加速度を求め、
前記補正量計算工程は、前記サーボモータが「反転」、又は「停止からの移動」をした後も引き続き、所定時間ごとに、前記加速度計算工程で求めた加速度に応じて、前記補正量を計算するサーボモータ制御方法。
【請求項５】
コンピュータを、請求項１記載のサーボモータ制御装置として動作させるコンピュータプログラムであって、前記コンピュータに、
所定周期毎に、前記サーボモータの位置又は速度の指令を作成する指令作成手順と、
所定周期毎に、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているかを判定する判定手順と、
前記判定手順において、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているか、のいずれかを判定した場合、前記判定の結果に基づき、前記サーボモータの加速度を求める加速度計算手順と、
前記サーボモータが「反転」しているか、又は「停止からの移動」をしている場合、前記サーボモータの遅れを補正するための補正量を計算する補正量計算手順と、を実行させ、
前記加速度計算手順は、前記サーボモータが「反転」、又は「停止からの移動」をした後も、加速度を求め、
前記補正量計算手順は、前記サーボモータが「反転」、又は「停止からの移動」をした後も、所定時間ごとに、前記加速度計算部が求めた加速度に応じて、前記補正量を計算するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械の軸を駆動するサーボモータの制御装置に関する。特に、サーボモータの動作の指令からの遅れを補償するための補正量を、より適正に求めることができるサーボモータ制御装置及びサーボモータ制御方法並びにコンピュータプログラムに関する。
【背景技術】
【０００２】
サーボモータで軸を動かす工作機械において、軸の移動方向の反転、すなわち、その軸を駆動しているサーボモータの回転方向の反転時には、摩擦の大きさが変化する。つまり、「動摩擦→静摩擦（動摩擦より大きい）→動摩擦」と、摩擦の大きさが順次変化していくため、サーボモータ（及びその制御装置）が常に同じ応答性であれば摩擦の大きい静摩擦領域で遅れが生じるという問題がある。
【０００３】
同様に軸が停止してから、その停止状態から再び移動させるときも「静摩擦（動摩擦より大きい）→動摩擦」と、摩擦の大きさが変化するため、サーボモータ等が常に同様の応答性であれば、摩擦の大きい静摩擦領域で遅れが生じるという問題がある。
このような遅れを補償するために、反転時、又は、静止状態からの移動開始時に所定の補正量を計算し、サーボモータの速度指令、又は、速度制御ループの積分器へ加算するような補正を行う技術が知られている。
ここで、その補正量としては、所定のパラメータで設定された固定値や、固定値に反転時の加速度又は移動直後の加速度等が補正量として利用されている。又は、それらの加速度の平方根の値に応じたオーバライド値をその補正量に乗算した値等が利用されている。
【０００４】
この補正量の好ましい値は、例えば円弧波形によって決めることができる。円弧波形の例を図３及び図４に示す。円弧波形は、被加工物を円弧状の軌跡に沿って切削加工する場合の制御加工誤差を示す図である。すなわち、円弧波形は、被加工物側又は切削工具側を、２個の軸を用いて円環状に移動させることによって被加工物に円弧状の切削加工を行った場合の加工誤差を示している。ここでは、被加工物が固定され、切削工具が円弧状に移動するものとして説明をする。
【０００５】
図３及び図４においては、例えば切削工具は、Ｘ軸を駆動する第１のサーボモータ及びＹ軸を駆動する第２のサーボモータにより図示の回転方向に回転する。図３及び図４における実線は、被加工物の加工プログラムに応じて定まる切削工具に対する位置、すなわち位置指令であり、破線は切削工具の実際の位置を示す。
【０００６】
例えば、図３の第ＩＩＩ象限においては、切削工具が−（マイナス）Ｘ軸方向及び＋（プラス）Ｙ軸方向に移動するように第１のサーボモータ及び第２のサーボモータがそれぞれ回転し、軸を移動させる。そして、切削工具が第ＩＩＩ象限から第ＩＩ象限に移行するときには、第２のサーボモータは同様に駆動されつつ、第１のサーボモータは、切削工具が＋（プラス）Ｘ軸方向に移動するように反転される。
【０００７】
このとき、第１のサーボモータは回転方向が反転するので、その途中で瞬間的に回転が停止することになる。したがって、第１のサーボモータの出力軸は、動摩擦状態から静止摩擦状態を経て再び動摩擦状態に移行する。このように第１のサーボモータの回転が反転する際には、摩擦係数の大きい静止摩擦状態を経ると共に第１のサーボモータの伝達系におけるバックラッシの影響を受けるので、第１のサーボモータの動作に応答遅れが生じることになる。従って、そのような反転時の応答遅れが図３に示されるように象限突起Ｐとして実測値に出現する。それゆえ、被加工物を円弧に沿って切削加工する場合には、象限突起Ｐに対応する切削箇所において、被加工物上に（象限突起Ｐに対応する）突起が残る等の問題が発生する。
【０００８】
このように、円弧波形では、象限の切り替わる４箇所でいずれかのサーボモータが反転するので、半径方向の誤差が大きくなる傾向にある。拡大してみた場合、この誤差は半径方向の突起として観測できるので、これを象限突起Ｐと呼ぶ。
したがって、円弧波形を用いる場合は、この象限突起Ｐが小さくなるように補正量を決めることができる。このようにして、好ましい補正量を算出することができる。円弧波形は加速度が常に一定であるため、この好ましい補正量は、一定の加速度で反転するような動作を実行する場合に適した補正量と言える。このように調整を行って求めた補正量を適用すれば、図４に示すように象限突起をほぼなくすこともできる。
【０００９】
例えば、特許文献１においては、被加工物を円弧に沿って切削加工する場合に、モータの反転時には、速度制御部を構成する積分要素を所定の関数に基づいて反転させ、その出力値を電流指令値に加える等の補正処理が行われている。あるいは、加工ツール等の加速度が一定である場合には、加速度に応じたオーバライドを所定値に乗算した値又は所定値自体をサーボモータの速度指令に加算して、速度指令を補正することも行われている。このような補正を行うことにより、反転時におけるバックラッシ等の影響を少なくできるので、象限突起Ｐに対応する箇所における加工不良を少なくすることができるとされている。
【００１０】
また、例えば、特許文献２においては、サーボモータの反転前後の加速度が変化する場合に、反転前か反転後のいずれか一方の加速度のみを用いて補正量を算出する技術が開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】国際公開第ＷＯ９０／１２４４８号公報
【特許文献２】特許第４６２０１４８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
被加工物を円弧の軌跡で加工を行う加工プログラムの場合は、上記で説明した方法で調整された補正量で加工を行うことが好ましく、突起をなくすこともできる。ところが、通常の加工処理においては、形状の指令が各軸の指令に分配された後に、動作の実行に際して、軸毎に所定の時定数がかかる。そのため、加工の軌跡が直線から円弧に変化していく場合や、加工の軌跡が円弧から直線に変化していく場合に、サーボモータの回転が反転した後の加速度が一定ではない場合がある。また、同様に、加工の軌跡が直線から円弧に変化していく場合や、逆に円弧から直線に変化していく場合に、各軸の移動動作が開始してからのその加速度が一定ではない場合もある。
【００１３】
また、加工の軌跡が微小線分の集合で作成された加工プログラムでは、サーボモータの回転が反転した後の加速度が一定ではない場合が多い。また、同様に、加工の軌跡が微小線分の集合で作成された加工プログラムでは、各軸の動作が停止状態から移動動作を開始した後の加速度が一定ではない場合が多く存在する。このような場合には、従来は、反転前後、又は、移動開始後の加速度、が一定であることを前提として調整された補正量をそのまま適用している。つまり、反転の際に加速度は変化するが、反転後は加速度は一定である、又は、反転する前までの加速度も一定であるという前提のもと、いずれか一方の加速度のみを用いて補正量を算出している。このような手法を採用する場合は、次のような問題が生じる。
【００１４】
すなわち、加速度が大きく変化するような状況下では、その反転した後でも加速度は変化しうるし、また、反転に至る途中でも加速度は変化する可能性がある。そのため、その各時点において本来必要な（本来適正な）補正量も（反転の時だけでなく）時々刻々と変化してしまうので、あるときは補正量が過剰になって加工面に不要な傷を付けたり、またあるときは補正量が不足してしまい被加工物の表面に加工不足で隆起した部分が残ってしまうという問題がある。
【００１５】
本発明は、かかる課題に鑑みなされたものであり、サーボモータが反転等する場合であって、反転した後に加速度が変化する場合であっても、サーボモータに対して適正な補正量を算出することができ、以て、より精密な加工をすることが可能なサーボモータの制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するため本発明は、サーボモータの回転が反転した後、又は、停止からの移動の後も、加速度を監視し、その加速度に対応して補正量を変更するサーボモータ制御装置を提供する。より具体的には、以下の通りである。
【００１７】
（１）本発明に係るサーボモータ制御装置（例えば、後述するサーボモータ制御装置１００）は、サーボモータ（例えば、後述するサーボモータ２００）を制御するサーボモータ制御装置であって、所定周期毎に、前記サーボモータの位置又は速度の指令を作成する指令作成部（例えば、後述する速度指令作成部１０２、位置指令作成部１０２ｂ）と、所定周期毎に、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているかを判定する判定部（例えば、後述する反転検出部１０４）と、前記判定部が、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているか、のいずれかを判定した場合、前記判定の結果に基づき、前記サーボモータの加速度を求める加速度計算部（例えば、後述する加速度計算部１０６）と、前記サーボモータが「反転」しているか、又は「停止からの移動」をしている場合、前記サーボモータの遅れを補正するための補正量を計算する補正量計算部（例えば、後述する反転補正量計算部１０８）と、を具備し、前記加速度計算部は、前記サーボモータが「反転」、又は「停止からの移動」をした後も、加速度を求め、前記補正量計算部は、前記サーボモータが「反転」、又は「停止からの移動」をした後も、所定時間ごとに、前記加速度計算部が求めた加速度に応じて、前記補正量を計算する。
【００１８】
（２）前記補正量計算部は、前記補正量にオーバライドをかけ、オーバライドされた補正量を計算してよい。
【００１９】
（３）前記判定部が、前記サーボモータが「停止からの移動」をしていると判定した場合、前記補正量計算部は、前記補正量に１未満の係数を乗算することによって、オーバライドされた前記補正量を計算してよい。
【００２０】
（４）本発明に係るサーボモータ制御方法は、サーボモータを制御する制御方法であって、所定周期毎に、前記サーボモータの位置又は速度の指令を作成する指令作成工程と、所定周期毎に、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているかを判定する判定工程と、前記判定工程において、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているか、のいずれかを判定した場合、前記判定の結果に基づき、前記サーボモータの加速度を求める加速度計算工程と、前記サーボモータが「反転」しているか、又は「停止からの移動」をしている場合、前記サーボモータの遅れを補正するための補正量を計算する補正量計算工程と、を含み、前記加速度計算工程は、前記サーボモータが「反転」、又は「停止からの移動」をした後も、加速度を求め、前記補正量計算工程は、前記サーボモータが「反転」、又は「停止からの移動」をした後も、所定時間ごとに、前記加速度計算工程で求めた加速度に応じて、前記補正量を計算する。
【００２１】
（５）本発明に係るコンピュータプログラムは、コンピュータを、（１）記載のサーボモータ制御装置として動作させるコンピュータプログラムであって、前記コンピュータに、所定周期毎に、前記サーボモータの位置又は速度の指令を作成する指令作成手順と、所定周期毎に、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているかを判定する判定手順と、前記判定工程において、前記サーボモータが「反転」しているか、又は「停止からの移動」をしているか、のいずれかを判定した場合、前記判定の結果に基づき、前記サーボモータの加速度を求める加速度計算手順と、前記サーボモータが「反転」しているか、又は「停止からの移動」をしている場合、前記サーボモータの遅れを補正するための補正量を計算する補正量計算手順と、を実行させ、前記加速度計算手順は、前記サーボモータが「反転」、又は「停止からの移動」をした後も、加速度を求め、前記補正量計算手順は、前記サーボモータが「反転」、又は「停止からの移動」をした後も、所定時間ごとに、前記加速度計算部が求めた加速度に応じて、前記補正量を計算する。
【発明の効果】
【００２２】
本発明によれば、サーボモータが反転等する場合でもより適正な補正量を計算し、サーボモータに対する指令に加えたので、サーボモータをより精密に制御することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態に係るサーボモータ制御装置の構成ブロック図である。
【図２】本発明の実施形態に係るサーボモータ制御装置の動作を表すグラフである。
【図３】円弧波形の説明図である。
【図４】円弧波形の説明図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態の一例について説明する。
本実施形態においては、工作機械のサーボモータ制御装置１００を説明する。このサーボモータ制御装置１００の構成ブロック図が図１に示されている。サーボモータ制御装置１００は、従来の工作機械のサーボモータ制御装置と同様に、サーボモータ２００への速度指令Ｃｖを作成し、その速度指令Ｃｖに基づいてサーボモータ２００を駆動するサーボモータ制御装置１００である。
したがって、従来の工作機械において用いられるサーボモータ制御装置を、本実施形態のサーボモータ制御装置１００に容易に置き換えることができる。言い換えれば、本実施形態において特徴的な構成は、サーボモータ制御装置１００であり、それ以外の構成は従来の工作機械の構成と同様である。
【００２５】
図１に示すように、サーボモータ制御装置１００は、速度指令作成部１０２と、反転検出部１０４と、加速度計算部１０６と、反転補正量計算部１０８と、第１の加算器１１０と、第２の加算器１１２と、速度制御ループ１１６と、を備えている。速度制御ループ１１６が出力する電流指令Ｉはサーボモータ２００に供給され、サーボモータを駆動制御する。サーボモータ２００には、その回転速度を検出する速度検出部１１４が備えられており、速度検出部１１４は、検出した検出速度Ｄｖをサーボモータ制御装置１００に供給する。
【００２６】
なお、図１においては、本実施形態において特徴的な構成と、制御対象であるサーボモータ２００とその関連装置のみを示しており、他の一般的な構成や従来からある構成は省略して示していない。またそれらの一般的な構成等の動作等は、従来から知られているので説明を省略する。
また、サーボモータ制御装置１００は、コンピュータを含む各種電子回路で構成することが好ましい。サーボモータ制御装置１００を構成する各部も、それら各部の機能を実現するハードウェアで構成することもできるし、また、各部の機能を実現するプログラムと、そのプログラムを実行するＣＰＵとから構成することもできる。また、ハードウェアとそれらを制御するプログラムとから構成することもできる。
【００２７】
速度指令作成部１０２は、サーボモータ２００に対する速度指令Ｃｖを作成する。この速度指令Ｃｖは、いわゆる加工プログラムに基づいて作成され、所定の周期毎に速度指令Ｃｖを作成してもよい。
例えば、速度指令作成部１０２は、加工プログラムに基づき、被加工物に対する切削工具を駆動するサーボモータ２００に対する速度指令Ｃｖを周期的に作成することができる。このような処理を実現するためには、加工プログラムを読み取り、周期的にそのプログラムに沿った速度指令Ｃｖを求めるプログラムと、そのプログラムを実行するＣＰＵとから、速度指令作成部１０２を構成することが好適である。
なお、本実施形態では、指令として速度指令を説明するが、他の指令であってもよい。例えば、位置指令でもよい。
【００２８】
反転検出部１０４は、速度指令作成部２１によって作成された速度指令Ｃｖの符号の変化に基づいてサーボモータ２００の回転の反転を検出する。なお、反転検出部１０４は、サーボモータ２００に設けられている速度検出部１１４が得た実際のサーボモータ２００の検出速度Ｄｖに基づいて反転を検出してもよい。
この反転検出部１０４は、その動作を記述するプログラムと、そのプログラムを実行するＣＰＵとから構成してもよい。
【００２９】
加速度計算部１０６は、速度指令作成部１０２が作成した速度指令Ｃｖに基づいてサーボモータ２００の加速度Ｃａを計算する。この計算は、速度指令作成部１０２と同様に周期的に計算してもよい。この加速度計算部１０６が計算した加速度Ｃａは、反転補正量計算部１０８に供給される。
本実施形態において特徴的なことは、サーボモータが反転した後もサーボモータ２００の加速度を監視し、加速度に基づいて補正量を求めることである。これによって、より精密なサーボモータ２００の制御を行うことができる。
なお、本実施形態では、加速度計算部１０６は、速度指令作成部１０２が作成した速度指令Ｃｖに基づいて加速度Ｃａを計算しているが、実際に検出された検出速度Ｄｖから加速度を計算してもよい。検出速度Ｄｖは、後述するように、速度検出部１１４によって検出される。
加速度計算部１０６は、例えば、速度を微分して加速度を計算する動作を記述したプログラムと、そのプログラムを実行するＣＰＵとから構成してもよい。
【００３０】
反転補正量計算部１０８は、サーボモータ２００が反転した場合の反転補正量Ａ０を計算する。この反転補正量Ａ０は、サーボモータ２００に対する指令（例えば速度指令Ｃｖ）に加える補正量であり、サーボモータ２００の遅れを補正する補正量である。
サーボモータ２００が反転したときは、バックラッシュの影響によってサーボモータ２００の回転に遅れが生じる。そのような遅れを補正するために、反転補正量計算部１０８は、サーボモータ２００に対して反転補正量Ａ０を計算する。この反転補正量Ａ０は、例えば各種パラメータから得られる固定値、又は、その固定値にサーボモータ２００の加速度によるオーバライドを乗算した値を用いてもよい。さらに、反転補正量計算部１０８は、加速度計算部１０６が計算する加速度に基づき反転補正量Ａ０を計算している。
本実施形態において特徴的なことは、反転補正量計算部１０８が、サーボモータ２００が反転後も加速度を監視している（求めている）ことである。そして、この監視し続けている（求めて続けている）加速度に基づいて反転補正量Ａ０を計算していることが、本実施形態において特に特徴的な事項である。
これによって、反転した後で加速度が変化した場合であっても、その変化後の加速度に基づいてより適切な反転補正量Ａ０を計算することができる。
その結果、反転の前後で加速度が一定であることを前提として補正量を算出する従来の手法に比べて、より精密に反転補正量Ａ０を計算することができ、以て、より精密なサーボモータの制御を行うことができる。
反転補正量計算部１０８は、例えば、その計算動作を記述するプログラムと、そのプログラムを実行するＣＰＵとから構成してよい。
【００３１】
第１の加算器１１０は、反転補正量計算部１０８が計算した反転補正量Ａ０を速度指令Ｃｖに加算し、補正された速度指令ＡＣｖを算出する。これによって、サーボモータ２００が反転した際の応答遅れを補正することができる。
【００３２】
速度検出部１１４は、サーボモータ２００に備えられており、サーボモータ２００の回転速度を検出する装置である。例えば、サーボモータ２００の回転軸に取り付けられているエンコーダ等で構成することが好適である。速度検出部１１４は、サーボモータ２００の回転速度を検出し、検出速度Ｄｖをサーボモータ制御装置１００に供給する。
エンコーダで速度検出部１１４を構成する場合は、当該エンコーダが出力する信号を例えばディジタル信号に変換するコンバータを備えさせることが好適であるが、エンコーダ自体が回転速度を表すディジタル信号を出力させてもよい。
【００３３】
第２の加算器１１２は、第１の加算器１１０において得られた補正後の速度指令ＡＣｖから、検出速度Ｄｖを減算し、最終的な速度偏差ｄＶを求める。求めた速度偏差ｄＶは、速度制御ループ１１６に供給される。第２の加算器１１２は、サーボモータ２００に対して速度のフィードバック制御を行うための加算器であり、より正確な速度でサーボモータ２００を回転させる。
第１の加算器１１０や、第２の加算器１１２は、例えば、ディジタル信号を加算するディジタル加算器（ハードウェア）で構成してもよいし、加算処理を実行するプログラムと、このプログラムを実行するＣＰＵとから構成してもよい。
【００３４】
速度制御ループ１１６は、速度偏差ｄＶに基づき、電流指令Ｉを作成する。そして、速度制御ループ１１６は、電流指令Ｉに基づいてサーボモータ２００を駆動制御する。
具体的には、速度制御ループ１１６は、速度偏差ｄＶに速度制御ループ比例ゲインを乗算し、速度制御ループ比例項を算出する。さらに、速度制御ループ１１６は、速度偏差ｄＶの積分値に速度制御ループ積分ゲインを乗算することによって速度制御ループ積分項を算出する。そして、これら速度制御ループ比例項と速度制御ループ積分項との和に基づき、サーボモータ２００に対する電流指令Ｉが作成される。
速度制御ループ１１６は、電流指令Ｉに基づく電流をサーボモータ２００に供給し、サーボモータ２００を速度指令Ｃｖに従った回転速度で駆動する。すなわち、速度制御ループ１１６は、典型的には、速度偏差ｄＶに基づき、電流指令Ｉを計算するプログラムと、そのプログラムを実行するＣＰＵと、から構成される。さらに、速度制御ループ１１６は、電流指令Ｉに基づく電流をサーボモータ２００に供給する電力制御素子を備えた電力回路（アンプ回路、ドライバー回路等と呼ばれる）を備えている。
【００３５】
サーボモータ２００は、工作機械に従来から用いられているサーボモータである。このサーボモータ２００には、速度検出部１１４が備えられており、サーボモータ２００の速度を検出することができる。
【００３６】
速度検出部１１４は、サーボモータ２００の回転速度を検出できればどのような部材で構成してもよいが、例えば回転エンコーダを用いてよい。速度検出部１１４が検出した回転速度は、検出速度Ｄｖと呼ばれ、サーボモータ制御装置１００に供給され、フィードバック制御に利用される。具体的に言えば、図１に示すように、第２の加算器１１２において、補正された速度指令ＡＣｖから検出速度Ｄｖが減算されることによって、速度偏差ｄＶを求めている。そして、この速度偏差ｄＶを小さくするように速度制御ループがフィードバック制御することによって、サーボモータ２００をより精密な速度で回転駆動することができる。
【００３７】
このような構成によって、サーボモータ２００が反転した後、その加速度が変化する場合でもその加速度に応じた反転補正量Ａ０を計算することができる。したがって、サーボモータ２００をより精密に制御駆動することができる。
【００３８】
以下、本実施形態に係るサーボモータ制御装置１００の動作を説明する。下記の説明においては、特に、サーボモータ２００に対して速度制御を行う場合の動作の説明を行う。
速度制御においては、図１の構成に示すように、速度指令値Ｃｖと検出速度Ｄｖとの差である速度偏差ｄＶが速度制御ループ１１６へ入力される。速度制御ループ１１６は、速度偏差ｄＶに基づき電流指令Ｉが作成され、この電流指令Ｉに基づきサーボモータ２００が駆動される。
【００３９】
速度制御ループ１１６は、例えば上述したように、速度偏差ｄＶに速度制御ループ比例ゲインを乗ずることによって速度制御ループ比例項を求め、速度偏差ｄＶの積分に速度制御ループ積分ゲインを乗ずることによって速度制御ループ積分項を求める。そして両者の和に基づき電流指令Ｉが作成される。
ここで、本実施形態においては、反転検出部１０４が、サーボモータ２００の「反転」又は「停止からの移動」を判定する。反転検出部１０４が、サーボモータ２００がこの「反転」又は「停止からの移動」をしていると判定したとき、反転補正量計算部１０８は、その反転補正量Ａ０を計算し、速度指令Ｃｖに係る反転補正量Ａ０を加算することによって、サーボモータ２００の応答遅れを補正することができる。
【００４０】
なお、本実施形態では、反転補正量Ａ０を、速度指令Ｃｖに加算しているが、速度制御ループ１１６において求めている速度偏差ｄＶの積分値に加算することも好適であり、同様の作用効果を奏する。例えば、速度制御ループ１１６が速度偏差ｄＶの積分値を求める積分回路を備えている場合は、その積分回路の出力信号に反転補正量Ａ０を加算する加算器を挿入することも好適である。
【００４１】
サーボモータ制御装置１００は、例えばコンピュータを含む電子回路で構成することが好適である。以下、フローチャートに基づき、コンピュータを含む電子回路で構成した場合のサーボモータ制御装置１００の具体的な動作について説明する。
【００４２】
図２には、サーボモータ制御装置１００の動作を表すフローチャートが示されている。
工程Ｓ２−１においては、速度指令作成部１０２が、サーボモータ２００に対する速度指令Ｃｖを、所定の周期毎に作成する。この工程Ｓ２−１は、請求の範囲の指令作成工程の好適な一例に相当する。
【００４３】
工程Ｓ２−２においては、反転検出部１０４が、速度指令作成部１０２によって作成された速度指令Ｃｖの符号の変化に基づいてサーボモータ２００の回転の反転を検出し、サーボモータ２００が反転してからの時間が所定時間以内であれば、工程Ｓ２−３に移行する。サーボモータ２００が反転してからの時間が所定時間を超えていれば、工程Ｓ２−４ｂに移行する。ここで、所定時間とは、予めパラメータ等で設定された時間である。なお、サーボモータ２００に設けられている速度検出部１１４（エンコーダ）から得られた実際のサーボモータ２００の検出速度Ｄｖに基づいて反転を検出してもよい。この工程Ｓ２−２は、請求の範囲の判定工程の好適な一例に相当する。
【００４４】
工程Ｓ２−３においては、加速度計算部１０６が、速度指令作成部１０２が作成した速度指令Ｃｖに基づいてサーボモータの加速度Ｃａを、所定の周期毎に計算する。なお、実際に検出された速度Ｄｖから加速度を計算してもよい。
本実施形態において特徴的なことは、本工程Ｓ２−３における加速度の計算が、反転した後も引き続き、続行されていることである。これによって、反転後に、加速度が変化するような加工処理が行われる場合であっても、その時の加速度に応じた補正量を計算することができる。
なお、工程Ｓ２−３における加速度の計算は、反転が検出されてから実行するように構成してもよい。また、工程Ｓ２−３における加速度の計算は、反転が検出される前から（反転前から）実行し続けているように構成してもよい。本文では、図２のフローチャートに示すように、反転が検出されてから実行する場合の動作を中心に説明する。
工程Ｓ２−３は、請求の範囲の加速度計算工程の好適な一例に相当する。
【００４５】
工程Ｓ２−４においては、反転補正量計算部１０８が、サーボモータ２００が反転した場合の反転補正量Ａ０を計算する。この反転補正量Ａ０の計算は、上述した反転補正量計算部１０８の動作説明と同様である。
本実施形態において特徴的なことは、加速度計算部１０６が、サーボモータ２００の反転後に加速度を求め続けていることに基づき、反転補正量計算部１０８が求めている加速度に基づいて反転補正量Ａ０を引き続き計算し続けていることである。
これによって、反転した後で加速度が変化した場合であっても、その変化後の加速度に基づいてより適切な反転補正量Ａ０を計算することができる。
なお、工程Ｓ２−４は、請求の範囲の補正量計算工程の好適な一例に相当する。
一方、工程Ｓ２−４ｂでは、反転補正量計算部１０８は、反転補正量Ａ０として０を出力する。これは、サーボモータ２００が反転していないので、反転に基づく補正を行わないためである。
【００４６】
工程Ｓ２−５においては、第１の加算器１１０が、速度指令Ｃｖに補正量Ａ０を加算し、補正された速度指令ＡＣ０を得る。したがって、サーボモータ２００が反転している場合は、その補正がなされる。一方、サーボモータ２００が反転していない場合は補正量として０が加算されるので、実質的に補正はなされない。
【００４７】
工程Ｓ２−６においては、第２の加算器１１２が、補正された速度指令ＡＣｖから速度検出部１１４が検出したサーボモータ２００の実際の速度である検出速度Ｄｖを減算し、いわゆる速度偏差ｄＶを求める。
【００４８】
工程Ｓ２−７においては、速度制御ループ１１６によって、上記速度偏差ｄＶに基づきサーボモータ２００に対する電流指令Ｉが求められる。また、速度制御ループ１１６は、この電流指令Ｉに基づき、サーボモータ２００に所定の電流が供給され、サーボモータを制御駆動する。
以上述べたように、本実施形態によれば、サーボモータ２００が反転した場合に、その加速度を求め、求めた加速度に基づき、速度指令Ｃｖに対する補正量を算出している。したがって、サーボモータ２００が反転した後で加速度が変化した場合でもサーボモータ２００をより精密に制御することができる。
なお、本実施形態で説明している種々のプログラムは、請求の範囲のコンピュータプログラムの好適な一例に相当する。
【００４９】
以上、本発明の実施形態について詳細に説明したが、前述した実施形態は、本発明を実施するにあたっての具体例を示したに過ぎない。本発明の技術的範囲は、前記実施形態に限定されるものではない。本発明は、その趣旨を逸脱しない範囲において種々の変更が可能であり、それらも本発明の技術的範囲に含まれる。
【００５０】
上述した例では、主としてサーボモータ２００が「反転」した場合を例として説明したが、サーボモータ２００が停止状態から移動を開始した場合（これを「停止からの移動」と呼ぶ）も、反転の場合と同様の処理を行ってよい。これまで述べた「反転」を、「停止からの移動」と読み替えることができ、この「停止からの移動」の場合も上述した説明と同様に、より精密なサーボモータ２００の制御を行うことが可能である。
すなわち、反転検出部１０４は、サーボモータ２００の「反転」、又は「停止からの移動」のいずれかを検出してよい。いずれか一方のみを検出してもよいし、両方を検出するように構成してもよい。
【００５１】
そして、反転検出部１０４が「反転」又は「停止からの移動」を検出した場合は、反転補正量計算部１０８は、上述した処理と同様の処理で反転補正量Ａ０を計算してよい。
ただし、反転補正量計算部１０８は、「停止からの移動」の場合は、サーボモータ２００の加速度に１未満のオーバライドを乗算することが好ましい。
反転検出部１０４が「停止からの移動」を検出した場合でも、加速度計算部１０６、第１の加算器１１０、第２の加算器１１２、速度検出部１１４、速度制御ループ１１６は、上で説明した「反転」の場合と同様の動作を実行する。
【００５２】
また、上述した例では、主として速度制御を例としてサーボモータ制御装置１００を説明したが、他の制御方法を利用してもよい。例えば位置制御や加速度制御等を行う場合も、同様の手法で補正量を計算し、サーボモータの位置等の制御を行うことが可能である。
例えば、位置制御の場合は、速度指令作成部１０２に代えて、位置指令作成部１０２ｂを用いればよい。位置指令作成部１０２ｂは、速度指令作成部１０２と同様に、加工プログラムに基づいて、サーボモータ２００に対する位置指令を作成する。位置指令作成部１０２ｂも、速度指令作成部１０２と同様に、その動作を実現するプログラムと、そのプログラムを実行するＣＰＵと、から構成することができる。
【符号の説明】
【００５３】
１００  サーボモータ制御装置
１０２  速度指令作成部
１０４  反転検出部
１０６  加速度計算部
１０８  反転補正量計算部
１１０  第１の加算器
１１２  第２の加算器
１１４  速度検出部
１１６  速度制御ループ
Ａ０  反転補正量
ＡＣｖ  補正後の速度指令
Ｃａ  加速度
Ｃｖ  速度指令
Ｄｖ  検出速度
ｄＶ  速度偏差
Ｉ  電流指令
Ｐ  象限突起
【図１】
2018092357.tif 000003
【図２】
2018092357.tif 000004
【図３】
2018092357.tif 000005
【図４】
2018092357.tif 000006