(57)【要約】【課題】象限突起を補正する高精度な補正指令を簡易かつ短時間で算出する。【解決手段】数値制御工作機械１０の送り軸の移動方向反転時に生ずる象限突起を補正する象限突起補正方法において、数値制御工作機械のサーボモータで駆動される送り軸の所定区間を繰り返し駆動して位置偏差を求め、該位置偏差に基づいて学習制御を行うことにより、サーボモータに入力される指令に付加されるべき、象限突起を補正する補正指令を作成し、補正指令は立ち上がり部分と立ち下がり部分とを少なくとも含んでおり、立ち上がり部分は、単一の直線Ｃｖ１または単一のアークタンジェント曲線Ｃｖ４で近似されると共に、立ち下がり部分は、少なくとも一つの指数関数曲線Ｃｖ３で近似される。【選択図】図３
2012093982.tif 000002
【特許請求の範囲】
【請求項１】
数値制御工作機械の送り軸の移動方向反転時に生ずる象限突起を補正する象限突起補正方法において、
数値制御工作機械のサーボモータで駆動される前記送り軸の所定区間を繰り返し駆動して位置偏差を求め、
該位置偏差に基づいて学習制御を行うことにより、前記サーボモータに入力される指令に付加されるべき、前記象限突起を補正する補正指令を作成し、
前記補正指令は立ち上がり部分と立ち下がり部分とを少なくとも含んでおり、前記立ち上がり部分は、単一の直線または単一のアークタンジェント曲線で近似されると共に、前記立ち下がり部分は、少なくとも一つの指数関数曲線で近似される、ことを特徴とする象限突起補正方法。
【請求項２】
前記補正指令は、前記立ち上がり部分と前記立ち下がり部分との間にさらに頂上部分を含んでおり、前記頂上部分は、値が一定の直線部分により近似されるようにした、請求項１に記載の象限突起補正方法。
【請求項３】
前記補正指令は、前記立ち上がり部分と前記立ち下がり部分との間にさらに頂上部分を含んでおり、前記立ち上がり部分と前記頂上部分とが単一のアークタンジェント曲線で近似されるようにした、請求項１に記載の象限突起補正方法。
【請求項４】
前記補正指令の前記立ち下がり部分は、互いに連続する二つの指数関数曲線で近似されており、前記二つの指数関数曲線の間の交点は、これら二つの指数関数曲線と、前記立ち下がり部分の理想曲線との間の差の二乗の和が最小になるように求められる、請求項１から３のいずれか一項に記載の象限突起補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御工作機械の送り軸の移動方向が反転する際に生じる象限突起を補正する象限突起補正方法に関する。
【背景技術】
【０００２】
工作機械は一つ以上の直動軸および／または回転送り軸（以下、これら直動軸および回転送り軸を単に「送り軸」と呼ぶ場合がある）を含んでおり、これら送り軸を駆動するためのモータは数値制御装置により制御されている。工作機械においては、ワークの加工処理内容に応じて異なる工具が取付けられ、また、ワークを工作機械に取付けるための治具もワークに応じて使用される。
【０００３】
このような工作機械において、ワークが設置された作業台または工具を互いに垂直な二つの方向に移動させることにより、ワークを例えば円弧状軌跡に沿って移動させることが行われている。このような加工を行う場合には、一方の送り軸に関するサーボモータを動作させつつ、他方の送り軸に関するサーボモータを瞬間的に停止させて再動作させる場合がある。
【０００４】
これにより、他方のサーボモータの出力軸は、動摩擦状態から静止摩擦状態を経て再び動摩擦状態になる。さらに、サーボモータの反転時にはサーボモータの伝達系におけるバックラッシや弾性変形の影響を受ける。このため、他方のサーボモータの動作に応答遅れが生じ、これが象限突起Ｐとして実測値に出現する。それゆえ、ワークを例えば円弧に沿って切削加工する場合には、ワークが象限突起Ｐに対応する切削箇所において過剰に切削されるなどの問題が発生する。
【０００５】
このような問題を解決するために、特許文献１は、学習制御（「繰返し制御」とも呼ぶ）を行うことにより象限突起Ｐを補正する補正データを作成することを開示している。具体的には、特許文献１では補正データを解析して、関数近似した第二の補正データを作成し、速度指令を第二の補正データで補正して、サーボモータを駆動制御している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３８０５３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１においては、第二の補正データは単に関数近似されたとしか開示されておらず、第二の補正データを具体的にどのように算出するかまでは開示されていない。
【０００８】
通常、象限突起Ｐは立ち上がり部分を立ち下がり部分とを少なくとも含んだ凸状である。従って、象限突起Ｐを複数の直線で近似するのが最も容易でかつ短時間で足りる。しかしながら、実際の象限突起Ｐは極めて多数の曲線で構成されているので、象限突起Ｐを複数の直線で近似する場合には誤差が大きくなる。このため、補正指令を作成したとしても、象限突起Ｐは部分的に残る可能性が高い。
【０００９】
また、補正指令は実際の象限突起Ｐを完全に解消できるように作成するのが望ましい。しかしながら、象限突起Ｐは極めて多数の曲線で構成されているので、象限突起Ｐに完全に一致する補正指令を作成すると、そのデータ量は極めて膨大になり、そのような補正指令を作成するのにもかなりの時間を要する。このため、象限突起Ｐを完全に解消する補正指令の作成は現実的でない。
【００１０】
本発明はこのような事情に鑑みてなされたものであり、象限突起を補正する高精度な補正指令を簡易かつ短時間で算出することのできる象限突起補正方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前述した目的を達成するために１番目の発明によれば、数値制御工作機械の送り軸の移動方向反転時に生ずる象限突起を補正する象限突起補正方法において、数値制御工作機械のサーボモータで駆動される前記送り軸の所定区間を繰り返し駆動して位置偏差を求め、該位置偏差に基づいて学習制御を行うことにより、前記サーボモータに入力される指令に付加されるべき、前記象限突起を補正する補正指令を作成し、前記補正指令は立ち上がり部分と立ち下がり部分とを少なくとも含んでおり、前記立ち上がり部分は、単一の直線または単一のアークタンジェント曲線で近似されると共に、前記立ち下がり部分は、少なくとも一つの指数関数曲線で近似される、ことを特徴とする象限突起補正方法が提供される。
【００１２】
２番目の発明によれば、１番目の発明において、前記補正指令は、前記立ち上がり部分と前記立ち下がり部分との間にさらに頂上部分を含んでおり、前記頂上部分は、値が一定の直線部分により近似されるようにした。
【００１３】
３番目の発明によれば、１番目の発明において、前記補正指令は、前記立ち上がり部分と前記立ち下がり部分との間にさらに頂上部分を含んでおり、前記立ち上がり部分と前記頂上部分とが単一のアークタンジェント曲線で近似されるようにした。
【００１４】
４番目の発明によれば、１番目から３番目のいずれかの発明において、前記補正指令の前記立ち下がり部分は、互いに連続する二つの指数関数曲線で近似されており、前記二つの指数関数曲線の間の交点は、これら二つの指数関数曲線と、前記立ち下がり部分の理想曲線との間の差の二乗の和が最小になるように求められる。
【発明の効果】
【００１５】
１番目の発明においては、象限突起を補正する補正指令の立ち上がり部分を単一の直線または単一のアークタンジェント曲線で近似すると共に、立ち下がり部分を少なくとも一つの指数関数曲線で近似している。従って、直線のみで近似されている場合よりも、高精度な補正指令を作成でき、また、多数の曲線で近似されている場合よりも、補正指令を簡易かつ短時間で作成できる。
【００１６】
２番目の発明においては、極めて簡易な手法により、さらに高精度な補正指令を作成できる。なお、立ち上がり部分が単一の直線で近似されている場合には、立ち上がり部分の単一の直線に接続するように、頂上部分の直線部分を作成するのが有利である。
【００１７】
３番目の発明においては、２番目の発明よりも、さらに高精度な補正指令を作成できる。
【００１８】
４番目の発明においては、さらに高精度な補正指令を作成できる。４番目の発明は、補正指令の立ち下がり部分が台形状である場合に特に有利である。
【図面の簡単な説明】
【００１９】
【図１】本発明の数値制御工作機械の概略図である。
【図２】本発明の数値制御工作機械を制御するサーボ制御部の構成ブロック線図である。
【図３】象限突起の補正指令を示す図である。
【図４】補正指令の立ち上がり部分および頂上部分を近似する近似線を算出するためのフローチャートである。
【図５】（ａ）〜（ｃ）立ち上がり部分の近似線を算出するための、時間と速度との関係を示す図である。（ｄ）理想曲線と近似線との間の差の二乗の和と時間との関係を示す図である。
【図６】補正指令の立ち下がり部分を近似する近似線を算出するためのフローチャートである。
【図７】（ａ）〜（ｃ）立ち下がり部分の近似線を算出するための、時間と速度との関係を示す図である。
【図８】補正指令の他の例を示す図３と同様な図である。
【図９】補正指令の立ち下がり部分を近似する近似線を算出するための他のフローチャートである。
【図１０】立ち上がり部分と頂上部分との近似線を示す図である。
【発明を実施するための形態】
【００２０】
以下、添付図面を参照して本発明の実施形態を説明する。以下の図面において同様の部材には同様の参照符号が付けられている。理解を容易にするために、これら図面は縮尺を適宜変更している。
【００２１】
図１は本発明の数値制御工作機械の概略図である。図１において、数値制御工作機械１０は所謂横形マシニングセンタであり、工場等の床面に設置されるベッド１２を具備している。ベッド１２の上面には、Ｚ軸ガイドレール２８が水平なＺ軸方向（図１において左右方向）に延設されており、Ｚ軸ガイドレール２８には、ワーク用ジグＧを介してワークＷを固定するためのテーブル１４が摺動自在に取り付けられている。図１は、テーブル１４上にＢ軸方向に回転送り可能なＮＣロータリテーブルを固定し、その上にワークＷを積載している例を示しているが、ＮＣロータリテーブルを介在させることなくテーブル１４上に直接ワークＷを積載しても良い。
【００２２】
ベッド１２の上面には、更に、Ｘ軸ガイドレール３６がＺ軸に直交し、かつ水平なＸ軸方向（図１の紙面に垂直方向）に延設されており、Ｘ軸ガイドレール３６にはコラム１６が摺動自在に取り付けられている。コラム１６においてワークＷに対面する前面には、Ｘ軸およびＺ軸に直交するＹ軸方向（図１において上下方向）にＹ軸ガイドレール３４が延設されており、Ｙ軸ガイドレール３４には、主軸２０を回転自在に支持する主軸頭１８が摺動自在に取り付けられている。
【００２３】
ベッド１２内においてテーブル１４の下側にはＺ軸送りねじ２４がＺ軸方向に延設されており、テーブル１４の下面にはＺ軸送りねじ２４に螺合するナット２６が固定されている。Ｚ軸送りねじ２４の一端にはＺ軸送りサーボモータＭｚが連結されており、Ｚ軸送りサーボモータＭｚを駆動しＺ軸送りねじ２４を回転させることにより、テーブル１４はＺ軸ガイドレール２８に沿って移動する。同様にベッド１２内においてコラム１６の下側にはＸ軸送りねじ（図示せず）がＸ軸方向に延設されており、コラム１６の下面には前記Ｘ軸送りねじに螺合するナット（図示せず）が固定されている。
【００２４】
前記Ｘ軸送りねじの一端にはＸ軸送りサーボモータＭｘが連結されており、Ｘ軸送りサーボモータＭｘを駆動し前記Ｘ軸送りねじを回転させることにより、コラム１６はＸ軸ガイドレール３６に沿って移動する。更に、コラム１６内にはＹ軸送りねじ３２がＹ軸方向に延設されており、主軸頭１８の背面にはＹ軸送りねじ３２に螺合するナット３０が固定されている。Ｙ軸送りねじ３２の上端にはＹ軸送りサーボモータＭｙが連結されており、Ｙ軸送りサーボモータＭｙを駆動しＹ軸送りねじ３２を回転させることにより、主軸頭１８はＹ軸ガイドレール３４に沿って移動する。
【００２５】
主軸２０の先端には工具２２、例えばエンドミルが装着されている。工具２２を回転させながら、コラム１６、主軸頭１８、テーブル１４を各々Ｘ軸、Ｙ軸、Ｚ軸方向に動作させることにより、テーブル１４に固定されたワークＷを所望形状に切削加工する。ＮＣロータリテーブルが固定されている場合、数値制御工作機械１０は、更にＢ軸を有する４軸の数値制御工作機械と言える。
【００２６】
数値制御工作機械１０は、コラム１６、主軸頭１８、テーブル１４のＸ軸、Ｙ軸、Ｚ軸方向に移動させるＸ軸、Ｙ軸、Ｚ軸送りサーボモータＭｘ、Ｍｙ、Ｍｚを制御する数値制御部４０を具備している。ＮＣロータリテーブルを有する場合には、Ｂ軸送りサーボモータ（図示せず）を具備している。
【００２７】
数値制御部４０は、ＮＣプログラム４２を読み取りこれを解釈するプログラム読取解釈部４４、解釈されたプログラムを一時的に記憶する解釈済みプログラム記憶部４６、解釈済みプログラム記憶部４６からプログラムを適宜引き出して実行プログラムデータを発するプログラム実行指令部４８、プログラム実行指令部４８からの実行プログラムデータに基づいてＸ軸、Ｙ軸、Ｚ軸の各々への位置指令値、速度指令値、トルク指令値を発する分配制御部５０、分配制御部５０からの位置指令値、速度指令値、トルク指令値および後述するフィードバック信号に基づいて送り軸モータ駆動部５４へトルク指令値または電流指令値を発するサーボ制御部５２を含んでいる。なお、Ｂ軸についても同様に、分配制御部５０がＢ軸への位置指令値、角速度指令値、角加速度指令値等を発する。
【００２８】
送り軸モータ駆動部５４は、サーボ制御部５２からのトルク指令値または電流指令値に基づき電流を出力してＸ軸、Ｙ軸、Ｚ軸の各々の送り軸モータＭｘ、Ｍｙ、Ｍｚを駆動する。更に、本実施形態では、サーボ制御部５２から送り軸モータ駆動部５４へのトルク指令値または電流指令値を補正する演算制御部５６が設けられている。演算制御部５６は、後述する各種の処理を行う役目を果たす。
【００２９】
図２は本発明の数値制御工作機械を制御するサーボ制御部の構成ブロック線図である。図２に示されるように、テーブル１４に取り付けたデジタル直線スケール等の位置検出器ＳＰの位置フィードバック信号が、分配制御部５０から出力された位置指令値から減算器５８にて減算される。これにより得られた位置偏差に位置ゲインが乗算されて、速度指令および／またはトルク指令が作成される。これらは、送り軸モータ駆動部５４を通じて、制御対象であるサーボモータＭ、およびサーボモータＭにより駆動されるテーブル１４に供給される。
【００３０】
また、図２に示される位置ループ制御系には、学習制御部６６が追加されている。学習制御部６６は、位置偏差に基づいて補正指令Ｃａを作成し、加算器６２において速度指令および／またはトルク指令に追加する。図面には示さないものの、学習制御部６６は位置偏差を順次格納する記憶部を含んでおり、繰り返し指令される周期１周期前の位置偏差に基づいて補正した位置偏差を求め、これに位置ゲインを乗算して、速度指令および／またはトルク指令のための補正指令Ｃａを作成する。
【００３１】
学習制御部６６は周知であり、このような学習制御を繰り返すことによって位置偏差がゼロに収束するようになる。しかしながら、実際の補正指令にはノイズが含まれており、また処理を簡潔にするために、補正指令を近似処理するのが好ましい。
【００３２】
図３は象限突起の補正指令を示す図である。図３においては縦軸（ｙ軸）は速度Ｖを示しており、横軸は時間を示している。なお、図３における原点の時間ｔｃは、分配制御部５０から出力される指令が反転開始したときの時間を表している。また、時間ｔａは速度Ｖがゼロのときの反転前の時間である。
【００３３】
図３に示されるように、補正指令は凸状の理想曲線Ｒで表されており、立ち上がり部分と頂上部分と立ち下がり部分とを主に含んでいる。本発明では、理想曲線Ｒの立ち上がり部分と頂上部分と立ち下がり部分とをそれぞれ近似線で近似処理し、それにより、象限突起を補正する補正指令を容易かつ短時間で算出するものである。以下においては、サーボモータの速度に関する補正指令について説明するが、トルク指令に関する補正指令を作成する場合も概ね同様である。
【００３４】
図４は、補正指令の立ち上がり部分および頂上部分を近似する近似線を算出するためのフローチャートである。さらに、図５（ａ）〜図５（ｃ）は、立ち上がり部分の近似線を算出するための、時間と速度との関係を示す図である。また、図５（ｄ）は、理想曲線Ｒと近似線との間の差の二乗の和と時間との関係を示す図である。以下、これら図面を参照しつつ、立ち上がり部分および頂上部分を近似する近似線の算出について説明する。
【００３５】
はじめに、図４のステップＳ１１において、サーボモータが反転開始する時間ｔｃと速度が最大となる時間ｔｅとを理想曲線Ｒから決定する。図３から分かるように、時間ｔｃは図３の原点であり、また、時間ｔｅは理想曲線Ｒが最大となるときの時間である。
【００３６】
次いで、ステップＳ１２においては、時間ｔｃと時間ｔｅとの間の時間ｔｉ（ｉは自然数）に基づいて、立ち上がり部分の近似線Ｃｖ１および頂上部分の近似線Ｃｖ２を算出する。
【００３７】
はじめに、図５（ａ）に示されるように、時間ｔｃに最小単位時間を加えた時間ｔｉを設定する。そして、時間ｔｉにおける理想曲線Ｒの値と、時間ｔｃにおける速度Ｖａとを結ぶ線分Ｃｖ１（ｙ＝ａｔ＋ｂ）を算出する。さらに、時間ｔｉと時間ｔｅとの間で、速度Ｃｖ１（ｔｉ）が一定となる線分を引く。この線分は頂上部分を近似す近似線Ｃｖ２（ｙ＝ｃ）である。その後、時間ｔｉと時間ｔｅとの間で、理想曲線Ｒと速度Ｃｖ１（ｔｉ）との間の偏差ｅｒｒを算出する。
【００３８】
次いで、ステップＳ１３において、時間ｔｉが時間ｔｅ以上になったか否かを判定し、時間ｔｉが時間ｔｅ以上でない場合には、ステップＳ１４に進む。ステップＳ１４においては、ｉを最小時間だけインクリメントし、新たな時間ｔｉを設定してステップＳ１２に戻る。
【００３９】
図５（ｂ）に示されるように、新たな時間ｔｉにおいて前述したのと同様に近似線Ｃｖ１、Ｃｖ２を算出する。そして、時間ｔｉが時間ｔｅに一致するまで（図５（ｃ）を参照されたい）、ステップＳ１２からステップＳ１４の処理を繰り返すものとする。
【００４０】
その後、ステップＳ１５においては、時間ｔｃと時間ｔｅとの間で設定された時間ｔｉのそれぞれにおける偏差ｅｒｒの二乗の和（Σｅｒｒ２）を算出する。図５（ｄ）に示されるように、二乗の和（Σｅｒｒ２）は下に凸な関数となり、その最小値に対応する時間ｔｉを切替時間ｔｄとして設定する（ステップＳ１６）。
【００４１】
最終的に、ステップＳ１７においては、切替時間ｔｄにおける近似線Ｃｖ１、Ｃｖ２を選択し、正式な近似線として決定する。このようにして理想曲線Ｒの立ち上がり部分および頂上部分に対応する近似線Ｃｖ１（ｙ＝ａｔ＋ｂ）、Ｃｖ２（ｙ＝ｃ）が求められる。
【００４２】
図６は、補正指令の立ち下がり部分を近似する近似線を算出するためのフローチャートである。また、図７（ａ）〜図７（ｃ）は、立ち下がり部分の近似線を算出するための、時間と速度との関係を示す図である。以下、これら図面を参照しつつ、立ち下がり部分を近似する近似線の算出について説明する。
【００４３】
はじめに、図６のステップＳ２１において、既に得られた近似線Ｃｖ２と理想曲線Ｒとの交点に対応する時間ｔｆを算出する。次いで、ステップＳ２２においては、近似線Ｃｖ２の既知の変数ｃに０．３６８を乗算し、その値に対応する時間ｔσ０を算出する（図７（ａ）を参照されたい）。なお、数値０．６３８は、一次遅れ要素の単位ステップ応答について、自然対数ｅから定まる値（１／ｅ）である。
【００４４】
次いで、ステップＳ２３においては、図７（ａ）に示されるように、時間ｔｆと理想曲線Ｒとの交点、および時間ｔσ０と理想曲線Ｒとの交点を結ぶ線分（ｙ＝αｔ＋β）を算出する。さらに、σ０＝α／βを算出し（ステップＳ２４）、理想曲線Ｒとｔ軸との交点における時間ｔｇを求める（ステップＳ２５）。
【００４５】
その後、ステップＳ２６においては、時間ｔｆと時間ｔｇとの間における理想曲線Ｒのデータに基づいて、公知の偏分反復法によりΔσｊ（ｊはゼロ以上の整数）を以下の式（１）から計算する。なお、式（１）におけるＶｃｏｕｔは、時間ｔσ０における理想曲線Ｒの値である。
【数１】
2012093982.tif 000003
【００４６】
式（１）に基づいて算出されたΔσ０は、σ０に加算され、σ１（＝σ０＋Δσ０）が求められる。図７（ｂ）に示されるように、σ１はσ０よりも理想曲線Ｒに近い曲線である。また、Δσがゼロに近いほど、σｊは理想曲線Ｒに近づくので、図６のステップＳ２７において、Δσｊがゼロに近いか、あるいはΔσｊが微小な所定値よりも小さいか否かが判定される。Δσｊがゼロに近くない場合には、ステップＳ２８に進んで、ｊに「１」を加算して、新たなΔσｊを算出する。そして、Δσｊが概ねゼロになるまで、ステップＳ２６〜Ｓ２８の処理を繰り返す。
【００４７】
最終的に、ステップＳ２９において、ゼロに近いΔσｊに基づいて、近似線Ｃｖ３を以下の式（２）に基づいて定める。このようにして理想曲線Ｒの立ち下がり部分に対応する近似線Ｃｖ３が求められる。
【数２】
2012093982.tif 000004
【００４８】
このように、本発明においては、理想曲線Ｒの補正指令の立ち上がり部分を単一の直線Ｃｖ１で近似すると共に、立ち下がり部分を単一の指数関数曲線Ｃｖ３で近似している。そして、このようにして近似された補正指令を作成している。従って、直線のみで近似されている場合よりも、高精度な補正指令を作成できる。さらに、本発明では、多数の曲線で近似されている場合よりも、補正指令を簡易かつ短時間で作成することができる。
【００４９】
さらに、本発明では、立ち上がり部分の近似直線Ｃｖ１に接続する一定値の直線（Ｃｖ２）により理想曲線Ｒの頂上部分を近似している。従って、頂上部分を含んだ理想曲線Ｒ全体を極めて簡易な手法により近似でき、その結果、さらに高精度な補正指令を作成できるのが分かるであろう。
【００５０】
ところで、図８は、補正指令の他の例を示す図３と同様な図である。図８においては、補正指令の立ち下がり部分が台形状になっている。このような場合には、理想曲線Ｒの立ち下がり部分を単一の近似線Ｃｖ３で近似するよりも二つの近似線Ｃｖ３１、Ｃｖ３２を用いて近似したほうが好ましい。図９は、補正指令の立ち下がり部分を近似する近似線を算出するための他のフローチャートであり、以下、これら図８および図９を参照して、単一または二つの近似線を算出する場合について説明する。
【００５１】
はじめに、図９のステップＳ３１に示されるように、時間ｔｆと時間ｔｉとの間のデータに基づいて近似線Ｃｖ３１を算出する。また、時間ｔｉと時間ｔｇとの間のデータに基づいて近似線Ｃｖ３２を算出する。近似線Ｃｖ３１、Ｃｖ３２の算出手法は図６を参照して説明した通りであり、ここでは、時間ｔｉを時間ｔσ０として近似線Ｃｖ３１、Ｃｖ３２を算出する。
【００５２】
そして、ステップＳ３２において、時間ｔｉと時間ｔｇとを比較し、時間ｔｉが時間ｔｇより大きい場合には、ステップＳ３３に進んでｉを最小時間だけインクリメントし、新たな時間ｔｉを設定してステップＳ３１に戻る。このようにして時間ｔｆと時間ｔｇとの間の全ての時間ｔｉについて近似線Ｃｖ３１、Ｃｖ３２を算出する。
【００５３】
そして、図４を参照して説明したのと同様に、ステップＳ３４において、各時間ｔｉにおける近似線Ｃｖ３１、Ｃｖ３２と理想曲線Ｒとの間の差（ｅｒｒ）の二乗の和（Σｅｒｒ２）を算出する。次いで、二乗の和（Σｅｒｒ２）の最小値に対応する時間ｔｉを決定する（ステップＳ３５）。
【００５４】
次いで、ステップＳ３６において、近似線Ｃｖ３１を求めるのに十分なデータ数があるかないかが判定される。十分なデータ数がない場合（ＹＥＳ）には、立ち下がり部分を単一の近似線Ｃｖ３２で近似して問題無いため、ステップＳ３７においてそのように処理する。
【００５５】
これに対し、ステップＳ３６において、十分なデータ数がある場合（ＮＯ）には、ステップＳ３８で、さらに近似線Ｃｖ３２を求めるのに十分なデータ数があるかないかが判定される。十分なデータ数がない（ＹＥＳ）場合には、立ち下がり部分を単一の近似線Ｃｖ３１で近似して問題無いため、ステップＳ３９においてそのように処理する。ステップＳ３８において、十分なデータ数がある場合（ＮＯ）には、このフローを終了する。
【００５６】
これにより、理想曲線Ｒをさらに高精度に近似でき、その結果、さらに高精度な補正指令を作成できるのが分かるであろう。このような手法は、図８に示されるように、理想曲線Ｒの立ち下がり部分が台形状である場合に特に有利である。
【００５７】
ところで、図４を参照して説明した実施形態においては、理想曲線Ｒの立ち上がり部分を直線Ｃｖ１で近似すると共に、頂上部分を直線Ｃｖ２で近似している。しかしながら、図３から分かるように、理想曲線Ｒと直線Ｃｖ２との間には比較的大きな隙間が形成される。また、上記手法は、図３の時間ｔｃ以前の時間を考慮に入れていない。従って、立ち上がり部分と頂上部分とを二つの直線で近似する場合には、処理は小さくて足りるものの、精度にやや欠けるという問題がある。
【００５８】
このため、理想曲線Ｒの立ち上がり部分と頂上部分とを単一の近似曲線で近似することも好ましい。図１０は立ち上がり部分と頂上部分との近似線を示す図である。図１０に示されるように、近似曲線Ｃｖ４は理想曲線Ｒの立ち上がり部分と頂上部分とをカバーしている。
【００５９】
図１０に示される近似曲線Ｃｖ４は、偏分反復法により以下の式（３）より算出される。前述したように偏分反復法は公知であるので、近似曲線Ｃｖ４算出に関する詳細な説明を省略する。
【数３】
2012093982.tif 000005
【００６０】
このように理想曲線Ｒの立ち上がり部分と頂上部分とを単一の近似曲線Ｃｖ４で近似した場合には、二つの直線Ｃｖ１、Ｃｖ２で近似する場合と比較して、さらに高精度な補正指令を作成できる。このため、象限突起をほぼ完全に解消できるのが分かるであろう。
【符号の説明】
【００６１】
１０    数値制御工作機械
１４    テーブル
１６    コラム
２０    主軸
２２    工具
２４    送りねじ
２６    ナット
２８    Ｚ軸ガイドレール
３６    Ｘ軸ガイドレール
４０    数値制御部
４２    ＮＣプログラム
４６    解釈済みプログラム記憶部
４８    プログラム実行指令部
５０    分配制御部
５２    サーボ制御部
５４    送り軸モータ駆動部
５６    演算制御部
５８    減算器
６６    学習制御部
６２    減算器
【図１】
2012093982.tif 000006
【図２】
2012093982.tif 000007
【図３】
2012093982.tif 000008
【図４】
2012093982.tif 000009
【図５】
2012093982.tif 000010
【図６】
2012093982.tif 000011
【図７】
2012093982.tif 000012
【図８】
2012093982.tif 000013
【図９】
2012093982.tif 000014
【図１０】
2012093982.tif 000015