以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係る位置検出装置10の構成を示す。位置検出装置10は、移動体100およびエンコーダ110を備える。移動体100は、エンコーダ110による位置検出の対象となる被測定物である。本実施形態において、移動体100は、一例として、回転軸に対して垂直に配置された円盤状の回転体である。これに代えて、移動体100は、直線に沿って、エンコーダ110に対して相対的に移動する移動体であってもよい。
移動体100は、複数のトラック105a~b(「トラック105」とも示す。)を備える。各トラック105は、移動体100の移動方向に沿って予め定められた間隔毎に設けられた複数のスリットを含む。本実施形態においては、各トラック105は、回転体である移動体100において、回転軸を中心とする円周方向に等間隔に設けられた複数のスリットを含む。各スリットは、磁気、光、または電気等を用いてエンコーダ110により検出可能な構造体である。例えば、各スリットは、移動体100の円周方向に等間隔に設けられた開口もしくは突起、移動体100の外周に形成された歯車の個々の歯、または、移動体100の円周方向に等間隔に着磁された着磁体等である。
複数のトラック105のそれぞれは、移動体100の面において、回転軸を中心として、回転軸からの距離(すなわち半径)が互いに異なる位置に設けられてよい。本実施形態においては、トラック105aは、移動体100の外周近傍において円周方向に設けられ、トラック105bは、トラック105aの内周側においてトラック105aに隣接して円周方向に設けられる。
ここで、複数のトラック105は、互いに異なる周期でスリットを有する。本実施形態において、トラック105aは、第1トラックの一例であり、移動体100の1周を予め定められた第1の数NMで分割した第1周期毎の第1スリットを含む。また、トラック105bは、第2トラックの一例であり、移動体100の1周を第1の数より小さい第2の数NNで分割した第2周期毎の第2スリットを含む。ここで、移動体100が有するトラック105が2つである場合には、トラック105aにおける1周あたりのスリットの数(第1の数NM)と、トラック105bにおける1周あたりのスリットの数(第2の数NN)とは、互いに素であってよい。第1の数NMおよび第2の数NNは、差が1となるように決定されてもよい。例えば、第1の数NMおよび第2の数NNの組は、(8,7)、(40,39)、または(128,127)等であってよい。
エンコーダ110は、移動体100の複数のトラック105から検出した複数の検出値に基づいて、移動体100の検出位置を算出する。エンコーダ110は、複数の検出部120a~b(「検出部120」とも示す。)と、スリット位置信号算出部130と、スリット番号算出部140と、補正テーブル150と、スリット番号補正部160と、位置算出部170とを備える。
複数の検出部120のそれぞれは、複数のトラック105のそれぞれに対応して設けられ、対応するトラック105から検出した検出値を出力する。本実施形態において、検出部120aは、第1検出部として機能し、第1トラックの一例であるトラック105aから第1検出値を検出して出力する。検出部120bは、第2検出部として機能し、第2トラックの一例であるトラック105bから第2検出値を検出して出力する。ここで、検出部120aおよび検出部120bは、対応するトラック105における隣接するスリット間を1周期(=360度)とする(電気)内挿角θMおよびθNをそれぞれ出力する。
スリット位置信号算出部130は、複数の検出部120に接続される。スリット位置信号算出部130は、複数の検出部120からの複数の検出値を用いて、スリット位置信号SSを出力する。スリット位置信号は、エンコーダ110により検出された移動体100の位置を示す値として、検出部120a~bにより検出された第1スリットのスリット番号を示す。
スリット番号算出部140は、スリット位置信号算出部130に接続される。スリット番号算出部140は、スリット位置信号算出部130が出力するスリット位置信号SSを用いて、予め定められた大きさの第1スリットを単位とするスリット番号SM(すなわち移動体100が位置するスリットのスリット番号)を算出する。ここで、スリット番号補正部160によるスリット番号の補正前における移動体100の検出位置は、スリット番号SMと、内挿角θMとの組で表される。本実施形態において、検出位置の一例としての機械角θdは、以下の式(1)で表される。
補正テーブル150は、検出部120aおよびスリット番号算出部140に接続される。補正テーブル150は、スリット番号毎に、第1トラックから検出された第1検出信号(内挿角θM)に応じた補正値のセットを格納する。補正テーブル150は、スリット番号算出部140から受け取ったスリット番号SMに対応付けられた補正値のセットのうち、第1検出信号により指定される内挿角θMに対応付けられた補正値Scalを出力する。
スリット番号補正部160は、スリット位置信号算出部130および補正テーブル150に接続される。スリット番号補正部160は、スリット位置信号算出部130から受け取るスリット位置信号SSを補正テーブル150から受け取る補正値Scalにより補正する。そして、スリット番号補正部160は、補正後のスリット位置信号に基づいて、補正後のスリット番号S'Mを算出する。ここで、スリット番号補正部160は、スリット位置信号算出部130からのスリット位置信号SSに補正値を加えた値を四捨五入して第1スリットを単位とするスリット番号を算出する。スリット位置信号SSの小数点が、スリット位置信号SSの整数部をスリット番号に対応させる位置にある場合には、スリット番号補正部160は、スリット位置信号SSに補正値を加えた値が整数となるように四捨五入したスリット番号を算出する。
位置算出部170は、検出部120aおよびスリット番号補正部160に接続される。位置算出部170は、スリット番号補正部160から受け取るスリット番号S'Mと、検出部120aから受け取る第1検出信号とを用いて、移動体100の位置(補正後の位置)を算出する。本実施形態において、位置算出部170は、移動体100の位置を示す値として、移動体100の1回転を1周期とする機械角θを出力する。
図2は、理想機械角および電気内挿角の関係の一例を示す。ここで、「理想機械角」とは、誤差を考慮しない場合の機械角を意味し、移動体100の実際の位置(実位置)に対応する。複数の検出部120のそれぞれは、対応するトラック105における隣接するスリット同士の間を1周期とする電気内挿角を出力する。一例として、各検出部120はトラック105のスリットを検出する2つのセンサを有し、2つのセンサの間にはスリット同士の間の1/4周期(90度)の位相差が与えられる。これにより、2つのセンサは、センス対象となるスリットからの電気内挿角に応じたsin電圧およびcos電圧を検出することができる。
各検出部120は、2つのセンサから出力されるsin電圧およびcos電圧の波形を補正してもよい。具体的には、各検出部120は、sin電圧およびcos電圧のオフセット、ゲイン、位相、またはひずみの少なくとも1つを補正してもよい。
次に各検出部120は、sin電圧およびcos電圧を用いて逆正接(arctan-1)を算出することにより、内挿角を算出する。各検出部120は、sin電圧およびcos電圧の振幅の歪み等を用いて、内挿角を補正してもよい。
本図の例においては、トラック105aは、移動体100の1周あたり8スリットを有し、トラック105bは、移動体100の1周あたり7スリットを有する。移動体100を1周(0度から360度)回転させると、検出部120aが出力する内挿角θMは0度から360度までを8周期繰り返し、検出部120bが出力する内挿角θNは0度から360度までを7周期繰り返す。したがって、これらの内挿角の差θM-θNは、図2に示したとおり移動体100が1周すると0度から360度まで変化するものであり、式(1)に示した機械角θdに相当する。
スリット位置信号算出部130は、内挿角θMおよびθNを用いて、検出位置に応じたスリット番号を示すスリット位置信号SSを算出する。ここで、スリット位置信号SSは、理想的にはスリット番号算出部140が出力するスリット番号SMと一致すべきものである。したがって、式(1)のスリット番号SMをスリット位置信号SSに置換し、式(1)の機械角θdに内挿角の差θM-θNを代入して変形すると、スリット位置信号SSは、以下の式(2)で表される。なお、式(2)は、NN=NM-1である場合について示す。
式(2)に示されるように、スリット位置信号算出部130は、内挿角の差θM-θNをNM倍し、内挿角θMを減じることによってトラック105aのスリット1周期内における内挿角θMの変化に伴うスリット位置信号SSの変化を相殺する。スリット位置信号算出部130は、これを1周期分の角度(360度)で割ることにより、理想的には移動体100が1周するとトラック105aのスリット番号に応じた0からNM-1までの整数値をとるスリット位置信号SSを算出することができる。
なお、他の実施形態においては、スリット位置信号算出部130は、スリット位置信号SSを補正するための補正値を算出するプリ補正関数を用いてスリット位置信号SSを補整してから出力してもよい。このようなプリ補正関数は、例えば、検出部120aおよび検出部120bが出力する内挿角θMおよびθNに基づいてよく、検出部120aおよび検出部120bの検出値の振幅RMおよびRNに基づいてよい。プリ補正関数は、例えば検出部120aおよび検出部120bが出力する内挿角の差θM-θNの正弦波(sin)を、目標とする補正量に応じて大きさおよび位相を調整したものであってよい。
図3は、理想機械角およびスリット番号の関係の一例を示す。本図のグラフは、誤差が無い場合における、機械角に応じたスリット位置信号SSの値を示す。誤差がない場合、スリット位置信号算出部130が出力するスリット位置信号SSは、移動体100がトラック105aの1周期目に対応する機械角に位置する場合には0、移動体100がトラック105aの2周期目に対応する機械角に位置する場合には1、…というように、移動体100の機械角に応じたスリット番号を示す。
スリット番号算出部140は、以下の式(3)に示すように、スリット位置信号を四捨五入して、移動体100の検出位置(機械角)に応じたスリット番号SMを算出してよい。この場合、スリット位置信号SSは、誤差に対して-0.5以上+0.5未満の範囲でマージンを有する。したがって、スリット番号算出部140は、スリット位置信号が-0.5以上+0.5未満の範囲の誤差を有していた場合でも、正しいスリット番号SMを算出することができる。
図4は、理想機械角毎のスリット位置信号エラーの一例を示す。本図においては、移動体100が、第1の数NM=40および第2の数NN=39であるトラック105aおよびトラック105bを有する場合について例示する。この場合、トラック105aは、1スリット周期が機械角9度に相当する(360÷40=9)。
本図のスリット位置信号エラーは、移動体100の位置が理想機械角である場合にスリット位置信号算出部130が実際に出力するスリット位置信号SSから、その理想機械角におけるスリット位置信号SSの理想値Sidealを減じた値(誤差)である。このようなスリット位置信号エラーは、一例として、位置検出装置10を較正するために、移動体100を回転させながら、理想のエンコーダ(例えばエンコーダ110の較正の基準として用いるエンコーダ)で理想のスリット番号Sidealを含む理想機械角を測定すると共に、スリット位置信号算出部130が出力するスリット位置信号SSを取得することによって測定できる。本図の例においては、理想機械角によっては、スリット位置信号エラーが±0.5の範囲を超えている。
図5は、理想機械角毎のスリット位置信号エラーの一例を、スリット番号20に着目して示す。本図のスリット位置信号エラーは、図4と同様である。スリット番号20は、機械角180~189度に対応する。エラー500a(スリット位置信号エラー500a)は、スリット位置信号SSが示すスリット番号が、理想機械角に対応するスリット番号20よりも2小さいことを示す。すなわち、スリット位置信号SSの値は、スリット番号18に対応する範囲内(例えば17.5以上18.5未満)であることを示す。
同様に、エラー500bは、スリット位置信号SSが示すスリット番号が、理想機械角に対応するスリット番号20よりも1小さくスリット番号19に対応する範囲内であることを示し、エラー500cは、スリット位置信号SSが示すスリット番号が、理想機械角に対応するスリット番号20と同じであることを示し、エラー500dは、スリット位置信号SSが示すスリット番号が、理想機械角に対応するスリット番号20よりも1大きくスリット番号21に対応する範囲内であることを示し、エラー500eは、スリット位置信号SSが示すスリット番号が、理想機械角に対応するスリット番号20よりも2大きくスリット番号22に対応する範囲内であることを示す。このように、スリット位置信号エラーが±0.5の範囲を超える場合には、スリット位置信号SSが示すスリット番号が、理想的なスリット番号と異なってしまう。
図6は、機械角の測定値毎のスリット位置信号エラーの一例を、補正後にスリット番号20に対応すべきエラー値に着目して示す。図4および図5は、位置検出装置10の較正において移動体100の実位置毎に取得されるスリット位置信号エラーを示すのに対し、本図は、較正後の位置検出装置10が、移動体100の検出位置毎に、スリット番号を示すスリット位置信号SSに対してどのような補正値Scalを用いるべきかを示す。具体的には、位置検出装置10の実使用時において、スリット番号補正部160が、スリット位置信号SSを、どのような補正値Scalを用いて補正すべきかを示す。
本図の横軸は、スリット番号算出部140からの補正前のスリット番号SMに、検出部120からの内挿角θMを加えた補正前の機械角(すなわち検出位置)に対応する値である。ここで、検出部120からの内挿角θMは、1/NM倍することにより0~9度の範囲に正規化されている。
なお、スリット番号補正部160は、スリット位置信号算出部130からのスリット位置信号SSに、補正値Scalを加えて四捨五入することにより、補正後のスリット番号S'M(すなわちスリット位置信号の理想値Sideal)を算出する。このため、スリット位置信号エラーはスリット位置信号SS-理想値Sidealであるのに対し、補正値Scalは、理想値Sideal-スリット位置信号SSである。したがって、補正値Scalは、スリット位置信号エラーの正負を逆にした値となる。
図5のエラー500aは、スリット位置信号SSに応じたスリット番号が18に対応するものである。したがって、機械角の測定値を横軸とするように変換すると、図5のエラー500aは、スリット番号18にシフトされ、元々スリット番号18に存在したエラー610と重なるエラー600aとなる。同様に、図5のエラー500bは、スリット番号19にシフトされ、元々スリット番号19に存在したスリット位置信号エラーと重なるエラー600bとなり、図5のエラー500dは、スリット番号21にシフトされ、元々スリット番号21に存在したスリット位置信号エラーと重なるエラー600dとなり、図5のエラー500eは、図5のエラー500bは、スリット番号22にシフトされ、元々スリット番号22に存在したスリット位置信号エラーと重なるエラー600eとなる。
このように、移動体100の実位置(理想機械角)毎にスリット位置信号SSを測定して実位置毎のスリット位置信号エラーを算出すると、スリット位置信号エラーは、実位置毎に1点に定まる(図5)。しかし、スリット位置信号エラーが±0.5の範囲を超え、スリット位置信号SSが示すスリット番号が移動体100の実位置に対応するスリット番号と異なる場合には、移動体100の検出位置(スリット番号SM+内挿角θM/NM)毎のスリット位置信号エラーに変換すると、同じ検出位置に対して2以上の実位置が対応する結果、2以上のスリット位置信号エラーが対応しうる。
したがって、スリット位置信号エラーが大きく、測定されたスリット番号が理想のスリット番号と異なる位置検出装置10については、同じ検出位置に対して2以上の補正値(スリット位置信号エラーの正負を逆にした値)が出現する。このような場合において、位置検出装置10の較正装置が、エンコーダ110内の補正テーブル150がどのような補正値を出力するように較正するべきかが問題となる。
図7は、本実施形態に係る較正装置700の構成を示す。較正装置700は、PC(パーソナルコンピュータ)、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。このようなコンピュータシステムもまた広義のコンピュータである。また、較正装置700は、コンピュータ内で1または複数実行可能な仮想コンピュータ環境によって実装されてもよい。これに代えて、較正装置700は、エンコーダ110の較正用に設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。較正装置700がコンピュータにより実現される場合、較正装置700は、較正プログラムを実行することにより、本図に示す各構成要素として機能してよい。
較正装置700は、例えば位置検出装置10を製造した後出荷する前に、または位置検出装置10の検査または診断時にエンコーダ110に接続されて、エンコーダ110を較正する。この較正において、較正装置700は、移動体100の同一の検出位置に対して2以上の補正値が出現する場合に、適切な補正値をエンコーダ110に設定する。較正装置700は、取得部710と、算出部714と、判定部716と、生成部720と、検査部730と、出力部740とを備える。
取得部710は、移動体100の実位置毎に、移動体100の検出位置を取得する。ここで、取得部710は、移動体100の実位置として、スリット位置信号SSの理想値であって実位置のスリット番号を示すSidealと、実位置の内挿角を示すθMidealとを、較正作業のために移動体100に取り付けられた、較正の基準として用いる基準エンコーダから取得する。また、取得部710は、移動体100の検出位置として、スリット位置信号算出部130が出力する、検出位置のスリット位置を検出したスリット位置信号SSと、検出位置を検出部120aにより検出した内挿角θMとをエンコーダ110から取得する。
なお、取得部710は、エンコーダ110からスリット位置信号SSを取得するのに代えて、移動体100の検出位置として、エンコーダ110内の検出部120a~bが出力する内挿角θMおよびθNを取得してもよい。また、取得部710は、移動体100の検出位置として、検出部120a~bのそれぞれにより検出されたsin電圧を示すsinn値およびcos電圧を示すcos値を取得してもよい。この場合、取得部710は、検出部120a~bおよびスリット位置信号算出部130と同様にして、スリット位置信号SSを算出してもよい。
算出部714は、取得部710に接続される。算出部714は、移動体100の実位置毎の検出位置について、スリット位置信号SSを用いて実位置に応じた理想のスリット番号Sidealとスリット位置信号SSとの誤差を算出する。判定部716は、算出部714に接続される。判定部716は、第1スリットを単位とするスリット番号が少なくとも一部異なる2以上の実位置が同一の検出位置に対応するか否かを判定する。生成部720は、判定部716に接続される。生成部720は、算出された誤差を用いて、移動体100の検出位置毎にスリット位置信号SSの補正値Scalを生成する。ここで、生成部720は、第1スリットを単位とするスリット番号が少なくとも一部異なる2以上の実位置が同一の検出位置に対応することに応じて、その検出位置においてスリット位置信号SSに対して2以上の実位置のそれぞれにおける誤差の間の大きさの補正を行なう補正値Scalを生成する。
検査部730は、生成部720に接続される。検査部730は、生成部720が生成した補正値Scalにより補正したスリット位置信号を用いて算出したスリット番号に誤りが生じるか否かを検査する。検査部730は、生成部720が生成した補正値Scalにより補正したスリット位置信号と、実位置に応じたスリット番号Sidealとの差が予め定められた基準範囲内である場合に、スリット番号に誤りが生じないと判断してよい。この基準範囲は、例えばスリット番号1つ分の幅の±50%の範囲であってよく、これよりも小さい範囲であってもよい。検査部730は、スリット番号に誤りが生じると判断したことに応じて、アラートを発生する。なお、較正装置700は、検査部730を有さず、補正値Scalの検査機能を有しなくてもよい。
出力部740は、生成部720が生成した、検査位置毎の補正値Scalを出力する。出力部740は、検査位置毎の補正値Scalをエンコーダ110に対して出力してよい。例えば、出力部740は、検査位置毎の補正値Scalを、エンコーダ110が有する補正テーブル150に書き込んでよい。また例えば、出力部740は、検査位置毎の補正値Scalを、例えばメモリまたはハードディスクドライブ等の記憶装置に格納してもよい。
図8は、本実施形態に係る較正装置700の動作フローを示す。ステップ800(S800)において、取得部710は、移動体100の実位置毎に、移動体100の検出位置を取得する。生成部720は、移動体100の実位置毎に検出位置が対応付けられたデータのデータ形式を変換して、移動体100の検出位置毎に1または2以上の実位置が対応付けられたデータを得る。
生成部720は、移動体100の検出位置毎に、S810からS860までの処理を繰り返す。S820において、判定部716は、第1スリットを単位とするスリット番号が少なくとも一部異なる2以上の実位置が同一の検出位置に対応するか否かを判定する。また、算出部714は、S820において、対象の検出位置について、スリット位置信号SSを用いて実位置に応じた理想のスリット番号Sidealとスリット位置信号SSとの誤差を算出してよい。生成部720は、1つの実位置のみが対象の検出位置に対応すること(S830において「N」)に応じて、S840において、対象の検出位置においてスリット位置信号SSに対して1つの実位置における誤差の補正を行なう補正値Scalを生成する。これにより、生成部720は、スリット位置信号エラーが±0.5の範囲内にあり、かつ、理想機械角において他のスリット番号にあったスリット位置信号エラーが重ならないような検出位置については、1つのスリット位置信号エラーをキャンセルする補正値Scal(例えば、スリット位置信号エラーの正負を逆にした補正値)を生成することができる。なお、生成部720は、補正値Scalの生成において、1つの実位置における誤差を完全にキャンセルするような補正値Scalを生成してもよく、1つの実位置における誤差を低減するような補正値Scalを生成してもよい。例えば、後述するようにスリット位置信号SSの検出位置毎の補正値を補正関数によって近似する場合には、各検出位置についての補正量は、その検出位置についての1つの実位置における誤差量に近似するが必ずしも一致するとは限らない。
生成部720は、スリット番号が少なくとも一部異なる2以上の実位置が対象の検出位置に対応すること(S830において「Y」)に応じて、その検出位置においてスリット位置信号SSに対して2以上の実位置のそれぞれにおける誤差の間の大きさの補正を行なう補正値Scalを生成する。これにより、生成部720は、同じ検出位置に対して2以上の誤差(例えばスリット位置信号エラー)が存在する場合には、これらの誤差を一元化して適切な補正値Scalを生成することができる。
S870において、検出位置毎の補正値Scalが生成されると、検査部730は、生成部720が生成した補正値Scalにより補正したスリット位置信号を用いて算出したスリット番号に誤りが生じるか否かを検査する。ここで、検査部730は、検出位置毎に、その検出位置におけるスリット位置信号SSをその検出位置に対応する補正値Scalで補正した場合に、その検出位置に対応する1または2以上の実位置のいずれにおいても理想のスリット番号Sidealとの差が基準範囲内であるか否かを検査する。検査部730は、いずれかの検出位置において、少なくとも1つの実位置のスリット番号と、補正後のスリット位置信号が示すスリット番号との差が基準範囲外となったことに応じて、アラートを出力する。
S880において、出力部740は、生成部720が生成した検査位置毎の補正値Scalを出力する。ここで、出力部740は、S870においてアラートが出力された場合には、補正値Scalの出力を行なわずに較正処理を中断してもよい。
図9は、較正装置700が生成する補正値Scalの一例を示す。図9においては、横軸に機械角の測定値(検出位置)をとり、縦軸に生成部720が生成する補正値Scal(スリット補正値)をとる。図9は、図4~6に示したスリット位置信号エラーに対応する補正値Scalを示すものである。なお、エンコーダ110内のスリット番号補正部160が、スリット位置信号SSに補正値Scalを加える場合には、補正値Scalは、スリット位置信号エラーの正負を反転した値となる。しかし、本図においては、図4~6と見比べやすくするために、スリット位置信号エラーの正負を反転していない状態で補正値Scalとして示す。
機械角の測定値(検出位置)が155.25度から157.50度となる区間に着目すると、この区間において、各検出位置に、スリット番号が異なる2つの実位置が対応する。したがって、この区間の各検出位置において、2つの実位置のそれぞれに対応する誤差(スリット位置信号エラー)が存在する。この場合、生成部720は、2つの実位置のそれぞれに対応する誤差の間の大きさの誤差分を補正する補正値Scalを生成する。ここで、「2つの誤差の間の大きさ」とは、2つの誤差の両端を除く間の大きさを示し、2つの誤差のうちいずれか一方のみを採用せず、これら2つの誤差の間をとった大きさであることを意味する。
例えば、生成部720は、2以上の実位置が同一の検出位置に対応することに応じて、スリット位置信号SSに対して、2以上の実位置のそれぞれにおける誤差を平均した大きさの補正を行なう補正値Scalを生成する。また、生成部720は、2以上の実位置のそれぞれにおける誤差の間の大きさの補正を行なう補正値Scalであって、補正されたスリット位置信号と2以上の実位置のそれぞれのスリット番号との誤差が基準範囲内となるように補正値Scalを調整してもよい。
なお、機械角の測定値(検出位置)が153度から162度以外の範囲においても、1つの検出位置にスリット番号が異なる2つの実位置が対応する箇所が存在する。図9においては、説明の便宜上153度から162度以外の範囲については図示を省略している。
図10は、補正後のスリット位置信号エラーの一例を示す。図10においては、横軸に機械角の測定値(検出位置)をとり、縦軸にはスリット位置信号SSと、各検出位置に対応する1または2以上の実位置のそれぞれのスリット番号Sidealとの間のスリット位置信号エラー(誤差)を示す。ここで、破線は、補正前のスリット位置信号エラーを示し、実線は、2以上の実位置のそれぞれにおける誤差を平均した大きさの補正を行なった後のスリット位置信号エラーを示す。
本図において実線で示したように、較正装置700は、各検出位置において2以上の実位置のそれぞれにおける誤差の間の大きさの補正を行なう補正値Scalを生成することにより、図4~6に示したスリット位置信号エラーを、各実位置におけるスリット番号に対する誤差が±0.5の範囲内となるように補正することが可能な補正値Scalを出力することができる。
なお、以上に示した生成部720は、検出位置毎に補正値Scalを生成する。これに代えて、生成部720は、取得部710が取得した検出位置の区間毎に補正値を生成してもよい。例えば、生成部720は、第1スリットの1周期を分割した区間毎(例えば内挿角の15°毎等)に、補正値Scalを生成してもよい。この場合、生成部720は、当該区間内において算出した各検出位置毎の補正値を平均等することにより、当該区間における補正値Scalを算出してもよい。
また、生成部720は、取得部710が取得した検出位置の区間毎に、補正値Scalを表す補正関数のパラメータを算出してもよい。例えば、生成部720は、第1スリットのスリット周期毎に、そのスリット周期における内挿角0°~360°の範囲の補正値Scalを、フーリエ級数展開等の予め定められた補正関数によって近似してもよい。フーリエ級数展開を用いる場合、生成部720は、内挿角θMにおける補正値Scalを、補正値=ΣkAk×sin(kθM+δk)で近似する補正関数の補正係数(パラメータ)Akおよびδkを算出してよい。
生成部720は、例えば予め定められた角度ずつの内挿角に対応する補正値Scalを代表点として算出し、代表点の集合に対してフーリエ級数展開をすることにより、上記の補正係数を算出してよい。出力部740は、生成部720によって算出された補正係数を補正テーブル150に書き込む。スリット番号補正部160は、実使用時において、スリット番号算出部140からスリット番号SMを受け取ると、スリット番号SMに対応付けて補正テーブル150に格納された補正係数を読み出して、その補正係数を用いた補正関数により補正値Scalを算出してよい。
図11は、補正値に隙間が生じる例を示す。図5~6に示したように、実位置毎のスリット位置信号エラーを検出位置毎のスリット位置信号エラーに変換すると、例えば実位置がスリット番号20であるエラー500aが検出位置がスリット番号18であるエラー600aへと変換されることとなる。この結果、検出位置によっては2以上の実位置に対応し、2以上のスリット位置信号エラーが存在しうる。
逆に、検出位置によってはスリット位置信号エラーが他のスリット番号へと割り振られる結果、対応する実位置が存在しなくなる可能性がある。図11の例においては、移動体100の1周あたりに第1スリットが8周期存在する場合(NM=8)において、0.5以上のスリット位置信号エラーが機械角(検出位置)で+45°シフトし、-0.5未満のスリット位置信号エラーが機械角で-45°シフトした結果、破線で囲った箇所において検出位置に対応する実位置が存在しなくなってしまう。
ここで、対応する実位置が存在しない検出位置は、較正処理において移動体100の実位置を可動範囲全体の中で変化させても観測されなかった位置であるから、較正処理時とは異なる誤差等が生じない限り実使用においても発生しない。しかし、位置検出装置10は、一時的な誤差または変動等によりそのような検出位置を検出することもありうる。
図12は、本実施形態に係る、補正値の隙間を補間する方法の一例を示す。補正値の隙間を補間する場合には、判定部716は、実位置および検出位置の対応関係を、第1スリットの境界にマージンを持たせて判断してよい。ここで、生成部720は、スリット位置信号に対して第1スリットの境界に予め定められたマージンの加算または減算の少なくとも1つを行なうことにより得られる検出位置と実位置との対応を含む、ある検出位置に対応する少なくとも1つの実位置を用いて、その検出位置における補正値を生成してよい。本実施形態において、生成部720は、スリット位置信号SSからスリット番号SMを特定したもの(すなわちSM=round(SS)としたもの)に加えて、スリット位置信号SSに予め定められたマージンεを加算または減算してスリット番号を特定したもの(すなわちSM=round(SS±ε)としたもの)を追加し、これらを含めて補正値を生成する。ここで、マージンεは、スリット番号特定に用いるマージン(0.5)よりも小さい値である。
スリット位置信号SSからマージンεを減じると、スリット位置信号エラーが正である場合には、スリット位置信号エラーがスリット番号の境界(+0.5等)よりも+ε大きくなるまではスリット位置信号エラーが他のスリット番号へと移動しない。これに対し、スリット位置信号エラーが負である場合には、スリット位置信号エラーがスリット番号の境界(-0.5等)よりもε大きい点を境界としてスリット位置信号エラーが他のスリット番号へと移動する。
また、スリット位置信号SSからマージンεを加えると、スリット位置信号エラーが正である場合には、スリット位置信号エラーがスリット番号の境界(+0.5等)よりもε小さい点を境界としてスリット位置信号エラーが他のスリット番号へと移動する。これに対し、スリット位置信号エラーが負である場合には、スリット位置信号エラーがスリット番号の境界(-0.5等)よりもε分さらに小さくなるまではスリット位置信号エラーが他のスリット番号へと移動しない。
このようにして、スリット位置信号SSにマージンεを加算または減算してスリット番号を特定したものを追加すると、図12に例示したように、対応する実位置が存在しない検出位置に対しても、スリット位置信号エラーを割り当てることができる。そして、生成部720は、これらのスリット位置信号エラーも含めて補正値を生成することにより、検出位置毎の補正値の隙間を埋めることができる。
また、較正装置700の実使用時に検出される検出位置が、較正時に検出された検出位置から変動し、その結果スリット位置信号が変動しうる場合においても、較正装置700は、スリット位置信号にマージンεを加減することによって、このような変動を予め模擬したスリット位置信号エラーを用いて生成した補正値を準備しておくことができる。これにより、位置検出装置10は、例えば実使用中における環境温度の変化等に伴って各検出部120内のセンサの出力が変動した場合等においても、ロバストな補正値を使用することが可能となる。
図13は、本実施形態の変形例に係る位置検出装置1300の構成を示す。位置検出装置1300は、位置検出装置10の変形例であるため、以下相違点を除き説明を省略する。位置検出装置1300は、移動体1301と、エンコーダ1310とを備える。移動体1301は、エンコーダ1310による位置検出の対象となる被測定物である。移動体1301は、移動体100と同様に、移動体1301の1周あたりのスリット数が第1の数NMである第1トラックと、移動体1301の1周あたりのスリット数が第2の数NNである第2トラックとを有する。そして、本変形例における移動体1301は、移動体1301の1周を第1の数および第2の数とは異なる第3の数NSで分割した第3周期毎の第3スリットを含む第3トラックを更に有する。
エンコーダ1310は、移動体1301の3つのトラックから検出した3つの検出値に基づいて、移動体1301の検出位置を算出する。エンコーダ1310は、複数の検出部1320a~c(「検出部1320」とも示す。)と、複数のスリット位置信号算出部1330a~b(「スリット位置信号算出部1330」とも示す。)と、スリット番号算出部1340と、補正テーブル1350と、スリット番号補正部1360と、位置算出部1370とを備える。
検出部1320a~cのそれぞれは、第1~第3トラックのそれぞれに対応して設けられ、対応するトラックから検出した検出値を出力する。本実施形態において、検出部1320aは、第1検出部として機能し、第1トラックから第1検出値を検出して出力する。検出部1320bは、第2検出部として機能し、第2トラックから第2検出値を検出して出力する。検出部1320cは、第3検出部として機能し、第3トラックから第3検出値を検出して出力する。ここで、検出部1320a~cは、検出値として、対応するトラックにおける隣接するスリット間を1周期(=360度)とする(電気)内挿角θM、θN、およびθSをそれぞれ出力する。各検出部1320は、その他の点において検出部120と同様である。
スリット位置信号算出部1330a~bのそれぞれは、複数の検出部1320に接続される。スリット位置信号算出部1330aは、複数の検出部1320からの複数の検出値を用いて、第1のスリット位置信号SMSBを出力する。本実施形態において、第1のスリット位置信号SMSBは、第1トラックのスリット番号のうち、上位側のビットに関する。スリット位置信号算出部1330bは、複数の検出部1320からの複数の検出値を用いて、第2のスリット位置信号SLSBを出力する。本実施形態において、第2のスリット位置信号SLSBは、第1トラックのスリット番号のうち、下位側のビットに関する。
最終的に第1トラックのスリット番号SMを算出可能な任意の第1の数NM、第2の数NN、および第3の数NSの組合せについて、第1のスリット位置信号SMSBおよび第2のスリット位置信号SLSBは、以下の式(4)および式(5)に一般化することができる。
ここで、pM、pN、pS、qM、qN、およびqSは、最終的に第1トラックのスリット番号SMが算出できるように定められた整数値である。例えば、第1の数NM=16、第2の数NN=15、および第3の数NS=12の場合、(pM,pN,pS)=(3,-4,1)、(qM,qN,qS)=(3,0,-4)としてよい。このようにして、各スリット位置信号算出部1330は、複数の検出部1320からの複数の検出値を、予め定められた整数により重み付けして総和をとることにより、各スリット位置信号を算出することができる。
スリット番号算出部1340は、複数のスリット位置信号算出部1330に接続される。スリット番号算出部1340は、複数のスリット位置信号算出部1330が出力するスリット位置信号SMSBおよびSLSBを用いて、予め定められた大きさの第1スリットを単位とするスリット番号SM(すなわち移動体1301が位置するスリットのスリット番号)を算出する。本実施形態において、スリット番号算出部1340は、スリット番号SMを、以下の式(6)により算出する。
ここで、kは、MSBの重みを示す正の整数値である。スリット番号算出部1340は、第1のスリット位置信号SMSBを上位桁のスリット番号単位に四捨五入してMSBの重みkを乗じた値に、第2のスリット位置信号SLSBをスリット番号単位に四捨五入した値を加えることにより、第1スリット単位のスリット番号を算出することができる。スリット番号算出部1340は、このスリット番号を0~NM-1までの値に正規化することで、スリット番号SMを算出することができる。
なお、kは、スリット番号SMを算出できるように、pおよびqの値に応じて一意に決定することができる。例えば、(pM,pN,pS)=(3,-4,1)において、(qM,qN,qS)=(0,4,-5)とした場合には、k=5としてよい。k、p、およびqの組は、(pM,pN,pS)=(3,-4,1)、(qM,qN,qS)=(3,0,-4)-(k-4)×(pM,pN,pS)の関係を満たすように定めてよい。ここで、qの絶対値(qベクトルの大きさ)が小さいほどスリットの特定誤差に対してロバストとなるから、この観点でk=4を採用してもよい。
スリット番号の補正前における移動体1301の検出位置は、スリット番号SMと、内挿角θMとの組で表される。本変形例における、検出位置の一例としての機械角θdは、エンコーダ110と同様に、前述の式(1)で表される。
補正テーブル1350は、検出部1320aおよびスリット番号算出部1340に接続される。補正テーブル1350は、スリット番号毎に、第1トラックから検出された第1検出信号(内挿角θM)に応じた、第1のスリット位置信号SMSBの補正値SMcalと、第2のスリット位置信号SLSBの補正値SLcalとのセットを格納する。補正テーブル1350は、スリット番号算出部1340から受け取ったスリット番号SMに対応付けられた補正値のセットのうち、第1検出信号に対応する補正値SMcalおよびSLcalを出力する。
スリット番号補正部1360は、複数のスリット位置信号算出部1330および補正テーブル1350に接続される。スリット番号補正部1360は、スリット位置信号算出部1330から受け取る複数のスリット位置信号SMSBおよびSLSBを、補正テーブル150から受け取る補正値SMcalおよびSLcalにより補正する。そして、スリット番号補正部160は、補正後の複数のスリット位置信号に基づいて、補正後のスリット番号S'Mを算出する。本変形例において、スリット番号補正部1360は、以下の式(7)により補正後のスリット番号S'Mを算出する。
なお、式(7)は、式(6)におけるスリット位置信号SMSBおよびSLSBを、補正後のスリット位置信号SMSB+SMcalおよびSLSB+SLcalにそれぞれ置き換えたものである。
位置算出部1370は、検出部1320aおよびスリット番号補正部1360に接続される。位置算出部1370は、図1の位置算出部170と同様にして、移動体1301の位置(補正後の位置)を算出する。本変形例において、位置算出部1370は、移動体1301の位置を示す値として、移動体1301の1回転を1周期とする機械角θを出力する。
図14は、本実施形態の変形例に係る第1のスリット位置信号SMSBの理想値の一例を示す。本図は、第1の数NM=16、第2の数NN=15、および第3の数NS=12とし、(pM,pN,pS)=(3,-4,1)の場合について式(4)に示した第1のスリット位置信号SMSBをプロットしたものである。第1のスリット位置信号SMSBは、係数pM、pN、およびpSの値により変化しうるが、本変形例においては図14に示したとおりスリット番号の上位桁に概ね対応して変化する。
図15は、本実施形態の変形例に係る第2のスリット位置信号SLSBの理想値の一例を示す。本図は、第1の数NM=16、第2の数NN=15、および第3の数NS=12とし、(qM,qN,qS)=(3,0,-4)の場合について式(5)に示した第2のスリット位置信号SLSBをプロットしたものである。第2のスリット位置信号SLSBは、係数qM、qN、およびqSの値により変化しうるが、本変形例においては図15に示したとおりスリット番号の下位桁に概ね対応して変化する。
図16は、本実施形態の変形例に係るスリット番号の理想値の一例を示す。本図は、図14に示した第1のスリット位置信号SMSB、および図15に示した第2のスリット位置信号SLSBを用いて、式(6)に示したスリット番号SMをプロットしたものである。本変形例においては、図14に示した第1のスリット位置信号SMSB、および図15に示した第2のスリット位置信号SLSBを用いることで、移動体1301の理想機械角が0°から360°まで22.5°(すなわち360°/NM)ずつ変化する毎に、スリット番号が0から15(すなわちNM-1)まで1ずつ増加するスリット番号が得られる。
次に、図13から16に示した位置検出装置1300の較正について示す。本変形例において、較正装置700は、図7および図8に示したようにスリット位置信号SSの補正値Scalを生成するのと同様にして、第1のスリット位置信号SMSBの補正値SMcalおよび第2のスリット位置信号SLSBの補正値SLcalのそれぞれを生成してよい。より具体的には、取得部710は、図8のS800と同様に、移動体1301の実位置毎に、移動体1301の検出位置を取得する。
ここで、取得部710は、移動体1301の実位置を示す値として、第1のスリット位置信号SMSBの理想値であって実位置のスリット番号の上位桁に応じた値を示すSMSBidealと、第2のスリット位置信号SLSBの理想値であって実位置のスリット番号の下位桁に応じた値を示すSLSBidealと、実位置の内挿角を示すθMidealとを、較正の基準として用いるエンコーダから取得する。また、取得部710は、移動体1301の検出位置として、第1のスリット位置信号SMSBと、第2のスリット位置信号SLSBと、内挿角θMとをエンコーダ1310から取得する。生成部720は、移動体1301の実位置毎に検出位置が対応付けられたデータのデータ形式を変換して、移動体1301の検出位置毎に1または2以上の実位置が対応付けられたデータを得る。
算出部714、判定部716、および生成部720は、図8と同様に、移動体1301の検出位置毎に、第1のスリット位置信号SMSBおよび第2のスリット位置信号SLSBのそれぞれについて、S810からS860までの処理を繰り返す。
第1のスリット位置信号SMSBに関し、判定部716は、図8のS820と同様に、第1のスリット位置信号SMSBの単位となる上位桁のスリット番号が少なくとも一部異なる2以上の実位置が同一の検出位置に対応するか否かを判定する。1つの実位置のみが対象の検出位置に対応すること(S830において「N」)に応じて、生成部720は、S840と同様に、第1のスリット位置信号SMSBに対して、その検出位置において1つの実位置における誤差(すなわちSMSB-SMSBideal)分の補正を行なう補正値SMcalを生成する。スリット番号が少なくとも一部異なる2以上の実位置が対象の検出位置に対応すること(S830において「Y」)に応じて、生成部720は、S850と同様に、その検出位置において2以上の実位置のそれぞれにおける誤差の間の大きさの補正を行なう補正値SMcalを生成する。第2のスリット位置信号SLSBに関しても、生成部720は、上記と同様にして、対象の検出位置における補正値SLcalを生成する。
検出位置毎の補正値が生成されると、検査部730は、図8のS870と同様に、第1のスリット位置信号SMSBに関し、生成部720が生成した補正値SMcalにより補正したスリット位置信号を用いて算出した上位側のスリット番号に誤りが生じるか否かを検査する。また、検査部730は、第2のスリット位置信号SLSBに関し、生成部720が生成した補正値SLcalにより補正したスリット位置信号を用いて算出した下位側のスリット番号に誤りが生じるか否かを検査する。
出力部740は、図8のS880と同様に、生成部720が生成した検査位置毎かつ第1および第2のスリット位置信号毎の補正値を出力する。
本変形例に係る較正装置700によれば、3つのトラックを有する移動体1301を用いて移動体1301の位置を検出するエンコーダ1310においてトラック番号を適切に補正する補正値を生成することができる。同様にして、較正装置700は、4以上のトラックを有する移動体の位置を検出するエンコーダについても、複数のトラックから検出した複数の検出値の重み付け和によって計算される1または複数のスリット位置信号のそれぞれを補正する補正値を出力することができる。
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、(1)操作が実行されるプロセスの段階または(2)操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および/またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび/またはアナログハードウェア回路を含んでよく、集積回路(IC)および/またはディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはJAVA(登録商標)、C++、Smalltalk(登録商標)等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のコンピュータ等のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
図17は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ2200の例を示す。コンピュータ2200にインストールされたプログラムは、コンピュータ2200に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の1または複数のセクションとして機能させることができ、または当該操作または当該1または複数のセクションを実行させることができ、および/またはコンピュータ2200に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ2200に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、CPU2212によって実行されてよい。
本実施形態によるコンピュータ2200は、CPU2212、RAM2214、グラフィックコントローラ2216、およびディスプレイデバイス2218を含み、それらはホストコントローラ2210によって相互に接続されている。コンピュータ2200はまた、通信インターフェイス2222、ハードディスクドライブ2224、DVD-ROMドライブ2226、およびICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ2220を介してホストコントローラ2210に接続されている。コンピュータはまた、ROM2230およびキーボード2242のようなレガシの入/出力ユニットを含み、それらは入/出力チップ2240を介して入/出力コントローラ2220に接続されている。
CPU2212は、ROM2230およびRAM2214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ2216は、RAM2214内に提供されるフレームバッファ等またはそれ自体の中にCPU2212によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス2218上に表示されるようにする。
通信インターフェイス2222は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ2224は、コンピュータ2200内のCPU2212によって使用されるプログラムおよびデータを格納する。DVD-ROMドライブ2226は、プログラムまたはデータをDVD-ROM2201から読み取り、ハードディスクドライブ2224にRAM2214を介してプログラムまたはデータを提供する。ICカードドライブは、プログラムおよびデータをICカードから読み取り、および/またはプログラムおよびデータをICカードに書き込む。
ROM2230はその中に、アクティブ化時にコンピュータ2200によって実行されるブートプログラム等、および/またはコンピュータ2200のハードウェアに依存するプログラムを格納する。入/出力チップ2240はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ2220に接続してよい。
プログラムが、DVD-ROM2201またはICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ2224、RAM2214、またはROM2230にインストールされ、CPU2212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ2200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ2200の使用に従い情報の操作または処理を実現することによって構成されてよい。
例えば、通信がコンピュータ2200および外部デバイス間で実行される場合、CPU2212は、RAM2214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェイス2222に対し、通信処理を命令してよい。通信インターフェイス2222は、CPU2212の制御下、RAM2214、ハードディスクドライブ2224、DVD-ROM2201、またはICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
また、CPU2212は、ハードディスクドライブ2224、DVD-ROMドライブ2226(DVD-ROM2201)、ICカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM2214に読み取られるようにし、RAM2214上のデータに対し様々なタイプの処理を実行してよい。CPU2212は次に、処理されたデータを外部記録媒体にライトバックする。
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU2212は、RAM2214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM2214に対しライトバックする。また、CPU2212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU2212は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ2200上またはコンピュータ2200近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ2200に提供する。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。