(57)【要約】      （修正有）【課題】工作機械の個体差や経年変化の影響を回避可能な機能を有する工作機械の数値制御装置を提供する。【解決手段】加工プログラムに従って可動部を駆動するモータを駆動し、ワークに加工を行う工作機械を制御する数値制御装置において、加工プログラム名を読み込み、前回実行加工プログラム名を読み込み、加工プログラムを変更したか否かを判断する（ＳＡ１〜ＳＡ３）。変更した場合、最適制御パラメータを初期値に設定し、変更していない場合、設定された最適制御パラメータを読み込み、加工プログラムのブロックを読み込み、解釈し、実行し、早送り指令か否かを判断する（ＳＡ４〜ＳＡ７）。早送り指令の場合には、可動部重量推定フラグＦＬをオンし、加工プログラムの終了か否か判断し、加工プログラムが終了の場合には、実行した加工プログラム名と設定された最適制御パラメータを不揮発性メモリに記憶して処理を終了する（ＳＡ８〜ＳＡ１１）。【選択図】図４
2010211467.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムに従って可動部を駆動するモータを駆動し、可動部に備わったテーブルに載置されたワークに加工を行う工作機械を制御する数値制御装置において、
前記加工プログラムの実行中で、かつ、切削を行っていない早送り指令のときの移動距離が所定距離以上のとき、前記モータの駆動電流値と加速度値を元に所定の算出式に基づいて前記可動部の重量を推定可動部重量値として推定する可動部重量推定手段と、
可動部重量に対する前記モータの制御パラメータの関数を記憶する制御パラメータ関数記憶手段と、
前記可動部重量推定手段により推定された推定可動部重量値に対応する前記制御パラメータ関数記憶手段に記憶された前記制御パラメータの関数から最適制御パラメータを算出する制御パラメータ算出手段と、
前記制御パラメータ算出手段により算出された最適制御パラメータによって前記モータを駆動する駆動手段と、
前記可動部の実重量値と前記可動部重量推定手段により推定された推定可動部重量値とを比較することにより前記可動部重量推定手段の前記所定の算出式を修正する算出式修正手段と、
を備えたことを特徴とする可動部重量を推定する機能を有する工作機械を制御する数値制御装置。
【請求項２】
加工プログラムの実行履歴を記憶する実行履歴記憶手段と、
最適制御パラメータの初期値を記憶する初期値記憶手段と、
加工プログラムの実行履歴から今回実行する加工プログラムが前回実行した加工プログラムと異なる場合に、前記最適制御パラメータを前記初期値記憶手段に記憶された初期値とする設定手段と、
を備えたことを特徴とする請求項１に記載の可動部重量を推定する機能を有する工作機械を制御する数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は工作機械を制御する数値制御装置に関し、特に工作機械の可動部の重量を推定する機能を有する数値制御装置に関する。
【背景技術】
【０００２】
工作機械の可動部の加減速時定数や位置ループゲインなどの制御パラメータは、被加工物であるワークを速く、精度良く加工できるように、また、加工作業の安全性及び信頼性を考慮して設計される。しかし、可動部重量は加工対象により、ワーク、治具等で様々な重量に変化する。もし、可動部の制御パラメータが固定値であれば、可動部重量の変化に対応できず、可動部重量が軽い場合でも軸の送り速度が遅いなど、機械本来の性能を発揮できない場合がある。そこで、ワークの重量に応じて制御パラメータを変更することが従来から行なわれている。  
特許文献１には、ワーク重量を自動的に推定し、推定した重量から関数に従って最適なパラメータを設定する技術が開示されている。特許文献２には、手動で入力したワーク重量に対し、所定の規則を適用することにより最適なパラメータを設定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平２−１２４０７号公報
【特許文献２】特開平１０−６３３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
背景技術で説明した特許文献１の技術では、ワーク重量を推定する方法は固定されており、工作機械の個体差や経年変化によってワーク重量の正確な推定ができない問題がある。また、特許文献２の技術では、ワーク重量を手動で入力するため、ワーク重量を推定する点では工作機械の個体差や経年変化の影響を回避できるものの、ワーク変更毎にワーク重量を手動で入力しなければならない問題がある。  
そこで本発明の目的は、上記事情に鑑み、可動部重量を推定する重量推定部を修正することによって工作機械の個体差や経年変化の影響を回避可能な機能を有する工作機械を制御する数値制御装置を提供することである。
【課題を解決するための手段】
【０００５】
本願の請求項１に係る発明は、加工プログラムに従って可動部を駆動するモータを駆動し、可動部に備わったテーブルに載置されたワークに加工を行う工作機械を制御する数値制御装置において、前記加工プログラムの実行中で、かつ、切削を行っていない早送り指令のときの移動距離が所定距離以上のとき、前記モータの駆動電流値と加速度値を元に所定の算出式に基づいて前記可動部の重量を推定可動部重量値として推定する可動部重量推定手段と、可動部重量に対する前記モータの制御パラメータの関数を記憶する制御パラメータ関数記憶手段と、前記可動部重量推定手段により推定された推定可動部重量値に対応する前記制御パラメータ関数記憶手段に記憶された前記制御パラメータの関数から最適制御パラメータを算出する制御パラメータ算出手段と、前記制御パラメータ算出手段により算出された最適制御パラメータによって前記モータを駆動する駆動手段と、前記可動部の実重量値と前記可動部重量推定手段により推定された推定可動部重量値とを比較することにより前記可動部重量推定手段の前記所定の算出式を修正する算出式修正手段と、を備えたことを特徴とする可動部重量を推定する機能を有する工作機械を制御する数値制御装置である。  
請求項２に係る発明は、加工プログラムの実行履歴を記憶する実行履歴記憶手段と、最適制御パラメータの初期値を記憶する初期値記憶手段と、加工プログラムの実行履歴から今回実行する加工プログラムが前回実行した加工プログラムと異なる場合に、前記最適制御パラメータを前記初期値記憶手段に記憶された初期値とする設定手段と、を備えたことを特徴とする請求項１に記載の可動部重量を推定する機能を有する工作機械を制御する数値制御装置である。
【発明の効果】
【０００６】
本発明により、可動部重量を推定する手段を修正する機能を備えることによって、工作機械の個体差や経年変化の影響を回避可能な工作機械を制御する数値制御装置を提供できる。
【図面の簡単な説明】
【０００７】
【図１】工作機械を制御する数値制御装置の概略ブロック図である。
【図２】可動部重量推定部を含むブロック図である。
【図３】可動部重量と制御パラメータの関係を説明するグラフである。
【図４】最適制御パラメータを設定する処理のアルゴリズムを示すフローチャートである。
【図５】可動部重量を推定する処理のアルゴリズムを示すフローチャートである。
【図６】キャリブレーションモードを説明するブロック図である。
【図７】評価プログラムに含まれる早送り移動を行うブロックの加減速を説明するグラフである。
【図８】可動部重量推定部を修正するアルゴリズムを示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態を図面と共に説明する。  
図１は、本発明の可動部重量推定機能を有する工作機械を制御する数値制御装置の概略ブロック図である。プロセッサ（ＣＰＵ）１１は、ＲＯＭ１２に格納されたシステムプログラムをバス１９を介して読み出し、このシステムプログラムに従って、数値制御装置１０を全体的に制御する。ＲＡＭ１３には、一時的な計算データ、表示データなどが格納される。ＳＲＡＭ１４は、図示しないバッテリでバックアップされ、数値制御装置１０の電源がオフされても記憶状態が保持される不揮発性ＲＡＭとして構成され、各種パラメータまたはアプリケーションプログラム等に関連した重要な情報が格納されている。本発明にかかる最適制御パラメータの初期値も格納されている。
【０００９】
ＰＭＣ（プログラマブル・マシン・コントローラ）１５は、数値制御装置１０に内蔵されたシーケンスプログラムで工作機械（図示せず）を制御する。すなわち、加工プログラムで指令された機能に従って、これらシーケンスプログラムで工作機械側で必要な信号に変換し、Ｉ／Ｏユニット１６から工作機械側へ出力する。この出力信号により工作機械側の各種のアクチュエータが作動する。また、工作機械側のリミットスイッチおよび機械操作盤の各種スイッチ等の信号を受けて、必要な処理をしてプロセッサ（ＣＰＵ）１１に渡す。
【００１０】
各軸の現在位置、可動部重量、アラーム、画像データなどの信号は、表示装置／ＭＤＩユニット７０の表示装置に送られ、表示装置に表示される。なお、ＭＤＩはキーボードなどの手動入力装置を意味する。インタフェース１７は、ＬＣＤ／ＭＤＩ７０のキーボードからのデータを受けてプロセッサ（ＣＰＵ）１１に渡す。インタフェース１８は手動パルス発生器７１に接続され、インタフェース１８は手動パルス発生器７１に接続され、手動パルス発生器７１からのパルスを受ける。手動パルス発生器７１は工作機械側の機械操作盤に実装され、手動で機械可動部を精密に位置決めするために使用される。
【００１１】
軸制御回路３０〜３２はプロセッサ（ＣＰＵ）１１からの各軸の移動指令を受けて、各軸の指令をサーボアンプ４０〜４２に出力する。サーボアンプ４０〜４２はこの指令を受けて、工作機械の機構部（図示せず）に設けられている各軸のサーボモータ５０〜５２を駆動する。Ｘ，Ｙ，Ｚ各軸のサーボモータ５０〜５２には位置・速度を検出する位置・速度検出器（図示せず）が内蔵されている。この位置・速度検出器からのフィードバック信号（ｆ１，ｆ２，ｆ３）（以降、「速度フィードバック値」という）が軸制御回路３０〜３２にフィードバックされる。なお、位置のフィードバック信号（以降、「位置フィードバック値」という）も軸制御回路３０〜３２にフィードバックされる。また、サーボアンプ４０〜４２にはサーボモータ５０〜５２を駆動する駆動電流を検出する電流センサ（図示せず）が内蔵されており、該電流センサからのフィードバック信号（ｆ４，ｆ５，ｆ６）（以降、「電流フィードバック値」という）が軸制御回路３０〜３２にフィードバックされる。
【００１２】
軸制御回路３０〜３２に内蔵されたサーボ制御ＣＰＵは、これらのフィードバック値と前記移動指令とに基づいて各軸毎、位置ループ、速度ループ、電流ループの各処理を行い、各軸のサーボモータ５０〜５２の位置、速度を制御する。これらの制御は、従来公知の制御ループである。
【００１３】
スピンドル制御回路６０はスピンドル回転指令を受けて、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はこのスピンドル速度信号を受けて、スピンドルモータ６２を指令された回転速度で回転させる。
【００１４】
図２は、本発明の実施形態に係る可動部重量推定部を含むブロック図である。軸制御回路部３は図１の軸制御回路３０〜３２に相当する。アンプ部４は図１のサーボアンプ４０〜４２に相当する。工作機械機構部５にはサーボモータ（図示せず）が設けられている。また、工作機械機構部５のサーボモータによりワークや工具を載置するテーブルを含む可動部が駆動される。サーボモータは図１のサーボモータ５０〜５２に相当する。
【００１５】
可動部重量推定部６には、アンプ部４から出力される負荷電流値Ｉfbと工作機械機構部５から出力される速度値Ｖfbが入力する。該速度値Ｖfbは工作機械機構部５に配置されたサーボモータに内蔵される位置・速度検出器から出力される。可動部重量推定部６は、負荷電流値Ｉfb、速度値Ｖfb、速度から算出した可動部の加速度値を基に推定可動部重量Ｗestを算出する。また、可動部重量推定部６は、後述する数５式、数６式、および摩擦力Ｆr（ｖ）の関数も可動部重量推定部６を構成する図示しない不揮発性メモリに格納しておく。不揮発性メモリとしてはＳＲＡＭ１４（図１参照）を用いることができる。
【００１６】
制御パラメータ関数記憶部７には、可動部重量推定部６で推定された可動部重量に対する加減速処理部２や軸制御回路部３の制御パラメータを算出するための制御パラメータ関数を記憶しておく。制御パラメータ算出部８は、可動部重量推定部６から入力され推定可動部重量Ｗestに対応する加減速時定数や位置ループゲインなどの最適制御パラメータを制御パラメータ関数記憶部７に記憶された制御パラメータ関数を用いて算出する。
【００１７】
図３は、図２に示される制御パラメータ関数記憶部７に記憶される制御パラメータ関数を説明する図である。制御パラメータ関数は、可動部重量に関する最適制御パラメータの変化を表す関数である。図３では、制御パラメータ関数の例として加減速時定数と位置ループゲイン、速度ループゲインなどのフィードバックゲインを示している。
【００１８】
制御パラメータ関数を制御パラメータ関数記憶部７に記憶する方法として、例えば、図３の●で示される選定された可動部重量における最適制御パラメータを元に最小二乗法、内挿補間などの手法により近似式を求め、この近似式を可動部重量の全範囲に対応する関数式として記憶する方法がある。図３に示されるように、本発明の実施形態においては可動部重量の変化に対応して最適制御パラメータを連続して求めることができるため、どのような可動部重量が推定されても、その推定した可動部重量に対応した最適制御パラメータを加減速処理部２や軸制御回路部３（図２参照）に設定することができる。
【００１９】
図４は、数値制御装置が実行する最適制御パラメータを設定する処理のアルゴリズムを示すフローチャートである。可動部の重量推定は、工作機械が加工プログラムを実行時で切削加工を行っていない、早送り中の加減速時に限り行う。なぜなら、切削加工中は、切削力が可動部に加わるため、正確に可動部重量を推定することができないからである。また、所定距離以上の距離を軸が移動したことを確認した上、可動部重量の推定値を設定することで、可動部重量の推定値の精度を確保することができる。また、可動部重量を推定する際に、可動部重量の加速度が所定の大きさ以上に限定することによって、可動部重量の推定値の精度を確保することができる。
【００２０】
図４のフローチャートを各ステップに従って説明する。  
●［ステップＳＡ１］加工プログラム名を読み込み、ステップＳＡ２へ移行する。
●［ステップＳＡ２］前回実行加工プログラム名を読み込み、ステップＳＡ３へ移行する。
●［ステップＳＡ３］加工プログラムを変更したか否かを判断し、変更していない場合にはステップＳＡ５へ移行し、変更した場合にはステップＳＡ４へ移行する。加工プログラムを変更したか否かの判断は、ステップＳＡ１で読み込んだ加工プログラム名とステップＳＡ２で読み込んだ前回実行加工プログラム名が同一か否かで判断する。なお、前回実行した加工プログラムが無く前回実行加工プログラム名が無い場合には、加工プログラムを変更したと判断する。この処理ステップによって、前回の加工と今回の加工とで質量の大幅に異なるワークを載置し、異なった加工プログラムで加工をする際の適切でない最適制御パラメータを用いた加工を避けることができる。
●［ステップＳＡ４］最適制御パラメータを初期値に設定し、ステップＳＡ６へ移行する。
【００２１】
●［ステップＳＡ５］設定された最適制御パラメータを読み込み、ステップＳＡ６へ移行する。設定された最適制御パラメータは、前回、加工プログラムを実行し加工プログラムを終了する時に不揮発性メモリに記憶したデータである。このフローチャートでは、ステップＳＡ１１に次回に加工プログラムを実行する時のために、不揮発性メモリに最適制御パラメータを記憶する。
●［ステップＳＡ６］加工プログラムのブロックを読み込み、解釈し、実行し、ステップＳＡ７へ移行する。
●［ステップＳＡ７］ステップＳＡ６で読み込み、解釈し、実行しているブロックは、早送り指令か否かを判断し、早送り指令ではない場合には、ステップＳＡ９へ移行し、早送り指令の場合には、ステップＳＡ８へ移行する。
●［ステップＳＡ８］可動部重量推定フラグＦＬをオンし、ステップＳＡ９へ移行する。可動部重量推定フラグＦＬがオンすることにより、図２に示すブロック図の機能が実行開始される。図２に示すブロック図の機能は、図５に示すフローチャートに従って実現する。
【００２２】
●［ステップＳＡ９］加工プログラムは終了か否かを判断し、加工プログラムが終了ではない場合にはステップＳＡ６に戻り、次のブロックを読み込み、解釈し、実行する処理を継続し、加工プログラム終了の場合にはステップＳＡ１０へ移行する。
●［ステップＳＡ１０］加工プログラム名を前回実行加工プログラム名として不揮発性メモリに記憶し、ステップＳＡ１１に移行する。このようにして、加工プログラムの実行履歴を保存する。
●［ステップＳＡ１１］設定された最適制御パラメータを不揮発性メモリに記憶し、終了する。
【００２３】
次に、可動部の重量を推定するための算出式について説明する。  
可動部重量をＭ、非切削時に可動部を加速する加速度の大きさをα、非切削時に可動部を減速する加速度の大きさをβ、加速時に可動部に加わる外力をＦ、減速時に可動部に加わる外力をＦ’とすると、次の運動方程式が成立する。
【００２４】
Ｍ・α＝Ｆ（加速時）    ・・・（数１式）
Ｍ・β＝Ｆ’（減速時）  ・・・（数２式）
可動部に加わる外力Ｆは、モータの回転による推力と摩擦による力である。モータによる推力は２πη・Ｋt・Ｉ／Ｌであり、摩擦力は（ｃv・ｖ＋Ｆc）である。ここで、ｃv・ｖは粘性摩擦力であり、Ｆcはクーロン摩擦力である。そうすると、可動部が加速時の外力の大きさＦは数３式が成立し、可動部が減速時の外力の大きさＦ’は数４式が成立する。
【００２５】
Ｆ＝２πη・ＫtＩ／Ｌ―ＫFr（ｃv・ｖ＋Ｆc）    ・・・（数３式）
Ｆ’＝２πη・ＫtＩ／Ｌ＋ＫFr（ｃv・ｖ＋Ｆc）  ・・・（数４式）
π：円周率
η：駆動系の効率
Ｋt：トルク定数［Ｎｍ／Ａ］
Ｉ：モータ駆動電流［Ａ］
Ｌ：モータ１回転当たりの機械移動量［ｍ］
ＫFr：修正係数
ｃv：粘性摩擦係数［Ｎ／（ｍ／ｓ）］
ｖ：可動部速度［ｍ／ｓ］
Ｆｃ：クーロン摩擦力［Ｎ］
【００２６】
上記式で２πη・Ｋt／Ｌを換算トルク定数Ｋとし、摩擦力（ｃv・ｖ＋Ｆc）をＦr（ｖ）と置くと数５式、数６式が得られる。なお、ＫFrは修正係数であり、可動部重量推定部において推定した可動部の重量が実際の可動部の重量と乖離する場合に、調整するための係数である。摩擦力Ｆr（ｖ）である（ｃv・ｖ＋Ｆc）はあらかじめ測定試験によって可動部の速度の関数として求める。予め測定試験により求めた関数式を不揮発性メモリに記憶しておき、モータ回転速度を基に摩擦力Ｆr（ｖ）を算出する。トルク定数Ｋtはモータのカタログ等により既知の値であり、トルク駆動電流はモータへの入力電流から求めることができ、可動部の加速度はモータの回転速度を基に算出する。モータの回転速度は、モータに内蔵されている位置・速度検出器から出力される速度信号から得られる。
【００２７】
図２のブロック図に示すように、モータへの入力電流と、モータの回転速度を元に可動部重量を推定する。可動部が加速している時の推定式は数５式を用い、可動部が減速している時の推定式は数６式を用いる。
Ｍ＝（Ｋ・Ｉ−ＫFr・Ｆr（ｖ））／α  ・・・（数５式）
Ｍ＝（Ｋ・Ｉ＋ＫFr・Ｆr（ｖ））／β  ・・・（数６式）  
【００２８】
図５に示す可動部重量を推定する処理のアルゴリズムを示すフローチャートを説明する。このフローチャートの処理は制御周期毎に実行される。以下、各ステップに従って説明する。
●［ステップＳＢ１］可動部重量推定フラグＦＬはオンか否か判断し、フラグＦＬがオンではない場合には処理を終了し、フラグＦＬがオンの場合にはステップＳＢ２へ移行する。
●［ステップＳＢ２］サーボアンプからフィードバックされる負荷電流値およびサーボモータの位置・速度検出器からフィードバックされる速度値を取得し、ステップＳＢ３へ移行する。なお、速度値は可動部の加速度値を算出するために少なくとも次の制御周期までは記憶しておく。
●［ステップＳＢ３］可動部の加速度値を算出し、ステップＳＢ４へ移行する。可動部の加速度値は、今回取得した速度値と前回取得した速度値との差を今回の制御周期と前回の制御周期までの経過時間（換言すれば、１制御周期の時間）により除算することにより求めることができる。
【００２９】
●［ステップＳＢ４］可動部重量を所定の算出式（加速時には数５式、減速時には数６式）に基づいて推定し、算出した可動部重量を算出可動部重量値として記憶し、ステップＳＢ５へ移行する。なお、可動部重量の算出誤差を少なくするために、可動部重量の算出を、可動部の加速度の大きさが所定の値を超えた場合にのみ計算してもよい。
●［ステップＳＢ５］移動距離を算出し、ステップＳＢ６に移行する。移動距離は、数値制御装置が備えている現在位置レジスタのデータを用い、早送りブロックの初期位置と現在の位置との差分によって求めることができる。
●［ステップＳＢ６］早送り指令が終了か否か判断し、早送り指令が終了の場合にはステップＳＢ７へ移行し、早送り指令が終了でない場合にはステップＳＢ８へ移行する。
【００３０】
●［ステップＳＢ７］可動部重量推定フラグＦＬをオフし、処理を終了する。
●［ステップＳＢ８］所定距離以上移動したか否か判断し、移動していない場合には処理を終了し、移動している場合にはステップＳＢ９へ移行する。
●［ステップＳＢ９］記憶した算出可動部重量値の平均値を計算し、推定可動部重量値を求め、ステップＳＢ１０へ移行する。
●［ステップＳＢ１０］推定可動部重量値に対応する最適制御パラメータを設定する。図６に示されるブロック図を基に説明すると、制御パラメータ関数記憶部７に記憶された制御パラメータ関数を用いて可動部重量推定部６において推定された推定可動部重量値に対応する最適制御パラメータを算出し、加減速処理部２や軸制御回路部３の制御パラメータを前記算出した最適制御パラメータに置き換え、ステップＳＢ１１へ移行する。
●［ステップＳＢ１１］可動部重量推定フラグＦＬをオフにし、推定可動部重量を求める処理を終了する。
【００３１】
上述したように加工プログラムの実行中に推定可動部重量を求め、該推定可動部重量に対応する最適制御パラメータを加減速制御部と軸制御回路部とに設定するわけであるが、工作機械の個体差や経年変化による摩擦力の変化、各接触面の磨耗などにより、推定によって求める推定可動部重量と真の可動部重量との乖離が大きくなることがある。そうすると、推定可動部重量に対応する最適制御パラメータによって機械機構部に備えたサーボモータの駆動制御を行ったとしても、可動部を最適に制御することができない。  
そこで、可動部重量推定部によって算出される推定可動部重量が適切か否かを判断し、適切でないならば適切な推定可動部重量が求められるように可動部重量推定部の所定の算出式を修正するキャリブレーションを行なう必要がある。
【００３２】
図６はキャリブレーションモードを説明するブロック図である。キャリブレーションモードは、可動部重量推定部６で推定された推定可動部重量と可動部重量入力手段９から入力された可動部の実重量との誤差に応じて可動部重量推定部の摩擦力の項を修正する。具体的には修正係数ＫFrの大きさを変更することによって前記誤差が小さくなるようにする。そして、誤差が目標範囲に収まるか、設定された早送り回数を満たすまで評価プログラムを実行する。
【００３３】
図８に示すアルゴリズムのフローチャートの処理による可動部重量推定のキャリブレーションモードを設ける。キャリブレーションモードを設けることにより、製品の工場出荷前の検査や使用者の工場での検査でキャリブレーションモードを実行することにより、製品の個体差や経年変化による影響を取り除くことができる。
【００３４】
キャリブレーションモードは、可動部重量が既知（既知の重量のワークが載置されている状態、テーブル上に何も載置されていない状態や、治具のみが載置されている状態）のとき、可動部の実重量を入力手段から入力し、予め記憶された評価プログラムを実行する。評価プログラムは、例えば図７に示される早送り移動を行うブロックを含むプログラムを用いる。あるいは、テーブルの質量、キャリブレーション用の質量既知の物体を載置した時の可動部重量を不揮発性メモリに記憶しておき、キャリブレーションモードが選択された場合には、自動的に対応する可動部重量を用いるようにしてもよい。
【００３５】
次に、図８に示す可動部重量推定部を修正する評価プログラムのアルゴリズムを示すフローチャートを説明する。以下、各ステップに従って説明する。
●［ステップＳＣ１］繰り返し回数を初期化し、ステップＳＣ２へ移行する。繰り返し回数は、推定可動部重量値を求める回数である。
●［ステップＳＣ２］可動部重量入力手段から入力された入力可動部重量値を読み込み、ステップＳＣ３へ移行する。
●［ステップＳＣ３］ブロックを読み込み、解釈し、実行し、ステップＳＣ４へ移行する。
【００３６】
●［ステップＳＣ４］サーボアンプからフィードバックされる負荷電流値およびサーボモータの位置・速度検出器からフィードバックされる速度値を取得し、ステップＳＣ５へ移行する。
●［ステップＳＣ５］可動部加速度を算出し、ステップＳＣ６へ移行する。可動部の加速度値は、今回取得した速度値と前回取得した速度値との差を今回の制御周期と前回の制御周期までの経過時間（換言すれば、１制御周期の時間）により除算することにより求めることができる。
●［ステップＳＣ６］可動部重量を所定の算出式（加速時には数５式、減速時には数６式）に基づいて推定し、算出した可動部重量を算出可動部重量値として記憶し、ステップＳＣ７へ移行する。なお、可動部重量の算出誤差を少なくするために、可動部重量の算出を、可動部の加速度の大きさが所定の値を超えた場合にのみ計算してもよい。
【００３７】
●［ステップＳＣ７］ブロック終了かを判断し、ブロック終了ではない場合にはステップＳＣ４に戻り処理を継続し、ブロック終了の場合にはステップＳＣ８へ移行する。
●［ステップＳＣ８］ステップＳＣ６で記憶した算出可動部重量値の平均値を計算し、推定可動部重量値を得、ステップＳＣ９へ移行する。
●［ステップＳＣ９］繰り返し回数は、設定繰り返し回数を超えたか否か判断し、超えた場合にはステップＳＣ１０へ移行し、超えていない場合にはステップＳＣ１１へ移行する。
【００３８】
●［ステップＳＣ１０］可動部重量推定部を修正できないとして、設定異常を表示器に出力し、終了する。
●［ステップＳＣ１１］ステップＳＣ２で読み込んだ入力可動部重量値とステップＳＣ８で得た推定可動部重量値との誤差は所定範囲以内か否か判断し、所定範囲以内ではない場合にはステップＳＣ１２へ移行し、所定範囲以内の場合にはステップＳＣ１３へ移行する。
●［ステップＳＣ１２］可動部重量推定部の算出式の修正を行い、ステップＳＣ３へ移行する。
●［ステップＳＣ１３］可動部重量推定部を修正できたとして設定正常を表示器に出力し、評価プログラムの処理を終了する。
【符号の説明】
【００３９】
１  プログラム解析・補間処理部
２  加減速処理部
３  軸制御回路部
４  アンプ部
５  工作機械機構部
６  可動部重量推定部
７  制御パラメータ関数記憶部
８  制御パラメータ算出部
９  可動部重量入力手段
【図１】
2010211467.tif 000003
【図２】
2010211467.tif 000004
【図３】
2010211467.tif 000005
【図４】
2010211467.tif 000006
【図５】
2010211467.tif 000007
【図６】
2010211467.tif 000008
【図７】
2010211467.tif 000009
【図８】
2010211467.tif 000010