(57)【特許請求の範囲】
【請求項１】
機械系の位置である機械端位置の検出値と前記機械系を駆動するモータの位置であるモータ端位置の検出値とを位置フィードバックとして用いて、前記機械端位置が位置指令に追従するように前記モータに対するトルク指令を演算するサーボ制御部と、
前記位置指令に基づいて前記機械端位置の計算値を演算するモデル応答演算部と、
前記機械端位置の計算値がゼロ値となってからゼロ値以外の値になるまでの期間の前記モータ端位置の検出値の変位量である停止中モータ端移動量を測定する停止中モータ端移動量測定部と、
送り軸の移動方向の反転時における前記機械端位置と前記モータ端位置との間の偏差の最大変化量として予め設定されたパラメータと、前記機械端位置の計算値と、前記停止中モータ端移動量と、に基づいて誤差補正量を演算する誤差補正量演算部と、
を備え、
前記サーボ制御部は、
前記位置指令と前記機械端位置の検出値との差分に対して予め定められた位置制御演算を行う位置制御部と、
前記誤差補正量を微分する補正量微分演算部と、
前記モータ端位置の検出値を微分するモータ端位置微分演算部と、
前記位置制御部の出力に前記補正量微分演算部の出力を加算した値と前記モータ端位置微分演算部の出力との差分に対して予め定められた速度制御演算を行って前記トルク指令を演算する速度制御部と、
を備えることを特徴とするサーボ制御装置。 
【請求項２】
機械系の位置である機械端位置の検出値と前記機械系を駆動するモータの位置であるモータ端位置の検出値とを位置フィードバックとして用いて、前記機械端位置が位置指令に追従するように前記モータに対するトルク指令を演算するサーボ制御部と、
前記位置指令に基づいて前記機械端位置の計算値を演算するモデル応答演算部と、
前記機械端位置の計算値がゼロ値となってからゼロ値以外の値になるまでの期間の前記モータ端位置の検出値の変位量である停止中モータ端移動量を測定する停止中モータ端移動量測定部と、
送り軸の移動方向の反転時における前記機械端位置と前記モータ端位置との間の偏差の最大変化量として予め設定されたパラメータと、前記機械端位置の計算値と、前記停止中モータ端移動量と、に基づいて誤差補正量を演算する誤差補正量演算部と、
を備え、
前記サーボ制御部は、
前記機械端位置の検出値と前記モータ端位置の検出値との差分の低周波成分を演算する位置フィードバックフィルタと、
前記誤差補正量の高周波成分を演算する補正量フィルタと、
前記位置指令と前記補正量フィルタの出力との合計から前記位置フィードバックフィルタの出力と前記モータ端位置の検出値との合計を減じた値に対して予め定められた位置制御演算を行う位置制御部と、
前記モータ端位置の検出値を微分するモータ端位置微分演算部と、
前記位置制御部の出力と前記モータ端位置微分演算部の出力との差分に対して予め定められた速度制御演算を行って前記トルク指令を算出する速度制御部と、
を備えることを特徴とするサーボ制御装置。
【請求項３】
前記誤差補正量演算部は、
前記機械端位置の計算値に基づいて前記機械端の速度の符号を演算し、前記演算した符号が変化したときに、前記パラメータから前記停止中モータ端移動量を減算した値のステップ幅で前記演算した符号の方向に前記誤差補正量を変化させる、
ことを特徴とする請求項１または請求項２に記載のサーボ制御装置。 
【請求項４】
前記補正量フィルタはハイパスフィルタであり、
前記位置フィードバックフィルタはローパスフィルタであり、
前記補正量フィルタの時定数と前記位置フィードバックフィルタの時定数とは等しい、
ことを特徴とする請求項２に記載のサーボ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーボモータを駆動するサーボ制御装置に関する。
【背景技術】
【０００２】
ＦＡ分野においては、被加工物（ワーク）を固定するテーブルまたは工具の動きが指令に追従するように工作機械の駆動制御が行われる。指令された経路（指令軌跡）に工具位置（正確にはワークに対する工具の相対位置）が正確に追従するように機械を駆動する制御は、軌跡制御（または輪郭運動制御）とよばれる。軌跡制御は、数値制御装置または数値制御装置に付属するサーボ制御装置を用いて精密に行われる。制御対象の工作機械は、夫々サーボモータにより駆動される複数の軸を持つ。個々のサーボモータは、それぞれサーボ制御装置を用いて駆動される。【０００３】
ここで、機械系に存在する摩擦、バックラッシおよびロストモーションは、軌跡制御に対する外乱となる。送り軸の移動方向が反転する時には、これらの外乱が作用する方向が反転して、その影響が軌跡の誤差に顕著に現れる。典型的なものとしては、円弧軌跡が指令された場合に、円弧軌跡の象限切替り部分において送り軸の移動方向が反転する際に生じる追従誤差がある。この追従誤差は、半径方向の誤差量を拡大してプロットすると軌跡が外側に突起状に飛び出た形状になることから、象限突起と呼ばれる。加工中に象限突起のような軌跡の追従誤差が発生すると、加工結果に筋や傷が発生することになり、好ましくない。【０００４】
そのため、仮想的な送り機構を内蔵して仮想的な送り機構と実際の送り機構の間のトルク指令信号の差から補正指令を演算して実際のトルク指令に加えたり、送り駆動機構の運動方向が反転する前後に発生する摩擦力又は摩擦トルクを推定して、モータトルク誤差を抽出し、その誤差信号によってトルク補償したり、といったことが行われている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−４９５９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術によれば、実際のトルクとモデルトルクに差が生じてから補正指令の効果が現れるので、補正が遅れて効いてしまうという問題があった。また、特許文献１の技術によれば、位置指令の方向反転に基づいて摩擦補償信号を生成しているが、フルクローズド制御の場合はモータ端と機械端の間の位置のずれが影響するので、トルクの補償だけでは効果が十分に得られないという問題があった。さらに、フルクローズド制御の場合はモータ端と機械端の間の位置のずれが移動方向の反転時の追従誤差の大きさに影響するので、指令経路によっては補償の効果が十分に得られないという問題があった。【０００７】
本発明は、上記に鑑みてなされたものであって、送り軸の移動方向が反転する時においても機械端位置と指令位置との間の追従誤差を抑制したフルクローズド制御を可能とするサーボ制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、機械系の位置である機械端位置の検出値と前記機械系を駆動するモータの位置であるモータ端位置の検出値とを位置フィードバックとして用いて、前記機械端位置が位置指令に追従するように前記モータに対するトルク指令を演算するサーボ制御部と、前記位置指令に基づいて前記機械端位置の計算値を演算するモデル応答演算部と、前記機械端位置の計算値がゼロ値となってからゼロ値以外の値になるまでの期間の前記モータ端位置の検出値の変位量である停止中モータ端移動量を測定する停止中モータ端移動量測定部と、送り軸の移動方向の反転時における前記機械端位置と前記モータ端位置との間の偏差の最大変化量として予め設定されたパラメータと、前記機械端位置の計算値と、前記停止中モータ端移動量と、に基づいて誤差補正量を演算する誤差補正量演算部と、を備え、前記サーボ制御部は、前記位置指令と前記機械端位置の検出値との差分に対して予め定められた位置制御演算を行う位置制御部と、前記誤差補正量を微分する補正量微分演算部と、前記モータ端位置の検出値を微分するモータ端位置微分演算部と、前記位置制御部の出力に前記補正量微分演算部の出力を加算した値と前記モータ端位置微分演算部の出力との差分に対して予め定められた速度制御演算を行って前記トルク指令を演算する速度制御部と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、機械端位置とモータ端位置との間の偏差の送り軸の移動方向の反転時における最大変化量に基づいて演算された誤差補正量を用いてトルク指令が演算されるので、モータ端位置と機械端位置の偏差が移動方向の反転時に急峻に変化する場合に、移動方向反転後に生じる機械端位置の指令位置に対する追従誤差を抑制することができる。また、誤差補正量は、停止中モータ端移動量を考慮して算出されるので、移動方向反転前に一旦停止するような指令が与えられた場合であっても移動方向反転後に生じる機械端位置の指令位置に対する追従誤差を抑制することができる。また、誤差補正量は、停止中のモータ端移動量を考慮して算出されるので、モータ端位置と機械端位置の偏差が、移動方向の反転時にゆるやかに変化するような場合に、誤差補正量が早く作用しすぎて移動方向反転後に位置の補正が効きすぎ、軌跡誤差が生じてしまうことをふせぐことができる。即ち、本発明によれば、送り軸の移動方向が反転する時においても機械端位置と指令位置との間の追従誤差を抑制したフルクローズド制御を可能とするサーボ制御装置を得ることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態１のサーボ制御装置の構成を示す図である。
【図２】図２は、モータおよび機械系の構成を示す図である。
【図３】図３は、モデル応答演算部の内部構成を示すブロック図である。
【図４】図４は、誤差補正量演算部の内部構成を示すブロック図である。
【図５】図５は、サーボ制御部の内部構成を示すブロック図である。
【図６】図６は、移動方向の反転時に生じる追従誤差の例を示す図である。
【図７】図７は、移動方向の反転時に生じる追従誤差の例を示す図である。
【図８】図８は、移動方向反転時における、誤差補正量とそれに関連する信号の時間変化を示す図である。
【図９】図９は、本実施の形態２のサーボ制御装置に具備されるサーボ制御部の内部構成を示すブロック図である。
【図１０】図１０は、モータ端位置・機械端位置と位置フィードバックとの関係を説明する図である。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかるサーボ制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態１．
図１は、本発明の実施の形態１のサーボ制御装置の構成を示す図である。図示するように、サーボ制御装置１００は、モータ５および機械系６に接続されている。
【００１３】
図２は、モータ５および機械系６の構成を示す図である。モータ５は、サーボモータ５１およびサーボモータ５１のモータ端位置（モータ５の位置）を検出するモータ端位置検出器５２を備えている。モータ端位置検出器５２としては、例えばロータリーエンコーダが用いられる。サーボモータ５１には、ボールねじ６１、ナット６２およびナット６２と一体となって可動するテーブル６３を備える機械系６が接続されている。テーブル６３には、テーブル６３の位置（機械系６の位置）を機械端位置として検出する機械端位置検出器６４が取り付けられている。機械端位置検出器６４としては、例えばリニアスケールが用いられる。なお、モータ端位置検出器５２において直接検出される位置はモータ５の回転角度であるが、この角度にモータ１回転あたりのテーブル移動距離であるボールねじリードを乗じてモータ１周の角度２π（rad）で除することで、テーブル６３の移動方向の長さに換算することができる。以下の説明においては、モータ端位置として、テーブル移動方向の長さに換算した値を用いることとする。
【００１４】
サーボ制御装置１００は、位置指令が入力されるとともに、機械端位置検出器６４によって検出された機械端位置とモータ端位置検出器５２によって検出されたモータ端位置とが入力される。サーボ制御装置１００は、機械端位置の検出値とモータ端位置の検出値とを位置フィードバックとして用いながら、機械端位置の検出値が位置指令に追従するようにモータ５のトルク指令値を生成する。そして、サーボ制御装置１００は、生成したトルク指令値をモータ５に出力する。
【００１５】
サーボ制御装置１００は、トルク指令値を生成するための構成要素として、モデル応答演算部１、誤差補正量演算部２、サーボ制御部３および停止中モータ端移動量測定部４を備えている。
【００１６】
モデル応答演算部１は、位置指令が入力され、位置指令に対する機械系６の応答を模擬した結果（モデル応答）を出力する。ここで出力されるモデル応答は、位置指令に基づいて生成された、機械端位置のシミュレーション値（計算値）である。
【００１７】
図３は、モデル応答演算部１の内部構成を示すブロック図である。モデル応答演算部１は、位置制御模擬部４１および積分器４２を備えている。位置制御模擬部４１は、位置指令により指令された位置と積分器４２が出力するモデル応答との差分に対して後述する位置制御部３１と同一の演算処理を行って、機械端位置の速度指令を出力する。積分器４２は、位置制御模擬部４１の出力を積分することによって、モデル応答を算出し、出力する。
【００１８】
停止中モータ端移動量測定部４は、モータ５からモータ端位置の検出値が入力され、モデル応答演算部１からモデル応答が入力される。停止中モータ端移動量測定部４は、モデル応答が停止している間のモータ端位置の変位量（停止中モータ端移動量）を測定し、出力する。
【００１９】
より詳しくは、停止中モータ端移動量測定部４は、次のようにして停止中モータ端移動量を算出する。即ち、停止中モータ端移動量測定部４は、モデル速度（モデル応答を時間微分したもの）が０になったときにその時点のモータ端位置を一時記憶する。そして、停止中モータ端移動量測定部４は、以後、モデル速度が０以外となったタイミングで、そのときのモータ端位置と一時記憶しておいたモータ端位置の差を出力する。モデル速度が０から０以外になるとき以外のタイミングでは、停止中モータ端移動量測定部４は１制御周期前の出力と同じ値を出力する。
【００２０】
なお、例えば、モデル速度が０であるかどうかの判定には、停止中モータ端移動量測定部４は、予め設定された速度の閾値と時間の閾値とを用いる。まず、速度ゼロの状態を、モデル速度の絶対値が速度の閾値以下である状態と定義する。その上で、モデル速度の絶対値が速度の閾値以下となっている状態が時間の閾値で設定された時間以上連続して続いた場合に、停止中モータ端移動量測定部４は、モデル速度が０であると判定する。速度の閾値および時間の閾値には、それぞれ速度の最小分解能およびサンプリング周期程度の正の定数が用いられる。このように閾値が設定されることで、演算誤差などに起因する移動状態の誤判定を防ぐことができる。
【００２１】
誤差補正量演算部２は、停止中モータ端移動量測定部４から停止中モータ端移動量が入力され、モデル応答演算部１からモデル応答が入力される。誤差補正量演算部２は、予め設定されたパラメータと、モデル応答と、停止中モータ端移動量と、に基づいて誤差補正量を算出し、出力する。
【００２２】
図４は、誤差補正量演算部２の内部構成を示すブロック図である。誤差補正量演算部２は、符号演算部２１および誤差補正量出力部２２を備えている。符号演算部２１は、モデル応答演算部１の出力の変化率の符号、即ちモデル速度の符号を演算する。具体的には、符号演算部２１は、モデル速度が正の場合は１を、負の場合は−１の値を、出力する。モデル速度が０の場合は、符号演算部２１は、モデル速度が０になる直前の符号を出力する。したがって、符号演算部２１の出力は、１または−１を取りうる。なお、モデル速度が０であるか否かの判定は、停止中モータ端移動量測定部４と同様の手法によって行われるようにしてよい。
【００２３】
誤差補正量出力部２２は、符号演算部２１の出力が変化した場合、すなわち符号演算部２１の出力が１から−1あるいは−１から１に変化したタイミングで、誤差補正量を変化させる。ここで、誤差補正量出力部２２による誤差補正量の変化量は、パラメータとして予め保持されている値から、停止中モータ端移動量を減じた値とする。また、誤差補正量出力部２２が誤差補正量を変化させる方向は、符号演算部２１の出力が変化した方向と同一とする。すなわち、誤差補正量出力部２２は、符号演算部２１の出力が１から−１に変化した場合は誤差補正量を減少させ、符号演算部２１の出力が−１から１に変化した場合は誤差補正量を増加させる。誤差補正量出力部２２に予め保持されるパラメータは、送り軸の移動方向の反転時における、機械端位置とモータ端位置との偏差の最大変化量である。パラメータの詳細は後述する。誤差補正量は、送り軸の移動方向（即ちここではナット６２およびテーブル６３の移動方向）が反転する際にステップ状に変化することとなる。
【００２４】
図５は、サーボ制御部３の内部構成を示すブロック図である。サーボ制御部３は、位置制御部３１、速度制御部３２、微分演算部３３、および補正量微分演算部３４を備えている。
【００２５】
位置制御部３１は、位置指令と機械端位置との差（位置偏差）が入力される。位置制御部３１は、位置偏差を用いて比例制御などの所定の位置制御処理を実行することで、速度指令を算出し、出力する。一方、誤差補正量は補正量微分演算部３４において微分される。また、モータ端位置は微分演算部３３において微分される。なお、これらの微分処理は離散時間系においては差分処理におきかえられる。すなわち、現在のモータ端位置と１サンプル前のモータ端位置の差を制御処理周期で除した値が、近似的な微分値として使用される。
【００２６】
ここで、誤差補正量は、前述したように、ステップ状の信号となるため、微分するとインパルス状の信号となり、好ましくない場合がある。そのような場合には、補正量微分演算部３４において微分のかわりに擬似微分が実行される。具体的には、補正量微分演算部３４は、誤差補正量の差分処理を行い、差分処理後の誤差補正量に所定の時定数のローパスフィルタを作用させることによって、差分処理後の誤差補正量の信号に現れるインパルス状のピークをなまらせる。擬似微分用のローパスフィルタの時定数をTdとすると、擬似微分用のローパスフィルタの伝達関数Gd(s)は下記の式１で表される。
Gd(s)=1/(1+Td*s)    （式１）
【００２７】
なお、この擬似微分用ローパスフィルタの時定数Tdは、擬似微分後の信号のピークの高さが一定のレベル以下となるように予め調節される。
【００２８】
速度制御部３２は、位置制御部３１の出力である速度指令と補正量微分演算部３４の出力との合計から微分演算部３３の出力が減算された値が入力される。速度制御部３２では、入力された値に対して比例・積分制御などの所定の速度制御処理を行うことによってトルク指令を算出し、出力する。
【００２９】
誤差補正量出力部２２に設定されるパラメータと、サーボ制御装置１００がこのように構成されることによって送り軸の移動方向が反転する時においても機械端位置と位置指令により指令された位置（指令位置）との間の追従誤差を抑制できることの原理とを説明する。
【００３０】
機械系６にバックラッシ（ボールねじのガタなど）が存在する場合、モータ端位置と機械端位置の間にバックラッシ量と同じ大きさの偏差が存在する。したがって、同一方向に移動するような定常状態においては、モータ端位置は位置指令からバックラッシ量に相当する一定の量だけずれて追従することになる。このモータ端位置と機械端位置との偏差すなわち機械端位置に対するモータ端位置の相対位置を機械偏差と呼ぶこととする。機械偏差は、一定の速度で運動する場合には一定の値となり、その符号は移動方向によって変化する。すなわち、正方向に一定速で移動する場合には、モータ端は機械端に対して正方向にバックラッシ量に相当する一定量だけずれた位置となるので機械偏差は正となる。逆に、負方向に移動する場合には、モータ端は機械端に対して負方向にずれた位置となるので機械偏差は負となる。
【００３１】
機械端位置をフィードバック信号として用いるフルクローズド制御系では、機械端位置は定常的には位置指令に追従する。そして、モータ端位置は、機械偏差の分だけ指令位置からずれた位置となる。
【００３２】
機械偏差の符号は、移動方向に依存して変わるため、移動方向が反転すると、機械偏差がステップ状に変化する。したがって、フルクローズド制御系の場合において機械端位置の移動方向反転を追従遅れなしに実現するためには、モータ端位置をステップ状に移動させる必要がある。しかしながら、実際にはモータ端位置はステップ状に移動することができず、フィードバック制御系の応答時定数に対応した速さで遅れて移動する。その結果、機械端位置の移動方向反転が遅れ、指令位置に対する過渡的な位置の誤差である追従誤差が生じる。
【００３３】
この追従誤差は、移動方向反転前後の機械偏差の大きさによって変動する。すなわち、移動方向反転前後の機械偏差の変化が大きいほど、機械端位置の指令位置に対する追従誤差は大きくなる。また、機械端位置の追従遅れが生じる原因は、モータ端位置がステップ状に変化できないために生じる。
【００３４】
そこで、移動方向の反転時における機械端位置の追従誤差を抑制するために、本実施の形態１においては、正方向に移動させたときの機械偏差と負方向に移動させたときの機械偏差の差（送り軸の移動方向の反転時における、偏差の変化量の最大値）が、前述の誤差補正量出力部２２のパラメータとして予め記憶され、サーボ制御部３においては、そのパラメータの値をステップの高さとするステップ状の補正量がモータ端位置に加算される。即ち、ここでは、パラメータは、送り軸を正方向に移動させたときのバックラッシ量（絶対値）と、送り軸を負方向に移動させたときのバックラッシ量（絶対値）と、を合計して得られる値である。なお、フルクローズド制御系においては、モータ端位置はサーボ制御部３において１回微分されて速度フィードバックとして速度指令に加算されるため、補正量についても１回微分されて速度指令に加算されるように構成されている。
【００３５】
一方で、フルクローズド制御系は、停止中は機械端位置が指令位置と同じ位置になるように制御するのみであって、機械偏差を陽に制御することはできない。そのため、移動方向が反転する際に一旦停止するような場合には、停止中に機械偏差が変化してしまうことが考えられる。停止中においては機械端位置は変化しないので、停止中の機械偏差の変化は、停止中のモータ端位置の変化を観測することによって得ることができる。
【００３６】
そこで、本実施の形態１においては、停止中モータ端移動量測定部４において停止中モータ端移動量を求め、誤差補正量出力部２２において誤差補正量の変化量（ステップの高さ）の値を上記パラメータで与えられた値から停止中モータ端移動量を減じた値に設定している。誤差補正量出力部２２が、停止中のモータ端の移動量をもとのパラメータから減じたものを誤差補正量の変化量とすることで、停止中に機械偏差の変動があっても、移動方向の反転時における機械偏差に応じた適切な大きさの誤差補正量を出力することが可能となる。
【００３７】
図６および図７は、移動方向の反転時に生じる追従誤差の例を示す図である。図６および図７に夫々示す例では、X軸とY軸がそれぞれ独立したサーボ制御装置１００で制御される場合において、XY平面内の円弧形状を指令した場合を想定している。そして、図６および図７において、細い実線はX軸とY軸の指令位置によって定まる指令軌跡を示している。また、破線はX軸とY軸のモータ端位置によって定まる軌跡であるモータ端軌跡、太い実線は機械端位置によって定まる機械端軌跡を示している。図６の例においては、Y軸の移動方向反転の際にY軸の指令位置が停止しない。図７の例においては、Y軸の移動方向反転の際にY軸の指令位置が一旦停止する。
【００３８】
図６に示す例の場合、途中でY軸の移動方向が反転する箇所がある。Y軸の機械偏差は、移動方向反転までは正の一定値、移動方向反転後は負の一定値となっている。これは、Y軸の機械系にバックラッシが存在し、機械端位置を指令位置に追従させるためにはモータ端位置をバックラッシ量の分だけ先行させる必要があるために生じる。モータ端位置と機械端位置との偏差が移動方向の反転時に大きく変化するため、その変化に対する追従誤差が機械端軌跡の指令軌跡に対する誤差となって現れている。
【００３９】
実施の形態１のサーボ制御装置１００は、正方向移動時の機械偏差と負方向移動時の機械偏差の差をパラメータとして記憶しておき、Y軸移動方向反転箇所でその差に応じた大きさの補正パルスからなる誤差補正量を位置指令に加算する。これにより、移動方向の反転時における機械端軌跡の指令軌跡に対する追従誤差が抑制されている。なお、図６に示す例の場合、サーボ制御装置１００は、Y軸の移動方向の反転時に負方向の誤差補正量をY軸の位置指令に加算することになる。
【００４０】
一方、図７に示す例の場合、途中でY軸の移動が停止する箇所があり、さらにそのあとにY軸の移動方向が反転する箇所が現れる。Y軸の機械偏差は、停止箇所までは正の一定値となるが、停止箇所から移動方向反転箇所までは、機械偏差が少しずつ０に近づく挙動を示す。次に、移動方向反転箇所より後は、負の一定値となる。停止中に機械偏差が０に近づくのは、モータ端と機械端の間にばね要素が存在し、移動中にそのばね要素により生じていたねじれが停止中に少しずつ戻されるために生じる。
【００４１】
Y軸移動方向の反転時には、機械端軌跡に追従誤差が生じるが、機械偏差の変化量が図６の場合に比べて小さいため、機械端軌跡の追従誤差も図６の場合に比べて小さい。図７に示すようなケースで図６に示す例の場合と同じような補正が行われると、補正量の大きさが大きくなりすぎてしまう。
【００４２】
実施の形態１のサーボ制御装置１００は、停止中のモータ端移動量を測定して移動方向の反転時に出力する誤差補正量の大きさを停止中のモータ端移動量の分だけ減じているので、停止中に機械偏差が変化したとしても、移動方向の反転時における機械端軌跡の指令軌跡に対する追従誤差を抑制することができる。図７に示す例の場合、サーボ制御装置１００は、Y軸の移動方向の反転時に負方向の誤差補正量をY軸の位置指令に加算することになり、またこのとき加算する補正量の大きさは、Y軸の停止から移動方向反転までのモータ端位置の変化量の分だけ図６のケースで用いた補正量の大きさよりも小さくなる。
【００４３】
図７に示す例における、Y軸のモデル応答・モータ端位置・停止中のモータ端移動量・誤差補正量の時間変化の例を図８に示す。モデル応答の移動が停止したタイミングで、停止中モータ端移動量の積算が開始される。次に、移動方向が正から負に反転するタイミングで、誤差補正量が負方向に変化せしめられるが、そのときの誤差補正量の変化量は、パラメータｄから反転時点での停止中モータ端移動量mを減じて得られる値である。移動方向が反転した後は、停止中モータ端移動量はゼロとされ、誤差補正量は変化後の値を保つ。
【００４４】
このように、実施の形態１によれば、サーボ制御装置１００は、機械端位置の計算値であるモデル応答を演算するモデル応答演算部１と、機械端位置の計算値がゼロ値となってからゼロ値以外の値になるまでの期間のモータ端位置の検出値の変位量である停止中モータ端移動量を測定する停止中モータ端移動量測定部４と、機械端位置とモータ端位置との間の偏差の送り軸の移動方向の反転時における最大変化量を示す予め設定されたパラメータと、機械端位置の計算値と、停止中モータ端移動量と、に基づいて誤差補正量を演算する誤差補正量演算部２と、を備え、サーボ制御部３は、機械端位置の検出値とモータ端位置の検出値とを位置フィードバックとし、誤差補正量を用いてトルク指令を演算する。実施の形態１によれば、機械端位置とモータ端位置との間の偏差の送り軸の移動方向の反転時における最大変化量に基づいて演算された誤差補正量を用いてトルク指令が演算されるので、モータ端位置と機械端位置の偏差が移動方向の反転時に急峻に変化する場合に、移動方向反転後に生じる機械端位置の指令位置に対する追従誤差を抑制することができる。また、誤差補正量は、停止中のモータ端移動量を考慮して算出されるので、移動方向反転前に一旦停止するような指令が与えられた場合であっても移動方向反転後に生じる機械端位置の指令位置に対する追従誤差を抑制することができる。また、誤差補正量は、停止中のモータ端移動量を考慮して算出されるので、モータ端位置と機械端位置の偏差が、移動方向の反転時にゆるやかに変化するような場合に、誤差補正量が早く作用しすぎて移動方向反転後に位置の補正が効きすぎ、軌跡誤差が生じてしまうことをふせぐことができる。以上のように、実施の形態１のサーボ制御装置１００は、送り軸の移動方向が反転する時においても機械端位置と指令位置との間の追従誤差を抑制したフルクローズド制御を可能とする。
【００４５】
なお、誤差補正量演算部２は、具体的には、モデル応答に基づいて機械端の速度の符号を演算し、パラメータから停止中モータ端移動量を減算した値に前記符号を乗算することによって誤差補正量を求めている。したがって、停止中にモータ端位置が変動しても、できるだけ正確な誤差補正量を算出することができる。
【００４６】
また、サーボ制御部３は、位置指令と機械端位置の検出値との差分に対して所定の位置制御演算を行う位置制御部３１と、誤差補正量を微分する補正量微分演算部３４と、モータ端位置の検出値を微分する微分演算部３３と、位置制御部３１の出力に補正量微分演算部３４の出力を加算した値と微分演算部３３の出力との差分に対して所定の速度制御演算を行ってトルク指令を演算する速度制御部３２と、を備える。これにより、サーボ制御装置１００は、位置指令と機械端位置の差を位置偏差として、位置偏差を抑制するようにフィードバック制御を行うことにより、機械端位置が位置指令に追従するように制御することができる。
【００４７】
実施の形態２．
実施の形態２のサーボ制御装置は、実施の形態１と概ね同一の構成を有している。ここでは、実施の形態１と同様の構成要素には実施の形態１と同じ名称および符号を付して、重複する説明を省略する。なお、実施の形態２によれば、サーボ制御部の構成が実施の形態１と異なる。実施の形態２のサーボ制御装置に符号２００を、実施の形態２のサーボ制御部に符号７を、夫々付して、実施の形態１と区別する。
【００４８】
図９は、本実施の形態２のサーボ制御装置２００に具備されるサーボ制御部７の内部構成を示すブロック図である。サーボ制御部７は、位置制御部７１、速度制御部３２、微分演算部３３、位置フィードバックフィルタ７４および補正量フィルタ７５を備えている。実施の形態２のサーボ制御部７は、補正量微分演算部３４のかわりに補正量フィルタ７５が具備され、補正量フィルタ７５の出力を位置指令に加算するように構成されている。また、実施の形態２のサーボ制御部７は、位置フィードバックフィルタ７４を具備する。そして、サーボ制御部７は、機械端位置とモータ端位置との差分を位置フィードバックフィルタ７４に入力し、位置フィードバックフィルタ７４の出力にモータ端位置を加算した値を位置フィードバックとして用いる。言い換えると、サーボ制御部７は、位置指令から位置フィードバックフィルタ７４の出力とモータ端位置の合計を減じた値を位置偏差として用いる。
【００４９】
位置フィードバックフィルタ７４は、機械端位置の検出値とモータ端位置の検出値との差分の低周波成分を演算する。具体的には、位置フィードバックフィルタ７４は、一次遅れローパスフィルタの特性を有する。位置フィードバックフィルタ７４の時定数をTfとすると、位置フィードバックフィルタ７４の伝達関数Gf(s)は次の式２で表される。
Gf(s)=1/(1+Tf*s)    （式２）
【００５０】
また、補正量フィルタ７５は、誤差補正量の高周波成分を演算する。具体的には、補正量フィルタ７５は、一次のハイパスフィルタの特性を有する。補正量フィルタ７５の時定数をTcとすると、補正量フィルタ７５の伝達関数Gc(s)は次の式３で表される。
Gc(s)=Tc*s/(1+Tc*s)    （式３）
【００５１】
実施の形態２のサーボ制御部７のようにモータ端位置と機械端位置とを合成して位置フィードバックを演算するサーボ制御方式は、デュアルフィードバック制御と呼ばれる。機械系の剛性が低い場合、機械系の共振モードが位置制御ループの中に入るため、位置ループゲインを大きくすると制御系が不安定になりやすい。一方で、モータ端位置を位置フィードバックとして用いると、機械端とモータ端の間の偏差によって機械端に位置決め誤差が生じる。そこで、デュアルフィードバック制御によれば、モータ端位置の高周波成分と機械端位置の低周波成分を合成したものを位置フィードバックとして用いることで、停止時の機械端位置決め精度と移動中の制御ループの安定性を両立させる。即ち、デュアルフィードバック制御によれば、機械端位置の高周波成分が除去されるので機械系の剛性が低い場合に動作中に発生する機械共振の影響を抑制することができ、また停止中は機械端位置が位置フィードバックとして用いられるので機械端位置決め精度を向上することができる。
【００５２】
一方、デュアルフィードバック制御によれば、停止時や一定速送り時の機械端位置は位置指令に追従するが、移動方向の反転時に機械偏差が過渡的に変化する場合には、機械端に追従遅れが生じる。
【００５３】
図１０は、実施の形態２における、モータ端位置・機械端位置と位置フィードバックの関係を、位置フィードバックフィルタの伝達関数Gf(s)を用いて表現したものである。デュアルフィードバック制御の場合、モータ端位置と位置フィードバックとの伝達関数は、１から位置フィードバックフィルタの伝達関数を減じたものとなる。具体的には、モータ端位置と位置フィードバックとの伝達関数は、次の式４に示すようなハイパスフィルタの伝達関数となる。
1-Gf(s)=Tf*s/(1+Tf*s)    （式４）
【００５４】
移動方向の反転時には、モータ端位置がステップ状に変化することになるので、位置フィードバックには伝達関数1-Gf(s)のステップ応答の形の追従誤差が現れることになる。
【００５５】
位置フィードバックはサーボ制御部７において位置指令に加算されるので、サーボ制御装置２００は、移動方向の反転時に位置フィードバックに生じる追従誤差に相当する誤差補正量を位置指令に加算することで、デュアルフィードバック制御を用いた場合でも機械端位置の位置指令に対する追従誤差を抑制することが可能となる。つまり、実施の形態２によれば、移動方向の反転時の機械端位置の位置指令に対する追従誤差を抑制するために、補正量フィルタ７５の時定数Tcが位置フィードバックフィルタ７４の時定数Tfと等しくなるように設定される。
【００５６】
以上のように、実施の形態２によれば、サーボ制御部７は、機械端位置の検出値とモータ端位置の検出値との差分の低周波成分を演算する位置フィードバックフィルタ７４と、誤差補正量の高周波成分を演算する補正量フィルタ７５と、位置指令と補正量フィルタ７５の出力との合計から位置フィードバックフィルタ７４の出力とモータ端位置の検出値との合計を減じた値に対して所定の位置制御演算を行う位置制御部７１と、モータ端位置の検出値を微分する微分演算部３３と、位置制御部７１の出力と微分演算部３３の出力との差分に対して所定の速度制御演算を行ってトルク指令を算出する速度制御部３２と、を備える。これにより、実施の形態２のサーボ制御装置２００は、機械系６の剛性が低い場合であっても停止時の機械端の位置決め精度と移動時の安定性を両立させるデュアルフィードバック制御を実現することができる。また、デュアルフィードバック制御によって生じる機械端の追従遅れを抑制して移動方向反転後に生じる機械端位置の位置指令に対する追従誤差を十分に抑制することができる。
【００５７】
なお、補正量フィルタ７５はハイパスフィルタの特性を有し、位置フィードバックフィルタ７４はローパスフィルタの特性を有し、補正量フィルタ７５の時定数と位置フィードバックフィルタ７４の時定数とは略同一である。これにより、デュアルフィードバック制御によって生じる機械端の追従遅れを抑制して移動方向反転後に生じる機械端位置の位置指令に対する追従誤差を十分に抑制することができる。
【００５８】
以上に説明した実施の形態において、サーボ制御装置１００、２００を構成する各構成要素間の入出力関係が等価となるものであれば、加減算の順序および／または構成要素の配置が入れ替わっていてもよい。例えば、サーボ制御部３において補正量微分演算部３４の出力を位置制御部３１の出力に加算した後で微分演算部３３の出力を減じているが、位置制御部３１の出力から微分演算部３３の出力を減じた後に補正量微分演算部３４の出力を加算してもよいし、微分演算部３３の出力から補正量微分演算部３４の出力を減じたものを、位置制御部３１の出力から減じてもよい。
【００５９】
以上に説明した実施の形態において、機械端位置とモータ端位置の間の機械偏差はバックラッシによって生じるものとしたが、移動方向に依存した機械偏差が生じるロストモーションであれば、他の要因によって生じるものであってもよい。例えば、機械端位置とモータ端位置の間にばね特性があり、機械端位置に摩擦が加わる場合には、正方向移動時と負方向移動時とで機械端位置にずれ（ロストモーション）が生じる。このような場合には、ロストモーション量（同一の位置に正方向と負方向から位置決めした時の機械端位置のずれ）がパラメータに設定されることで、以上に説明した実施の形態と同様に移動方向反転時の機械端位置の追従誤差を抑制することが可能となる。
【００６０】
また、サーボ制御装置１００、２００を構成する構成要素のうちの一部または全部は、ソフトウェアにより実現されてもよいし、ハードウェアにより実現されてもよい。構成要素をソフトウェアにより実現するとは、演算装置および記憶装置を備えるコンピュータにおいて、構成要素に対応するプログラムモジュールを記憶装置に予め格納しておき、当該記憶装置に格納されているプログラムモジュールを演算装置が実行することによって当該構成要素の機能を実現することである。構成要素が、ハードウェアとして実現されるか、または、ソフトウェアとして実現されるかは、装置全体に課される設計制約に応じて決定される。
【産業上の利用可能性】
【００６１】
以上のように、本発明にかかるサーボ制御装置は、サーボモータを駆動するサーボ制御装置に適用して好適である。
【符号の説明】
【００６２】
１  モデル応答演算部、２  誤差補正量演算部、３  サーボ制御部、４  停止中モータ端移動量測定部、５  モータ、６  機械系、７  サーボ制御部、２１  符号演算部、２２  誤差補正量出力部、３１，７１  位置制御部、３２  速度制御部、３３  微分演算部、３４  補正量微分演算部、４１  位置制御模擬部、４２  積分器、５１  サーボモータ、５２  モータ端位置検出器、６２  ナット、６３  テーブル、６４  機械端位置検出器、７４  位置フィードバックフィルタ、７５  補正量フィルタ、１００，２００  サーボ制御装置。
【図１】
0005885883.tif 000002
【図２】
0005885883.tif 000003
【図３】
0005885883.tif 000004
【図４】
0005885883.tif 000005
【図５】
0005885883.tif 000006
【図６】
0005885883.tif 000007
【図７】
0005885883.tif 000008
【図８】
0005885883.tif 000009
【図９】
0005885883.tif 000010
【図１０】
0005885883.tif 000011