(57)【要約】【課題】揺動切削を行う切削工具の揺動を制御し、切削対象であるワークの近傍に位置する他の干渉体と切削工具との干渉を抑制できる工作装置の制御装置を提供すること。【解決手段】工作機械を制御する制御装置であって、切削工具を駆動するサーボモータに対する位置指令を取得する位置指令取得部と、切削工具の回転速度を取得する回転速度取得部と、位置指令に基づきサーボモータの加速度を計算する加速度計算部と、位置指令と回転速度とに基づいて加工経路に沿って切削工具とワークとを相対的に揺動させる揺動指令を計算する揺動指令計算部と、加速度に基づきオフセット値を計算するオフセット値計算部と、揺動指令の振幅をオフセットするオフセット部と、振幅がオフセットされた揺動指令と位置指令とに基づいてサーボモータを駆動するための駆動信号を出力する駆動部と、を備える。【選択図】図２
2018041275.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御軸を備え、前記制御軸を協調動作させて加工対象であるワークを切削加工する工作機械を制御する制御装置であって、
切削工具を駆動するサーボモータに対する位置指令、または、前記ワークを駆動するサーボモータに対する位置指令、を取得する位置指令取得部と、
回転する前記切削工具、または、回転する前記ワークの回転速度、を取得する回転速度取得部と、
取得した前記位置指令に基づき、前記サーボモータの加速度を計算する加速度計算部と、
取得した前記位置指令と、取得した前記回転速度と、に基づいて、前記切削工具が進行する加工経路に沿って加工方向に、前記切削工具と前記ワークとを相対的に揺動させるための揺動指令を計算する揺動指令計算部と、
計算した前記加速度に基づきオフセット値を計算するオフセット値計算部と、
前記計算した揺動指令の振幅に、前記計算したオフセット値を加えることによって、前記振幅をオフセットするオフセット部と、
振幅がオフセットされた前記揺動指令と、取得した前記位置指令と、に基づいて前記サーボモータを駆動するための駆動信号を求め、前記駆動信号を出力する駆動部と、
を備える制御装置。
【請求項２】
前記揺動指令計算部は、前記切削加工の際に発生した切屑を細断するために、前記揺動指令を計算する請求項１記載の制御装置。
【請求項３】
前記揺動指令計算部は、
取得した前記回転速度に基づいて、揺動周波数を計算する揺動周波数計算部と、
取得した前記位置指令と、取得した前記回転速度と、に基づいて前記揺動振幅を計算する揺動振幅計算部と、
を備える請求項１または２記載の制御装置。
【請求項４】
前記揺動振幅計算部は、取得した前記位置指令と、取得した前記回転速度とに基づいて前記切削工具または前記ワークの１回転当たりの移動量を求め、求めた移動量を第１の定数倍して前記揺動振幅を計算する請求項３記載の制御装置。
【請求項５】
前記揺動周波数計算部は、取得した前記回転速度を、第２の定数倍することによって、前記揺動周波数を計算する請求項３記載の制御装置。
【請求項６】
前記加速度計算部は、
前記サーボモータの位置フィードバック値に基づき、前記加速度を計算する請求項１から３のいずれか１項に記載の制御装置。
【請求項７】
前記オフセット部は、
前記オフセット値計算部が計算したオフセット値に代えて、外部の上位制御装置からオフセット値を取得し、前記計算した揺動指令の振幅に、前記取得したオフセット値を加えることによって、前記振幅をオフセットする請求項１から６のいずれか１項に記載の制御装置。
【請求項８】
前記オフセット値計算部は、
前記加速度に基づいて前記サーボモータの動作の動作開始期間であると判断される場合は、前記加工経路方向のオフセット値を求め請求項１から６のいずれか１項に記載の制御装置。
【請求項９】
前記オフセット値計算部は、
前記加速度に基づいて前記サーボモータの動作の動作終了期間であると判断される場合は、前記加工経路と反対方向のオフセット値を求める請求項１から６のいずれか１項に記載の制御装置。
【請求項１０】
前記オフセット値計算部は、
前記加速度に基づいて前記サーボモータの動作の動作開始期間または動作終了期間のいずれかの期間であると判断される場合に、前記加工経路方向または前記加工経路と反対方向のオフセット値を求め、前記期間以外の場合は、０のオフセット値を求める請求項１から６のいずれか１項に記載の制御装置。
【請求項１１】
複数の制御軸を備え、前記制御軸を協調動作させて加工対象であるワークを切削加工する工作機械を制御する制御方法であって、
切削工具を駆動するサーボモータに対する位置指令、または、前記ワークを駆動するサーボモータに対する位置指令、を取得する位置指令取得工程と、
回転する前記切削工具、または、回転する前記ワークの回転速度、を取得する回転速度取得工程と、
取得した前記位置指令に基づき、前記サーボモータの加速度を計算する加速度計算工程と、
取得した前記位置指令と、取得した前記回転速度と、に基づいて、前記切削工具が進行する加工経路に沿って加工方向に、前記切削工具と前記ワークとを相対的に揺動させるための揺動指令を計算する揺動指令計算工程と、
計算した前記加速度に基づきオフセット値を計算するオフセット値計算工程と、
前記計算した揺動指令の振幅に、前記計算したオフセット値を加えることによって、前記振幅をオフセットするオフセット工程と、
振幅がオフセットされた前記揺動指令と、取得した前記位置指令と、に基づいて前記サーボモータを駆動するための駆動信号を求め、前記駆動信号を出力する駆動工程と、
を含む制御方法。
【請求項１２】
コンピュータを、複数の制御軸を備え、前記制御軸を協調動作させて加工対象であるワークを切削加工する工作機械を制御する制御装置として動作させるコンピュータプログラムであって、前記コンピュータに、
切削工具を駆動するサーボモータに対する位置指令、または、前記ワークを駆動するサーボモータに対する位置指令、を取得する位置指令取得手順と、
回転する前記切削工具、または、回転する前記ワークの回転速度、を取得する回転速度取得手順と、
取得した前記位置指令に基づき、前記サーボモータの加速度を計算する加速度計算手順と、
取得した前記位置指令と、取得した前記回転速度と、に基づいて、前記切削工具が進行する加工経路に沿って加工方向に、前記切削工具と前記ワークとを相対的に揺動させるための揺動指令を計算する揺動指令計算手順と、
計算した前記加速度に基づきオフセット値を計算するオフセット値計算手順と、
前記計算した揺動指令の振幅に、前記計算したオフセット値を加えることによって、前記振幅をオフセットするオフセット手順と、
振幅がオフセットされた前記揺動指令と、取得した前記位置指令と、に基づいて前記サーボモータを駆動するための駆動信号を求め、前記駆動信号を出力する駆動手順と、
を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数軸の協調動作によりワークを切削加工する工作機械の制御装置及び制御方法並びにコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、複数軸の協調動作により加工対象であるワークを切削加工する工作機械が知られている。このような工作機械においては、切削により生じる切屑を細断するために、加工方向に対して、切削工具とワークとを相対的に揺動させる加工方法が採用される場合がある。
【０００３】
例えば、下記特許文献１においては、切削工具を低周波振動させながら切削加工を行わせる技術が開示されている。同文献１では、切削工具送り駆動モータを制御することで切削工具を２軸方向に低周波振動させる制御機構を有し、ワークの回転数または切削工具の回転数と該ワークまたは切削工具１回転当たりの切削工具の送り量に応じて、切削工具を少なくとも２軸方向に同期させて送り動作させる。２５Ｈｚ以上の低周波で実働可能なデータとして、テーブル上の質量やモータ特性等の機械特性に応じた切削工具送り機構の前進量，後退量，前進速度，後退速度が予めテーブル化されて格納されており、格納されている当該データに基づいて前記切削工具送り駆動モータを制御している。そして、最適な振動で低周波振動切削を実行させることにより、切屑が細断され、切削工具に切屑が絡まりにくくなるとされている。
【０００４】
しかし、同文献１においては、低周波による振動（揺動）によって、切削工具の位置に揺動が生じた場合に、周囲の物体と干渉してしまうことは考慮されていない。そのため、同文献１による技術は、切削工具の移動しうる位置の近傍に干渉してしまう物体が配置されていない場合にのみ利用可能な技術である。したがって、切削加工の対象となる部位の近傍に干渉する他の部位や他の物体が位置する場合には、同技術を応用することは困難であると考えられる。
【０００５】
また、下記特許文献２においては、与えられた振動条件、例えば周波数と振幅に基づいて加工経路に沿った振動を加えることを可能とするように揺動指令を作成し、これを加工指令に重畳して各軸のサーボ制御に分配する技術が開示されている。具体的には、移動経路に沿って工具を加工対象に対して相対的に移動させる際に、移動経路をなぞるように工具を振動させるようにし、加工位置と速度を含む移動経路を有する移動指令から単位時間（補間周期）当たりの指令移動量（移動指令による移動量）を算出し、当該移動指令に対応する時刻における当該単位時間での振動による移動量である振動移動量を、周波数と振幅を含む振動条件を用いて算出し、指令移動量と振動移動量とを合成して合成移動量を算出し、合成移動量だけ移動した位置が曲線移動経路上に位置するように、単位時間内の移動量を求めている。そして、この方法により工具の振動条件を格納した表を必要とせずに、種々の条件で加工ができると記載されている。
【０００６】
しかし、同文献２においては、例えば、高周波揺動を与えようとすると、指令が粗くなってしまうと考えられる。これは、揺動周波数が高くて指令分配周波数に近い場合に特に問題になると考えられる。例えば指令分配周波数１００Ｈｚに対して揺動周波数５０Ｈｚの場合は、１揺動周期の間に２点の指令しかできない。揺動周波数がさらに高くなり指令分配周波数に近くなればなるほど、その傾向は顕著であり、緻密な制御が困難になる場合も考えられる。
緻密な制御が困難となる結果、切削工具に対する指令経路の近傍に加工対象の部位以外の他の部位や、他の部品等が位置する場合、切削工具がその他の部位や他の部品（干渉体と呼ぶ）に干渉する事態も想定される。したがって、切削工具の指令経路の近傍に所定の干渉体が位置する場合には、同文献２の技術を適用することは困難である。
【０００７】
このように、従来の揺動を用いて工作機械を制御する技術では、切削工具に揺動を加えているため、本来の指令経路に対して、揺動の振幅（揺動振幅と呼ぶ）分、切削工具が動く可能性がある。したがって、切削対象となる部位の近傍に干渉体が位置する場合、切削工具がその干渉体と干渉してしまう恐れがある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第５０３３９２９号公報
【特許文献２】特許第５５９９５２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、かかる課題に鑑みなされたものであり、揺動切削を行う工作機械の揺動を制御し、切削の対象であるワークの指令経路の近傍に他の干渉体が位置する場合でも、加工を行う工具と干渉体との干渉を抑制することが可能な工作装置の制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明者らは、揺動振幅に所定のオフセットを加えることによって切削工具の移動範囲を制御する原理を見出し、本発明を完成するに至った。
【００１１】
（１）本発明に係る制御装置（例えば、後述のサーボ制御装置１００）は、複数の制御軸を備え、前記制御軸を協調動作させて加工対象であるワーク（例えば、後述のワーク１０、２０）を切削加工する工作機械を制御する制御装置であって、切削工具を駆動するサーボモータ（例えば、後述のサーボモータ４００）に対する位置指令、または、前記ワークを駆動するサーボモータに対する位置指令、を取得する位置指令取得部（例えば、後述の位置指令取得部１２０）と、回転する前記切削工具、または、回転する前記ワークの回転速度、を取得する回転速度取得部（例えば、後述の回転速度取得部１１８）と、取得した前記位置指令に基づき、前記サーボモータの加速度を計算する加速度計算部（例えば、後述の加速度計算部１０４）と、取得した前記位置指令と、取得した前記回転速度と、に基づいて、前記切削工具が進行する加工経路に沿って加工方向に、前記切削工具と前記ワークとを相対的に揺動させるための揺動指令を計算する揺動指令計算部（例えば、後述の揺動指令計算部１０２）と、計算した前記加速度に基づきオフセット値を計算するオフセット値計算部（例えば、後述のオフセット値計算部１０６）と、前記計算した揺動指令の振幅に、前記計算したオフセット値を加えることによって、前記振幅をオフセットするオフセット部（例えば、後述の揺動指令補正部１０８）と、振幅がオフセットされた前記揺動指令と、取得した前記位置指令と、に基づいて前記サーボモータを駆動するための駆動信号を求め、前記駆動信号を出力する駆動部（例えば、後述の位置・速度・電流制御部１１６と加算器１１０）と、を備える。
【００１２】
（２）  （１）の前記揺動指令計算部は、前記切削加工の際に発生した切屑を細断するために、前記揺動指令を計算してもよい。
【００１３】
（３）  （１）の前記揺動指令計算部は、取得した前記回転速度に基づいて、揺動周波数を計算する揺動周波数計算部（例えば、後述の揺動指令計算部１０２）と、取得した前記位置指令と、取得した前記回転速度と、に基づいて前記揺動振幅を計算する揺動振幅計算部（例えば、後述の揺動指令計算部１０２）と、を備えてもよい。
【００１４】
（４）  （３）の前記揺動振幅計算部は、取得した前記位置指令と、取得した前記回転速度とに基づいて前記切削工具または前記ワークの１回転当たりの移動量を求め、求めた移動量を第１の定数倍して前記揺動振幅を計算してもよい。
【００１５】
（５）  （３）の前記揺動周波数計算部は、取得した前記回転速度を、第２の定数倍することによって、前記揺動周波数を計算してもよい。
【００１６】
（６）  （１）の前記加速度計算部は、前記サーボモータの位置フィードバック値に基づき、前記加速度を計算してもよい。
【００１７】
（７）  （１）の前記オフセット部は、前記オフセット値計算部が計算したオフセット値に代えて、外部の上位制御装置（例えば、後述の上位制御装置２００）からオフセット値を取得し、前記計算した揺動指令の振幅に、前記取得したオフセット値を加えることによって、前記振幅をオフセットしてもよい。
【００１８】
（８）  （１）の前記オフセット値計算部は、前記加速度に基づいて前記サーボモータの動作の動作開始期間（例えば、後述の動作開始期間Ｓ）であると判断される場合は、前記加工経路方向のオフセット値を求めてもよい。
【００１９】
（９）  （１）の前記オフセット値計算部は、前記加速度に基づいて前記サーボモータの動作の動作終了期間（例えば、後述の動作終了期間Ｔ）であると判断される場合は、前記加工経路と反対方向のオフセット値を求めてもよい。
【００２０】
（１０）  （１）の前記オフセット値計算部は、前記加速度に基づいて前記サーボモータの動作の動作開始期間または動作終了期間のいずれかの期間であると判断される場合に、前記加工経路方向または前記加工経路と反対方向のオフセット値を求め、前記期間以外の場合は、０のオフセット値を求めてもよい。
【００２１】
（１１）本発明に係る制御方法は、複数の制御軸を備え、前記制御軸を協調動作させて加工対象であるワークを切削加工する工作機械を制御する制御方法であって、切削工具を駆動するサーボモータに対する位置指令、または、前記ワークを駆動するサーボモータに対する位置指令、を取得する位置指令取得工程と、回転する前記切削工具、または、回転する前記ワークの回転速度、を取得する回転速度取得工程と、取得した前記位置指令に基づき、前記サーボモータの加速度を計算する加速度計算工程と、取得した前記位置指令と、取得した前記回転速度と、に基づいて、前記切削工具が進行する加工経路に沿って加工方向に、前記切削工具と前記ワークとを相対的に揺動させるための揺動指令を計算する揺動指令計算工程と、計算した前記加速度に基づきオフセット値を計算するオフセット値計算工程と、前記計算した揺動指令の振幅に、前記計算したオフセット値を加えることによって、前記振幅をオフセットするオフセット工程と、振幅がオフセットされた前記揺動指令と、取得した前記位置指令と、に基づいて前記サーボモータを駆動するための駆動信号を求め、前記駆動信号を出力する駆動工程と、を含む。
【００２２】
（１２）本発明に係るコンピュータプログラムは、コンピュータを、複数の制御軸を備え、前記制御軸を協調動作させて加工対象であるワークを切削加工する工作機械を制御する制御装置として動作させるコンピュータプログラムであって、前記コンピュータに、切削工具を駆動するサーボモータに対する位置指令、または、前記ワークを駆動するサーボモータに対する位置指令、を取得する位置指令取得手順と、回転する前記切削工具、または、回転する前記ワークの回転速度、を取得する回転速度取得手順と、取得した前記位置指令に基づき、前記サーボモータの加速度を計算する加速度計算手順と、取得した前記位置指令と、取得した前記回転速度と、に基づいて、前記切削工具が進行する加工経路に沿って加工方向に、前記切削工具と前記ワークとを相対的に揺動させるための揺動指令を計算する揺動指令計算手順と、計算した前記加速度に基づきオフセット値を計算するオフセット値計算手順と、前記計算した揺動指令の振幅に、前記計算したオフセット値を加えることによって、前記振幅をオフセットするオフセット手順と、振幅がオフセットされた前記揺動指令と、取得した前記位置指令と、に基づいて前記サーボモータを駆動するための駆動信号を求め、前記駆動信号を出力する駆動手順と、を実行させる。
【発明の効果】
【００２３】
本発明によれば、切削加工の動作開始期間と動作終了期間とのいずれか一方または双方において、揺動の振幅をオフセットさせたので、切削工具と加工経路（指令経路）との干渉（切削工具と、近傍に位置する他の部位や部品（干渉体）との干渉）を抑制することができる。
【図面の簡単な説明】
【００２４】
【図１Ａ】揺動による切削加工の様子を示す説明図である。
【図１Ｂ】揺動による切削加工の様子を示す説明図である。
【図２】本発明の好適な実施形態に係るサーボ制御装置の構成ブロック図である。
【図３】本発明の好適な実施形態に係るサーボ制御装置の動作を表すグラフである。
【図４】本発明の好適な実施形態に係るサーボ制御装置の動作を表すグラフである。
【図５Ａ】本発明の好適な実施形態に係るサーボ制御装置による工具の動作を表す説明図である。
【図５Ｂ】本発明の好適な実施形態に係るサーボ制御装置による工具の動作を表す説明図である。
【図６】本発明の好適な実施形態に係るサーボ制御装置の動作を表すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態の一例について説明する。
本実施形態においては、複数の制御軸を備えた工作機械のサーボ制御装置を説明する。このサーボ制御装置は、加工対象であるワークを切削加工する工作機械において、切屑を細断するために、切削工具とワークとを相対的に揺動させ、特に加工方向に揺動させることによって断続切削を実行させるサーボ制御装置である。
【００２６】
＜揺動動作の原理の説明＞
図１Ａ及び図１Ｂは、揺動動作の説明を行うための説明図である。
図１Ａは、ワーク１０を、主軸１２を回転軸として回転させ、その表面を切削工具１４で切削加工する様子を示す説明図である。同図に示すように、主軸１２と同方向の軸がＺ軸であり、主軸１２の直交する軸の一つがＸ軸である。切削工具１４は、ワーク１０の表面を所定のプログラムに基づき切削していくが、その加工は、例えばＺ軸、またはＺ軸と所定角度の加工方向Ｂに沿って進んでいく。このように加工が進んでいく方向を加工方向Ｂと呼ぶ。
【００２７】
このような切削加工を行う際に、切削工具１４は、加工方向Ｂに揺動Ａされている。この揺動Ａによって、例えば切屑を細かく分断することができるようになるとされている。この揺動Ａによって、切削工具１４は加工方向にいわば振動していることになる。切削工具１４がワーク１０に対して接触／非接触を繰り返すことになる。切削工具１４がワーク１０に対して接触する場合は、切削工具１４は、ワーク１０の表面上で、図１Ａにおける切削Ｄの軌跡を描いて移動する。他方、切削工具１４がワーク１０に対して接触していない場合は、切削工具１４は、ワーク１０の表面上で、図１Ａにおける空振りＣの軌跡を描いて移動する。
このように断続的な切削が行われることによって、切屑を細かく分断することや、切削工具１４の効果的な冷却が可能となる。
【００２８】
図１Ｂは、切削工具が揺動される他の例を示す説明図である。同図は、内部に空洞があるワーク２０の空洞内部を切削工具２４で切削加工する様子を示す説明図である。図１Ｂにおいてはワーク２０に対して切削工具２４が回転しており、その軸が主軸となる。
すなわち、本特許において、主軸は２通りの場合がある。図１Ａにおいては、主軸１２とは、ワーク１０の回転する軸である。図１Ｂにおいては、主軸２２とは、切削工具２４の回転する軸をいう。
なお、図１Ｂにおいても、図１Ａと同様に、主軸２２と同方向の軸がＺ軸であり、主軸２２の直交する軸の一つがＸ軸である。切削工具２４は、ワーク１０の空洞内部の表面を所定のプログラムに基づき切削していくが、その加工は、図１Ａと同様、加工方向Ｂに沿って進んでいく。
【００２９】
図１Ｂにおいても、切削工具２４は、加工方向Ｂに揺動Ａされ、切削工具２４はワーク２０に対して接触／非接触を繰り返す。切削工具２４がワーク２０に対して接触する場合は、切削工具２４は、ワーク２０の表面上で、図１Ｂにおける切削Ｄの軌跡を描いて移動する。他方、切削工具２４がワーク２０に対して接触していない場合は、切削工具２４は、ワーク２０の表面上で、図１Ｂにおける空振りＣの軌跡を描いて移動する。
図１Ａ及び図１Ｂにおいては、いずれも切削工具１４、２４側が揺動される例を説明したが、ワーク１０、２０側が揺動されるように構成されていてもよい。
【００３０】
従来の技術においては、切削工具１４（２４）等を駆動するサーボモータに、当該揺動の指令を本来の指令に加えて与えることにより揺動が実現されている。例えば、従来は、その時点における指令（指令、主軸の回転速度）のみを考慮して揺動指示を行っているので、その経路の近傍に、切削工具と干渉する干渉体が位置する場合は、その干渉体と切削工具とが干渉してしまうことが考えられる。
本実施形態においては、この揺動動作を、加工動作の初期（動作開始期間Ｓと呼ぶ）や終期（動作終了期間Ｔと呼ぶ）において調整し、加工経路の近傍に位置する干渉体との干渉を抑制することができるサーボ制御装置を提案する。この揺動動作の調整は、揺動の振幅にオフセット値を加えることによって、実現されている。
【００３１】
特に、本実施形態におけるサーボ制御装置においては、指令加速度に応じたオフセット値を揺動指令に加算することを特徴とする。すなわち、加速度が正方向（加工方向）に大きい場合は、動作開始期間Ｓ（動作の初期の期間）であると判断し、揺動の振幅に加工方向のオフセット値を加える。このオフセット値を前進オフセットと呼ぶ。また、加速度が負方向（加工方向の反対方向）に大きい場合は、動作終了期間Ｔ（動作の終期の期間）であると判断し、揺動の振幅に加工方向と逆方向のオフセット値を加える。このオフセット値を後退オフセットと呼ぶ。
なお、本実施形態においては、動作開始期間と、動作終了期間との双方で揺動の振幅をオフセットする例を説明するが、いずれか一方の期間のみオフセットさせてもよい。
なお、本特許で経路とは加工経路を意味し、具体的には、例えば切削工具に対する位置指令によって切削工具が移動する（辿る）経路である。加工経路は、指令経路とも言う。
【００３２】
このように、本実施形態においては、オフセット値を指令加速度に基づき算出し、算出したオフセット値を揺動指令（の振幅）に加算しているが、オフセット値は、上位の制御装置（上位制御装置と呼ぶ）から提供されてもよい。上位制御装置は、切削工具の加工動作に対する位置指令を出力するので、動作開始期間Ｓ、動作終了期間Ｔを認識することができると考えられる。そのため、この上位制御装置が、揺動指令の振幅に加えるべきオフセット値を提供することも好ましいと考えられる。
揺動指令は、基本的に、揺動の周波数（揺動周波数と呼ぶ）と、揺動の振幅（揺動振幅と呼ぶ）とを含むが、その他に種々のパラメータを含んでいてもよい。例えば、揺動指令は、切削工具の送り量、前進量、後退量、前進速度、後退速度等を含んでいてもよい。
【００３３】
＜構成＞
以下、本実施形態に係るサーボ制御装置１００の構成を図に基づき説明する。本実施形態に係るサーボ制御装置１００の構成ブロック図が図２に示されている。図２に示すように、上位制御装置２００は、位置指令を出力する。サーボ制御装置１００は、工作機械（不図示）のサーボモータ４００を駆動して、この位置指令に合うように工作機械の切削工具やワークを制御する。サーボ制御装置１００は、請求の範囲の制御装置の好適な一例に相当する。
上位制御装置２００は、サーボ制御装置１００を介して工作機械を制御する上位の制御装置であり、例えば、コンピュータで構成することができる。また例えば、ユーザが操作を行う制御コンソール・制御パネルのような構成でもよい。また、複数の工作機械を統合管理する管理装置（管理コンピュータ）のような構成でもよい。また、工場全体を制御する制御装置（制御コンピュータ）のような構成を上位制御装置２００として利用してもよい。
【００３４】
サーボ制御装置１００は、ＣＰＵやメモリを備えたコンピュータで構成することが好ましく、以下説明する各部（各計算部、制御部等）は、当該ＣＰＵがメモリ中の所定のプログラムを実行することによって実現することができる。この所定のプログラムは、請求の範囲のコンピュータプログラムの好適な一例に相当する。
本実施形態に係るサーボ制御装置１００は、揺動指令計算部１０２と、加速度計算部１０４と、オフセット値計算部１０６と、揺動指令補正部１０８と、位置・速度・電流制御部１１６と、を備えている。
【００３５】
揺動指令計算部１０２は、主軸の回転速度と、上位制御装置２００が出力する位置指令とに基づき、揺動指令を計算する。加速度計算部１０４は、サーボモータ４００の加速度を計算する。加速度の計算は、位置指令に基づく手法と、位置フィードバック値に基づく手法の２種類があるが、その詳細は後述する。オフセット値計算部１０６は、加速度計算部１０４が計算した加速度に基づき、オフセット値を計算する。揺動指令補正部１０８は、揺動指令にオフセット値を加えて、揺動指令を補正する。オフセット値は、オフセット値計算部１０６が計算したオフセット値を利用する手法と、上位制御装置２００が提供するオフセット値を利用する手法があるが、その詳細は後述する。位置・速度・電流制御部１１６は、位置指令に補正した揺動指令を加えて、サーボモータに対する駆動信号を求める。
【００３６】
さらに、サーボ制御装置１００は、主軸の回転速度を取得する回転速度取得部１１８と、上位制御装置２００からの位置指令を取得する位置指令取得部１２０と、位置フィードバック値を取得する位置取得部１２２と、を備えている。なお、主軸の回転速度は、分（秒）当たりの回転数でもいいし、角速度でもよい。これら各取得部は、コンピュータの入力インターフェースと、その入力インターフェースを制御して情報を取得するプログラムと、そのプログラムを実行するＣＰＵと、とから構成することが好ましい。なお、このプログラムも、請求の範囲のコンピュータプログラムの好適な一例に相当する。また、各取得部は、外部からのデータを保存するバッファ等を含んでいてもよい。
【００３７】
＜動作＞
以下、サーボ制御装置１００の具体的な動作を、図２の構成ブロック図、及び、図３、図４、図５Ａ、図５Ｂの動作を説明するグラフや説明図、図６のフローチャートに基づき説明する。
位置指令取得部１２０は、上位制御装置２００が出力する、切削工具を駆動するサーボモータ４００に対する位置指令、または、ワーク１０（２０）を駆動するサーボモータ４００に対する位置指令、を取得するインターフェースである。位置指令取得部１２０が取得した位置指令は、揺動指令計算部１０２と、加速度計算部１０４と、加算器１１０と、に供給される。
位置指令取得部１２０は、請求の範囲の位置指令取得部の好適な一例に相当する。また、位置指令取得部１２０による位置指令の取得動作は、図６の工程Ｓ１：位置指令取得工程に該当する。
【００３８】
回転速度取得部１１８は、回転するワークまたは切削工具の主軸の回転速度を取得するインターフェースであり、ここで取得した回転速度は、揺動指令計算部１０２に供給される。
回転速度取得部１１８は、請求の範囲の回転速度取得部の好適な一例に相当する。回転速度取得部１１８による主軸の回転速度の取得動作は、図６のフローチャートにおける工程Ｓ２：回転速度取得工程に該当する。
なお、本実施形態における回転速度は、切削工具の回転速度である場合でもよいし、ワークの回転速度である場合でもよい。また、回転速度は、切削工具等の主軸に回転速度センサを設けて取得してもよいが、上位制御装置２００が出力する位置指令に基づき、その時間変化率から回転速度を求めてもよい。また、後述するサーボモータ４００の回転角度を検出する検出器５００が検出する位置フィードバック値の変化率（または微分）から算出することも好適である。
【００３９】
加速度計算部１０４は、位置指令に基づき、サーボモータ４００の加速度を計算する。サーボモータ４００の位置を微分すれば、速度が得られる。そして、速度を微分すれば、加速度が得られる。なお、得られた加速度を指令加速度と呼ぶ場合もある。
加速度計算部１０４のこのような動作も、サーボ制御装置１００のＣＰＵが、加速度計算部１０４のこのような動作を記述するプログラムを実行することによって実現している。このプログラムは、サーボ制御装置１００内の所定の記憶装置に格納されているが、外部の記憶装置に格納されていてもよい。また、このプログラムも、請求の範囲のコンピュータプログラムの好適な一例に相当する。
本実施形態において特徴的なことの一つは、このように、加速度を計算することで、サーボモータ４００が実行する動作が、動作開始期間Ｓなのか、動作終了期間Ｔなのか、それ以外の期間における動作なのかを判断していることである。この判断に基づいて、工具の揺動指令（の振幅）をオフセットすることができる。
【００４０】
なお、加速度計算部１０４は、位置指令ではなく、サーボモータ４００の実際の動きから、実際の加速度を計算することも好ましい。このようにして加速度を計算すれば、実際の動きに基づくより正確な加速度の値を計算することができると考えられる。サーボモータの４００の位置は、図２に示す検出器５００によって検出され、位置フィードバック値として出力される。位置フィードバック値は、位置取得部１２２を通じてサーボ制御装置１００に取り込まれる。位置取得部１２２は、取得した位置フィードバック値を、加速度計算部１０４と、加算器１１０とに送出する。
【００４１】
加速度計算部１０４は、位置指令の代わりに、この位置フィードバック値を用いて、サーボモータ４００の実際の位置を検出し、それを微分することによって、速度を算出し、さらに微分することによって加速度を計算することができる。実際のサーボモータ４００の動きに基づいて加速度を検出することができるので、上位制御装置２００から提供された位置指令に基づいて計算することに比べて、より正確な加速度を求めることができると考えられる。ただし、実際のサーボモータ４００の動きをフィードバックした値を用いているので、上位制御装置２００からの位置指令を利用する場合と比べて、加速度の計算が多少遅れてしまうことも考えられる。
なお、加速度計算部１０４は、請求の範囲の加速度計算部の好適な一例に相当する。また、これまで述べた加速度計算部１０４の加速度を算出する動作は、図６の工程Ｓ３：加速度計算工程に該当する。
【００４２】
次に、揺動指令計算部１０２は、取得した位置指令と、取得した回転速度と、に基づいて揺動指令を計算する。本実施形態においては、具体的には、揺動指令計算部１０２は、上位制御装置２００が出力する位置指令に基づき、次のような手順で揺動指令を計算する。これらの計算も、サーボ制御装置１００のＣＰＵが、揺動指令計算部１０２の機能を記述するプログラムを実行することによって実現している。また、このプログラムも、請求の範囲のコンピュータプログラムの好適な一例に相当する。
【００４３】
まず、揺動指令計算部１０２は、取得した位置指令と、取得した回転速度と、に基づいて揺動振幅を計算する。例えば、位置指令と主軸の回転速度とに基づき、主軸の１回転当たりの送り量を求め、その１回転当たりの送り量の例えば１．５倍を揺動振幅として設定してよい。この１．５とは、請求の範囲の第１の定数の好適な一例に相当する。
揺動振幅の計算を行う揺動指令計算部１０２は、請求の範囲の揺動振幅計算部の好適な一例に相当する。また、この揺動指令計算部１０２の揺動振幅の計算動作は、図６の工程Ｓ４：揺動指令計算工程の一部に該当する。
【００４４】
次に、揺動指令計算部１０２は、取得した回転速度に基づいて揺動周波数を計算する。例えば、回転周波数の１．５倍の値を揺動周波数として設定することが好適である。この１．５とは、請求の範囲の第２の定数の好適な一例に相当する。
揺動周波数の計算を行う揺動指令計算部１０２は、請求の範囲の揺動周波数計算部の好適な一例に相当する。また、揺動指令計算部１０２の揺動周波数の計算動作は、図６の工程Ｓ４：揺動指令計算工程の一部に該当する。
【００４５】
次に、揺動指令計算部１０２は、計算した揺動振幅と、計算した揺動周波数と、からなる揺動指令を計算する。この揺動指令は、上位制御装置２００から出力される位置指令とともにサーボモータに送られることによって、切削工具（またはワーク）の移動に際して、揺動動作が加えられる。
この揺動指令の計算を行う揺動指令計算部１０２は、請求の範囲の揺動指令計算部１０２の好適な一例に相当する。また、揺動指令計算部１０２の揺動指令の計算動作は、図６の工程Ｓ４：揺動指令計算工程の一部に該当する。
【００４６】
次に、オフセット値計算部１０６は、加速度計算部１０４が計算した加速度に基づき、揺動指令に加えるべきオフセット値を計算する。このような動作も、サーボ制御装置１００のＣＰＵが、オフセット値計算部１０６のこのような動作を記述するプログラムを実行することによって実現している。このプログラムは、サーボ制御装置１００内の所定の記憶装置に格納されているが、外部の記憶装置に格納されていてもよい。また、このプログラムも、請求の範囲のコンピュータプログラムの好適な一例に相当する。
【００４７】
＜動作開始期間Ｓ、動作終了期間Ｔ＞
オフセット値計算部１０６は、計算された加速度が正の値であった場合、サーボモータ４００は、動作開始期間Ｓにおける動作を実行していると判断する。そして、動作開始期間Ｓと判断した場合は、加工経路方向のオフセット値を算出する。
図３には、サーボモータ４００の送り量、すなわち位置と、時間との関係を示すグラフが示されている。ここで例として説明する加工動作においては、サーボモータ４００は、位置Ｐ２から移動を開始し、位置Ｐ１で停止し、加工動作を終了するものとする。この図３の例においては、移動開始してから加速度が正の値である期間が動作開始期間Ｓと判断する。つまり、サーボモータ４００が加速している期間を表す。逆に言えば、サーボモータ４００が加速している期間は、加工動作が開始してから初期の期間、すなわち動作開始期間Ｓと判断している。
【００４８】
本実施形態において特徴的なことは、オフセット値計算部１０６が、加速度に基づき、動作開始期間Ｓであると判断した場合は、加工経路方向のオフセット値を算出する（計算する）ことである。加工経路方向、すなわち移動していく方向のオフセット値を算出することによって、揺動の振幅を加工経路方向にオフセットさせることができ、切削工具が開始位置であるＰ２より常にＰ１側に移動するように制御することができる。この結果、切削工具が位置Ｐ２から、移動先であるＰ１と反対側に干渉体Ｑが位置している場合でも、切削工具が、揺動動作によって、干渉体Ｑ側に移動してしまうことを抑制することができる。図３にはこの揺動の様子が示されている。図３に示すように、工具の指令経路に対して所定の振幅、所定の周波数で揺動動作が重畳しているが、この振幅を位置Ｐ１側にオフセットさせることによって、切削工具がＰ２から見て、Ｐ１の反対側方向に移動しないように制御している。これによって、位置Ｐ２近傍（のＰ１とは反対側）に干渉体Ｑが位置する場合、この干渉体Ｑへの干渉を抑制することができる。
次に、オフセット値計算部１０６は、加速度がほぼ０である場合は、動作開始期間Ｓでも、動作終了期間Ｔでもないと判断し、オフセット値として０を算出（計算）する。
【００４９】
他方、オフセット値計算部１０６は、計算された加速度が負の値であった場合、サーボモータ４００は、動作終了期間Ｔであると判断する。そして、動作終了期間Ｔである場合は、加工経路方向の逆方向のオフセット値を算出する。
図３に示す例では、サーボモータ４００は、位置Ｐ２から移動を開始し、位置Ｐ１で停止し、加工動作を終了する。この図３の例においては、位置Ｐ２が近づき、加速度が負の値である期間が、動作終了期間Ｔである。つまり、サーボモータ４００が減速している期間を表す。逆に言えば、サーボモータ４００が減速している期間を、加工動作が終了する直前の期間、すなわち動作終了期間Ｔと判断している。
【００５０】
本実施形態において特徴的なことは、オフセット値計算部１０６が、加速度に基づき、動作終了期間Ｔであると判断した場合は、加工経路方向とは逆方向のオフセット値を算出する（計算する）ことである。加工経路方向と逆方向、すなわち終了点Ｐ１から、開始点Ｐ２側に移動していく方向のオフセット値を算出することによって、揺動の振幅を開始点Ｐ１側、すなわち加工経路方向と逆方向にオフセットさせることができ、切削工具が終了点Ｐ１より常に開始点Ｐ２側に移動するように制御することができる。この結果、位置Ｐ１から、開始点であるＰ２と反対側に干渉体Ｑが位置している場合でも、切削工具が、揺動動作によって、その干渉体Ｑ側に移動してしまうことを抑制することができる。図３にはこの揺動の様子が示されている。図３に示すように、工具の指令経路に対して所定の振幅、所定の周波数で揺動動作が重畳しているが、この振幅を位置Ｐ２側にオフセットさせることによって、切削工具がＰ１から見て、Ｐ２の反対側方向に移動しないように制御している。これによって、位置Ｐ１近傍（のＰ２とは反対側）に干渉体Ｑが位置する場合、この干渉体Ｑへの干渉を抑制することができる。
【００５１】
このようにして、切削工具が揺動動作によって、加工経路の外部にはみ出してしまうことを抑制しているので、加工経路の近傍に何らかの干渉体Ｑが位置する場合でも、その干渉体Ｑとの干渉を抑制することができる（図３参照）。
なお、オフセット値計算部１０６は、請求の範囲のオフセット値計算部の好適な一例に相当する。また、これまで述べたオフセット値計算部１０６のオフセット値を算出する（計算する）動作は、図６の工程Ｓ５：オフセット値計算工程に該当する。
【００５２】
揺動指令補正部１０８は、オフセット値計算部１０６が計算したオフセット値に基づき、揺動指令計算部１０２が計算した揺動指令を補正する。具体的には、図３で説明したように、揺動指令補正部１０８は、オフセット値計算部１０６が計算したオフセット値を、揺動指令中の振幅に加算するのである。揺動指令補正部１０８は、このようにして補正した揺動指令を、加算器１１０に供給する。
このような動作も、サーボ制御装置１００のＣＰＵが、揺動指令補正部１０８のこのような動作を記述するプログラムを実行することによって実現している。すなわち、揺動指令補正部１０３は、揺動指令を補正する動作を記述するプログラムと、このプログラムを実行するサーボ制御装置１００のＣＰＵと、から実現されている。
上記プログラムは、サーボ制御装置１００内の所定の記憶装置に格納されているが、外部の記憶装置に格納されていてもよい。また、このプログラムも、請求の範囲のコンピュータプログラムの好適な一例に相当する。
【００５３】
揺動指令補正部１０８は、このように、オフセット値計算部１０６が計算したオフセット値を利用するが、他の手法で取得したオフセット値を利用してもよい。例えば、上位制御装置２００が提供するオフセット値を利用して揺動指令を補正することも好適である。
本実施形態におけるオフセット値は、サーボモータ４００が動作開始期間Ｓに位置するか、動作終了期間Ｔに位置するか、それ以外の期間に位置するかに応じて決定される。この期間の判断は、オフセット値計算部１０６が加速度に基づき判断することが好適であるが、元々の位置指令を発した上位制御装置２００が本来判断することができるので、上位制御装置２００がその判断に基づきオフセット値を出力することも好ましい。
そこで、上位制御装置２００がオフセット値を出力する場合は、揺動指令補正部１０８が上位制御装置２００が出力するオフセット値を利用して、これを揺動指令（の振幅）に加算して、揺動指令の補正をすることもできる。サーボ制御装置１００は、上位制御装置２００が出力するオフセット値を、オフセット値取得部１２４を介して取得してよい。オフセット値取得部１２４は取得したオフセット値を、揺動指令補正部１０８に供給する。揺動指令補正部１０８は、このようにして上位制御装置２００から取得したオフセット値を利用して補正した揺動指令を、加算器１１０に供給する。
【００５４】
なお、揺動指令補正部１０８は、請求の範囲のオフセット部の好適な一例に相当する。
また、以上述べたような揺動指令補正部１０８の動作は、図６の工程Ｓ６：オフセット工程に該当する。
【００５５】
＜サーボモータ４００の速度と、加速度と、オフセットの関係＞
本実施形態においては、サーボモータの動作開始期間Ｓ、動作終了期間Ｔ、においてオフセット値を計算し、それ以外の期間では、特段オフセット値は計算していない。換言すれば、上記動作開始期間Ｓ、動作終了期間Ｔ以外の期間では、オフセット値を「０」としている。
このような、各期間と、速度と、加速度と、オフセット値との間系を示すグラフの例が図４に示されている。図４の（ａ）のグラフは、横軸に時間をとり、縦軸にサーボモータ４００の速度をとったグラフである。図４の（ｂ）のグラフは、横軸に時間をとり、縦軸にサーボモータ４００の加速度をとったグラフである。図４の（ｃ）のグラフは、横軸に時間をとり、縦軸にオフセット値をとったグラフである。
図４のグラフに示すように、サーボモータ４００は、動作開始期間Ｓにおいて、一定の加速度（図４の（ｂ）のグラフ参照）で加速していき、速度が増加していく（図４の（ａ）のグラフ参照）。その正の加速度が生じている期間を、動作開始期間Ｓと判断して、オフセットを計算している（図４の（ｃ）のグラフ参照）。動作開始期間Ｓにおけるこのオフセット値は、正の所定の値であり、加工方向に対して前進方向のオフセットである。したがって、特にこのオフセット値を、前進オフセットと称する（図４の（ｃ）参照））。
【００５６】
このように、動作開始期間Ｓにおいては、加工方向に対して前進方向にオフセットさせているので、揺動があっても、加工経路から切削工具がはみ出てしまう（図３のＰ２を越えてはみ出してしまう）ことを抑制することができる。その結果、加工経路の近傍に所定の干渉体Ｑが位置している場合でも、干渉体Ｑとの干渉を抑制することができる。
また、図４のグラフに示すように、サーボモータ４００は、動作終了期間Ｔにおいて、一定の負の加速度（図４の（ｂ）のグラフ参照）で減速していき、速度が減少していく（図４の（ａ）のグラフ参照）。その負の加速度が生じている期間を、動作終了期間Ｔと判断して、オフセットを計算している（図４の（ｃ）のグラフ参照）。動作終了期間Ｔにおけるこのオフセット値は、負の所定の値であり、加工方向に対して後退方向のオフセットである。したがって、特にこのオフセット値を、後退オフセットと称する（図４の（ｃ）参照））
【００５７】
このように、動作終了期間Ｔにおいては、加工方向に対して後退方向にオフセットさせているので、揺動があっても、加工経路から切削工具がはみ出てしまう（図３のＰ１を越えてはみ出してしまう）ことを抑制することができる。その結果、加工経路の近傍に所定の干渉体Ｑが位置している場合でも、干渉体Ｑとの干渉を抑制することができる。求めているオフセット値は、「動作開始期間Ｓ及び動作終了期間Ｔ」以外では、「０」としている（つまり、オフセットさせない）。
本実施形態においては、このように、揺動指令の振幅をオフセットさせることを特徴とするが、そのオフセットの処理は、例えば、動作開始期間Ｓだけ実行してもよい。また、逆に、動作終了期間Ｔだけ実行してもよい。また、図３、図４等で説明したように、動作開始期間Ｓ、動作終了期間Ｔの双方でオフセットを実行することも好適である。
【００５８】
＜干渉体Ｑと、ワーク１０との関係＞
加工対象であるワーク１０（２０）に対して、干渉体Ｑは指令経路（加工経路）の中には位置してはならないが、指令経路の近傍に位置してしまうことがある。干渉体Ｑはどのようなものでもよいが、例えば、ネジのネジ山部分を加工しようとする場合のそのネジ頭の部分等が、干渉体Ｑとなり得る。また、円筒形のワーク１０（２０）を支える治具部分が、干渉体Ｑとなる場合もある。
【００５９】
図５Ａ、図５Ｂには、干渉体Ｑとワーク１０（２０）との位置関係の一例を説明する説明図が示されている。
【００６０】
図５Ａには、ワーク１０（２０）の加工動作を開始した際の動作開始期間Ｓにおける、ワーク１０（２０）の加工状態の断面図が示されている。この図５Ａに示すＸ軸、Ｚ軸は、図１Ａと同様の座標であり、Ｚ軸方向に加工方向Ｂが取られている。図５Ａにおいては、ワーク断面の輪郭Ｅが示されており、ワーク１０（２０）に対して切削工具が、指令経路Ｆに沿って動く。実際には、切削工具には揺動指令が重畳して加えられているので、工具経路Ｈ（＝指令経路＋揺動指令）は、図５Ａに示すようにカーブを描いたものとなる。このような加工動作が行われている場合、ワーク１０（２０）の端部に治具等の干渉体Ｑが取り付けられているときは、揺動動作によって切削工具の工具経路Ｈが、指令経路Ｆから揺動指令の分だけずれることによって、干渉体Ｑとの間で干渉Ｉが生じる可能性がある（図５Ａ参照）。このような干渉Ｉを抑制するために、本実施形態では、揺動指令（の振幅）にオフセットを加えたものである。
【００６１】
同様に、図５Ｂには、ワーク１０（２０）の加工動作の終了する際の動作終了期間Ｔにおける、ワーク１０（２０）の加工状態の断面図が示されている。この図５Ｂに示すＸ軸、Ｚ軸も、図１Ａと同様の座標であり、Ｚ軸方向に加工方向Ｂが取られている。図５Ｂにおいては、ワーク断面の輪郭Ｅが示されており、ワーク１０（２０）に対して切削工具が、曲線の工具経路Ｈ（＝指令経路＋揺動指令）にしたがって動く。このような加工動作が行われている場合、ワーク１０（２０）の端部にワーク１０（２０）を把持するための把持チャック等の干渉体Ｑが取り付けられているときは、揺動動作によって、切削工具と干渉体Ｑとの間で干渉Ｉが生じる可能性がある（図５Ｂ参照）。このような干渉Ｉを抑制するために、本実施形態では、揺動指令（の振幅）にオフセットを加え、切削工具が干渉体Ｑに移動してしまうことを抑制したものである。
【００６２】
このようにして補正された揺動指令は、加算器１１０において、位置指令に加えられてから、位置・速度・電流制御部１１６に供給される。なお、加算器１１０は、上位制御装置２００から出力された位置指令と、補正された揺動指令と、位置フィードバック値と、を加算し、位置・速度・電流制御部１１６に供給する。
なお、図２において、加算器１１０は、補正した揺動指令側をマイナス「−」記号で表しているが、本実施形態において、揺動指令の極性が位置指令と反対方向だからであり、極性に応じて、「−」または「＋」にすればよい。また、位置フォードバック値は、サーボモータ４００の実際の位置のフィードバックであり、サーボモータ４００の位置をフィードバックすることによってフィードバック制御を行い、より正確な位置に制御しようとしたものである。
【００６３】
位置・速度・電流制御部１１６は、補正後の揺動指令が加算された位置指令に基づき、サーボモータ４００を駆動する駆動信号を求めて、外部のアンプ３００にこの駆動信号を供給（出力）する。
したがって、位置・速度・電流制御部１１６と加算器１１０とは、請求の範囲の駆動部の好適な一例に相当する。また、位置・速度・電流制御部１１６と加算器１１０とによる、駆動信号の出力は、図６のフローチャートの工程Ｓ７：駆動工程に該当する。
【００６４】
アンプ３００は、上述した駆動信号を増幅し、サーボモータ４００を駆動するのに十分な電力をサーボモータ４００に供給する。サーボモータ４００は、（増幅された）駆動信号で駆動される。なお、図２においては、アンプ３００やサーボモータ４００が、それぞれ１個ずつ示されているが、それぞれ複数個備えられていてよい。多軸制御の場合（複数の制御軸を備えている工作機械の場合）は、その軸数分だけアンプ３００及びサーボモータ４００が備えられていてよい。
【００６５】
サーボモータ４００の駆動軸には検出器５００が備えられており、サーボモータ４００の位置を検出することによって、実質的には切削工具やワークの位置を検出することができる。検出器５００は、ロータリーエンコーダや、リニアエンコーダ等を用いて構成することができる。この検出器５００は、位置フィードバック値を、位置取得部１２２に対して出力する。位置取得部１２２は、サーボモータ４００の位置（切削工具の位置またはワークの位置）を位置フィードバック値として取得するインターフェースである。位置取得部１２２が取得した位置フィードバック値は、加算器１１０に加えられる。これによって、いわゆるフィードバック制御が実行され、サーボモータ４００の位置と、位置指令による位置とをより正確に合わせることができる。
【００６６】
なお、図６のフローチャートにおいては、工程Ｓ７：駆動工程の後、上位制御装置２００から引き続き出力される位置指令の取得が実行され（工程Ｓ１：位置指令取得工程）、以下、工程Ｓ１からの処理が順次繰り返される。ただし、実際には、出力される位置指令に対して、図６のフローチャートに示される処理が連続して実行されるので、パイプライン的に、図６における各処理は並行して実行されてよい。
以上述べたようにして、本実施形態に係るサーボ制御装置１００は、複数の制御軸を有する工作機械のサーボモータに対して揺動動作を実行させる。
特に、本実施形態においては、加工動作の初期（動作開始期間Ｓ）と終期（動作終了期間Ｔ）とにおいて、揺動指令の振幅にオフセットを加えている。このような動作によって、指令経路（加工経路）の近傍に位置する干渉体Ｑと切削工具等との干渉を抑制することができる。
【００６７】
したがって、本実施形態においては、加工動作の初期（動作開始期間Ｓ）や終期（動作終了期間Ｔ）を効率的に求めることが必要となる。これに関して、本実施形態では、サーボモータ４００の加速度を検出し、これに基づいて動作開始期間Ｓか、動作終了期間Ｔか、を判断しているので、効率的、かつ正確に各期間の判断をすることができる。
また、位置指令を出力する上位制御装置２００は、本来、動作開始期間Ｓや動作終了期間Ｔを知ることができるので、上位制御装置２００がこのような期間の判断に基づき、オフセット値を出力するように構成してもよい。この場合、本実施形態に係るサーボ制御装置１００の揺動指令補正部１０８は、オフセット値計算部１０６が計算したオフセット値に代えて、上位制御装置２００が出力するオフセット値を使用して、揺動指令にそのオフセット値を加算して補正した揺動指令を得てもよい。このような動作を採用する場合は、図２において、加速度計算部１０４及びオフセット値計算部１０６を備えていないサーボ制御装置１００を構成して利用してもよい。
【００６８】
＜第１の定数、第２の定数の設定＞
第１の定数は、本実施形態では、１．５倍に設定したが、０．５倍から１０倍の範囲で設定することができる。ここで、揺動振幅は、主軸が１回転する間の（ワーク１０、または切削工具２４）の移動量（加工方向への移動量）の０．５倍以上の振幅が通常は必要である。
また、主軸１回転の速度は、例えば、上述した主軸の角度の変化から推定（角速度）することもでき、移動速度は、位置指令の変化から推定（速度指令）することもできる。この推定した角速度から主軸１回転に要する時間が判明する。したがって、１回転の時間×速度指令を算出すれば、主軸１回転当たりのワーク１０（または切削工具）の移動量を求めることができる。
【００６９】
このようにして求めた移動量から、第１の定数倍して、揺動振幅を求める（設定する）ことができる。また、位置指令と、揺動振幅が加工方向への移動量の０．５倍以上となるように第１の所定の数を設定してもよい。このような第１の定数の算出は、人間が行ってもよいし、サーボ制御装置１００や上位制御装置２００が実行してもよい。
例えば、第１の定数は、１倍超〜２倍未満程度の範囲で設定することが好ましく、１．５倍近傍がより好ましい範囲である。これらの数値範囲も、請求の範囲の第１の定数の好適な例に相当する。また、例えば、第２の定数も、本実施形態では、１．５倍に設定したが、０．５倍から１０倍の範囲で設定することができる。特に、１倍超〜２倍未満程度の範囲で設定することが好ましく、１．５倍近傍がより好ましい範囲である。これらの数値範囲も、請求の範囲の第２の定数の好適な例に相当する。
【００７０】
また、これら第１の定数や、第２の定数は、上位制御装置２００が、サーボ制御装置１００に対して指示するように構成してもよい。この場合、サーボ制御装置１００は、指示された第１の定数、第２の定数を、サーボ制御装置１００内の所定のメモリに格納しておくことができる。また、第１の定数や、第２の定数は、ユーザが上位制御装置２００を操作して設定してもよい。また、ユーザがサーボ制御装置１００に対して直接これらの定数を設定してもよい。
【００７１】
＜揺動指令の計算の制御＞
なお、揺動指令計算部１０２は、種々の目的で様々な揺動指令を計算してよいが、例えば、切削の際に発生した切屑を細断する等の目的のためには、切削工具が進行する加工方向に、切削工具とワークとが相対的に揺動するような揺動指令を計算することが好適である。
【００７２】
また、揺動指令計算部１０２は、外部からの指示によって、揺動指令の計算を開始、中断、または終了するように構成することも好適である。例えば、外部の上位制御装置２００からの指示によって、揺動指令の計算を開始、中断、終了するように構成してもよい。
【００７３】
上位制御装置２００が出力したこのような指示を入力するためのインターフェース部がサーボ制御装置１００に備えさせる必要があるが、他のインターフェース、例えば回転速度取得部１１８等と共用することも好適である。
【００７４】
また、揺動指令補正部１０８も、揺動指令計算部１０２と同様に、外部からの指示によって、揺動指令の補正を開始、中断、または終了するように構成することも好適である。例えば、外部の上位制御装置２００からの指示によって、補正動作の実行を開始、中断、終了するように構成してもよい。また、上位制御装置２００が出力したこのような指示を入力するためのインターフェース部は、オフセット値を入力するオフセット値取得部１２４を利用してもよいし、別途、他のインターフェースを用意してもよい。
【００７５】
以上、本発明の実施形態について詳細に説明したが、前述した実施形態は、本発明を実施するにあたっての具体例を示したに過ぎない。本発明の技術的範囲は、前記実施形態に限定されるものではない。本発明は、その趣旨を逸脱しない範囲において種々の変更が可能であり、それらも本発明の技術的範囲に含まれる。
【符号の説明】
【００７６】
１０、２０  ワーク
１２、２２  主軸
１４、２４  切削工具
１００  サーボ制御装置
１０２  揺動指令計算部
１０４  加速度計算部
１０６  オフセット値計算部
１０８  揺動指令補正部
１１６  位置・速度・電流制御部
１１８  回転速度取得部
１２０  位置指令取得部
１２２  位置取得部
１２４  オフセット値取得部
２００  上位制御装置
３００  アンプ
４００  サーボモータ
５００  検出器
Ａ  揺動
Ｂ  加工方向
Ｃ  空振り
Ｄ  切削
Ｅ  ワーク断面の輪郭
Ｆ  指令経路
Ｈ  工具経路（指令経路＋揺動指令）
Ｉ  干渉
Ｑ  干渉体
Ｓ  動作開始期間
Ｔ  動作終了期間
【図１Ａ】
2018041275.tif 000003
【図１Ｂ】
2018041275.tif 000004
【図２】
2018041275.tif 000005
【図３】
2018041275.tif 000006
【図４】
2018041275.tif 000007
【図５Ａ】
2018041275.tif 000008
【図５Ｂ】
2018041275.tif 000009
【図６】
2018041275.tif 000010