(57)【特許請求の範囲】
【請求項１】
工作機械の制御位置座標を表す点列指令を入力する点列指令入力部と、連続する前記点列指令を４点以上選択して評価範囲を設定する評価範囲設定部と、前記評価範囲設定部で選択された前記評価範囲内の点列指令を用いて、前記評価範囲内の点列指令の修正量を計算する修正量計算部と、計算された前記修正量に従って前記点列指令入力部において入力された点列指令を移動してその結果を出力する点列移動部とを備え、前記修正量計算部は、前記点列指令を通過する曲線の曲率に相当する曲率評価値を前記評価範囲内の複数箇所で計算するとともに、前記複数の曲率評価値の中で値の最も大きなものを小さくするように前記点列指令の修正量を計算することを特徴とする数値制御装置。
【請求項２】
修正量計算部は、曲率評価値として、連続する点列指令を結ぶ線分ベクトルの１次または高次の変化量を示す差分ベクトルを用いることを特徴とする請求項１記載の数値制御装置。
【請求項３】
修正量計算部における修正量を許容誤差値以下に制限する修正量制限部を備えたことを特徴とする請求項１から請求項２のうちのいずれか１項記載の数値制御装置。
【請求項４】
修正量計算部は、差分ベクトルとして、線分ベクトルの長さに関する量により重み付けされた線分ベクトルを用いて計算された差分ベクトルを用いることを特徴とする請求項２記載の数値制御装置。
【請求項５】
工作機械の制御位置座標を表す点列指令を入力する点列指令入力部と、連続する前記点列指令をＮ点選択して評価範囲を設定する評価範囲設定部と、前記評価範囲設定部で選択された前記評価範囲内の点列指令を用いて、前記評価範囲内の点列指令の修正量を計算する修正量計算部と、計算された前記修正量に従って前記点列指令入力部において入力された点列指令を移動してその結果を出力する点列移動部とを備え、前記修正量計算部は、前記評価範囲内の点列指令に２次以上のスプライン曲線をあてはめ、そのスプライン曲線に近づくように前記点列指令の修正量を計算し、かつ前記Ｎはスプライン曲線の次数に２を加算した値以上の整数であり、入力された点列指令からなる軌跡の性状を判断する軌跡判断部を備え、判断された前記軌跡の性状に応じて、前記評価範囲設定部において設定する前記評価範囲または前記修正量計算部における前記修正量計算方法を適宜変更することを特徴とする数値制御装置。
【請求項６】
修正量計算部における修正量を許容誤差値以下に制限する修正量制限部を備えたことを特徴とする請求項５記載の数値制御装置。
【請求項７】
入力された点列指令からなる軌跡の性状を判断する軌跡判断部を備え、判断された前記軌跡の性状に応じて、評価範囲設定部において設定する前記評価範囲または修正量計算部における前記修正量計算方法を適宜変更することを特徴とする請求項１から請求項４のうちのいずれか１項記載の数値制御装置。
【請求項８】
工作機械の制御位置座標を表す点列指令を入力する第１のステップと、連続する前記点列指令を４点以上選択して評価範囲を設定する第２のステップと、前記第２のステップで選択された前記評価範囲内の点列指令を用いて、前記評価範囲内の点列指令の修正量を計算する第３のステップと、計算された前記修正量に従って前記第１のステップにおいて入力された点列指令を移動してその結果を出力する第４のステップとを有し、前記第３のステップは、前記評価範囲内の点列指令を通過する曲線の曲率に相当する曲率評価値を前記評価範囲内の複数箇所で計算するとともに、前記複数の曲率評価値の中で値の最も大きなものを小さくするように前記点列指令の修正量を計算することを特徴とする数値制御方法。
【請求項９】
第３のステップは、曲率評価値として、連続する点列指令を結ぶ線分ベクトルの１次または高次の変化量を示す差分ベクトルを用いることを特徴とする請求項８記載の数値制御方法。
【請求項１０】
第３のステップにおける修正量を許容誤差値以下に制限する第５のステップを有することを特徴とする請求項８から請求項９のうちのいずれか１項記載の数値制御方法。
【請求項１１】
第３のステップは、差分ベクトルとして、線分ベクトルの長さに関する量により重み付けされた線分ベクトルを用いて計算された差分ベクトルを用いることを特徴とする請求項９記載の数値制御方法。
【請求項１２】
工作機械の制御位置座標を表す点列指令を入力する第１のステップと、連続する前記点列指令を数点選択して評価範囲を設定する第２のステップと、前記第２のステップで選択された前記評価範囲内の点列指令を用いて、前記評価範囲内の点列指令の修正量を計算する第３のステップと、計算された前記修正量に従って前記第１のステップにおいて入力された点列指令を移動してその結果を出力する第４のステップとを有し、前記第３のステップは、前記評価範囲内の点列指令に２次以上のスプライン曲線をあてはめ、そのスプライン曲線に近づくように前記点列指令の修正量を計算し、かつ前記Ｎはスプライン曲線の次数に２を加算した値以上の整数であり、入力された点列指令からなる軌跡の性状を判断する第６のステップを有し、判断された前記軌跡の性状に応じて、第２のステップにおいて設定する前記評価範囲または第３のステップにおける前記修正量計算方法を適宜変更することを特徴とする数値制御方法。
【請求項１３】
第３のステップにおける修正量を許容誤差値以下に制限する第５のステップを有することを特徴とする請求項１２記載の数値制御方法。
【請求項１４】
入力された点列指令からなる軌跡の性状を判断する第６のステップを有し、判断された前記軌跡の性状に応じて、第２のステップにおいて設定する前記評価範囲または第３のステップにおける前記修正量計算方法を適宜変更することを特徴とする請求項８から請求項１１のうちのいずれか１項記載の数値制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、工作機械の数値制御に用いられる数値制御装置に関するものであり、特に、工作機械位置制御用の点列指令を滑らかに修正する機能を備えた数値制御装置および数値制御方法に関するものである。
【０００２】
【従来の技術】
工作機械を制御するＮＣ装置のＮＣプログラムは、通常、滑らかなスプライン曲線のような軌跡の場合、曲線を直線近似して微小な線分列として表現する。この場合、ＮＣ装置の前記ＮＣプログラムは、連続する点列（位置座標点）として表現されるか、あるいは、連続する線分として表現される。このような前記直線近似による軌跡を点列指令と総称する。
【０００３】
前記点列指令は、ＣＡＤ／ＣＡＭ装置で作成される場合は、計算誤差等で不連続な点が発生する場合がある。また、モデルの形状を計測して前記点列指令を作成する場合には、モデルを倣い計測する時に発生する計測誤差によってガタガタした不連続な軌跡になる場合がある。点列指令に不連続な軌跡があると、加工面が滑らかにならず、また、工作機械にも不必要な加速度が加わって機械を損傷する場合があるなどの問題がある。
【０００４】
このような前記点列指令の不連続点を修正する方法として、例えば特開平３−６３７０８に示されたような方法がある。この方法では、不連続な点列指令を修正するために、連続する点列指令３点ごとに三角形の重心の近似点を算出し、点列指令を前記重心の近似点に移動させることにより修正を行っている。
【０００５】
【発明が解決しようとする課題】
従来の数値制御装置は以上のように構成されているので、連続する点列指令中の修正点およびその前後の計３点から三角形の重心を求めて修正を行うため、点列指令の修正に用いる点列情報が少なく、このため、前記修正において必ずしも点列指令全体を滑らかにするような有効な修正が行われない課題があった。
【０００６】
また、点列指令が円弧などの曲率の変化の少ない軌跡を表現している場合に、上記従来の方法で点列指令を修正すると、逆に曲率が大きな点列指令に修正され、滑らかさが失われるとともに、修正が行われることにより誤差が大きな点列軌跡となってしまう場合がある課題があった。
【０００７】
さらに、点列指令の修正量に制限を設けていないため、加工誤差が許容範囲以上に大きくなる場合があり、加工不良が発生したりするなどの課題があった。
【０００８】
この発明は上記のような課題を解決するためになされたもので、単純な計算方法により、多数の点列情報を用いて点列指令全体を滑らかにする有効な修正を行うことができ、これにより、工作機械による加工面を滑らかにし、工作機械への不必要な加速度による工作機械の損傷等を有効に防止することができる数値制御装置および数値制御方法を得ることを目的とする。
【０００９】
また、この発明は、円弧のような滑らかな軌跡を表現している点列指令の場合にも、従来の方法におけるように軌跡を劣化させることなく滑らかな点列指令を得ることができる数値制御装置および数値制御方法を得ることを目的とする。
【００１０】
さらに、この発明は、点列指令の修正量が許容誤差以上の大きな値となって工作機械による加工不良や工作機械の損傷が発生する事態を防止することができる数値制御装置および数値制御方法を得ることを目的とする。
【００１１】
さらに、この発明は、曲率の変化や点列指令間の間隔の変化が大きいような点列指令に対しても軌跡を劣化させることなく滑らかな点列指令が得られ、点列指令の修正を有効に行うことができる数値制御装置および数値制御方法を得ることを目的とする。
【００１２】
さらに、この発明は、曲線の種類や、誤差の有無などが複雑に組み合わされたような軌跡に対しても、精度よく本来の軌跡を復元することのできる数値制御装置および数値制御方法を得ることを目的とする。
【００１３】
【課題を解決するための手段】
この発明に係る数値制御装置は、修正量計算部が、点列指令を通過する曲線の曲率に相当する曲率評価値を評価範囲内の複数箇所で計算するとともに、前記複数の曲率評価値の中で値の最も大きなものを小さくするように前記点列指令の修正量を計算するようにしたものである。
【００１４】
この発明に係る数値制御装置は、修正量計算部が、曲率評価値として、連続する点列指令を結ぶ線分ベクトルの１次または高次の変化量を示す差分ベクトルを用いるようにしたものである。
【００１６】
この発明に係る数値制御装置は、修正量計算部における修正量を許容誤差値以下に制限する修正量制限部を備えたものである。
【００１７】
この発明に係る数値制御装置は、修正量計算部が、差分ベクトルとして、線分ベクトルの長さに関する量により重み付けされた線分ベクトルを用いて計算された差分ベクトルを用いるようにしたものである。
【００１８】
この発明に係る数値制御装置は、修正量計算部が、評価範囲内の点列指令に２次以上のスプライン曲線をあてはめ、そのスプライン曲線に近づくように前記点列指令の修正量を計算し、かつＮはスプライン曲線の次数に２を加算した値以上の整数であるようにしたものである。
【００２０】
この発明に係る数値制御装置は、評価範囲内の点列指令に２次曲線をあてはめた修正量計算部における修正量を許容誤差値以下に制限する修正量制限部を備えるようにしたものである。
【００２２】
この発明に係る数値制御装置は、入力された点列指令からなる軌跡の性状を判断する軌跡判断部を備え、判断された前記軌跡の性状に応じて、評価範囲設定部において設定する前記評価範囲または修正量計算部における前記修正量計算方法を適宜変更するようにしたものである。
【００２３】
この発明に係る数値制御方法は、第３のステップが、点列指令を通過する曲線の曲率に相当する曲率評価値を評価範囲内の複数箇所で計算するとともに、前記複数の曲率評価値の中で値の最も大きなものを小さくするように前記点列指令の修正量を計算し、かつＮはスプライン曲線の次数に２を加算した値以上の整数であるようにしたものである。
【００２４】
この発明に係る数値制御方法は、第３のステップが、曲率評価値として、連続する点列指令を結ぶ線分ベクトルの１次または高次の変化量を示す差分ベクトルを用いるようにしたものである。
【００２６】
この発明に係る数値制御方法は、第３のステップにおける修正量を許容誤差値以下に制限する第５のステップを有するものである。
【００２７】
この発明に係る数値制御方法は、第３のステップが、差分ベクトルとして、線分ベクトルの長さに関する量により重み付けされた線分ベクトルを用いて計算された差分ベクトルを用いるようにしたものである。
【００２８】
この発明に係る数値制御方法は、第３のステップが、評価範囲内の点列指令に２次以上の曲線をあてはめ、その曲線に近づくように前記点列指令の修正量を計算するようにしたものである。
【００３０】
この発明に係る数値制御方法は、評価範囲内の点列指令に２次曲線をあてはめた第３のステップにおける修正量を許容誤差値以下に制限する第５のステップを備えるようにしたものである。
【００３２】
この発明に係る数値制御方法は、入力された点列指令からなる軌跡の性状を判断する第６のステップを有し、判断された前記軌跡の性状に応じて、第２のステップにおいて設定する前記評価範囲または第３のステップにおける前記修正量計算方法を適宜変更するようにしたものである。
【００３３】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１による数値制御装置の構成を示すブロック図であり、図において、１はこの発明の実施の形態１による数値制御装置、２はｘ，ｙ，ｚ軸の３軸構成によりなる工作機械、３はＣＡＤ／ＣＡＭ装置等から点列指令を含むＮＣプログラムを入力して記憶する点列指令入力部であり、この点列指令は、位置座標を表す点列あるいはこの点列を結ぶ線分列により指令される。４は前記点列指令入力部３から入力した点列指令を数点選択して評価範囲を設定する評価範囲設定部、５は前記評価範囲設定部４で設定された点列指令による軌跡の曲率評価値が小さくなるように点列指令の修正量を計算する修正量計算部、６は前記点列指令の修正量が最大許容誤差を越えないように前記点列指令の修正量を制限する修正量制限部である。この最大許容誤差は加工精度に応じてあらかじめ設定される。７は点列指令入力部３の点列指令の位置を前記修正量制限部６からの出力に応じて移動させる点列移動部、８は点列移動部７から出力される点列指令とＮＣプログラムで指令される速度指令に基づいて補間計算を行い、工作機械２の各軸（ｘ，ｙ，ｚ軸）の位置指令を計算しサンプリング周期ごとに出力する点列補間部、９は点列補間部８の出力する位置指令等に基づいて工作機械２を制御するサーボ制御部である。
【００３４】
また、工作機械２において、１０は工作機械２を駆動するモータ、１１は工作機械２の位置および速度を計測するエンコーダである。サーボ制御部９は、点列補間部８の出力と工作機械２のエンコーダ１１の計測値から位置制御、速度制御などの制御演算を行い、工作機械２のモータ１０に電力を供給する。
【００３５】
１２は実施の形態１の数値制御装置１の点列指令修正部であり、前記点列指令入力部３，評価範囲設定部４，修正量計算部５，修正量制限部６および点列移動部７を備えている。数値制御装置１は、１つあるいは複数のＣＰＵ（中央処理装置），メモリ，入出力インターフェイス等で構成されるコンピュータシステムにより実現されている。
【００３６】
図２は点列指令の１例を示す模式図である。点列指令Ｐi は３次元位置座標（Ｐｘi ，Ｐｙi ，Ｐｚi ）によりなる（ここで、ｉは点列指令のインデックス、ｉ＝１，２，・・，ｎであり、Ｐ1 は始点、Ｐn は終点である。）。
【００３７】
次に動作について説明する。
まず、数値制御装置１の点列指令修正部１２の動作を図３を用いて説明する。図３はこの発明の実施の形態１による数値制御装置１の点列指令修正部１２の動作を示すフローチャートである。図３に示す評価範囲設定部４は、連続する５点を評価範囲として設定する。
【００３８】
ステップＳＴ１は点列指令入力部３の処理であり、点列指令入力部３はＣＡＤ／ＣＡＭ装置等からＮＣプログラムを読み込み、点列指令Ｐ1 ，Ｐ2 ，・・，Ｐn をメモリに格納する。
【００３９】
ステップＳＴ２〜ステップＳＴ８は評価範囲設定部４の処理である。評価範囲設定部４は、連続する５点を評価範囲として設定する。すなわち、図２において修正を行う点をＰi としたとき、前記修正点Ｐi とその前後の各２点、Ｐi-2 ，Ｐi-1 ，Ｐi+1 ，Ｐi+2 が選択される。
【００４０】
ステップＳＴ２においては、点列指令Ｐi の最初の修正点として、インデックスｉが２に、すなわちＰ2 が設定される。ステップＳＴ３では、ｉ＝２ならステップＳＴ４に処理を進め、ｉ＝２でないならステップＳＴ５に処理を進める。ステップＳＴ５では、ｉ＝ｎ−１ならステップＳＴ６に処理を進め、ｉ＝ｎ−１でないならステップＳＴ７に処理を進める。ステップＳＴ７では、ｉ＝ｎ（Ｐn すなわち終点）ならステップＳＴ２４に、そうでないならステップＳＴ８に処理を進める。
【００４１】
ステップＳＴ４，６，８においては、前記修正点Ｐi とその前後の２点（Ｐi-2 ，Ｐi-1 ，Ｐi+1 ，Ｐi+2 ）の選択を行うが、前記ステップＳＴ４は点列指令の始点部での処理、前記ステップＳＴ６は点列指令の終点部での処理、前記ステップＳＴ８は始点部および終点部以外の処理である。
【００４２】
ステップＳＴ４においては点Ｐi-2 が、ステップＳＴ６においては点Ｐi+2 が存在しないため、ステップＳＴ４においては式（１０１）を用いて、ステップＳＴ６においては式（１０２）を用いて、点列指令を外挿する。
Ｐi-2 ＝２Ｐ0 −Ｐ1                 （１０１）
Ｐi+2 ＝２Ｐn −Ｐn-1               （１０２）
【００４３】
ステップＳＴ９は修正量計算部５の処理で、ステップＳＴ４、ステップＳＴ６、ステップＳＴ８で選択した前記５点から点Ｐi の修正量Ｅi を計算する。修正量Ｅi はｉ番目の点Ｐi の修正量で、Ｘ、Ｙ、Ｚ軸の修正量（ｅｘi ，ｅｙi ，ｅｚi ）からなるベクトルである。
【００４４】
図２の点列指令でＰi の修正量Ｅi を計算する方法を以下に示す。図４は点列指令の修正動作の説明図である。まず、図４に示すように、図２の点列指令から、式（１０３）〜（１０６）により線分ベクトルＳi-2 ，Ｓi-1 ，Ｓi ，Ｓi+1 を計算する。
Ｓi-2 ＝Ｐi-1 −Ｐi-2 
＝（Ｐｘi-1 −Ｐｘi-2 ，Ｐｙi-1 −Ｐｙi-2 
，Ｐｚi-1 −Ｐｚi-2 ）
＝（Ｓｘi-2 ，Ｓｙi-2 ，Ｓｚi-2 ）
（１０３）
Ｓi-1 ＝Ｐi −Ｐi-1 
＝（Ｐｘi −Ｐｘi-1 ，Ｐｙi −Ｐｙi-1 
，Ｐｚi −Ｐｚi-1 ）
＝（Ｓｘi-1 ，Ｓｙi-1 ，Ｓｚi-1 ）
（１０４）
Ｓi   ＝Ｐi+1 −Ｐi 
＝（Ｐｘi+1 −Ｐｘi ，Ｐｙi+1 −Ｐｙi 
，Ｐｚi+1 −Ｐｚi ）
＝（Ｓｘi ，Ｓｙi ，Ｓｚi ）
（１０５）
Ｓi+1 ＝Ｐi+2 −Ｐi+1 
＝（Ｐｘi+2 −Ｐｘi+1 ，Ｐｙi+2 −Ｐｙi+1 
，Ｐｚi+2 −Ｐｚi+1 ）
＝（Ｓｘi+1 ，Ｓｙi+1 ，Ｓｚi+1 ）
（１０６）
【００４５】
次に、図４に示すように、第１階差分ベクトル（差分ベクトル）ΔＳi-1 ，ΔＳi ，ΔＳi+1 を計算する。
ΔＳi-1 ＝Ｓi-1 −Ｓi-2 
＝（Ｓｘi-1 −Ｓｘi-2 ，Ｓｙi-1 −Ｓｙi-2 
，Ｓｚi-1 −Ｓｚi-2 ）
（１０７）
ΔＳi ＝Ｓi −Ｓi-1 
＝（Ｓｘi −Ｓｘi-1 ，Ｓｙi −Ｓｙi-1 
，Ｓｚi −Ｓｚi-1 ）
（１０８）
ΔＳi+1 ＝Ｓi+1 −Ｓi 
＝（Ｓｘi+1 −Ｓｘi ，Ｓｙi+1 −Ｓｙi 
，Ｓｚi+1 −Ｓｚi ）
（１０９）
【００４６】
図４の点列指令Ｐi-2 〜Ｐi+2 はほぼ等間隔に配置されているので、前記第１階差分ベクトルΔＳi-1 ，ΔＳi ，ΔＳi+1 はそれぞれ、点列指令軌跡Ｐi-2 〜Ｐi 間，Ｐi-1 〜Ｐi+1 間，Ｐi 〜Ｐi+2 間の曲率が大きい時は大きく、前記曲率が小さい時は小さい値となる。そこで前記差分ベクトルを曲率評価値として用いる。
【００４７】
修正点Ｐi を修正量Ｅi だけ移動させると式（１０７），（１０８），（１０９）の前記差分ベクトルは以下の式（１１０）〜（１１２）のようになる。ここで、修正後の前記差分ベクトルをΔＳi-1 ’、ΔＳi ’、ΔＳi+1 ’とする。
ΔＳi-1 ’＝（Ｓi-1 ＋Ｅi ）−Ｓi-2 
＝Ｐi −２Ｐi-1 ＋Ｐi-2 ＋Ｅi   （１１０）
ΔＳi ’＝（Ｓi −Ｅi ）−（Ｓi-1 ＋Ｅi ）
＝Ｐi+1 −２Ｐi ＋Ｐi-1 −２Ｅi   （１１１）
ΔＳi+1 ’＝Ｓi+1 −（Ｓi −Ｅi ）
＝Ｐi+2 −２Ｐi+1 ＋Ｐi ＋Ｅi   （１１２）
【００４８】
ここで式（１１０），（１１１），（１１２）の差分ベクトルにおいて大きな値を持つ差分ベクトルを小さくするため、前記差分ベクトルの各軸成分の２乗の和が最小となる修正量Ｅi （ｅｘi ，ｅｙi ，ｅｚi ）を計算する。まず、修正量Ｅi のｘ軸成分ｅｘi を求める方法を説明する。
【００４９】
前記差分ベクトルのｘ軸成分の２乗の和Ｊｘは下式（１１３）となる。
Ｊｘ＝（Ｐｘi −２Ｐｘi-1 ＋Ｐｘi-2 ＋ｅｘi ）2 
＋（Ｐｘi+1 −２Ｐｘi ＋Ｐｘi-1 −２ｅｘi ）2 
＋（Ｐｘi+2 −２Ｐｘi+1 ＋Ｐｘi ＋ｅｘi ）2 
（１１３）
【００５０】
式（１１３）はｅｘi の２次式であり、これが最小となるｅｘi を求めるためにＪｘ／ｅｘi ＝０とおき、ｅｘi について整理すると、
ｅｘi ＝−（Ｐｘi-2 −４Ｐｘi-1 ＋６Ｐｘi 
−４Ｐｘi+1 ＋Ｐｘi+2 ）／６
（１１４）
となる。ｙ軸，ｚ軸も同様にして計算すると、下式となる。
ｅｙi ＝−（Ｐｙi-2 −４Ｐｙi-1 ＋６Ｐｙi 
−４Ｐｙi+1 ＋Ｐｙi+2 ）／６
（１１５）
ｅｚi ＝−（Ｐｚi-2 −４Ｐｚi-1 ＋６Ｐｚi 
−４Ｐｚi+1 ＋Ｐｚi+2 ）／６
（１１６）
【００５１】
上記結果（１１４），（１１５），（１１６）をベクトルで表現すると次式となる。
Ｅi ＝−（Ｐi-2 −４Ｐi-1 ＋６Ｐi 
−４Ｐi+1 ＋Ｐi+2 ）／６
（１１７）
【００５２】
ステップＳＴ９では式（１１４），（１１５），（１１６）の計算が行われ、上記のようにして修正量Ｅi が求められる。
【００５３】
ステップＳＴ１０〜ステップＳＴ２１は修正量制限部６で行われる処理である。ステップＳＴ１０では式（１１４）で計算されたｘ軸の修正量ｅｘi の絶対値が、あらかじめ設定されている最大許容量ｅｍａｘより大きい場合にはステップＳＴ１１に処理を進め、小さい場合にはステップＳＴ１４に処理を進める。
【００５４】
ステップＳＴ１１ではｅｘi が負の場合はステップＳＴ１２に、それ以外はステップＳＴ１３に処理を進め、ステップＳＴ１２ではｅｘi ＝−ｅｍａｘとし、ステップＳＴ１３ではｅｘi ＝ｅｍａｘとして、ステップＳＴ１４に処理を進める。これにより、修正量ｅｘi の絶対値が最大許容量ｅｍａｘ以下に制限される。
【００５５】
ステップＳＴ１４〜ステップＳＴ１７においては前記ｘ軸成分の処理と同様に、ｙ軸成分の修正量ｅｙi を最大許容量ｅｍａｘ以下に制限する処理を行う。
【００５６】
ステップＳＴ１８〜ステップＳＴ２１においては前記ｘ軸成分の処理と同様に、ｚ軸成分の修正量ｅｚi を最大許容量ｅｍａｘ以下に制限する処理を行う。
【００５７】
ステップＳＴ２２では、上記ステップＳＴ９〜ステップＳＴ２１で計算した点Ｐi に対する修正量Ｅi をメモリに記憶する。ステップＳＴ２３では、ｉをインクリメントし、ステップＳＴ３に処理を戻す。
【００５８】
ステップＳＴ２４〜ステップＳＴ２７は点列移動部７の処理であり、まず、ステップＳＴ２４において点列移動部７は修正する点列指令の最初の点のインデックスｉを２に設定する。ステップＳＴ２５では終了判定を行い、ｉ＝ｎであれば処理を終了し、そうでないならステップＳＴ２６に処理を進める。ステップＳＴ２６においては前記Ｅi にゲインＫ０を乗じた量を点列指令Ｐi に加算して、点列指令Ｐi を移動する。前記ゲインＫ０は修正ゲインであり、０．３〜１．０程度の適切な値に設定する。通常は０．５を設定する。ステップＳＴ２７ではｉをインクリメントし、ステップＳＴ２５に処理を戻す。ステップＳＴ２５〜ステップＳＴ２７の処理はｉ＝ｎとなるまで繰り返され、以上で図３のフローチャートに示した処理が終了する。
【００５９】
図５は、図４の点列指令Ｐi が点列移動部７によりＥi だけ修正された後の様子を示す模式図である。差分ベクトルはΔＳi-1 ’，ΔＳi ’，ΔＳi+1 ’のように小さくなり、点列指令Ｐi による軌跡が滑らかになっている様子がわかる。
【００６０】
点列補間部８は点列移動部７で修正された点列指令Ｐi を速度指令に基づいて補間制御し、サーボ制御部９の各軸の位置指令を出力する。サーボ制御部９は前記位置指令により工作機械２を制御するが、この際に点列指令Ｐi が滑らかになるように修正されているため、滑らかな加工を実現することができる。
【００６１】
以上のように、この実施の形態１によれば、点列指令修正部１２に入力される点列指令Ｐi の修正点の前後の数点から曲率評価値である差分ベクトルを計算し、差分ベクトルの大きな値が小さくなるように点列指令を移動するため、点列指令Ｐi 全体を滑らかな軌跡に修正することができる。
【００６２】
また、円弧のような滑らかな軌跡を表現している点列指令Ｐi の場合は、曲率評価値として用いる複数の差分ベクトルの値がほぼ同じ値となり、点列指令の修正量が小さな値となる。そのため、前記円弧のような曲線においても適切な修正動作を実現することができる。
【００６３】
さらに、修正量の計算を式（１１４），（１１５），（１１６）のように少ない処理により実現することができる。
【００６４】
さらに、点列指令Ｐi の移動量を修正量制限部６で最大許容誤差内に制限しているため、修正による点列指令の位置誤差が必要以上に大きくならず、加工精度が保証された修正動作を実現することができる。
【００６５】
実施の形態２．
実施の形態１では評価範囲設定部４の選択する点列数が５点の場合を説明したが、この実施の形態２では、前記点列数が７点の場合について説明する。図６はこの発明の実施の形態２による数値制御装置の構成を示すブロック図であり、図において、１ａはこの実施の形態２の数値制御装置、４ａは実施の形態２の評価範囲設定部、５ａは実施の形態２の修正量計算部、１２ａは実施の形態２の点列指令修正部である。図１に示した実施の形態１の数値制御装置１との違いは、評価範囲設定部４ａと修正量計算部５ａの処理の相違のみである。
【００６６】
次に動作について説明する。
図７は実施の形態２の数値制御装置１ａの点列指令修正部１２ａの動作を示すフローチャートである。図７のステップＳＴ１〜ステップＳＴ２７は図３に示した実施の形態１における処理と同様であり、説明は省略する。
【００６７】
ステップＳＴ３，５，７、およびステップＳＴ４０〜ステップＳＴ４５は評価範囲設定部４ａの処理である。この実施の形態２の評価範囲設定部４ａは連続する７点を評価範囲として選択する。例えば、図２で修正を行う点をＰi としたとき、前記修正点Ｐi とその前後の各３点、Ｐi-3 ，Ｐi-2 ，Ｐi-1 ，Ｐi+1 ，Ｐi+2 ，Ｐi+3 を選択する処理が行われる。
【００６８】
ステップＳＴ４１では、ｉ＝３ならステップＳＴ４２に処理を進め、そうでないならステップＳＴ４３に処理を進める。ステップＳＴ４３ではｉ＝ｎ−２ならステップＳＴ４４に処理を進め、そうでないならステップＳＴ５に処理を進める。
【００６９】
ステップＳＴ４０，４２，４４，４５，４６では、前記修正点Ｐi と前後の３点（Ｐi-3 ，Ｐi-2 ，Ｐi-1 ，Ｐi+1 ，Ｐi+2 ，Ｐi+3 ）の選択を行うが、ステップＳＴ４０とステップＳＴ４２は点列指令の始点部での処理、ステップＳＴ４４とステップＳＴ４５は点列指令の終点部での処理、ステップＳＴ４６は始点部、終点部以外の処理である。
【００７０】
ステップＳＴ４０においては点Ｐi-2 と点Ｐi-3 が、ステップＳＴ４２においては点Ｐi-3 が、ステップＳＴ４４においては点Ｐi+3 が、ステップＳＴ４５においては点Ｐi+2 と点Ｐi+3 が存在しないため、次式を使って点列指令を外挿する。
ステップＳＴ４０
Ｐi-2 ＝Ｐ3 −３Ｐ2 ＋３Ｐ1             （２０１）
Ｐi-3 ＝３Ｐ3 −８Ｐ2 ＋６Ｐ1           （２０２）
ステップＳＴ４２
Ｐi-3 ＝Ｐ3 −３Ｐ2 ＋３Ｐ1             （２０３）
ステップＳＴ４４
Ｐi+3 ＝３Ｐn −３Ｐn-1 ＋Ｐn-2         （２０４）
ステップＳＴ４５
Ｐi+2 ＝３Ｐn −３Ｐn-1 ＋Ｐn-2         （２０５）
Ｐi+3 ＝６Ｐn −８Ｐn-1 −３Ｐn-2       （２０６）
【００７１】
ステップＳＴ４７は修正量計算部５ａの処理で、ステップＳＴ４０，４２，４４，４５，４６で選択した前記７点から点Ｐi の修正量Ｅi を計算する。修正量Ｅi はｉ番目の点列指令Ｐi の修正量であり、Ｘ、Ｙ、Ｚ軸の修正量（ｅｘi ，ｅｙi ，ｅｚi ）からなるベクトルである。図２の点列指令における点Ｐi の修正量Ｅi の計算方法を以下に示す。図８は点列指令修正部１２ａの点列指令の修正動作の説明図である。
【００７２】
まず、図８に示すように図２の点列指令から線分ベクトルＳi-3 ，Ｓi-2 ，Ｓi-1 ，Ｓi ，Ｓi+1 ，Ｓi+2 を計算する。Ｓi-2 ，Ｓi-1 ，Ｓi ，Ｓi+1 としては式（１０３），（１０４），（１０５），（１０６）を用い、Ｓi-3 およびＳi+2 としては次式を用いる。
Ｓi-3 ＝Ｐi-2 −Ｐi-3 
＝（Ｐｘi-2 −Ｐｘi-3 ，Ｐｙi-2 −Ｐｙi-3 
，Ｐｚi-2 −Ｐｚi-3 ）
＝（Ｓｘi-3 ，Ｓｙi-3 ，Ｓｚi-3 ）  （２０７）
Ｓi+2 ＝Ｐi+3 −Ｐi+2 
＝（Ｐｘi+3 −Ｐｘi+2 ，Ｐｙi+3 −Ｐｙi+2 
，Ｐｚi+3 −Ｐｚi+2 ）
＝（Ｓｘi+2 ，Ｓｙi+2 ，Ｓｚi+2 ）  （２０８）
【００７３】
次に、第１階差分ベクトルΔＳi-2 ，ΔＳi-1 ，ΔＳi ，ΔＳi+1 ，ΔＳi+2 を計算する。ΔＳi-1 ，ΔＳi ，ΔＳi+1 としては式（１０７），（１０８），（１０９）を用い、ΔＳi-2 およびΔＳi+2 としては次式を用いる。
ΔＳi-2 ＝Ｓi-2 −Ｓi-3 
＝（Ｓｘi-2 −Ｓｘi-3 ，Ｓｙi-2 −Ｓｙi-3 
，Ｓｚi-2 −Ｓｚi-3 ）
（２０９）
ΔＳi+2 ＝Ｓi+2 −Ｓi+1 
＝（Ｓｘi+2 −Ｓｘi+1 ，Ｓｙi+2 −Ｓｙi+1 
，Ｓｚi+2 −Ｓｚi+1 ）
（２１０）
【００７４】
次に、図８に示すような、第２階差分ベクトル（差分ベクトル）ΔΔＳi-2 ，ΔΔＳi-1 ，ΔΔＳi ，ΔΔＳi+1 を計算する。
ΔΔＳi-2 ＝ΔＳi-1 −ΔＳi-2 
＝Ｓi-1 −２Ｓi-2 ＋Ｓi-3       （２１１）
ΔΔＳi-1 ＝ΔＳi −ΔＳi-1 
＝Ｓi −２Ｓi-1 ＋Ｓi-2         （２１２）
ΔΔＳi   ＝ΔＳi+1 −ΔＳi 
＝Ｓi+1 −２Ｓi ＋Ｓi-1         （２１３）
ΔΔＳi+1 ＝ΔＳi+2 −ΔＳi+1 
＝Ｓi+2 −２Ｓi+1 ＋Ｓi         （２１４）
【００７５】
図４の点列指令Ｐi-3 〜Ｐi+3 はほぼ等間隔に配置されているので、前記第２階差分ベクトルΔΔＳi-2 ，ΔΔＳi-1 ，ΔΔＳi ，ΔΔＳi+1 はそれぞれ、点列指令軌跡Ｐi-3 〜Ｐi ，Ｐi-2 〜Ｐi+1 ，Ｐi-1 〜Ｐi+2 ，Ｐi 〜Ｐi+3 間の曲率の変化が大きい時は値が大きく、前記曲率の変化が小さい時は小さい値となる。ここでは前記第２階差分べクトルを曲率評価値として用いる。
【００７６】
修正点Ｐi を修正量Ｅi だけ移動させると、式（２１１），（２１２），（２１３）の前記差分ベクトルは以下のようになる。修正後の前記差分ベクトルを、ΔΔＳi-2 ’，ΔΔＳi-1 ’，ΔΔＳi ’，ΔΔＳi+1 ’とする。
ΔΔＳi-2 ’＝（Ｓi-1 ＋Ｅi ）−２Ｓi-2 ＋Ｓi-3 
（２１５）
ΔΔＳi-1 ’＝（Ｓi −Ｅi ）−２（Ｓi-1 ＋Ｅi ）
＋Ｓi-2                       （２１６）
ΔΔＳi ’＝Ｓi+1 −２（Ｓi −Ｅi ）＋（Ｓi-1 ＋Ｅi ）
（２１７）
ΔΔＳi+1 ’＝Ｓi+2 −２Ｓi+1 ＋（Ｓi −Ｅi ）
（２１８）
【００７７】
ここで、式（２１５），（２１６），（２１７），（２１８）の差分ベクトルΔΔＳi-2 ’，ΔΔＳi-1 ’，ΔΔＳi ’，ΔΔＳi+1 ’において、大きな値を持つ差分ベクトルを小さくする修正量Ｅi を求めるため、実施の形態１の式（１１３），（１１４）式と同様に、前記差分ベクトルの各軸成分の２乗の和が最小となる修正量Ｅi を計算すると、式（１１７）に対応した次式のような計算式が得られる。
Ｅi ＝−（−Ｐi-3 ＋６Ｐi-2 −１５Ｐi-1 ＋２０Ｐi 
−１５Ｐi+1 ＋６Ｐi+2 −Ｐi+3 ）／２０
（２１９）
【００７８】
ステップＳＴ４７においては式（２１９）により修正量Ｅi を計算する処理が行われる。
【００７９】
以上のように、この実施の形態２によれば、点列指令の評価範囲を長くして前記曲率評価値に高次の差分ベクトルを用いて修正量を計算することができ、点列指令全体をより滑らかな軌跡に修正することが可能となる。
【００８０】
実施の形態３．
実施の形態１の点列指令修正部１２、あるいは実施の形態２の点列指令修正部１２ａの動作は、点列指令の間隔がほぼ等間隔であれば有効に働くが、等間隔でない場合、前記差分ベクトルの曲率評価値と点列指令からなる軌跡の曲率との対応関係が悪くなり、修正動作が有効に働かなくなる傾向がある。そこで、この実施の形態３では、点列指令の間隔が等間隔でない場合にも点列指令の修正動作が有効に働くような点列指令修正部を持つ数値制御装置について説明する。
【００８１】
図９はこの発明の実施の形態３による数値制御装置の構成を示すブロック図であり、図において、１ｂはこの実施の形態３の数値制御装置、５ｂは実施の形態３の修正量計算部、１２ｂは実施の形態３の点列指令修正部である。図１に示した実施の形態１の数値制御装置１との違いは、修正量計算部５ｂの処理の相違のみである。
【００８２】
次に動作について説明する。
図１０はこの実施の形態３の数値制御装置１ｂの点列指令修正部１２ｂの動作を示すフローチャートである。図１０に示す処理は、図３に示した実施の形態１の処理におけるステップＳＴ９の代わりにステップＳＴ５０の処理を行うものである。
【００８３】
ステップＳＴ５０の処理は、図１１に示すように点列指令が等間隔でない場合にも有効な修正量を計算するものである。ここでは、評価範囲設定部４で選択される点が修正点Ｐi とその前後の各２点、Ｐi-2 ，Ｐi-1 ，Ｐi+1 ，Ｐi+2 の５点であるものとして修正量Ｅi を計算する場合について説明する。もちろん、実施の形態２のように前後各３点（計７点）を選択して修正量を計算する場合においても同様に適用できることは言うまでもない。
【００８４】
点列指令の修正量Ｅi の計算式は以下の手順で求める。まず、式（１０３），（１０４），（１０５）を用いて図１２に示すような線分ベクトルＳi-2 ，Ｓi-1 ，Ｓi ，Ｓi+1 を計算する。次に、前記線分ベクトルＳi-2 ，Ｓi-1 ，Ｓi ，Ｓi+1 の線分長Ｌi-2 ，Ｌi-1 ，Ｌi ，Ｌi+1 を次式により求める。
Ｌi-2 ＝ｓｑｒｔ（Ｓｘi-2 ＾２＋Ｓｙi-2 ＾２
＋Ｓｚi-2 ＾２）
（３０１）
Ｌi-1 ＝ｓｑｒｔ（Ｓｘi-1 ＾２＋Ｓｙi-1 ＾２
＋Ｓｚi-1 ＾２）
（３０２）
Ｌi ＝ｓｑｒｔ（Ｓｘi ＾２＋Ｓｙi ＾２＋Ｓｚi ＾２）
（３０３）
Ｌi+1 ＝ｓｑｒｔ（Ｓｘi+1 ＾２＋Ｓｙi+1 ＾２
＋Ｓｚi+1 ＾２）
（３０４）
【００８５】
次に、次式のような第１階差分ベクトルΔＷi-1 ，ΔＷi ，ΔＷi+1 を計算する。
ΔＷi-1 ＝Ｑi-1 Ｓi-1 −Ｒi-1 Ｓi-2 
＝（Ｑi-1 Ｓｘi-1 −Ｒi-1 Ｓｘi-2 ，
Ｑi-1 Ｓｙi-1 −Ｒi-1 Ｓｙi-2 ，
Ｑi-1 Ｓｚi-1 −Ｒi-1 Ｓｚi-2 ）
（３０５）
ΔＷi ＝Ｑi Ｓi −Ｒi Ｓi-1 
＝（Ｑi Ｓｘi −Ｒi Ｓｘi-1 ，
Ｑi Ｓｙi −Ｒi Ｓｙi-1 ，
Ｑi Ｓｚi −Ｒi Ｓｚi-1 ）
（３０６）
ΔＷi+1 ＝Ｑi+1 Ｓi+1 −Ｒi+1 Ｓi 
＝（Ｑi+1 Ｓｘi+1 −Ｒi+1 Ｓｘi ，
Ｑi+1 Ｓｙi+1 −Ｒi+1 Ｓｙi ，
Ｑi+1 Ｓｚi+1 −Ｒi+1 Ｓｚi ）
（３０７）
【００８６】
ここで、Ｑi-1 ，Ｒi-1 ，Ｑi ，Ｒi ，Ｑi+1 ，Ｒi+1 は前記線分ベクトルの重み係数であり、下式のように線分べクトルの長さを用いて計算する。
Ｑi-1 ＝２／｛Ｌi-1 （Ｌi-1 ＋Ｌi-2 ）｝
（３０８−１）
Ｒi-1 ＝２／｛Ｌi-2 （Ｌi-1 ＋Ｌi-2 ）｝
（３０８−２）
Ｑi ＝２／｛Ｌi （Ｌi ＋Ｌi-1 ）｝
（３０９−１）
Ｒi ＝２／｛Ｌi-1 （Ｌi ＋Ｌi-1 ）｝
（３０９−２）
Ｑi+1 ＝２／｛Ｌi+1 （Ｌi+1 ＋Ｌi ）｝
（３１０−１）
Ｒi+1 ＝２／｛Ｌi （Ｌi+1 ＋Ｌi ）｝
（３１０−２）
【００８７】
図１２に示すように、点列指令Ｐi-2 〜Ｐi+2 が不等間隔に配置されている場合でも、前記第１階差分ベクトルΔＷi-1 ，ΔＷi ，ΔＷi+1 は線分長に関する量により重み付けがなされているため、ΔＷi-1 ，ΔＷi ，ΔＷi+1 はそれぞれ、点列指令軌跡Ｐi-2 〜Ｐi 間，Ｐi-1 〜Ｐi+1 間，Ｐi 〜Ｐi+2 間の平均曲率に対応したベクトルとなる。ここではこの差分ベクトルを曲率評価値として用いる。
【００８８】
修正点Ｐi を修正量Ｅi だけ移動させると、式（３０５），（３０６），（３０７）の前記３つの差分ベクトルは以下のようになる。修正後の前記差分ベクトルをΔＷi-1 ’，ΔＷi ’，ΔＷi+1 ’とする。
ΔＷi-1 ’＝Ｑi-1 （Ｓi-1 ＋Ｅi ）−Ｒi-1 Ｓi-2 
（３１１）
ΔＷi ’＝Ｑi （Ｓi −Ｅi ）−Ｒi （Ｓi-1 ＋Ｅi ）
（３１２）
ΔＷi+1 ’＝Ｑi+1 Ｓi+1 −Ｒi+1 （Ｓi −Ｅi ）
（３１３）
【００８９】
ここで式（３１１），（３１２），（３１３）の差分ベクトルΔＷi-1 ’，ΔＷi ’，ΔＷi+1 ’において大きな値を持つ差分ベクトルを小さくする修正量Ｅi を求めるため、実施の形態１における式（１１３），（１１４）と同様に、前記差分ベクトルの各軸成分の２乗の和が最小となる修正量Ｅi を計算すると、式（１１７）に対応した次式のような計算式が得られる。
Ｅi ＝−（Ｋ1 Ｐi-2 ＋Ｋ2 Ｐi-1 ＋Ｋ3 Ｐi 
＋Ｋ4 Ｐi+1 ＋Ｋ5 Ｐi+2 ）／Ｋ6
（３１４）
ここで、
Ｋ1 ＝Ｑi-1 Ｒi-1 
Ｋ2 ＝−Ｑi-12−Ｑi-1 Ｒi-1 −Ｒi2＋Ｑi Ｒi 
Ｋ3 ＝Ｑi-12＋Ｑi2＋２Ｑi Ｒi ＋Ｒi2＋Ｒi+12
Ｋ4 ＝−Ｑi Ｒi ＋Ｑi+12−Ｑi+1 Ｒi+1 −Ｒi+12
Ｋ5 ＝Ｑi+1 Ｒi+1 
Ｋ6 ＝Ｑi-12＋Ｑi2＋２Ｑi Ｒi ＋Ｒi2＋Ｒi+12
（３１５）
である。
【００９０】
ステップＳＴ５０では式（３１４）により修正量Ｅi を計算する処理が行われる。
【００９１】
以上のように、この実施の形態３によれば、点列指令間の距離（線分長）に関する量により重み付けされた線分から求めた差分ベクトルを曲率評価値として用い、前記差分ベクトルの大きな値が小さくなるように点列指令を移動するため、点列指令が等間隔でない場合においても点列指令を滑らかにする良好な点列指令の修正を実現することができる。
【００９２】
実施の形態４．
前記実施の形態１および２、あるいは実施の形態３で用いた方法は、本来の軌跡の曲率変化が大きい場合や、点列間隔が大きい場合には十分な効果を得ることができない。そこで、この実施の形態４では、評価範囲内において曲率変化が大きいような場合に対しても、点列指令の修正動作が有効に働くような点列指令修正部を持つ数値制御装置について説明する。この方法の考え方は、本来の軌跡と同じあるいは類似する曲線を用いて、局所的に本来の曲線に当てはめることにより、誤差成分を取り除くことである。また、この方式によれば、点列指令が等間隔でない場合にも点列指令の修正動作が有効に働く。
【００９３】
図１３はこの発明の実施の形態４による数値制御装置の構成を示すブロック図であり、図において、１ｃは実施の形態４の数値制御装置、５ｃは実施の形態４の修正量計算部、１２ｃは実施の形態４の点列指令修正部である。図１に示した実施の形態１の数値制御装置１との違いは、修正量計算部５ｃの処理の相違のみである。
【００９４】
次に動作について説明する。
図１４は実施の形態４の数値制御装置１ｃの点列指令修正部１２ｃの動作を示すフローチャートである。点列指令修正部１２ｃの動作は、図３のステップＳＴ３，４，５，６，８の代わりにステップＳＴ６０を用い、図３のステップＳＴ９の代わりにステップＳＴ６１を用いる他は、図３に示した実施の形態１における動作と同様である。
【００９５】
以下、ステップＳＴ６０およびステップＳＴ６１の処理について述べる。その他の処理は図３処理と同様であり、説明を省略する。
【００９６】
まず、ステップＳＴ６０の処理について説明する。ステップＳＴ６０においては、点列の評価範囲を設定するが、実施の形態１と異なり、点の個数は固定ではなく、前方ｎｆ点、後方ｎｂ点（計１＋ｎｆ＋ｎｂ点）である。すなわち、この実施の形態では、選択する評価範囲の点の数は必ずしも固定である必要がなく、調節可能である。もちろん、簡単のため、実施の形態１のようにｎｆ＝ｎｂ＝２、あるいは実施の形態３のようにｎｆ＝ｎｂ＝３に固定するのは任意である。
【００９７】
一般に、点の数が増えれば、より広い範囲に曲線を当てはめるため、軌跡をより滑らかにする効果が得られる。ただし、評価範囲内の点の数は、曲線の次数＋２以上でないと、軌跡を滑らかにする効果がない。例えば、曲線の次数を２とすると、点の数は４以上である必要がある。
【００９８】
次に、ステップＳＴ６１の処理について説明する。ステップＳＴ６１においては、評価範囲内に、近似的な曲線を当てはめる。その曲線をＰ（ｔ）とおけば、修正量Ｅi は、
Ｅi ＝Ｐ（ｔi ）−Ｐi                 （４０１）
で与えられる。ここで、ｔは曲線パラメータ、ｔi はＰi に対応する曲線パラメータである。
【００９９】
ここで、曲線は、本来の軌跡と同じ種類の曲線を用いるのが最も適切である。例えば、設計者がＣＡＤによりデザインする際に４次の曲線を用いていれば、４次の曲線をあてはめることが最適である。しかし、仮に設計者が高次の曲線を用いて設計していても、現実のデザインとしては、局所的に見れば、低次の曲線に十分精度よく近似でき、また、モータを制御する観点からも、速度（曲線の１次微分に対応）や加速度（２次微分に対応）が連続であれば十分である。また、曲線が高次になればなるほど、計算量が多くなるという欠点もある。そのため、必要以上に高次の曲線を用いることは必ずしも適切ではない。すなわち、実際的には、２次や３次といった低次のスプライン曲線でほとんど十分である。逆に、１次の曲線（すなわち直線）を用いた場合には、軌跡を滑らかにする効果は期待できず、むしろ軌跡を必要以上に変形させてしまい、適当ではない。以下では、２次のスプライン曲線を用いた場合について述べる。２次のスプライン曲線は以下の式で与えられる。
Ｐ（ｔ）＝｛Ｘ（ｔ）Ｙ（ｔ）Ｚ（ｔ）｝    （４０２）
ここで、Ｘ（ｔ），Ｙ（ｔ），Ｚ（ｔ）は、それぞれ以下で与えられる。
Ｘ（ｔ）＝Ｃｘ2 ・ｔ2 ＋Ｃｘ1 ・ｔ＋Ｃｘ0 
（４０３）
Ｙ（ｔ）＝Ｃｙ2 ・ｔ2 ＋Ｃｙ1 ・ｔ＋Ｃｙ0 
（４０４）
Ｚ（ｔ）＝Ｃｚ2 ・ｔ2 ＋Ｃｚ1 ・ｔ＋Ｃｚ0 
（４０５）
【０１００】
図１５は２次スプライン曲線のあてはめの一例を示す模式図である。図においては、ｎｂ＝ｎｆ＝２であり、評価範囲であるＰi-2 ，Ｐi-1 ，Ｐi ，Ｐi+1 ，Ｐi+2 の計５点に対し、近似的な２次スプライン曲線を当てはめている。修正前のＰi が２次スプライン曲線上の対応する点に近づくように修正量Ｅi が求められる。
【０１０１】
式（４０３），（４０４），（４０５）において、Ｃｘ2 ，Ｃｘ1 ，Ｃｘ0 などの係数は、最小２乗法を用いて求めることができる。すなわち、Ｃｘ2 ，Ｃｘ1 ，Ｃｘ0 については、
｛Ｃｘ2 、Ｃｘ1 、Ｃｘ0 ｝’
＝［ｉｎｖ（Ａ’×Ａ）］×（Ａ’×ｂ）
（４０６）
（上式において、’は、行列の転置を意味する）
となる。ここで、Ａ，ｂは、次のように与えられる。
Ａ＝［ｆi-nb  ｆi-nb+1  …  ｆi   …  ｆi+nf-1  ｆi+nf］’
（４０７）
ｆi ＝｛ｔi2  ｔi   １｝’                （４０８）
ｂ＝｛Ｐｘi-nb  Ｐｘi-nb+1  …  Ｐｘi   …
…  Ｐｘi+nf-1  Ｐｘi+nf｝’    （４０９）
ここで、Ｐｘi はインデックスｉの点のｘ座標値である。
【０１０２】
Ｙ，Ｚ軸成分に関しても、同様に求められる。
図１６は、途中で曲率が変化するような軌跡に対して、この方法を適用した例を示すグラフ図である。修正前の点（×印で表示）においては、図中左側では曲率が大きく、図中右側では曲率が小さい。その境界あたり（図中中央付近）で曲率が変化しており、その箇所に段差状の誤差成分が観察できる。この方法を適用することにより、修正後の点（○印）は滑らかな軌跡になっていることがわかる。
以上では、２次のスプライン曲線を用いた場合について述べたが、３次以上の曲線、有理多項式で表される曲線、円弧や楕円などの曲線を用いても、同様に適用することができる。
【０１０３】
以上のように、この実施の形態４によれば、評価範囲内において曲率の変化や点列指令間の間隔の変化が大きいような点列指令に対しても、点列指令の修正動作を有効に働かせることができる。
【０１０４】
実施の形態５．
図１７はこの発明の実施の形態５による数値制御装置の構成を示すブロック図であり、図において、１ｄはこの実施の形態５の数値制御装置、７ｄは実施の形態５の点列移動部である。点列移動部７ｄは、点列指令入力部３の点列指令の位置を修正量制限部６の出力に応じて移動させるとともに、この移動させた点列指令を評価範囲設定部４に出力する。１２ｄは実施の形態５の点列指令修正部である。図１に示した実施の形態１の数値制御装置１との相違は、点列移動部７ｄにおける移動結果を評価範囲設定部４における次の評価範囲設定に用いることである。
【０１０５】
次に動作について説明する。
図１８はこの実施の形態５の数値制御装置１ｄの点列指令修正部１２ｄの動作を示すフローチャートである。図１８のステップＳＴ１〜ステップＳＴ２６の処理は図３のものと同様の処理であり、説明を省略する。
【０１０６】
図１８には、図３のステップＳＴ２２，２４，２５，２７の処理がなく、ステップＳＴ２６の処理がステップＳＴ１８とステップＳＴ２３の処理の間で行われる点が異なる。図１８のステップＳＴ２６で修正が行われた点列指令Ｐi を用いて、前記Ｐi の次の点Ｐi+1 の修正量の計算（ステップＳＴ３〜ステップＳＴ２１）が繰り返し行われる。
【０１０７】
以上のように、この実施の形態５によれば、修正された点列指令を用いて次の点列の修正計算を行うため、より滑らかな点列指令の修正を実現することができる。なお、上記においては、実施の形態１の方法を繰り返す場合について説明したが、実施の形態２，実施の形態３，あるいは実施の形態４の方法についても、ブロック図およびフローチャートに同様の変更を施すことにより、繰り返しによる性能の向上を図ることが可能である。
【０１０８】
実施の形態６．
いろいろな種類の軌跡が組み合わされた場合や、誤差成分が特定の箇所にのみ存在する場合に、より正確に誤差だけを取り除くためには、軌跡の種類や誤差の有無などの点列の性状に応じて、評価範囲や修正量計算方法を可変にできる効果がある。そこで、この実施の形態６においては、評価範囲や修正量計算方法を可変にできるような点列指令修正部を持つ数値制御装置について説明する。
【０１０９】
図１９はこの発明の実施の形態６による数値制御装置の構成を示すブロック図であり、図において、１ｅは実施の形態６の数値制御装置、１２ｅは実施の形態６の点列指令修正部、１３は入力された点列指令の軌跡の性状を判断する軌跡判断部である。図１に示した実施の形態１の数値制御装置１との相違は、軌跡判断部１３を含むことである。
【０１１０】
次に動作について説明する。
図２０は実施の形態６の数値制御装置１ｅの前記点列指令修正部１２ｅの軌跡判断部１３の動作を示すフローチャートである。ステップＳＴ８０では、誤差成分があるかどうかをチェックする。誤差成分があるかどうかは、実施の形態１で述べた第１階差分ベクトルにより判定する。
【０１１１】
誤差成分により、段差，突起，ガタガタなどが生じている箇所では，いずれも隣接する第１階差分ベクトルの方向が逆に向いている．そこで、加速度ベクトルの方向が逆を向いている箇所およびその周辺を誤差成分がある箇所とする。誤差成分がない場合には、滑らかにする必要がないため、評価範囲に含めない。誤差成分がある場合には、ステップＳＴ８１に処理を進める。
【０１１２】
ステップＳＴ８１では、点列の間隔をチェックする。間隔の判定は、適当な基準値を設定しておき、その値と比較することによる。点列の間隔が長い場合には、連続した曲線の一部とみなすことは適当ではないため、評価範囲に含めない。間隔が短い場合には、ステップＳＴ８２に処理を進める。
【０１１３】
ステップＳＴ８２では、コーナーかどうかをチェックする。コーナーかどうかは、実施の形態１で述べた第１階差分べクトルにより判定する。第１階差分ベクトルが大きな値を示す点が単独であり、かつ、その周辺の第１階差分ベクトルが小さい点を、コーナーとする。コーナーであれば、この点は、滑らかにするのではなく、厳密にコーナーを通過するべきなので、評価範囲に含めない。コーナーでなければ、ステップＳＴ８３に処理を進め、評価範囲に含める。
【０１１４】
評価範囲設定部４は、上記により判断された結果が「評価範囲に含める」であれば、入力された点を評価範囲に含め、逆に、判断された結果が「評価範囲に含めない」であれば、入力された点を評価範囲に含めない。
【０１１５】
さらに、引き続いて、ステップＳＴ８５に処理を進める。ステップＳＴ８５では、曲率が一定の区間かどうかをチェックする。曲率は、実施の形態１で述べた第１階差分ベクトルで代用する。曲率が一定でない場合は、ステップＳＴ８９に処理を進め、曲線をあてはめることによる方法を選択する。
【０１１６】
曲率が一定であれば、ステップＳＴ８６に処理を進める。ステップＳＴ８６では、評価範囲内の点列の間隔が均一かどうかを判断し、均一であれば、ステップＳＴ８７に処理を進め、１次差分による方法または２次差分による方法を選択し、均一でなければステップＳＴ８８に処理を進め、重み付き１次差分による方法または重み付き２次差分による方法を選択する。
【０１１７】
修正量計算部５は、ここで選択した方法により、修正量を計算する。なお、上記において、ステップＳＴ８０，８２，８５においては、第１階差分ベクトルを用いて軌跡の性状を判断したが、実施の形態３で述べた線分長さで重みづけされた第１階差分ベクトル（ΔＷi ）を用いてもよい。
【０１１８】
図２１は、評価範囲や修正量計算方法を固定にした場合の点列指令の修正結果を示す模式図である。図中、×印は修正前の点、＊印は誤差を含む修正前の点、○印は修正後の点、破線は修正前の点を結んだ線、実線は修正後の点を結んだ線を示す。この図においては、評価範囲や修正量計算方法を固定にしているため、次のような問題点が生じている。
（１）誤差のないコーナーの箇所も滑らかにしてしまい、内回りする（図中１の箇所）。
（２）誤差のない曲線の箇所も滑らかにしてしまい、わずかだが内回りする（図中２の箇所。図ではほとんどわからないが、点列間隔の数％程度内回りしている）。
（３）点列間隔の長い箇所の周辺では、形状が大きく崩れる場合がある（図中３の箇所）。
【０１１９】
図２２はこの実施の形態６における方法を適用した場合の点列指令の修正結果を示す模式図である。上記の方法を用いることにより、上記問題点がなくなり、必要な個所のみを的確に滑らかにすることが可能となっている。
【０１２０】
以上のように、この実施の形態６によれば、いろいろな種類の軌跡が組み合わされている場合や、誤差成分が特定の箇所にのみ存在するような場合にも、的確に誤差だけを取り除くことが可能となる。
【０１２１】
【発明の効果】
以上のように、この発明によれば、修正量計算部が、点列指令を通過する曲線の曲率に相当する曲率評価値を評価範囲内の複数箇所で計算するとともに、前記複数の曲率評価値の中で値の最も大きなものを小さくするように前記点列指令の修正量を計算するように構成したので、点列指令の修正において点列指令全体を滑らかにする有効な修正を行うことができ、工作機械による加工面を滑らかにし、工作機械に不必要な加速度が加わって工作機械を損傷するような事態を有効に防止することができる効果がある。
【０１２２】
この発明によれば、修正量計算部が、曲率評価値として、連続する点列指令を結ぶ線分ベクトルの１次または高次の変化量を示す差分ベクトルを用いるように構成したので、線分ベクトルの変化量を示す差分ベクトルの単純な計算を行うことにより、差分ベクトルの階数に応じた広い範囲の点列指令を用いて点列指令の修正量を計算することができ、点列指令全体をより滑らかにする有効な修正を行うことができる効果がある。また、円弧のような滑らかな軌跡を表現している点列指令の場合にも、従来の方法におけるように軌跡を劣化させることなく滑らかな点列指令を得ることができる効果がある。
【０１２４】
この発明によれば、修正量計算部における修正量を許容誤差値以下に制限する修正量制限部を備えるように構成したので、修正量計算部における点列指令の修正量が許容誤差以上の大きな値となって工作機械による加工不良や工作機械の損傷が発生する事態を防止することができる効果がある。
【０１２５】
この発明によれば、修正量計算部が、差分ベクトルとして、線分ベクトルの長さに関する量により重み付けされた線分ベクトルを用いて計算された差分ベクトルを用いるように構成したので、点列指令が等間隔でない場合においても点列指令を滑らかにする良好な点列指令の修正を実現することができる効果がある。
【０１２６】
この発明によれば、修正量計算部が、評価範囲内の点列指令に２次以上のスプライン曲線をあてはめ、そのスプライン曲線に近づくように前記点列指令の修正量を計算し、かつＮはスプライン曲線の次数に２を加算した値以上の整数であるように構成したので、評価範囲内において曲率の変化や点列指令間の間隔の変化が大きいような点列指令に対しても軌跡を劣化させることなく滑らかな点列指令が得られ、点列指令の修正を有効に行うことができる効果がある。
【０１２８】
この発明によれば、評価範囲内の点列指令に２次曲線をあてはめた修正量計算部における修正量を許容誤差値以下に制限する修正量制限部を備えるように構成したので、修正量計算部における点列指令の修正量が許容誤差以上の大きな値となって工作機械による加工不良や工作機械の損傷が発生する事態を防止することができる効果がある。
【０１３０】
この発明によれば、入力された点列指令からなる軌跡の性状を判断する軌跡判断部を備え、判断された前記軌跡の性状に応じて、評価範囲設定部において設定する前記評価範囲または修正量計算部における前記修正量計算方法を適宜変更するように構成したので、いろいろな種類の軌跡が組み合わされている場合や、誤差成分が特定の箇所にのみ存在するような場合にも、的確に誤差だけを取り除き、良好な点列指令の修正を行うことができる効果がある。
【０１３１】
この発明によれば、第３のステップが、点列指令を通過する曲線の曲率に相当する曲率評価値を評価範囲内の複数箇所で計算するとともに、前記複数の曲率評価値の中で値の最も大きなものを小さくするように前記点列指令の修正量を計算するように構成したので、点列指令の修正において点列指令全体を滑らかにする有効な修正を行うことができ、工作機械による加工面を滑らかにし、工作機械に不必要な加速度が加わって工作機械を損傷するような事態を有効に防止することができる効果がある。
【０１３２】
この発明によれば、第３のステップが、曲率評価値として、連続する点列指令を結ぶ線分ベクトルの１次または高次の変化量を示す差分ベクトルを用いるように構成したので、線分ベクトルの変化量を示す差分ベクトルの単純な計算を行うことにより、差分ベクトルの階数に応じた広い範囲の点列指令を用いて点列指令の修正量を計算することができ、点列指令全体をより滑らかにする有効な修正を行うことができる効果がある。また、円弧のような滑らかな軌跡を表現している点列指令の場合にも、従来の方法におけるように軌跡を劣化させることなく滑らかな点列指令を得ることができる効果がある。
【０１３４】
この発明によれば、第３のステップにおける修正量を許容誤差値以下に制限する第５のステップを有するように構成したので、第３のステップにおける点列指令の修正量が許容誤差以上の大きな値となって工作機械による加工不良や工作機械の損傷が発生する事態を防止することができる効果がある。
【０１３５】
この発明によれば、第３のステップが、差分ベクトルとして、線分ベクトルの長さに関する量により重み付けされた線分ベクトルを用いて計算された差分ベクトルを用いるように構成したので、点列指令が等間隔でない場合においても点列指令を滑らかにする良好な点列指令の修正を実現することができる効果がある。
【０１３６】
この発明によれば、第３のステップが、評価範囲内の点列指令に２次以上のスプライン曲線をあてはめ、そのスプライン曲線に近づくように前記点列指令の修正量を計算し、かつＮはスプライン曲線の次数に２を加算した値以上の整数であるように構成したので、評価範囲内において曲率の変化や点列指令間の間隔の変化が大きいような点列指令に対しても軌跡を劣化させることなく滑らかな点列指令が得られ、点列指令の修正を有効に行うことができる効果がある。
【０１３８】
この発明によれば、評価範囲内の点列指令に２次曲線をあてはめた第３のステップにおける修正量を許容誤差値以下に制限する第５のステップを有するように構成したので、第３のステップにおける点列指令の修正量が許容誤差以上の大きな値となって工作機械による加工不良や工作機械の損傷が発生する事態を防止することができる効果がある。
【０１４０】
この発明によれば、入力された点列指令からなる軌跡の性状を判断する第６のステップを有し、判断された前記軌跡の性状に応じて、第２のステップにおいて設定する前記評価範囲または第３のステップにおける前記修正量計算方法を適宜変更するように構成したので、いろいろな種類の軌跡が組み合わされている場合や、誤差成分が特定の箇所にのみ存在するような場合にも、的確に誤差だけを取り除き、良好な点列指令の修正を行うことができる効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１による数値制御装置の構成を示すブロック図である。
【図２】  点列指令の１例を示す模式図である。
【図３】  この発明の実施の形態１による数値制御装置の点列指令修正部の動作を示すフローチャートである。
【図４】  この発明の実施の形態１による数値制御装置の点列指令修正部の点列指令の修正動作の説明図である。
【図５】  図４の点列指令Ｐi が点列移動部によりＥi だけ修正された後の様子を示す模式図である。
【図６】  この発明の実施の形態２による数値制御装置の構成を示すブロック図である。
【図７】  この発明の実施の形態２による数値制御装置の点列指令修正部の動作を示すフローチャートである。
【図８】  この発明の実施の形態２による数値制御装置の点列指令修正部の点列指令の修正動作の説明図である。
【図９】  この発明の実施の形態３による数値制御装置の構成を示すブロック図である。
【図１０】  この発明の実施の形態３による数値制御装置の点列指令修正部の動作を示すフローチャートである。
【図１１】  等間隔でない点列指令を示す模式図である。
【図１２】  この発明の実施の形態３による数値制御装置の点列指令修正部の点列指令の修正動作の説明図である。
【図１３】  この発明の実施の形態４による数値制御装置の構成を示すブロック図である。
【図１４】  この発明の実施の形態４による数値制御装置の点列指令修正部の動作を示すフローチャートである。
【図１５】  実施の形態４における２次スプライン曲線のあてはめの一例を示す模式図である。
【図１６】  実施の形態４における点列指令の修正結果の例を示すグラフ図である。
【図１７】  この発明の実施の形態５による数値制御装置の構成を示すブロック図である。
【図１８】  この発明の実施の形態５による数値制御装置の点列指令修正部の動作を示すフローチャートである。
【図１９】  この発明の実施の形態６による数値制御装置の構成を示すブロック図である。
【図２０】  この発明の実施の形態６による数値制御装置の点列指令修正部の軌跡判断部の動作を示すフローチャートである。
【図２１】  評価範囲や修正量計算方法を固定にした場合の点列指令の修正結果を示す模式図である。
【図２２】  この発明の実施の形態６による数値制御装置の点列指令の修正結果を示す模式図である。
【符号の説明】
１，１ａ，１ｂ，１ｃ，１ｄ，１ｅ  数値制御装置、２  工作機械、３  点列指令入力部、４，４ａ  評価範囲設定部、５，５ａ，５ｂ，５ｃ  修正量計算部、６  修正量制限部、７，７ｄ  点列移動部、１３  軌跡判断部、Ｐi-3 ，Ｐi-2 ，Ｐi-1 ，Ｐi ，Ｐi+1 ，Ｐi+2 ，Ｐi+3 ，Ｐ1 〜Ｐn   点列指令、Ｓi-3 ，Ｓi-2 ，Ｓi-1 ，Ｓi ，Ｓi+1 ，Ｓi+2   線分ベクトル、ΔＳi-1 ，ΔＳi ，ΔＳi+1 ，ΔＳi-1 ’，ΔＳi ’，ΔＳi+1 ’，ΔＷi-1 ，ΔＷi ，ΔＷi+1   第１階差分ベクトル（差分ベクトル）、ΔΔＳi-2 ，ΔΔＳi-1 ，ΔΔＳi ，ΔΔＳi+1   第２階差分ベクトル（差分ベクトル）。
【図１】
0003640754.tif 000002
【図２】
0003640754.tif 000003
【図３】
0003640754.tif 000004
【図４】
0003640754.tif 000005
【図５】
0003640754.tif 000006
【図６】
0003640754.tif 000007
【図７】
0003640754.tif 000008
【図８】
0003640754.tif 000009
【図９】
0003640754.tif 000010
【図１０】
0003640754.tif 000011
【図１１】
0003640754.tif 000012
【図１２】
0003640754.tif 000013
【図１３】
0003640754.tif 000014
【図１４】
0003640754.tif 000015
【図１５】
0003640754.tif 000016
【図１６】
0003640754.tif 000017
【図１７】
0003640754.tif 000018
【図１８】
0003640754.tif 000019
【図１９】
0003640754.tif 000020
【図２０】
0003640754.tif 000021
【図２１】
0003640754.tif 000022
【図２２】
0003640754.tif 000023