(57)【要約】【課題】補償トルク指令をトルク指令に入力する時刻を自動で決定できる振動抑制装置と振動抑制方法を提供する。【解決手段】数値制御装置は補償トルク指令の入力時刻Ｔｄを決定する為、Ｔｐ、Ｔｖ、Ｔｒ、Ｔａ、Ｔｆを算出する（Ｓ２〜Ｓ５）。Ｔｐは送り運動中における加速度指令とトルク指令の間の遅れである。Ｔｖは加速度指令最大の時刻である。Ｔｒは補償トルク指令をステップ入力とした場合に励起する振動に対し、補償トルク指令を矩形波状として励起する振動の遅れである。Ｔａは補償トルク指令に対し、補償トルク指令をトルク指令に入力した入力済みのトルク指令の遅れである。Ｔｆは補償トルク指令に適用するフィルタに起因する時間の遅れである。数値制御装置はＴｄ＝Ｔｖ−Ｔｐ＋Ｔｒ＋Ｔａ＋Ｔｆを用いて入力時刻Ｔｄを決定する（Ｓ６）。故に数値制御装置は、Ｔｄを自動で適切に求めることができる。【選択図】図１８
2019153085.tif 000002
【特許請求の範囲】
【請求項１】
モータにより駆動され並進又は回転運動をする機械装置に対して前記モータの移動指令に基づくトルク指令を出力するトルク指令出力部を有し、該トルク指令出力部が出力した前記トルク指令により前記機械装置に発生する振動を抑制する振動抑制装置において、
前記機械装置を駆動することで発生する振動と逆の位相の振動に対応する補償トルク指令を生成するトルク指令生成手段と、
前記トルク指令生成手段が生成した前記補償トルク指令を、前記トルク指令出力部が出力する前記トルク指令に入力する入力時刻を決定する入力時刻決定手段と、
前記トルク指令生成手段が生成した前記補償トルク指令を、前記入力時刻決定手段が決定した前記入力時刻に、前記トルク指令出力部が出力する前記トルク指令に入力する入力手段と
を備え、
前記入力時刻決定手段は、
前記機械装置の送り運動中における前記移動指令を二階微分した加速度指令と、前記トルク指令の間の遅れを位相差Ｔｐとし、
前記加速度指令が最大となる時刻を前記加速度指令における位相基準点Ｔｖとし、
前記補償トルク指令と前記トルク指令の間の遅れを位相差Ｔｋとし、前記入力時刻をＴｄとした場合に、以下の式、
Ｔｄ＝Ｔｖ−Ｔｐ＋Ｔｋ
を用いて前記入力時刻を決定すること
を特徴とする振動抑制装置。
【請求項２】
前記入力時刻決定手段は、
前記移動指令から前記トルク指令までの周波数応答特性を求め、前記機械装置に発生する振動の周波数とその周波数における位相遅れ角とに基づき、前記位相差Ｔｐを算出する第一位相差算出手段を備えたこと
を特徴とする請求項１に記載の振動抑制装置。
【請求項３】
前記入力時刻決定手段は、前記位相差Ｔｋを算出する第二位相差算出手段を備え、
前記第二位相差算出手段は、
前記補償トルク指令をステップ入力とした場合に励起する振動に対して、前記補償トルク指令を矩形波状として励起する振動の遅れを位相差Ｔｒとして算出する矩形波位相差算出手段と、
前記補償トルク指令に対して、前記入力手段が前記補償トルク指令を前記トルク指令に入力した入力済みトルク指令の遅れであって、前記機械装置の周波数特性に起因する位相差を位相差Ｔａとして算出する機械位相差算出手段と、
前記補償トルク指令に適用するフィルタに起因する時間の遅れである位相差Ｔｆを用いて算出するフィルタ位相差算出手段と
を備え、
以下の式、
Ｔｋ＝Ｔｒ＋Ｔａ＋Ｔｆ
を用いて前記位相差Ｔｋを算出すること
を特徴とする請求項１又は２に記載の振動抑制装置。
【請求項４】
前記送り運動中における前記加速度指令の波形は二等辺三角形の山型であり、
前記加速度指令が最大となる時刻とは、前記加速度指令を微分した加加速度の正負が逆転する時刻であること
を特徴とする請求項１から３の何れかに記載の振動抑制装置。
【請求項５】
前記送り運動中における前記加速度指令の波形は等脚台形であり、
前記加速度指令が最大となる時刻とは、前記加速度指令を微分した加加速度が０となる区間の１／２に対応する時刻であること
を特徴とする請求項１から３の何れかに記載の振動抑制装置。
【請求項６】
前記トルク指令生成手段は、
前記機械装置に対して前記トルク指令出力部が基準補償トルク指令Ｎｃｓを出力した時の前記モータのトルクの振動振幅Ａ１を取得する第一取得手段と、
前記機械装置の基準送り運動中における前記移動指令を二階微分した前記加速度指令の最大値Ａｓと、前記モータのトルクの振動振幅Ａ２を取得する第二取得手段と、
前記機械装置の送り運動中における前記移動指令を二階微分した前記加速度指令の最大値Ａｒｅｆを取得する第三取得手段と、
前記機械装置に対して前記トルク指令出力部が前記基準補償トルク指令Ｎｃｓを出力した時に励起する振動の減衰比ζを算出する減衰比算出手段と、
前記補償トルク指令の大きさをＮｃとした場合に、前記基準補償トルク指令Ｎｃｓ、前記第一取得手段が取得した前記振動振幅Ａ１、前記第二取得手段が取得した最大値Ａｓと振動振幅Ａ２、前記第三取得手段が取得した前記最大値Ａｒｅｆ、前記減衰比算出手段が算出した前記減衰比ζ、前記機械装置の固有振動数Ｆ、前記入力手段が前記補償トルク指令を前記トルク指令に入力してから加減速が終了する迄の時間ｔｄに基づく以下の式、
Ｎｃ＝Ａｒｅｆ×（Ａ２／Ａｓ）×（Ｎｃｓ／Ａ１）×（１／ｅ−２πζＦｔｄ）
を用いて前記補償トルク指令の大きさＮｃを決定する決定手段と
を備えたこと
を特徴とする請求項１から３の何れかに記載の振動抑制装置。
【請求項７】
モータにより駆動され並進又は回転運動をする機械装置に対して前記モータの移動指令に基づくトルク指令を出力するトルク指令出力部を有し、該トルク指令出力部が出力した前記トルク指令により前記機械装置に発生する振動を抑制する振動抑制装置の振動抑制方法において、
前記機械装置を駆動することで発生する振動と逆の位相の振動に対応する補償トルク指令を生成するトルク指令生成工程と、
前記トルク指令生成工程で生成した前記補償トルク指令を、前記トルク指令出力部が出力する前記トルク指令に入力する入力時刻を決定する入力時刻決定工程と、
前記トルク指令生成工程で生成した前記補償トルク指令を、前記入力時刻決定工程で決定した前記入力時刻に、前記トルク指令出力部が出力する前記トルク指令に入力する入力工程と
を備え、
前記入力時刻決定工程は、
前記機械装置の送り運動中における前記移動指令を二階微分した加速度指令と、前記トルク指令の間の遅れを位相差Ｔｐとし、
前記加速度指令が最大となる時刻を前記加速度指令における位相基準点Ｔｖとし、
前記補償トルク指令と前記トルク指令の間の遅れを位相差Ｔｋとし、前記入力時刻をＴｄとした場合に、以下の式、
Ｔｄ＝Ｔｖ−Ｔｐ＋Ｔｋ
を用いて前記入力時刻を決定すること
を特徴とする振動抑制方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、振動抑制装置と振動抑制方法に関する。
【背景技術】
【０００２】
振動抑制装置は、モータで駆動し並進又は回転運動をする機械装置に対してモータに移動指令に基づくトルク指令を出力し、機械装置に発生する振動を抑制する。特許文献１が開示する振動抑制装置は、機械装置を駆動することで発生する振動と逆の位相の振動に対応する補償トルク指令を生成し、機械装置に対して出力するトルク指令に加算する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１３８８２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
補償トルク指令をトルク指令に加算する時刻は移動距離と加減速条件等によって試行錯誤的に決定する必要があったので、実加工に適用するのが困難であった。
【０００５】
本発明の目的は、補償トルク指令をトルク指令に入力する時刻を自動で決定できる振動抑制装置と振動抑制方法を提供することである。
【課題を解決するための手段】
【０００６】
請求項１の振動抑制装置は、モータにより駆動され並進又は回転運動をする機械装置に対して前記モータの移動指令に基づくトルク指令を出力するトルク指令出力部を有し、該トルク指令出力部が出力した前記トルク指令により前記機械装置に発生する振動を抑制する振動抑制装置において、前記機械装置を駆動することで発生する振動と逆の位相の振動に対応する補償トルク指令を生成するトルク指令生成手段と、前記トルク指令生成手段が生成した前記補償トルク指令を、前記トルク指令出力部が出力する前記トルク指令に入力する入力時刻を決定する入力時刻決定手段と、前記トルク指令生成手段が生成した前記補償トルク指令を、前記入力時刻決定手段が決定した前記入力時刻に、前記トルク指令出力部が出力する前記トルク指令に入力する入力手段とを備え、前記入力時刻決定手段は、前記機械装置の送り運動中における前記移動指令を二階微分した加速度指令と、前記トルク指令の間の遅れを位相差Ｔｐとし、前記加速度指令が最大となる時刻を前記加速度指令における位相基準点Ｔｖとし、前記補償トルク指令と前記トルク指令の間の遅れを位相差Ｔｋとし、前記入力時刻をＴｄとした場合に、以下の式、Ｔｄ＝Ｔｖ−Ｔｐ＋Ｔｋを用いて前記入力時刻を決定することを特徴とする。機械装置の送り運動中に、加速度指令で励起する振動は−ｓｉｎ（ω（ｔ−（Ｔｖ−Ｔｐ）））である。補償トルク指令で励起する振動はｓｉｎ（ω（ｔ−（Ｔｄ−Ｔｋ）））である。本態様は、Ｔｖ−Ｔｐ＝Ｔｄ−ＴｋとなるＴｄを求める。故に本態様はＴｄ＝Ｔｖ−Ｔｐ＋Ｔｋを用いて補償トルク指令の入力時刻を適切に求めることができる。故に振動抑制装置は加減速による固有振動と逆の位相の振動の発生を抑制できる。
【０００７】
請求項２の振動抑制装置の前記入力時刻決定手段は、前記移動指令から前記トルク指令までの周波数応答特性を求め、前記機械装置に発生する振動の周波数とその周波数における位相遅れ角とに基づき、前記位相差Ｔｐを算出する第一位相差算出手段を備えるとよい。振動抑制装置は、移動指令からトルク指令までの周波数応答特性を求め、機械装置に発生する振動の周波数とその周波数における位相遅れ角とに基づき、位相差Ｔｐを算出できるので、入力時刻を適切に求めることができる。
【０００８】
請求項３の振動抑制装置の前記入力時刻決定手段は、前記位相差Ｔｋを算出する第二位相差算出手段を備え、前記第二位相差算出手段は、前記補償トルク指令をステップ入力とした場合に励起する振動に対して、前記補償トルク指令を矩形波状として励起する振動の遅れを位相差Ｔｒとして算出する矩形波位相差算出手段と、前記補償トルク指令に対して、前記入力手段が前記補償トルク指令を前記トルク指令に入力した入力済みトルク指令の遅れであって、前記機械装置の周波数特性に起因する位相差を位相差Ｔａとして算出する機械位相差算出手段と、前記補償トルク指令に適用するフィルタに起因する時間の遅れである位相差Ｔｆを用いて算出するフィルタ位相差取得手段とを備え、以下の式、Ｔｋ＝Ｔｒ＋Ｔａ＋Ｔｆを用いて前記位相差Ｔｋを算出するとよい。振動抑制装置は、矩形波状入力に起因する位相差Ｔｒ、機械装置の周波数特性に起因する位相差Ｔａ、フィルタに起因する位相差Ｔｆを算出する。振動抑制装置は、Ｔｋ＝Ｔｒ＋Ｔａ＋Ｔｆを用いて位相差Ｔｋを算出する。故に振動抑制装置は、ステップ入力、機械装置の周波数特性、フィルタに起因する遅れを考慮した位相差Ｔｋを算出できるので、より適切な入力時刻を決定できる。
【０００９】
請求項４の振動抑制装置において、前記送り運動中における前記加速度指令の波形は二等辺三角形の山型であり、前記加速度指令が最大となる時刻とは、前記加速度指令を微分した加加速度の正負が逆転する時刻であるとよい。送り移動中の加速度指令の波形は二等辺三角形の山型であるので、その頂点である最大となる時刻は、加速度指令を微分した加加速度（躍度）の正負が逆転する時刻と一致する。故に振動抑制装置は加加速度を求めることで、位相基準点を容易に算出できる。
【００１０】
請求項５の振動抑制装置において、前記送り運動中における前記加速度指令の波形は等脚台形であり、前記加速度指令が最大となる時刻とは、前記加速度指令を微分した加加速度が０となる区間の１／２に対応する時刻であるとよい。送り移動中の加速度指令の波形は等脚台形であるので、その上底に対応する、加速度指令を微分した加加速度（躍度）が０となる区間の１／２に対応する時刻に、加速度指令は最大値をとる。故に振動抑制装置は加加速度を求めることで、位相基準点を容易に算出できる。
【００１１】
請求項６の振動抑制装置の前記トルク指令生成手段は、前記機械装置に対して前記トルク指令出力部が基準補償トルク指令Ｎｃｓを出力した時の前記モータのトルクの振動振幅Ａ１を取得する第一取得手段と、前記機械装置の基準送り運動中における前記移動指令を二階微分した前記加速度指令の最大値Ａｓと、前記モータのトルクの振動振幅Ａ２を取得する第二取得手段と、前記機械装置の送り運動中における前記移動指令を二階微分した前記加速度指令の最大値Ａｒｅｆを取得する第三取得手段と、前記機械装置に対して前記トルク指令出力部が前記基準補償トルク指令Ｎｃｓを出力した時に励起する振動の減衰比ζを算出する減衰比算出手段と、前記補償トルク指令の大きさをＮｃとした場合に、前記基準補償トルク指令Ｎｃｓ、前記第一取得手段が取得した前記振動振幅Ａ１、前記第二取得手段が取得した最大値Ａｓと振動振幅Ａ２、前記第三取得手段が取得した前記最大値Ａｒｅｆ、前記減衰比算出手段が算出した前記減衰比ζ、前記機械装置の固有振動数Ｆ、前記入力手段が前記補償トルク指令を前記トルク指令に入力してから加減速が終了する迄の時間ｔｄに基づく以下の式、Ｎｃ＝Ａｒｅｆ×（Ａ２／Ａｓ）×（Ｎｃｓ／Ａ１）×（１／ｅ−２πζＦｔｄ）を用いて前記補償トルク指令の大きさＮｃを決定する決定手段とを備えるとよい。
【００１２】
請求項７の振動抑制方法は、モータにより駆動され並進又は回転運動をする機械装置に対して前記モータの移動指令に基づくトルク指令を出力するトルク指令出力部を有し、該トルク指令出力部が出力した前記トルク指令により前記機械装置に発生する振動を抑制する振動抑制装置の振動抑制方法において、前記機械装置を駆動することで発生する振動と逆の位相の振動に対応する補償トルク指令を生成するトルク指令生成工程と、前記トルク指令生成工程で生成した前記補償トルク指令を、前記トルク指令出力部が出力する前記トルク指令に入力する入力時刻を決定する入力時刻決定工程と、前記トルク指令生成工程で生成した前記補償トルク指令を、前記入力時刻決定工程で決定した前記入力時刻に、前記トルク指令出力部が出力する前記トルク指令に入力する入力工程とを備え、前記入力時刻決定工程は、前記機械装置の送り運動中における前記移動指令を二階微分した加速度指令と、前記トルク指令の間の遅れを位相差Ｔｐとし、前記加速度指令が最大となる時刻を前記加速度指令における位相基準点Ｔｖとし、前記補償トルク指令と前記トルク指令の間の遅れを位相差Ｔｋとし、前記入力時刻をＴｄとした場合に、以下の式、Ｔｄ＝Ｔｖ−Ｔｐ＋Ｔｋを用いて前記入力時刻を決定することを特徴とする。故に振動抑制装置は上記工程を行うことで、請求項１記載の効果を得ることができる。
【図面の簡単な説明】
【００１３】
【図１】工作機械１の斜視図。
【図２】数値制御装置３０と工作機械１の電気的構成を示すブロック図。
【図３】駆動回路５３Ａのサーボ制御系を示す図。
【図４】菱形状の移動経路を示す図。
【図５】加速度指令とトルク指令の夫々の時間変化を示す図表。
【図６】位相遅れ時間と位相角の関係を示す図表。
【図７】三角形状の加速度指令と躍度指令の夫々の時間変化を示す図表。
【図８】台形状の加速度指令と躍度指令の夫々の時間変化を示す図表。
【図９】加速度指令で励起する振動波形と位相差Ｔｐを示す図表。
【図１０】補償トルク指令で励起する振動波形と位相差Ｔｋを示す図表。
【図１１】工作機械の位置指令を入力、トルク出力を出力とした時の周波数特性を示した図表。
【図１２】補償トルク指令のステップ入力の重ね合わせによる振動の位相差Ｔｒを示す図表。
【図１３】補償トルク指令のステップ入力におけるｔ５,ｔ６の各位相を示す図表。
【図１４】工作機械の周波数特性を示す図表。
【図１５】フィルタ特性を示す図表。
【図１６】補償トルク指令に適用したフィルタによる位相差Ｔｆを示す図表。
【図１７】加速度指令、補償トルク指令、モータトルク振動の夫々の時間変化を示す図表。
【図１８】入力時刻決定処理の流れ図。
【図１９】位相差Ｔｐ、Ｔｒ、Ｔｆ、Ｔａ、位相基準点Ｔｖ、入力時刻Ｔｄを示す図表。
【図２０】基準送り運動中の運動方向反転の態様を示す図表。
【図２１】基準送り運動における基準加速度指令とモータトルクの夫々の時間変化を示す図表。
【図２２】基準補償トルク指令入力後におけるモータトルク振動の時間変化を示す図表。
【図２３】図２２のモータトルク振動の時間変化の初期部分を詳細に示した図表。
【図２４】加速度指令と補償トルク指令の夫々の時間変化を示した図表。
【図２５】補償パラメータ決定処理の流れ図。
【図２６】メイン処理の流れ図。
【図２７】補償トルク入力処理の流れ図。
【図２８】補償無しのシミュレーション結果を示す図表。
【図２９】補償有りのシミュレーション結果を示す図表。
【発明を実施するための形態】
【００１４】
本発明の実施形態を説明する。以下説明は、図中に矢印で示す左右、前後、上下を使用する。工作機械１の左右方向、前後方向、上下方向は夫々工作機械１のＸ軸方向、Ｙ軸方向、Ｚ軸方向である。図１に示す工作機械１は主軸９に装着した工具４を回転し、テーブル１３上面に保持した被削材３に切削加工を施す機械である。数値制御装置３０（図２参照）は工作機械１の動作を制御するものである。
【００１５】
図１を参照し、工作機械１の構造を説明する。工作機械１は、基台２、コラム５、主軸ヘッド７、主軸９、テーブル装置１０、工具交換装置２０、制御箱６、操作パネル１５（図２参照）等を備える。基台２は金属製の略直方体状の土台である。コラム５は基台２上部後方に立設する。主軸ヘッド７はコラム５前面に沿ってＺ軸方向に移動可能に設ける。主軸ヘッド７は内部に主軸９を回転可能に支持する。主軸９は主軸ヘッド７下部に装着穴（図示略）を有する。主軸９は該装着穴に工具４を装着し、主軸モータ５２（図２参照）の駆動で回転する。主軸モータ５２は主軸ヘッド７に設ける。主軸ヘッド７はコラム５前面に設けたＺ軸移動機構（図示略）でＺ軸方向に移動する。数値制御装置３０はＺ軸モータ５１の駆動を制御することで、主軸ヘッド７をＺ軸方向に移動制御する。
【００１６】
テーブル装置１０は、Ｙ軸移動機構（図示略）、Ｙ軸テーブル１２、Ｘ軸移動機構（図示略）、テーブル１３等を備える。Ｙ軸移動機構は基台２上面前側に設け、一対のＹ軸レール、Ｙ軸ボール螺子、Ｙ軸モータ５４（図２参照）等を備える。一対のＹ軸レールとＹ軸ボール螺子はＹ軸方向に延びる。一対のＹ軸レールは上面にＹ軸テーブル１２をＹ軸方向に案内する。Ｙ軸テーブル１２は略直方体状に形成し、底部外面にナット（図示略）を備える。該ナットはＹ軸ボール螺子に螺合する。Ｙ軸モータ５４がＹ軸ボール螺子を回転すると、Ｙ軸テーブル１２はナットと共に一対のＹ軸レールに沿って移動する。故にＹ軸移動機構はＹ軸テーブル１２をＹ軸方向に移動可能に支持する。
【００１７】
Ｘ軸移動機構はＹ軸テーブル１２上面に設け、一対のＸ軸レール（図示略）、Ｘ軸ボール螺子（図示略）、Ｘ軸モータ５３（図２参照）等を備える。Ｘ軸レールとＸ軸ボール螺子はＸ軸方向に延びる。テーブル１３は平面視矩形板状に形成し、Ｙ軸テーブル１２上面に設ける。テーブル１３は底部にナット（図示略）を備える。該ナットはＸ軸ボール螺子に螺合する。Ｘ軸モータ５３がＸ軸ボール螺子を回転すると、テーブル１３はナットと共に一対のＸ軸レールに沿って移動する。故にＸ軸移動機構はテーブル１３をＸ軸方向に移動可能に支持する。故にテーブル１３は、Ｙ軸移動機構、Ｙ軸テーブル１２、Ｘ軸移動機構により、基台２上をＸ軸方向とＹ軸方向に移動可能である。
【００１８】
工具交換装置２０は主軸ヘッド７の前側に設け、円盤型の工具マガジン２１を備える。工具マガジン２１は外周に複数の工具（図示略）を放射状に保持し、工具交換指令が指示する工具を工具交換位置に位置決めする。工具交換指令はＮＣプログラムで指令する。工具交換位置は工具マガジン２１の最下部位置である。工具交換装置２０は主軸９に装着する工具４と工具マガジン２１に取り付けられた工具とを主軸ヘッド７の上昇、工具マガジン２１の回転、主軸ヘッド７の下降の一連の動作により入れ替え交換する。
【００１９】
制御箱６は数値制御装置３０(図２参照）を格納する。数値制御装置３０は、工作機械１に設けたＺ軸モータ５１、主軸モータ５２、Ｘ軸モータ５３、Ｙ軸モータ５４(図２参照）を夫々制御し、テーブル１３上に保持した被削材３と主軸９に装着した工具４を相対移動することで各種加工を被削材３に施す。各種加工とは、例えばドリル、タップ等を用いた穴空け加工、エンドミル、フライス等を用いた側面加工等である。
【００２０】
操作パネル１５は、例えば工作機械１を覆うカバー（図示略）の外壁に設ける。操作パネル１５は入力部１６と表示部１７(図２参照）を備える。入力部１６は各種情報、操作指示等の入力を受け付け、後述する数値制御装置３０に出力する。表示部１７は後述する数値制御装置３０からの指令に基づき、各種画面を表示する。
【００２１】
図２を参照し、数値制御装置３０と工作機械１の電気的構成を説明する。数値制御装置３０と工作機械１は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、記憶装置３４、入出力部３５、駆動回路５１Ａ〜５５Ａ等を備える。ＣＰＵ３１は数値制御装置３０を統括制御する。ＲＯＭ３２は、メインプログラム、入力時刻決定プログラム、補償パラメータ決定プログラムを含む各種プログラム等を記憶する。メインプログラムは、メイン処理（図２６参照）を実行するものである。メイン処理は、ＮＣプログラムを一行ずつ読み込んで各種動作を実行する。ＮＣプログラムは各種制御指令を含む複数行で構成し、工作機械１の軸移動、工具交換等を含む各種動作を行単位で制御するものである。入力時刻決定プログラムは、後述する入力時刻決定処理（図１８参照）を実行するものであり、補償トルク指令のトルク指令への入力時刻を決定するものである。補償パラメータ決定プログラムは、後述する補償パラメータ決定処理（図２５参照）を実行するものであり、後述する補償パラメータを決定するものである。ＲＡＭ３３は各種情報を一時的に記憶する。記憶装置３４は不揮発性であり、ＮＣプログラム、各種情報を記憶する。ＣＰＵ３１は作業者が操作パネル１５の入力部１６で入力したＮＣプログラムに加え、外部入力で読み込んだＮＣプログラム等を記憶装置３４に記憶できる。
【００２２】
駆動回路５１ＡはＺ軸モータ５１とエンコーダ５１Ｂに接続する。駆動回路５２Ａは主軸モータ５２とエンコーダ５２Ｂに接続する。駆動回路５３ＡはＸ軸モータ５３とエンコーダ５３Ｂに接続する。駆動回路５４ＡはＹ軸モータ５４とエンコーダ５４Ｂに接続する。駆動回路５５Ａは工具マガジン２１を駆動するマガジンモータ５５とエンコーダ５５Ｂに接続する。Ｚ軸モータ５１、主軸モータ５２、Ｘ軸モータ５３、Ｙ軸モータ５４、マガジンモータ５５は何れもサーボモータである（以下総称する場合は単にモータと呼ぶ）。駆動回路５１Ａ〜５５ＡはＣＰＵ３１から指令を受け、対応する各モータ５１〜５５に駆動電流を夫々出力する。駆動回路５１Ａ〜５５Ａはエンコーダ５１Ｂ〜５５Ｂからフィードバック信号を受け、位置と速度のフィードバック制御を行う。入出力部３５は操作パネル１５の入力部１６と表示部１７に夫々接続する。
【００２３】
図３を参照し、駆動回路５３Ａのサーボ制御系を説明する。駆動回路５１Ａ〜５５Ａのサーボ制御系は同一の構成であるので、駆動回路５３Ａのサーボ制御系を一例として説明する。Ｘ軸モータ５３のエンコーダ５３Ｂは、Ｘ軸モータ５３の現在の位置情報を位置フィードバック信号として、加算器６２に出力する。数値制御装置３０はＮＣプログラムの制御指令に基づき位置指令を生成し、駆動回路５３Ａに出力する。駆動回路５３Ａは位置指令に従い、Ｘ軸モータ５３が動作するようにＸ軸モータ５３に出力する駆動電流を制御する。
【００２４】
駆動回路５３Ａの加算器６２は、位置指令と実際の位置の信号である位置フィードバック信号の位置偏差を算出し、該位置偏差に位置比例ゲインを乗ずることで速度指令を算出する。加算器６３は、算出した速度指令と実際の速度、即ち位置フィードバック信号を微分器６４で微分して得た速度フィードバック信号との速度偏差を算出する。加算器６７は、加算器６３が算出した速度偏差に速度比例ゲインを乗ずることで得た電流指令（比例）と、上記速度偏差を積分器６５で積分してその積分結果に速度積分ゲインを乗ずることで得た電流指令（積分）を加算し、トルク指令を生成する。電流制御部６８は、加算器６７が生成したトルク指令に対し後述する補償トルク指令を加算して得られる電流指令に基づき、Ｘ軸モータ５３に流れる電流の通電制御を行う。
【００２５】
補償トルク指令を説明する。補償トルク指令は、テーブル装置１０を駆動し、テーブル１３に発生する振動に対して１８０°位相が異なる振動を発生する為のトルク指令（電流）であり、電流信号である。補償トルク指令は、テーブル１３に発生する振動を打ち消すことができる。数値制御装置３０のＣＰＵ３１は、Ｘ軸モータ５３の加速度指令の出力開始をトリガとし、後述する入力時刻Ｔｄに、後述する大きさＮｃの補償トルク指令をＸ軸モータ５３に出力するトルク指令に入力する。加速度指令は、位置指令を二階微分して得られる。加速度指令は加速又は減速指令を含む概念である。加速又は減速指令は、例えばテーブル１３の移動開始時、移動停止時、又は移動方向反転時等に生成する。加速度指令の出力開始とは、加速度指令が０から０以外に変化した時点を指す。
【００２６】
図４，図５を参照し、加減速で発生する残留振動を説明する。補償トルク指令生成の為に必要な情報は、発生する残留振動の振幅と、発生する残留振動の位相である。残留振動の振幅は、補償トルクの大きさＮｃの調整に必要である。残留振動の位相は、補償トルク指令の入力時刻Ｔｄの調整に必要である。数値制御装置３０は、加減速で発生する残留振動の位相を予測できれば、そこから適切な入力時刻Ｔｄを求め、該入力時刻Ｔｄに補償トルク指令を入力することで、加減速により発生する残留振動と逆位相の振動を発生できる。
【００２７】
例えば、図４に示す菱形状の移動経路に沿ってテーブル１３が移動する場合、テーブル１３の加速度指令は菱形の各頂点付近で出力される。図５は、図４の移動経路のＸ軸方向反転部分における加速度指令の時間変化を示す。実線は加速度指令を示し、点線はトルク指令を示す。加速度指令は、加減速開始点ｔ１で出力を開始する。加速度指令は時間に比例して増大し、ｔ２で加速度最大点に達する。その後、時間に比例して減少し、加減速終了点ｔ３で出力を終了する。トルク指令における点線の四角で囲んだ部分ｐ１は、残留振動が発生している部分である。残留振動は、主に機械の固有振動周期Ｔｎに等しい周期の振動である。よってこれ以降、残留振動とは機械の固有振動周期Ｔｎの振動のことを指すものとする。残留振動の発生を予測して補償トルクを印加するには、加速度指令の変化と残留振動の位相との関係を明らかにする必要がある。以下、説明する。
【００２８】
図６を参照し、位相差と位相角の関係の定義について説明する。位相差Ｔについて、位相が遅れる方向が負であり、進む方向が正である。位相が遅れる方向が負とは、時刻増加であり、時間軸の右側に移動することを意味する。位相が進む方向が正とは、時刻減少であり、時間軸の左側に進むことを意味する。一方、位相角φ°について、位相が遅れる方向が負であり、進む方向が正である。位相が遅れる方向が負とは、角度減少であり、時計回りを意味する。位相が進む方向が正とは、角度増加であり、反時計回りを意味する。ここで、振動の周期をＴｎとしたとき、位相遅れ時間Ｔと位相角φ°の換算式は、以下の数１の通りである。
［数１］
φ＝３６０（Ｔ／Ｔｎ）
【００２９】
図７を参照し、加減速による残留振動の位相について説明する。図７（ａ）は、加速度指令の時間変化を示す。図７（ｂ）は、躍度指令の時間変化である。躍度は、加速度の微分であり、加加速度とも呼ぶ。加減速による振動は、この躍度指令がステップ上に変化するタイミングで発生するものと考える。ｔ１に加速度指令の出力が開始してからｔ２に加速度最大点に達するまでの時間をＴｊ、Ｔｊに対応する位相角をφｊ°とする。図７（ａ）に示すように、加速度指令は、加減速開始点ｔ１で出力を開始する。加速度指令は時間に比例して増大し、ｔ２で加速度最大点に達する。その後、時間に比例して減少し、加減速終了点ｔ３で出力を終了する。加速度指令の波形は、二等辺三角形状である。同様にｔ２〜ｔ３までの時間も、Ｔｊである。
【００３０】
躍度指令がステップ上に変化する加減速開始点ｔ１、加速度最大点ｔ２、加減速終了点ｔ３を加振点とする。各加振点の振動を、以下の通りとする。
・ｔ１・・・Ａｓｉｎ（ωｔ＋φｊ）
・ｔ２・・・−２Ａｓｉｎωｔ
・ｔ３・・・Ａｓｉｎ（ωｔ−φｊ）
減衰が無いと仮定すると、残留振動Ｘは、各加振点の振動の和として、以下の数２として表すことができる。
［数２］
Ｘ＝Ａｓｉｎ（ωｔ＋φｊ）−２Ａｓｉｎωｔ＋Ａｓｉｎ（ωｔ−φｊ）
＝２Ａ（１−ｃｏｓφｊ）ｓｉｎ（ωｔ±π）
【００３１】
上記数２より、残留振動の位相は、加速度が最大となる時点で発生する振動の位相に等しいことが分かる。故に本実施形態は、加速度指令が二等辺三角形状の場合、加速度最大点ｔ２を残留振動の位相基準点に設定できる。図７（ｂ）に示すように、位相基準点は、躍度指令が正から負に反転する時刻である。本実施形態は、位相基準点で補償トルク指令を入力することで、残留振動の逆位相の振動を励起できる。
【００３２】
図８を参照し、加速度指令が台形波の場合の残留振動の位相について説明する。図８（ａ）は、加速度指令の時間変化を示す。図８（ｂ）は、躍度指令の時間変化である。図８（ａ）に示すように、加速度指令は、加減速開始点ｔ１で出力を開始する。加速度指令は時間に比例して増大し、ｔ２−１で加速度最大点に達し、ｔ２−２まで一定である。ｔ２−２から時間に比例して減少し、加減速終了点ｔ３で出力を終了する。加速度指令の波形は、等脚台形状である。ｔ１〜ｔ３までの時間をＴｍ、Ｔｍの位相角をφｍ°とする。加速度指令が増大するｔ１〜ｔ２−１までの時間、加速度指令が減少するｔ２−２〜ｔ３までの時間をそれぞれＴｊ、Ｔｊの位相角をφｊ°とする。
【００３３】
躍度指令がステップ上に変化する加減速開始点ｔ１、第一加速度最大点ｔ２−１、第二加速度最大点ｔ２−２、加減速終了点ｔ３を加振点とする。各加振点の振動の位相及び振幅を、以下とする。
・加減速開始点ｔ１・・・Ａｓｉｎ（ωｔ＋１／２φｍ）
・第一加速度最大点ｔ２−１・・・−Ａｓｉｎ（ωｔ＋１／２φｍ−φｊ）
・第二加速度最大点ｔ２−２・・・−Ａｓｉｎ（ωｔ−１／２φｍ−φｊ）
・加減速終了点ｔ３・・・Ａｓｉｎ（ωｔ−１／２φｍ）
残留振動Ａは、各加振点での振動の和として、以下の数３として表すことができる。
［数３］
Ｘ＝２Ａｓｉｎωｔｃｏｓ（１／２φｍ）−２Ａｓｉｎωｔｃｏｓ（１／２φｍ−φｊ）
＝２Ａ（ｃｏｓ（１／２φｍ）−ｃｏｓ（１／２φｍ−φｊ））ｓｉｎωｔ
よって、加速度指令の波形が等脚台形状の場合も加速度指令の波形が二等辺三角形形状の場合と同様に、残留振動の位相は加減速時間の中間時点であることが分かる。故に本実施形態は、加速度指令が等脚台形状の波形の場合、第一加速度最大点ｔ２−１と第二加速度最大点ｔ２−２の中間時点を位相基準点に設定できる。
【００３４】
本実施形態は、補償トルク指令のより適切な入力時刻Ｔｄを決定する為、前記サーボ制御系の持つ種々の遅れについても考慮することが好ましい。図９は、加速度指令の時間変化と、その加速度指令によって励起する振動の波形を示す図表である。加速度指令が最大となる時刻は位相基準点Ｔｖである。位相基準点Ｔｖに対して、加速度指令によって励起する振動の遅れを位相差Ｔｐとする。この場合、加速度指令によって励起する振動は、−ｓｉｎ（ω（ｔ−（Ｔｖ−Ｔｐ）））である。一方、図１０は、補償トルク指令の時間変化と、その補償トルク指令によって励起する振動の波形を示す図表である。補償トルク指令の入力時刻はＴｄである。入力時刻Ｔｄに対して、補償トルク指令によって励起する振動の遅れを位相差Ｔｋとする。この場合、補償トルク指令によって励起する振動は、ｓｉｎ（ω（ｔ−（Ｔｄ−Ｔｋ）））である。ここで、入力時刻Ｔｄは、Ｔｖ−Ｔｐ＝Ｔｄ−Ｔｋとなるように決定すればよい。故に数値制御装置３０は、入力時刻Ｔｄを、以下の数４により導出できる。
［数４］
Ｔｄ＝Ｔｖ−Ｔｐ＋Ｔｋ
【００３５】
加速度指令とトルク出力間の位相差Ｔｐについて説明する。図３に示すように、加速度指令は位置指令の二階微分である。トルク出力は、電流制御部６８からＸ軸モータ５３に出力する電流指令である。加速度指令とトルク出力間には機械系及び制御系の特性により位相差Ｔｐが生じる。
【００３６】
図１１は、工作機械１の位置指令を入力、トルク出力を出力としたときの周波数特性を示した図表である。例えば、機械の固有振動数Ｆが５２．６Ｈｚであった場合、位置指令出力からトルク出力までの位相差は−９５．８８°である。加速度指令から位置指令までの位相差は−１８０°であるから、この場合において、加速度指令の固有振動成分とトルク出力間の位相差Ｔｐは、以下の数５により導出される。
［数５］
Ｔｐ＝（１／５２．６）×（−１８０−９５．８８）／３６０
＝−０．０１４６ｓ
故に加速度指令の入力からトルク出力までの位相は、１４．６ｍｓ遅れていることが分かる。故に、数値制御装置３０は、補償トルク指令の入力時刻の決定について、位相差Ｔｐを考慮するのが好ましい。
【００３７】
補償トルク指令によって励起する振動の遅れを位相差Ｔｋは、以下（１）〜（４）の方法によって求める。
（１）補償トルク指令にステップ入力を与える場合と矩形波状入力を与える場合に励起される振動の位相差
（２）補償トルク指令とトルク出力間の位相差
（３）補償トルク指令に適用するフィルタによる位相差
（４）補償トルク指令の正負と励起する振動の位相との関係
以下、順に説明する。
【００３８】
（１）補償トルク指令にステップ入力を与える場合と矩形波状入力を与える場合に励起される振動の位相差について説明する。図１２は、補償トルク指令としてステップ入力を与える場合の振動と、矩形波状入力を与える場合の振動とを比較した図である。矩形波状入力による振動は、ステップ入力による振動に対してＴｒ秒だけ位相が進んでいる。 
【００３９】
位相差Ｔｒについて検討する。図１３は、補償トルク指令の矩形波状入力の波形を示す。補償トルク指令は、ｔ５における正のステップ入力とｔ６における負のステップ入力の重ね合わせとして表現できる。ｔ５〜ｔ６の間隔は、補償持続時間Ｔｌである。この場合、ｔ５，ｔ６における振動を、以下の通りとする。
・ｔ５・・・Ａｌｓｉｎωｔ
・ｔ６・・・−Ａｌｓｉｎ（ωｔ−φｌ）
ここで、位相角φｌ°は、補償持続時間Ｔｌと固有振動周期Ｔｎより、以下の数６として表すことができる。
［数６］
φｌ＝３６０（Ｔｌ／Ｔｎ）
【００４０】
減衰が無いと仮定した場合のステップ入力の重ね合わせにより励起する振動をＡとする。振動Ａは、各加振点での振動の和として、以下の数７として表すことができる。
【数７】
2019153085.tif 000003
ここで位相角φｒ°は、振動Ａｌに対する振動Ａの位相の遅れを表す。位相角φｒ°は、以下の数８として表すことができる。
［数８］
φｒ＝ｔａｎ−１（ｓｉｎφｌ／（１−ｃｏｓφｌ）
ステップ入力の重ね合わせで励起する振動の位相差Ｔｒは、以下の数９により導出できる。
［数９］
Ｔｒ＝φｒ／３６０×Ｔｎ
【００４１】
例えば、Ｔｌ＝０．００２５ｓ、Ｔｎ＝０．０１９ｓの場合、上記数７と数８により、位相差φｒは、６６．３２°である。故に、補償トルク指令入力から固有振動発生までの位相差Ｔｒは、上記数６に各値を代入することにより、以下の数１０のように導出できる。
［数１０］
Ｔｒ＝６６．３２／３６０×１９
＝０．００３５ｓ
故に矩形波状の補償トルク入力から固有振動発生までの位相は、補償トルクをステップ入力で与えた場合に対して３．５ｍｓ進んでいることが分かる。故に、数値制御装置３０は、補償トルク指令の入力時刻の決定について、位相差Ｔｒを考慮するのが好ましい。
【００４２】
（２）補償トルク指令とトルク出力間の位相差Ｔａについて説明する。図３に示すように、トルク出力は、電流制御部６８からＸ軸モータ５３に出力する電流指令である。補償トルク指令の入力とトルク出力間には、機械系及び制御系の特性により位相差Ｔａが生じる。
【００４３】
図１４は、工作機械１の補償トルク指令を入力、トルク出力を出力としたときの周波数特性を示した図表である。例えば、固有振動数Ｆが５２．６Ｈｚであった場合、補償トルク指令とトルク出力間の位相角φａ°は−３０．４２°である。この場合、位相差Ｔａは、以下の数１１により導出する。
［数１１］
Ｔａ＝（１／５２．６）×（−３０．４２）／３６０°
＝−０．０１６ｓ
故に、補償トルク指令を入力してからトルクが出力するまで、１．６ｍｓ位相が遅れていることが分かる。故に、数値制御装置３０は、補償トルク指令の入力時刻の決定について、位相差Ｔａを考慮するのが好ましい。
【００４４】
（３）補償トルク指令に適用するフィルタによる位相差Ｔｆについて説明する。本実施形態は、補償トルク指令によって機械の残留振動と同一の周波数で１８０°位相が異なる振動を発生させることを目的としており、補償トルク指令に含まれる機械の固有振動と異なる周波数の成分は機械を不必要に振動させる可能性があるので、除去する為にフィルタを適用する。フィルタは種々のフィルタを用いることができるが、例えばローパスフィルタ、バンドパスフィルタ、ハイパスフィルタ、ノッチフィルタもしくはその組み合わせを適用できる。図１５は、本実施形態において用いたフィルタの周波数特性を示したグラフである。フィルタは２次のローパスフィルタであり、Ｆｃ＝５２．６Ｈｚ、Ｑ値＝０．５である。機械装置の固有振動数Ｆが５２．６Ｈｚである場合、図１５より位相角φｆは−９０°である。この場合、位相差Ｔｆは、以下の数１２により導出する。
［数１２］
Ｔｆ＝（１／５２．６）×（−９０）／３６０＝−０．００４７５ｓ
故に、フィルタを適用した補償トルク指令の入力により励起した振動は、フィルタを適用しなかった補償トルク指令の入力により励起した振動より、４．７５ｍｓ遅れていることが分かる（図１６参照）。故に、数値制御装置３０は、補償トルク指令の入力時刻の決定について、位相差Ｔｆを考慮するのが好ましい。
【００４５】
（４）補償トルク指令の正負と励起する振動の位相との関係について説明する。図１７において、実線は加速度指令の時間変化を示し、破線は加減速が励起するモータトルク振動の波形を示す。点線は補償トルク指令の波形であり、一点鎖線は、補償トルクが励起するモータのトルク振動の波形を示す。Ｔｄは、補償トルク指令の入力時刻を示し、上記Ｔｐ、Ｔｒ、Ｔａ、Ｔｆを考慮して決定した値とする。Ｎｃ（Ｎｍ）は、補償トルク指令の大きさを示す。図示しているのはＮｃが正の場合（Ｎｃ＞０）であり、補償トルクが励起する振動は加減速が励起する振動と逆位相である。ここで、Ｎｃが負の場合（Ｎｃ＜０）、補償トルクが励起する振動は加減速が励起する振動と同位相となる。本実施形態は、加速度指令と同一の正負に対し、補償トルク指令を生成する。それ故、本実施形態は、残留振動と逆位相の振動を励起できる。
【００４６】
図１８，１９を参照し、補償トルク指令の入力時刻決定処理を説明する。作業者が操作パネル１５を用いて、補償トルク指令の入力時刻決定の操作を行うと、ＣＰＵ３１は、ＲＯＭ３２から入力時刻決定プログラムを読出し、本処理を実行する。ＣＰＵ３１は工作機械１の固有振動数Ｆを測定する（Ｓ１）。固有振動数Ｆは、例えば送り運動中において、モータトルクに発生した残留振動の波形を自動的に測定し、ＦＦＴ解析して求めてもよい（図５参照）。また、作業者が操作パネル１５で入力した固有振動数を取得してもよく、記憶装置３４に予め記憶した固有振動数を読み出して取得してもよい。
【００４７】
ＣＰＵ３１は送り運動を実行し、送り運動中の加速度指令とトルク指令の位相差Ｔｐを算出し、ＲＡＭ３３に記憶する（Ｓ２）。図１９に示す例では、Ｔｐ＝４．４ｍｓである。ＣＰＵ３１は、加速度指令を微分した躍度指令の正負の反転を検出し、加速度指令上の位相基準点Ｔｖを算出し、ＲＡＭ３３に記憶する（Ｓ３）。
【００４８】
ＣＰＵ３１は、上記（１）〜（４）の各方法で、ステップ入力の重ね合わせによる位相差Ｔｒ、トルク入力指令とトルク出力間の位相差Ｔａ、フィルタ適用による位相差Ｔｆを算出し（図１７参照）、ＲＡＭ３３に記憶する（Ｓ５）。ＣＰＵ３１は、ＲＡＭ３３に記憶した位相基準点Ｔｖ、位相差Ｔｒ，Ｔａ，Ｔｆを読出し、補償トルク指令の入力時刻Ｔｄを、以下の数１３で算出する（Ｓ６）。
［数１３］
Ｔｄ＝Ｔｖ-Ｔｐ＋Ｔｒ＋Ｔａ＋Ｔｆ
ＣＰＵ３１は、上記数１５で算出したＴｄを記憶装置３４に記憶し（Ｓ７）、本処理を終了する。故に、数値制御装置３０は、各位相差を考慮した適切な時刻で補償トルク指令を入力できるので、残留振動の位相に合わせて逆位相の振動を励起できる。
【００４９】
補償トルク指令の大きさＮｃの決定方法を説明する。補償トルク指令の大きさＮｃを求める為に必要なパラメータは、以下の（５）〜（８）である。
（５）基準送り運動中のモータトルク振動振幅Ａ１と加速度指令最大値Ａｓ
（６）基準補償トルク指令の大きさＮｃｓと、基準補償トルク指令入力時のモータトルク振幅Ａ２と、その減衰比ζ
（７）振動減衰時間ｔ
（８）機械の固有振動数Ｆ
以下、順に説明する。
【００５０】
（５）基準送り運動中のモータトルク振動振幅Ａ１（Ｎｍ）と加速度指令最大値Ａｓ（ｍ／ｓ２）について説明する。基準送り運動とは、Ｘ軸とＹ軸の二軸が一定速度で同時に移動、反転する運動である。図２０は、基準送り運動経路を示す図表である。本実施形態の基準送り運動は、座標（Ｘ，Ｙ）が（０，１００ｍｍ）から（−１００ｍｍ，０）に移動し、反転して（０，１００ｍｍ）に戻る運動であり、Ｆ５０００ｍｍ／ｍｉｎで、Ｇ０１指令で実行する。図２１は、基準送り運動中の運動方向反転時刻における基準加速度指令の時間変化と、モータトルクの時間変化を示した図表である。図２１に示すように、基準加速度指令のピークに遅れて、モータトルクのピークが発生し、その後減少しつつ、時間経過に伴って波状に増減を繰り返し、徐々に減衰している。時間経過に伴って波状に増減を繰り返す部分は、残留振動が発生している部分である。本実施形態は、基準加速度指令の最大値をＡｓ、モータトルクの振動振幅の最大値をＡ１とする。
【００５１】
（６）基準補償トルク指令の大きさＮｃｓ（Ｎｍ）と、基準補償トルク指令入力時のモータトルク振幅Ａ２（Ｎｍ）と、その減衰比ζについて説明する。図２２は、基準補償トルク指令入力後におけるモータトルク振動の時間変化を示す図表である。図２３は、図２２のモータトルク振動の時間変化の初期部分を詳細に示した図表である。図２２に示すように、基準補償トルク指令入力後、補償トルクが発生し、それに遅れてモータトルク振動が発生する。本実施形態は、基準補償トルク指令の大きさをＮｃｓ、基準補償トルク指令入力による初期の振動振幅の値をＡ２（図２２，図２３参照）とする。
【００５２】
図２３に示すように、モータトルク振動は、時間経過とともに減衰する。本実施形態は、モータトルク振動の減衰についても考慮する。本実施形態は、モータトルクの振動振幅の最大値をａｎとする。本実施形態は、ａｎ〜ａｎ＋ｍまでの時間をｍＴとしたときの減衰比ζを数１４のように計算する。
【数１４】
2019153085.tif 000004
【００５３】
（７）振動減衰時間ｔｄについて説明する。図２４は、加速度指令と補償トルク指令の夫々の時間変化を示した図表である。本実施形態は、補償トルク指令の持続時間をＴｌとする。位相基準点Ｔｖの加速度指令値をＡｒｅｆとする。加減速開始点ｔ１から加減速終了点ｔ3までの時間を、加減速時間Ｔｍとする。補償トルク指令の入力時刻Ｔｄから加減速終了点ｔ３までの時間を、振動減衰時間ｔｄとする。本実施形態は、振動減衰時間ｔｄを、以下の数１５で導出する。
［数１５］
ｔｄ＝Ｔｍ／２−（−Ｔｐ＋Ｔｆ＋Ｔｒ＋Ｔａ）
なお、（−Ｔｐ＋Ｔｆ＋Ｔｒ＋Ｔａ）は、Ｔｄからｔ２までの時間に相当する。
【００５４】
（８）機械の固有振動数Ｆについて説明する。本実施形態は、図２１に示すモータトルクの残留振動の波形から工作機械１の固有振動数Ｆを計算する。
【００５５】
本実施形態は、補償トルク指令の入力による振動を減衰自由振動と仮定し、上記（５）〜（８）のパラメータを用いて、補償トルク指令の大きさＮｃを以下の数１６で導出する。
［数１６］
Ｎｃ＝Ａｒｅｆ×（Ａ１／Ａｓ）×（Ｎｃｓ／Ａ２）×（１／ｅ−２πζＦｔｄ）
なお、（１／ｅ−２πζＦｔｄ）は、減衰による倍率を考慮したものである。故に本実施形態は、後述する補償トルク入力処理（図２５参照）の中で、Ａｒｅｆを読込み、数１６を用いることにより、減衰比を考慮した補償トルク指令の適切な大きさＮｃを決定できる。
【００５６】
図２５を参照し、補償パラメータ決定処理を説明する。補償パラメータ決定処理は、補償トルク指令の大きさＮｃを決定する為に必要な補償パラメータである上記Ａ１、Ａ２、Ａｓを夫々決定し、記憶する処理である。作業者が操作パネル１５を用いて、補償パラメータ決定の操作を行うと、ＣＰＵ３１は、ＲＯＭ３２から補償パラメータ決定プログラムを読出し、本処理を実行する。
【００５７】
ＣＰＵ３１は基準送り運動を実行する（Ｓ１１）。基準送り運動は、例えば、図２０に示す運動である。ＣＰＵ３１は、上記（６）の方法により、基準補償トルク指令Ｎｃｓを入力し、初期のモータトルク振動振幅の最大値をＡ２して算出し、記憶装置３４に記憶する（Ｓ１２）。ＣＰＵ３１は、上記（６）の方法により、基準送り運動中の加速度指令最大値Ａｓとモータトルク振動振幅Ａ１を算出し、記憶装置３４に記憶し（Ｓ１３）、本処理を終了する。
【００５８】
図２６を参照し、メイン処理を説明する。作業者は操作パネル１５の入力部１６を用いて、記憶装置３４に記憶する複数のＮＣプログラムの中から一のＮＣプログラムを選択し、選択したＮＣプログラムに基づく被削材３の加工開始を指示する。ＣＰＵ３１は入力部１６から加工開始指示を受け付けると、ＲＯＭ３２に記憶するメインプログラムを読み込み、本処理を実行する。入力時刻決定処理で決定した入力時刻Ｔｄと、補償トルク決定処理で決定した補償パラメータである上記Ａ１、Ａ２、Ａｓは、記憶装置３４に予め記憶する。ただし、本実施形態では加減速時間Ｔｍは指令速度に依らず一定であるものとする。
【００５９】
ＣＰＵ３１は入力部１６で選択を受け付けたＮＣプログラムを読み込み（Ｓ２１）、一行解釈する（Ｓ２２）。ＣＰＵ３１は解釈した指令が終了指令か否か判断する（Ｓ２３）。終了指令で無ければ（Ｓ２３：ＮＯ）、ＣＰＵ３１は解釈した指令が位置指令か否か判断する（Ｓ２４）。位置指令でも無ければ（Ｓ２４：ＮＯ）、ＣＰＵ３１は解釈した指令に基づき動作を実行し（Ｓ２５）、Ｓ２２に戻り、次の一行を解釈する。解釈した指令が例えばＸ軸方向の位置指令である場合（Ｓ２４：ＹＥＳ）、ＣＰＵ３１は位置指令をＸ軸モータ５３の駆動回路５３Ａに出力し（Ｓ２６）、補償トルク入力処理を実行する（Ｓ２７）。Ｓ２３において、解釈した指令が終了指令と判断すると（Ｓ２４：ＹＥＳ）、ＣＰＵ３１はメイン処理を終了する。
【００６０】
図２７を参照し、補償トルク入力処理を説明する。ＣＰＵ３１は位置指令に基づく加速又は減速指令（加速度指令）の出力を開始したか否か判断する（Ｓ３１）。加速又は減速指令を出力しない場合（Ｓ３１：ＮＯ）、加速又は減速に伴う振動がテーブル１３に生じないので、ＣＰＵ３１は補償トルクを生成する必要が無い。故にＣＰＵ３１は何もせずに本処理を終了し、図２６に示すメイン処理のＳ２２に戻り、次の一行を解釈して処理を繰り返す。
【００６１】
加速又は減速指令の出力を開始した場合（Ｓ３１：ＹＥＳ）、ＣＰＵ３１は記憶装置３４から入力時刻Ｔｄを読出し、入力時刻Ｔｄに達したか否か判断する（Ｓ３２）。入力時刻Ｔｄに達するまで（Ｓ３２：ＮＯ）、ＣＰＵ３１はＳ３２に戻って待機する。入力時刻Ｔｄに達した場合（Ｓ３２：ＹＥＳ）、ＣＰＵ３１は、上記（７）の方法により、振動発生点での加速度指令値Ａｒｅｆを読込む（Ｓ３３）。ＣＰＵ３１は上記数１６を用いて、補償トルク指令の大きさＮｃを算出し（Ｓ３４）、算出した大きさＮｃの補償トルク指令を生成する（Ｓ３５）。ＣＰＵ３１は生成した補償トルク指令を、図３に示すサーボ制御系の電流制御部６８に出力することで、加算器６７が出力するトルク指令に入力する（Ｓ３６）。補償トルク指令をトルク指令に入力することにより、テーブル１３が加速又は減速時に発生する振動に対して、大きさが同じで且つ１８０°逆位相の振動が発生する。故にＣＰＵ３１はテーブル１３の加速又は減速時に発生する振動を打ち消して抑制できる。ＣＰＵ３１は図２６に示すメイン処理のＳ２２に戻り、次の一行を解釈して処理を繰り返す。解釈した指令が終了指令である場合（Ｓ２３：ＹＥＳ）、ＣＰＵ３１はメイン処理を終了する。
【００６２】
図２８，図２９を参照し、本発明の効果を実証する為に行ったシミュレーション結果について説明する。シミュレーションは、図２８，図２９に示す菱形状の移動経路に沿って、Ｆ＝１００００ｍｍ／ｍｉｎでテーブル１３が移動する場合におけるテーブルに対する工具先端の経路（相対位置）について行った。移動経路は四つのコーナ部を有し、そのうちテーブルがＹ軸方向に反転する第一コーナ部と第二コーナ部の夫々の工具先端の経路について、補償有りと無しで比較を行った。加速度指令は、図７に示す三角形状のもので行った。加減速処理に用いる移動平均フィルタの時定数は３０ｍｓ／３０ｍｓの２段とし、加減速時間Ｔｍは６０ｍｓである。
【００６３】
図２８は、本発明の補償無しのシミュレーション結果である。図２９は、本発明の補償有りのシミュレーション結果である。図２８に示すように、補償無しにおいては、第一コーナ部、第三コーナ部では、大きな振動振幅が徐々に小さくなっている。これに対し、図２９に示すように、本発明の補償を適用したものにおいては、第一コーナ部及び第三コーナ部の何れにおいても、補償無しに比べて振動波形が大幅に小さくなった。故に、本シミュレーション結果は、本発明の方法による振動抑制効果を確認できた。
【００６４】
以上説明の如く、本実施形態の数値制御装置３０は、工作機械１の動作を制御する。工作機械１はテーブル装置１０を備える。テーブル装置１０は、Ｘ軸モータ５３とＹ軸モータ５４により駆動し、テーブル１３をＸ軸方向とＹ軸方向に移動（並進）する。駆動回路５３Ａ，５４Ａのサーボ制御系は、Ｘ軸モータ５３とＹ軸モータ５４に対し、移動指令に基づくトルク指令を出力する。テーブル装置１０はトルク指令により駆動する。数値制御装置３０はテーブル装置１０の駆動時にテーブル１３に発生する振動と１８０°逆位相の振動に対応する補償トルク指令を生成する。数値制御装置３０は、生成した補償トルク指令をトルク指令に入力する入力時刻Ｔｄを決定する。数値制御装置３０は、決定した入力時刻Ｔｄに補償トルク指令をトルク指令に入力する。
【００６５】
数値制御装置３０は、入力時刻Ｔｄを決定する為に、位相差Ｔｐ、位相基準点Ｔｖ、位相差Ｔｒ、位相差Ｔａ、位相差Ｔｆを算出する。位相差Ｔｐは、工作機械１の送り運動中における移動指令を二階微分した加速度指令とトルク指令の間の遅れである。位相基準点Ｔｖは、加速度指令が最大となる時刻である。位相差Ｔｒは、補償トルク指令をステップ入力とした場合に励起する振動に対して、補償トルク指令を矩形波状として励起する振動の遅れである。位相差Ｔａは、補償トルク指令に対して、補償トルク指令をトルク指令に入力した入力済みのトルク指令の遅れであって、工作機械１の周波数特性に起因する位相差である。位相差Ｔｆは、補償トルク指令に適用するフィルタに起因する時間の遅れである。数値制御装置３０は、Ｔｄ＝Ｔｖ−Ｔｐ＋Ｔｒ＋Ｔａ＋Ｔｆを用いて入力時刻Ｔｄを決定する。故に数値制御装置３０は、補償トルク指令の入力時刻Ｔｄを自動で適切に求めることができる。故に数値制御装置３０は、加減速による固有振動と逆の位相の振動の発生を抑制できる。
【００６６】
上記実施形態の数値制御装置３０は、移動指令からトルク指令までの周波数応答特性を求め、工作機械１に発生する振動の周波数とその周波数における位相遅れ角とに基づき、位相差Ｔｐを算出する。故に数値制御装置３０は入力時刻Ｔｄを適切に求めることができる。
【００６７】
上記説明において、工作機械１は、本発明の機械装置の一例である。数値制御装置３０は、本発明の振動抑制装置の一例である。駆動回路５３Ａの加算器６７は、本発明のトルク指令出力部の一例である。図１８の処理を実行するＣＰＵ３１は、本発明の入力時刻決定手段の一例である。図２７のＳ３５の処理を実行するＣＰＵ３１は、本発明のトルク指令生成手段の一例である。Ｓ３６の処理を実行するＣＰＵ３１は、本発明の入力手段の一例である。図１８のＳ２の処理を実行するＣＰＵ３１は、本発明の第一位相差算出手段の一例である。Ｓ５の処理を実行するＣＰＵ３１は、本発明の矩形波位相差算出手段、機械位相差算出手段、フィルタ位相差算出手段の一例である。
【００６８】
本発明は上記実施形態に限らず各種変形が可能である。上記実施形態の工作機械１は、工具４を装着する主軸９がＺ軸方向に移動可能であり、テーブル１３がＸ軸とＹ軸方向に移動可能であるが、テーブル１３に対してＸ軸、Ｙ軸、Ｚ軸方向に相対的に移動する工具の移動機構の仕組みは上記実施形態に限定しない。例えば主軸はＸ、Ｙ、Ｚ軸方向の三軸に駆動するもので、テーブルは固定若しくは回転可能であってもよい。主軸を三軸に駆動する工作機械の場合、主軸の移動開始時、移動停止時、又は移動速度の変化時に発生する加速又は減速に基づく振動を抑制できる。即ち本実施形態は工具とテーブルの相対的移動によって生じる振動を抑制できる。
【００６９】
上記実施形態のテーブル装置１０はテーブル１３をＸ軸方向とＹ軸方向に並進可能に支持する機械装置であるが、テーブル１３を回転可能に支持するようにしてもよい。また、上記実施形態はテーブル装置１０を本発明の機械装置の一例として説明したが、モータにより駆動され並進又は回転運動をする機械装置であれば、テーブル装置１０に限定しない。
【００７０】
上記実施形態の工作機械１は、主軸がＺ軸方向に延びる立型工作機械であるが、本発明は主軸が水平方向に延びる横型工作機械にも適用できる。
【００７１】
上記実施形態の駆動回路５１Ａ〜５５Ａは工作機械１に設けているが、数値制御装置３０に設けてもよい。
【００７２】
上記実施形態はＣＰＵ３１の代わりに、マイクロコンピュータ、ＡＳＩＣ（Application Specific Integrated Circuits）、ＦＰＧＡ（Field Programmable Gate Array）等を、プロセッサとして用いてもよい。上記各処理は、複数のプロセッサによって分散処理してもよい。プログラムを記憶するＲＯＭ３２及び記憶装置３４は、例えばＨＤＤ及び又は記憶装置等の他の非一時的な記憶媒体で構成してもよい。非一時的な記憶媒体は、情報を記憶する期間に関わらず、情報を留めておくことが可能な記憶媒体であればよい。非一時的な記憶媒体は、一時的な記憶媒体（例えば、伝送される信号）を含まなくてもよい。プログラムは、例えば、図示外のネットワークに接続されたサーバからダウンロードして（即ち、伝送信号として送信され）、フラッシュメモリ等の記憶装置等に記憶してもよい。この場合、プログラムは、サーバに備えられたＨＤＤなどの非一時的な記憶媒体に保存していればよい。
【００７３】
上記実施形態は加速度指令が二等辺三角形状もしくは台形波の場合の位相基準点のみを示しているが、異なる加速度指令形状においても同様の考え方で位相基準点を決定し、本手法を適用可能である。
【００７４】
上記実施形態は、送り速度が変化しても加減速時間Ｔｍが一定で、即ちＴｄも一定である場合のみを示しているが、送り速度が変化したときに加減速時間Ｔｍが変化する場合についても本手法は適用可能である。ただし、その場合は図２７の補償トルク入力処理においてＳ３２の処理に先立ち、対象とする位置指令に対応する加減速時間Ｔｍを求め、Ｓ３、Ｓ５及びＳ６に示した処理を行うことで、対応するＴｄを都度算出する必要がある。移動距離が短く、移動時間がＲＡＭ３３に記憶されたＴｄに対応するＴｍ×２に満たない場合についても同様に処理を行うことが可能である。
【符号の説明】
【００７５】
１      工作機械
１０      テーブル装置
１３      テーブル
３０      数値制御装置
３１      ＣＰＵ
５３      Ｘ軸モータ
５３Ａ    駆動回路
【図１】
2019153085.tif 000005
【図２】
2019153085.tif 000006
【図３】
2019153085.tif 000007
【図４】
2019153085.tif 000008
【図５】
2019153085.tif 000009
【図６】
2019153085.tif 000010
【図７】
2019153085.tif 000011
【図８】
2019153085.tif 000012
【図９】
2019153085.tif 000013
【図１０】
2019153085.tif 000014
【図１１】
2019153085.tif 000015
【図１２】
2019153085.tif 000016
【図１３】
2019153085.tif 000017
【図１４】
2019153085.tif 000018
【図１５】
2019153085.tif 000019
【図１６】
2019153085.tif 000020
【図１７】
2019153085.tif 000021
【図１８】
2019153085.tif 000022
【図１９】
2019153085.tif 000023
【図２０】
2019153085.tif 000024
【図２１】
2019153085.tif 000025
【図２２】
2019153085.tif 000026
【図２３】
2019153085.tif 000027
【図２４】
2019153085.tif 000028
【図２５】
2019153085.tif 000029
【図２６】
2019153085.tif 000030
【図２７】
2019153085.tif 000031
【図２８】
2019153085.tif 000032
【図２９】
2019153085.tif 000033