(57)【特許請求の範囲】
【請求項１】
加工プログラムに基づきワークを加工する工作機械を駆動制御する数値制御装置において、
加工を行う際の加工速度を与える速度データと加工精度を与える精度データを指定する指定手段と、
前記加工プログラムについて前記指定手段によって指定された速度データと精度データとを用いてプログラム解析処理、補間処理、補間後加減速処理及びサーボ動作をシミュレーションすることにより各処理周期での指令位置点列およびサーボ位置点列をシミュレーションにより求めるシミュレーション部と、
前記シミュレーション部内において前記ワークを加工する予測加工時間を求める加工時間予測部と、
前記指令位置点列およびサーボ位置点列を用い前記ワークを加工する際の予測加工誤差を求める加工誤差予測部と、
を有することを特徴とする数値制御装置。
【請求項２】
前記加工誤差予測部は、前記シミュレーションの各処理周期での前記指令位置点列および前記サーボ位置点列を取得し、前記指令位置点列における特定指令位置から前記サーボ位置点列への距離、および、前記特定指令位置から各サーボ位置の隣り合う点間を結ぶ線分への垂線の長さのうちより長さの短いものを前記特定指令位置の誤差とし、前記各特定指令位置での前記各誤差のうち最も大きいものを前記指令位置点列と前記サーボ位置点列間の誤差とすることを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記加工誤差予測部は、前記シミュレーションの各処理周期での前記指令位置点列および前記サーボ位置点列を取得し、前記サーボ位置点列における特定サーボ位置から前記指令位置点列への距離、および、前記特定サーボ位置から各指令位置の隣り合う点間を結ぶ線分への垂線の長さのうちより長さの短いものを前記特定サーボ位置の誤差とし、前記各特定サーボ位置での前記各誤差のうち最も大きいものを前記指令位置点列と前記サーボ位置点列間の誤差とすることを特徴とする請求項１に記載の数値制御装置。
【請求項４】
前記加工誤差予測部は、前記シミュレーションの各処理周期での指令位置点列およびサーボ位置点列を取得し、前記指令位置点列における特定指令位置から前記サーボ位置点列への距離および前記特定指令位置から各サーボ位置の隣り合う点間を結ぶ線分への垂線の長さのうちより長さの短いものを前記特定指令位置の誤差とし、前記各特定指令位置での前記各誤差のうち最も大きいものを前記指令位置点列から前記サーボ位置点列間の誤差とし、前記サーボ位置点列における特定サーボ位置から各指令位置点列への距離および前記特定サーボ位置から各指令位置の隣り合う点間を結ぶ線分への垂線の長さのうちより長さの短いものを前記特定サーボ位置の誤差とし、前記各特定サーボ位置での前記各誤差のうち最も大きいものを前記サーボ位置点列から前記指令位置点列への誤差とし、前記指令位置点列から前記サーボ位置点列への前記誤差と前記サーボ位置点列から前記指令位置点列への前記誤差のうちより大きいものを前記指令位置点列と前記サーボ位置点列の誤差とすることを特徴とする請求項１に記載の数値制御装置。
【請求項５】
前記加工時間予測部及び前記加工誤差予測部は、指定された複数の精度データ及び指定された複数の速度データに基づき複数の予測加工時間及び複数の予測加工誤差を求め、それら前記複数の予測加工時間および前記複数の予測加工誤差からあらかじめ設定されている許容加工誤差内で最も短い予測加工時間に対する前記精度データおよび前記速度データを求めることを特徴とする請求項１〜請求項４のいずれか１つに記載の数値制御装置。
【請求項６】
前記数値制御装置は回転軸を含む多軸加工機を制御する数値制御装置であり、前記加工誤差予測部は前記指令位置点列および前記サーボ位置点列から工具先端点位置の３次元指令位置点列および３次元サーボ位置点列を求め、前記３次元指令位置点列を前記指令位置点列および前記３次元サーボ位置点列を前記サーボ位置点列として前記指令位置点列と前記サーボ位置点列間の誤差を求めることを特徴とする請求項１〜請求項５のいずれか１つに記載の数値制御装置。
【請求項７】
前記精度データは、許容加速度または許容コーナ速度差の加工条件データで与えられる請求項１〜請求項６のいずれか１つに記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加工時間予測部および加工誤差予測部を有する数値制御装置に関する。
【背景技術】
【０００２】
工作機械でワークを加工する場合、一般に、加工時間を短くすると換言すれば加工速度を上げると加工精度は悪くなり、逆に加工時間を長くすると、換言すれば加工速度を下げると加工精度は良くなる。加工精度と加工時間とを比較すると、ワークの加工において加工精度の方がより重要である。そのため、工作機械でワークを加工するユーザーは、「あらかじめ設定されている許容加工誤差内の加工精度でワークをできるだけ短い加工時間で加工したい。」と要望している。しかし、どの程度の加工時間で加工すればどの程度の加工誤差でワークを加工できるかは簡単には分らない。
【０００３】
したがって、通常は、加工時間を少し長めにして試し加工を何回か実行し、加工精度が十分許容精度内となる加工速度で加工を行う。そこで、ユーザーは、ワークを加工する前に、「どの程度の加工速度、加工条件であれば、どの程度の加工精度のワークを加工できるのかを、試し加工を行わないでシミュレーションで知りたい。」、また、「許容加工誤差内の加工精度でワークをできるだけ短い時間で加工するには、どの程度の加工速度、加工条件とすれば良いのかを、試し加工を行わないでシミュレーションで知りたい。」と強く望んでいる。
【０００４】
加工時間の予測を行うことに関する主な従来技術として特許文献１〜特許文献４に開示されるものがある。特許文献１には、シミュレーションにより加工プログラムを加工工程に分割し分割された加工工程ごとにサイクルタイムを算出し、シミュレーションの結果の情報を端末装置の表示部に表示する技術が開示されている。  
特許文献２には、送り速度や加減速を最適に調整する機能を持つ数値制御装置を使用した加工においても正確な軸移動時間を迅速に算出することができる加工時間算出装置が開示されている。  
特許文献３には、コーナ部の切削における加工誤差及び円弧切削における半径方向誤差を許容範囲におさめることが可能な数値制御装置が開示されている。  
特許文献４には、工作機械の３次元軌跡の誤差を正確に定量化し、該誤差を表示又は出力できる機能を備えた軌跡表示装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２２７０２８号公報
【特許文献２】特開２００５−３０１４４０号公報
【特許文献３】特公昭６３−２１９２２号公報
【特許文献４】特開２０１１−６００１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１や特許文献２に開示される技術は、加工時間を予測することは行っているが、加工誤差の予測を行うものではない。したがって、「どの程度の加工速度であればどの程度の加工精度のワークを加工できるのかを、試し加工を行わないでシミュレーションで知りたい。」、また、「許容加工誤差内の精度でワークをできるだけ短い加工時間で加工するにはどの程度の加工速度とすればよいのかを、試し加工を行わないでシミュレーションで知りたい。」というユーザーの要望には応えられない。
【０００７】
特許文献３に開示される技術は、加工誤差の計算を指数関数状の加減速特性で加減速が行われていることを前提としている。しかし、近年の数値制御装置は、指数関数状の加減速特性だけでなく直線状の加減速やベル形加減速と呼ばれる滑らかな加減速など複雑な速度制御が行われており、特許文献３に開示される簡単な計算式では加工誤差を予測することができない。
【０００８】
特許文献４に開示される技術は、指令位置の各点に対して、それぞれ隣り合う２点を結ぶ指令線分を定義する指令線分定義部と、各時刻における実位置から前記指令線分の各々に至る垂線のうち最小の垂線の長さと、その実位置と該実位置に最も近い指令位置を結ぶ線分の長さのうち、より長さの短いものを指令経路に対する実位置の誤差として計算する誤差計算部を有しているが、前記実位置のデータはシミュレーションではなく実際に駆動軸（サーボ）を動作させて得たものである。
【０００９】
また、特許文献４に開示される技術は、実位置Ｑm”から指令位置Ｐnへの長さを誤差としているが、逆に指令位置Ｐnから実位置Ｑm”への長さを誤差とするべき場合もある。例えば図１のような９０度のコーナ加工において、特許文献４に開示される技術では実位置から指令位置への長さ、つまり破線を誤差としている。しかし、この場合は指令位置Ｐ4から実位置Ｑ4”−Ｑ5”への線分への垂線（一点鎖線）の方が大きいのでそれを誤差とすべきである。このように、指令位置から実位置への長さを誤差とすべき場合もあるので、特許文献４に開示される技術における誤差を評価する方法では不十分である。
また、特許文献４に開示される技術は誤差を計算し表示又は出力するのみであり、この技術では「どの程度の加工速度、加工条件であればどの程度の加工精度のワークを加工できるのかを、試し加工を行わないでシミュレーションで知りたい」、また「許容加工誤差内の精度を持つワークをできるだけ短い加工時間で加工するにはどの程度の加工速度、加工条件とすればいいのかを、試し加工を行わないでシミュレーションで知りたい」という要望には応えられない。
【００１０】
また、数値制御装置は従来技術として「加工条件選択機能」を備えている。この加工条件選択機能は、図２に示される許容加速度や許容コーナ速度差のような加工条件データをあらかじめパラメータで設定しておき、図３に示されるプログラム指令のブロックのようにどの精度データで加工するかを指定して加工を行うものである。図２においては、速度重視（精度データ１）および精度重視（精度データ１０）の場合のそれぞれの許容加速度と許容コーナ速度差の加工条件データの設定をしておき、それらの間の精度データ（精度データ２〜精度データ９）については、これらの設定値から比例配分して加工条件データを得ることを示している。ここでは代表的な２つの加工条件データのみ記載しているが、他にも加加速度（加速度変化量）、補間後加減速時定数など様々な加工条件データを同様に設定することができる。
【００１１】
図３においては、それらの精度データのうちどの精度データを指定するかの指令を示している。Ｇ０５．１Ｑ１は加工条件選択指令のブロックであることを表し、Ｒｒのｒで図２における１〜１０の精度データのうちどの精度データを選択するかを指令する。例えば粗加工ではｒを小さく指定し仕上げ加工ではｒを大きく指定する。もちろん、このように精度データを１〜１０のような数値で指令するのではなく、許容加速度や許容コーナ速度差などの加工条件データを直接指令することや、許容加速度や許容速度差などのパラメータ設定値を設定してもよい。
【００１２】
この２ブロック目のＦ指令は加工指令における速度指令であるが、オーバライド（１％〜２００％）によって実際の指令速度は、（Ｆ指令）＊（オーバライド（１％〜２００％））に変更できる。また、Ｆ指令を無視しパラメータに設定されたパラメータ設定速度とすることもできる。また、プログラムのＦ指令を変更速度指令に変更しその変更した速度とすることもできる。
【００１３】
例えば、図２のパラメータ設定において、Ｇ０５．１Ｑ１Ｒ４と指令すると、許容加速度は１５３３ｍｍ／ｓｅｃ2（＝（６＊２０００＋３＊６００）／９）、許容コーナ速度差は８００ｍｍ／ｍｉｎ（＝（６＊１０００＋３＊４００）／９）の値を、それぞれ加工条件データとして許容加速度、許容コーナ速度差のパラメータに設定し加工を行う。あるいは、上述のようにこれらのデータを直接指令したり、これらのデータに対応するパラメータ設定値を設定してもよい。しかし、この加工条件選択機能では精度データを簡便に指令することはできるが、各精度データにおいてどの程度の加工誤差になるのか、どの程度の加工時間で加工できるのかはわからなかった。
【００１４】
そこで本発明の目的は、上記従来技術の問題点に鑑み、加工時間・加工誤差予測用データとして精度データおよび速度データを与え、加工プログラムを指定し、シミュレーションによって予測加工時間を求める加工時間予測部と予測加工誤差を求める加工誤差予測部を有する数値制御装置、および、前記精度データは複数の前記精度データでかつ前記速度データは複数の前記速度データでの複数の予測加工時間および複数の予測加工誤差を求め、それら複数の予測加工時間および複数の予測加工誤差からあらかじめ設定されている許容加工誤差内で最も短い予測加工時間を求める数値制御装置を提供することである。
【課題を解決するための手段】
【００１５】
本願の請求項１に係る発明は、加工プログラムに基づきワークを加工する工作機械を駆動制御する数値制御装置において、加工を行う際の加工速度を与える速度データと加工精度を与える精度データを指定する指定手段と、前記加工プログラムについて前記指定手段によって指定された速度データと精度データとを用いてプログラム解析処理、補間処理、補間後加減速処理及びサーボ動作をシミュレーションすることにより各処理周期での指令位置点列およびサーボ位置点列をシミュレーションにより求めるシミュレーション部と、前記シミュレーション部内において前記ワークを加工する予測加工時間を求める加工時間予測部と、前記指令位置点列およびサーボ位置点列を用い前記ワークを加工する際の予測加工誤差を求める加工誤差予測部と、を有することを特徴とする数値制御装置である。
【００１６】
請求項２に係る発明は、前記加工誤差予測部は、前記シミュレーションの各処理周期での前記指令位置点列および前記サーボ位置点列を取得し、前記指令位置点列における特定指令位置から前記サーボ位置点列への距離、および、前記特定指令位置から各サーボ位置の隣り合う点間を結ぶ線分への垂線の長さのうちより長さの短いものを前記特定指令位置の誤差とし、前記各特定指令位置での前記各誤差のうち最も大きいものを前記指令位置点列と前記サーボ位置点列間の誤差とすることを特徴とする請求項１に記載の数値制御装置である。  
請求項３に係る発明は、前記加工誤差予測部は、前記シミュレーションの各処理周期での前記指令位置点列および前記サーボ位置点列を取得し、前記サーボ位置点列における特定サーボ位置から前記指令位置点列への距離、および、前記特定サーボ位置から各指令位置の隣り合う点間を結ぶ線分への垂線の長さのうちより長さの短いものを前記特定サーボ位置の誤差とし、前記各特定サーボ位置での前記各誤差のうち最も大きいものを前記指令位置点列と前記サーボ位置点列間の誤差とすることを特徴とする請求項１に記載の数値制御装置である。
【００１７】
請求項４に係る発明は、前記加工誤差予測部は、前記シミュレーションの各処理周期での指令位置点列およびサーボ位置点列を取得し、前記指令位置点列における特定指令位置から前記サーボ位置点列への距離および前記特定指令位置から各サーボ位置の隣り合う点間を結ぶ線分への垂線の長さのうちより長さの短いものを前記特定指令位置の誤差とし、前記各特定指令位置での前記各誤差のうち最も大きいものを前記指令位置点列から前記サーボ位置点列間の誤差とし、前記サーボ位置点列における特定サーボ位置から各指令位置点列への距離および前記特定サーボ位置から各指令位置の隣り合う点間を結ぶ線分への垂線の長さのうちより長さの短いものを前記特定サーボ位置の誤差とし、前記各特定サーボ位置での前記各誤差のうち最も大きいものを前記サーボ位置点列から前記指令位置点列への誤差とし、前記指令位置点列から前記サーボ位置点列への前記誤差と前記サーボ位置点列から前記指令位置点列への前記誤差のうちより大きいものを前記指令位置点列と前記サーボ位置点列の誤差とすることを特徴とする請求項１に記載の数値制御装置である。
【００１８】
請求項５に係る発明は、前記加工時間予測部及び前記加工誤差予測部は、指定された複数の精度データ及び指定された複数の速度データに基づき複数の予測加工時間及び複数の予測加工誤差を求め、それら前記複数の予測加工時間および前記複数の予測加工誤差からあらかじめ設定されている許容加工誤差内で最も短い予測加工時間に対する前記精度データおよび前記速度データを求めることを特徴とする請求項１〜請求項４のいずれか１つに記載の数値制御装置である。  
請求項６に係る発明は、前記数値制御装置は回転軸を含む多軸加工機を制御する数値制御装置であり、前記加工誤差予測部は前記指令位置点列および前記サーボ位置点列から工具先端点位置の３次元指令位置点列および３次元サーボ位置点列を求め、前記３次元指令位置点列を前記指令位置点列および前記３次元サーボ位置点列を前記サーボ位置点列として前記指令位置点列と前記サーボ位置点列間の誤差を求めることを特徴とする請求項１〜請求項５のいずれか１つに記載の数値制御装置である。
請求項７に係る発明は、前記精度データは、許容加速度または許容コーナ速度差の加工条件データで与えられる請求項１〜請求項６のいずれか１つに記載の数値制御装置である。
【発明の効果】
【００１９】
本発明により、加工時間・加工誤差予測用データとして精度データおよび速度データを与え、加工プログラムを指定し、シミュレーションによって予測加工時間を求める加工時間予測部と予測加工誤差を求める加工誤差予測部を有する数値制御装置、および、前記精度データは複数の前記精度データでかつ前記速度データは複数の前記速度データでの複数の予測加工時間および複数の予測加工誤差を求め、それら複数の予測加工時間および複数の予測加工誤差からあらかじめ設定されている許容加工誤差内で最も短い予測加工時間を求める数値制御装置を提供できる。
【図面の簡単な説明】
【００２０】
【図１】特許文献４における指令経路Ｐnに対する実位置Ｑm”の誤差を説明する図である。
【図２】従来技術における加工条件選択機能を説明する図である。
【図３】精度データのうちどの精度データを指定するかの指令を含むプログラム指令を説明する図である。
【図４】本発明の特長を説明する図である。
【図５】本発明に係る加工プログラムの加工時間予測部および加工誤差予測部を備えた数値制御装置の機能ブロック図である。
【図６】サーボ動作をシミュレーションするサーボシムレーション部を説明する図である。
【図７】当該ブロックの加工時間を説明する図である。
【図８】処理周期毎の補間データ（ΔＰn）を説明する図である。
【図９】加工誤差予測部における処理を説明するフローチャートである。
【図１０】図９のフローチャートのステップＳＡ０６の処理を説明する図である。
【図１１】図９のフローチャートのステップＳＡ０３の処理をより詳細に説明するフローチャートである。
【図１２】Ｐnの誤差の求め方を説明する図である。
【図１３】予測加工時間と予測加工誤差の一例である。
【図１４】精度データと速度データによって予測加工時間と予測加工誤差を求めた表である。
【図１５】工具ヘッド回転型５軸加工機の概略図である。
【図１６】工具ヘッド回転型５軸加工機におけるＰn，ＱmおよびＰn’，Ｑm’の関係を説明する図である。
【図１７】本発明を適用した一実施形態の加工時間予測部および加工誤差予測部を有する数値制御装置の構成を概略で示すブロック図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態を図面と共に説明する。  
図４は、本願発明の特長をまとめたものであり、本発明は１組乃至複数の速度データおよび精度データにおいてどの程度の加工誤差および加工時間が予測されるかについてシミュレーションを行い、どの程度の速度データおよび精度データであれば、どの程度の加工精度のワークがどの程度の加工時間で加工できるのか（図４（１）参照）、また、許容加工誤差内の精度を持つワークをできるだけ短い加工時間で加工するにはどの程度の加工速度、加工条件とすればいいのか（図４（２））を推定するものである。本発明では誤差の評価において、シミュレーションによるサーボ位置から指令位置への誤差と、シミュレーションによる指令位置からサーボ位置への誤差として評価する。このことによって、より精度よく誤差を予測することができる。
【００２２】
これらのことによって、（１）の効果としては、実加工の前にシミュレーションで予測加工誤差と予測加工時間を得ることができるので生産計画を立てやすくなる。（２）の効果としては、できるだけ加工時間を短くすることにより、工作機械をより効率的に稼働することができる。また、そのことにより、省エネルギーの加工を行うことができるという効果を得る。
【００２３】
以下、本発明の実施形態１〜３を説明する。  
＜実施形態１＞
図５は、本発明に係る加工プログラムの加工時間予測部および加工誤差予測部を備えた数値制御装置１の機能ブロック図である。プログラム解析部３は加工プログラム２を読み取り解析を行い補間用データを作成する。補間部４は、補間前加減速部５によってブロック間やブロックに対して作成された速度に基づいて、補間用データにしたがって補間を行い補間データ（ΔＰn）を作成する。補間後加減速部７は補間データ（ΔＰn）に対して補間後加減速を行いそのデータを蓄積して位置としサーボ位置指令データ（ＶＣn）を作成する。サーボ位置指令データ（ＶＣn）は補間後加減速部７からサーボシミュレーション部８に送られ、サーボシミュレーション部８において実際のサーボ動作をシミュレーションしたサーボ位置データ（Ｑn）（以下、単に「サーボ位置（Ｑn）」という）を作成する。
【００２４】
ここで、図６を用いてサーボ動作をシミュレーションするサーボシミュレーション部８を説明する。処理周期毎に補間後加減速部７からサーボ位置指令データ（ＶＣn）がサーボシミュレーション部８に入力される。サーボシミュレーション部８に入力したサーボ位置指令データ（ＶＣn）は、フィードフォワードシミュレーション部８０に入力する。フィードフォワードシミュレーション部８０はサーボ位置指令データ（ＶＣn）の微分処理を行いフィードフォワード係数を乗算してΔＵnとして出力する。  
サーボ位置指令データ（ＶＣn）と前回の処理周期のサーボ位置（フィードバックデータ）Ｑn-1との差分をポジションループゲインシミュレーション部８１に入力する。ポジションループゲインシミュレーション部８１では、その差分にポジションループゲインを乗算したΔＲnを出力する。ΔＵnとΔＲnの和が位置シミュレーション部８２に入力され、それを蓄積してサーボ位置Ｑnとする。  
なお、添え字「n」や後出する「m」を持つデータは、送り軸の数を合算した軸数分のデータを持つベクトルである。
【００２５】
これらの処理は、パラメータ、マクロ変数およびＤＩ信号などの各種の加工時間・加工誤差予測用データを参照する。また、これらの処理において、実際にサーボを動作させることは行わず、全てシミュレーションである。  
ここで、加工時間・加工誤差予測用データは、パラメータ、マクロ変数、ＤＩ信号などについて同種の加工用データとは別に用意する。したがって、ここにおけるＤＩ信号は加工時間予測および加工誤差予測用の仮想の信号データである。
【００２６】
上述したように、サーボシミュレーション部８は、ポジションループゲインによる遅れやフィードフォワードによるサーボ動作のシミュレーションを行なう部分である。したがって、加工用のサーボ処理部とは別に用意する。プログラム解析部３、補間部４、補間前加減速部５、および、補間後加減速部７については、加工用の同種処理部とは別に用意してもよいし、加工用（フォアグランド）の同種処理部をバックグラウンドで使用してもよい。なお、図６のサーボシミュレーション部８の構成は一例であって、他の構成のシミュレーション部８によってサーボシミュレーションを行なってもよい。  
プログラム解析部３、補間部４、補間前加減速部５、および、補間後加減速部７の各シミュレーションの処理方法については従来技術であるので詳述しない。ただし、補間部４、補間前加減速部５、および、補間後加減速部７のシミュレーションの処理周期は加工用に比べて長くてよい。例えば加工用の補間部、補間前加減速部および補間後加減速部の処理周期は１ｍｓｅｃであっても、加工時間予測および加工誤差予測用の補間部４、補間前加減速部５および補間後加減速部７のシミュレーションの処理周期は８ｍｓｅｃ程度の粗い周期を想定した処理としてもよい。このことによってより高速に加工時間予測および加工誤差予測を行うことができる。
【００２７】
加工時間予測部６は、補間データ形状によって加工時間予測の計算を行ってもよいし、補間回数をカウントすることによって加工時間を予測してもよい。補間データ形状による計算とは、例えば、直線型加減速であれば、各ブロックの補間データの形状は、当該ブロックの指令速度を上限とし、斜辺を補間前加減速部５で作成される当該ブロックの加速度とし、谷部の速度を補間前加減速部で作成される当該ブロックのコーナ速度とし、面積を当該ブロックの指令ブロック長とする形状になるので、予測される当該ブロックの加工時間を計算することができる（図７参照）。
【００２８】
詳細には、各補間データ（ΔＰn）は図８のような処理周期毎の矩形形状であるが、一般に処理周期に比べて当該ブロックの加工時間は十分長いので、図７では各矩形形状をつないだ全体が形状を示している。補間回数をカウントすることによる予測とは、補間部４から補間データ（ΔＰn）が作成される回数をカウントし回数に処理周期を乗算することによって加工時間を得る方法である。それらの加工時間予測方法は従来技術であるので詳述しない。
【００２９】
加工誤差予測部９は、補間データ（ΔＰn）による補間経路と補間後加減速およびサーボ動作シミュレーションによる遅れ経路との差を誤差として予測する。加工誤差予測部９は上述のようにサーボシミュレーション部８からサーボ位置Ｑnを得る。また、補間部４からの出力データとして補間データΔＰnが得られている。加工誤差予測部９でＰn＝Ｐn-1＋ΔＰnとしてそれを蓄積することで、指令位置Ｐnを得る。このことによって、指令位置点列Ｐnとサーボ位置点列Ｑnが作成される。ただし、Ｐnの点列に対してＱnの点列は補間後加減速およびサーボ動作シミュレーションによる遅れ分の処理周期回数だけ多い。そのため、以後、Ｐn（ｎ＝０，１，２，・・・，ｎｅ）に対してＱm（ｍ＝０，１，２，・・・，ｍｅ）と別の添え字で表記する。ｎｅ，ｍｅはそれぞれの点列の最終点の番号であり、一般にｍｅ＞ｎｅである。
【００３０】
加工誤差予測部９の処理について図９のフローチャートで説明する。  
●［ステップＳＡ０１］ｎ＝０，ｍ＝０，Ｍａｘｅｐ＝０，Ｍａｘｅｑ＝０とする。  
●［ステップＳＡ０２］点列Ｐnに対してその範囲を規定するためあらかじめ設定している数ｄｎにしたがい、ｎ−ｄｎ≦ｎ≦ｎ＋ｄｎの点列Ｐnを用意する。ｎ−ｄｎ≦ｎ≦ｎ＋ｄｎが０≦ｎ≦ｎｅの範囲を超えている場合は、０≦ｎ≦ｎｅの範囲内の点列のみとする。点列Ｑmに対しても同様に、その範囲を規定するためあらかじめ設定している数ｄｍにしたがい、ｍ−ｄｍ≦ｍ≦ｍ＋ｄｍの点列Ｑmを用意する。ｍ−ｄｍ≦ｍ≦ｍ＋ｄｍが０≦ｍ≦ｍｅの範囲を超えている場合は、０≦ｍ≦ｍｅの範囲内の点列のみとする。
●［ステップＳＡ０３］特定指令位置Ｐnから点列Ｑmへの誤差計算を行い、Ｐnから点列Ｑmへの誤差Ｅｐを得る。また、Ｅｐの最大値Ｍａｘｅｐを更新し、ｍを更新する。この処理については、図１１に示すフローチャートにより詳細に説明する。  
●［ステップＳＡ０４］特定サーボ位置Ｑmから点列Ｐnへの誤差計算を行い、Ｑmから点列Ｐnへの誤差Ｅｑを得る。また、Ｅｑの最大値Ｍａｘｅｑを更新する。ｎを更新する。
●［ステップＳＡ０５］ｎ＝ｎｅかつｍ＝ｍｅかどうか判断し、ＮｏであればステップＳＡ０２に戻る。ＹｅｓであればステップＳＡ０６へ移行する。  
●［ステップＳＡ０６］ＭａｘｅｐとＭａｘｅｑの大きい方を指令位置点列Ｐnとサーボ位置点列Ｑm間の予測誤差Ｅｅとし、処理を終了する。
【００３１】
つまり、指令位置点列Ｐnとサーボ位置点列Ｑmについて、ｎ−ｄｎ≦ｎ≦ｎ＋ｄｎおよびｍ−ｄｍ≦ｍ≦ｍ＋ｄｍの範囲に対して特定位置指令Ｐnから点列Ｑmへの誤差Ｅｐと特定サーボ位置Ｑmから点列Ｐnへの誤差Ｅｑを計算する。これの計算をｎ，ｍを更新しながら行う。それぞれの最大値Ｍａｘｅｐ（＝Ｍａｘ（Ｅｐ）），Ｍａｘｅｑ（＝Ｍａｘ（Ｅｑ））を求め、さらにそれらのうちの大きい方を指令位置点列Ｐnとサーボ位置列間Ｑmの予測誤差Ｅｅ（＝Ｍａｘ（Ｍａｘｅｐ，Ｍａｘｅｑ））とする。（図１０参照）Ｍａｘ（Ｅｐ）は複数のＥｐのうちの最大のもの、Ｍａｘ（Ｅｑ）は複数のＥｑのうちの最大のもの、Ｍａｘ（Ｍａｘｅｐ，Ｍａｘｅｑ）はＭａｘｅｐとＭａｘｅｑのうち大きいものを示す。
【００３２】
ステップＳＡ０３が特定指令位置Ｐnから点列Ｑmへの誤差計算を行いその誤差Ｅｐの最大値Ｍａｘｅｐを作成するのに対して、ステップＳＡ０４は同様に特定サーボ位置Ｑmから点列Ｐnへの誤差計算を行い、その誤差Ｅｑの最大値Ｍａｘｅｑを作成する。ステップＳＡ０３とステップＳＡ０４はどちらか一方のみ行ってもよい。  
従来技術で述べたように、特許文献４に開示されている技術は、上記のステップＳＡ０４に相当する計算のみを行っている。ただし、すでに述べたように特許文献４では実際に駆動軸（サーボ）を動作させて得た実位置に対する計算であるのに対して、本発明ではシミュレーションによって得た位置に対する計算である。
【００３３】
なお、ここでは、最初から最後までの指令位置点列Ｐn（ｎ＝０，１，２，・・・，ｎｅ）とサーボ位置点列Ｑm（ｍ＝０，１，２，・・・，ｍｅ）を作成してから誤差を計算すると説明したが、加工プログラムを必要なブロックずつ読み込みながら必要な指令位置Ｐｎ（ｎ−ｄｎ≦ｎ≦ｎ＋ｄｎ）とサーボ位置Ｑm（ｍ−ｄｍ≦ｍ≦ｍ＋ｄｍ）を求めて同様の計算を行うこともできる。そうすれば、全ての点列Ｐnおよび点列Ｑmを作成しておく必要はないのでメモリを節約できる。
【００３４】
また、記号Ｐnに対して指令位置Ｐn、特定指令位置Ｐn、指令位置点列Ｐn、点列Ｐn、というように前につける言葉で少し意味が相違する。指令位置Ｐnは１つの指令位置を示す。特定指令位置Ｐnは特定の、すなわち着目する指令位置を示す。指令位置点列Ｐnおよび点列Ｐnは複数の指令位置による指令点列Ｐnを示す。Ｑmについても同様である。
【００３５】
上記の図９のフローチャートのステップＳＡ０３について、図１１のフローチャートでさらに説明する。  
●［ステップＳＢ０１］ｉ＝ｍ−ｄｍ，Ｅｐ＝｜Ｐn−Ｑi｜と初期値をセットする。ここで、一般的にｉ＝ｍ−ｄｍとしたが、上記図９のフローチャートの説明のステップＳＡ０２で説明したように、Ｑmについてｍ−ｄｍ≦ｍ≦ｍ＋ｄｍが０≦ｍ≦ｍｅの範囲を超えている場合は、ｉはｍ−ｄｍ≦ｍ≦ｍ＋ｄｍと０≦ｍ≦ｍｅが重なる範囲内の一番小さい値とする。  
●［ステップＳＢ０２］ＰnとＱi+1の間の長さ｜Ｐn−Ｑi+1｜を計算し、｜Ｐn−Ｑi+1｜＜ＥｐならＥｐ＝｜Ｐn−Ｑi+1｜かつｉｍ＝ｉ＋１とし、そのときのｉ＋１を記憶する。
●［ステップＳＢ０３］ＱiとＱi+1間の線分Ｌｑを作成する。  
●［ステップＳＢ０４］Ｐnから線分Ｌｑに垂線があるかどうか判断する。なければステップＳＢ０７へ移行し、あればステップＳＢ０５へ移行する。  
●［ステップＳＢ０５］ＰnからＬｑへの垂線の長さＬｐｅｒを計算する。  
●［ステップＳＢ０６］Ｌｐｅｒ＜Ｅｐなら、Ｅｐ＝Ｌｐｅｒとしかつｉｍ＝ｉ＋１としてそのときのｉ＋１を記憶する。
●［ステップＳＢ０７］ｉ＝ｍ＋ｄｍ−１かどうか判断する。ＹｅｓならステップＳＢ０９へ移行する。ＮｏならステップＳＢ０８へ移行する。ここで、一般的に、ｉ＝ｍ＋ｄｍ−１かどうかとしたが、上記図９のフローチャートの説明のステップＳＡ０２で述べたように、Ｑmについてｍ−ｄｍ≦ｍ≦ｍ＋ｄｍが０≦ｍ≦ｍｅの範囲を超えている場合は、ｉはｍ−ｄｍ≦ｍ≦ｍ＋ｄｍと０≦ｍ≦ｍｅが重なる範囲内の一番大きな値の１だけ小さい値と等しいかどうか判断する。その結果、Ｐnから点列Ｑm（ｍ−ｄｍ≦ｍ≦ｍ＋ｄｍ）の隣り合う線分への垂線のうちより長さの短いものがＥｐとして求まる。これを、Ｐnと点列Ｑm（ｍ−ｄｍ≦ｍ≦ｍ＋ｄｍ）間の誤差とする。（図１２参照）
●［ステップＳＢ０８］ｉに１を加えてｉとし、ステップＳＢ０２に戻り処理を継続する。
●［ステップＳＢ０９］Ｅｐ＞ＭａｘｅｐならＭａｘｅｐ＝Ｅｐとし、Ｅｐの最大値Ｍａｘｅｐを更新する。  
●［ステップＳＢ１０］ｉｍ＞ｍなら、ｍ＝ｉｍとする。ｉｍ≦ｍなら、ｍ＝ｍ＋１としてｍを更新する。ただし、ｍが最大値ｍｅを超えるようならｍはｍｅとし、処理を終了する。
【００３６】
このように加工時間予測部６と加工誤差予測部９を備えた図５に示される数値制御装置１に対して、加工条件選択機能（図２参照）において説明した精度データと速度データを与え、加工プログラムを指定して動作させれば、予測加工時間Ｔｅと予測加工誤差Ｅｅを求めることができる。ここで、速度データの与え方は、ＤＩ信号としてオーバライドを与える。パラメータでパラメータ設定速度を与える、あるいはプログラム上のＦ指令を変更速度指令に変更するなどいろいろの方法がありうる。
【００３７】
もちろん、加工プログラムの一部だけを加工時間予測と加工誤差予測の対象としてもよい。例えば、切削指令（Ｇ０１，Ｇ０２，Ｇ０３など）モード部分だけを対象としてもよい。また、加工プログラム中のある工具で切削するブロックだけとかある工程部分だけを対象としてもよい。
【００３８】
図１３は、精度データ９、速度データ（オーバライド）５０％で予測加工時間Ｔｅと予測加工誤差Ｅｅを得た１つの例を示している。上段が予測加工時間Ｔｅ（単位分）、下段が予測加工誤差Ｅｅ（単位ｍｍ）である。このように、精度データや速度データ（オーバライド）を指定して予測加工時間と予測加工誤差を同時にシミュレーションによって得ることができる。
【００３９】
＜実施形態２＞  
実施形態２では、許容加工誤差内で一番加工時間の短い条件を得る。  
精度データと速度データを変更していくつかの精度データと速度データによって予測加工時間Ｔｅと予測加工誤差Ｅｅを求め、図１４のような表を作成する。
ここでは速度データはパラメータ設定速度を与えている。図１４は、５つの太枠内（精度データ１，速度データ１０００ｍｍ／ｍｉｎ）、（精度データ１０，速度データ１０００ｍｍ／ｍｉｎ）、（精度データ５，速度データ２０００ｍｍ／ｍｉｎ）、（精度データ１，速度データ３０００ｍｍ／ｍｉｎ）、（精度データ１０，速度データ３０００ｍｍ／ｍｉｎ）が得られた予測加工時間と予測加工誤差であり、上段が予測加工時間Ｔｅ（単位分）、下段が予測加工誤差Ｅｅ（単位ｍｍ）である。その他の枠内のデータについては、それから比例配分で内挿したものである。もちろん、５つの太枠以外においても、あるいは全ての枠においてシミュレーションしてもよい。  
そして、あらかじめ設定されている許容加工誤差を０．０５ｍｍとした場合、斜線を入れた枠のデータは許容誤差を超えているので排除される。その結果、許容加工誤差内で予測加工時間も最も短いデータは、精度データ９，速度データ３０００ｍｍ／ｍｉｎであることが容易に得られる。したがって、加工に対する推奨条件は（精度データ９，速度データ３０００ｍｍ／ｍｉｎ）となる。
【００４０】
＜実施形態３＞  
工具ヘッドやテーブルに回転軸を持つ多軸加工機の場合、加工誤差予測部９は指令位置点列Ｐn（ＰXn，ＰYn，ＰZn，ＰBn，ＰCn）およびサーボ位置点列Ｑm（ＱXm，ＱYm，ＱZm，ＱBm，ＱCm）および工具長から工具先端点位置の３次元指令位置点列Ｐｎ’（ＰXn'，ＰYn'，ＰZn'）および工具先端点位置の３次元サーボ位置点列Ｑm'（ＱXm'，ＱYm'，ＱZm'）を求め、それらを実施形態１や実施形態２での指令位置点列およびサーボ位置点列と同様に扱って加工誤差を予測することができる。  
ここで、添え字（Ｂ，Ｃ）についてはＢ軸とＣ軸の回転軸を持つ多軸加工機を想定してそれらの位置として表記したが、他の軸（Ａ，Ｂ）や（Ａ，Ｃ）軸の回転軸を持つ場合もある。また、多軸加工機には工具ヘッド回転型５軸加工機、テーブル回転型多軸加工機、混合型（工具ヘッドもテーブルも回転）多軸加工機がある。それぞれにおいて、上記工具先端点位置とは、加工するワークが載るテーブルにおける座標系での工具先端点位置の指令位置点列Ｐn'（ＰXn'，ＰYn'，ＰZn'）およびサーボ位置点列Ｑm'（ＱXm'，ＱYm'，ＱZm'）である。ここで、テーブルが回転する多軸加工機の場合、加工するワークが載るテーブルにおける座標系とはテーブル上にあってテーブル回転とともに回転する座標系である。
図１５は工具ヘッド回転型５軸加工機の工具ヘッド部分の概略図、図１６は工具ヘッド回転型５軸加工機におけるＰn，ＱmおよびＰn'，Ｑm'の関係を図示している。
【００４１】
図１７は、本発明を適用した一実施形態の加工時間予測部および加工誤差予測部を有する数値制御装置の構成を概略で示すブロック図である。数値制御装置１は図２を用いて説明した「加工条件選択機能」を備えている。プロセッサであるＣＰＵ１１１は、ＲＯＭ１１２に格納されたシステムプログラムに従って数値制御装置１の全体を制御する。ＲＡＭ１１３は、各種のデータあるいは入出力信号が格納される。不揮発性メモリ１１４に格納された各種のデータは電源切断後もそのまま保存される。グラフィック制御回路１１５は、デジタル信号を表示用の信号に変換し、表示装置１１６に与える。キーボード１１７は、数値キー、文字キーなどを有する各種設定データを入力する手段である。
【００４２】
軸制御回路１１８は、ＣＰＵ１１１から各軸の移動指令を受けて軸の指令をサーボアンプ１１９に出力する。このサーボアンプ１１９は、この移動指令を受けて工作機械２０のサーボモータ（図示せず）を駆動する。これらの構成要素はバス１２１で互いに結合されている。ＰＭＣ（プログラマブル・マシン・コントローラ）１２２は、加工プログラムの実行時に、バス１２１経由でＴ機能信号（工具選択指令）などを受け取る。そして、この信号を、シーケンス・プログラムで処理して、動作指令として信号を出力し、工作機械２０を制御する。また、工作機械２０から状態信号を受けて、ＣＰＵ１１１に必要な入力信号を転送する。更に、バス１２１には、システムプログラム等によって機能が変化するソフトウェアキー１２３、ＮＣデータを記憶装置などの外部機器に送るインタフェース１２４が接続されている。このソフトウェアキー１２３は、表示装置１１６、キーボード１１７と共に、表示装置／ＭＤＩパネル１２５に設けられている。
【符号の説明】
【００４３】
１  数値制御装置
２  加工プログラム
３  プログラム解析部
４  補間部
５  補間前加減速部
６  加工時間予測部
７  補間後加減速部
８  サーボシミュレーション部
９  加工誤差予測部
２０  工作機械
８０  フィードフォワードシミュレーション部
８１  ポジションループゲインシミュレーション部
８２  位置シミュレーション部
Ｐn  指令位置
Ｑm”  実位置
ΔＰn  補間データ
ＶＣn  サーボ位置指令データ
Ｑn  サーボ位置
Ｔe  予測加工時間
Ｅe  予測加工誤差
【図１】
0005149421.tif 000002
【図２】
0005149421.tif 000003
【図３】
0005149421.tif 000004
【図４】
0005149421.tif 000005
【図５】
0005149421.tif 000006
【図６】
0005149421.tif 000007
【図７】
0005149421.tif 000008
【図８】
0005149421.tif 000009
【図９】
0005149421.tif 000010
【図１０】
0005149421.tif 000011
【図１１】
0005149421.tif 000012
【図１２】
0005149421.tif 000013
【図１３】
0005149421.tif 000014
【図１４】
0005149421.tif 000015
【図１５】
0005149421.tif 000016
【図１６】
0005149421.tif 000017
【図１７】
0005149421.tif 000018