JP2019016216A - 数値制御工作機械測定装置 - Google Patents
数値制御工作機械測定装置 Download PDFInfo
- Publication number
- JP2019016216A JP2019016216A JP2017133891A JP2017133891A JP2019016216A JP 2019016216 A JP2019016216 A JP 2019016216A JP 2017133891 A JP2017133891 A JP 2017133891A JP 2017133891 A JP2017133891 A JP 2017133891A JP 2019016216 A JP2019016216 A JP 2019016216A
- Authority
- JP
- Japan
- Prior art keywords
- error
- command
- path
- machine tool
- speed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Numerical Control (AREA)
Abstract
【課題】実位置と指令位置との間の連続的な誤差を演算し、誤差要素と速度要素との少なくとも2次元要素で表示あるいは評価を行う数値制御工作機械測定装置。【解決手段】工作機械を運動させるための指令経路を指令する経路指令部と、離散的時刻での前記指令経路上の指令位置、または前記指令経路上に指令された指令位置を取得する指令位置取得部と、前記工作機械が前記指令経路に対する運動を行なった結果としての離散的時刻での実位置を取得する実位置取得部と、前記指令位置を結んで指令経路とし前記実位置を結んで実経路としそれらの経路の間の誤差を演算する誤差演算部と、前記指令経路に対する運動を行った時間を測定し速度要素を演算するとともに、前記指令経路と前記実経路との間の誤差ベクトルから誤差要素を演算し前記速度要素とともに少なくとも2次元の座標系で速度・誤差を表示する速度・誤差表示部を有する数値制御工作機械測定装置を提供する。【選択図】図2
Description
本発明は、数値制御装置が制御する工作機械である数値制御工作機械の運動性能を測定する数値制御工作機械測定装置に関する。
数値制御工作機械の重要な運動性能は「ワーク(工作物)を所望の精度内でできるだけ短時間に加工する」ことである。したがって、数値制御工作機械の運動性能を測定するには実際に加工を行い加工時間を測定するとともに加工したワークの精度を測定することが望ましい。しかし、実際に加工を行い加工したワークを測定するには時間、労力がかかるとともに3次元測定機なども必要となり、困難である。また、数値制御工作機械の運動性能を包括的に測定するには多種多様なワークを加工して測定しなければならず、現実的でない。そのため、加工は行なわず、測定用の指令経路を数値制御工作機械に指令して運動させ、どれだけの測定時間(運動時間)あるいはどれだけの測定速度(運動速度)においてどれだけの誤差(実際に運動する実経路と指令経路との誤差)で運動できるかを測定することが一般に行なわれる。そのように数値制御工作機械の運動性能を測定する従来技術としては、次のようなものがある。
特許文献1には、複数の可動軸から検出位置をフィードバックするとともに加速度計を取付け加速度を2階積分して機械位置を得、機械位置のプロファイルをモデルにより推定されるプロファイルまたは検出器によるプロファイルによって補正することが記載されている。また、軌跡誤差が生じると推定される運動軌跡誤差発生範囲において加速度を2階積分することが記載されている。しかし、この技術には次のような問題点がある。
・運動軌跡誤差発生範囲においてのみ加速度を2階積分して機械位置を得るため、誤差(軌跡誤差)は連続的に得られない。
・指令経路に対する誤差(軌跡誤差)を時間軸で測定しているが、単に時間軸上で誤差を表示しているのみであり、誤差を測定時間あるいは測定速度と合わせて少なくとも2次元データとして表示および評価するという技術思想はない。
・加速度を2階積分して機械位置を得るため、得られた機械位置は積分による誤差を含む。
・機械位置を補正するものの、モデルによる推定位置のプロファイルによって補正する場合は、推定位置であるため、さらに誤差を含む。また検出位置のプロファイルによって補正する場合は、検出位置をフィードバックする数値制御装置からのインタフェースが必要である。そのインタフェースを提供しない数値制御装置が制御する工作機械には適用できない。
・指令経路に対する誤差(軌跡誤差)を時間軸で測定しているが、単に時間軸上で誤差を表示しているのみであり、誤差を測定時間あるいは測定速度と合わせて少なくとも2次元データとして表示および評価するという技術思想はない。
・加速度を2階積分して機械位置を得るため、得られた機械位置は積分による誤差を含む。
・機械位置を補正するものの、モデルによる推定位置のプロファイルによって補正する場合は、推定位置であるため、さらに誤差を含む。また検出位置のプロファイルによって補正する場合は、検出位置をフィードバックする数値制御装置からのインタフェースが必要である。そのインタフェースを提供しない数値制御装置が制御する工作機械には適用できない。
特許文献2には、指令位置、実位置を取得するとともに実位置から指令線分または指令位置への長さの短いものを誤差として計算して表示することが記載されている。しかし、この技術には次のような問題点がある。
・特にコーナの内側を運動する場合などにおいて誤差に不連続性が生じることがある。
・指令経路に対する誤差を測定して表示するのみであり、誤差を測定時間あるいは測定速度と合わせて表示および評価するという技術思想はない。
・数値制御装置から指令位置、実位置を入手する必要がある。つまり、それらのインタフェースを提供しない数値制御装置が制御する工作機械には適用できない。
・特にコーナの内側を運動する場合などにおいて誤差に不連続性が生じることがある。
・指令経路に対する誤差を測定して表示するのみであり、誤差を測定時間あるいは測定速度と合わせて表示および評価するという技術思想はない。
・数値制御装置から指令位置、実位置を入手する必要がある。つまり、それらのインタフェースを提供しない数値制御装置が制御する工作機械には適用できない。
非特許文献1には、上述の誤差の不連続性について、第9章の2ページ目に図9.2を参照しながら「DBBやKGMなどを用いた測定では、輪郭運動誤差は運動軌跡上の各点から最も近い指令経路への垂線の長さと定義されており、」「指令経路が滑らかでない場合は、誤差軌跡が不連続になる」と記載されている。(具体的には図8を参照して後述する。)
特許文献3には、指令位置からサーボ位置(実位置)への誤差を計算し最も大きいものを誤差とする、サーボ位置(実位置)から指令位置への誤差を計算し最も大きいものを誤差とする、複数の精度データ及び複数の速度データに基づいて予測加工時間及び予測加工誤差を求め許容加工内で最も短い予測加工時間に対する精度データと速度データを求めることが記載されている。しかしこの技術には次のような問題点がある。
・誤差としては最大値を求めているだけであり、連続的に誤差を求めていない。
・誤差を測定時間あるいは測定速度と合わせて少なくとも2次元データとして表示および評価するという技術思想はない。
・誤差としては最大値を求めているだけであり、連続的に誤差を求めていない。
・誤差を測定時間あるいは測定速度と合わせて少なくとも2次元データとして表示および評価するという技術思想はない。
まとめると、これらの従来技術には共通した次の問題点がある。
問題点(1)誤差が不連続である。あるいは、連続した誤差とならない場合がある。
問題点(2)誤差を測定時間あるいは測定速度と合わせて少なくとも2次元データとして表示および評価するという技術思想がない。
問題点(1)誤差が不連続である。あるいは、連続した誤差とならない場合がある。
問題点(2)誤差を測定時間あるいは測定速度と合わせて少なくとも2次元データとして表示および評価するという技術思想がない。
松原厚、「精密位置決め・送り系設計のための制御工学」、森北出版株式会社、第1版第3刷、2013年
上述のように、従来技術では誤差を測定時間あるいは測定速度と合わせて少なくとも2次元データとして表示および評価するという技術思想はない。
その1つの理由は、実経路と指令経路の誤差を連続的に計算していないため、誤差の平均値や標準偏差などの統計的データを得られないことがあると考えらえる。そのため、誤差を1つの次元として誤差の平均値や標準偏差などを示し、他の次元として測定時間あるいは測定速度と合わせて表示および評価するという技術思想もない。
その1つの理由は、実経路と指令経路の誤差を連続的に計算していないため、誤差の平均値や標準偏差などの統計的データを得られないことがあると考えらえる。そのため、誤差を1つの次元として誤差の平均値や標準偏差などを示し、他の次元として測定時間あるいは測定速度と合わせて表示および評価するという技術思想もない。
誤差を連続的に計算できない主な理由は、特許文献2にもあるように、あるいは非特許文献1にも指摘されているように、実経路から指令経路への誤差のみを計算しているためである。コーナのように進行方向が不連続に変化する指令経路に対して実経路が内回る場合、実経路長が指令経路長より短くなる。その場合、実経路(短い経路長の経路)から指令経路(長い経路長の経路)に向かって誤差として最短距離を計算すると、複数の方向が最短距離となることがあり、誤差が不連続になるとともにその複数の方向の間に本来の誤差とすべき距離が存在することがあるためである。言い換えると、経路長の短い実経路から経路長の長い指令経路に向かって誤差を計算すると、発散方向、つまり不安定となり、その結果、誤差が不連続となり、誤差を連続的かつ定量的に正しく計算できないことになる。(具体的には図8を参照して後述する。)
そこで、本発明では、数値制御工作機械を運動させたときの実位置を結んだ実経路と指令位置を結んだ指令経路において、長さの長い経路から短い経路へ誤差を計算することによりそれらの間の連続的な誤差を演算する。また、測定速度や測定時間の速度要素を1方の次元とし、他方の次元として誤差や誤差変化の平均値や最大値や標準偏差などを示して表示する速度・誤差表示部を有する数値制御工作機械測定装置を提供する。つまり、主に次の点を課題とする。
課題(1)実位置と指令位置との間の連続的な誤差を演算する。
課題(2)誤差要素(平均誤差や最大誤差など)と速度要素(測定時間や測定速度など)との少なくとも2次元要素で表示あるいは評価を行うことを可能にする。
課題(1)実位置と指令位置との間の連続的な誤差を演算する。
課題(2)誤差要素(平均誤差や最大誤差など)と速度要素(測定時間や測定速度など)との少なくとも2次元要素で表示あるいは評価を行うことを可能にする。
ここで、課題(1)と課題(2)は相互に関連するとともに独立性も有しているので、効果とも関連させて整理しておく。
i)コーナを含む任意の指令経路に対する課題(2)を達成するには、課題(1)を達成することが必要である。平均誤差など統計データを得るには誤差が連続的である必要があるためである。
後述する実施形態1および実施形態2において、(B)速度・誤差表示部を使用する場合が対応する。この場合、課題(1)を達成する誤差演算部と課題(2)を達成する(B)速度・誤差表示部に特長がある。
ii)コーナのない指令経路であれば、課題(2)だけの達成にも効果がある。
後述する実施形態3において、課題(2)を達成する(B)速度・誤差表示部が対応する。
iii)誤差を拡大して描画経路を作成しその描画経路を表示することに対しては、課題(1)だけの達成にも効果がある。
後述する実施形態1および実施形態2において、(A)描画経路表示部を使用する((B)速度・誤差表示部を使用しない)場合が対応する。この場合、課題(1)を達成する誤差演算部に特長がある。
i)コーナを含む任意の指令経路に対する課題(2)を達成するには、課題(1)を達成することが必要である。平均誤差など統計データを得るには誤差が連続的である必要があるためである。
後述する実施形態1および実施形態2において、(B)速度・誤差表示部を使用する場合が対応する。この場合、課題(1)を達成する誤差演算部と課題(2)を達成する(B)速度・誤差表示部に特長がある。
ii)コーナのない指令経路であれば、課題(2)だけの達成にも効果がある。
後述する実施形態3において、課題(2)を達成する(B)速度・誤差表示部が対応する。
iii)誤差を拡大して描画経路を作成しその描画経路を表示することに対しては、課題(1)だけの達成にも効果がある。
後述する実施形態1および実施形態2において、(A)描画経路表示部を使用する((B)速度・誤差表示部を使用しない)場合が対応する。この場合、課題(1)を達成する誤差演算部に特長がある。
本願の請求項1に係る発明は、数値制御装置が制御する工作機械である数値制御工作機械の運動性能を測定する数値制御工作機械測定装置であって、前記工作機械を運動させるための指令経路を前記数値制御装置に指令する経路指令部と、離散的時刻での前記指令経路上の指令位置、または前記指令経路上に指令された指令位置を取得する指令位置取得部と、前記工作機械が前記指令経路に対する運動を行なった結果としての離散的時刻での実位置を取得する実位置取得部と、前記指令位置を結んで指令経路とし前記実位置を結んで実経路としそれらのうち長さの長い経路から短い経路への誤差を演算する誤差演算部を有する数値制御工作機械測定装置である。
請求項2に係る発明は、前記指令経路と前記実経路との間の誤差ベクトルを所定の倍率だけ拡大して前記指令経路に加算した描画経路を表示する描画経路表示部をも有する請求項1に記載の数値制御工作機械測定装置である。
請求項3に係る発明は、前記工作機械が前記指令経路に対する運動を行った結果としての時間を測定し速度要素を演算するとともに、前記指令経路と前記実経路との間の誤差ベクトルから誤差要素を演算し前記速度要素とともに少なくとも2次元の座標系で速度・誤差を表示する、または前記速度要素と前記誤差要素を含む関数である評価関数を演算し表示する速度・誤差表示部をも有する請求項1に記載の数値制御工作機械測定装置である。
請求項3に係る発明は、前記工作機械が前記指令経路に対する運動を行った結果としての時間を測定し速度要素を演算するとともに、前記指令経路と前記実経路との間の誤差ベクトルから誤差要素を演算し前記速度要素とともに少なくとも2次元の座標系で速度・誤差を表示する、または前記速度要素と前記誤差要素を含む関数である評価関数を演算し表示する速度・誤差表示部をも有する請求項1に記載の数値制御工作機械測定装置である。
請求項4に係る発明は、数値制御装置が制御する工作機械である数値制御工作機械の運動性能を測定する数値制御工作機械測定装置であって、前記工作機械を運動させるための指令経路を前記数値制御装置に指令する経路指令部と、離散的時刻での前記指令経路上の指令位置、または前記指令経路上に指令された指令位置を取得する指令位置取得部と、前記工作機械が前記指令経路に対する運動を行なった結果としての離散的時刻での実位置を取得する実位置取得部と、前記指令位置を結んで指令経路とし前記実位置を結んで実経路としそれらの経路の間の誤差を演算する誤差演算部と、前記工作機械が前記指令経路に対する運動を行った結果としての時間を測定し速度要素を演算するとともに、前記指令経路と前記実経路との間の誤差ベクトルから誤差要素を演算し前記速度要素とともに少なくとも2次元の座標系で速度・誤差を表示する、または前記速度要素と前記誤差要素を含む関数である評価関数を演算し表示する速度・誤差表示部を有する数値制御工作機械測定装置である。
請求項5に係る発明は、前記速度要素は、前記指令経路の運動を行う時間を測定した測定時間、または前記指令経路の長さを前記測定時間で割った測定速度である請求項3または請求項4に記載の数値制御工作機械測定装置である。
請求項6に係る発明は、前記誤差要素は、前記誤差ベクトルの長さの平均である平均誤差、前記誤差ベクトルの長さの最大値である最大誤差、前記誤差ベクトルの長さの標準偏差である標準偏差誤差、前記誤差ベクトルの長さの前記指令経路に対する変化量である誤差変化量の平均値である平均誤差変化、または前記誤差変化量の最大値である最大誤差変化である請求項3または請求項4に記載の数値制御工作機械測定装置である。
請求項6に係る発明は、前記誤差要素は、前記誤差ベクトルの長さの平均である平均誤差、前記誤差ベクトルの長さの最大値である最大誤差、前記誤差ベクトルの長さの標準偏差である標準偏差誤差、前記誤差ベクトルの長さの前記指令経路に対する変化量である誤差変化量の平均値である平均誤差変化、または前記誤差変化量の最大値である最大誤差変化である請求項3または請求項4に記載の数値制御工作機械測定装置である。
請求項7に係る発明は、前記実位置は、前記工作機械が前記指令経路に対する運動を行った結果としての離散的時刻での測定位置を平均化した位置である請求項1または請求項4に記載の数値制御工作機械測定装置である。
請求項8に係る発明は、前記指令経路は、線分をらせん状につないだ線分らせん曲線、1つの円の中に内接および外接を繰り返して作成した複数の円から成るO曲線またはその部分曲線、前記O曲線またはその部分曲線上にとった点群の間を線分で結んだ線分O曲線である請求項1〜請求項7のいずれか1つに記載の数値制御工作機械測定装置である。
請求項8に係る発明は、前記指令経路は、線分をらせん状につないだ線分らせん曲線、1つの円の中に内接および外接を繰り返して作成した複数の円から成るO曲線またはその部分曲線、前記O曲線またはその部分曲線上にとった点群の間を線分で結んだ線分O曲線である請求項1〜請求項7のいずれか1つに記載の数値制御工作機械測定装置である。
請求項9に係る発明は、前記工作機械は、少なくとも直進軸2軸または少なくとも直進軸1軸と回転軸1軸を有する工作機械である請求項1〜請求項11のいずれか1つに記載の数値制御工作機械測定装置である。
課題(1)の達成により、連続的な誤差表示が可能となる。(上述iii)) また、課題(1)の達成により、コーナを含む指令経路に対する課題(2)を達成できる。(上述i))
さらに、課題(2)の達成により、図1のように数値制御工作機械の運動性能として重要な2つの要素である誤差要素と速度要素(ここでは例として最大誤差と平均誤差、および測定速度)に絞って表示および評価することが可能となる。(上述のi),ii))そのことにより、数値制御工作機械の運動性能がわかりやすくなる。また、他の条件との比較が容易となり、さらに次の効果をも得られる。
1)複数の数値制御工作機械の運動性能を容易に評価および比較することを可能にする。
このことにより、例えばある加工を行うのに適切な数値制御工作機械を選定する場合に、運動性能のデータとして参考にすることができる。
2)複数の速度関連パラメータに対してどのパラメータを変化させるとどのように数値制御工作機械の運動性能が変化するかを容易に評価および比較することを可能にする。
このことにより、例えばある数値制御工作機械における加工に適した速度関連パラメータを調整する時のデータとして参考にすることができる。
さらに、課題(2)の達成により、図1のように数値制御工作機械の運動性能として重要な2つの要素である誤差要素と速度要素(ここでは例として最大誤差と平均誤差、および測定速度)に絞って表示および評価することが可能となる。(上述のi),ii))そのことにより、数値制御工作機械の運動性能がわかりやすくなる。また、他の条件との比較が容易となり、さらに次の効果をも得られる。
1)複数の数値制御工作機械の運動性能を容易に評価および比較することを可能にする。
このことにより、例えばある加工を行うのに適切な数値制御工作機械を選定する場合に、運動性能のデータとして参考にすることができる。
2)複数の速度関連パラメータに対してどのパラメータを変化させるとどのように数値制御工作機械の運動性能が変化するかを容易に評価および比較することを可能にする。
このことにより、例えばある数値制御工作機械における加工に適した速度関連パラメータを調整する時のデータとして参考にすることができる。
図1は、ある数値制御工作機械において、F5000(=5m/min),F10000(=10m/min),F20000(=20m/min)の速度指令である指令経路を運動した時の平均誤差と最大誤差について、横軸を速度要素(測定速度=経路長/測定時間)、縦軸を誤差要素(最大誤差と平均誤差)で表示した例である。F10000を指令しても実経路における加減速によって測定速度(平均速度)としては10m/minは出ない。指令速度通りは出ていない測定速度を横軸とし、実経路を運動した時の平均誤差および最大誤差を縦軸として2次元に配置して表示している。他の数値制御工作機械を同じ条件で運動させた結果を重ねて表示する、あるいは同じ数値制御工作機械において速度パラメータ(加速度や加加速度パラメータなど)やサーボパラメータ(ループゲインやフィードフォワード係数など)を変化させて運動させた結果を重ねて表示することによって、数値制御工作機械の違いによってどのように運動性能が変化するか、速度パラメータやサーボパラメータの変化によってどのように運動性能が変化するかを容易に評価することができる。
つまり、数値制御工作機械の重要な運動性能である「ワーク(工作物)を所望の精度内でできるだけ短時間に加工する」ことがどの程度実現できるかを容易に評価できる。
なお、表示するとは画面上に表示することのみならず図上に図示することやデータとして外部機器に出力して外部機器において画面表示や図示することも含む。
つまり、数値制御工作機械の重要な運動性能である「ワーク(工作物)を所望の精度内でできるだけ短時間に加工する」ことがどの程度実現できるかを容易に評価できる。
なお、表示するとは画面上に表示することのみならず図上に図示することやデータとして外部機器に出力して外部機器において画面表示や図示することも含む。
以下、本発明の実施形態について、実施形態1〜実施形態5として図面を参照し説明する。なお、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。
1.実施形態1
数値制御工作機械測定装置7は数値制御装置2外にあり、指令経路は線分をらせん状につないだ線分らせん曲線とし、少なくとも2軸の直進軸(図2ではX軸とY軸)を有する工作機械3からの実位置を取得する実施形態について説明する。
<構成>
図2で本発明に係るシステム構成例を説明する。本実施形態の数値制御工作機械測定装置7は、数値制御装置2が制御する工作機械3である数値制御工作機械1における加工部の運動性能を測定するものである。数値制御装置2は、数値制御工作機械測定装置7が有する経路指令部8から送られた指令経路に基づいて工作機械3を運動させる。指令経路上の指令位置は経路指令部8または数値制御装置2から指令位置取得部9が取得する。工作機械3の加工部とテーブル5には測定装置6が装着されている。2次元(図ではX,Y軸)の任意経路の指令経路に基づいて測定装置6が相対運動し、実際に運動した実位置が数値制御工作機械測定装置7の実位置取得部11に送られる。このようにして工作機械3の運動性能を測定する装置および方法は一般に知られている。(例えば、垣野らによる「交差格子スケールを用いた超精密NC工作機械3の運動精度の測定と加工精度の改善」、精密工学会誌 Vol.62, No.11, 1996, ページ1612−1616 や、特開平11−216644「機械精度の測定装置および測定方法」を参照。)
そして、本発明では数値制御工作機械測定装置7は誤差演算部10を有し、誤差演算部10は指令位置取得部9が取得した指令位置と実位置取得部11が取得した実位置とから誤差(誤差ベクトルおよび誤差ベクトルの長さの平均値や最大値などの誤差量)を演算する。また、指令経路に基づいて工作機械3が運動するに要した時間(測定時間)について、指令位置取得部9が数値制御装置2から得る。
数値制御工作機械測定装置7は数値制御装置2外にあり、指令経路は線分をらせん状につないだ線分らせん曲線とし、少なくとも2軸の直進軸(図2ではX軸とY軸)を有する工作機械3からの実位置を取得する実施形態について説明する。
<構成>
図2で本発明に係るシステム構成例を説明する。本実施形態の数値制御工作機械測定装置7は、数値制御装置2が制御する工作機械3である数値制御工作機械1における加工部の運動性能を測定するものである。数値制御装置2は、数値制御工作機械測定装置7が有する経路指令部8から送られた指令経路に基づいて工作機械3を運動させる。指令経路上の指令位置は経路指令部8または数値制御装置2から指令位置取得部9が取得する。工作機械3の加工部とテーブル5には測定装置6が装着されている。2次元(図ではX,Y軸)の任意経路の指令経路に基づいて測定装置6が相対運動し、実際に運動した実位置が数値制御工作機械測定装置7の実位置取得部11に送られる。このようにして工作機械3の運動性能を測定する装置および方法は一般に知られている。(例えば、垣野らによる「交差格子スケールを用いた超精密NC工作機械3の運動精度の測定と加工精度の改善」、精密工学会誌 Vol.62, No.11, 1996, ページ1612−1616 や、特開平11−216644「機械精度の測定装置および測定方法」を参照。)
そして、本発明では数値制御工作機械測定装置7は誤差演算部10を有し、誤差演算部10は指令位置取得部9が取得した指令位置と実位置取得部11が取得した実位置とから誤差(誤差ベクトルおよび誤差ベクトルの長さの平均値や最大値などの誤差量)を演算する。また、指令経路に基づいて工作機械3が運動するに要した時間(測定時間)について、指令位置取得部9が数値制御装置2から得る。
さらに次の(A)または(B)を有する。この(A),(B)は図2に示されている(A),(B)に対応する。(A),(B)はどちらかあればよい。もちろん両方あってもよい。主に、(A)が課題(1)を達成し、(B)が課題(2)を達成する。
(A)誤差演算部10は演算した誤差を描画経路表示部12に送る。描画経路表示部12は指令経路に対し誤差ベクトルに係数を乗算し指令経路を加算して描画経路を演算し、指令経路とともに表示する。
(B)誤差演算部10は演算した誤差を速度・誤差表示部13に送る。速度・誤差表示部13は誤差要素を演算する。指令位置取得部9は指令経路に基づく運動にかかった時間を数値制御装置2から入手し測定時間として速度・誤差表示部13に送る。または、実位置取得部11が運動時間を測定し測定時間として速度・誤差表示部13に送ってもよい。誤差演算部10は指令位置に基づき指令経路の長さを計算し速度・誤差表示部13に送る。または、経路指令部8から指令経路の長さを速度・誤差表示部13に送ってもよい。速度・誤差表示部13は測定時間と指令経路の長さから速度要素を演算し、速度要素と誤差要素を少なくとも2次元表示する。
(A)誤差演算部10は演算した誤差を描画経路表示部12に送る。描画経路表示部12は指令経路に対し誤差ベクトルに係数を乗算し指令経路を加算して描画経路を演算し、指令経路とともに表示する。
(B)誤差演算部10は演算した誤差を速度・誤差表示部13に送る。速度・誤差表示部13は誤差要素を演算する。指令位置取得部9は指令経路に基づく運動にかかった時間を数値制御装置2から入手し測定時間として速度・誤差表示部13に送る。または、実位置取得部11が運動時間を測定し測定時間として速度・誤差表示部13に送ってもよい。誤差演算部10は指令位置に基づき指令経路の長さを計算し速度・誤差表示部13に送る。または、経路指令部8から指令経路の長さを速度・誤差表示部13に送ってもよい。速度・誤差表示部13は測定時間と指令経路の長さから速度要素を演算し、速度要素と誤差要素を少なくとも2次元表示する。
なお、ここでは数値制御工作機械測定装置7が経路指令部8を有する構成としているが、数値制御装置2が経路指令部8を有し、数値制御装置2が指令経路に基づいて離散的時刻毎に指令位置を指令位置取得部9に送る、または指令経路上に指令された指令位置を指令位置取得部9に送る構成としてもよい。その場合、数値制御工作機械測定装置7の経路指令部8は数値制御装置2内に存在する構成となる。
<指令位置取得、実位置取得、誤差演算>
指令位置の取得、実位置の取得、誤差の演算について、詳細に説明する。
(1)指令位置取得
指令経路は経路指令部8で作成され、指令位置取得部9は経路指令部8から離散的時刻の指令経路上の指令位置を取得する、または、指令経路上に指令された指令位置を取得する。あるいは、経路指令部8で作成された指令経路は数値制御装置2に送られ、数値制御装置2が指令経路に基づいて工作機械3を運動させるとともに離散的時刻の指令経路上の指令位置を作成し、指令位置取得部9が数値制御装置2からその指令位置を取得する。または、数値制御装置2において指令経路上に指令された指令位置を、指令位置取得部9が数値制御装置2から取得する。
指令位置の取得、実位置の取得、誤差の演算について、詳細に説明する。
(1)指令位置取得
指令経路は経路指令部8で作成され、指令位置取得部9は経路指令部8から離散的時刻の指令経路上の指令位置を取得する、または、指令経路上に指令された指令位置を取得する。あるいは、経路指令部8で作成された指令経路は数値制御装置2に送られ、数値制御装置2が指令経路に基づいて工作機械3を運動させるとともに離散的時刻の指令経路上の指令位置を作成し、指令位置取得部9が数値制御装置2からその指令位置を取得する。または、数値制御装置2において指令経路上に指令された指令位置を、指令位置取得部9が数値制御装置2から取得する。
(2)実位置取得
実位置取得部11は測定装置6が離散的時刻で測定した位置を実位置として取得する。
(3)誤差演算
誤差演算部10は、前記指令位置を結んで指令経路とし、前記実位置を結んで実経路とし、それらのうち長さの長い経路から短い経路へ誤差を演算する。より詳細には次のように、誤差を演算する。
1)指令経路と実経路の交点を求める。
2)2つの交点間の指令経路長と実経路長を比較する。
3)それら2つの交点間の指令経路長および実経路長について、経路長の長い方から経路長の短い方へ誤差を演算する。つまり、交点間の実経路の長さが指令経路の長さより長い場合、実位置から指令経路への最短位置を求めその最短位置から実位置へのベクトルを誤差ベクトルとし、交点間の指令経路の長さが実経路の長さより長い場合、指令位置から実経路の最短位置へのベクトルを誤差ベクトルとして演算する。
このように、経路長の長い経路から経路長の短い経路へ誤差を演算することにより、収束方向、つまりより安定となる方向に誤差を計算することができ、その結果、コーナなど進行方向が変わるところにおいても連続的かつ定量的に正しい誤差が得られる。
実位置取得部11は測定装置6が離散的時刻で測定した位置を実位置として取得する。
(3)誤差演算
誤差演算部10は、前記指令位置を結んで指令経路とし、前記実位置を結んで実経路とし、それらのうち長さの長い経路から短い経路へ誤差を演算する。より詳細には次のように、誤差を演算する。
1)指令経路と実経路の交点を求める。
2)2つの交点間の指令経路長と実経路長を比較する。
3)それら2つの交点間の指令経路長および実経路長について、経路長の長い方から経路長の短い方へ誤差を演算する。つまり、交点間の実経路の長さが指令経路の長さより長い場合、実位置から指令経路への最短位置を求めその最短位置から実位置へのベクトルを誤差ベクトルとし、交点間の指令経路の長さが実経路の長さより長い場合、指令位置から実経路の最短位置へのベクトルを誤差ベクトルとして演算する。
このように、経路長の長い経路から経路長の短い経路へ誤差を演算することにより、収束方向、つまりより安定となる方向に誤差を計算することができ、その結果、コーナなど進行方向が変わるところにおいても連続的かつ定量的に正しい誤差が得られる。
指令位置取得部9、実位置取得部11、誤差演算部10、描画経路表示部12および速度・誤差表示部13について、フローチャート(図4、図5)に沿って詳述する。
[ステップS101]指令位置取得部9が、指令位置(P1,P2,・・・,Pm,Pm+1,・・・,Ppe)を取得する。
[ステップS102]実位置取得部11が、実位置(Q1,Q2,・・・,Qn,Qn+1,・・・,Qqe)を取得する。
それらは、例えば図3のように取得される。Pm、Qnなどは位置ベクトルPm(Pmx,Pmy)、Qn(Qnx,Qny)などである。指令位置の個数と実位置の個数は同じでなく、一般には加減速遅れやサーボ遅れによって実位置の個数の方が多い。L(Qn,Qn+1)やL(Pm,Pm+1)などは、位置QnとQn+1を結ぶ線分(ベクトル)、位置PmとPm+1を結ぶ線分(ベクトル)などを示す。小文字の後の+1や−1などは小文字に対する表記である。つまり、Pm+1とはPの(m+1)番目という表記である。以降も同様である。
始点と終点の間において、
指令経路:L(P1,P2)、L(P2,P3)、、L(Pm,Pm+1)、、L(Ppe−1,Ppe) (m=1,2,,,pe−1)
実経路:L(Q1,Q2)、L(Q2,Q3)、、L(Qn,Qn+1)、、L(Qqe−1,Qqe) (n=1,2,,,qe−1)
である。
[ステップS101]指令位置取得部9が、指令位置(P1,P2,・・・,Pm,Pm+1,・・・,Ppe)を取得する。
[ステップS102]実位置取得部11が、実位置(Q1,Q2,・・・,Qn,Qn+1,・・・,Qqe)を取得する。
それらは、例えば図3のように取得される。Pm、Qnなどは位置ベクトルPm(Pmx,Pmy)、Qn(Qnx,Qny)などである。指令位置の個数と実位置の個数は同じでなく、一般には加減速遅れやサーボ遅れによって実位置の個数の方が多い。L(Qn,Qn+1)やL(Pm,Pm+1)などは、位置QnとQn+1を結ぶ線分(ベクトル)、位置PmとPm+1を結ぶ線分(ベクトル)などを示す。小文字の後の+1や−1などは小文字に対する表記である。つまり、Pm+1とはPの(m+1)番目という表記である。以降も同様である。
始点と終点の間において、
指令経路:L(P1,P2)、L(P2,P3)、、L(Pm,Pm+1)、、L(Ppe−1,Ppe) (m=1,2,,,pe−1)
実経路:L(Q1,Q2)、L(Q2,Q3)、、L(Qn,Qn+1)、、L(Qqe−1,Qqe) (n=1,2,,,qe−1)
である。
ステップS103〜S109(破線枠)は誤差演算部10である。
[ステップS103]初期交点をR1(=P1=Q1)とする。また、j=k=1とする。
[ステップS104]線分L(Qj,Qj+1)が線分L(Pm,Pm+1) (m=2,3,・・・,PE−1) と交点を持つかチェックし、NOならステップS105へ行き、YESならステップS106へ行く。
[ステップS105]j=j+1とし、S104へ行く。つまり、ステップS104とステップS105は、実経路と指令経路が交点を持つところを探索する。
[ステップS106]Rp=Rkとし、Rpを前の交点とする。k=k+1とし、今回交点をRkとする。
RpとRkとの間の指令位置をPm,Pm+1,・・・,Pme、実位置をQn,Qn+1,・・・,Qneとし、それらの指令経路長Lp,実経路長Lqを求める。つまり、次の数1式の計算を行う。
[数1]
Lp
=|L(Rp,Pm)|+|L(Pm,Pm+1)|+・・・+|L(Pme,Rk)|
Lq
=|L(Rp,Qn)|+|L(Qn,Qn+1)|+・・・+|L(Qne,Rk)|
[ステップS103]初期交点をR1(=P1=Q1)とする。また、j=k=1とする。
[ステップS104]線分L(Qj,Qj+1)が線分L(Pm,Pm+1) (m=2,3,・・・,PE−1) と交点を持つかチェックし、NOならステップS105へ行き、YESならステップS106へ行く。
[ステップS105]j=j+1とし、S104へ行く。つまり、ステップS104とステップS105は、実経路と指令経路が交点を持つところを探索する。
[ステップS106]Rp=Rkとし、Rpを前の交点とする。k=k+1とし、今回交点をRkとする。
RpとRkとの間の指令位置をPm,Pm+1,・・・,Pme、実位置をQn,Qn+1,・・・,Qneとし、それらの指令経路長Lp,実経路長Lqを求める。つまり、次の数1式の計算を行う。
[数1]
Lp
=|L(Rp,Pm)|+|L(Pm,Pm+1)|+・・・+|L(Pme,Rk)|
Lq
=|L(Rp,Qn)|+|L(Qn,Qn+1)|+・・・+|L(Qne,Rk)|
このステップについてさらに説明すれば、Rpが前の交点(L(Pm−1,Pm)とL(Qn−1,Qn)の交差する点)、Rkが後の交点(L(Pme,Pme+1)とL(Qne,Qne+1)が交差する点である。ここで、このように実経路と指令経路が交点を持つとは、経路同士が交差する、または一方の経路上の位置が他方の経路上の位置に十分近い(距離がある閾値以下である)場合である。指令位置と実位置から交点を求める計算は従来技術なので詳述しない。なお、始点、終点も交点である。始点、終点以外交点を持たないこともある。そのときは、始点から終点までが指令経路、実経路となる。
[ステップS107]Lq≧Lpかどうかチェックする。つまり、実経路長Lq≧指令経路長Lp かチェックする。YESの場合ステップS108に行き、NOの場合、ステップS109へ行く。YESの場合を(I)、NOの場合を(II)と場合分けする。なお、図3の例はLq≧Lpで描いている。
[ステップS108]実位置(Qn,Qn+1,,,Qne)から指令経路(L(Rp,Pm),L(Pm,Pm+1),,,L(Pme,Rk) の線分群)への最短位置を計算し、各最短位置から各実位置へのベクトルを各誤差ベクトル(Ve(Qn),Ve(Qn+1),,,)とする。
このステップ((I)の場合)について図示して補足する。図6のように、指令位置の列をPm,Pm+1,Pm+2,,,Pme、実位置の列をQn,Qn+1,Qn+2,,,Qneで示し、それらを結ぶ経路を実経路、指令経路とする。それらが持つ2つの交点をRp,Rkとする。交点間の実経路上の各実位置を着目点とし、指令経路上への最短距離の位置を最短位置(Un,Un+1,,,Une)とする。最短位置から着目点へのベクトルを誤差ベクトルとする。つまり、着目点(Qn,Qn+1,Qn+2,,,,Qne)に対応する誤差ベクトルをVe(Qn),Ve(Qn+1),Ve(Qn+2),,,Ve(Qne) とする。最短位置を求める計算は従来技術なので詳述しない。
[ステップS108]実位置(Qn,Qn+1,,,Qne)から指令経路(L(Rp,Pm),L(Pm,Pm+1),,,L(Pme,Rk) の線分群)への最短位置を計算し、各最短位置から各実位置へのベクトルを各誤差ベクトル(Ve(Qn),Ve(Qn+1),,,)とする。
このステップ((I)の場合)について図示して補足する。図6のように、指令位置の列をPm,Pm+1,Pm+2,,,Pme、実位置の列をQn,Qn+1,Qn+2,,,Qneで示し、それらを結ぶ経路を実経路、指令経路とする。それらが持つ2つの交点をRp,Rkとする。交点間の実経路上の各実位置を着目点とし、指令経路上への最短距離の位置を最短位置(Un,Un+1,,,Une)とする。最短位置から着目点へのベクトルを誤差ベクトルとする。つまり、着目点(Qn,Qn+1,Qn+2,,,,Qne)に対応する誤差ベクトルをVe(Qn),Ve(Qn+1),Ve(Qn+2),,,Ve(Qne) とする。最短位置を求める計算は従来技術なので詳述しない。
[ステップS109]指令位置(Pm,Pm+1,,,Pme)から実経路(L(Rp,Qn),L(Qn,Qn+1),,,L(Qne,Rk)の線分群)への最短位置を計算し、各指令位置から各最短位置へのベクトルを誤差ベクトル(Ve(Pm),Ve(Pm+1),,,)とする。
このステップ((II)の場合)について図示して補足する。図7のように、交点間の指令経路上の各指令位置(Pm,Pm+1,Pm+2,,,Pme)を着目点とし、実経路上への最短距離の位置を最短位置(Um,Um+1,,,Ume) とする。着目点から最短位置へのベクトルを誤差ベクトルとする。つまり、着目点(Pm,Pm+1,Pm+2,,,,Pme)に対応する誤差ベクトルをVe(Pm),Ve(Pm+1),Ve(Pm+2),,,,Ve(Pme) とする。最短位置を求める計算は従来技術なので詳述しない。
このステップ((II)の場合)について図示して補足する。図7のように、交点間の指令経路上の各指令位置(Pm,Pm+1,Pm+2,,,Pme)を着目点とし、実経路上への最短距離の位置を最短位置(Um,Um+1,,,Ume) とする。着目点から最短位置へのベクトルを誤差ベクトルとする。つまり、着目点(Pm,Pm+1,Pm+2,,,,Pme)に対応する誤差ベクトルをVe(Pm),Ve(Pm+1),Ve(Pm+2),,,,Ve(Pme) とする。最短位置を求める計算は従来技術なので詳述しない。
ここで、このステップに対照させて、図8によって従来技術では(特にコーナにおいて)誤差が不連続に得られていてかつ定量的に正しく得られていなかったことを説明する。従来技術では実位置から指令経路への最短位置を求めその最短位置から実位置へのベクトルを誤差ベクトルとしていた。つまり、短い経路(実経路)から長い経路(指令経路)へ発散方向に最短位置を求めていたため不安定となり、その結果、誤差は不連続となり特にコーナにおいては定量的に正しくない誤差ベクトルとなっていた。具体的には、図8で示すように、Qn+1からQn+2において誤差ベクトルは急に方向が不連続に変化する。かつ、Pm+2において誤差ベクトルの長さが最大となるため、Pm+2から実経路に向かう誤差ベクトルを最大誤差ベクトルとして求めるべきであるが、その誤差ベクトルを求められていなかったため定量的に正しい誤差ベクトルを求めていなかった。
したがって、本発明によって、上述のようにこの問題点が解決される。つまり、上述のように、経路長の長い経路から経路長の短い経路へ誤差を演算することにより、収束方向、より安定となる方向に誤差を計算することができ、その結果、コーナなど進行方向が変わるところにおいても連続的かつ定量的に正しい誤差ベクトルが得られる。
したがって、本発明によって、上述のようにこの問題点が解決される。つまり、上述のように、経路長の長い経路から経路長の短い経路へ誤差を演算することにより、収束方向、より安定となる方向に誤差を計算することができ、その結果、コーナなど進行方向が変わるところにおいても連続的かつ定量的に正しい誤差ベクトルが得られる。
一点鎖線枠の部分は描画経路表示部12である。
[ステップS110]描画位置(En,En+1,・・・Ene)=各最短位置+k*誤差ベクトル の計算を行い、Rp〜各描画位置〜Rkを表示する。
このステップについて補足する。(I)の場合、描画経路表示部12は、描画位置(En,En+1,・・・Ene)について、数2式の計算を行う。
[数2]
(En,En+1,・・・Ene)=(各最短位置)+k*(誤差ベクトル)
つまり、
En=Un+k*Ve(Qn)
(Ve(Qn)=Qn − Un )
En+1=Un+1 +k*Ve(Qn+1)
(Ve(Qn+1)=Qn+1 − Un+1))
・・・
Ene=Une +k*Ve(Qne)
(Ve(Qne)=Qne − Une)
kは誤差ベクトルを拡大するための係数(所定の倍率)であり、通常は数1000とか数10000などである。(ステップS111も同様。)そして、Rp〜各描画位置(En,En+1,・・・,Ene)〜Rkを線分で結んで表示する。(図9参照。)
[ステップS110]描画位置(En,En+1,・・・Ene)=各最短位置+k*誤差ベクトル の計算を行い、Rp〜各描画位置〜Rkを表示する。
このステップについて補足する。(I)の場合、描画経路表示部12は、描画位置(En,En+1,・・・Ene)について、数2式の計算を行う。
[数2]
(En,En+1,・・・Ene)=(各最短位置)+k*(誤差ベクトル)
つまり、
En=Un+k*Ve(Qn)
(Ve(Qn)=Qn − Un )
En+1=Un+1 +k*Ve(Qn+1)
(Ve(Qn+1)=Qn+1 − Un+1))
・・・
Ene=Une +k*Ve(Qne)
(Ve(Qne)=Qne − Une)
kは誤差ベクトルを拡大するための係数(所定の倍率)であり、通常は数1000とか数10000などである。(ステップS111も同様。)そして、Rp〜各描画位置(En,En+1,・・・,Ene)〜Rkを線分で結んで表示する。(図9参照。)
[ステップS111]描画位置(Em,Em+1,・・・,Eme)= 各指令位置+k*誤差ベクトル の計算を行い、Rp〜各描画位置〜Rkを表示する。
このステップについて補足する。 (II)の場合、描画経路表示部12は、描画位置(Em,Em+1,・・・,Eme)について、数3式の計算を行う。
[数3]
(Em,Em+1,・・・,Eme)=(指令位置)+k*(誤差ベクトル)
つまり、
Em=Pm+k*Ve(Pm)
(Ve(Pm)=Um − Pm)
Em+1=Pm+1 + k*Ve(Pm+1)
(Ve(Pm+1)=Um+1 − Pm)
・・・
Eme=Pm+k*Ve(Pme)
(Ve(Pme)=Ume − Pme)
そして、Rp〜各描画位置(Em,Em+1,・・・Eme)〜Rkを線分で結んで表示する。(図10参照。)
このステップについて補足する。 (II)の場合、描画経路表示部12は、描画位置(Em,Em+1,・・・,Eme)について、数3式の計算を行う。
[数3]
(Em,Em+1,・・・,Eme)=(指令位置)+k*(誤差ベクトル)
つまり、
Em=Pm+k*Ve(Pm)
(Ve(Pm)=Um − Pm)
Em+1=Pm+1 + k*Ve(Pm+1)
(Ve(Pm+1)=Um+1 − Pm)
・・・
Eme=Pm+k*Ve(Pme)
(Ve(Pme)=Ume − Pme)
そして、Rp〜各描画位置(Em,Em+1,・・・Eme)〜Rkを線分で結んで表示する。(図10参照。)
その結果、ステップS110、ステップS111によって、上記(I),(II)の場合に描画位置を結んだ描画経路は図9、図10の一点鎖線のように表示される。図示の便宜上、k=2としている。このように誤差経路を描画経路として拡大表示することによって誤差の様子がわかりやすくなる。通常は同時に指令経路も表示する。
上述のように誤差演算部10で誤差ベクトルを連続的にかつ定量的に正しく演算していることにより、誤差ベクトルを拡大して描画位置を求めそれらを結んで描画経路を表示したとき連続的に正しく表示される。
上述のように誤差演算部10で誤差ベクトルを連続的にかつ定量的に正しく演算していることにより、誤差ベクトルを拡大して描画位置を求めそれらを結んで描画経路を表示したとき連続的に正しく表示される。
二点鎖線枠の部分は速度・誤差表示部13の処理の一部である。
[ステップS112]総誤差面積(Se),総指令経路長(Ls),最大誤差(Emax)、標準偏差用データを計算する。総誤差変化(Sc)、最大誤差変化(Cmax)を計算する。
このステップについて補足する。(I)の場合に、まず総誤差面積(Se),総指令経路長(Ls),最大誤差(Emax)を計算する。これらはスカラー量である。(ステップS113も同様。)
S(Rp,Qn)をRp,QnおよびVe(Qn)で作る三角形の面積とする。同様に、S(Qne,Rk)は、Qne,Ve(Qne)およびRkが作る三角形の面積である。(図11の縦線部) さらに、S(Qn,Qn+1)をQn,Qn+1,Ve(Qn)およびVe(Qn+1)が作る四角形の面積とする。 同様にS(Qn+1,Qn+2)も、Qn+1,Qn+2,Ve(Qn+1)およびVe(Qn+2)が作る四角形の面積である。以下同様である。(図11の横線部) ここで、Pm,Pm+1,,,Pmeの位置も考慮した多角形の面積としてもよいが、簡便のため三角形、四角形の面積とする。
[ステップS112]総誤差面積(Se),総指令経路長(Ls),最大誤差(Emax)、標準偏差用データを計算する。総誤差変化(Sc)、最大誤差変化(Cmax)を計算する。
このステップについて補足する。(I)の場合に、まず総誤差面積(Se),総指令経路長(Ls),最大誤差(Emax)を計算する。これらはスカラー量である。(ステップS113も同様。)
S(Rp,Qn)をRp,QnおよびVe(Qn)で作る三角形の面積とする。同様に、S(Qne,Rk)は、Qne,Ve(Qne)およびRkが作る三角形の面積である。(図11の縦線部) さらに、S(Qn,Qn+1)をQn,Qn+1,Ve(Qn)およびVe(Qn+1)が作る四角形の面積とする。 同様にS(Qn+1,Qn+2)も、Qn+1,Qn+2,Ve(Qn+1)およびVe(Qn+2)が作る四角形の面積である。以下同様である。(図11の横線部) ここで、Pm,Pm+1,,,Pmeの位置も考慮した多角形の面積としてもよいが、簡便のため三角形、四角形の面積とする。
「総誤差面積(Se)を計算」とは、数4式を計算することである。
[数4]
Se=Se+S(Rp,Qn)+S(Qn,Qn+1)+・・・+S(Qne,Rk)
「総指令経路長(Ls)を計算」とは、数5式を計算することである。
[数5]
Ls=Ls+Lp
「最大誤差(Emax)を計算」とは、誤差ベクトルVe(Qn)〜Ve(Qne)の各長さとEmaxと比較し、Emaxより大のものがあればその誤差ベクトルの長さでEmaxを置き換えることである。したがって、Emaxは誤差ベクトルの長さの最大値、最大誤差となる。ここで、Emaxに対する指令位置Un+iを記憶しておいてもよい。そうすれば、Emaxがどこで発生したか解析する時に役立つ。
[数4]
Se=Se+S(Rp,Qn)+S(Qn,Qn+1)+・・・+S(Qne,Rk)
「総指令経路長(Ls)を計算」とは、数5式を計算することである。
[数5]
Ls=Ls+Lp
「最大誤差(Emax)を計算」とは、誤差ベクトルVe(Qn)〜Ve(Qne)の各長さとEmaxと比較し、Emaxより大のものがあればその誤差ベクトルの長さでEmaxを置き換えることである。したがって、Emaxは誤差ベクトルの長さの最大値、最大誤差となる。ここで、Emaxに対する指令位置Un+iを記憶しておいてもよい。そうすれば、Emaxがどこで発生したか解析する時に役立つ。
「標準偏差用データを計算」とは誤差ベクトル長の二乗を累積する、つまり、数6式を計算することである。
「総誤差変化(Sc)を計算」とは誤差ベクトル長の変化量を累積する、つまり、数7式を計算することである。
[数7]
Sc
=Sc+|Ve(Qn)|+||Ve(Qn+1)|−|Ve(Qn)||+・・・+||Ve(Qne)|−|Ve(Qne−1)||+|Ve(Qne)|
「総誤差変化(Sc)を計算」とは誤差ベクトル長の変化量を累積する、つまり、数7式を計算することである。
[数7]
Sc
=Sc+|Ve(Qn)|+||Ve(Qn+1)|−|Ve(Qn)||+・・・+||Ve(Qne)|−|Ve(Qne−1)||+|Ve(Qne)|
「最大誤差変化(Cmax)を計算」とは、誤差ベクトルVe(Qn)〜Ve(Qne)の各長さの指令経路に対する変化量
|Ve(Qn|/|L(Rp,Un)|
||Ve(Qn+1|−|Ve(Qn)||/|L(Un,Un+1)|
・・・
||Ve(Qne)|−|Ve(Qne−1)||/|L(Une−1,Une)|
|Ve(Qne)|/|L(Une,Rk)|
とCmaxと比較し、Cmaxより大のものがあればその変化量でCmaxを置き換えることである。得られるCmaxは、誤差ベクトルの長さの指令経路に対する変化量である誤差変化量の最大値、最大誤差変化となる。
なお、(I)のステップS112、(II)のステップS113とも、全ての処理の最初におけるSe,Ls,Emax,Wσ,Sc,Cmaxの初期値は0である。
|Ve(Qn|/|L(Rp,Un)|
||Ve(Qn+1|−|Ve(Qn)||/|L(Un,Un+1)|
・・・
||Ve(Qne)|−|Ve(Qne−1)||/|L(Une−1,Une)|
|Ve(Qne)|/|L(Une,Rk)|
とCmaxと比較し、Cmaxより大のものがあればその変化量でCmaxを置き換えることである。得られるCmaxは、誤差ベクトルの長さの指令経路に対する変化量である誤差変化量の最大値、最大誤差変化となる。
なお、(I)のステップS112、(II)のステップS113とも、全ての処理の最初におけるSe,Ls,Emax,Wσ,Sc,Cmaxの初期値は0である。
[ステップS113]総誤差面積(Se),総指令経路長(Ls),最大誤差(Emax)、標準偏差用データを計算する。総誤差変化(Sc)、最大誤差変化(Cmax)を計算する。
このステップについて補足する。(II)の場合に、まず総誤差面積(Se),総指令経路長(Ls),最大誤差(Emax)を計算する。
S(Rp,Pm)をRp,PmおよびVe(Pm)で作る三角形の面積とする。同様に、S(Pme,Rk)は、Pme,Ve(Pme)およびRkが作る三角形の面積である。(図12の縦線部) さらに、S(Pm,Pm+1)をPm,Pm+1,Ve(Pm)およびVe(Pm+1)が作る四角形の面積とする。 同様にS(Pm+1,Pm+2)も、Pm+1,Pm+2,Ve(Pm+1)およびVe(Pm+2)が作る四角形の面積である。以下同様である。(図12の横線部)
このステップについて補足する。(II)の場合に、まず総誤差面積(Se),総指令経路長(Ls),最大誤差(Emax)を計算する。
S(Rp,Pm)をRp,PmおよびVe(Pm)で作る三角形の面積とする。同様に、S(Pme,Rk)は、Pme,Ve(Pme)およびRkが作る三角形の面積である。(図12の縦線部) さらに、S(Pm,Pm+1)をPm,Pm+1,Ve(Pm)およびVe(Pm+1)が作る四角形の面積とする。 同様にS(Pm+1,Pm+2)も、Pm+1,Pm+2,Ve(Pm+1)およびVe(Pm+2)が作る四角形の面積である。以下同様である。(図12の横線部)
(I)と同様、「総誤差面積(Se)を計算」とは、数8式を計算することである。
[数8]
Se=Se+S(Rp,Pm)+S(Pm,Pm+1)+・・・+S(Pme,Rk)
「総指令経路長(Ls)を計算」とは、数9式を計算することである。
[数9]
Ls=Ls+Lp
「最大誤差(Emax)を計算」とは、誤差ベクトルVe(Pm)〜Ve(Pme)の各長さとEmaxと比較し、Emaxより大のものがあればその誤差ベクトルの長さでEmaxを置き換えることである。Emaxは誤差ベクトルの長さの最大値、最大誤差となる。ここで、Emaxに対する指令位置Pm+jを記憶しておいてもよい。そうすれば、Emaxがどこで発生したか解析する時に役立つ。
「標準偏差用データを計算」とは、数10式を計算することである。
[数8]
Se=Se+S(Rp,Pm)+S(Pm,Pm+1)+・・・+S(Pme,Rk)
「総指令経路長(Ls)を計算」とは、数9式を計算することである。
[数9]
Ls=Ls+Lp
「最大誤差(Emax)を計算」とは、誤差ベクトルVe(Pm)〜Ve(Pme)の各長さとEmaxと比較し、Emaxより大のものがあればその誤差ベクトルの長さでEmaxを置き換えることである。Emaxは誤差ベクトルの長さの最大値、最大誤差となる。ここで、Emaxに対する指令位置Pm+jを記憶しておいてもよい。そうすれば、Emaxがどこで発生したか解析する時に役立つ。
「標準偏差用データを計算」とは、数10式を計算することである。
「総誤差変化(Sc)を計算」とは誤差ベクトル長の変化量を累積する、つまり、数11式を計算することである。
[数11]
Sc
=Sc+|Ve(Pm)|+||Ve(Pm+1)|−|Ve(Pm)||+・・・+||Ve(Pme)|−|Ve(Pme−1)||+|Ve(Pme)|
「最大誤差変化(Cmax)を計算」とは、誤差ベクトルVe(Pm)〜Ve(Pme)の各長さの指令経路に対する変化量
|Ve(Pm)|/|L(Rp,Pm)|
||Ve(Pm+1|−|Ve(Pm)||/|L(Pm,Pm+1)|
・・・
||Ve(Pme)|−|Ve(Pme−1)||/|L(Pme−1,Pme)|
|Ve(Pme)|/|L(Pme,Rk)|
とCmaxと比較し、Cmaxより大のものがあればその変化量でCmaxを置き換えることである。得られるCmaxは、誤差ベクトルの長さの指令経路に対する変化量である誤差変化量の最大値、最大誤差変化となる。
[ステップS114]Rk=Ppe(=Qqe)かどうかチェックする。NOであればステップS105へ行く。YESであればステップS115へ行く。つまり、交点が終点であればステップS115に行き、交点が終点でなければ、次の交点を探索する処理に行く。
[数11]
Sc
=Sc+|Ve(Pm)|+||Ve(Pm+1)|−|Ve(Pm)||+・・・+||Ve(Pme)|−|Ve(Pme−1)||+|Ve(Pme)|
「最大誤差変化(Cmax)を計算」とは、誤差ベクトルVe(Pm)〜Ve(Pme)の各長さの指令経路に対する変化量
|Ve(Pm)|/|L(Rp,Pm)|
||Ve(Pm+1|−|Ve(Pm)||/|L(Pm,Pm+1)|
・・・
||Ve(Pme)|−|Ve(Pme−1)||/|L(Pme−1,Pme)|
|Ve(Pme)|/|L(Pme,Rk)|
とCmaxと比較し、Cmaxより大のものがあればその変化量でCmaxを置き換えることである。得られるCmaxは、誤差ベクトルの長さの指令経路に対する変化量である誤差変化量の最大値、最大誤差変化となる。
[ステップS114]Rk=Ppe(=Qqe)かどうかチェックする。NOであればステップS105へ行く。YESであればステップS115へ行く。つまり、交点が終点であればステップS115に行き、交点が終点でなければ、次の交点を探索する処理に行く。
ステップS115、ステップS116は、速度・誤差表示部13の処理の一部である。
[ステップS115]平均誤差、標準偏差誤差、測定速度を計算する。平均誤差変化を計算する。
このステップについて補足する。平均誤差(Eav)を計算するとは、数12式を計算することである。これは誤差ベクトルの長さの平均値、平均誤差である。
標準偏差誤差(Eσ)を計算するとは、数13式を計算することである。これは誤差ベクトルの長さの標準偏差、標準偏差誤差である。
[ステップS115]平均誤差、標準偏差誤差、測定速度を計算する。平均誤差変化を計算する。
このステップについて補足する。平均誤差(Eav)を計算するとは、数12式を計算することである。これは誤差ベクトルの長さの平均値、平均誤差である。
標準偏差誤差(Eσ)を計算するとは、数13式を計算することである。これは誤差ベクトルの長さの標準偏差、標準偏差誤差である。
測定速度を計算するとは、指令経路について数値制御工作機械1が運動した時間を測定し測定時間Tmとし、測定速度Vmについて、数14式を計算することである。
平均誤差変化(Cav)を計算するとは、数15式を計算することである。得られるCavは、誤差ベクトルの長さの指令経路に対する変化量である誤差変化量の平均値、平均誤差変化である。
[ステップS116]平均誤差、最大誤差または標準偏差誤差を誤差要素とする、または平均誤差変化、最大誤差変化を誤差要素とする。測定速度を速度要素とする、または測定時間を速度要素とする。速度要素と誤差要素の少なくとも2次元座標で表示する。または、速度要素と誤差要素を含む関数である評価関数を演算し表示する。
平均誤差変化(Cav)を計算するとは、数15式を計算することである。得られるCavは、誤差ベクトルの長さの指令経路に対する変化量である誤差変化量の平均値、平均誤差変化である。
[ステップS116]平均誤差、最大誤差または標準偏差誤差を誤差要素とする、または平均誤差変化、最大誤差変化を誤差要素とする。測定速度を速度要素とする、または測定時間を速度要素とする。速度要素と誤差要素の少なくとも2次元座標で表示する。または、速度要素と誤差要素を含む関数である評価関数を演算し表示する。
このステップについて補足する。
速度要素を測定速度(Vm)とし、誤差要素を平均誤差(Eav)、最大誤差(Emax)、さらに標準偏差誤差(Eσ)の誤差量とし、少なくとも2次元座標において表示する。(図13) 図13では、F5000の指令速度で指令経路を運動させた時、F10000の時、F20000の時の、測定速度における平均誤差(Eav)、最大誤差(Emax)、さらに標準偏差誤差(Eσ)を表示している。なお、ここでは誤差要素を平均誤差(Eav)、最大誤差(Emax)、標準偏差誤差(Eσ)としているが、これらのうちの一部でもよい。この場合、一般に、速度要素(測定速度)は速く、誤差要素は小さい方が運動性能としては良い。
速度要素を測定速度(Vm)とし、誤差要素を平均誤差(Eav)、最大誤差(Emax)、さらに標準偏差誤差(Eσ)の誤差量とし、少なくとも2次元座標において表示する。(図13) 図13では、F5000の指令速度で指令経路を運動させた時、F10000の時、F20000の時の、測定速度における平均誤差(Eav)、最大誤差(Emax)、さらに標準偏差誤差(Eσ)を表示している。なお、ここでは誤差要素を平均誤差(Eav)、最大誤差(Emax)、標準偏差誤差(Eσ)としているが、これらのうちの一部でもよい。この場合、一般に、速度要素(測定速度)は速く、誤差要素は小さい方が運動性能としては良い。
あるいは、誤差要素として誤差変化量としてもよい。誤差変化量を誤差要素とすることにより運動の滑らかさを含めた運動性能として表示できる。また、速度要素として測定時間としてもよい。速度要素を測定時間(Tm)とし、誤差要素を平均誤差変化(Cav)、最大誤差変化(Cmax)とし、少なくとも2次元座標において表示する。(図14) なお、ここでは誤差要素を平均誤差変化(Cav)、最大誤差変化(Cmax)としているが、これらのうちの一部でもよい。また、図13と図14で速度要素を入れ替えてもよい。この場合、一般に、速度要素(測定時間)は短く、誤差要素(誤差変化量)は小さい方が運動性能としては良い。
ここでは、図13、図14は2次元座標で表示しているが、組み合わせて3次元座標としてもよい。その実施例は実施形態2で示す。
ここでは、図13、図14は2次元座標で表示しているが、組み合わせて3次元座標としてもよい。その実施例は実施形態2で示す。
あるいは、速度要素と誤差要素(Vm,Tm,Eav,Emax,Eσ,Cav,Cmax)の関数として数値制御工作機械の運動性能を示す評価関数Fe(Vm,Tm,Eav,Emax,Eσ,Cav,Cmax)を計算して表示するようにしてもよい。Vm,Tmなどの要素は一部の使用でもよい。
例えば、Feを次の数16式のように計算しFeの値を表示するようにしてもよい。ke1,ke2,ke3,ke4,ke5は各項の係数、Σ記号は測定回数分の加算、nは測定回数を意味する。したがって、ここではΣ**/n(**は、Eav,Emaxなど)は各測定値の測定回数分の平均値とした例であるが、他の関数形にしてもよい。また、Fe=f(Eav,Emax)*g(Vm)としているが、他の関数形でもよい。このことにより、対象の数値制御工作機械の運動性能を数値で表すことができる。
例えば、Feを次の数16式のように計算しFeの値を表示するようにしてもよい。ke1,ke2,ke3,ke4,ke5は各項の係数、Σ記号は測定回数分の加算、nは測定回数を意味する。したがって、ここではΣ**/n(**は、Eav,Emaxなど)は各測定値の測定回数分の平均値とした例であるが、他の関数形にしてもよい。また、Fe=f(Eav,Emax)*g(Vm)としているが、他の関数形でもよい。このことにより、対象の数値制御工作機械の運動性能を数値で表すことができる。
なお、ここでは描画経路表示部12で描画経路を表示し速度・誤差表示部13で速度要素と誤差要素に基づいて表示するとしているが、画面上に表示することのみならずデータとして外部に出力して外部機器において画面表示や図示してもよい。外部へのデータの出力は図2の外部出力部14が行う。つまり、図2において外部出力部14は必須ではないが、外部出力部14で外部にデータを出力してもよい。
このように、本発明によって誤差を連続的にかつ定量的に正しく計算することにより、誤差(誤差ベクトル長やその変化)の平均値、最大値、標準偏差などの統計的データを得ることが可能になり、速度要素を1方の次元とし誤差要素を他方の次元とした少なくとも2次元の速度・誤差データを表示することができる。また、誤差ベクトルを拡大して描画経路として連続的に表示できる。あるいは、運動性能を表す評価関数を演算して表示できる。
これらのことにより、「本発明の効果」で述べたような効果が得られる。
これらのことにより、「本発明の効果」で述べたような効果が得られる。
また、ここでは、全指令位置(P1,P2,・・・,Pm,Pm+1,・・・,Pe)および全実位置(Q1,Q2,・・・,Qn,Qn+1,・・・,Qe)を取得する想定で説明しているが、ある一定の指令位置および実位置しかない場合でもよい。ある一定量のメモリに指令位置および実位置を記憶し、最新の指令位置および実位置を記憶するとメモリ容量を超える場合は、リングデータとして一番古い指令位置および実位置を消去し最新の指令位置および実位置を記憶する。それら一定量のメモリに蓄えられた指令位置および実位置によっても同様の処理が可能である。ただし、その場合、2つの交点間分の指令位置および実位置を蓄えるだけのメモリ容量は必要である。
<指令経路>
指令経路例として、1つの線分から次の線分への進行方向の成す角が一定であり線分長が一定比ずつ短くなる図15の指令経路とする。このように線分がらせん状につながる経路を線分らせん曲線と呼ぶことにする。他にも、線分長も一定ずつ変化するとともに1つの線分から次の線分への進行方向が成す角が一定ずつ変化するように線分らせん曲線を作成してもよい。(図16) あるいは、対数らせん、アルキメデススパイラル、クロソイド曲線など一般に知られるらせん曲線上に点をとりそれらを線分で結ぶことによって線分らせん曲線を作成してもよい。図17は対数らせん上に線分らせん曲線を作成したものである。このような線分らせん曲線を指令経路とするのは、一般の加工に指令される経路としては直線補間指令(G01指令)が多く、ある進行方向と線分長を持つ1つの直線補間指令と他の進行方向と線分長を持つ次の直線補間指令との間のコーナにおける数値制御工作機械1の運動性能を測定するためである。
指令経路例として、1つの線分から次の線分への進行方向の成す角が一定であり線分長が一定比ずつ短くなる図15の指令経路とする。このように線分がらせん状につながる経路を線分らせん曲線と呼ぶことにする。他にも、線分長も一定ずつ変化するとともに1つの線分から次の線分への進行方向が成す角が一定ずつ変化するように線分らせん曲線を作成してもよい。(図16) あるいは、対数らせん、アルキメデススパイラル、クロソイド曲線など一般に知られるらせん曲線上に点をとりそれらを線分で結ぶことによって線分らせん曲線を作成してもよい。図17は対数らせん上に線分らせん曲線を作成したものである。このような線分らせん曲線を指令経路とするのは、一般の加工に指令される経路としては直線補間指令(G01指令)が多く、ある進行方向と線分長を持つ1つの直線補間指令と他の進行方向と線分長を持つ次の直線補間指令との間のコーナにおける数値制御工作機械1の運動性能を測定するためである。
1つの実施例として交角一定、線分長変化の線分らせん曲線を指令経路とする場合の描画経路表示部12の描画経路表示の例を示す。(図19) なお、ここでは実経路も表示している。描画経路表示部12はこのように実経路も表示してもよい。
指令プログラム(指令経路のプログラム)としては図18のようになる。初期位置としてはP1にいるとする。#3001はタイマ用のマクロ変数である。N020〜N070のブロックで、指令速度fでP1(P1x,P1y)〜P7(P7x,P7y)の運動をした後、N080G53;のブロックで先読みを停止し、N090で運動した時間をマクロ変数から読取り測定する。測定した時間はTmとして数値制御装置2から数値制御工作機械測定装置7に送られる。ここでは、指令経路はP1からP7であるが、P7からP1としてもよいし、往復経路としてもよい。
指令位置取得部9は、P1〜P7の指令経路に対して離散的時刻における指令経路上の位置を指令位置として取得してもよいし、P1〜P7そのものを指令位置として取得してもよい。
指令プログラム(指令経路のプログラム)としては図18のようになる。初期位置としてはP1にいるとする。#3001はタイマ用のマクロ変数である。N020〜N070のブロックで、指令速度fでP1(P1x,P1y)〜P7(P7x,P7y)の運動をした後、N080G53;のブロックで先読みを停止し、N090で運動した時間をマクロ変数から読取り測定する。測定した時間はTmとして数値制御装置2から数値制御工作機械測定装置7に送られる。ここでは、指令経路はP1からP7であるが、P7からP1としてもよいし、往復経路としてもよい。
指令位置取得部9は、P1〜P7の指令経路に対して離散的時刻における指令経路上の位置を指令位置として取得してもよいし、P1〜P7そのものを指令位置として取得してもよい。
図19において、一般に誤差は非常に小さいため(数micro−mや数10micro−m程度のオーダ)、実経路は指令経路に非常に近く図示が難しい。そのため、この例では加減速遅れやサーボ遅れおよびオーバシュート要因を大きくして誤差を大きくし実経路を見やすくしている。Pa,Pb,,,などが指令経路と実経路との交点である。Pa〜Pbにおいて加減速遅れやサーボ遅れによって実経路が指令経路に対して内回りしている。Pb〜Pcにおいてオーバシュートして外回りしている。以降、Pc〜Pd,Pd〜Peなど同様である。実経路に対して描画経路が誤差をk(ここでは2)倍した経路として表示している。描画経路は連続的になっている。
実位置について、測定装置6からの測定データは通常測定誤差を含むので平均化を行ってもよい。(図20) 平均化の方法は加重平均や最小二乗法による近似など従来技術として様々ある。例えば、Qn−2’,Qn−1’,Qn’,Qn+1’,Qn+2’を測定装置6から送られた測定位置そのものとし、着目点をQn’とする。これら5点にもとづき最小二乗法によって5点からの距離が最短となる2次曲線(図20中の一点鎖線の曲線)を作成する。着目点Qn’からその2次曲線へ最短距離となる点を着目点Qn’の実位置(Qn)とする。他の測定位置についても同様に実位置を求め、上述の実位置として使用する。そのように測定位置を修正して実位置とすることにより測定誤差のばらつきを小さくできる。
2.実施形態2
<構成>
数値制御工作機械測定装置7は数値制御装置2内にある構成とする。図21において工作機械3や測定装置6は実施形態1と同様のため省略している。数値制御工作機械測定装置7内の実位置取得部11は、モータ4(4(X)、4(Y)、4(Z))からのフィードバック位置または測定装置6から実位置を取得する。両方から取得し、それぞれを実位置としてもよい。他の経路指令部8や指令位置取得部9など各部の関係は実施形態1と同様のため、説明を省略する。
実位置取得部11が各モータ4(X)4(Y)4(Z)からのフィードバック位置を取得する場合、測定装置6がなくても本発明を構成できる。また、フィードバック位置を取得するのは、モータ4からでなく工作機械3に装着されたスケールからでもよい。これらの点は後の実施形態でも同様である。
<構成>
数値制御工作機械測定装置7は数値制御装置2内にある構成とする。図21において工作機械3や測定装置6は実施形態1と同様のため省略している。数値制御工作機械測定装置7内の実位置取得部11は、モータ4(4(X)、4(Y)、4(Z))からのフィードバック位置または測定装置6から実位置を取得する。両方から取得し、それぞれを実位置としてもよい。他の経路指令部8や指令位置取得部9など各部の関係は実施形態1と同様のため、説明を省略する。
実位置取得部11が各モータ4(X)4(Y)4(Z)からのフィードバック位置を取得する場合、測定装置6がなくても本発明を構成できる。また、フィードバック位置を取得するのは、モータ4からでなく工作機械3に装着されたスケールからでもよい。これらの点は後の実施形態でも同様である。
実施形態2での指令経路を、可算無限ツリーによるO曲線とする。可算無限ツリーおよびO曲線は従来技術にないアルゴリズムおよび曲線であるため、詳述する。
<可算無限ツリー>
可算無限ツリーは、1つの節から可算無限個の節が作成されるツリーである。図22のように、最初の親(親節)の階層をレベルL0、その子の階層をレベルL1、さらにその子の階層をレベルL2、、、と呼ぶ。 レベルL0の親節から、実線のようにレベルL1において第1子、第2子、、、と可算無限個の子節が作成され、さらにレベルL1の各子節からレベルL2において可算無限個の子節(孫節)が作成され、、、ということを各レベル各節で繰り返す。レベルL0、レベルL1、、と呼ばず、単にL0、L1、、と呼ぶこともある。
<可算無限ツリー>
可算無限ツリーは、1つの節から可算無限個の節が作成されるツリーである。図22のように、最初の親(親節)の階層をレベルL0、その子の階層をレベルL1、さらにその子の階層をレベルL2、、、と呼ぶ。 レベルL0の親節から、実線のようにレベルL1において第1子、第2子、、、と可算無限個の子節が作成され、さらにレベルL1の各子節からレベルL2において可算無限個の子節(孫節)が作成され、、、ということを各レベル各節で繰り返す。レベルL0、レベルL1、、と呼ばず、単にL0、L1、、と呼ぶこともある。
ツリーの各節に対し、図23のフローチャートで示されたアルゴリズムによって順次可算無限数(N=0,1,2,3,・・・)で番号付けし節作成する。Nで番号付けられた節をN節と呼ぶ。図23のフローチャートに基づいて説明する。
[ステップS201]初期設定として、N=0,1,2の節を作成し、N=2とする。ここで、最初の親が0節、0節の第1子が1節、第2子が2節である。
[ステップS202]L2を対象レベルとする。対象レベルとは、節を作成しようとしているレベルである。
[ステップS203]対象レベル(Ln:n=2,3、、、)の直上レベルにおける左端の節を対象の親とする。対象の親とは、作成しようとしている節に対する親節である。
[ステップS204]N=N+1とし、節を作成する。つまり、対象の親の下にN節を1個作成する。すでに節があれば、その既存の節群の右に追加する。節がなければ、第1子として作成する。ただし、N>Max_Nの時は終了する。Max_Nはあらかじめ設定されている最大のNである。
[ステップS205]親にF−Linkがあるかチェックする。あればステップS206へ行き、なければステップS208に行く。F−Linkは同じレベルの右隣節への関連付けであるが、後述する。
[ステップS201]初期設定として、N=0,1,2の節を作成し、N=2とする。ここで、最初の親が0節、0節の第1子が1節、第2子が2節である。
[ステップS202]L2を対象レベルとする。対象レベルとは、節を作成しようとしているレベルである。
[ステップS203]対象レベル(Ln:n=2,3、、、)の直上レベルにおける左端の節を対象の親とする。対象の親とは、作成しようとしている節に対する親節である。
[ステップS204]N=N+1とし、節を作成する。つまり、対象の親の下にN節を1個作成する。すでに節があれば、その既存の節群の右に追加する。節がなければ、第1子として作成する。ただし、N>Max_Nの時は終了する。Max_Nはあらかじめ設定されている最大のNである。
[ステップS205]親にF−Linkがあるかチェックする。あればステップS206へ行き、なければステップS208に行く。F−Linkは同じレベルの右隣節への関連付けであるが、後述する。
[ステップS206]F−Link先の節を親としてステップS207に行く。
[ステップS207]親(F−Link先の節)が末子かチェックする。末子であればステップS205に戻る。つまり、そのF−Link先節のさらにF−Link先についてステップS205を繰り返し、同じレベルでの節作成の親を探索する。末子でなければ(右隣節があれば)、ステップS204へ行く。つまり、親(F−Link先の節)に対して同じレベルでの節作成を続ける。
[ステップS208]対象レベルLnのnについて、「n=Max_Ln」OR「n=Lendかつ節は0個か1個しか作成しなかった」かチェックする。YESならステップS210へ行く。NOならステップS209に行く。つまり、対象レベルが許容最大レベル(Max_Ln)か、または対象レベルが最終レベル(Lend)で節は0個か1個しか作成しなかったなら、ループ2(ステップS203から始まるループ)での節作成は終了したので、レベルL1での節作成に戻る。そうでなければ、対象レベルを下げる。Max_Lnはあらかじめ設定されている許容最大レベル(Lnのnに対する許容最大値)である。
[ステップS209]対象レベルを一段下げる。つまりLnのn=n+1とする。その下げたレベルnが最終レベル(Lend)より大なら、Lend=nとする。ステップS203へ行き、ループ2(ステップS203から始まるループ)で下げたレベルでの節作成を続ける。
[ステップS207]親(F−Link先の節)が末子かチェックする。末子であればステップS205に戻る。つまり、そのF−Link先節のさらにF−Link先についてステップS205を繰り返し、同じレベルでの節作成の親を探索する。末子でなければ(右隣節があれば)、ステップS204へ行く。つまり、親(F−Link先の節)に対して同じレベルでの節作成を続ける。
[ステップS208]対象レベルLnのnについて、「n=Max_Ln」OR「n=Lendかつ節は0個か1個しか作成しなかった」かチェックする。YESならステップS210へ行く。NOならステップS209に行く。つまり、対象レベルが許容最大レベル(Max_Ln)か、または対象レベルが最終レベル(Lend)で節は0個か1個しか作成しなかったなら、ループ2(ステップS203から始まるループ)での節作成は終了したので、レベルL1での節作成に戻る。そうでなければ、対象レベルを下げる。Max_Lnはあらかじめ設定されている許容最大レベル(Lnのnに対する許容最大値)である。
[ステップS209]対象レベルを一段下げる。つまりLnのn=n+1とする。その下げたレベルnが最終レベル(Lend)より大なら、Lend=nとする。ステップS203へ行き、ループ2(ステップS203から始まるループ)で下げたレベルでの節作成を続ける。
[ステップS211]N=N+1とし対象レベル(L1)で節を作成して、ステップS202へ行き、レベルL1からの節作成であるループ1(ステップS202から始まるループ)を続ける。ただし、N>Max_Nの時は終了する。
ここで、第1子とは、その左に同じ親による節のない節である。左端とは、親、その親、、、が全て第1子である親に対する第1子である。(図22における左端の節) 末子とは、その右に親を同じとする節(右隣節)のない節である。最終レベル(Lend)とは、節が作成されたLnのうち最大のnである。
ここで、第1子とは、その左に同じ親による節のない節である。左端とは、親、その親、、、が全て第1子である親に対する第1子である。(図22における左端の節) 末子とは、その右に親を同じとする節(右隣節)のない節である。最終レベル(Lend)とは、節が作成されたLnのうち最大のnである。
F−Link(フォワードリンク)/B−Link(バックワードリンク)について説明する。F−Link/B−Linkは、右/左隣の同じレベルの節番号を容易に得られるようにする関連付けである。上記アルゴリズムにおいて、次のようにF−LinkおよびB−Linkを作成する。(図24)
1)作成する節(N節)が左端である時は、F−Link/B−Linkは作成しない。(ブランク)
2)作成する節(N節)が左端でない第1子である時、
2−1)親のB−Link先(もしそこに子節がなければ、さらにB−Linkをたどって子節を持つB−Link先を探す。必ず子節を持つB−Link先の節がある。)の末子節のF−Link(ブランクの場合もある)を、作成するN節のF−Linkとしてコピーする。(F−Link先を引き継ぐ。)
2−2)その末子節のF−Link先のB−Linkを自分(N)にする。(B−Link先を自分に変更する。)ただし、F−Linkがブランクの場合は何もしない。
2−3)その末子節のF−Linkとして自分の番号(N)をセットする。(F−Link先を自分に変更する。)
2−4)その末子節の番号を自分(N節)のB−Linkとしてセットする。(自分のB−Link先とする。)
3)作成する節(N節)が左端でなく第1子でもない節である時は、
3−1)左節(左隣の節)のF−Link(ブランクの場合もある)をN節のF−Linkとしてコピーする。(F−Link先を引き継ぐ。)
3−2)F−Link先節のB−Linkとして自分の番号(N)をセットする。(B−Link先を自分に変更する。) ただし、F−Linkがブランクの場合は何もしない。
3−3)左節のF−Linkとして自分の番号(N)をセットする。
3−4)左節の番号を自分(N節)のB−Linkとしてセットする。
図示すると、図24のようになる。節(N節)作成時、実線の矢印(F−Link先、B−Link先)が破線の矢印のように変更される。
1)作成する節(N節)が左端である時は、F−Link/B−Linkは作成しない。(ブランク)
2)作成する節(N節)が左端でない第1子である時、
2−1)親のB−Link先(もしそこに子節がなければ、さらにB−Linkをたどって子節を持つB−Link先を探す。必ず子節を持つB−Link先の節がある。)の末子節のF−Link(ブランクの場合もある)を、作成するN節のF−Linkとしてコピーする。(F−Link先を引き継ぐ。)
2−2)その末子節のF−Link先のB−Linkを自分(N)にする。(B−Link先を自分に変更する。)ただし、F−Linkがブランクの場合は何もしない。
2−3)その末子節のF−Linkとして自分の番号(N)をセットする。(F−Link先を自分に変更する。)
2−4)その末子節の番号を自分(N節)のB−Linkとしてセットする。(自分のB−Link先とする。)
3)作成する節(N節)が左端でなく第1子でもない節である時は、
3−1)左節(左隣の節)のF−Link(ブランクの場合もある)をN節のF−Linkとしてコピーする。(F−Link先を引き継ぐ。)
3−2)F−Link先節のB−Linkとして自分の番号(N)をセットする。(B−Link先を自分に変更する。) ただし、F−Linkがブランクの場合は何もしない。
3−3)左節のF−Linkとして自分の番号(N)をセットする。
3−4)左節の番号を自分(N節)のB−Linkとしてセットする。
図示すると、図24のようになる。節(N節)作成時、実線の矢印(F−Link先、B−Link先)が破線の矢印のように変更される。
N=31まで節作成(番号付け)を行った時の状況を図示すると、図25のようになる。○の中が節の番号である。実線の矢印は、最初に作成されたF−Link先およびB−Link先である。破線の矢印は、更新されたF−Link先およびB−Link先である。図24ではF−Link先およびB−Link先の示す矢印を別々に記載したが、ここでは図示の便宜上両方向矢印でそれらを示している。このようにしてツリーの各節に可算無限数(N=0,1,2,3,・・・)を対応づけられる。
<O曲線>
O曲線は、円の中に内接、外接を繰り返しながら円を作成していく曲線である。円の組合せによる曲線であるためO曲線と呼ぶ。O曲線はフラクタル曲線であり、かつ空間充填曲線である。
一般に、互いに接する3個の円に内接、外接する1個の円は一意に確定する。そのため、3個の円から1個の円を作成する。(ただし、後述の内1、内2の円のみ例外。) 円A、円B、円Cから円Dを作成するとする。(図26(a)、図26(b)) 以降、(A),(B),(C),(D)は円A、円B、円C、円Dを意味する。
ここで、1個の親円から次のように、内系列、外a系列、外b系列の子系列の円群を発生させる。このような円作成法は「アポロニウスの窓」として知られている。
O曲線は、円の中に内接、外接を繰り返しながら円を作成していく曲線である。円の組合せによる曲線であるためO曲線と呼ぶ。O曲線はフラクタル曲線であり、かつ空間充填曲線である。
一般に、互いに接する3個の円に内接、外接する1個の円は一意に確定する。そのため、3個の円から1個の円を作成する。(ただし、後述の内1、内2の円のみ例外。) 円A、円B、円Cから円Dを作成するとする。(図26(a)、図26(b)) 以降、(A),(B),(C),(D)は円A、円B、円C、円Dを意味する。
ここで、1個の親円から次のように、内系列、外a系列、外b系列の子系列の円群を発生させる。このような円作成法は「アポロニウスの窓」として知られている。
(1)内系列
親円に内接する子系列、内1、内2、内3、、、、の円群を次のように作成する。(図27)
・親円(A)に内接する内1(D)を作成。(ここでは、(B),(C)はない。そのため自由度がある。)
・親円(A)に内接し、内1(B)に外接する内2(D)の円を作成。(ここも(C)はない。そのため自由度がある。)
・親円(A)に内接し、内1(B)および内2(C)に外接する内3(D)の円を作成。
・以降、親円(A)に内接し、内1(B)および内n(C)に外接する内(n+1)(D)の円を作成していく。
親円に内接する子系列、内1、内2、内3、、、、の円群を次のように作成する。(図27)
・親円(A)に内接する内1(D)を作成。(ここでは、(B),(C)はない。そのため自由度がある。)
・親円(A)に内接し、内1(B)に外接する内2(D)の円を作成。(ここも(C)はない。そのため自由度がある。)
・親円(A)に内接し、内1(B)および内2(C)に外接する内3(D)の円を作成。
・以降、親円(A)に内接し、内1(B)および内n(C)に外接する内(n+1)(D)の円を作成していく。
(2)外a系列
(2−1)内2外a系列
内2円を親円とし外接していく子系列、内2外a1、内2外a2、、、の円群を次のように作成する。(図28)
・祖父円(A)(内2の親円)に内接し、内1(B)および内2(C)に外接する内2外a1(D)の円を作成する。
・以降、祖父円(A)に内接し、内1(B)および内2外an(C)に外接する内2外a(n+1)(D)の円を作成していく。
(2−2)外a系列
親円に対して外接していく子系列、外a1、外a2、、、の円群を次のように作成する。(図29)
・外a1の円は、親円を作成した(A),(B),(C)の円に対して、(C)→(B)(この「→」は(C)を(B)とすることを意味する)、親円→(C)(親円を(C)とする)とし、(A),(B),(C)から(D)の円を作成する。((A)を保持する。)
・外a2以降の円は、兄円(外a系列で1回前に作成された円、外an)を作成した(A),(B),(C)について、兄円→(C)とし、(A),(B),(C)から外a(n+1)(D)の円を作成していく。
(2−1)内2外a系列
内2円を親円とし外接していく子系列、内2外a1、内2外a2、、、の円群を次のように作成する。(図28)
・祖父円(A)(内2の親円)に内接し、内1(B)および内2(C)に外接する内2外a1(D)の円を作成する。
・以降、祖父円(A)に内接し、内1(B)および内2外an(C)に外接する内2外a(n+1)(D)の円を作成していく。
(2−2)外a系列
親円に対して外接していく子系列、外a1、外a2、、、の円群を次のように作成する。(図29)
・外a1の円は、親円を作成した(A),(B),(C)の円に対して、(C)→(B)(この「→」は(C)を(B)とすることを意味する)、親円→(C)(親円を(C)とする)とし、(A),(B),(C)から(D)の円を作成する。((A)を保持する。)
・外a2以降の円は、兄円(外a系列で1回前に作成された円、外an)を作成した(A),(B),(C)について、兄円→(C)とし、(A),(B),(C)から外a(n+1)(D)の円を作成していく。
(3)外b系列
親円に対して外接していく子系列、外b1、外b2、、、の円群を次のように作成する。(図30)
・外b1の円は、親円を作成した(A),(B),(C)の円に対して、(C)→(A)、親円→(C)とし、(A),(B),(C)から(D)の円を作成する。((B)を保持する。)
・外b2以降の円は、兄円(外b系列で1回前に作成された円、外bn)を作成した(A),(B),(C)について、兄円→(C)とし、(A),(B),(C)から外b(n+1)(D)の円を作成していく。
親円に対して外接していく子系列、外b1、外b2、、、の円群を次のように作成する。(図30)
・外b1の円は、親円を作成した(A),(B),(C)の円に対して、(C)→(A)、親円→(C)とし、(A),(B),(C)から(D)の円を作成する。((B)を保持する。)
・外b2以降の円は、兄円(外b系列で1回前に作成された円、外bn)を作成した(A),(B),(C)について、兄円→(C)とし、(A),(B),(C)から外b(n+1)(D)の円を作成していく。
そして、O曲線の親円と子系列の円群に対して、上述の可算無限ツリーの親節と子節を対応させる。親円と子系列との対応は次のように行う。
1)親円(親節)が内1の場合
子系列は内系列のみである。子節は、内1,内2,内3,,,の順で対応する。
2)親円(親節)が内2の場合
子系列は内系列、外a系列(内2外a系列)である。子節は、内1,外a1,内2,外a2,,,の順で対応する。
3)親円(親節)がそれ以外の場合
子系列は内系列、外a系列、外b系列である。子節は、内1,外a1,外b1,内2,外a2,外b2,,,の順で対応する。
1)親円(親節)が内1の場合
子系列は内系列のみである。子節は、内1,内2,内3,,,の順で対応する。
2)親円(親節)が内2の場合
子系列は内系列、外a系列(内2外a系列)である。子節は、内1,外a1,内2,外a2,,,の順で対応する。
3)親円(親節)がそれ以外の場合
子系列は内系列、外a系列、外b系列である。子節は、内1,外a1,外b1,内2,外a2,外b2,,,の順で対応する。
その結果、図31のようにO曲線を作成することができる。図31ではレベルごとに分けて描画している。
図31ではO曲線自体を説明するため、小さな円も描画しているが、工作機械3の運動性能を測定する指令経路として使用する時は半径に対する適当な閾値を設定し、その閾値以下の半径の円まで作成する必要はない。可算無限ツリーによるO曲線を指令経路とする場合、次のような利点がある。
i)O曲線はある円からその円に接する他の円に移行することにより一筆書きが可能である。そのため、多様な半径の円を1つの指令プログラム(指令経路プログラム)として指令できる。
ii)円を指令経路とする場合、法線方向加速度はV2/rとなる。Vは速度でrは円半径である。したがって、多様な半径の円を指令できるということは、多様な加速度を指令できることである。つまり、O曲線を指令経路として指令することにより、多様な加速度に対する工作機械3の運動性能を測定できる。
iii)ある円からその円に接する他の円に移行する時、速度反転、加速度変化および加速度反転の指令経路とすることができる。したがって、O曲線を指令経路とすることにより、ある加速度の円から他の加速度の円に指令経路が移行するとともに、速度反転、加速度変化および加速度反転を組み合わせた指令経路に対する工作機械3の運動性能を測定できる。
iv)O曲線は空間充填曲線であるため、測定対象領域を隈なく測定できる。
v)可算無限ツリーの許容最大レベル(Max_Ln)を適宜選択することにより、許容最大レベルに対応した円群を選択することができる。(この点は実施形態3で説明する。)
図31ではO曲線自体を説明するため、小さな円も描画しているが、工作機械3の運動性能を測定する指令経路として使用する時は半径に対する適当な閾値を設定し、その閾値以下の半径の円まで作成する必要はない。可算無限ツリーによるO曲線を指令経路とする場合、次のような利点がある。
i)O曲線はある円からその円に接する他の円に移行することにより一筆書きが可能である。そのため、多様な半径の円を1つの指令プログラム(指令経路プログラム)として指令できる。
ii)円を指令経路とする場合、法線方向加速度はV2/rとなる。Vは速度でrは円半径である。したがって、多様な半径の円を指令できるということは、多様な加速度を指令できることである。つまり、O曲線を指令経路として指令することにより、多様な加速度に対する工作機械3の運動性能を測定できる。
iii)ある円からその円に接する他の円に移行する時、速度反転、加速度変化および加速度反転の指令経路とすることができる。したがって、O曲線を指令経路とすることにより、ある加速度の円から他の加速度の円に指令経路が移行するとともに、速度反転、加速度変化および加速度反転を組み合わせた指令経路に対する工作機械3の運動性能を測定できる。
iv)O曲線は空間充填曲線であるため、測定対象領域を隈なく測定できる。
v)可算無限ツリーの許容最大レベル(Max_Ln)を適宜選択することにより、許容最大レベルに対応した円群を選択することができる。(この点は実施形態3で説明する。)
ii)、iii)について図示して説明する。
・図32において、実線矢印で指令経路を、破線で指令経路の移行方向を示す。破線のように円aから円bに移行する場合、円aの法線方向加速度から円bの法線方向加速度に加速度方向が反転するとともに加速度量(加速度矢印の長さ)が変化する。円bから円aに戻る場合も同様である。
・図33において、破線のように円aから円bに移行する場合、円aの速度方向から円bの速度方向に速度方向が反転する。また、加速度方向が反転し加速度量が変化する。円bから円aに戻る場合も同様である。
・図34において、破線のように円aから円bに移行する場合、加速度方向は変化しないが円aの加速度量から円bの加速度量に変化する。円bから円aに戻る場合も同様である。
・図35において、破線のように円aから円bに移行する場合、円aの速度方向から円bの速度方向に速度方向が反転する。また、加速度量が変化する。円bから円aに戻る場合も同様である。
・図32において、実線矢印で指令経路を、破線で指令経路の移行方向を示す。破線のように円aから円bに移行する場合、円aの法線方向加速度から円bの法線方向加速度に加速度方向が反転するとともに加速度量(加速度矢印の長さ)が変化する。円bから円aに戻る場合も同様である。
・図33において、破線のように円aから円bに移行する場合、円aの速度方向から円bの速度方向に速度方向が反転する。また、加速度方向が反転し加速度量が変化する。円bから円aに戻る場合も同様である。
・図34において、破線のように円aから円bに移行する場合、加速度方向は変化しないが円aの加速度量から円bの加速度量に変化する。円bから円aに戻る場合も同様である。
・図35において、破線のように円aから円bに移行する場合、円aの速度方向から円bの速度方向に速度方向が反転する。また、加速度量が変化する。円bから円aに戻る場合も同様である。
指令プログラム例として、円から円への移行において次のようになる指令経路を作成する。(図36) これ以外にも上述のように様々な組み合わせが可能である。
・奇数レベル違う内接円に移行するおよび戻る時は、速度反転および加速度変化する。(図35)
・偶数レベル違う内接円に移行するおよび戻る時は、加速度変化する。(図34)
・外接円に移行するおよび戻る時は、加速度変化および加速度反転する。(図32)
図36の実線が指令経路であり、破線で指令経路の移行方向を示している。指令経路は上述O曲線の部分曲線である。図37で示す指令プログラムとしては、全体の構成は実施形態1の図18と類似であるがG02/G03の円弧補間指令を行う。図37では指令経路プログラムの最初の部分と最後だけ示している。CCW指令(G03)から開始しているがCW指令(G02)で開始してもよい。そうすれば逆方向の指令経路となる。
・奇数レベル違う内接円に移行するおよび戻る時は、速度反転および加速度変化する。(図35)
・偶数レベル違う内接円に移行するおよび戻る時は、加速度変化する。(図34)
・外接円に移行するおよび戻る時は、加速度変化および加速度反転する。(図32)
図36の実線が指令経路であり、破線で指令経路の移行方向を示している。指令経路は上述O曲線の部分曲線である。図37で示す指令プログラムとしては、全体の構成は実施形態1の図18と類似であるがG02/G03の円弧補間指令を行う。図37では指令経路プログラムの最初の部分と最後だけ示している。CCW指令(G03)から開始しているがCW指令(G02)で開始してもよい。そうすれば逆方向の指令経路となる。
指令経路、実経路および描画経路を図示すると図38のようになる。この例においても、実施形態1と同様、加減速遅れやサーボ遅れおよびオーバシュート要因を大きくして実経路を見やすくしている。この例においても描画経路は連続的になっている。
ここでは、図示の都合上、小さな円弧は指令していないが、もちろんこの指令形状より小さな円弧も指令してよい。例えば、図39のような指令経路とする。図39では指令経路のみ示す。図39よりさらに小さな円弧を指令してもよい。上述したようにO曲線は空間充填曲線であるため、一番大きな円の内側を隈なく測定できる。
ここでは、図示の都合上、小さな円弧は指令していないが、もちろんこの指令形状より小さな円弧も指令してよい。例えば、図39のような指令経路とする。図39では指令経路のみ示す。図39よりさらに小さな円弧を指令してもよい。上述したようにO曲線は空間充填曲線であるため、一番大きな円の内側を隈なく測定できる。
そして、誤差要素と速度要素を計算しそれらによって少なくとも2次元座標で表示する。この点は実施形態1と同様なので、説明を省略する。あるいは、速度要素と誤差要素の相関関係を近似曲線として表示するようにしてもよい。例えば、複数の(Vm,Eav,Emax)などの組に対して、近似曲線を作成し、グラフ化してもよい。図40に(Vm,Eav)(Vm,Emax)の関係を近似曲線としてグラフ化した例を示す。このことにより、速度要素と誤差要素の関係をより特徴づけて表示できる。近似曲線作成の方法は加重平均、回帰分析、最小二乗法による多項式近似など様々あり、従来技術なので詳述しない。
また、実施形態1と同様、評価関数Feの値を表示してもよい。この点は実施形態1と同様なので、説明を省略する。
あるいは、速度要素と平均誤差や最大誤差の誤差量の誤差要素に加えて、平均誤差変化や最大誤差変化の誤差変化の誤差要素を組み合わせて図41のように3次元座標で表示してもよい。図41は、速度要素(測定速度 Vm)とEav,EmaxおよびCav,Cmaxとの関係を示す。図41では、例えば指令速度20m/minで指令プログラムを指令して数値制御工作機械1を運動させた時の、測定速度(Vm:15m/min程度)、誤差要素(Eav,Emax,Cav,Cmax)がどの程度だったかを示している。この場合、一般に、速度要素(測定速度)は速く、誤差要素(誤差量、誤差変化など)は小さい方が運動性能が良い。
あるいは、速度要素と平均誤差や最大誤差の誤差量の誤差要素に加えて、平均誤差変化や最大誤差変化の誤差変化の誤差要素を組み合わせて図41のように3次元座標で表示してもよい。図41は、速度要素(測定速度 Vm)とEav,EmaxおよびCav,Cmaxとの関係を示す。図41では、例えば指令速度20m/minで指令プログラムを指令して数値制御工作機械1を運動させた時の、測定速度(Vm:15m/min程度)、誤差要素(Eav,Emax,Cav,Cmax)がどの程度だったかを示している。この場合、一般に、速度要素(測定速度)は速く、誤差要素(誤差量、誤差変化など)は小さい方が運動性能が良い。
3.実施形態3
<構成>
実施形態1と同様、数値制御工作機械測定装置7は数値制御装置2外にある構成とする。(図42) ただし、図42において各モータ4(X)4(Y)4(Z)から数値制御装置2への矢印はフィードバック位置であり、数値制御工作機械測定装置7内の実位置取得部11は、数値制御装置2を経由した各モータ4(X)4(Y)4(Z)からのフィードバック位置、または測定装置6から実位置を取得する。両方から実位置を取得してもよい。工作機械3や測定装置6は実施形態1と同様のため省略している。また、他の経路指令部8や指令位置取得部9など各部の関係は実施形態1と同様のため、説明を省略する。
<構成>
実施形態1と同様、数値制御工作機械測定装置7は数値制御装置2外にある構成とする。(図42) ただし、図42において各モータ4(X)4(Y)4(Z)から数値制御装置2への矢印はフィードバック位置であり、数値制御工作機械測定装置7内の実位置取得部11は、数値制御装置2を経由した各モータ4(X)4(Y)4(Z)からのフィードバック位置、または測定装置6から実位置を取得する。両方から実位置を取得してもよい。工作機械3や測定装置6は実施形態1と同様のため省略している。また、他の経路指令部8や指令位置取得部9など各部の関係は実施形態1と同様のため、説明を省略する。
<指令経路>
実施形態2の指令経路(O曲線)では同じ半径の円が多く指令される。そこで、本実施形態では、O曲線の部分曲線であるO曲線のレベルL0〜L1の円群(ここではO1曲線と呼ぶ)を指令経路とする。または、O曲線の部分曲線であるO曲線のレベルL0〜L2の円群(ここではO2曲線と呼ぶ)を指令経路とする。O1曲線は図23のステップS208におけるMax_Ln=1とすることによって得られる。同様に、O2曲線はMax_Ln=2とすることによって得られる。もちろん他の条件による部分曲線で指令経路を作成してもよい。また、自由曲面の加工では指令経路において速度反転となるケースは少ない。そのため、本実施形態では、実施形態2における円から他の円に移行する時、速度反転は行なわず、加速度変化と加速度反転(図32、図34)のみとする。この場合、実施形態1や実施形態2におけるコーナが生じないので、誤差演算部10において指令経路と実経路のうちの長さの長い経路から短い経路へ誤差を演算する必要はなく、従来技術による実経路から指令経路へ誤差を演算することで十分である。つまり、本実施形態3では、誤差演算部10および描画経路表示部12は従来技術相当であり、速度・誤差表示部13に特長がある実施形態である。図43、図44において、O1曲線、O2曲線の指令経路を示す。
このことにより、より簡便に多様な円による運動性能を測定できる。
実施形態2の指令経路(O曲線)では同じ半径の円が多く指令される。そこで、本実施形態では、O曲線の部分曲線であるO曲線のレベルL0〜L1の円群(ここではO1曲線と呼ぶ)を指令経路とする。または、O曲線の部分曲線であるO曲線のレベルL0〜L2の円群(ここではO2曲線と呼ぶ)を指令経路とする。O1曲線は図23のステップS208におけるMax_Ln=1とすることによって得られる。同様に、O2曲線はMax_Ln=2とすることによって得られる。もちろん他の条件による部分曲線で指令経路を作成してもよい。また、自由曲面の加工では指令経路において速度反転となるケースは少ない。そのため、本実施形態では、実施形態2における円から他の円に移行する時、速度反転は行なわず、加速度変化と加速度反転(図32、図34)のみとする。この場合、実施形態1や実施形態2におけるコーナが生じないので、誤差演算部10において指令経路と実経路のうちの長さの長い経路から短い経路へ誤差を演算する必要はなく、従来技術による実経路から指令経路へ誤差を演算することで十分である。つまり、本実施形態3では、誤差演算部10および描画経路表示部12は従来技術相当であり、速度・誤差表示部13に特長がある実施形態である。図43、図44において、O1曲線、O2曲線の指令経路を示す。
このことにより、より簡便に多様な円による運動性能を測定できる。
あるいは、指令経路は、O曲線上(O1曲線、O2曲線などのO曲線の部分曲線を含む)に点列をとりその点列を結ぶ線分からなる曲線でもよい。例えば、O1曲線上に点列をとりその点列を結ぶ線分からなる曲線を指令経路とする例を図45に示す。太実線が指令経路である。(図示の都合上、小さい円に対する点列と線分は描いていない。) このように、O曲線またはその部分曲線上とった点列を線分で結んだ曲線を、ここでは線分O曲線と呼ぶ。
あるいは、加工プログラム自体を指令経路として指令してもよいし、他の指令経路でもよい。
あるいは、加工プログラム自体を指令経路として指令してもよいし、他の指令経路でもよい。
4.実施形態4
本実施形態では、実施形態1、実施形態2または実施形態3の構成および指令経路をテーブル回転型5軸機の工作機械3に適用する。構成および指令経路は、実施形態1、実施形態2または実施形態3に記載の構成および指令経路と同様であるので、説明を省略する。ただし、構成についてモータ4はX,Y,Z軸に加えて回転軸2軸(本例ではA,C軸)の5軸分が存在するとする。
図46は、テーブル5が傾斜軸としてA軸を、その上の回転軸としてC軸を持つテーブル回転型5軸加工機のテーブル5の構成を示している。本実施形態の構成例では2軸の回転軸を有するが、工作機械3としては少なくとも1軸の直進軸と1軸の回転軸を有すればよい。
本実施形態では、実施形態1、実施形態2または実施形態3の構成および指令経路をテーブル回転型5軸機の工作機械3に適用する。構成および指令経路は、実施形態1、実施形態2または実施形態3に記載の構成および指令経路と同様であるので、説明を省略する。ただし、構成についてモータ4はX,Y,Z軸に加えて回転軸2軸(本例ではA,C軸)の5軸分が存在するとする。
図46は、テーブル5が傾斜軸としてA軸を、その上の回転軸としてC軸を持つテーブル回転型5軸加工機のテーブル5の構成を示している。本実施形態の構成例では2軸の回転軸を有するが、工作機械3としては少なくとも1軸の直進軸と1軸の回転軸を有すればよい。
C軸で回転するテーブル5上に測定装置6が設置される。測定装置6上の座標系である測定装置座標系上において指令経路として、例えばO2曲線を指令する。O2曲線上の指令位置をP(Px,Py)とする。測定装置座標系上でのテーブル回転中心位置を(cx,cy)とする。テーブル回転中心に機械座標系があるとする。最初の測定装置座標系と機械座標系は平行とする。
数17式の変換を行い、数値制御装置2に対してXの位置を機械座標系のX軸として指令しCの位置をC軸に指令することで工作機械3の運動を行う。この変換を行う機能(一般に極座標補間と呼ばれる)が数値制御装置2にあれば数値制御装置2で変換と指令を行ってもよい。
数17式の変換を行い、数値制御装置2に対してXの位置を機械座標系のX軸として指令しCの位置をC軸に指令することで工作機械3の運動を行う。この変換を行う機能(一般に極座標補間と呼ばれる)が数値制御装置2にあれば数値制御装置2で変換と指令を行ってもよい。
このことにより、測定装置座標系上のO2曲線の指令経路が、工作機械3ではX軸とC軸の運動で実現される。その結果の測定位置が測定装置6によって測定され、実位置取得部11が測定装置座標系上の測定位置を取得し、それを実位置Qn(Qnx,Qny)とする。後は実施形態1、実施形態2、実施形態3と同様であるため、説明を省略する。
図47のように、C軸で回転するテーブル5上に設置された治具上に測定装置6を設置し、X軸、C軸の代わりにY軸、A軸に対しても同様に指令し、測定し、実位置を取得できる。
このことにより、直進軸と回転軸を有する工作機械3において、直進軸と回転軸を組み合わせて運動させる場合の運動性能を測定できる。
図47のように、C軸で回転するテーブル5上に設置された治具上に測定装置6を設置し、X軸、C軸の代わりにY軸、A軸に対しても同様に指令し、測定し、実位置を取得できる。
このことにより、直進軸と回転軸を有する工作機械3において、直進軸と回転軸を組み合わせて運動させる場合の運動性能を測定できる。
5.実施形態5
近年、3軸(X,Y,Z軸)による3次元測定位置を測定する測定装置6の研究開発も進んでいる。また、モータ4からのフィードバック位置や、工作機械3に装着されたスケールからのフィードバック位置から、3軸(X,Y,Z軸)による測定位置を測定できる。あるいは、治具上に測定装置6を設置することにより2次元の測定装置6であっても3次元測定位置を測定できる。本実施形態では、実施形態1、実施形態2または実施形態3の構成および指令経路を、少なくとも直交3軸を有する工作機械3に適用する。構成は、実施形態1、実施形態2または実施形態3に記載の構成と同様であるので、説明を省略する。
近年、3軸(X,Y,Z軸)による3次元測定位置を測定する測定装置6の研究開発も進んでいる。また、モータ4からのフィードバック位置や、工作機械3に装着されたスケールからのフィードバック位置から、3軸(X,Y,Z軸)による測定位置を測定できる。あるいは、治具上に測定装置6を設置することにより2次元の測定装置6であっても3次元測定位置を測定できる。本実施形態では、実施形態1、実施形態2または実施形態3の構成および指令経路を、少なくとも直交3軸を有する工作機械3に適用する。構成は、実施形態1、実施形態2または実施形態3に記載の構成と同様であるので、説明を省略する。
指令経路は図48(a)または(b)のように、2次元指令経路平面上の指令経路を3次元空間内の傾斜面上(図48の一点鎖線)に変換することにより、X,Y,Zの3次元空間内における傾斜面上でのX,Y,Z軸の3軸によって指令する。3次元空間内の傾斜面について、図48(a)は、a*X+b*Y+c*Z=dの傾斜面の例を示し、図48(b)は、e*X+f*Y=gの傾斜面の例を示す。(a,b,c,d,e,f,gは定数) 図48(b)では、治具上に設置された2次元の測定装置6に平行な傾斜面上での指令経路によるX,Y,Z軸の3軸の運動を行うが、測定装置6によって測定装置座標系上の2次元の運動として測定される。つまり、測定位置は測定装置6上の2次元座標系である測定装置座標系上の2次元の位置として測定される。
図48(a)では、3軸(X,Y,Z軸)による3次元測定位置を2次元指令経路平面に逆変換して実位置とする。図48(b)では、測定装置座標系上の2次元測定位置を2次元指令経路平面に逆変換して実位置とする。これらの変換、逆変換は従来技術であるので詳述しない。後は実施形態1、実施形態2、実施形態3と同様であるため、説明を省略する。
このことにより、少なくとも直交3軸を有する工作機械3におけるX,Y,Z軸の同時3軸による運動性能を測定できる。
図48(a)では、3軸(X,Y,Z軸)による3次元測定位置を2次元指令経路平面に逆変換して実位置とする。図48(b)では、測定装置座標系上の2次元測定位置を2次元指令経路平面に逆変換して実位置とする。これらの変換、逆変換は従来技術であるので詳述しない。後は実施形態1、実施形態2、実施形態3と同様であるため、説明を省略する。
このことにより、少なくとも直交3軸を有する工作機械3におけるX,Y,Z軸の同時3軸による運動性能を測定できる。
1 数値制御工作機械
2 数値制御装置
3 工作機械
4 モータ
4(X) X軸モータ
4(Y) Y軸モータ
4(Z) Z軸モータ
5 テーブル
6 測定装置
7 数値制御工作機械測定装置
8 経路指令部
9 指令位置取得部
10 誤差演算部
11 実位置取得部
12 描画経路表示部
13 速度・誤差表示部
14 外部出力部
2 数値制御装置
3 工作機械
4 モータ
4(X) X軸モータ
4(Y) Y軸モータ
4(Z) Z軸モータ
5 テーブル
6 測定装置
7 数値制御工作機械測定装置
8 経路指令部
9 指令位置取得部
10 誤差演算部
11 実位置取得部
12 描画経路表示部
13 速度・誤差表示部
14 外部出力部
Claims (5)
- 数値制御装置が制御する工作機械である数値制御工作機械の運動性能を測定する数値制御工作機械測定装置であって、
前記工作機械を運動させるための指令経路を前記数値制御装置に指令する経路指令部と、
離散的時刻での前記指令経路上の指令位置、または前記指令経路上に指令された指令位置を取得する指令位置取得部と、
前記工作機械が前記指令経路に対する運動を行なった結果としての離散的時刻での実位置を取得する実位置取得部と、
前記指令位置を結んで指令経路とし前記実位置を結んで実経路としそれらの経路の間の誤差を演算する誤差演算部と、
前記工作機械が前記指令経路に対する運動を行った結果としての時間を測定し速度要素を演算するとともに、前記指令経路と前記実経路との間の誤差ベクトルから誤差要素を演算し前記速度要素とともに少なくとも3次元の座標系で速度・誤差を表示する、または前記速度要素と前記誤差要素を含む関数である評価関数を演算し表示する速度・誤差表示部を有する数値制御工作機械測定装置。 - 前記速度要素は、前記指令経路の運動を行う時間を測定した測定時間、または前記指令経路の長さを前記測定時間で割った測定速度である請求項1に記載の数値制御工作機械測定装置。
- 前記誤差要素は、前記誤差ベクトルの長さの平均である平均誤差、前記誤差ベクトルの長さの最大値である最大誤差、前記誤差ベクトルの長さの標準偏差である標準偏差誤差、前記誤差ベクトルの長さの前記指令経路に対する変化量である誤差変化量の平均値である平均誤差変化、または前記誤差変化量の最大値である最大誤差変化である請求項1に記載の数値制御工作機械測定装置。
- 前記実位置は、前記工作機械が前記指令経路に対する運動を行った結果としての離散的時刻での測定位置を平均化した位置である請求項1に記載の数値制御工作機械測定装置。
- 前記工作機械は、少なくとも直進軸2軸または少なくとも直進軸1軸と回転軸1軸を有する工作機械である請求項1〜請求項4のいずれか1つに記載の数値制御工作機械測定装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017133891A JP2019016216A (ja) | 2017-07-07 | 2017-07-07 | 数値制御工作機械測定装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017133891A JP2019016216A (ja) | 2017-07-07 | 2017-07-07 | 数値制御工作機械測定装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019016216A true JP2019016216A (ja) | 2019-01-31 |
Family
ID=65359028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017133891A Pending JP2019016216A (ja) | 2017-07-07 | 2017-07-07 | 数値制御工作機械測定装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019016216A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200150599A1 (en) * | 2018-11-09 | 2020-05-14 | Fanuc Corporation | Output device, control device, and method for outputting evaluation functions and machine learning results |
CN113759829A (zh) * | 2021-08-26 | 2021-12-07 | 超同步股份有限公司 | 五轴机床带刀尖跟踪功能的后置处理方法及装置 |
-
2017
- 2017-07-07 JP JP2017133891A patent/JP2019016216A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200150599A1 (en) * | 2018-11-09 | 2020-05-14 | Fanuc Corporation | Output device, control device, and method for outputting evaluation functions and machine learning results |
US11592789B2 (en) * | 2018-11-09 | 2023-02-28 | Fanuc Corporation | Output device, control device, and method for outputting evaluation functions and machine learning results |
CN113759829A (zh) * | 2021-08-26 | 2021-12-07 | 超同步股份有限公司 | 五轴机床带刀尖跟踪功能的后置处理方法及装置 |
CN113759829B (zh) * | 2021-08-26 | 2023-09-29 | 超同步股份有限公司 | 五轴机床带刀尖跟踪功能的后置处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pateloup et al. | Bspline approximation of circle arc and straight line for pocket machining | |
KR101126808B1 (ko) | 다축 제어 기계의 오차 평가 방법 및 장치 | |
JP5342665B2 (ja) | 渦巻き状計測経路に沿って計測を行うレンズ形状加工方法およびレンズ形状加工装置 | |
CN109683552B (zh) | 一种基面曲线导向的复杂点云模型上的数控加工路径生成方法 | |
JP6672702B2 (ja) | 制御装置、工作機械、制御方法及びコンピュータプログラム | |
CN109828535B (zh) | 一种基于四阶龙格-库塔算法的nurbs曲线插补方法 | |
JP2018077778A (ja) | 数値制御装置 | |
JP2006065716A (ja) | 変形誤差の補正方法 | |
JP6179870B1 (ja) | 数値制御工作機械測定装置 | |
JP6629808B2 (ja) | 数値制御装置 | |
JP2019016216A (ja) | 数値制御工作機械測定装置 | |
CN112269356A (zh) | 一种机器人nurbs轨迹插补方法 | |
JP7061013B2 (ja) | 経路補正方法及び多軸加工機の制御装置 | |
JP6567073B2 (ja) | 工具経路生成方法 | |
JP2014219933A (ja) | 物品処理装置、生成方法およびプログラム | |
Baek et al. | Precision NURBS interpolator based on recursive characteristics of NURBS | |
JP2018124091A (ja) | 形状測定装置の制御方法 | |
JP6435962B2 (ja) | 制御装置、工作機械及びコンピュータプログラム | |
CN114967597B (zh) | 一种基于双向泰勒保证数控加工刀具轨迹g2连续的曲线拟合方法 | |
EP4036520B1 (en) | Automatic generation of probe path for surface inspection and part alignment | |
US5515290A (en) | Three-dimensional machining method | |
JP5788260B2 (ja) | 誤差補正部を備えた数値制御装置 | |
CN111880480B (zh) | 一种基于cnc铣床的铣刀切割路径生成方法及系统 | |
KR101525677B1 (ko) | 원호 시험용 가상 오차 평가 시뮬레이션 방법 | |
Watanabe et al. | Development of tool collision avoidance method adapted to uncut workpiece shape |