(57)【特許請求の範囲】
【請求項１】
テーブルに取り付けられたワーク（加工物）に対して直線軸３軸と傾斜回転軸と旋回回転軸の回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、
指令始点と指令終点の二つの指令位置の間におけるワークに対する工具の姿勢が、前記二つの指令位置における前記回転軸２軸に対する前記指令位置である指令回転軸位置によって方向が指令される工具姿勢を含む平面または滑らかな面に存在するように回転軸位置および直線軸位置を制御する工具姿勢制御部と、
前記二つの指令位置の間で、前記旋回回転軸の動作が不安定になる前記傾斜回転軸の位置である特異点をはさんで前記傾斜回転軸の指令が反対側である場合は前記特異点を通過しかつ越える必要があると判断する特異点通過判断部と、
前記特異点通過判断部にて前記特異点を通過しかつ越える必要があると判断した場合には、工具姿勢が前記二つの指令位置と前記特異点を通過しかつ越える特異点通過経路とする特異点通過経路作成部とを備えた５軸加工機用数値制御装置。
【請求項２】
テーブルに取り付けられたワーク（加工物）に対して直線軸３軸と傾斜回転軸と旋回回転軸の回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、
指令始点と指令終点の二つの指令位置の間におけるワークに対する工具の姿勢が、前記二つの指令位置におけるベクトル指令による工具姿勢を含む平面または滑らかな面に存在するように回転軸位置および直線軸位置を制御する工具姿勢制御部と、
前記工具姿勢を含む平面または滑らかな面と前記旋回回転軸の動作が不安定になる前記傾斜回転軸の位置である特異点との最小距離または最小角度が設定値よりも小さい場合は前記特異点を通過しかつ越える必要があると判断する特異点通過判断部と、
上記特異点通過判断部にて前記特異点を通過しかつ越える必要があると判断した場合には、工具姿勢が前記二つの指令位置と前記特異点を通過しかつ越える特異点通過経路とする特異点通過経路作成部とを備えた５軸加工機用数値制御装置。
【請求項３】
前記特異点通過経路作成部は、前記指令始点における指令始点への工具姿勢の変化方向に接続するように経路を作成する請求項１または請求項２に記載の５軸加工機用数値制御装置。
【請求項４】
前記特異点通過経路作成部は、前記指令終点における指令終点からの工具姿勢の変化方向に接続するように経路を作成する請求項１〜請求項３のいずれか一つに記載の５軸加工機用数値制御装置。
【請求項５】
前記特異点通過経路は、工具姿勢方向を表す指令経路関数として作成する請求項１〜請求項４のいずれか一つに記載の５軸加工機用数値制御装置。
【請求項６】
前記特異点通過経路は、回転軸位置による指令経路関数として作成する請求項１〜請求項４のいずれか一つに記載の５軸加工機用数値制御装置。
【請求項７】
前記特異点通過経路作成部によって工具姿勢が前記二つの指令位置と前記特異点を通過しかつ越えるように指令経路が作成された時、前記工具姿勢制御部は、サンプリング周期毎の前記工具姿勢を表す工具姿勢ベクトルを求め該工具姿勢ベクトルから前記回転軸２軸の位置を求める演算において、得られる２組の解の中で直前の該サンプリング周期における前記旋回回転軸の位置に近い解を選択する請求項５に記載の５軸加工機用数値制御装置。
【請求項８】
前記特異点通過経路作成部は、工具姿勢が前記二つの指令位置と前記特異点を通過しかつ越えるように指令経路を作成する時、該作成する指令経路を表す指令経路関数を求め前記特異点における該指令経路関数のパラメータとして特異点パラメータ値を求めておく前記特異点通過経路作成部であり、
前記工具姿勢制御部は、サンプリング周期ごとに該指令経路関数とパラメータによって工具姿勢ベクトルを求め該工具姿勢ベクトルから前記回転軸２軸の位置を求める演算において、該パラメータが前記特異点パラメータ値を越えるときに、得られる２組の解の中で選択する解の組を変更する請求項５に記載の５軸加工機用数値制御装置。
【請求項９】
前記傾斜回転軸の位置が０度の位置が前記特異点である前記５軸加工機において、前記特異点通過判断部は、前記二つの指令位置の間で前記傾斜回転軸の指令の符号が反転する場合に前記二つの指令位置の間で前記傾斜回転軸の指令が前記特異点をはさんで反対側であり前記特異点を通過しかつ越える必要があると判断する前記特異点通過判断部である請求項１に記載の５軸加工機用数値制御装置。
【請求項１０】
前記傾斜回転軸の位置が０度でない位置が前記特異点である前記５軸加工機において、前記特異点通過判断部は、前記二つの指令位置の間で前記傾斜回転軸の指令に関して（指令始点−特異点）と（指令終点−特異点）の符号が反転する場合に前記二つの指令位置の間で前記傾斜回転軸の指令が前記特異点をはさんで反対側であり前記特異点を通過しかつ越える必要があると判断する前記特異点通過判断部である請求項１に記載の５軸加工機用数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テーブルに固定されて取り付けられたワーク（加工物）に対して直線軸３軸と回転軸２軸によって加工する５軸加工機械を制御する数値制御装置に関する。
【背景技術】
【０００２】
５軸加工機械には、ヘッドが回転するヘッド回転型（図１参照）、テーブルが回転するテーブル回転型（図示せず）、ヘッドもテーブルも回転する混合型（図示せず）がある。
【０００３】
図１において、機械制御点は回転軸２軸の回転中心の交差した点である。また、図２以降では簡便のため工具ヘッドの工具を支持する部分（ＴＳ）と工具のみ描いている。また、Ａ軸、Ｃ軸位置を分かり易くするため、工具を支持する部分（ＴＳ）と工具について少し形状を変更して長く描いている。
【０００４】
テーブルに取り付けられたワーク（加工物）を直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、各軸の座標値を制御する方法として、特許文献１には、工具の位置、工具姿勢（工具のワークに対する相対的な姿勢）および速度をテーブルに固定された直交座標系（テーブル座標系）上で指令し、これを機械の制御点における各軸の座標値に座標変換して制御する方法である工具先端点制御の技術が開示されている。
【０００５】
工具先端点制御では工具の位置と速度が制御され、工具姿勢は各回転軸の位置を補間することによって決定される。工具先端点制御では工具先端点の位置と速度が制御されるが、回転軸２軸は独立して制御されており、指令ブロック途中での工具姿勢は制御されない。
【０００６】
これに対し、特許文献２や特許文献３には、指令ブロック始点と指令ブロック終点の間における工具姿勢を、指令ブロック始点と指令ブロック終点における指令回転軸位置に基づいて計算される工具姿勢を含む平面内または滑らかな面内に存在するようにサンプリング周期ごとに回転軸位置と直線軸位置を制御する方法である工具姿勢制御の技術が開示されている。工具姿勢制御において、工具姿勢の指令は回転軸位置指令による場合とベクトル指令による場合がある。
【０００７】
工具姿勢制御では、指令ブロック途中の工具姿勢は、指令ブロック始点と終点の工具姿勢を含む平面内または滑らかな面内を移動することから、工具姿勢制御はこの平面または滑らかな面（加工面）を工具の側面で加工する用途に使用される。また工具姿勢制御は工具姿勢の変化が予測しやすいため、機械構造物と工具との予期しない干渉や衝突を防ぐことができる。
【０００８】
一方、工具姿勢制御では、工具姿勢を指令ブロックの始点と終点の工具姿勢を含む平面内または滑らかな面内に保つために、回転軸の動作が不安定になる場合がある。例えば、回転軸２軸のうち１軸の位置が任意（不定）となる特異点（特異点姿勢）が存在する機械において工具姿勢制御を行っているときに、指令ブロック途中の工具姿勢が特異点近くを通過する指令を行った場合、特異点近くにおいて回転軸の速度や加速度が非常に大きくなる場合がある。
【０００９】
特許文献４には、工具の姿勢誤差が姿勢誤差許容値以下となるように特異点近傍の範囲を決定し、その範囲では工具先端点制御を行い、それ以外の範囲では工具姿勢制御を行うことにより、工具姿勢誤差は要求精度を満たしながら、特異点における回転軸の速度や加速度を抑え、かつ工具の移動時間を出来るだけ短縮しようとする技術が開示されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００３−１９５９１７号公報
【特許文献２】特開２００５−１８２４３７号公報
【特許文献３】特開２００７−２９３５２２号公報
【特許文献４】特開２００４−２２０４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ここで、工具姿勢制御において工具姿勢の指令は回転軸位置指令による場合とベクトル指令による場合について説明する。なお、特異点近くで速度や加速度が非常に大きくなる回転軸を旋回回転軸と呼び、他の回転軸を傾斜回転軸と呼ぶ。図１の機械構成では、Ａ軸が傾斜回転軸であり、Ｃ軸が旋回回転軸である。Ｚ軸方向の工具姿勢が指令された時、Ａ＝０度となるがＣ軸の位置は任意（不定）である。つまり、Ｃ＝０度でもＣ＝１８０°でも工具姿勢はＺ軸方向である。したがって、工具姿勢がＺ軸方向、またはＡ軸位置が０度の位置が特異点である。  
ただし、図２３の状態がＡ＝０度であり図１の状態はＡ＝９０度である機械構成もある。その機械構成の場合は、Ａ軸が９０度の位置が特異点である。さらに、特異点はＡ＝０度でも９０度でもなく他の角度の場合もある。以降の説明では図１の状態はＡ＝０度でありＡ軸位置が０度の位置が特異点であるとするが、必ずしも傾斜回転軸位置が０度の位置が特異点とは限らない。
まず、回転軸位置指令の場合を説明する。
【００１２】
回転軸（Ａ，Ｃ軸）の位置で指令される工具姿勢指令によって工具姿勢制御を行っているとき、指令始点（Ａ−２０，Ｃ３０）の状態から指令終点（Ａ２０，Ｃ−３０）が指令されると、図２に示されるように指令始点、指令終点の関係が指令されることになる。
【００１３】
指令プログラムの例は次の＜指令例１＞ようになる。
＜指令例１＞
Ｎ１０  Ｇ４３．４Ｐ１Ｘ１．２Ｙ３．０Ｚ５．０Ａ−２０．０Ｃ３０．０Ｈ０１；
Ｎ２０  Ｙ０．０Ａ２０．０Ｃ−３０．０；
・・・・・
Ｎ９０  Ｇ４９；
ここで、「Ｎ１０」、「Ｎ２０」、および「Ｎ９０」はブロック番号を表す。「Ｇ４３．４」は回転軸位置指令によって工具先端点制御を行うＧコードであり、さらにＰ１を指令することによって工具姿勢制御を行う。Ｘ，Ｙ，Ｚは工具先端点が移動する位置の指令であり、Ａ，ＣはＡ，Ｃ軸位置によって工具姿勢の方向を指令する。Ｈ０１は工具先端点制御または工具姿勢制御を行う工具長補正量の番号を指令する。Ｇ４９は工具先端点制御または工具姿勢制御をキャンセルする指令である。
【００１４】
Ｎ１０では工具先端点はＹの指令によって動作するとともに、工具姿勢だけに着目すると図２のような指令始点、指令終点の関係が指令されるため、工具姿勢は図３の斜線の平面上または図４の滑らかな面上を動作することが期待される指令である。
【００１５】
なお、本願に添付した明細書（以下、「本願明細書」という）では、簡単のため工具姿勢を図４のような滑らかな面上ではなく図３のような平面に存在するように制御するとして以下説明する。また、図２〜図４および以降の工具ヘッドまたは工具の動作を描く図は、工具ヘッドまたは工具の動作のみに着目した図としている。実際の指令では、上記のようにＡ、Ｃの指令とともに通常Ｘ，Ｙ，Ｚも指令され、工具先端は指令されたＸ，Ｙ，Ｚに対応して動作する。しかし、本願に添付した図面では、工具先端のＸ，Ｙ，Ｚ方向の動作は省略し（図上に移動なしとし）工具ヘッドまたは工具の動きのみに着目した図としている。
【００１６】
ここで、図３の平面上で工具姿勢をサンプリング周期毎に指令始点の工具姿勢から指令終点の工具姿勢に変化させる補間を行うとき、各サンプリング周期における工具先端から機械制御点への正規化されたベクトルである工具姿勢ベクトルＶｔ（Ｖｔｘ，Ｖｔｙ，Ｖｔｚ）（図１参照）に対して、Ａ軸，Ｃ軸の解は数１式および数２式のように通常２組（解Ａ、解Ｂ）存在する。
【００１７】
【数１】
0005399881.tif 000002
【００１８】
【数２】
0005399881.tif 000003
【００１９】
ここで、arccosの計算は０度〜１８０度の値を得るとする。また、arctanの計算については次のように値を得るとする。  
Ｖｔｘ，Ｖｔｙ≧０の場合、０度〜９０度
Ｖｔｘ＜０，Ｖｔｙ≧０の場合、９０度〜１８０度
Ｖｔｘ＜０，Ｖｔｙ＜０の場合、１８０度〜２７０度
Ｖｔｘ≧０，Ｖｔｙ＜０の場合、２７０度〜３６０度
arctanの計算におけるｎ＊３６０度の項のｎは整数値であり、３６０度のｎ倍の値を加算した位置も解であることを示す。つまり、Ｃ軸は正負方向に何回転でも動作可能だが、Ａ軸は−１８０度〜１８０度内の動作が可能としている。
【００２０】
その２組の解のうち直前のＡ軸，Ｃ軸位置に近い解を選択するようにすると、図５に示されるような動作になる。このような動作をする例は特開平９−２０７０８９号公報（請求項２）がある。
【００２１】
図５に示される動作を説明する。図５（ａ）から順をおって説明する。上述したように中間点１には中間点１Ａ（Ａ−１３．４０９，Ｃ４９．７６４）と中間点１Ｂ（Ａ１３．４０９，Ｃ−１３０．２３６）がある。中間点１Ｂの位置は中間点１Ａの反対側の位置であり、２組の解のもう一つの解である。工具は直前の位置である始点（Ａ−２０，Ｃ３０）に近い中間点１Ａ（Ａ−１３．４０９，Ｃ４９．７６４）へ移動する。
図５（ｂ）に示されるように、中間点２には中間点２Ａと中間点２Ｂの２つの解があるが、直前の位置（中間点１Ａ）に近い中間点２Ａを選択する。そして、図５（ｃ）に示されるように、中間点３には中間点３Ａと中間点３Ｂの２つの解があるが、直前の位置（中間点２Ａ）に近い中間点３Ａを選択する。そして、終点には終点Ａと終点Ｂの２つの解があるが、直前の位置（中間点３Ａ）に近い終点Ａを選択する。この位置は「指令終点位置」ではなく、指令終点位置は終点Ｂである。図５（ｄ）に示されるように指令された指令終点位置に到達しない。したがって、指令に反している。つまり、図２の指令によって図３の斜線の平面上を動作することは物理的に不可能なのである。
【００２２】
物理的に不可能であるので、工具姿勢が期待された平面上を指令された指令終点に向かって動作できないのはやむを得ない。そのため、このような指令のブロックが指令されると、従来の数値制御装置は次のように制御している。
（１）アラームにして工作機械を停止する。  
（２）このような指令があるブロックにおいては工具姿勢制御を行わず、工具先端点制御とする。  
（３）図５に示されるように、直前の位置に近い解を選択するようにする。例えば、特開平０９−２０７０８９号公報（請求項２）の手法を用いる。
【００２３】
しかし、上記（１）〜（３）の方法は、次のような問題がある。
上記（１）の方法では、機械を停止することにより加工が行われないので望ましくない。
上記（２）の方法では、工具姿勢制御を行わないと、工具側面で滑らかなワーク側面を加工しているような場合には滑らかな加工面が得られない。前後のブロックとの間で加工面上に段差が発生する。工具姿勢が制御されないので、加工面に切り込みキズが発生する。
上記（３）の方法では、終点位置が指令位置と相違する位置になり、工具が機械の部品などと衝突（干渉）する可能性がある。また、特異点近傍で回転軸の速度が大きくなり、回転軸の最高速度を超えようとすると、最高速度で制限されるので加工時間がかかる。
【００２４】
次に、ベクトル指令の場合を説明する。  
工具姿勢を、Ａ，Ｃ軸で回転軸位置を指令するのではなく、工具姿勢方向を示す工具姿勢ベクトルで指令することもできる。指令プログラムは＜指令例２＞のようになる。  
＜指令例２＞
Ｎ１０  Ｇ４３．５Ｐ１Ｘ１．２Ｙ３．０Ｚ５．０Ｉ―０．１７１Ｊ０．２９６
Ｋ０．９４Ｈ０１；
Ｎ２０  Ｙ０．０Ｉ―０．１７１Ｊ−０．２９６Ｋ０．９４；
・・・・・
Ｎ９０  Ｇ４９；
ここで、Ｇ４３．５は工具姿勢ベクトルの指令で工具先端点制御を行うＧコードであり、さらにＰ１を指令することによって工具姿勢制御を行う。Ｘ，Ｙ，Ｚは工具先端点が移動する位置の指令であり、Ｉ，Ｊ，Ｋは工具姿勢ベクトルの指令である。Ｈ０１は工具先端点制御または工具姿勢制御を行う工具長補正量の番号を指令する。Ｇ４９は工具先端点制御または工具姿勢制御をキャンセルする指令である。
工具姿勢をＡ軸，Ｃ軸位置を指令する回転軸位置指令ではなく工具姿勢ベクトルで指令する場合も同様の問題が発生することがある。図３と同じ指令を工具姿勢ベクトルで指令すると、工具姿勢ベクトルの先端の経路は図６破線のように補間され変化する。なお、工具姿勢ベクトルは正規化されている（長さ＝１）。また、わかりやすくするためベクトルは図１の工具姿勢ベクトルより長く描いている。
【００２５】
指令始点で工具姿勢が始点工具姿勢ベクトルＶｓ（Ｖｓｘ，Ｖｓｙ，Ｖｓｚ）で指令され、指令終点で工具姿勢が終点工具姿勢ベクトルＶｅ（Ｖｅｘ，Ｖｅｙ，Ｖｅｚ）で指令されることとする。図７は、中間点工具姿勢ベクトルＶｃ（Ｖｃｘ，Ｖｃｙ，Ｖｃｚ）と特異点工具姿勢ベクトルＶｓｉ（０，０，１）との角度θｃｓと、中間点工具姿勢ベクトルＶｃ（Ｖｃｘ，Ｖｃｙ，Ｖｃｚ）と特異点工具姿勢ベクトルＶｓｉ（０，０，１）とのベクトル先端位置の距離Ｌｃｓを説明する図である。
ここで、工具姿勢は特異点に十分近いとする。つまり、中間点工具姿勢ベクトルＶｃ（Ｖｃｘ，Ｖｃｙ，Ｖｃｚ）において、下記の（４）または（５）の条件であるとする。なお、中間点とは指令始点と指令終点の丁度中間であることを意味しない。指令始点と指令終点の間の最も特異点に近い点である。「最も近い点」とは、特異点での工具姿勢を示す特異点工具姿勢ベクトルとの角度または特異点とのベクトル先端位置の距離が最も小さい位置とする。
【００２６】
（４）中間点工具姿勢ベクトルＶｃ（Ｖｃｘ，Ｖｃｙ，Ｖｃｚ）と特異点工具姿勢ベクトルＶｓｉ（０，０，１）との角度θｃｓが、ある設定値θｓより小さい。
【００２７】
【数３】
0005399881.tif 000004
【００２８】
ここで、θｃｓはθｃｓ＝ａｒｃｃｏｓ（Ｖｃ・Ｖｓｉ）（記号「・」は内積）
【００２９】
（５）中間点工具姿勢ベクトルと特異点工具姿勢ベクトルとのベクトル先端位置の距離Ｌｃｓがある設定値Ｌｓより小さい。
【００３０】
【数４】
0005399881.tif 000005
【００３１】
ここで、ＬｃｓはＬｃｓ＝ｓｉｎθｃｓ
ただし、工具長など他の長さ（ＴＬ）を考慮し、Ｌｃｓ＝ＴＬ＊ｓｉｎθｃｓとしてもよい。
【００３２】
従来の数値制御装置では直前の回転軸位置に近い解を選択するようにする。そのため、上記（４）または上記（５）の場合、動作としては図５と同様の結果となる。この場合、工具姿勢ベクトルで指令されているため、「終点位置が指令位置と相違する位置になる」ということはない。しかし、特異点近傍で回転軸の速度が大きくなり、回転軸の最高速度を超えようとすると、最高速度に制限されてしまうので加工時間がかかる。
【００３３】
そのため、特許文献４では、このような指令があるブロックの中間点あるいはその近傍（特許文献中では、関節補間範囲）において工具姿勢制御を行わない（特許文献中では、回転主軸法の補間を行わず関節補間を行う）。しかし、工具姿勢制御を行わないと、前述のように、工具側面で滑らかなワーク側面を加工しているような場合には、滑らかな加工面が得られない。工具姿勢が制御されないので、加工面に切り込みキズが発生する。
【００３４】
そこで本発明の目的は、上記従来技術の問題点に鑑み、切り込みキズを発生させないように滑らかな動作と終点位置を指令位置とすることが可能な回転軸の大きな動作を発生させない５軸加工機用数値制御装置を提供することである。
【課題を解決するための手段】
【００３５】
本願の請求項１に係る発明は、テーブルに取り付けられたワーク（加工物）に対して直線軸３軸と傾斜回転軸と旋回回転軸の回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、指令始点と指令終点の二つの指令位置の間におけるワークに対する工具の姿勢が、前記二つの指令位置における前記回転軸２軸に対する前記指令位置である指令回転軸位置によって方向が指令される工具姿勢を含む平面または滑らかな面に存在するように回転軸位置および直線軸位置を制御する工具姿勢制御部と、前記二つの指令位置の間で、前記旋回回転軸の動作が不安定になる前記傾斜回転軸の位置である特異点をはさんで前記傾斜回転軸の指令が反対側である場合は前記特異点を通過しかつ越える必要があると判断する特異点通過判断部と、前記特異点通過判断部にて前記特異点を通過しかつ越える必要があると判断した場合には、工具姿勢が前記二つの指令位置と前記特異点を通過しかつ越える特異点通過経路とする特異点通過経路作成部とを備えた５軸加工機用数値制御装置である。
【００３６】
請求項２に係る発明は、テーブルに取り付けられたワーク（加工物）に対して直線軸３軸と傾斜回転軸と旋回回転軸の回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、指令始点と指令終点の二つの指令位置の間におけるワークに対する工具の姿勢が、前記二つの指令位置におけるベクトル指令による工具姿勢を含む平面または滑らかな面に存在するように回転軸位置および直線軸位置を制御する工具姿勢制御部と、前記工具姿勢を含む平面または滑らかな面と前記旋回回転軸の動作が不安定になる前記傾斜回転軸の位置である特異点との最小距離または最小角度が設定値よりも小さい場合は前記特異点を通過しかつ越える必要があると判断する特異点通過判断部と、上記特異点通過判断部にて前記特異点を通過しかつ越える必要があると判断した場合には、工具姿勢が前記二つの指令位置と前記特異点を通過しかつ越える特異点通過経路とする特異点通過経路作成部とを備えた５軸加工機用数値制御装置である。
【００３７】
請求項３に係る発明は、前記特異点通過経路作成部は、前記指令始点における指令始点への工具姿勢の変化方向に接続するように経路を作成する請求項１または請求項２に記載の５軸加工機用数値制御装置である。
【００３８】
請求項４に係る発明は、前記特異点通過経路作成部は、前記指令終点における指令終点からの工具姿勢の変化方向に接続するように経路を作成する請求項１〜請求項３のいずれか一つに記載の５軸加工機用数値制御装置である。
【００３９】
請求項５に係る発明は、前記特異点通過経路は、工具姿勢方向を表す指令経路関数として作成する請求項１〜請求項４のいずれか一つに記載の５軸加工機用数値制御装置である。
【００４０】
請求項６に係る発明は、前記特異点通過経路は、回転軸位置による指令経路関数として作成する請求項１〜請求項４のいずれか一つに記載の５軸加工機用数値制御装置である。
【００４１】
請求項７に係る発明は、前記特異点通過経路作成部によって工具姿勢が前記二つの指令位置と前記特異点を通過しかつ越えるように指令経路が作成された時、前記工具姿勢制御部は、サンプリング周期毎の前記工具姿勢を表す工具姿勢ベクトルを求め該工具姿勢ベクトルから前記回転軸２軸の位置を求める演算において、得られる２組の解の中で直前の該サンプリング周期における前記旋回回転軸の位置に近い解を選択する請求項５に記載の５軸加工機用数値制御装置である。
【００４２】
請求項８に係る発明は、前記特異点通過経路作成部は、工具姿勢が前記二つの指令位置と前記特異点を通過しかつ越えるように指令経路を作成する時、該作成する指令経路を表す指令経路関数を求め前記特異点における該指令経路関数のパラメータとして特異点パラメータ値を求めておく前記特異点通過経路作成部であり、前記工具姿勢制御部は、サンプリング周期ごとに該指令経路関数とパラメータによって工具姿勢ベクトルを求め該工具姿勢ベクトルから前記回転軸２軸の位置を求める演算において、該パラメータが前記特異点パラメータ値を越えるときに、得られる２組の解の中で選択する解の組を変更する請求項５に記載の５軸加工機用数値制御装置である。  
請求項９に係る発明は、前記傾斜回転軸の位置が０度の位置が前記特異点である前記５軸加工機において、前記特異点通過判断部は、前記二つの指令位置の間で前記傾斜回転軸の指令の符号が反転する場合に前記二つの指令位置の間で前記傾斜回転軸の指令が前記特異点をはさんで反対側であり前記特異点を通過しかつ越える必要があると判断する前記特異点通過判断部である請求項１に記載の５軸加工機用数値制御装置である。  
請求項１０に係る発明は、前記傾斜回転軸の位置が０度でない位置が前記特異点である前記５軸加工機において、前記特異点通過判断部は、前記二つの指令位置の間で前記傾斜回転軸の指令に関して（指令始点−特異点）と（指令終点−特異点）の符号が反転する場合に前記二つの指令位置の間で前記傾斜回転軸の指令が前記特異点をはさんで反対側であり前記特異点を通過しかつ越える必要があると判断する前記特異点通過判断部である請求項１に記載の５軸加工機用数値制御装置である。
【発明の効果】
【００４３】
本発明により、切り込みキズを発生させないように滑らかな動作が可能で、ワークを滑らかに加工し滑らかな加工面を得られ、終点位置が指令位置とすることが可能で工具が機械の部品などと衝突（干渉）する可能性を防止し、回転軸の大きな動作を発生させないため加工時間を短縮することが可能な５軸加工機用数値制御装置を提供できる。
【図面の簡単な説明】
【００４４】
【図１】テーブルに固定されて取り付けられたワーク（加工物）に対して直線軸３軸と回転軸２軸によって加工する５軸加工機の概略構成図である。
【図２】＜指令例１＞の工具姿勢だけに着目した場合のブロックＮ１０で指令される指令始点と指令終点の関係を説明する図である。
【図３】＜指令例１＞のブロックＮ１０の指令による工具姿勢が動作することを期待されている平面を斜線の平面で表した図である。
【図４】＜指令例１＞のブロックＮ１０の指令による工具姿勢が動作することを期待されている滑らかな面を表した図である。
【図５】２組の解のうち、直前のＡ軸、Ｃ軸位置に近い解を選択した場合の工具姿勢の動作を説明する図である。
【図６】図３と同じ指令を工具姿勢ベクトルで指令した場合、工具姿勢ベクトルの先端が補間され変化することを説明する図である。
【図７】中間点工具姿勢ベクトルＶｃ（Ｖｃｘ，Ｖｃｙ，Ｖｃｚ）と特異点工具姿勢ベクトルＶｓｉ（０，０，１）との角度θｃｓと、中間点工具姿勢ベクトルＶｃ（Ｖｃｘ，Ｖｃｙ，Ｖｃｚ）と特異点工具姿勢ベクトルＶｓｉ（０，０，１）とのベクトル先端位置の距離Ｌｃｓを説明する図である。
【図８】回転軸位置指令の場合の特異点通過経路を説明する図である。
【図９】工具姿勢ベクトル指令の場合の特異点通過経路を説明する図である。
【図１０】工具姿勢の変化を指令始点への工具姿勢の変化方向と指令終点からの工具姿勢の変化方向に接続することを説明する図である。
【図１１】工具姿勢ベクトルを表す指令経路関数であるＮ（Ｎｘ，Ｎｙ，Ｎｚ）を、工具姿勢が指令始点および指令終点において工具姿勢の変化が接続しながら指令始点、指令終点、および特異点を通る経路として求めることを説明する図である。
【図１２】工具姿勢を表す指令経路であるＤ（Ａ，Ｃ）を、指令始点と指令終点および特異点を通過し指令始点への工具姿勢の変化方向と指令終点からの工具姿勢の変化方向に接続することを説明する図である。
【図１３】指令始点（Ａ−２０，Ｃ３０）から指令終点（Ａ２０，Ｃ−３０）へ、図３で示した平面上を工具姿勢が動作する場合、解Ａと解Ｂとを求め解Ａｃ、解Ｂｃとして図示したものである。
【図１４】図１３における解Ａｃによる工具姿勢ベクトルをＺプラス方向から描いた図である。
【図１５】指令経路関数Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）から工具姿勢ベクトルＶｔ（Ｖｔｘ，Ｖｔｙ，Ｖｔｚ）を求め、Ｖｔから解Ａ、解Ｂを求め、それらを解Ａｎ、解Ｂｎとして図１３に重ねた図である。
【図１６】特異点を越えるように解Ａｎから解Ｂｎへ移行した時の工具姿勢ベクトル先端をＺプラス方向から描いた図である。
【図１７】指令経路関数Ｄ（Ａ，Ｃ）を図１３のグラフに重ねて表示した図である。
【図１８】指令経路関数Ｄ（Ａ，Ｃ）に対して工具姿勢ベクトル先端を計算してＺプラス方向から描いた図である。
【図１９】本発明の５軸加工機用数値制御装置の機能ブロック図である。
【図２０】本発明の第１補間と第２補間とを行う５軸加工機用数値制御装置の機能ブロック図である。
【図２１】本発明の特異点通過判断部と特異点通過経路作成部の処理のアルゴリズムを示すフローチャートである。
【図２２】本発明の特異点通過経路作成部で作成された特異点通過経路を補間部に関連づけられた工具姿勢制御部で補間する場合の処理のアルゴリズムを示すフローチャートである。
【図２３】Ａ＝０度であり図１の状態はＡ＝９０度であるテーブルに固定されて取り付けられたワーク（加工物）に対して直線軸３軸と回転軸２軸によって加工する５軸加工機の概略構成図である。
【図２４】傾斜回転軸位置が０度でない位置が特異点である５軸加工機において、本発明の特異点通過判断部と特異点通過経路作成部の処理のアルゴリズムを示すフローチャートである。
【発明を実施するための形態】
【００４５】
以下、本発明の実施形態を図面と共に説明する。  
本願明細書では、図１に示されるヘッド回転型の５軸加工機を例として説明する。なお、図１では回転軸２軸をＡ，Ｃ軸としているが、Ｂ，Ｃ軸やＡ，Ｂ軸が回転軸２軸である５軸加工機もある。また、上述のようにテーブル回転型や混合型の５軸加工機もある。それらの５軸加工機に対しても工具姿勢（工具のワークに対する相対的な姿勢）の制御という点では同様であるため、本発明を適用することが可能である。
本発明は、テーブルに取り付けられたワーク（加工物）に対して直線軸３軸と傾斜回転軸と旋回回転軸の回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、指令始点と指令終点の二つの指令位置におけるワークに対する工具の姿勢が、前記二つの指令位置における工具姿勢を含む平面または滑らかな面に存在するように回転軸位置および直線軸位置を制御する工具姿勢制御部と、前記二つの指令位置の間で特異点を通過する必要があると判断する特異点通過判断部と、前記特異点通過判断部にて特異点を通過する必要があると判断した場合には、工具姿勢が前記二つの指令位置と特異点を通過するように指令経路を作成する特異点通過経路作成部とを備えた５軸加工機用数値制御装置である。
【００４６】
ここで、特異点通過判断について説明する。  
まず、回転軸位置指令の場合の特異点通過判断について説明する。  
工具姿勢は回転軸（Ａ軸，Ｃ軸）の位置で指令される場合、指令始点と指令終点の２つの指令位置の間で回転軸２軸のうち傾斜回転軸指令の符号が反転する時には、特異点を通過する必要があると判断する。図２では、指令始点ではＡ軸−２０度であり指令終点ではＡ軸２０度であるため、傾斜回転軸指令の符号が反転しており特異点を通過する必要があると判断される。なお、０度の時には前の指令の符号が継続するとみなす。例えば、指令始点でＡ軸−２０度であり指令終点でＡ軸０度の時には、符号が反転するとはみなさない。  
ただし、上記説明はＡ＝０度が特異点である場合の説明であり、段落「００１１」で説明したように、図２３の状態がＡ＝０度であり図１の状態はＡ＝９０度である機械構成もある。  
さらに、特異点はＡ＝０度でも９０度でもなく他の角度の場合もある。そのような５軸加工機においては、傾斜回転軸（Ａ軸）に関して、（指令始点−特異点）と（指令終点−特異点）の符号が反転するかどうかに着目する。すなわち、傾斜回転軸（Ａ軸）に関して、（指令始点−特異点）と（指令終点−特異点）の符号が反転すれば、傾斜回転軸指令が特異点をはさんで反対側であり特異点を通過する必要があると判断する。傾斜回転軸（Ａ軸）に関して、特異点への指令の場合、特異点をはさんで反対側であるとはみなさないのは上記説明と同じである。
【００４７】
次に、ベクトル指令の場合の特異点通過判断について説明する。  
工具姿勢は工具姿勢ベクトルで指令される場合、前述の数３式または数４式が満足されると、特異点を通過する必要があると判断する。
【００４８】
次に、特異点通過判断において特異点を通過する必要があると判断された場合の特異点通過経路作成について説明する。特異点を通過する必要があると判断された場合、工具姿勢が指令始点と指令終点および特異点を通過するように指令経路を変更し、工具姿勢が特異点を越えるように補間する。補間については後述する。図２で示した例において、本発明では図８に示されるように特異点を通過する経路に変更する。工具姿勢をベクトルで指令する場合も同様である。工具姿勢ベクトル先端の経路を、図９の点線に示されるように特異点を通過する経路に変更し、工具姿勢が特異点を越えるように補間する。変更前の図６と対比すると経路変更を理解し易い。なお、補間については後述する。
【００４９】
さらに、工具姿勢は、指令始点と指令終点において指令始点への工具姿勢の変化方向と指令終点からの工具姿勢の変化方向に接続するように工具姿勢を変化させる。つまり、図１０に示されるように、工具姿勢の変化を指令始点へと指令終点からの工具姿勢の変化方向に接続する。
【００５０】
図１０では、指令始点への工具姿勢の変化方向と指令終点からの工具姿勢の変化方向に接続するように工具姿勢を変化させるが、指令始点への工具姿勢の変化方向と指令終点からの工具姿勢の変化方向に接続する必要がない場合には、単に指令始点と指令終点および特異点を通過する工具経路としただけでもよい。また、指令終点からの工具姿勢の変化方向がまだわかっていない場合には、指令始点への工具姿勢の変化方向に接続するように工具姿勢を変化させるだけでもよい。
【００５１】
図８から図１０に示されるように、特異点通過経路を作成することによって、加工面への切り込みキズのない滑らかな加工面を得る。また、大きな動作が生じないため加工時間が短い。さらに、終点位置は指令位置となる。
【００５２】
次に、工具姿勢の指令経路を表す指令経路関数を求める例を説明する。  
図１１は、工具姿勢方向を表す指令経路関数であるＮ（Ｎｘ，Ｎｙ，Ｎｚ）を、工具姿勢が指令始点および指令終点において工具姿勢の変化が接続しながら指令始点、指令終点、および特異点を通る経路として求めることを説明する図である。
【００５３】
工具姿勢が回転軸位置指令またはベクトル指令で指令される場合、工具姿勢方向を表す指令経路関数を求める。さらにその関数をパラメータによって補間し、求められる工具姿勢ベクトルからＡ軸，Ｃ軸の回転軸位置を求める。求めたＡ軸，Ｃ軸位置によってＡ軸，Ｃ軸サーボを制御する。ここで、Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）がＸ，Ｙ，Ｚ座標系での工具姿勢方向を表す指令経路関数であり、これを正規化すると工具姿勢ベクトルとなる。
【００５４】
次のようにして、Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）を工具姿勢が指令始点および指令終点において工具姿勢の変化が接続しながら指令始点と指令終点および特異点を通る経路として求める。Ｎｓは指令始点における工具姿勢ベクトル、Ｎｓ’は指令始点における工具姿勢変化の接線方向（指令始点への工具姿勢の変化方向）、Ｎｃは特異点における工具姿勢ベクトル、Ｎｅは指令終点における工具姿勢ベクトル、Ｎｅ’は指令終点における工具姿勢変化の接線方向（指令終点からの工具姿勢の変化方向）である。
Ｎｓ、Ｎｓ’、Ｎｃ、Ｎｅ、Ｎｅ’を与え、指令経路関数Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）を多項式、スプライン関数、ＮＵＲＢＳ関数などの滑らかな曲線を表す関数として求める。Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）を正規化すると工具姿勢ベクトルＶｔ（Ｖｔｘ，Ｖｔｙ，Ｖｔｚ）となる。指令始点や指令終点において工具姿勢の変化を接続する必要がない場合には、与える条件を少なくし、関数の次数を少なくすればよい。
【００５５】
例えば、指令経路関数Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）を次のようにパラメータｔの４次の多項式の関数で表す場合を示す。
【００５６】
【数５】
0005399881.tif 000006
【００５７】
なお、Ｅ、Ｆ、Ｇ、Ｈ、Ｊはそれぞれ３次元（Ｘ，Ｙ，Ｚ）の係数ベクトルである。
Ｎｓ、Ｎｓ’、Ｎｃ、Ｎｅ、Ｎｅ’の５個の条件が与えられると、Ｅ、Ｆ、Ｇ、Ｈ、Ｊの５個の係数を計算することができる。これによって指令経路関数Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）を求めることができる。
【００５８】
パラメータｔをサンプリング周期毎に変化させながら、Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）を計算し正規化することによってサンプリング周期毎の工具姿勢を表す工具姿勢ベクトルＶｔが求まる。工具姿勢ベクトルＶｔからＡ軸，Ｃ軸位置を求めるとき、すでに述べたように通常２組の解（解Ａ，解Ｂ）が得られる（数１式および数２式を参照）。指令経路関数Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）を特異点を通る経路を表す関数として求めたが、Ａ軸，Ｃ軸位置として特異点を越えるには、特異点前後で解Ａから解Ｂまたはその逆のように、特異点後は特異点前の解の組から他の解の組に変更する必要がある。そのための方法を述べる。
【００５９】
（１）直前の旋回回転軸に近い解の選択
旋回回転軸（Ｃ軸）の位置について、直前のサンプリング周期での旋回回転軸（Ｃ軸）の位置に対して、今回のサンプリング周期では常に近い解を選択する。Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）は滑らかに変化するので、特異点近くにおいても急激に変化することはない。そのため、急激に変化しない解、つまり、直前のサンプリング周期での旋回回転軸（Ｃ軸）の位置に対して、今回のサンプリング周期ではそれに近い解を選択する。
【００６０】
（２）特異点パラメータ値による方法
指令経路関数に関して、特異点におけるパラメータとして特異点パラメータ値を求めておく。数５式に特異点を代入して解き、そのｔをｔｓとする。つまり、数６式のようにｔｓを求める。
【００６１】
【数６】
0005399881.tif 000007
【００６２】
サンプリング周期毎にパラメータｔから指令経路関数を計算し工具姿勢ベクトルを求め、工具姿勢ベクトルからＡ軸，Ｃ軸位置を求めるとき、パラメータｔが特異点パラメータｔｓを越える（ｔ＞ｔｓ）ときに解の組を変更する。つまり、解Ａから解Ｂまたはその逆のように、特異点後は特異点前の解の組から他の解の組に変更する。このことにより、特異点を越えるＡ軸，Ｃ軸の位置を求めることができる。求めたＡ軸，Ｃ軸位置によってＡ軸，Ｃ軸サーボを駆動する。なお、指令経路関数を補間し、Ａ軸，Ｃ軸位置を求める具体的な方法についてはシミュレーション例とともに後述する。
【００６３】
回転軸位置の関数の場合について説明する。  
図１２は、工具姿勢を表す指令経路関数であるＤ（Ａ，Ｃ）を、指令始点と指令終点および特異点を通過し指令始点への工具姿勢の変化方向と指令終点からの工具姿勢の変化方向に接続することを説明する図である。
【００６４】
工具姿勢が回転軸位置指令で指令される場合、回転軸の動作に着目して指令始点と指令終点および特異点を通過し指令始点への工具姿勢の変化方向と指令終点からの工具姿勢の変化方向に接続する指令経路関数を求めて補間する。補間して求められたＡ軸，Ｃ軸位置によってＡ軸，Ｃ軸サーボを駆動する。
【００６５】
ここで、Ｄ（Ａ，Ｃ）が工具姿勢を示す指令経路関数である。（Ａ，Ｃ）はＡ軸，Ｃ軸位置による関数であることを意味する。次のようにして、Ｄを指令始点と指令終点および特異点を通過し指令始点への工具姿勢の変化方向と指令終点からの工具姿勢の変化方向に接続するとして求める。Ｄｓは指令始点、Ｄｓ’は指令始点での接線方向（指令始点への工具姿勢の変化方向をＡ軸，Ｃ軸方向に換算したもの）、Ｄｅは指令終点、Ｄｅ’は終点での接線方向（指令終点からの工具姿勢の変化方向をＡ軸，Ｃ軸方向に換算したもの）である。
【００６６】
Ｄｓ、Ｄｓ’、Ｄｅ、Ｄｅ’を与え、工具姿勢を示す指令経路関数Ｄ（Ａ，Ｃ）を多項式、スプライン関数、ＮＵＲＢＳ関数などの滑らかな曲線を表す関数として求める。この場合、必ず特異点（Ａ＝０）を通過するので、Ｎを求めたときの特異点Ｎｃを通過する条件は不要である。指令始点や指令終点において工具姿勢の変化方向に接続する必要がない場合は、与える条件を少なくし関数の次数を少なくすればよい。例えば、指令経路関数Ｄ（Ａ，Ｃ軸）を次のようなパラメータｔの３次の多項式の関数で表す場合を示す。
【００６７】
【数７】
0005399881.tif 000008
【００６８】
ここで、Ｐ、Ｑ、Ｒ、Ｓはそれぞれ２次元（Ａ，Ｃ）の係数ベクトルである。
Ｄｓ、Ｄｓ’、Ｄｅ、Ｄｅ’の４条件が与えられると、Ｐ，Ｑ，Ｒ，Ｓの４個の係数を計算することができる。これによって、指令経路関数Ｄ（Ａ，Ｃ）を求めることができる。
【００６９】
パラメータｔをサンプリング周期毎に変化させながら、Ｄ（Ａ，Ｃ）を計算することによってサンプリング周期毎のＡ軸，Ｃ軸位置を求める。求めたＡ軸，Ｃ軸位置によってＡ軸，Ｃ軸サーボを駆動する。指令経路関数を補間しＡ軸，Ｃ軸位置を求める具体的な方法についてはシミュレーション例とともに後述する。
【００７０】
次に、図２の指令例１においてＡ軸，Ｃ軸位置を求めるシミュレーションを行った結果を説明する。指令始点（Ａ−２０，Ｃ３０）から指令終点（Ａ２０，Ｃ−３０）で示した平面上を工具姿勢が変化する場合、解Ａと解Ｂを求め解Ａｃ、解Ｂｃとして図１３に示す。図５で説明したようにＡ，Ｃの解が得られる直前のＡ軸，Ｃ軸位置に近い解を選択するようにした場合、指令始点では解Ａが直前の回転軸位置に近いとすると、図１３の「解Ａｃの変化」のようにＡ，Ｃの解が得られる。これが、従来技術の問題点として述べた（３）のケースである。したがって、指令終点には到達しない。この時の解Ａｃによる工具姿勢ベクトルをＺプラス方向から描くと図１４に示すようになる。図１４は図３に対応する。
【００７１】
図２の指令例１のように指令された場合、数５式で述べた特異点を通過する指令経路関数Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）（パラメータｔは指令始点〜指令終点間で０〜１に変化するとする）を求める。ここで、図２の指令始点と指令終点でのＡ軸，Ｃ軸に対する指令を工具姿勢方向に換算することにより、Ｎｓ、Ｎｅを求めると次のようになる。特異点は、Ｎｃ＝（０，０，１）である。なお、このＮは図６の指令例２のように工具姿勢方向を工具姿勢ベクトルで指令する場合も同様である。
Ｎｓ＝（−０．１７１，０．２９６，０．９４）
Ｎｅ＝（−０．１７１，−０．２９６，０．９４）
【００７２】
Ｎｓ’、Ｎｅ’は次のように与えられるとする。これは、図３の平面において指令始点および指令終点で工具姿勢が平面上の方向に変化するとした場合の変化方向を工具姿勢方向の変化方向に換算したものである。図１５において指令始点と指令終点でのベクトルとしても記入している。
Ｎｓ’＝（−０．０５３，−０．９５５，０．２９１）
Ｎｅ’＝（０．０５３，−０．９５５，−０．２９１）
【００７３】
これから数５式の説明で述べた方法で指令経路関数Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）を求めると、各係数は次のようになる。  
Ｅ＝（２．９４８，０．０，−０．２０１）
Ｆ＝（−５．８９７，−０．７２５，０．４０１）
Ｇ＝（３．００１，１．０８８，−０．４９２）
Ｈ＝（−０．０５３，−０．９５５，０．２９１）
Ｊ＝（−０．１７１，−０．２９６，０．９４）
その結果のＮ（Ｎｘ，Ｎｙ，Ｎｚ）に対して正規化して工具姿勢ベクトルＶｔ（Ｖｔｘ，Ｖｔｙ，Ｖｔｚ）とし解Ａ，解Ｂを求め、それらを解Ａｎ、解Ｂｎとして図１３に重ねると図１５に示されるようになる。
【００７４】
なお、Ｎｓ’、Ｎｅ’は、Ａ軸，Ｃ軸に換算しベクトル長は変更して描いている。ここで、○印で「特異点越え」と記載した部分で解Ａｎから解Ｂｎに解の選択を変更する必要があり、このことにより特異点を越えるＡ軸，Ｃ軸位置が求められる。特異点を越える方法について前述したが、更に具体的に説明する。
【００７５】
（１）直前の旋回回転軸の近い解の解釈
前述したように、旋回回転軸（Ｃ軸）の位置について、直前のサンプリング周期での旋回回転軸（Ｃ軸）の位置に対して、今回のサンプリング周期では常に直前のサンプリング周期での旋回回転軸（Ｃ軸）位置に近い解を選択する。上記例では、Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）を求め正規化して工具姿勢ベクトルＶｔ（Ｖｔｘ，Ｖｔｙ，Ｖｔｚ）とし、解Ａｎ，解Ｂｎを計算したときのＡ軸，Ｃ軸位置は特異点通過の部分の前後で表１のように変化する。Ａ，Ｃは度で表している。
【００７６】
【表１】
0005399881.tif 000009
【００７７】
特異点直前は解Ａｎが選択されている。しかし、解Ａｎを選択し続けると特異点から特異点直後にかけてＣ軸に大きな移動（０→１７５．０７）が発生する。特異点は解Ａｎとし、特異点直後は解Ｂｎを選択すると、Ｃ軸の移動（０→―４．９２８）は小さい。そのため、特異点直後から解Ｂｎを選択する。
【００７８】
（２）特異点パラメータ値による方法
指令経路関数に関して、特異点におけるパラメータとして特異点パラメータ値を求めておく。つまり、数６式によってｔｓを求める。上記例では、ｔｓ＝０．５である。表１において、サンプリング周期毎にパラメータｔは特異点直前から特異点直後にかけて０．４７５→０．５→０．５２５と変化する。パラメータｔが特異点パラメータｔｓを越えるとき（ｔ＞ｔｓ）に解の組を変更する。したがって、特異点までは解Ａｎを選択し、特異点直後から解Ｂｎを選択する。
【００７９】
これらの方法で特異点を越えるＡ軸，Ｃ軸の位置が求められる。特異点を越えるように解Ａｎから解Ｂｎへ移行した時の工具姿勢ベクトル先端をＺプラス方向から描くと図１６のようになり、特異点（０，０，１）を通過している。図１６の工具姿勢ベクトル先端の経路は図８の機械制御点の動作に対応する。
【００８０】
図２の指令例１のように指令された場合、数７式で述べた特異点を通過する指令経路関数Ｄ（Ａ，Ｃ）（パラメータｔは指令始点〜指令終点間で０〜１に変化するとする）を求める。ここで、図２のＡ軸，Ｃ軸に対する指令から次のようになる。
Ｄｓ＝（−２０，３０）（度）＝（−０．３４９，０．５２４）（ラジアン）
Ｄｅ＝（２０，−３０）（度）＝（０．３４９，−０．５２４）（ラジアン）
Ｄｓ’、Ｄｅ’は次のように与えられるとする。これは、図３の平面において指令始点および指令終点で工具姿勢が平面上の方向に変化するとした場合の変化方向をＡ軸，Ｃ軸の方向に換算したものである。つまり、Ｎｓ’、Ｎｅ’と同等である。図１７において指令始点と指令終点での接線方向としても記入している。
Ｄｓ’＝（０．８５２，１．５３１）（ラジアン）
Ｄｅ’＝（０．８５２，１．５３１）（ラジアン）
これから、数７式の説明で述べた方法で指令経路関数Ｄ（Ａ，Ｃ）を求めると各係数は次のようになる。
Ｐ＝（０．３０８，５．１５６）
Ｑ＝（−０．４６２，−７．７３３）
Ｒ＝（０．８５２，１．５３１）
Ｓ＝（−０．３４９，０．５２４）
その結果のＤ（Ａ，Ｃ）を図１３に重ねると図１７に示されるようになる。なお、Ｄ（Ａ，Ｃ）は多項式としてｔに対して一意に決定されるので、解Ａ，解Ｂのような２組の解は持たない。パラメータｔをサンプリング周期毎に変化させながら、Ｄ（Ａ，Ｃ）を計算することによってサンプリング周期毎のＡ軸，Ｃ軸位置が求められる。
【００８１】
その時、Ｄ（Ａ，Ｃ）に対して工具姿勢ベクトル先端を計算してＺプラス方向から描くと図１８に示すようになり、図１８に示されるように特異点（０，０，１）を通過している。図１８の工具姿勢ベクトル先端の経路は図９の点線の経路に対応する。
【００８２】
ここで、図２における指令始点と指令終点について説明する。指令始点および指令終点については、プログラムで指令されたプログラム指令位置である場合と第１補間された位置である場合がある。
【００８３】
図１９は、プログラム指令位置の場合の本発明に係る数値制御装置の機能ブロック図である。一般に、数値制御装置は、プログラム指令の各ブロック指令を指令解析部１０で解析し、補間部１１において補間を行い、各軸サーボ１２Ｘ，・・・１２Ｃを駆動する。工具姿勢制御を行う場合は、補間部１１に関連づけられた工具姿勢制御部１５において、工具姿勢が指令された平面上または滑らかな面上を動作するように工具姿勢制御を行う。
【００８４】
指令始点および指令終点はプログラムで指令されたブロック始点およびブロック終点である場合、特異点通過判断部１３と特異点通過経路作成部１４は指令解析部１０に関連付けられ、ブロック始点およびブロック終点を指令始点および指令終点として特異点通過判断と特異点通過経路作成を行う。また、工具姿勢制御部１５は補間部１１に関連づけられ、作成された特異点通過経路を補間して工具姿勢制御を行う。
【００８５】
図２０は、プログラム指令の各ブロック指令を指令解析部２０で解析し、第１補間部において粗く第１補間を行いその後細かく第２補間を行う数値制御装置の機能ブロック図である。この場合には、第１補間を行う第１補間部２１に対して特異点通過判断部２５と特異点通過経路作成部２６および工具姿勢制御部２７とを関連づけるとともに、第２補間部２３にも工具姿勢制御部２７を関連付ける。
【００８６】
第１補間のサンプリング周期毎に工具姿勢制御を行った第１補間の補間位置を指令始点および指令終点とし、それらの指令始点および指令終点位置に対して特異点通過判断部２５にて特異点通過の判断を行い、特異点通過と判断されれば特異点通過経路作成部２６にて第１補間の補間位置を特異点通過経路に変更し、変更した特異点通過経路を中間メモリ２２にセットし、より細かなサンプリング周期で補間を行う第２補間部２３は、セットされた中間メモリ２２のデータに基づき特異点通過経路を補間して工具姿勢制御を行う。この場合、請求項５および請求項６のサンプリング周期は第２補間のサンプリング周期である。また、本明細書の他の段落で述べる「補間」は、第２補間での処理および第２補間に関連づけられた工具姿勢制御部２７における処理を意味する。
【００８７】
図２１は、本発明の特異点通過判断部と特異点通過経路作成部の処理のアルゴリズムを示すフローチャートである。ただし、Ａ＝０度が特異点の場合のフローチャートである。この図２１は、指令始点と指令終点は、プログラムにおいて回転軸位置指令で指令されたブロック始点およびブロック終点であり工具姿勢方向の関数として指令経路を変更する場合の、特異点通過判断部と特異点通過経路作成部とをフローチャートで示したものである。以下、各ステップに従って説明する。
●［ステップＳＡ１］指令始点と指令終点を得る。  
●［ステップＳＡ２］指令始点と指令終点で傾斜回転軸の符号は反転するか否か判断し、傾斜回転軸の符号が反転する場合にはステップＳＡ３へ移行し、反転しない場合には終了する。  
●［ステップＳＡ３］Ｎｓ，Ｎｅ，Ｎｃ，Ｎｓ’，Ｎｅ’の条件から数５式の指令経路関数Ｎを求める。数６式によって特異点パラメータ値ｔｓを求め、終了する。なお、ステップＳＡ１およびステップＳＡ２は特異点通過判断部に相当し、ステップＳＡ３は特異点通過経路作成部に相当する。
【００８８】
図２２は、本発明の特異点通過経路作成部で作成された特異点通過経路を補間部に関連づけられた工具姿勢制御部で補間する場合の処理のアルゴリズムを示すフローチャートである。以下、各ステップに従って説明する。ここでは、指令始点では解Ａが直前の回転軸位置に近いとする。
●［ステップＳＢ１］指令経路関数Ｎをパラメータｔで計算する。ここではｔは指令始点〜指令終点間で０〜１に変化する値として補間部ですでに計算されているとする。Ｎを正規化して工具姿勢ベクトルＶｔ（Ｖｔｘ，Ｖｔｙ，Ｖｔｚ）を求める。数１式および数２式によってＶｔから解Ａｎ，解Ｂｎを求める。  
●［ステップＳＢ２］ｔはｔｓ以下であるか否か判断し、以下である場合にはステップＳＢ３へ移行し、以下ではない場合にはステップＳＢ４へ移行する。  
●［ステップＳＢ３］解Ａｎを選択し、解ＡｎによるＡ，Ｃ軸補間位置とし、終了する。
●［ステップＳＢ４］解Ｂｎを選択し、解ＢｎによるＡ，Ｃ軸補間位置とし、終了する。
【００８９】
図２４は、傾斜回転軸位置が０度でない位置が特異点である５軸加工機において、本発明の特異点通過判断部と特異点通過経路作成部の処理のアルゴリズムを示すフローチャートである。指令始点と指令終点は、プログラムにおいて回転軸位置指令で指令されたブロック始点およびブロック終点であり工具姿勢方向の関数として指令経路を変更する場合の、特異点通過判断部と特異点通過経路作成部とをフローチャートで示したものである。以下、各ステップに従って説明する。
●［ステップＳＡＡ１］指令始点と指令終点を得る。  
●［ステップＳＡＡ２］傾斜回転軸に関し、（指令始点−特異点）と（指令終点―特異点）の符号は反転するか否か判断し、符号が反転する場合にはステップＳＡＡ３へ移行し、反転しない場合には終了する。  
●［ステップＳＡＡ３］Ｎｓ，Ｎｅ，Ｎｃ，Ｎｓ’，Ｎｅ’の条件から数５式の指令経路関数Ｎを求める。数６式によって特異点パラメータ値ｔｓを求め、終了する。なお、ステップＳＡＡ１およびステップＳＡＡ２は特異点通過判断部に相当し、ステップＳＡＡ３は特異点通過経路作成部に相当する。
【符号の説明】
【００９０】
１０  指令解析部
１１  補間部
１２Ｘ  Ｘ軸サーボ
１２Ｙ  Ｙ軸サーボ
１２Ｚ  Ｚ軸サーボ
１２Ａ（Ｂ）  Ａ（Ｂ）軸サーボ
１２Ｃ  Ｃ軸サーボ
１３  特異点通過判断部
１４  特異点通過経路作成部
１５  工具姿勢制御部
２０  指令解析部
２１  第１補間部
２２  中間メモリ
２３  第２補間部
２４Ｘ  Ｘ軸サーボ
２４Ｙ  Ｙ軸サーボ
２４Ｚ  Ｚ軸サーボ
２４Ｂ（Ａ）  Ｂ（Ａ）軸サーボ
２４Ｃ  Ｃ軸サーボ
２５  特異点通過判断部
２６  特異点通過経路作成部
２７  工具姿勢制御部
【図１】
0005399881.tif 000010
【図２】
0005399881.tif 000011
【図３】
0005399881.tif 000012
【図４】
0005399881.tif 000013
【図５】
0005399881.tif 000014
【図６】
0005399881.tif 000015
【図７】
0005399881.tif 000016
【図８】
0005399881.tif 000017
【図９】
0005399881.tif 000018
【図１０】
0005399881.tif 000019
【図１１】
0005399881.tif 000020
【図１２】
0005399881.tif 000021
【図１３】
0005399881.tif 000022
【図１４】
0005399881.tif 000023
【図１５】
0005399881.tif 000024
【図１６】
0005399881.tif 000025
【図１７】
0005399881.tif 000026
【図１８】
0005399881.tif 000027
【図１９】
0005399881.tif 000028
【図２０】
0005399881.tif 000029
【図２１】
0005399881.tif 000030
【図２２】
0005399881.tif 000031
【図２３】
0005399881.tif 000032
【図２４】
0005399881.tif 000033