(57)【特許請求の範囲】
【請求項１】
工具を用いてワークを加工する工作機械において前記工具または前記ワークを回転動作させる機構の駆動源であるモータを制御する数値制御装置であって、
前記機構が有する回転軸の位置がずれる現象である芯振れによる機械誤差を表すモデル関数を求めることによって、前記機械誤差の仮モデルを設定する仮モデル設定部と、
前記機構の動作を測定した結果である測定データに前記モデル関数をフィッティングさせることによって前記機械誤差のモデルである誤差モデルを求めるフィッティング処理部と、
前記誤差モデルに基づいて前記モータへの指令を補正する補正部と、
を備えることを特徴とする数値制御装置。
【請求項２】
前記測定データのスプライン補間を行う補間処理部を備え、
前記補正部は、前記誤差モデルに基づいた補正と前記スプライン補間に基づいた補正とのうち選択された一方を行うことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記フィッティング処理部は、前記誤差モデルである第１の誤差モデルを求め、かつ、前記測定データに多項式をフィッティングさせることによって第２の誤差モデルを求め、
前記補正部は、前記第１の誤差モデルに基づいた補正と前記第２の誤差モデルに基づいた補正とのうち選択された一方を行うことを特徴とする請求項１に記載の数値制御装置。
【請求項４】
前記フィッティング処理部は、正則化項が付加された前記多項式を前記測定データにフィッティングさせることによって前記第２の誤差モデルを求めることを特徴とする請求項３に記載の数値制御装置。
【請求項５】
前記測定データと、前記誤差モデルに基づいた補正量のデータとを表示する表示部を備えることを特徴とする請求項１から４のいずれか１つに記載の数値制御装置。
【請求項６】
前記モデル関数の周期は、前記回転軸の回転周期と同期していることを特徴とする請求項１から５のいずれか１つに記載の数値制御装置。
【請求項７】
前記回転軸に取り付けられている回転盤について、互いに垂直な２つの軸である第１の軸と第２の軸との原点に、前記芯振れが生じていないときにおける前記回転盤の中心点が一致するとして、
前記回転盤の半径をＰ、および前記芯振れによって移動した前記中心点と前記原点との距離をｄとして、Ｐ／ｄ＝Ｐ’が成り立ち、前記芯振れによって移動した前記中心点と前記原点とを結ぶ線分と前記第１の軸とがなす角度をθとして、前記原点を基準とする前記中心点の方角を示す角度の前記芯振れによる変化量をθ＋φと表し、かつ、前記機械誤差をαとした場合において、
前記モデル関数は、以下の式（１）によって表されることを特徴とする請求項１から６のいずれか１つに記載の数値制御装置。
【数１】
0006719684.tif 000014
【請求項８】
ｎを２以上の整数として、前記フィッティング処理部は、前記誤差モデルをｎ次多項式と仮定し、
ｍを２以上の整数、ｋを０からｎの整数を表す変数として、前記回転軸が回転する角度範囲をｍ個に分割した場合における分割点の１つであるｉ番目のポイントについて、指令に応じた回転角度である指令角度をθｉ、測定された誤差をｚｉとし、かつ、θを変数とする前記ｎ次多項式をｆ（θ）、前記ｎ次多項式におけるｋ次の項の係数をｃｋとした場合において、
前記フィッティング処理部は、次の式（２）によって表されるＪを最小化させるｃｋを求めることによって、測定された誤差に前記ｎ次多項式をフィッティングさせることを特徴とする請求項１から７のいずれか１つに記載の数値制御装置。
【数２】
0006719684.tif 000015
【請求項９】
ｎを２以上の整数として、前記フィッティング処理部は、前記誤差モデルをｎ次多項式と仮定し、
ｍを２以上の整数、ｋを０からｎの整数として、前記回転軸が回転する角度範囲をｍ個に分割した場合における分割点の１つであるｉ番目のポイントについて、指令に応じた回転角度である指令角度をθｉ、測定された誤差をｚｉとし、かつ、θを変数とする前記ｎ次多項式をｆ（θ）、前記ｎ次多項式におけるｋ次の項の係数をｃｋ、正則化パラメータをλとした場合において、
前記フィッティング処理部は、次の式（３）によって表されるＪを最小化させるｃｋを求めることによって、測定された誤差に前記ｎ次多項式をフィッティングさせることを特徴とする請求項８に記載の数値制御装置。
【数３】
0006719684.tif 000016
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用機械を制御する数値制御装置に関する。
【背景技術】
【０００２】
産業用機械である工作機械には、加工対象物であるワークまたは工具の回転角度を変化させるための機構である主軸等の駆動軸を有するものがある。かかる工作機械を制御する数値制御装置は、駆動軸を制御する。なお、以下の説明では、数値制御装置をＮＣ（Numerical  Control）装置と称することがある。特許文献１には、工作機械が有する主軸を制御するＮＣ装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平２−３０９４０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＮＣ装置による駆動軸の制御において、例えば主軸は、主軸の構造に起因して、指令に従った動作と実際の動作との間に誤差を生じることがある。このように、機構が持つ構造に起因して生じる誤差は、機械誤差と称される。主軸において生じる機械誤差には、回転軸の位置が本来の位置からずれる現象である芯振れに起因する機械誤差が挙げられる。工作機械による高精度な加工を可能とするために、上記特許文献１に開示される従来のＮＣ装置は、芯振れに起因する機械誤差を高精度に補正することが求められている。【０００５】
本発明は、上記に鑑みてなされたものであって、回転軸の位置がずれることに起因する機械誤差の高精度な補正を可能とする数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明にかかる数値制御装置は、工具を用いてワークを加工する工作機械において工具またはワークを回転動作させる機構の駆動源であるモータを制御する。本発明にかかる数値制御装置は、機構が有する回転軸の位置がずれる現象である芯振れによる機械誤差を表すモデル関数を求めることによって、機械誤差の仮モデルを設定する仮モデル設定部と、機構の動作を測定した結果である測定データにモデル関数をフィッティングさせることによって機械誤差のモデルである誤差モデルを求めるフィッティング処理部と、誤差モデルに基づいてモータへの指令を補正する補正部と、を備える。
【発明の効果】
【０００７】
本発明にかかる数値制御装置は、回転軸の位置がずれることに起因する機械誤差の高精度な補正が可能となるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態１にかかるＮＣ装置と、ＮＣ装置によって制御される工作機械とを示す図
【図２】図１に示すＮＣ装置によって制御される主軸における芯振れ誤差と周期誤差とについて説明する図
【図３】図１に示すＮＣ装置が有する芯振れ誤差処理部を示すブロック図
【図４】図１に示すＮＣ装置によって制御される主軸のうち回転角度の検出のための構成を示す図
【図５】図１に示すＮＣ装置によって制御される主軸における芯振れ誤差について説明する第１の図
【図６】図１に示すＮＣ装置によって制御される主軸における芯振れ誤差について説明する第２の図
【図７】図１に示すＮＣ装置によって制御される主軸における芯振れ誤差について説明する第３の図
【図８】図１に示すＮＣ装置が有する表示部に表示される画面の例を示す図
【図９】本発明の実施の形態１にかかるＮＣ装置のハードウェア構成を示すブロック図
【発明を実施するための形態】
【０００９】
以下に、本発明の実施の形態にかかる数値制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態１．
図１は、本発明の実施の形態１にかかるＮＣ装置１と、ＮＣ装置１によって制御される工作機械２とを示す図である。工作機械２は、工具を用いてワーク５を加工する。工作機械２は、ワーク５と工具との相対位置を直線運動によって変化させる直線駆動軸３と、工具またはワーク５の回転角度を回転運動によって変化させる主軸４とを有する。図１には、ワーク５を回転させる主軸４を示している。主軸４は、回転軸であるシャフト３７を有する。図１では、工具の図示を省略している。
【００１１】
直線駆動軸３は、直線駆動軸３の駆動源であるサーボモータ３２と、サーボモータ３２を動作させるサーボアンプ３１と、サーボモータ３２の駆動によって回転するボールねじ３３と、ボールねじ３３の回転によってボールねじ３３の中心軸に平行な軸方向へ移動する移動体３４とを有する。直線駆動軸３は、ボールねじ３３の回転運動を直線運動に変換する機構である。サーボアンプ３１は、ＮＣ装置１から出力される軸指令にしたがってサーボモータ３２を動作させる。ＮＣ装置１は、サーボアンプ３１へ軸指令を出力することによって、サーボモータ３２を制御する。
【００１２】
主軸４は、主軸４の駆動源である主軸モータ３６と、主軸モータ３６を動作させる主軸アンプ３５とを有する。チャック３８は、主軸モータ３６の出力軸であるシャフト３７にワーク５を固定させる。主軸４は、シャフト３７に取り付けられたワーク５を回転させる機構である。主軸アンプ３５は、ＮＣ装置１から出力される軸指令にしたがって主軸モータ３６を動作させる。ＮＣ装置１は、主軸アンプ３５へ軸指令を出力することによって、主軸モータ３６を制御する。
【００１３】
ＮＣ装置１は、加工プログラムを取得するプログラム取得部１０と、取得された加工プログラムを解析するプログラム解析部１１と、プログラム解析部１１による解析結果を基に軸指令を生成する軸指令生成部１２とを有する。軸指令生成部１２は、直線駆動軸３に対する軸指令と主軸４に対する軸指令とを生成する。軸指令生成部１２は、生成された軸指令を加算器１８と補正量決定部１６とへ出力する。
【００１４】
ＮＣ装置１は、機械誤差の測定データを取得するデータ取得部１３と、情報入力のための操作を受け付ける入力部１４と、測定データの処理を実行するデータ処理部１５と、情報を表示する表示部２０とを有する。データ処理部１５は、芯振れ誤差補正についてのデータ処理を担う芯振れ誤差処理部２１と、周期誤差補正についてのデータ処理を担う周期誤差処理部２２とを有する。芯振れ誤差処理部２１と周期誤差処理部２２との詳細については後述する。
【００１５】
主軸４の機械誤差は、測定機器によって測定される。図１では、測定機器の図示を省略している。データ取得部１３は、測定機器による測定結果である測定データを取り込む。入力部１４には、ＮＣ装置１のユーザの操作によって、データ処理部１５における処理に関する情報が入力される。データ処理部１５は、データ取得部１３から取り込んだ測定データと入力部１４へ入力された情報とを基に、データ処理を実行する。表示部２０は、データ処理部１５における処理に関する情報を表示する。
【００１６】
データ処理部１５は、データ処理の結果である誤差データを誤差データ格納部１７へ出力する。誤差データ格納部１７は、誤差データを格納する。補正量決定部１６は、誤差データ格納部１７から読み出された誤差データを基に、機械誤差を補正するための補正量を決定する。補正量決定部１６は、主軸４について、指令された回転角度とのずれを相殺するための角度である補正量を決定する。補正量決定部１６は、決定された補正量を加算器１８へ出力する。
【００１７】
加算器１８は、主軸４に対する指令角度の値に、決定された補正量を加算する。補正量決定部１６および加算器１８は、主軸モータ３６への指令を補正する補正部として機能する。加算器１８は、補正量の加算を経た軸指令を駆動指令部１９へ出力する。駆動指令部１９は、主軸４に対する軸指令を主軸アンプ３５へ出力する。なお、ＮＣ装置１は、主軸４が工具を回転させる機構である場合も、主軸４がワーク５を回転させる機構である場合と同様に、主軸４に対する軸指令を補正することができる。
【００１８】
ＮＣ装置１は、直線駆動軸３についても、補正量決定部１６と加算器１８とにより軸指令の補正を行う。実施の形態１では、直線駆動軸３に対する軸指令の補正については説明を省略する。
【００１９】
次に、芯振れ誤差補正と周期誤差補正とについて説明する。図２は、図１に示すＮＣ装置１によって制御される主軸４における芯振れ誤差と周期誤差とについて説明する図である。主軸４は、チャック３８、ワーク５または工具の重量の偏りに起因して、芯振れを生じる。芯振れは、シャフト３７の位置が本来の位置からずれる現象である。芯振れにより、シャフト３７の回転中心位置は、シャフト３７の中心軸に垂直な方向においてシフトする。主軸４の芯振れによる誤差は、主軸４に生じる機械誤差の主な成分となる。上記の測定機器は、主軸４の１回転の角度範囲を複数に分割して、シャフト３７の実際の回転角度と指令角度との誤差を分割点ごとに測定する。ＮＣ装置１は、測定データから得られた誤差モデルまたは測定データから得られた補間データを基に指令角度を補正する。このように、ＮＣ装置１は、主軸４について、分割点ごとの誤差の測定データを基に機械誤差を低減し得る。ＮＣ装置１は、分割点ごとの誤差の測定データを基に指令位置または指令角度を補正することにより、芯振れ誤差補正を行う。
【００２０】
ここで、図２に示される芯振れ誤差を表す波形の周期は、主軸４の回転周期と同期している。図２に示される芯振れ誤差の周期は、主軸４の回転周期と一致している。
【００２１】
主軸４に生じる機械誤差には、芯振れ誤差成分と、周期的に発生する誤差である周期誤差成分とが含まれている。主軸４の周期誤差は、主軸モータ３６に取り付けられている位置検出器に起因して生じる。位置検出器は、主軸モータ３６の回転角度を検出する。主軸アンプ３５は、位置検出器によって検出された回転角度の値が指令位置に追従するように主軸モータ３６を駆動する。図１では、主軸モータ３６における位置検出器の図示を省略している。以下の説明にて、周期誤差補正とは、誤差モデルを任意の波形と定め、かつ任意の周期を定めて周期的に誤差を補正することを指すものとする。なお、図２に示すように、周期誤差は芯振れ誤差の周期よりも短い周期で振動する特性を有する。ＮＣ装置１は、主軸４について、芯振れ誤差成分についての補正である芯振れ誤差補正と周期誤差成分についての補正である周期誤差補正との併用によって、機械誤差を補正する。
【００２２】
データ取得部１３は、主軸４について、分割点ごとにおける誤差の測定データを取得する。芯振れ誤差処理部２１は、かかる測定データを基に、芯振れ誤差補正のためのデータ処理を実行する。誤差データ格納部１７は、芯振れ誤差処理部２１でのデータ処理によって得られた誤差モデルまたは補間データである誤差データを格納する。芯振れ誤差処理部２１の詳細については後述する。
【００２３】
データ取得部１３は、主軸４に生じる周期誤差の測定データを取得する。周期誤差処理部２２は、かかる測定データを基に、周期誤差補正のためのデータ処理を実行する。周期誤差処理部２２は、測定データを基に任意の周期を定めるとともに、周期的な補正のための誤差データを求める。誤差データ格納部１７は、周期誤差処理部２２でのデータ処理によって得られた誤差データを格納する。
【００２４】
補正量決定部１６は、主軸４の芯振れ誤差補正と主軸４の周期誤差補正とについて、軸指令における指令位置に対応する誤差量を誤差データ格納部１７から読み出す。補正量決定部１６は、読み出された誤差量の値を符号反転させることによって、指令位置に対応する補正量の値を求める。補正量決定部１６は、芯振れ誤差補正と周期誤差補正とについて、指令位置に対応する補正量を決定する。補正量決定部１６は、主軸４について、芯振れ誤差補正のための補正量と周期誤差補正のための補正量との和を求め、求めた和を加算器１８へ出力する。このようにして、ＮＣ装置１は、芯振れ誤差補正のための補正量と周期誤差補正のための補正量との和を、機械誤差を補正するための補正量に設定して、主軸４についての軸指令を補正する。
【００２５】
次に、芯振れ誤差処理部２１について説明する。図３は、図１に示すＮＣ装置１が有する芯振れ誤差処理部２１を示すブロック図である。芯振れ誤差処理部２１は、機構に生じ得る機械誤差の要因である現象を表すモデル関数を求めることによって、機械誤差の仮モデルを設定する仮モデル設定部２３を有する。芯振れ誤差処理部２１は、機構の動作を測定した結果である測定データにモデル関数をフィッティングさせることによって機械誤差のモデルである誤差モデルを求めるフィッティング処理部２４を有する。また、芯振れ誤差処理部２１は、測定データの補間処理を実行する補間処理部２５を有する。
【００２６】
ＮＣ装置１は、機構が持つ構造を考慮した仮モデルを設定し、仮モデルのモデル関数を測定データにフィッティングさせることによって誤差モデルを求める。モデル関数の周期は、シャフト３７の回転周期と同期している。ＮＣ装置１は、誤差モデルを基に、ピッチ誤差補正のための補正量を決定する。ＮＣ装置１は、誤差モデルが実際の誤差とは外れる場合、または、仮モデルの設定が困難である場合において、測定データのスプライン補間によって補正量を決定可能とする。
【００２７】
以下、芯振れ誤差処理部２１による処理について説明する。図４は、図１に示すＮＣ装置１によって制御される主軸４のうち回転角度の検出のための構成を示す図である。図４では、図１に示す主軸４のうちのシャフト３７と位置検出器４０とを示している。位置検出器４０は、発光体である発光ダイオード４１と、固定スリット４２と、受光体であるフォトダイオード４３とを有する。
【００２８】
フォトダイオード４３は、発光ダイオード４１からの光を検出する。固定スリット４２は、発光ダイオード４１とフォトダイオード４３との間に配置されている。固定スリット４２には、それぞれ光が通過可能なＡ相スリット４５とＢ相スリット４６とが設けられている。フォトダイオード４３は、Ａ相スリット４５を通過した光とＢ相スリット４６を通過した光とを検出する。フォトダイオード４３は、Ａ相スリット４５を通過した光の検出結果を示すＡ相信号とＢ相スリット４６を通過した光の検出結果を示すＢ相信号とを出力する。
【００２９】
シャフト３７には、シャフト３７とともに回転する回転盤４４が取り付けられている。回転盤４４の中心は、シャフト３７の軸心に一致している。回転盤４４は、シャフト３７を中心に回転する。回転盤４４の外周には、等間隔に並べられた複数の歯が設けられている。発光ダイオード４１からの光は、歯に到達することによってフォトダイオード４３への入射が遮られ、歯と歯の間を通過した場合にフォトダイオード４３へ入射する。
【００３０】
位置検出器４０は、Ａ相信号のパルス数とＢ相信号のパルス数とを基に、Ａ相スリット４５およびＢ相スリット４６の双方の前を通過した歯の数をカウントする。位置検出器４０は、歯のカウント数を基に、シャフト３７の回転角度を検出する。位置検出器４０は、Ａ相信号とＢ相信号との位相差を基に、シャフト３７の回転方向を検出する。
【００３１】
図５は、図１に示すＮＣ装置１によって制御される主軸４における芯振れ誤差について説明する第１の図である。図６は、図１に示すＮＣ装置１によって制御される主軸４における芯振れ誤差について説明する第２の図である。図５および図６では、位置検出器４０と回転盤４４との位置関係の変化について説明する。主軸モータ３６の芯振れによる機械誤差が主軸４に生じた場合に、シャフト３７とともに回転盤４４が移動することによって、位置検出器４０と回転盤４４との位置関係が変化する。
【００３２】
図５には、芯振れが生じていない場合における回転盤４４について、回転盤４４が有する複数の歯のうちの１つの歯４７が位置検出器４０によって検出されたときの状態を示している。点Ｏは、芯振れが生じていない場合における回転盤４４の中心とする。
【００３３】
図６には、芯振れが生じた場合における回転盤４４を示している。点Ｃは、芯振れが生じた場合における回転盤４４の中心とする。図６に示す例では、芯振れによる回転盤４４の移動量、すなわち点Ｏと点Ｃとの間の長さは「ｄ」であるものとする。また、回転盤４４の移動によって、回転盤４４が有する複数の歯のうち、上記の歯４７とは異なる１つの歯４８が位置検出器４０によって検出されたとする。歯４７と歯４８との間の角度が、主軸モータ３６の芯振れによる主軸４の機械誤差である誤差Ｅに相当する。
【００３４】
図７は、図１に示すＮＣ装置１によって制御される主軸４における芯振れ誤差について説明する第３の図である。図７では、図６に示す芯振れの現象のモデル化を例として、仮モデル設定部２３に設定される仮モデルについて説明する。図７において、第１の軸であるＸ軸と第２の軸であるＹ軸とは、互いに垂直な２軸とする。Ｘ軸とＹ軸との原点は、点Ｏとする。また、図７には、回転盤４４の平面形状を単純化した円５１，５２を表している。円５１は、芯振れが生じていない場合における回転盤４４を表している。円５２は、芯振れが生じた場合における回転盤４４を表している。また、円５１，５２の半径はそれぞれ「Ｐ」であるものとする。円５１の中心点は、点Ｏに一致している。
【００３５】
図７では、図６と同様に、芯振れによる回転盤４４の移動量は「ｄ」である。回転盤４４の中心点は、芯振れによって移動する。円５２の中心である点Ｃは、芯振れが生じているときにおける回転盤４４の中心点である。点Ｃは、芯振れによって、円５３に沿って移動するものとする。円５３は、点Ｏが中心であってかつ半径が「ｄ」である円である。芯振れの現象によって、シャフト３７が１回転する間に点Ｃが円５３を１周するものとする。
【００３６】
円５１は、次の式（１）によって表される。また、円５３は、次の式（２）によって表される。
【００３７】
【数１】
0006719684.tif 000002
【００３８】
【数２】
0006719684.tif 000003
【００３９】
Ｘ軸上の点Ｃ’について、線分ＯＣ’と線分Ｃ’Ｃとが互いに垂直であるとして、∠ＣＯＣ’＝θとする。ここで、θは、芯振れによって移動した中心点である点Ｃと点Ｏとを結ぶ線分ＯＣとＸ軸とがなす角度である。円５２は、次の式（３）によって表される。なお、円５２とＹ軸との交点である点Ａは、図６に示す歯４８の位置を表している。Ｙ＞０における線分Ｃ’Ｃの延長線と円５２との交点である点Ｂ’は、図６に示す歯４７の位置を表している。
【００４０】
【数３】
0006719684.tif 000004
【００４１】
線分ＣＢ’上の点Ｂについて、線分ＣＢと線分ＡＢとが互いに垂直であるとして、線分ＡＢの長さは、次の式（４）によって表される。式（４）において、「ＡＢ」は線分ＡＢの長さ、「Ｏ’Ｃ」は線分Ｏ’Ｃの長さ、「ＯＣ’」は線分ＯＣ’の長さをそれぞれ表すものとする。
【００４２】
【数４】
0006719684.tif 000005
【００４３】
線分ＡＣの長さは、円５２の半径である「Ｐ」である。∠ＡＣＢ＝αとすると、上記の数４により、次の式（５）が成り立つ。また、式（５）により、次の式（６）が成り立つ。式（５）において、「ＡＢ」は線分ＡＢの長さ、「ＡＣ」は線分ＡＣの長さをそれぞれ表すものとする。
【００４４】
【数５】
0006719684.tif 000006
【００４５】
【数６】
0006719684.tif 000007
【００４６】
ここで、上記の式（６）に示す「Ｐ／ｄ」を「Ｐ’」と置き換える。また、上記の「θ」の基準位置が未知であることを考慮し、上記の式（６）に示す「θ」を「θ＋φ」と置き換える。「＋φ」は、φの位相が付加されたことを表す。これらの置き換えにより、上記の式（６）は、次の式（７）のように表される。θ+φは、点Ｏを基準とする回転盤４４の中心点の方角を示す角度の、芯振れによる変化量を表す。
【００４７】
【数７】
0006719684.tif 000008
【００４８】
上記の式（７）に示す「α」は、上記の誤差Ｅに相当する角度である。式（７）は、主軸モータ３６の芯振れによる主軸４の機械誤差についてのモデル関数を表す。図３に示す仮モデル設定部２３は、芯振れの現象による機械誤差について、上記の式（７）に示すようなモデル関数を、仮モデルに設定する。このように、仮モデル設定部２３は、芯振れの現象について、簡易的なモデル化によって仮モデルを設定することができる。
【００４９】
仮モデル設定部２３は、ユーザによる入力操作にしたがって、仮モデルを設定するまでの処理を行う。仮モデル設定部２３は、ユーザによって入力された条件値を用いて仮モデルを生成する。条件値は、上記の「Ｐ」および「ｄ」などである。仮モデル設定部２３は、ＮＣ装置１の外部の装置によって作成されたモデル関数を取得することによって、仮モデルを設定することとしても良い。なお、仮モデル設定部２３は、芯振れによる点Ｃの軌跡を、円に限られず、楕円としても良い。仮モデル設定部２３は、主軸モータ３６の特性に応じて、点Ｃの軌跡を示す形状を適宜設定可能であっても良い。
【００５０】
次に、芯振れによる主軸４の機械誤差についてのモデル関数を例として、測定データへの仮モデルのフィッティングについて説明する。フィッティング処理部２４は、最小二乗法によるフィッティングを行う。上記の式（７）は、「θ」、「φ」および「Ｐ’」を引数とする多変数関数である。上記の式（７）は、次の式（８）のように書き換えられる。
【００５１】
【数８】
0006719684.tif 000009
【００５２】
主軸４の１回転の角度範囲をｍ分割したとして、主軸４の芯振れによる誤差についての測定データが｛（θｉ，ｚｉ）；ｉ＝１，・・・，ｍ｝であったとする。「ｍ」は２以上の整数とする。「θｉ」は、指令に応じた回転角度であって、分割点の１つであるｉ番目のポイントにおける回転角度とする。「ｚｉ」は、ｉ番目のポイントにおいて測定された誤差とする。
【００５３】
フィッティング処理部２４は、次の式（９）に示される「Ｊ」の関数を最小化させる「φ」および「Ｐ’」を求めることにより、フィッティングを行う。
【００５４】
【数９】
0006719684.tif 000010
【００５５】
フィッティング処理部２４は、非線形最小二乗法によって、非線形の誤差モデルを求める。フィッティング処理部２４によるフィッティングには、代表的な非線形最小二乗法であるガウス・ニュートン法を用いることができる。フィッティングには、ガウス・ニュートン法以外の方法を用いても良い。フィッティング処理部２４は、フィッティングによって求めた誤差モデルを誤差データ格納部１７へ出力する。
【００５６】
フィッティング処理部２４は、上記の仮モデルへのフィッティングに代えて、１変数の多項式を測定データへフィッティングさせることによって誤差モデルを求めることもできる。フィッティング処理部２４は、上記の式（９）によって求めた誤差モデルが実際の誤差から外れたものとなる場合に、多項式によるフィッティングによって、実際の誤差に近い誤差モデルを得られる場合がある。
【００５７】
多項式によるフィッティングにおいて、フィッティング処理部２４は、誤差モデルを、次の式（１０）によって表されるｎ次多項式と仮定する。式（１０）は、「θ」を変数とする多項式である。「ｃｋ」は、ｋ次の項の係数を表す。「ｎ」は２以上の整数とする。「ｋ」は０からｎの整数を表す変数とする。
【００５８】
【数１０】
0006719684.tif 000011
【００５９】
フィッティング処理部２４は、次の式（１１）に示される「Ｊ」の関数を最小化させる「ｃｋ」を求めることによって、フィッティングを行う。
【００６０】
【数１１】
0006719684.tif 000012
【００６１】
フィッティング処理部２４は、最小化させる変数である「ｃｋ」が線形となることから、公知の最小二乗法によって「ｃｋ」を求めることができる。フィッティング処理部２４には、多項式の最高次数である「ｎ」の値があらかじめ設定される。「ｎ」の値は、ユーザによる入力操作によって設定されても良い。ＮＣ装置１は、仮モデルによるフィッティングに基づいた補正と多項式によるフィッティングによる補正との選択を可能とすることで、機械誤差の高精度な補正を行い得る。
【００６２】
フィッティング処理部２４は、多項式である誤差モデルに正則化項を付加しても良い。フィッティング処理部２４は、上記の式（１１）に正則化項を付加することによって、次の式（１２）を得ることができる。フィッティング処理部２４は、式（１２）に示される「Ｊ」の関数を最小化させる「ｃｋ」を求めることによって、フィッティングを行う。
【００６３】
【数１２】
0006719684.tif 000013
【００６４】
上記の式（１２）において、「λ」は、正則化パラメータとする。フィッティング処理部２４には、あらかじめ「λ」の値が設定される。「λ」の値は、ユーザによる入力操作によって設定されても良い。上記の「ｎ」の値が大きくなるにしたがって生じ得るオーバーフィッティングは、多項式の各係数が過大となることによって発生する。正則化項の付加は、各係数が過大となることを防ぐ効果がある。
【００６５】
フィッティング処理部２４は、正則化項の付加によって、オーバーフィッティングを効果的に抑制することができる。これにより、フィッティング処理部２４は、汎用性が高い誤差モデルを得ることができる。
【００６６】
次に、補間処理部２５による補間処理について説明する。補間処理部２５は、測定データ｛（θｉ，ｚｉ）；ｉ＝１，・・・，ｍ｝のスプライン補間を行う。補間処理部２５には、スプライン補間に用いられる多項式の次数があらかじめ設定される。補間処理部２５には、任意の次数を設定することができる。次数は、ユーザによる入力操作によって設定されても良い。補間処理部２５は、スプライン補間によって得られた補間データを誤差データ格納部１７へ出力する。
【００６７】
ＮＣ装置１は、フィッティング処理部２４によって求めた誤差モデルが実際の誤差から外れたものとなる場合、または、仮モデルの設定が困難である場合において、測定データのスプライン補間によってピッチ誤差補正を行うことができる。ＮＣ装置１は、上記の誤差モデルに基づいた補正とスプライン補間に基づいた補正との選択を可能とすることで、機械誤差の高精度な補正を行い得る。
【００６８】
このように、ＮＣ装置１は、フィッティング処理部２４によって求めた上記の誤差モデルに基づいた補正と、補間処理部２５による上記のスプライン補間に基づいた補正との一方を選択して、ピッチ誤差補正を行い得る。ＮＣ装置１は、ユーザによる入力部１４への入力操作にしたがって、誤差モデルに基づいた補正とスプライン補間に基づいた補正とを選択することができる。
【００６９】
ＮＣ装置１は、誤差モデルに基づいた補正について、仮モデルのフィッティングによって求めた誤差モデルである第１の誤差モデルと、多項式のフィッティングによって求めた誤差モデルである第２の誤差モデルとの一方を選択可能とする。ＮＣ装置１は、ユーザによる入力部１４への入力操作にしたがって、誤差モデルに基づいた補正について、第１の誤差モデルに基づいた補正と第２の誤差モデルに基づいた補正とを選択することができる。
【００７０】
補間処理部２５は、スプライン補間とは別に、測定データの直線補間を行い得るものであっても良い。この場合、ＮＣ装置１は、補間処理の結果に基づいた補正について、スプライン補間と直線補間との一方を選択可能とする。ＮＣ装置１は、ユーザによる入力部１４への入力操作にしたがって、スプライン補間に基づいた補正と直線補間に基づいた補正とを選択することができる。
【００７１】
以上により、ＮＣ装置１は、第１の誤差モデルに基づいた補正と、第２の誤差モデルに基づいた補正と、スプライン補間に基づいた補正と、直線補間に基づいた補正とから任意の補正を選択して、芯振れ誤差補正を行うことができる。
【００７２】
図８は、図１に示すＮＣ装置１が有する表示部２０に表示される画面の例を示す図である。図８において、「直線補間」は、上記の直線補間に基づいた補正形式を表す。「スプライン補間」は、上記のスプライン補間に基づいた補正形式を表す。「多項式フィッティング」は、上記の第２の誤差モデルに基づいた補正形式を表す。「仮モデルフィッティング」は、上記の第１の誤差モデルに基づいた補正形式を表す。ユーザは、表示部２０の画面に表示された内容を参照して、各補正形式のうちの１つを入力部１４の操作によって指定する。
【００７３】
芯振れ誤差処理部２１は、入力操作に応じた信号を入力部１４から受けると、指定された補正を行うための誤差データを誤差データ格納部１７へ出力する。「直線補間」が指定された場合、誤差データ格納部１７には、誤差データとして、補間処理部２５による直線補間の結果である補間データが格納される。「スプライン補間」が指定された場合、誤差データ格納部１７には、誤差データとして、補間処理部２５によるスプライン補間の結果である補間データが格納される。
【００７４】
「多項式フィッティング」が指定された場合、誤差データ格納部１７には、誤差データとして、第２の誤差モデルが格納される。「仮モデルフィッティング」が指定された場合、誤差データ格納部１７には、誤差データとして、第１の誤差モデルが格納される。補正量決定部１６は、誤差データ格納部１７から読み出された誤差データを基に、芯振れ誤差補正のための補正量を決定する。これにより、ＮＣ装置１は、任意の補正を選択して、芯振れ誤差補正を行う。さらに、「多項式フィッティング」が指定された場合、ＮＣ装置１は、ユーザによる入力によって、正則化項の付加の有無を決定しても良い。
【００７５】
表示部２０は、測定データと、誤差モデルに基づいた補正量のデータとをフィッティング処理部２４から取得して、測定データと補正量のデータとを表示しても良い。補正量のデータは、誤差データの符号反転によって得られる。また、表示部２０は、測定データと、補間処理に基づいた補正量のデータとを補間処理部２５から取得して、測定データと補正量のデータとを表示しても良い。これにより、ユーザは、測定された誤差に対する補正の効果を補正形式ごとに確認することができる。
【００７６】
ＮＣ装置１は、第２の誤差モデルに基づいた誤差量について、多項式の最高次数である「ｎ」の値を変化させる入力操作に伴って、画面に表示される誤差量の値を変化させることとしても良い。これにより、ユーザは、誤差量を確認しながら「ｎ」の値を調整することができる。また、ＮＣ装置１は、正則化項が付加された第２の誤差モデルについて、正則化パラメータである「λ」の値を変化させる入力操作に伴って、画面に表示される誤差量の値を変化させることとしても良い。これにより、ユーザは、誤差量を確認しながら「λ」の値を調整することができる。
【００７７】
ＮＣ装置１は、主軸４について、芯振れ誤差補正を行った場合における指令角度と芯振れ誤差補正を行わなかった場合における指令角度とのサンプリングを行うこととしても良い。ユーザは、かかるサンプリングの結果を基に双方の指令角度の差分を確認することによって、芯振れ誤差補正による改善の効果を判断することができる。ユーザは、芯振れ誤差補正を行った場合における回転角度と芯振れ誤差補正を行わなかった場合における回転角度とを測定機器によって測定し、測定結果を基に双方の回転角度を確認しても良い。
【００７８】
次に、ＮＣ装置１のハードウェア構成について説明する。図１に示すＮＣ装置１の各機能部は、実施の形態１にかかる数値制御方法を実行するためのプログラムである数値制御プログラムがハードウェアを用いて実行されることによって実現される。
【００７９】
図９は、本発明の実施の形態１にかかるＮＣ装置１のハードウェア構成を示すブロック図である。ＮＣ装置１は、各種処理を実行するＣＰＵ（Central  Processing  Unit）６１と、データ格納領域を含むＲＡＭ（Random  Access  Memory）６２と、不揮発性メモリであるＲＯＭ（Read  Only  Memory）６３と、外部記憶装置６４とを有する。また、ＮＣ装置１は、ＮＣ装置１への情報の入力のための入力インタフェース６５と、入力操作を受け付ける入力デバイス６６と、画面において情報を表示するディスプレイ６７とを有する。図９に示す各部は、バス６８を介して相互に接続されている。
【００８０】
ＣＰＵ６１は、ＲＯＭ６３および外部記憶装置６４に記憶されているプログラムを実行する。図１に示すプログラム取得部１０、プログラム解析部１１、軸指令生成部１２、データ処理部１５、補正量決定部１６、加算器１８および駆動指令部１９の各機能は、ＣＰＵ６１を使用して実現される。外部記憶装置６４は、ＨＤＤ（Hard  Disk  Drive）あるいはＳＳＤ（Solid  State  Drive）である。外部記憶装置６４は、数値制御プログラムと、各種情報とを記憶する。図１に示す誤差データ格納部１７の機能は、外部記憶装置６４を使用して実現される。
【００８１】
ＲＯＭ６３には、ＮＣ装置１であるコンピュータまたはコントローラの基本となる制御のためのプログラムであるＢＩＯＳ（Basic  Input/Output  System）あるいはＵＥＦＩ（Unified  Extensible  Firmware  Interface）といったブートローダであって、ハードウェアを制御するソフトウェアまたはプログラムが記憶されている。なお、数値制御プログラムは、ＲＯＭ６３に記憶されても良い。
【００８２】
ＲＯＭ６３および外部記憶装置６４に記憶されているプログラムは、ＲＡＭ６２にロードされる。ＣＰＵ６１は、ＲＡＭ６２に数値制御プログラムを展開して各種処理を実行する。入力インタフェース６５は、ＮＣ装置１の外部の装置との接続インタフェースである。図１に示すデータ取得部１３の機能は、入力インタフェース６５を使用して実現される。
【００８３】
入力デバイス６６は、キーボードあるいはポインティングデバイスといった、情報入力のためのデバイスである。図１に示す入力部１４の機能は、入力デバイス６６を使用して実現される。ディスプレイ６７は、液晶ディスプレイあるいは有機ＥＬディスプレイといった表示装置である。図１に示す表示部２０の機能は、ディスプレイ６７を使用して実現される。
【００８４】
数値制御プログラムは、コンピュータによる読み取りが可能とされた記憶媒体に記憶されたものであっても良い。ＮＣ装置１は、記憶媒体に記憶された数値制御プログラムを外部記憶装置６４へ格納しても良い。記憶媒体は、フレキシブルディスクである可搬型記憶媒体、あるいは半導体メモリであるフラッシュメモリであっても良い。数値制御プログラムは、他のコンピュータあるいはサーバ装置から通信ネットワークを介して、ＮＣ装置１となるコンピュータあるいはコントローラへインストールされても良い。
【００８５】
ＮＣ装置１の機能は、専用のハードウェアである処理回路によって実現されても良い。処理回路は、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field-Programmable  Gate  Array）、又はこれらの組み合わせである。ＮＣ装置１の機能は、一部を専用のハードウェアで実現し、他の一部をソフトウェアまたはファームウェアで実現するようにしても良い。
【００８６】
ＮＣ装置１は、工作機械２の外部の装置に限られず、工作機械２に含まれるものであっても良い。ＮＣ装置１の各機能部は、１つの装置に集約されたものに限られず、複数の装置に分散されたものであっても良い。ＮＣ装置１は、１つの装置を用いて実現されるものであっても良く、複数の装置を用いて実現されるものであっても良い。なお、ＮＣ装置１による芯振れ誤差補正の手法は、工作機械２以外の産業用機械の制御に適用されても良い。
【００８７】
実施の形態１によると、ＮＣ装置１は、機構に生じ得る現象を表すモデル関数を求めることによって、機構が持つ構造を考慮した仮モデルを設定して、測定データにモデル関数をフィッティングさせる。ＮＣ装置１は、仮モデルのフィッティングによって、機械誤差の高精度な補正を行うことができる。ＮＣ装置１は、分割点の数を多くすることによる補正精度の向上を図る場合と比べて、誤差の測定に要する負担を少なくすることができる。ＮＣ装置１は、仮モデルのフィッティングに基づいた補正と、多項式のフィッティングに基づいた補正と、スプライン補間に基づいた補正との選択を可能とすることで、機械誤差の高精度な補正を行い得る。以上により、ＮＣ装置１は、回転軸の位置がずれることに起因する機械誤差の高精度な補正が可能となるという効果を奏する。
【００８８】
本実施の形態１では、主軸４の芯振れ誤差を補正する場合について説明したが、主軸４以外の駆動軸が回転する場合の芯振れ誤差の補正においても本実施の形態１が適用できることは言うまでもない。
【００８９】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００９０】
１  ＮＣ装置、２  工作機械、３  直線駆動軸、４  主軸、５  ワーク、１０  プログラム取得部、１１  プログラム解析部、１２  軸指令生成部、１３  データ取得部、１４  入力部、１５  データ処理部、１６  補正量決定部、１７  誤差データ格納部、１８  加算器、１９  駆動指令部、２０  表示部、２１  芯振れ誤差処理部、２２  周期誤差処理部、２３  仮モデル設定部、２４  フィッティング処理部、２５  補間処理部、３１  サーボアンプ、３２  サーボモータ、３３  ボールねじ、３４  移動体、３５  主軸アンプ、３６  主軸モータ、３７  シャフト、３８  チャック、４０  位置検出器、４１  発光ダイオード、４２  固定スリット、４３  フォトダイオード、４４  回転盤、４５  Ａ相スリット、４６  Ｂ相スリット、４７，４８  歯、５１，５２，５３  円、６１  ＣＰＵ、６２  ＲＡＭ、６３  ＲＯＭ、６４  外部記憶装置、６５  入力インタフェース、６６  入力デバイス、６７  ディスプレイ、６８  バス。
【要約】
ＮＣ装置は、工具を用いてワークを加工する工作機械において工具またはワークを回転動作させる機構の駆動源であるモータを制御する。ＮＣ装置は、機構が有する回転軸の位置がずれる現象である芯振れを表すモデル関数を求めることによって、芯振れによる機械誤差の仮モデルを設定する仮モデル設定部（２３）と、機構の動作を測定した結果である測定データにモデル関数をフィッティングさせることによって機械誤差のモデルである誤差モデルを求めるフィッティング処理部（２４）と、誤差モデルに基づいてモータへの指令を補正する補正部と、を備える。【図１】
0006719684.tif 000017
【図２】
0006719684.tif 000018
【図３】
0006719684.tif 000019
【図４】
0006719684.tif 000020
【図５】
0006719684.tif 000021
【図６】
0006719684.tif 000022
【図７】
0006719684.tif 000023
【図８】
0006719684.tif 000024
【図９】
0006719684.tif 000025