(57)【要約】      （修正有）【課題】工具姿勢制御において特異点を通過すると判断した場合には、特異点における回転軸の速度や加速度の非常に大きな移動を回避可能な５軸加工機用数値制御装置を提供すること。【解決手段】直線軸３軸と工具傾斜用回転軸と工具回転用回転軸の回転軸２軸を有する５軸加工機を工具姿勢制御してテーブルに固定されたワークを加工する５軸加工機用数値制御装置において、指令ブロック始点での指令と指令ブロック終点での指令に基づく計算によって、該工具回転用回転軸が任意の位置となる特異点を通過するか否か、または特異点近傍を通過するか否かを判断する特異点通過判断部３６と、該特異点または該特異点近傍を通過すると判断された場合には、該特異点および該特異点近傍での該指令ブロックの指令工具経路を変更する特異点動作回避準備部３７と、変更された工具経路を実行する特異点動作回避部３８と、を備えた５軸加工機用数値制御装置。【選択図】図４
2010140312.tif 000002
【特許請求の範囲】
【請求項１】
直線軸３軸と工具傾斜用回転軸と工具回転用回転軸の回転軸２軸を有する５軸加工機を工具姿勢制御してテーブルに固定されたワークを工具により加工するための５軸加工機用数値制御装置において、
該工具姿勢制御は、指令ブロックの指令ブロック始点と指令ブロック終点の間における前記ワークに対する前記工具の姿勢が、該指令ブロック始点と該指令ブロック終点における指令回転軸位置に基づいて計算される工具姿勢を含む平面内に存在するようにサンプリング周期毎に前記直線軸３軸と前記回転軸２軸を制御する制御であって、
該指令ブロック始点での指令と該指令ブロック終点での指令に基づく計算によって、該指令ブロックにおいて該工具回転用回転軸が任意の位置となる特異点または工具姿勢が該特異点での工具姿勢に対して設定値より近くなる特異点近傍を通過するか否かを判断する特異点通過判断部と、
該特異点通過判断部において該特異点または該特異点近傍を通過すると判断された場合には、該指令ブロックでは該特異点および該特異点近傍での該指令ブロックの指令工具経路を変更するまたは指令速度を変更する特異点動作回避準備部と、
該特異点動作回避準備部で変更された工具経路を実行する特異点動作回避部と、
を備えた５軸加工機用数値制御装置。
【請求項２】
該特異点動作回避準備部は、工具姿勢誤差が工具姿勢誤差許容値以下となるように該工具傾斜用回転軸と該工具回転用回転軸の工具経路を変更することを特徴とする請求項１に記載の５軸加工機用数値制御装置。
【請求項３】
該特異点動作回避準備部は、特異点における工具姿勢とのなす角が回転軸移動許可値以下となる工具姿勢において、該工具回転用回転軸の工具経路を変更することを特徴とする請求項１に記載の５軸加工機用数値制御装置。
【請求項４】
該特異点動作回避準備部は、指令ブロック終点における工具姿勢が指令回転軸位置に基づいて計算される工具姿勢と同じ工具姿勢となるように該工具傾斜用回転軸と該工具回転用回転軸の工具経路を変更することを特徴とする請求項１に記載の５軸加工機用数値制御装置。
【請求項５】
該特異点動作回避準備部は、該工具回転用回転軸が急激かつ大きく移動する時点での該工具回転用回転軸速度を特異点回転軸速度以下となるように制御することを特徴とする請求項１に記載の５軸加工機用数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テーブルに固定されて取り付けられたワーク（加工物）に対して直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置に関する。
【背景技術】
【０００２】
テーブルに取り付けられたワーク（加工物）を直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、各軸の座標値を制御する方法として、工具の位置、工具とワークの相対的な姿勢（以下「工具姿勢」という）、および速度をテーブルに固定された直交座標系（テーブル座標系）上で指令し、これを機械の制御点における各軸の座標値に座標変換して制御する方法である工具先端点制御が知られている（特許文献１参照）。
【０００３】
工具先端点制御では、工具の位置と速度が制御され、工具姿勢は各回転軸の位置を補間することによって決定される。工具先端点制御では工具先端点の位置と速度が制御されるが、回転軸２軸は独立して制御されており、指令ブロック途中での工具姿勢は制御されない。
【０００４】
これに対し、指令ブロック始点と指令ブロック終点の間における工具姿勢を、指令ブロック始点と指令ブロック終点における指令回転軸位置に基づいて計算される工具姿勢を含む平面内に存在するようにサンプリング周期ごとに回転軸位置と直線軸位置を制御する方法である工具姿勢制御も知られている。
【０００５】
工具姿勢制御では、図１に示されるように、指令ブロック途中の工具１の工具姿勢は、指令ブロック始点と終点の工具姿勢を含む平面内を移動し、工具先端点は直線上を移動する（工具先端点の軌跡）ことから、工具姿勢制御はこの直線を含む平面（加工平面）を工具の側面で加工する用途に使用される。また工具姿勢制御は工具姿勢の変化が予測しやすいため、機械構造物と工具との予期しない干渉や衝突を防ぐことができる。
【０００６】
一方、工具姿勢制御では、工具姿勢を指令ブロックの始点と終点の工具姿勢を含む平面内に保つために、回転軸２軸の動作が不安定になる場合がある。例えば、回転軸２軸のうち１軸の位置が任意となる特異点（特異点姿勢）が存在する機械において工具姿勢制御を行っているときに、指令ブロック途中の工具姿勢が特異点を通過する指令を行い、テーブル座標系で指令された速度で工具を動作させた場合、特異点において回転軸の速度や加速度が非常に大きくなる場合がある（後述する図６参照）。
【０００７】
特許文献２には、上記工具姿勢制御が有する問題点を解決するために、工具の姿勢誤差が姿勢誤差許容値以下となるように特異点近傍の範囲を決定し、その範囲では工具先端点制御を行い、それ以外の範囲では工具姿勢制御を行うことにより、工具姿勢誤差は要求精度を満たしながら、特異点における速度や加速度を抑え、かつ工具の移動時間を出来るだけ短縮しようとする技術が開示されている。
【０００８】
【特許文献１】特開２００３−１９５９１７号公報
【特許文献２】特開２００４−２２０４３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
背景技術で説明した特許文献２に開示される工具姿勢制御が有する問題点を解決する技術では、工具先端点制御と工具姿勢制御の切り換え部分で工具姿勢が滑らかに変化しない。または特異点付近での工具姿勢誤差は許容値内ではあるが許容値そのものの誤差を持つといった問題がある。
【００１０】
実際の加工では加工物や加工場所により、多少の工具姿勢誤差は認めるが工具姿勢を滑らかに変化させたい、または許容値はあるものの工具姿勢誤差を出来るだけ小さくしたいといった要求がある。  
そこで本発明の目的は、工具姿勢制御において特異点を通過すると判断した場合には、特異点における回転軸の速度や加速度の非常に大きな移動変動を回避可能な５軸加工機用数値制御装置を提供することである。
【課題を解決するための手段】
【００１１】
本願の請求項１に係る発明は、直線軸３軸と工具傾斜用回転軸と工具回転用回転軸の回転軸２軸を有する５軸加工機を工具姿勢制御してテーブルに固定されたワークを工具により加工するための５軸加工機用数値制御装置において、該工具姿勢制御は、指令ブロックの指令ブロック始点と指令ブロック終点の間における前記ワークに対する前記工具の姿勢が、該指令ブロック始点と該指令ブロック終点における指令回転軸位置に基づいて計算される工具姿勢を含む平面内に存在するようにサンプリング周期毎に前記直線軸３軸と前記回転軸２軸を制御する制御であって、該指令ブロック始点での指令と該指令ブロック終点での指令に基づく計算によって、該指令ブロックにおいて該工具回転用回転軸が任意の位置となる特異点または工具姿勢が該特異点での工具姿勢に対して設定値より近くなる特異点近傍を通過するか否かを判断する特異点通過判断部と、該特異点通過判断部において該特異点または該特異点近傍を通過すると判断された場合には、該指令ブロックでは該特異点および該特異点近傍での該指令ブロックの指令工具経路を変更するまたは指令速度を変更する特異点動作回避準備部と、該特異点動作回避準備部で変更された工具経路を実行する特異点動作回避部と、を備えた５軸加工機用数値制御装置である。
【００１２】
請求項２に係る発明は、該特異点動作回避準備部は、工具姿勢誤差が工具姿勢誤差許容値以下となるように該工具傾斜用回転軸と該工具回転用回転軸の工具経路を変更することを特徴とする請求項１に記載の５軸加工機用数値制御装置である。
【００１３】
請求項３に係る発明は、該特異点動作回避準備部は、特異点における工具姿勢とのなす角が回転軸移動許可値以下となる工具姿勢において、該工具回転用回転軸の工具経路を変更することを特徴とする請求項１に記載の５軸加工機用数値制御装置である。
【００１４】
請求項４に係る発明は、該特異点動作回避準備部は、指令ブロック終点における工具姿勢が指令回転軸位置に基づいて計算される工具姿勢と同じ工具姿勢となるように該工具傾斜用回転軸と該工具回転用回転軸の工具経路を変更することを特徴とする請求項１に記載の５軸加工機用数値制御装置である。
【００１５】
請求項５に係る発明は、該特異点動作回避準備部は、該工具回転用回転軸が急激かつ大きく移動する時点での該工具回転用回転軸速度を特異点回転軸速度以下となるように制御することを特徴とする請求項１に記載の５軸加工機用数値制御装置である。
【発明の効果】
【００１６】
本発明により、工具姿勢制御において特異点を通過すると判断した場合には、特異点における回転軸の速度や加速度の非常に大きな移動を回避可能な数値制御装置を提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態を図面と共に説明する。  
図２は、工具ヘッドが回転する形式の５軸加工機の説明図である。  
５軸加工機は２つの回転軸Ａ軸とＣ軸を有する。Ａ軸はＸ軸方向を回転中心軸としワークに対して工具１の姿勢を傾斜させる軸である。Ｃ軸はＺ軸方向を回転中心軸としワークに対して工具１の姿勢を回転させる軸である。符号３は機械制御点を表している。工具先端点から機械制御点３までの距離を工具長とする。ワークＷはテーブル４上に固定して取り付けられている。図２では、２つの回転軸Ａ軸、Ｃ軸ともにその位置が０度のときの状態を表している。Ａ軸の位置が０度のときＣ軸の位置（角度）が何度であっても工具姿勢は変化しない。
【００１８】
このように５軸加工機は、工具姿勢を制御する回転軸２軸を有する。このうち１軸は工具姿勢を傾斜させる働きがあり、他の１軸は工具姿勢を回転させる働きがある。以後、前者を回転軸１、後者を回転軸２と呼ぶ。回転軸１の位置を調節し、工具軸方向を回転軸２の回転中心軸と平行にするとき、回転軸２の位置は工具姿勢に影響を与えなくなる。このときの回転軸１の位置を特異点と呼ぶ。
【００１９】
図３は、本発明のアルゴリズムを実施する数値制御装置の要部ブロック図である。ＣＰＵ１１は数値制御装置１０を全体的に制御するプロセッサである。ＣＰＵ１１はバス２３を介してＲＯＭ，ＲＡＭ，不揮発性メモリなどで構成されるメモリ１２、ＰＭＣ（プログラマブル・マシン・コントローラ）１３、ＣＲＴや液晶表示器で構成される表示器１４、キーボード等の各種指令やデータを入力するための入力機器１５、外部記憶媒体やホストコンピュータ等に接続されるインタフェース１６、工作機械の各軸制御回路１７（図では５軸分を備えた例を示している）、スピンドル制御回路２０に接続されている。ＣＰＵ１１は、メモリ１２を構成するＲＯＭ（図示省略）に格納されたシステムプログラムを、バス２３を介して読み出し、該システムプログラムに従って数値制御装置全体を制御する。
【００２０】
ＰＭＣ１３は数値制御装置１０に内蔵されたシーケンスプログラムで制御対象物の加工機の補助装置に信号を出力し、または該補助装置からの信号を入力し制御する。また、数値制御装置で制御される加工機の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００２１】
各軸（５軸）の軸制御回路１７はＣＰＵ１１から各軸に補間分配された移動指令量を受けて、各軸の指令をサーボアンプ１８に出力する。サーボアンプ１８はこの指令を受けて、工作機械の各軸のサーボモータ１９を駆動する。各軸のサーボモータ１９は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路１７にフィードバックし、位置・速度のフィードバック制御を行う。なお、図３では位置・速度のフィードバックについては記載を省略している。
【００２２】
スピンドル制御回路２０は主軸回転指令を受け、スピンドルアンプ２１にスピンドル速度信号を出力する。スピンドルアンプ２１はスピンドル速度信号を受けて、スピンドルモータ２２を指令された回転速度で回転させる。又、ポジションコーダ（図示省略）で主軸の回転速度を検出しスピンドル制御回路２０にフィードバックし、速度制御を行う。  
上述した数値制御装置１０の構成は、従来の５軸制御の数値制御装置と変わりはない。
【００２３】
図４は、本発明の実施形態を説明する機能ブロック図である。指令解析部３０は、加工プログラムを解析し実行形式に変換し、補間処理部３１で補間処理を行い各軸へ移動指令を出力する。各軸用加減速部３４ａ〜３４ｅでは移動指令に対して加減速処理を行い、処理後の各軸移動指令に基づきそれぞれサーボ制御３５ａ〜３５ｅを行い、位置、速度、電流のフィードバックを行って各軸サーボモータを駆動制御する。  
本発明は、指令解析部３０が特異点通過判断部３６、特異点動作回避準備部３７を有し、補間処理部３１が特異点動作回避部３８を有する点で従来の数値制御装置と相違する。
【００２４】
次に、特異点通過判断部３６について説明する。まず、理解を助けるために図５に示される加工プログラムの一例を説明する。  
ブロックＮ１０は、工具姿勢制御を指令するブロックである。「Ｇ４３．４  Ｐ１」は工具姿勢制御の開始を意味し、「Ｈ０１」は工具長補正番号指定を意味する。  
ブロックＮ２０は、始点への位置決めを指令するブロックである。「Ｇ９０」はアブソリュート指令であり、「Ｇ０１」は直線補間、「Ｘ，Ｙ，Ｚ，Ａ，Ｃ」は各軸を意味し、「Ｆ」はワークに対する工具先端点の移動速度を意味する。つまり、Ｘ軸は０．０ｍｍ、Ｙ軸は０．０ｍｍ、Ｚ軸は０．０ｍｍ、Ａ軸は−２０．０度、Ｃ軸は０．０度の位置へ、速度６００ｍｍ／分で直線補間で移動することを表している。  
ブロックＮ３０は、Ｘ軸が４０．０ｍｍ、Ａ軸が−２０．０度、Ｃ軸が１８０．０度まで移動させる指令である。
【００２５】
図６は本発明の機能を用いない従来技術である工具姿勢制御により、図５に示される加工プログラムを図２に示される５軸加工機で実行したときの、ブロックＮ３０の指令ブロック開始時刻からの経過時間に対するＡ軸、Ｃ軸の位置（角度）の変化をグラフにしたものである。また、図７は、機械の動作を工具１と工具取付部２だけ取り出し機械の上方から見た図である。加工プログラムで直線軸の移動が指令された場合には工具１は移動するが、ここでは工具１の工具姿勢のみに着目するために、工具先端点の位置をテーブル座標系原点に固定して考える。
【００２６】
図８は、機械上方からみた機械制御点３の移動のみを表した図である。図８は図７をさらに簡略化した図である。ここで点Ｓは指令ブロック始点における機械制御点３の位置、点Ｅは指令ブロック終点における機械制御点３の位置、点Ｐは特異点における機械制御点３の位置を表している。点Ｓ、点Ｐおよび点Ｅを結ぶ線分は、機械制御点３の移動経路である。
【００２７】
図２に示される工具ヘッド回転形の５軸加工機で図５に示される加工プログラムを実行する。Ｎ３０ブロックの始点と終点の工具姿勢を含む平面はＹＺ平面（以後「平面Ｐ」という）となるので、指令ブロック途中の工具１の工具姿勢は常にこの平面Ｐ上にある必要がある。また、Ｎ３０ブロックの途中では特異点を通過する。
【００２８】
工具１の工具姿勢が平面Ｐ上にあるとき、特異点においてＣ軸は任意の値をとることができるが、特異点以外においてはＣ軸は０度または１８０度である必要がある。なぜなら、工具姿勢がワークに対して傾斜している場合、Ｃ軸が０度または１８０度でないと工具が平面Ｐから離れてしまうからである。
【００２９】
したがって、平面Ｐ上を指令ブロック始点の工具姿勢から指令ブロック終点の工具姿勢へ工具姿勢が変化するとき、５軸加工機はまずＣ軸が０度のまま（図６の線分ａ）Ａ軸が−２０度から０度まで移動し（図６の線分ｂ）、次にＡ軸が０度のままＣ軸が０度から１８０度まで移動し（図６の線分ｃ）、その後Ｃ軸が１８０度のまま（図６の線分ｅ）Ａ軸が０度から−２０度まで移動する（図６の線分ｄ）。工具姿勢制御を忠実に実行しようとすると、Ｃ軸は一瞬に移動する（図６の線分ｃ）必要があるが、実際には機械の最大移動速度で抑えられる。
【００３０】
また、図６と図７とを対応させて説明すると、図７（ａ）から図７（ｂ）のＡ軸２０度の移動は図６の線分ｂに相当する。図７（ｂ）から図７（ｃ）のＣ軸１８０度の移動は図６の線分ｃに相当する。図７（ｃ）から図７（ｄ）のＡ軸−２０度の移動は図６の線分ｄに相当する。
【００３１】
上述したように、工具姿勢制御の指令において、指令ブロック始点と指令ブロック終点における回転軸１に対する位置指令が特異点を挟まず、かつ指令ブロック始点と指令ブロック終点における回転軸２に対する位置指令の差が１８０度であるとき、この指令ブロックの途中で特異点を通過し、かつ特異点において回転軸２を一瞬で１８０度移動させる必要があると判断することが出来る。
【００３２】
なお現実的には、位置指令は位置指令生成時の計算誤差などの誤差を含んでいるため、位置指令の差を判断する場合は、ちょうど１８０度ではなく、ある程度の許容値を持っていることが望ましい。ある程度の許容値としては１８０度を基準としてプラス０．０１度、マイナス０．０１度といった程度である。また、回転軸２の速度は実際には機械の最大速度で抑えられるが、それでも非常に大きな速度で回転する。
【００３３】
図９は、特異点通過判断部３６の処理のアルゴリズムを示すフローチャートである。以下、各ステップに従って説明する。
●［ステップＳＡ１］回避フラグＦを０にし初期化する。回避フラグＦは、特異点を通過し、かつ特異点で回転軸２の速度が非常に大きくなる場合に１とし、特異点を通過しない、または特異点で回転軸２の速度が大きくならない場合に０とする。
●［ステップＳＡ２］指令ブロック始点と指令ブロック終点の回転軸１に対する位置指令の間に特異点が存在するか否か判断し、特異点が存在する場合には終了し、特異点が存在しない場合にはステップＳＡ３へ移行する。
●［ステップＳＡ３］指令ブロック始点と指令ブロック終点の回転軸２に対する位置指令の差が１８０度であるか否か判断し、１８０度である場合にはステップＳＡ４へ移行し、１８０度ではない場合には終了する。なお、上述したように１８０度にある程度の許容値を考慮して判断してもよい。
●［ステップＳＡ４］回避フラグＦを１にし、終了する。回避フラグＦを１にすることは、上述したように、特異点を通過し、かつ特異点で回転軸２の速度が非常に大きくなることを意味する。
【００３４】
特異点通過判断部３６の処理の内容を、加工プログラム（図５参照）を例とし具体的な数値を使って説明する。前述したように図２では、２つの回転軸Ａ軸、Ｃ軸ともにその位置が０度のときの状態を表している。この５軸加工機では、Ａ軸が回転軸１、Ｃ軸が回転軸２に相当し、特異点は回転軸１であるＡ軸が０度のときである。すなわち、図２に示される状態ではＣ軸の位置（角度）が何度であっても工具姿勢は変化しない。
【００３５】
図９に示したフローチャートに従えば、指令ブロック始点と指令ブロック終点の回転軸１に対する位置指令は両者とも−２０度であるから、両者の間に特異点は存在せず（ステップＳＡ２）、また、指令ブロック始点と指令ブロック終点の回転軸２に対する位置指令は、前者が０度、後者が１８０度であるから、その差は１８０度であり（ステップＳＡ３）、特異点を通過し、かつ回転軸２の速度が大きくなると判断でき、回避フラグＦを１にする（ステップＳＡ４）。
【００３６】
次に、特異点動作回避準備部３７と特異点動作回避部３８について説明する。  
特異点通過判断部３６において特異点を通過し、かつ特異点で回転軸２の速度が非常に大きくなると判断した場合には、特異点動作回避準備部３７と特異点動作回避部３８にて、特異点における回転軸２の速度が非常に大きくなる現象を回避するための制御を行う。
【００３７】
図４に示されるように、特異点動作回避準備部３７は数値制御装置１０の指令解析部３０、また特異点動作回避部３８は数値制御装置の補間処理部３１に含まれる。以下では、特異点動作回避準備部３７と特異点動作回避部３８とを本発明の実施の形態１から４に基づいて説明する。なお、特異点通過判断部３６の処理は実施の形態１から４で共通する。また、加工プログラムの工具姿勢制御のための処理は、本発明における特異点通過判断部３６、特異点動作回避準備部３７、および特異点動作回避部３８と並行して行われており、特異点動作回避を行わないときは、前記工具姿勢制御による各軸の移動指令により５軸加工機の回転軸２軸を制御する。
【００３８】
＜実施の形態１＞
指令ブロック全体に渡って回転軸２を移動させることにより工具姿勢を滑らかに変化させる実施の形態１を説明する。
図１０は、本発明の実施の形態１の指令ブロック開始時刻からの時間に対するＡ軸、Ｃ軸の位置の変化を表したグラフである。図１１は、図２に示す５軸加工機の上方から見た機械制御点３の移動を表した図である。点Ｓと点Ｅを結ぶ線分は、機械制御点３の移動経路である。ここで点Ｓは指令ブロック始点における機械制御点３の位置、点Ｅは指令ブロック終点における機械制御点３の位置、点Ｐは特異点における機械制御点３の位置を表している。実施の形態１では機械制御点３は特異点を通過しない。
【００３９】
図１０に示されるように、回転軸１は指令ブロック始点から指令ブロック終点へ向かって滑らかに動作させる。ただし、工具姿勢誤差が大きくならないように、本来特異点に到達すべき時刻にあらかじめ決められた角度になるように制御する。図１０では本来特異点に到達すべき時刻である指令ブロック開始時刻から２秒後においてＡ軸は−１０度になるように指定されているとしている。本来特異点に到達すべき時刻の位置（角度）は、パラメータに設定するか、あるいは加工プログラムで指定する。
【００４０】
例えば、指令ブロック開始時刻からの時間に対する位置のグラフを考えたときに、図１０のＡ軸経路に示されるように回転軸１が２次曲線を描くように位置を制御する方法が考えられる。２次曲線は一般に３つのパラメータにより表されるが、回転軸１の位置が時刻０で指令ブロック始点、本来特異点に到達すべき時刻にあらかじめ決められた位置（角度）、および指令ブロックの実行が終了すべき時刻に指令ブロック終点にあるべきという３つの条件から、前記３つのパラメータを求めることができる。
【００４１】
回転軸２は図１０のＣ軸経路に示されるように指令ブロック全体で線形に移動を行うように制御する。回転軸１の制御用２次曲線の決定と回転軸２の速度計算を特異点動作回避準備部３７で行い、特異点動作回避準備部３７で求められた回転軸１の制御用２次曲線と回転軸２の速度の情報に基づき、特異点動作回避部３８にて回転軸１および回転軸２の移動を制御する。
【００４２】
図５に示した加工プログラムの例では、ブロックＮ３０では、工具先端点の移動量が４０．０ｍｍであり指令速度が６００ｍｍ／分であるので、ブロック実行時間は４秒である。Ａ軸が本来特異点に到達すべき時刻２秒に−１０度になるように指定されていたとすると、ブロック始点からの時刻ｔにおけるＡ軸の位置を表す二次曲線はＡ（ｔ）＝（−５／２）ｔ2＋１０ｔ−２０となる。また、回転軸２の速度は１８０度を４秒で除算することにより４５度／秒となる。上述した図１０のグラフで、Ａ軸経路は二次曲線Ａ（ｔ）＝（−５／２）ｔ2＋１０ｔ−２０であり、Ｃ軸経路は４５度／秒で移動する経路として示されている。
【００４３】
上述した処理を図１２−１および図１２−２に示すアルゴリズムのフローチャートに従って説明する。図１２−１は、本発明の実施の形態１における特異点動作回避準備部３７が処理するアルゴリズムを示すフローチャートを説明する。
●［ステップＳＢ１］回避フラグＦが１であるか否か判断し、１である場合にはステップＳＢ２へ移行し、１でない場合には終了する。回避フラグＦが１であることは、特異点を通過し、かつ特異点で回転軸２の速度が非常に大きくなることを意味する。
●［ステップＳＢ２］指令ブロック始点からの時刻ｔにおける回転軸１の位置を表す関数Ａ（ｔ）を計算し、ステップＳＢ３へ移行する。
●［ステップＳＢ３］回転軸２の速度Ｖ２を計算する。
【００４４】
図１２−２は本発明の実施の形態１における特異点動作回避部３８が処理するアルゴリズムを示すフローチャートである。
●［ステップＳＣ１］回避フラグＦが１であるか否か判断し、１である場合にはステップＳＣ２へ移行し、１でない場合には終了する。回避フラグＦが１であることは、特異点を通過し、かつ特異点で回転軸２の速度が非常に大きくなることを意味する。
●［ステップＳＣ２］関数Ａ（ｔ）に基づき回転軸１の移動指令を生成し、ステップＳＣ３へ移行する。
●［ステップＳＣ３］速度Ｖ２に基づき回転軸２の移動指令を生成し、処理を終了する。
【００４５】
＜実施の形態２＞
指令ブロックの一部で工具姿勢を変更する実施の形態２を説明する。この実施の形態２は、特異点を通過する指令ブロックで、回転軸１の位置と特異点との差が設定値以下となる範囲で回転軸２の移動が行われるように制御する。  
本実施の形態の対象とする移動指令では、図６に示したように、回転軸１は始点→特異点→終点と移動する。始点→特異点、特異点→終点の回転軸１の位置の変化は線形となるので、両移動中に回転軸１の位置と特異点との差があらかじめ決められた回転軸移動許可値以下となる時刻ｔ１および時刻ｔ２は容易に計算することができる。なお、指令ブロック開始時刻から終了時刻は求めることができる。
【００４６】
また、この時刻（ｔ１，ｔ２）の間に回転軸２がブロック始点からブロック終点まで一定速度で移動するための速度Ｖ２も容易に計算することができる。以上の計算を特異点動作回避準備部３７で行い、この計算結果の情報に基づき、特異点動作回避部３８にて回転軸２の移動を制御する。なお、前記回転軸移動許可値はパラメータで設定するか、あるいは加工プログラムで指定する。
【００４７】
図５に示した加工プログラム例では、ブロックＮ３０の実行時間は４秒であり、この間に工具姿勢（Ａ軸）は４０．０度変化するので、工具姿勢の角速度は１０．０度／秒である。回転軸移動許可値として１０度が設定されていたとすると、Ｎ３０のブロック開始から１秒後（ｔ１）から３秒後（ｔ２）の２秒間でＣ軸の移動を行うことになり、Ｃ軸の速度は９０．０度／秒となる。
【００４８】
図１３は、実施の形態２の指令ブロック開始時刻からの時間に対するＡ軸、Ｃ軸の位置の変化を表したグラフである。Ａ軸はＡ軸経路として示されるように、時刻０の−２０度から２秒後に０度まで線形に移動し、そして４秒後までに再度−２０度の角度に戻る。Ｃ軸はＣ軸経路として示されるように、時刻０から１秒後までは角度０度を維持し、１秒後から３秒後にかけて移動速度９０．０度／秒で移動し、その後４秒後までは１８０度の角度を維持する。
【００４９】
図１４は、実施の形態２の機械上方から見た機械制御点３の移動を表した図である。ここで点Ｓは指令ブロック始点における機械制御点３の位置、点Ｅは指令ブロック終点における機械制御点３の位置、点Ｐは特異点における機械制御点３の位置を表している。点Ｓ、点Ｐおよび点Ｅを結ぶ線分は、機械制御点３の移動経路である。実施の形態２では、機械制御点３は特異点Ｐを通過することになる。
【００５０】
上述した処理を図１５−１および図１５−２に示すアルゴリズムのフローチャートに従って説明する。図１５−１は、本発明の実施の形態２における特異点動作回避準備部３７が処理するアルゴリズムを示すフローチャートである。
●［ステップＳＤ１］回避フラグＦが１であるか否か判断し、１である場合にはステップＳＤ２へ移行し、１でない場合には終了する。回避フラグＦが１であることは、特異点を通過し、かつ特異点で回転軸２の速度が非常に大きくなることを意味する。
●［ステップＳＤ２］回転軸移動許可値を読み込み、ステップＳＤ３へ移行する。
●［ステップＳＤ３］回転軸１の位置と特異点との差が回転軸移動許可値以下となる時刻ｔ１およびｔ２を計算し、ステップＳＤ４へ移行する。
●［ステップＳＤ４］時刻（ｔ１，ｔ２）の間の回転軸２の速度Ｖ２を計算し、終了する。
【００５１】
図１５−２は、本発明の実施の形態２における特異点動作回避部３８が処理するアルゴリズムを示すフローチャートである。
●［ステップＳＥ１］回避フラグＦが１であるか否か判断し、１である場合にはステップＳＥ２へ移行し、１でない場合には終了する。回避フラグＦが１であることは、特異点を通過し、かつ特異点で回転軸２の速度が非常に大きくなることを意味する。
●［ステップＳＥ２］時刻ｔ１と時刻ｔ２の間であるか否か判断し、間である場合にはステップＳＥ３に移行し、間でない場合には終了する。
●［ステップＳＥ３］速度Ｖ２に基づき回転軸２の移動指令を生成し、終了する。
【００５２】
なお、この実施の形態２では、回転軸１の移動指令は、指令解析部３０，補間処理部３１でなされる工具姿勢制御の処理によって得られる移動指令を用いる。
【００５３】
＜実施の形態３＞
工具姿勢が誤差を持たずに特異点における回転軸２の急激な動作を回避する実施の形態３を説明する。実施の形態１および実施の形態２では、許容値内ではあるが、指令に対して工具姿勢が誤差を持っていた。実施の形態３では工具姿勢が誤差を有しない。
一般に、ある工具姿勢を実現するための二回転軸角度の組み合わせは複数存在するが、回転軸の一回転の自由度を除けば二組存在し、その関係は、回転軸１の角度は特異点に対して対称となり、回転軸２の角度は１８０度の差がある。
【００５４】
工具姿勢制御で特異点を通過する指令ブロック終了の工具姿勢を実現するための角度の組み合わせのうち一組は、本願発明で取り上げているように特異点で回転軸２が非常に大きな速度で移動する組み合わせとなるが、もう一組の組み合わせでは、指令ブロック終点の工具姿勢は変わらずに回転軸２の移動はなくなり、特異点における回転軸の非常に大きな速度での移動は回避される。
【００５５】
従って、特異点動作回避準備部３７にて回転軸２の移動がなくなるような回転軸１のブロック終点を計算し、特異点動作回避部３８ではこの情報に基づいて回転軸の移動指令を生成する。ただしこの場合は、指令ブロック終点の工具姿勢の誤差はないが、回転軸座標は指令されたものと異なっている。
【００５６】
例えば、図２に示した工具ヘッドが回転する５軸加工機では特異点は０度であるので、図５に示した加工プログラム例では、ブロックＮ３０の回転軸指令はＡ２０．０，Ｃ０．０であってもブロック終点の工具姿勢は変わらない。またこのときＮ３０ブロック実行中にＣ軸の移動は発生しないため、Ｃ軸の速度や加速度が大きくなることはない。
【００５７】
図１６は、本発明の実施の形態３の指令ブロック開始時刻からの時間に対するＡ軸、Ｃ軸の位置の変化を表したグラフである。図１７は、本発明の実施の形態３において機械上方から見た機械制御点３の移動を表した図である。ここで点Ｓは指令ブロック始点における機械制御点３の位置、点Ｅは指令ブロック終点における機械制御点３の位置、点Ｐは特異点における機械制御点３の位置を表している。点Ｓ、点Ｐおよび点Ｅを結ぶ線分は、機械制御点３の移動経路である。実施の形態３では機械制御点３は特異点Ｐを通過する。
【００５８】
上述した処理を図１８−１および図１８−２に示すアルゴリズムのフローチャートに従って説明する。図１８−１は、本発明の実施の形態３における特異点動作回避準備部３７が処理するアルゴリズムを示すフローチャートである。
●［ステップＳＦ１］回避フラグＦが１であるか否か判断し、１である場合にはステップＳＦ２へ移行し、１でない場合には終了する。回避フラグＦが１であることは、特異点を通過し、かつ特異点で回転軸２の速度が非常に大きくなることを意味する。
●［ステップＳＦ２］回転軸１の指令ブロック終点角度Ａ１と速度Ｖ１とを計算する。
●［ステップＳＦ３］回転軸２の速度Ｖ２を０（ゼロ）とし、終了する。
【００５９】
図１８−２は、本発明の実施の形態３における特異点動作回避部３８が処理するアルゴリズムを示すフローチャートである。
●［ステップＳＧ１］回避フラグＦが１であるか否か判断し、１である場合にはステップＳＧ２へ移行し、１でない場合には終了する。回避フラグＦが１であることは、特異点を通過し、かつ特異点で回転軸２の速度が非常に大きくなることを意味する。
●［ステップＳＧ２］速度Ｖ１に基づき回転軸１の移動指令を生成する。
●［ステップＳＧ３］速度Ｖ２に基づき回転軸２の移動指令を生成し、終了する。なお、この場合速度Ｖ２＝０であるので、回転軸２は移動しない。
【００６０】
＜実施の形態４＞
工具姿勢は指令ブロック始点と指令ブロック終点における工具姿勢を含む平面内にあり、かつ指令ブロック終点の回転軸座標が指令されたものとなる方法である。実施の形態３では、工具姿勢の誤差はないが、指令ブロック終点の回転軸座標が指令されたものと異なっており、その後の動作に影響を与える可能性がある。実施の形態４はこれを防止するものである。
【００６１】
特異点通過判断部３６にて特異点を通過すると判断した場合には、数値制御装置１０の内部で自動的に、指令ブロック始点から特異点までの動作である動作１、特異点における動作である動作２、特異点から指令ブロック終点までの動作である動作３の三つの動作に分割する。動作２では回転軸２の速度を機械最大速度とは別に設定した特異点回転軸速度となるように制御を行い、動作１と動作３とでは動作２を実行するために必要な時間を考慮してブロック全体の実行時間が変化しないように回転軸１の速度を調節した制御を行う。特異点回転軸速度はパラメータで設定するか、または加工プログラムで指定する。
【００６２】
図５に示した加工プログラム例で、ブロックＮ３０に実施の形態４を適用する。動作１はＡ軸が−２０度から０度へ移動する動作、動作２はＣ軸が０度から１８０度へ移動する動作、動作３はＡ軸が０度から−２０度へ移動する動作である。動作２におけるＣ軸の速度である特異点回転軸速度が１８０度／秒であるとすると、動作２を実行するために必要な時間は１秒であり、ブロック実行時間は４秒であるから、動作１は指令ブロック開始時刻から１．５秒までの期間であり、動作２は１．５秒から２．５秒の期間であり、動作３は２．５秒から４秒までの期間である。また、動作１と動作３のＡ軸の速度は１３．３３３度／秒（２０度／１．５秒）、−１３．３３３度／秒（−２０度／１．５秒）となる。
【００６３】
図１９は、図５に示した加工プログラム例のブロックＮ３０を本発明の実施の形態４を適用したときの、指令ブロック開始時刻からの時間に対するＡ軸、Ｃ軸の位置の変化を表したグラフである。図に示されるように、０〜ｔ３（１．５秒）の期間は動作１、ｔ３（１．５秒）からｔ４（２．５秒）の期間は動作２、ｔ４（２．５秒）から指令ブロック終点（４秒）の期間は動作３として自動的に３つの動作に分割される。
【００６４】
図２０は、本発明の実施の形態４において機械上方から見た機械制御点３の移動を表した図である。ここで点Ｓは指令ブロック始点における機械制御点３の位置、点Ｅは指令ブロック終点における機械制御点３の位置、点Ｐは特異点における機械制御点３の位置を表している。点Ｓ、点Ｐおよび点Ｅを結ぶ線分は、機械制御点３の移動経路である。実施の形態４では、機械制御点３は特異点を通過する。
【００６５】
工具先端点の移動がない指令でこの方法を用いると、動作２中には回転軸１であるＡ軸の動作が発生しないため、特異点において工具の滞留が発生し工具１は回転軸２の特異点回転軸速度に基づいて回転することから、ワークにカッターマークがつくなどの面品質に悪影響を与える可能性がある。しかし、位置決めなど面品質に関係のない部分であれば、工具姿勢を崩すことなく、また指令ブロック終点の回転軸座標を変更することなく、工具の移動を制御することが可能である。
【００６６】
上述した処理を図２１−１および図２１−２に示すアルゴリズムのフローチャートに従って説明する。図２１−１は、本発明の実施の形態４における特異点動作回避準備部が処理するアルゴリズムを示すフローチャートである。
●［ステップＳＨ１］回避フラグＦが１であるか否か判断し、１である場合にはステップＳＨ２へ移行し、１でない場合には終了する。回避フラグＦが１であることは、特異点を通過し、かつ特異点で回転軸２の速度が非常に大きくなることを意味する。
●［ステップＳＨ２］指令ブロック始点から指令ブロック終点までの区間で、機械の動作を、特異点までの動作１、特異点における動作２、特異点以降の動作３に分割する。
●［ステップＳＨ３］回転軸１の動作１における速度Ｖ１１、動作２における速度Ｖ１２、動作３における速度Ｖ１３を計算し、終了する。ただし、速度Ｖ１２は０である。
【００６７】
図２１−２は、本発明の実施の形態４における特異点動作回避部が処理するアルゴリズムを示すフローチャートである。
●［ステップＳＪ１］回避フラグＦが１であるか否か判断し、１である場合にはステップＳＪ２へ移行し、１でない場合には終了する。回避フラグＦが１であることは、特異点を通過し、かつ特異点で回転軸２の速度が非常に大きくなることを意味する。
●［ステップＳＪ２］動作１か否か判断し、動作１である場合にはステップＳＪ３へ移行し、動作１でない場合にはステップＳＪ４へ移行する。
●［ステップＳＪ３］図２１−１のステップＳＨ３で計算して求めた速度Ｖ１１に基づき回転軸１の移動指令を生成し、終了する。
●［ステップＳＪ４］動作２か否かを判断し、動作２である場合にはステップＳＪ５へ移行し、動作２でない場合にはステップＳＪ８へ移行する。
●［ステップＳＪ５］回転軸２の特異点回転軸速度を読み込む。回転軸２の特異点回転軸速度は機械の最大速度とは別にあらかじめ設定あるいは加工プログラムで指定され数値制御装置内に記憶された値である。実施の形態４を実行してもワークＷに悪影響を与えない程度の速度として設定される。
●［ステップＳＪ６］特異点回転軸速度に基づき回転軸２の移動指令を生成する。
●［ステップＳＪ７］速度Ｖ１２に基づき回転軸１の移動指令を生成し、終了する。この場合、速度Ｖ１２は０である。
●［ステップＳＪ８］動作３として、図２１−１のステップＳＨ３で計算して求めた速度Ｖ１３に基づき回転軸１の移動指令を生成し、終了する。
【００６８】
なお、実施の形態４による移動を示す図１９について補足して説明すると、動作１ではＡ軸はステップＳＪ３の移動指令による移動、Ｃ軸は工具姿勢制御による指令による移動（ただし、工具姿勢制御による指令ではＣ軸はこの区間で移動しない。図６参照。）を行う。動作２ではＡ軸の移動指令は０としＣ軸はステップＳＪ６の移動指令による移動を行う。動作３ではＡ軸はステップＳＪ８の移動指令による移動、Ｃ軸は工具姿勢制御による指令による移動（ただし、工具姿勢制御による指令ではＣ軸はこの区間で移動しない。図６参照。）を行う。
【００６９】
以上説明したように、工具姿勢制御を維持しつつ、Ｃ軸が急激に回転することを防止できるようになり、５軸加工機への負荷を防止できるとともに、ワークＷ面にカッターマークが付くことを防止できる。
【００７０】
これまでは工具ヘッド回転形５軸加工機（図２参照）によって説明したが、５軸加工機にはテーブル回転形（図２２参照）やテーブルと工具ヘッドが回転する混合形（図２３参照）がある。テーブル回転形は２つの回転軸によってテーブルが旋回する５軸加工機であり、混合形は工具ヘッドとテーブルに回転軸が１つずつ備わった５軸加工機である。  
本発明は、これらテーブル回転形および混合形の５軸加工機においても適用できる。図２２のテーブル回転形５軸加工機においてＡ軸は回転軸１、Ｃ軸は回転軸２に相当する。また、図２３の混合形５軸加工機においてＡ軸は回転軸１、Ｃ軸は回転軸２に相当する。また、図２、図２２、図２３では機械の持つ回転軸がＡ軸とＣ軸の２軸であるとしたが、機械によってはＡ軸とＢ軸、またはＢ軸とＣ軸の２軸を持つ場合もある。本発明はこのような機械に対しても適用できる。
【００７１】
テーブル回転形および混合形の５軸加工機も工具ヘッド回転形の５軸加工機と同様に、工具姿勢を制御する回転軸２軸を有する。このうち１軸はワークに対して工具姿勢を傾斜させる働きがあり、他の１軸はワークに対して工具姿勢を回転させる働きがある。前者を回転軸１、後者を回転軸２と呼ぶ。回転軸１の位置を調節し、工具軸方向を回転軸２の回転中心軸と平行にするとき、回転軸２の位置は工具姿勢に影響を与えなくなる。このときの回転軸１の位置を特異点と呼ぶ。
【図面の簡単な説明】
【００７２】
【図１】工具姿勢制御を説明する図である。
【図２】工具ヘッドが回転する形式の５軸加工機の説明図である。
【図３】本発明のアルゴリズムを実施する数値制御装置の要部ブロック図である。
【図４】本発明の実施形態を説明する機能ブロック図である。
【図５】加工プログラムの一例である。
【図６】指令ブロック開始時刻からの経過時間に対するＡ軸、Ｃ軸の位置の変化をグラフにした図である。
【図７】機械の動作を工具と工具取付部だけ取り出し機械の上方から見た図である。
【図８】機械上方からみた機械制御点の移動のみを表した図である。
【図９】特異点通過判断部の処理のアルゴリズムを示すフローチャートである。
【図１０】本発明の実施の形態１における指令ブロック開始時刻からの時間に対するＡ軸、Ｃ軸の位置の変化を表したグラフである。
【図１１】本発明の実施の形態１における機械上方から見た機械制御点の移動を表した図である。
【図１２−１】本発明の実施の形態１における特異点動作回避準備部が処理するアルゴリズムを示すフローチャートである。
【図１２−２】本発明の実施の形態１における特異点動作回避部が処理するアルゴリズムを示すフローチャートである。
【図１３】本発明の実施の形態２の指令ブロック開始時刻からの時間に対するＡ軸、Ｃ軸の位置の変化を表したグラフである。
【図１４】本発明の実施の形態２における機械上方から見た機械制御点の移動を表した図である。
【図１５−１】本発明の実施の形態２における特異点動作回避準備部が処理するアルゴリズムを示すフローチャートである。
【図１５−２】本発明の実施の形態２における特異点動作回避部が処理するアルゴリズムを示すフローチャートである。
【図１６】本発明の実施の形態３の指令ブロック開始時刻からの時間に対するＡ軸、Ｃ軸の位置の変化を表したグラフである。
【図１７】本発明の実施の形態３における機械上方から見た機械制御点の移動を表した図である。
【図１８−１】本発明の実施の形態３における特異点動作回避準備部が処理するアルゴリズムを示すフローチャートである。
【図１８−２】本発明の実施の形態３における特異点動作回避部が処理するアルゴリズムを示すフローチャートである。
【図１９】本発明の実施の形態４の指令ブロック開始時刻からの時間に対するＡ軸、Ｃ軸の位置の変化を表したグラフである。
【図２０】本発明の実施の形態４における機械上方から見た機械制御点の移動を表した図である。
【図２１−１】本発明の実施の形態４における特異点動作回避準備部が処理するアルゴリズムを示すフローチャートである。
【図２１−２】本発明の実施の形態４における特異点動作回避部が処理するアルゴリズムを示すフローチャートである。
【図２２】テーブル回転形の５軸加工機の説明図である。
【図２３】混合形の５軸加工機の説明図である。
【符号の説明】
【００７３】
１  工具
２  工具取付部
３  機械制御点
４  テーブル
Ｗ  ワーク
１０  数値制御装置
１１  ＣＰＵ
１２  メモリ
１３  ＰＭＣ
１４  表示器
１５  入力機器
１６  インタフェース
１７  軸制御回路
１８  サーボアンプ
１９  サーボモータ
２０  スピンドル制御回路
２１  スピンドルアンプ
２２  スピンドルモータ
３０  指令解析部
３１  補間処理部
３４  各軸用加減速部
３５  サーボ制御
３６  特異点通過判断部
３７  特異点動作回避準備部
３８  特異点動作回避部
Ｓ  指令ブロック始点における機械制御点の位置
Ｅ  指令ブロック終点における機械制御点の位置
Ｐ  特異点における機械制御点の位置
【図１】
2010140312.tif 000003
【図３】
2010140312.tif 000004
【図４】
2010140312.tif 000005
【図５】
2010140312.tif 000006
【図６】
2010140312.tif 000007
【図７】
2010140312.tif 000008
【図８】
2010140312.tif 000009
【図９】
2010140312.tif 000010
【図１０】
2010140312.tif 000011
【図１１】
2010140312.tif 000012
【図１２−１】
2010140312.tif 000013
【図１２−２】
2010140312.tif 000014
【図１３】
2010140312.tif 000015
【図１４】
2010140312.tif 000016
【図１５−１】
2010140312.tif 000017
【図１５−２】
2010140312.tif 000018
【図１６】
2010140312.tif 000019
【図１７】
2010140312.tif 000020
【図１８−１】
2010140312.tif 000021
【図１８−２】
2010140312.tif 000022
【図１９】
2010140312.tif 000023
【図２０】
2010140312.tif 000024
【図２１−１】
2010140312.tif 000025
【図２１−２】
2010140312.tif 000026
【図２】
2010140312.tif 000027
【図２２】
2010140312.tif 000028
【図２３】
2010140312.tif 000029