(57)【要約】【課題】位置制御を行なうにあたって、制御対象の動特性に応じてより適切な動摩擦起因の誤差を低減する技術が要望されている。【解決手段】制御装置は、ドライブ装置に指令値としての第１の指令を与えるとともに、制御対象が第１の指令に従うのに必要なトルクを決定する第１の同定手段と、ドライブ装置に指令値としての第２の指令および補償指令としての第３の指令を与えるとともに、制御対象からの応答に基づいて、先行切換時間を決定する第２の同定手段と、予め定められた目標軌道に基づいてドライブ装置に与える指令値を順次更新する指令値更新手段と、ドライブ装置に与えられる指令値に応じて、ドライブ装置に与える補償指令を順次更新する補償指令更新手段とを含む。補償指令更新手段は、先行切換時間だけ先の時刻において目標軌道において制御対象の移動方向の反転が生じる場合に、補償指令の値を、当該反転後の移動方向に応じた値に更新する。【選択図】図７
2018120399.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を駆動するドライブ装置に指令値および補償指令を与えて制御対象の位置制御を行なう制御装置であって、
前記ドライブ装置は、前記制御装置からの前記指令値と前記制御対象からのフィードバック値とに基づいて前記制御対象に対する操作量を算出するとともに、前記制御装置からの前記補償指令に基づいて当該算出された操作量を補正した上で、前記制御対象に与えるように構成されており、
前記制御装置は、
前記ドライブ装置に前記指令値としての第１の指令を与えるとともに、前記制御対象が前記第１の指令に従うのに必要なトルクを決定する第１の同定手段と、
前記ドライブ装置に前記指令値としての第２の指令および前記補償指令としての第３の指令を与えるとともに、前記制御対象からの応答に基づいて、先行切換時間を決定する第２の同定手段と、
予め定められた目標軌道に基づいて前記ドライブ装置に与える前記指令値を順次更新する指令値更新手段と、
前記ドライブ装置に与えられる前記指令値に応じて、前記ドライブ装置に与える補償指令を順次更新する補償指令更新手段とを備え、
前記補償指令更新手段は、前記先行切換時間だけ先の時刻において前記目標軌道において前記制御対象の移動方向の反転が生じる場合に、前記補償指令の値を、当該反転後の移動方向に応じた値に更新する、制御装置。
【請求項２】
前記第１の同定手段は、
前記制御対象を第１の方向に予め定められた速度で移動させるための指令と、前記制御対象を前記第１の方向とは異なる第２の方向に予め定められた速度で移動させるための指令とを、前記第１の指令として前記ドライブ装置に与え、
前記第１の方向に移動するときに必要なトルクに基づいて前記第１の方向における第１の補償量を決定するとともに、前記第２の方向に移動するときに必要なトルクに基づいて前記第２の方向における第２の補償量を決定する、請求項１に記載の制御装置。
【請求項３】
前記第２の同定手段は、
前記制御対象が前記第２の方向に移動している状態から静止した状態に変化させるための指令を前記第２の指令として前記ドライブ装置に与えるとともに、前記制御対象の移動方向を前記第１の方向へ反転させるような指令を前記第３の指令として前記ドライブ装置に与え、
前記ドライブ装置へ前記補償指令を与え始めてから前記制御対象からのフィードバック値の時間変化の方向が反転するまでに要する時間に基づいて、前記先行切換時間を決定する、請求項２に記載の制御装置。
【請求項４】
前記第２の同定手段は、前記第１の補償量および前記第２の補償量に基づいて、前記第３の指令を決定する、請求項３に記載の制御装置。
【請求項５】
前記第２の同定手段は、前記制御装置から与えられる前記指令値の更新周期の整数倍として、前記先行切換時間を規定する、請求項３または４に記載の制御装置。
【請求項６】
前記第１の同定手段は、前記第１の指令に対する前記制御対象からのトルクが整定している状態において、前記第１の補償量または前記第２の補償量を決定する、請求項３〜５のいずれか１項に記載の制御装置。
【請求項７】
前記第１の同定手段は、前記トルクについての複数回の測定結果を平均化することで、前記第１の補償量または前記第２の補償量を決定する、請求項６に記載の制御装置。
【請求項８】
前記ドライブ装置は、前記制御装置からの前記補償指令に基づいて補正された制御量にフィルタをかけて前記制御対象に与えるように構成されており、
前記補償指令更新手段は、前記フィルタがもつ特性の逆特性を反映して、前記ドライブ装置に与える補償指令を更新する、請求項１〜７のいずれか１項に記載の制御装置。
【請求項９】
制御対象を駆動するドライブ装置に指令値および補償指令を与えて制御対象の位置制御を行なう制御装置で実行される制御プログラムであって、
前記ドライブ装置は、前記制御装置からの前記指令値と前記制御対象からのフィードバック値とに基づいて前記制御対象に対する操作量を算出するとともに、前記制御装置からの前記補償指令に基づいて当該算出された操作量を補正した上で、前記制御対象に与えるように構成されており、
前記制御プログラムは前記制御装置に、
前記ドライブ装置に前記指令値としての第１の指令を与えるとともに、前記制御対象が前記第１の指令に従うのに必要なトルクを決定するステップと、
前記ドライブ装置に前記指令値としての第２の指令および前記補償指令としての第３の指令を与えるとともに、前記制御対象からの応答に基づいて、先行切換時間を決定するステップと、
予め定められた目標軌道に基づいて前記ドライブ装置に与える前記指令値を順次更新するステップと、
前記ドライブ装置に与えられる前記指令値に応じて、前記ドライブ装置に与える補償指令を順次更新するステップとを実行させ、
前記補償指令を順次更新するステップは、前記先行切換時間だけ先の時刻において前記目標軌道において前記制御対象の移動方向の反転が生じる場合に、前記補償指令の値を、当該反転後の移動方向に応じた値に更新するステップを含む、制御プログラム。
【請求項１０】
制御システムであって、
制御対象を駆動するドライブ装置と、
前記ドライブ装置に指令値および補償指令を与えて前記制御対象の位置制御を行なう制御装置とを備え、
前記ドライブ装置は、前記制御装置からの前記指令値と前記制御対象からのフィードバック値とに基づいて前記制御対象に対する操作量を算出するとともに、前記制御装置からの前記補償指令に基づいて当該算出された操作量を補正した上で、前記制御対象に与えるように構成されており、
前記制御装置は、
前記ドライブ装置に前記指令値としての第１の指令を与えるとともに、前記制御対象が前記第１の指令に従うのに必要なトルクを決定する第１の同定手段と、
前記ドライブ装置に前記指令値としての第２の指令および前記補償指令としての第３の指令を与えるとともに、前記制御対象からの応答に基づいて、先行切換時間を決定する第２の同定手段と、
予め定められた目標軌道に基づいて前記ドライブ装置に与える前記指令値を順次更新する指令値更新手段と、
前記ドライブ装置に与えられる前記指令値に応じて、前記ドライブ装置に与える補償指令を順次更新する補償指令更新手段とを備え、
前記補償指令更新手段は、前記先行切換時間だけ先の時刻において前記目標軌道において前記制御対象の移動方向の反転が生じる場合に、前記補償指令の値を、当該反転後の移動方向に応じた値に更新する、制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置制御系において動摩擦起因の誤差を低減する技術に関する。
【背景技術】
【０００２】
従来から、モータなどを用いて装置の位置を制御するような技術が知られている。位置制御を利用したさまざまなアプリケーションが存在する。このような位置制御においては、構造物を駆動することになるので、物体の移動に伴って動摩擦が発生する。このような動摩擦は、位置制御の制御系から見れば誤差である。発生する動摩擦の大きさは、物体間の相互関係などに依存して変化するため、その誤差を補償するセッティングなどが難しい。
【０００３】
このような動摩擦起因の誤差を補償するための技術として、以下のような先行技術がある。
【０００４】
特開２００３−３２３２１６号公報（特許文献１）は、従来の位置制御装置の起動時摩擦補償機能では、軸停止前後の移動方向が異なる場合は、起動方向に摩擦補償動作が発生し、軸停止前後の移動方向が一致する場合は、摩擦補償動作が発生しないため、実際に静摩擦に起因した軸の動作遅れが発生するタイミングと、摩擦補償動作が発生するタイミングが一致しないという問題を解決する起動時摩擦補償機能を開示する。
【０００５】
特開２０１２−１０８８９２号公報（特許文献２）は、ダブルナット予圧方式の送り駆動機構においても低速から高速の領域まで摩擦力または摩擦トルクを高精度で推定して象限突起を補正できる数値制御装置を開示する。
【０００６】
特開２０１６−０３９７３７号公報（特許文献３）は、波動歯車減速機の動摩擦トルク同定を行ない、この動摩擦トルクを補償するトルクをフィードフォワードにより与えることで、大部分の摩擦トルクを補償する構成を開示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−３２３２１６号公報
【特許文献２】特開２０１２−１０８８９２号公報
【特許文献３】特開２０１６−０３９７３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
汎用的な位置制御系を考えると、制御対象としてはさまざまな構造体やドライブ装置が用いられる。上述の特許文献１は、従来の位置制御装置に存在していた固有の課題を解決することを目的とするものであり、汎用的に応用できるものではない。また、特許文献２に開示される数値制御装置は、ダブルナット予圧方式の送り駆動機構に向けられるものであり、制御対象などが異なるとそのまま適用することはできない。特許文献３は、波動歯車減速機に着目したものであり、制御対象などが異なるとそのまま適用することはできない。
【０００９】
位置制御を行なうにあたって、制御対象の動特性に応じてより適切な動摩擦起因の誤差を低減する技術が要望されている。
【課題を解決するための手段】
【００１０】
本発明のある局面に従えば、制御対象を駆動するドライブ装置に指令値および補償指令を与えて制御対象の位置制御を行なう制御装置が提供される。ドライブ装置は、制御装置からの指令値と制御対象からのフィードバック値とに基づいて制御対象に対する操作量を算出するとともに、制御装置からの補償指令に基づいて当該算出された操作量を補正した上で、制御対象に与えるように構成されている。制御装置は、ドライブ装置に指令値としての第１の指令を与えるとともに、制御対象が第１の指令に従うのに必要なトルクを決定する第１の同定手段と、ドライブ装置に指令値としての第２の指令および補償指令としての第３の指令を与えるとともに、制御対象からの応答に基づいて、先行切換時間を決定する第２の同定手段と、予め定められた目標軌道に基づいてドライブ装置に与える指令値を順次更新する指令値更新手段と、ドライブ装置に与えられる指令値に応じて、ドライブ装置に与える補償指令を順次更新する補償指令更新手段とを含む。補償指令更新手段は、先行切換時間だけ先の時刻において目標軌道において制御対象の移動方向の反転が生じる場合に、補償指令の値を、当該反転後の移動方向に応じた値に更新する。
【００１１】
好ましくは、第１の同定手段は、制御対象を第１の方向に予め定められた速度で移動させるための指令と、制御対象を第１の方向とは異なる第２の方向に予め定められた速度で移動させるための指令とを、第１の指令としてドライブ装置に与え、第１の方向に移動するときに必要なトルクに基づいて第１の方向における第１の補償量を決定するとともに、第２の方向に移動するときに必要なトルクに基づいて第２の方向における第２の補償量を決定する。
【００１２】
好ましくは、第２の同定手段は、制御対象が第２の方向に移動している状態から静止した状態に変化させるための指令を第２の指令としてドライブ装置に与えるとともに、制御対象の移動方向を第１の方向へ反転させるような指令を第３の指令としてドライブ装置に与え、ドライブ装置へ補償指令を与え始めてから制御対象からのフィードバック値の時間変化の方向が反転するまでに要する時間に基づいて、先行切換時間を決定する。
【００１３】
好ましくは、第２の同定手段は、第１の補償量および第２の補償量に基づいて、第３の指令を決定する。
【００１４】
好ましくは、第２の同定手段は、制御装置から与えられる指令値の更新周期の整数倍として、先行切換時間を規定する。
【００１５】
好ましくは、第１の同定手段は、第１の指令に対する制御対象からのトルクが整定している状態において、第１の補償量または第２の補償量を決定する。
【００１６】
好ましくは、第１の同定手段は、トルクについての複数回の測定結果を平均化することで、第１の補償量または第２の補償量を決定する。
【００１７】
好ましくは、ドライブ装置は、制御装置からの補償指令に基づいて補正された制御量にフィルタをかけて制御対象に与えるように構成されており、補償指令更新手段は、フィルタがもつ特性の逆特性を反映して、ドライブ装置に与える補償指令を更新する。
【００１８】
本発明の別の局面に従えば、制御対象を駆動するドライブ装置に指令値および補償指令を与えて制御対象の位置制御を行なう制御装置で実行される制御プログラムが提供される。ドライブ装置は、制御装置からの指令値と制御対象からのフィードバック値とに基づいて制御対象に対する操作量を算出するとともに、制御装置からの補償指令に基づいて当該算出された操作量を補正した上で、制御対象に与えるように構成されている。
【００１９】
制御プログラムは制御装置に、ドライブ装置に指令値としての第１の指令を与えるとともに、制御対象が指令値としての第１の指令に従うのに必要なトルクを決定するステップと、ドライブ装置に指令値としての第２の指令および補償指令としての第３の指令を与えるとともに、制御対象からの応答に基づいて、先行切換時間を決定するステップと、予め定められた目標軌道に基づいてドライブ装置に与える指令値を順次更新するステップと、ドライブ装置に与えられる指令値に応じて、ドライブ装置に与える補償指令を順次更新するステップとを実行させる。補償指令を順次更新するステップは、先行切換時間だけ先の時刻において目標軌道において制御対象の移動方向の反転が生じる場合に、補償指令の値を、当該反転後の移動方向に応じた値に更新するステップを含む。
【００２０】
本発明のさらに別の局面に従う制御システムは、制御対象を駆動するドライブ装置と、ドライブ装置に指令値および補償指令を与えて制御対象の位置制御を行なう制御装置とを含む。ドライブ装置は、制御装置からの指令値と制御対象からのフィードバック値とに基づいて制御対象に対する操作量を算出するとともに、制御装置からの補償指令に基づいて当該算出された操作量を補正した上で、制御対象に与えるように構成されている。制御装置は、ドライブ装置に指令値としての第１の指令を与えるとともに、制御対象が第１の指令に従うのに必要なトルクを決定する第１の同定手段と、ドライブ装置に指令値としての第２の指令および補償指令としての第３の指令を与えるとともに、制御対象からの応答に基づいて、先行切換時間を決定する第２の同定手段と、予め定められた目標軌道に基づいてドライブ装置に与える指令値を順次更新する指令値更新手段と、ドライブ装置に与えられる指令値に応じて、ドライブ装置に与える補償指令を順次更新する補償指令更新手段とを含む。補償指令更新手段は、先行切換時間だけ先の時刻において目標軌道において制御対象の移動方向の反転が生じる場合に、補償指令の値を、当該反転後の移動方向に応じた値に更新する。
【発明の効果】
【００２１】
本発明のある実施の形態によれば、制御対象の動特性に応じてより適切な動摩擦起因の誤差を低減した位置制御を実現できる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態に従う制御システムの構成例を示す模式図である。
【図２】本実施の形態に従う制御装置のハードウェア構成の一例を示す模式図である。
【図３】本実施の形態に従う制御装置に接続されるサーボドライバの機能構成の一例を示す模式図である。
【図４】位置制御系における動摩擦補償の方法の一例を示す模式図である。
【図５】図４に示す位置制御系における動摩擦補償の方法において生じる位置偏差の一例を示す模式図である。
【図６】本実施の形態に従う位置制御系における動摩擦補償の方法の一例を示す模式図である。
【図７】本実施の形態に従う制御装置で実行される処理手順を示すフローチャートである。
【図８】本実施の形態に従う制御装置において動摩擦特性の同定処理が実行されるときの機能構成を示す模式図である。
【図９】本実施の形態に従う制御装置において制御対象の位置制御が実行されるときの機能構成を示す模式図である。
【図１０】本実施の形態に従う動摩擦特性の同定処理による正方向／逆方向の動摩擦トルクの測定例を示すグラフである。
【図１１】本実施の形態に従う動摩擦特性の同定処理による動摩擦トルクの補償に係る先行切換時間の測定例を示すグラフである。
【図１２】本実施の形態に従う制御対象の位置制御の測定例を示すグラフである。
【図１３】本実施の形態に従う制御対象の位置制御の別の測定例を示すグラフである。
【図１４】本実施の形態に従う位置制御において動摩擦トルクの補償に係る測定例を示すグラフである。
【図１５】本実施の形態に従う位置制御との比較例を示すグラフである。
【発明を実施するための形態】
【００２３】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２４】
＜Ａ．制御システムの構成例＞
まず、本実施の形態に従う制御システム１の構成例について説明する。図１は、本実施の形態に従う制御システム１の構成例を示す模式図である。
【００２５】
図１を参照して、制御システム１は、制御装置１００と、１または複数のドライブ装置とを含む。図１に示す例では、ドライブ装置の一例として、サーボモータを駆動するサーボドライバ２００を例示する。但し、ドライブ装置としては、サーボドライバに限定されることなく、被駆動装置であるモータに応じて、対応するドライブ装置が採用される。例えば、誘導モータまたは同期モータを駆動する場合には、ドライブ装置として、インバータドライブなどが採用されてもよい。
【００２６】
図１には、典型例として、制御装置１００と、１または複数のサーボドライバ２００との間は、フィールドバス１０１を介して接続されている構成を示す。但し、このような構成に限らず、任意の通信手段を採用することができる。あるいは、制御装置１００とサーボドライバ２００との間を直接信号線で接続するようにしてもよい。さらに、制御装置１００とサーボドライバ２００とを一体化した構成を採用してもよい。以下に説明するような、動摩擦起因の誤差を低減するためのアルゴリズムが実現されるものであれば、どのような実装形態を採用してもよい。
【００２７】
サーボドライバ２００は、制御対象の一部でもあるサーボモータ１０を駆動する。図１に示す例では、制御対象として、ボールねじを用いたアクチュエータ２を示す。アクチュエータ２は、ハウジング４の中心部に上部を貫通するように配置されたボールねじ６を含む。このボールねじ６には、移動部材であるナット８が係合されている。ナット８はハウジング４の内部に回転を抑止された状態で配置されている。ボールねじ６の一端にはサーボモータ１０が結合されており、サーボモータ１０が回転することで、ボールねじ６とナット８とが相対回転し、その結果、ナット８がボールねじ６の軸方向に沿って移動することになる。このような機構によって、移動部材であるナット８の位置を制御することができる。
【００２８】
例えば、移動部材であるナット８の移動方向にワークが配置される。すなわち、ボールねじ６の回転によってボールねじ６の位置が変化することで、移動部材とワークとの間の相対距離が変化する。そして、ナット８またはナット８と機械的に連結された図示しない他の部材がワークに接触することで、ワークに対して荷重が与えられる。図１に示すようなアクチュエータ２は、例えば、何らかの基板上に部品を配置するような用途に用いられてもよい。
【００２９】
サーボモータ１０の回転軸にはエンコーダ１２が配置されており、エンコーダ１２は、サーボモータ１０のフィードバック値として、サーボモータ１０の位置、回転速度、累積回転数などをサーボドライバ２００へ出力する。なお、サーボモータ１０からのフィードバック値は、制御装置１００へ直接入力されてもよい。
【００３０】
＜Ｂ．制御システムのハードウェア構成＞
次に、制御システム１を構成する制御装置１００およびサーボドライバ２００のハードウェア構成の一例について説明する。
【００３１】
（ｂ１：制御装置１００）
まず、本実施の形態に従う制御装置１００のハードウェア構成の一例について説明する。本実施の形態の制御装置１００は、一例として、ＰＬＣ（プログラマブルコントローラ）を用いて実装されてもよい。制御装置１００は、予め格納された制御プログラム（後述するような、システムプログラムおよびユーザプログラムを含む）をプロセッサが実行することで、後述するような動摩擦起因の誤差を低減する処理を実現する。
【００３２】
図２は、本実施の形態に従う制御装置１００のハードウェア構成の一例を示す模式図である。図２を参照して、制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、メインメモリ１０６と、フラッシュメモリ１０８と、外部ネットワークコントローラ１１６と、メモリカードインターフェイス１１８と、内部バスコントローラ１２２と、フィールドバスコントローラ１２４とを含む。
【００３３】
プロセッサ１０２は、フラッシュメモリ１０８に格納されたシステムプログラム１１０およびユーザプログラム１１２を読み出して、メインメモリ１０６に展開して実行することで、制御対象に対する任意の制御を実現する。システムプログラム１１０は、データの入出力処理や実行タイミング制御などの、制御装置１００の基本的な機能を提供するための命令コードを含む。ユーザプログラム１１２は、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラム１１２Ａおよびモーション制御を実行するためのモーションプログラム１１２Ｂとを含む。
【００３４】
チップセット１０４は、各コンポーネントを制御することで、制御装置１００全体としての処理を実現する。
【００３５】
内部バスコントローラ１２２は、制御装置１００と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、Ｉ／Ｏユニット１２６が接続されている。
【００３６】
フィールドバスコントローラ１２４は、制御装置１００とフィールドバスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、サーボドライバ２００が接続されている。
【００３７】
内部バスコントローラ１２２およびフィールドバスコントローラ１２４は、接続されているデバイスに対して任意の指令値を与えることができるとともに、デバイスが管理している任意のデータ（測定値を含む）を取得することができる。
【００３８】
外部ネットワークコントローラ１１６は、各種の有線／無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス１１８は、メモリカード１２０を着脱可能に構成されており、メモリカード１２０に対してデータを書込み、メモリカード１２０からデータを読出すことが可能になっている。
【００３９】
制御装置１００が制御プログラムを実行することで提供される機能の一部または全部を専用のハードワイヤード回路として実装してもよい。ハードワイヤード回路としては、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）などを用いて実装することができる。
【００４０】
（ｂ２：サーボドライバ２００）
再度図１を参照して、サーボドライバ２００は、後述するような制御ループに係る演算を実行するためのコントローラ２０２と、コントローラ２０２での演算結果に基づいて、サーボモータ１０を駆動するためのドライブ回路２０４とを含む。コントローラ２０２は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）などを用いて実装されてもよい。あるいは、プロセッサにプログラムを実行させることで、コントローラ２０２を実現してもよい。ドライブ回路２０４は、典型的には、交流電力を直流電力に変換するコンバータと、コンバータにより生成される直流電力を指定された位相および周波数をもつ交流電力に変換するインバータ回路とを含む。
【００４１】
＜Ｃ．サーボドライバの機能構成＞
次に、本実施の形態に従う制御装置１００に接続されるサーボドライバ２００の機能構成の一例について説明する。図３は、本実施の形態に従う制御装置１００に接続されるサーボドライバ２００の機能構成の一例を示す模式図である。図３に示す各機能ブロックは、サーボドライバ２００のコントローラ２０２（図１参照）によって実現される。
【００４２】
本実施の形態に従う制御システム１においては、制御装置１００からサーボドライバ２００に対して指令値として指令位置が与えられる。サーボドライバ２００は、制御対象であるアクチュエータ２の実位置が制御装置１００からの指令位置と一致するように、サーボモータ１０へ供給する駆動電流を制御する。
【００４３】
制御装置１００は、サーボドライバ２００に対して、指令位置に加えて、動摩擦起因の誤差を低減するための補償指令を与える。以下では、補償指令の一例として、指令トルクに対する補償量を示すトルクオフセットを用いる構成について説明する。但し、指令トルクを補償するのではなく、速度や加速度などを補償するような補償指令を用いてもよい。
【００４４】
制御装置１００は、トルクオフセットを算出するための情報として、サーボモータ１０からのフィードバック値（実位置）を取得する。サーボモータ１０の実位置を制御装置１００へフィードバックする方法として、図３には、サーボドライバ２００を経由する構成を例示するが、サーボモータ１０のエンコーダ１２から制御装置１００にフィードバック値を出力するようにしてもよい。サーボドライバ２００に与えられるトルクオフセットの算出方法の詳細については、後述する。
【００４５】
このように、制御装置１００は、制御対象を駆動するドライブ装置（サーボドライバ２００）に指令値（指令位置）および補償指令（トルクオフセット）を与えて制御対象の位置制御を行なう。
【００４６】
サーボドライバ２００は、制御装置１００からの指令値（指令位置）と制御対象からのフィードバック値（実位置または実速度）とに基づいて制御対象に対する操作量を算出するとともに、制御装置１００からの補償指令（トルクオフセット）に基づいて当該算出された操作量を補正した上で、制御対象に与える。
【００４７】
より具体的には、サーボドライバ２００においては、位置についてのメインループに加えて、速度についてのマイナーループを含む、制御ループが実装されている。具体的には、サーボドライバ２００は、機能構成として、差分演算部２１０，２１４と、位置制御部２１２と、速度制御部２１６と、加算部２１８と、トルクフィルタ２２０と、電流制御部２２２と、速度検出部２２４とを含む。
【００４８】
位置制御部２１２は、位置についての制御ループを構成する制御演算部であり、差分演算部２１０において算出される、指令位置と実位置（フィードバック値）との偏差に応じた制御量を出力する。位置制御部２１２としては、典型的には、Ｐ（比例）制御が用いられてもよい。つまり、位置制御部２１２は、指令位置と実位置との偏差に予め定められた比例係数を乗じた値を制御量として出力する。
【００４９】
速度制御部２１６は、速度についての制御ループを構成する制御演算部であり、差分演算部２１４において算出される、位置制御部２１２からの制御量と速度検出部２２４からの実速度との偏差に応じた制御量を出力する。速度制御部２１６としては、典型的には、ＰＩ（比例積分）制御が用いられてもよい。つまり、位置制御部２１２は、位置制御部２１２からの指令速度と実速度との偏差に対して、比例係数を乗じた値と積分要素によって積分された値との和を制御量として出力する。
【００５０】
加算部２１８は、速度制御部２１６からのトルク指令（または、操作量）に対して、制御装置１００から与えられるトルクオフセットを加算する。すなわち、速度制御部２１６からのトルク指令（または、操作量）は、制御装置１００からのトルクオフセットにより補正される。加算部２１８は、速度制御部２１６からの制御量に対して、トルクオフセット（すなわち、動摩擦補償トルク）だけ加算された制御量が出力される。加算部２１８から出力される操作量は、サーボモータ１０で発生させるべき指令トルクに相当する。
【００５１】
トルクフィルタ２２０は、加算部２１８から出力される制御量（サーボモータ１０で発生させるべきトルクの指令値）の単位時間あたりの変化の度合い（変化速度）が大きくなり過ぎないように、時間変化の度合いを緩和する。すなわち、トルクフィルタ２２０は、加算部２１８から出力される制御量を鈍らせる。トルクフィルタ２２０からの制御量は電流制御部２２２に与えられる。
【００５２】
電流制御部２２２は、トルクフィルタ２２０からの制御量に対応させて、ドライブ回路２０４（図１参照）でのスイッチングタイミングを決定する。つまり、電流制御部２２２は、トルクフィルタ２２０にて決定された指令トルクを実現できるように、サーボモータ１０へ供給する電流の大きさ、タイミング、波形などを決定する。電流制御部２２２にて決定された制御量に従って、ドライブ回路２０４が駆動される。ドライブ回路２０４から供給される電流によって、アクチュエータ２のサーボモータ１０が回転駆動され、アクチュエータ２に変位が生じる。
【００５３】
アクチュエータ２の変位を示すフィードバック値として、エンコーダ１２（図１参照）から実位置が出力される、速度検出部２２４は、エンコーダ１２からの実位置を微分して実速度を算出する。
【００５４】
サーボドライバ２００は、上述したような機能が組み合わされることで、サーボモータ１０を含む制御対象に対する位置制御を実現できる。
【００５５】
＜Ｄ．概要＞
次に、本実施の形態に従う制御システム１における処理の概要について説明する。
【００５６】
一般的に、位置制御系においては、制御対象の全部または一部の部材に生じる速度の方向に応じて動摩擦が発生する。そのため、制御装置から単に指令値（指令位置または指令速度）をサーボドライバなどに与えるだけでは、発生する動摩擦の影響を受けて、制御対象が指令値どおりの挙動をしない場合がある。
【００５７】
そのため、このような動摩擦起因の誤差を低減するために、より多くのトルクを発生させるような動摩擦補償が実行される。先に、一般的な位置制御系における動摩擦補償の方法について説明する。
【００５８】
図４は、位置制御系における動摩擦補償の方法の一例を示す模式図である。図４には、制御対象が、図１に示すアクチュエータ２のように、所定の移動方向に沿って移動する場合の位置制御系の挙動を示す。以下の説明においては、制御対象の移動方向の一方を「正方向」と規定し、他方を「逆方向」と規定する。
【００５９】
図４に示す指令速度は、制御対象を初期位置から正方向に向けて一旦移動させた後に、移動方向を逆方向に反転させて、同一の初期位置に戻すようにするものである。説明の便宜上、図４には速度指令の時間変化のみを示すが、実際には速度指令の時間積分に相当する、位置指令がサーボドライバに与えられることもある。
【００６０】
制御対象を正方向および逆方向のそれぞれに移動させる場合に生じる動摩擦力は、互いに異なっていることもあるので、それぞれの方向への移動に際して生じる動摩擦力を補正するためのトルクオフセット（動摩擦トルクの補償量）についても、それぞれの方向毎に決定される。
【００６１】
図４には、制御対象が正方向に移動する場合の動摩擦トルクの補償量である正方向トルクオフセット、および、制御対象が逆方向に移動する場合の動摩擦トルクの補償量である逆方向トルクオフセットがそれぞれ予め設定されているものとする。
【００６２】
このような予め設定されたトルクオフセットを用いて、制御対象に対して、正方向および逆方向の指令速度が与えられると、それぞれ正方向および逆方向のトルクオフセットが設定される。図４に示す例では、指令速度は、時刻ｔ１においてゼロからの増加を開始する。この時刻ｔ１において、トルクオフセットとして正方向トルクオフセットが設定される。その後、時刻ｔ２において、速度指令は正方向から逆方向に反転する。この時刻ｔ２において、トルクオフセットとして逆方向トルクオフセットが設定される。そして、時刻ｔ３において、速度指令はゼロに戻るが、トルクオフセットは維持される。
【００６３】
このようなトルクオフセットの設定および切換えによって、発生する動摩擦に相当するトルクが余分に発生することになり、制御対象は指令値に沿って移動することになる。
【００６４】
図４に示す位置制御系における動摩擦補償の方法は、マクロ的に見ればうまく機能するが、ミクロ的に見れば、ある程度の位置偏差が生じる場合がある。
【００６５】
図５は、図４に示す位置制御系における動摩擦補償の方法において生じる位置偏差の一例を示す模式図である。図５には、図４の時刻ｔ２付近における、指令位置と制御対象の実位置との関係の一例を示す。
【００６６】
図５に示すように、時刻ｔ２において、制御対象はその移動方向を正方向から逆方向に反転するように指令値が与えられるとともに、トルクオフセットについても、逆方向の移動に応じたものに設定される。しかしながら、実際にトルクオフセットによって動摩擦補償の機能が開始するには、ある程度の遅れ時間が生じ得る。
【００６７】
その結果、図５に示すように、制御対象の実位置は、制御装置１００からの指令位置の変化に即座に対応できず、ある程度の位置偏差が生じ得る（図５の「応答遅れ」参照）。位置制御系の目的は、制御対象の実位置を予め指定された目標軌道（指令位置）に可能な限り一致させることであるので、指令速度の移動方向の変化に対応させて、トルクオフセット（動摩擦トルクの補償量）を切換えるのでは遅い場合がある。つまり、制御対象の実位置の目標軌道に対する追従性を高めることができない場合がある。
【００６８】
そこで、本実施の形態に従う位置制御においては、指令速度の移動方向の変化に対して、トルクオフセット（動摩擦トルクの補償量）を先行して切換える。
【００６９】
図６は、本実施の形態に従う位置制御系における動摩擦補償の方法の一例を示す模式図である。図６には、図４と同様の指令速度を与えた場合の挙動を示す。
【００７０】
図６を参照して、指令速度は、時刻ｔ１においてゼロからの増加を開始する。この時刻ｔ１より時間Δｔだけ前もって、トルクオフセットとして正方向トルクオフセットを設定する。同様に、速度指令は、時刻ｔ２において、速度指令は正方向から逆方向に反転する。この時刻ｔ２より時間Δｔだけ前もって、トルクオフセットとして逆方向トルクオフセットを設定する。
【００７１】
このような速度指令の変化タイミングに先行してトルクオフセットを設定または切換えるための時間Δｔを、以下では、「先行切換時間」とも称す。図６に示すような先行切換時間を用いることで、図５に示すような実位置と指令位置との乖離を低減できる。
【００７２】
本実施の形態に従う位置制御においては、正方向および逆方向のトルクオフセットに加えて、先行切換時間についても、予め実施される動摩擦特性の同定処理によって決定する。このような同定処理により動摩擦特性を取得することで、制御対象に適した特性値を用いた、位置制御を実現できる。
【００７３】
また、本実施の形態に従う制御システム１においては、制御装置１００からサーボドライバ２００に対して、指令値およびトルクオフセット（動摩擦トルクの補償量）の両方を与えることとして、制御装置１００およびサーボドライバ２００を含む制御系としてのチューニングを容易化する。また、制御装置１００の動特性に応じて、目標軌道を補正した上で、制御装置１００からサーボドライバ２００への指令値が算出されることもある。このような補正後の指令値を用いる場合であっても、制御装置１００において、トルクオフセット（動摩擦トルクの補償量）を併せて決定できるので、制御装置１００とサーボドライバ２００との間の補償の競合といった問題の発生を回避できる。
【００７４】
＜Ｅ．処理手順＞
次に、本実施の形態に従う制御装置１００で実行される処理手順の概要について説明する。図７は、本実施の形態に従う制御装置１００で実行される処理手順を示すフローチャートである。図７に示す各ステップは、制御装置１００のプロセッサ１０２が制御プログラム（図２に示すシステムプログラム１１０およびユーザプログラム１１２を含む）を実行することで実現されてもよい。図７に示す処理手順においては、制御対象の動摩擦特性を取得するための動摩擦特性の同定処理と、当該取得された動摩擦特性に基づいて制御対象の位置制御を行なうための制御処理とを含む。
【００７５】
図７を参照して、制御装置１００は、本実施の形態に従う位置制御の初期設定の実行が指示されると（ステップＳ１００においてＹＥＳの場合）、ステップＳ１０２〜Ｓ１０８に示される動摩擦特性の同定処理を実行する。すなわち、ステップＳ１０２〜Ｓ１０８においては、ドライブ装置（サーボドライバ２００）に指令値としての第１の指令を与えるとともに、制御対象が当該第１の指令に従うのに必要なトルクを決定する処理が実行される。
【００７６】
具体的には、制御装置１００は、同定入力を生成して制御ループの指令値として与える（ステップＳ１０２）とともに、当該指令値に応答する動作結果を取得する（ステップＳ１０４）。制御装置１００は、同定入力および動作結果に基づいて制御対象の動摩擦特性を同定し（ステップＳ１０６）、正方向および逆方向の動摩擦トルクならびに動摩擦トルクの補償に係る先行切換時間を決定する（ステップＳ１０８）。制御装置１００は、決定された動摩擦トルクおよび動摩擦トルクの補償に係る先行切換時間を制御対象の動摩擦特性として格納する。
【００７７】
続いて、制御装置１００は、本実施の形態に従う位置制御の開始が指示されると（ステップＳ１１０においてＹＥＳの場合）、ステップＳ１１２〜Ｓ１２６に示される、同定した結果を用いた動摩擦補償を含む位置制御を実行する。すなわち、ステップＳ１１２〜Ｓ１２６においては、ドライブ装置（サーボドライバ２００）に指令値としての第２の指令および補償指令としての第３の指令を与えるとともに、制御対象からの応答に基づいて、先行切換時間を決定する処理が実行される。
【００７８】
具体的には、制御装置１００は、予め指定された目標軌道の情報に基づいて指令位置を生成する（ステップＳ１１２）。制御装置１００は、動摩擦トルクの補償に係る先行切換時間を取得し（ステップＳ１１４）、予め指定された目標軌道に基づいて、当該取得した先行切換時間だけ先の時刻において、指令速度についての速度方向の反転が発生するか否かを判断する（ステップＳ１１６）。すなわち、先行切換時間だけ先の時刻において目標軌道において制御対象の移動方向の反転が生じるか否かが判断される。
【００７９】
先行切換時間だけ先の時刻において、指令速度についての速度方向の反転が発生すると判断された場合（ステップＳ１１６においてＹＥＳの場合）には、制御装置１００は、現在のトルクオフセットの値を逆方向の動摩擦トルクの値に変更する（ステップＳ１１８）。
【００８０】
一方、先行切換時間だけ先の時刻において、指令速度についての速度方向の反転が発生しないと判断された場合（ステップＳ１１６においてＮＯの場合）には、制御装置１００は、現在のトルクオフセットの値を維持する（ステップＳ１２０）。
【００８１】
そして、制御装置１００は、決定した指令位置およびトルクオフセットをサーボドライバ２００へ出力する（ステップＳ１２２）。
【００８２】
制御装置１００は、アクチュエータ２の実位置に基づいて、予め指定された目標軌道の終点に到達したか否かを判断する（ステップＳ１２４）。予め指定された目標軌道の終点に到達していなければ（ステップＳ１２４においてＮＯの場合）、次の制御周期の到来まで待ち（ステップＳ１２６）、ステップＳ１１２以下の処理を繰返す。
【００８３】
これに対して、予め指定された目標軌道の終点に到達していれば（ステップＳ１２４においてＹＥＳの場合）、処理を終了する。
【００８４】
以上のような処理手順によって、本実施の形態に従う位置制御が実現される。
＜Ｆ．機能構成＞
次に、本実施の形態に従う位置制御を実現するための制御装置１００の機能構成について説明する。
【００８５】
図８は、本実施の形態に従う制御装置１００において動摩擦特性の同定処理が実行されるときの機能構成を示す模式図である。図９は、本実施の形態に従う制御装置１００において制御対象の位置制御が実行されるときの機能構成を示す模式図である。
【００８６】
図８および図９を参照して、本実施の形態に従う制御装置１００は、その機能構成として、動摩擦特性同定モジュール１５０と、指令値補正制御モジュール１７０と、軌道生成モジュール１８０とを含む。各モジュールは、制御装置１００のプロセッサ１０２が制御プログラムを実行することで実現されてもよい。
【００８７】
動摩擦特性同定モジュール１５０は、主として、制御対象の動摩擦特性を取得するための動摩擦特性の同定処理を実行する。指令値補正制御モジュール１７０および軌道生成モジュール１８０は、主として、動摩擦特性情報１６０に基づいて制御対象の位置制御を行なうための制御処理を実行する。
【００８８】
図８を参照して、動摩擦特性の同定処理において、動摩擦特性同定モジュール１５０は、指令位置およびトルクオフセットについての同定入力を生成して、サーボドライバ２００へ出力する。動摩擦特性同定モジュール１５０は、サーボドライバ２００からの実位置などの情報を含む動作結果を取得する。
【００８９】
そして、動摩擦特性同定モジュール１５０は、同定入力および動作結果に基づいて制御対象の動摩擦特性を同定し、その結果を動摩擦特性情報１６０として出力する。動摩擦特性情報１６０は、正方向および逆方向の動摩擦トルクならびに各動摩擦トルクの補償に係る先行切換時間を含む。
【００９０】
図９を参照して、制御対象の位置制御において、軌道生成モジュール１８０は、予め指定された目標軌道の情報を有しており、アクチュエータ２の実位置が目標軌道に沿って変化するように、指令位置を順次出力する。
【００９１】
指令値補正制御モジュール１７０は、動摩擦特性情報１６０を参照して、各制御周期におけるトルクオフセットの値を決定する。すなわち、指令値補正制御モジュール１７０は、先行切換時間だけ先の時刻において目標軌道において制御対象の移動方向の反転が生じるか否かを判断する。より具体的には、指令値補正制御モジュール１７０は、予め指定された目標軌道に基づいて、当該取得した先行切換時間だけ先の時刻において、指令速度についての速度方向の反転が発生するか否かを判断し、切換えが発生する場合には、トルクオフセットの値を更新する。そして、指令値補正制御モジュール１７０は、指令位置およびトルクオフセットをサーボドライバ２００へ出力する。
【００９２】
＜Ｇ．動摩擦特性の同定処理の詳細＞
次に、動摩擦特性の同定処理の詳細について説明する。以下に説明する処理の詳細は、図７のステップＳ１０２〜Ｓ１０８の処理、および、図８に示す動摩擦特性同定モジュール１５０の機能に対応する。
【００９３】
動摩擦特性の同定処理においては、制御対象の動摩擦トルクを補償するための特性値として、実速度が正方向である場合に制御対象に生じる動摩擦トルク（正方向のトルクオフセットに相当）、および、実速度が逆方向である場合に制御対象に生じる動摩擦トルク（逆方向のトルクオフセットに相当）が決定される。
【００９４】
併せて、動摩擦特性の同定処理においては、指令速度の速度方向の反転時点に対して、正方向／逆方向の動摩擦トルクを補償するためのトルクオフセットの切換えをどの程度先行させるのかを示す先行切換時間が決定される。これは、指令位置から算出される指令速度の正逆（指令速度の移動方向）が切換わるタイミングでトルクオフセット（動摩擦トルクの補償量）を更新するのでは遅すぎるので、指令速度の正逆が切換わるタイミングより、ある程度前もってトルクオフセットの値を切換えるようにする。
【００９５】
典型的には、動摩擦トルクの補償に係る先行切換時間（動摩擦補償トルクの切換えを先行させる時間）は、指令速度の更新周期である制御周期を基準として、その整数倍で規定されてもよい。すなわち、制御装置１００から与えられる指令値の更新周期の整数（例えば、０，１，２，・・・）倍として、先行切換時間が規定されてもよい。
【００９６】
（ｇ１：正方向／逆方向の動摩擦トルク）
次に、正方向の動摩擦トルクおよび／逆方向の動摩擦トルクを測定する方法について説明する。
【００９７】
正方向に動作している場合に制御対象に生じる動摩擦トルクを測定するために、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、サーボドライバ２００に対して、正方向に低速の一定速度で動作するように、指令位置（または、指令速度）を与える。実速度が指令値に対して十分に整定した状態での実トルクを測定して、正方向の動摩擦トルクとして決定される。例えば、低速での動作とは、例えば、数分の１ｍｍ／秒〜数ｍｍ／秒が用いられる。
【００９８】
また、逆方向に動作している場合に制御対象に生じる動摩擦トルクを測定するために、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、サーボドライバ２００に対して、逆方向に低速の一定速度で動作するように、指令位置（または、指令速度）を与える。実速度が指令値に対して十分に整定した状態での実トルクを測定して、逆方向の動摩擦トルクとして決定される。例えば、低速での動作とは、例えば、−数分の１ｍｍ／秒〜−数ｍｍ／秒が用いられる。
【００９９】
このように、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、ドライブ装置（サーボドライバ２００）に指令値としての第１の指令を与えるとともに、制御対象が当該第１の指令に従うのに必要なトルクを決定する機能を有している。この機能の具体的な処理として、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、制御対象を正方向（第１の方向）に予め定められた速度で移動させるための指令と、制御対象を逆方向（第１の方向とは異なる第２の方向）に予め定められた速度で移動させるための指令とを、第１の指令としてサーボドライバ２００に与える。併せて、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、正方向に移動するときに必要な実トルクに基づいて動摩擦トルク（第１の方向における第１の補償量）を決定するとともに、逆方向に移動するときに必要な実トルクに基づいて逆方向の動摩擦トルク（第２の方向における第２の補償量）を決定する。
【０１００】
上述したように、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、第１の指令に対する制御対象からの実トルクが整定している状態において、正方向の動摩擦トルク（第１の補償量）または逆方向の動摩擦トルク（第２の補償量）を決定する。
【０１０１】
但し、十分に整定した状態に代えて、指令値を与えて予め定められた時間の経過後としてもよい。
【０１０２】
実トルクの測定については、測定誤差や測定ノイズの影響を低減するために、複数の制御周期にわたる測定値の平均値を用いるようにしてもよい。つまり、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、実トルクについての複数回の測定結果を平均化することで、正方向の動摩擦トルク（第１の補償量）または逆方向の動摩擦トルク（第２の補償量）を決定する。
【０１０３】
なお、サーボドライバ２００は、図３に示す制御ループに係る制御ゲインを有しており、これらの制御ゲインについては、公知の自動チューニング技術などを用いて、予めチューニングしておくことが好ましい。但し、このチューニング結果は、最適化されている必要は必ずしもない。
【０１０４】
図１０は、本実施の形態に従う動摩擦特性の同定処理による正方向／逆方向の動摩擦トルクの測定例を示すグラフである。図１０においては、（Ａ）制御対象の位置についての時間変化、（Ｂ）制御対象の速度についての時間変化、および、（Ｃ）制御対象のトルクについての時間変化をそれぞれ示す。
【０１０５】
図１０（Ａ）に示すように、同定入力として、指令速度が正方向および逆方向になるように指令位置を変化させる。すなわち、指令位置を正方向に変化させた後、逆方向に変化させることで、図１０（Ｂ）に示すように、指令速度が正方向側のある値を維持した後、逆方向側のある値を維持する。指令速度が正方向および逆方向のそれぞれである場合の実トルクの値から正方向の動摩擦トルクおよび逆方向の動摩擦トルクが決定される。
【０１０６】
（ｇ２：動摩擦トルクの補償に係る先行切換時間）
次に、動摩擦トルクの補償に係る先行切換時間を測定する方法について説明する。
【０１０７】
上述したような正方向／逆方向の動摩擦トルクの測定後、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、サーボドライバ２００に対して、制御対象を停止させるように、指令位置（または、指令速度）を与える。制御対象が停止する前に、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、ある程度大きなトルクオフセット（動摩擦補償トルク）をサーボドライバ２００に与える。
【０１０８】
このようなトルクオフセットにより、制御対象のフィードバック値（実位置）は指令位置に向けて減少した後、増加に転じることになる。すなわち、制御装置１００からサーボドライバ２００に与えられる指令位置（または、指令速度）は、制御対象の停止を指示するものであるが、ある程度大きなトルクオフセットは制御対象の移動を指示することになるので、制御対象は、停止するのではなく、移動速度を再上昇させる。
【０１０９】
ある程度大きなトルクオフセットをサーボドライバ２００に与えた後、制御対象からのフィードバック値（実位置）が増加に転じるまでの時間を動摩擦トルクの補償に係る先行切換時間として決定する。上述したように、動摩擦トルクの補償に係る先行切換時間が指令速度の更新周期である制御周期を基準として規定される場合には、ある程度大きなトルクオフセットをサーボドライバ２００に与えた後、制御対象からのフィードバック値（実位置）が増加に転じるまでに何周期分の制御周期が現れるかが測定される。
【０１１０】
なお。移動速度の変化（一旦降下した後に、再上昇する）が現れた後に、トルクオフセットはゼロに戻される。
【０１１１】
動摩擦トルクの補償に係る先行切換時間は、トルクオフセット（すなわち、動摩擦補償トルク）をサーボドライバ２００に与えたときに、制御対象において実際に補償の効果が生じるまでに要する時間を意味する。つまり、動摩擦トルクの補償に係る先行切換時間は、制御装置１００から見た、サーボドライバ２００および制御対象を含む系に存在する一種の「遅れ時間」を意味する。
【０１１２】
このように、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、ドライブ装置（サーボドライバ２００）に指令値としての第２の指令および補償指令としての第３の指令を与えるとともに、制御対象からの応答に基づいて、先行切換時間を決定する機能を有している。この機能の具体的な処理の一例として、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、制御対象が逆方向（第２の方向）に移動している状態から静止した状態に変化させるための指令をサーボドライバ２００に与えるとともに、制御対象の移動方向を正方向（第１の方向）へ反転させるような指令をトルクオフセット（補償指令）としてサーボドライバ２００に与える。併せて、制御装置１００（図８の動摩擦特性同定モジュール１５０）は、サーボドライバ２００へトルクオフセット（補償指令）を与え始めてから制御対象から実位置の時間変化（すなわち、実速度）（フィードバック値の時間変化）の方向が反転するまでに要する時間に基づいて、先行切換時間を決定する。
【０１１３】
なお、図１０に示すように、制御対象が逆方向に移動している状態から静止した状態に変化させる指令を与えた場合には、制御対象の移動方向を正方向へ反転させるようなトルクオフセット（補償指令）を与えることで、先行切換時間を決定できるが、これに限らず、移動方向が異なる方向であってもよい。すなわち、制御対象が正方向に移動している状態から静止した状態に変化させる指令を与えるとともに、制御対象の移動方向を逆方向へ反転させるようなトルクオフセット（補償指令）を与えることで、先行切換時間を決定してもよい。この場合、いずれか一方のみの測定によって得られた先行切換時間を共通の先行切換時間として用いるようにしてもよいし、両方向でそれぞれ測定された２つの先行切換時間をそれぞれの方向に関連付けて選択的に用いるようにしてもよい。
【０１１４】
上述のある程度大きなトルクオフセットとは、定格に近い値を採用することが好ましい。例えば、ある程度大きなトルクオフセットとして１００％（定格値）を採用する場合には、それぞれの方向に生じる動摩擦で相殺される分を考慮して、以下のように決定できる。
【０１１５】
トルクオフセット（％）＝１００％＋正方向の動摩擦トルク−逆方向の動摩擦トルク（％）
例えば、正方向の動摩擦トルクが１２．４％であり、逆方向の動摩擦トルクが−１２．６％である場合には、１２．４−（−１２．６）＋１００＝１２５％がある程度大きなトルクオフセットとして設定される。なお、必ずしも定格値（１００％）を採用する必要はなく、例えば、定格値の７０％〜１２５％程度を採用してもよい。
【０１１６】
このように、正方向の動摩擦トルク（第１の補償量）および逆方向の動摩擦トルク（第２の補償量）に基づいて、トルクオフセット（補償指令）を決定してもよい。
【０１１７】
なお、制御対象からのフィードバック値（実位置）が減少から増加に転じる位置の判定は、測定ノイズなどの影響を受ける場合がある。そのため、フィードバック値をフィルタリングするなどして、フィードバック値の増加量が予め定められた値以下である場合には、無視するようにしてもよい。あるいは、複数回の測定により得られた結果から外れ値などを除外した上で、平均化して決定してもよい。
【０１１８】
図１１は、本実施の形態に従う動摩擦特性の同定処理による動摩擦トルクの補償に係る先行切換時間の測定例を示すグラフである。図１１の左側に示すグラフを拡大したものを右側に示す。図１１においては、（Ａ）制御対象の位置についての時間変化、（Ｂ）トルクオフセットについての時間変化、および、（Ｃ）制御対象のトルクについての時間変化をそれぞれ示す。
【０１１９】
制御対象の実位置が指令位置に到達する前（すなわち、実速度がゼロになる前）に、図１１（Ｂ）に示すように、トルクオフセットを所定値に設定する。その後、図１１（Ａ）に示すように、あるタイミングで制御対象の実位置が減少から増加に反転したとする。トルクオフセットを変更したタイミングから実位置の反転ポイントまでの時間が先行切換時間として決定される。なお、反転ポイントが特定されると、トルクオフセットはゼロにリセットされる。
【０１２０】
＜Ｈ．制御対象の位置制御の詳細＞
上述したような動摩擦特性の同定処理において取得された、正方向／逆方向の動摩擦トルク、および、動摩擦トルクの補償に係る先行切換時間に基づいて、以下のように制御対象の位置制御が実行される。以下に説明する制御対象の位置制御に係る処理の詳細は、図７のステップＳ１１０〜Ｓ１２６の処理、ならびに、図８に示す指令値補正制御モジュール１７０および軌道生成モジュール１８０の機能に対応する。
【０１２１】
基本的には、制御装置１００の軌道生成モジュール１８０（図９）により生成される軌道に応じた指令位置が制御周期毎に算出されるとともに、各制御周期において、先行切換時間だけ将来において速度方向の反転が発生するか否かが判断される。そして、先行切換時間だけ将来において速度方向の反転が発生すると判断された場合には、サーボドライバ２００に与えるトルクオフセットの値を正方向／逆方向の動摩擦トルクのいずれかに切換える。
【０１２２】
すなわち、制御装置１００（指令値補正制御モジュール１７０）は、予め定められた目標軌道に基づいてサーボドライバ２００に与える指令値を順次更新する機能と、サーボドライバ２００に与えられる指令値に応じて、サーボドライバ２００に与える補償指令（トルクオフセット）を順次更新する機能とを有している。
【０１２３】
より具体的には、現制御周期から先行切換時間だけ先の制御周期において、指令速度の速度方向の反転が発生するか否か、および、その発生した切換えの内容に応じて、トルクオフセットの値は、以下のように決定される。
【０１２４】
（１）指令速度の速度方向の反転が発生しない場合：トルクオフセットの値はそのまま維持
（２）指令速度の速度方向が正方向からゼロになる場合：トルクオフセットの値はそのまま維持
（３）指令速度の速度方向が逆方向からゼロになる場合：トルクオフセットの値はそのまま維持
（４）指令速度の速度方向がゼロまたは逆方向から正方向へ反転する場合：正方向の動摩擦トルクをトルクオフセットとして設定
（５）指令速度の速度方向がゼロまたは正方向から逆方向へ反転する場合：逆方向の動摩擦トルクをトルクオフセットとして設定
このように、制御装置１００（指令値補正制御モジュール１７０）は、先行切換時間だけ先の時刻において、指令値が制御対象の移動方向を反転させるものである場合に、補償指令（トルクオフセット）の値を、正方向の動摩擦トルク（第１の補償量）および逆方向の動摩擦トルク（第２の補償量）に基づいて当該反転後の移動方向に応じた値に更新する（上述の（４）および（５）に相当）。なお、制御装置１００（指令値補正制御モジュール１７０）は、先行切換時間だけ先の時刻において、指令値が制御対象の移動を停止させるものである場合には、補償指令（トルクオフセット）の値を維持する（上述の（２）および（３）に相当）。
【０１２５】
図１２は、本実施の形態に従う制御対象の位置制御の測定例を示すグラフである。図１２の左側に示すグラフを拡大したものを右側に示す。図１２においては、（Ａ）制御対象の位置についての時間変化、（Ｂ）位置偏差についての時間変化、（Ｃ）トルクオフセットについての時間変化、および、（Ｄ）制御対象のトルクについての時間変化をそれぞれ示す。
【０１２６】
図１２（Ａ）に示すように、指令位置が増加から減少に転じる位置、すなわち、指令速度が正方向から逆方向に反転する位置（反転ポイント）が存在する場合に、その反転ポイントから先行切換時間だけ前のポイントにおいて、トルクオフセットの値が変更される。図１２（Ｃ）に示す例では、正方向の動摩擦トルク（正値）から逆方向の動摩擦トルク（負値）に切換えられていることがわかる。このトルクオフセットの値の変更に伴って、図１２（Ｄ）に示すように、反転ポイントに到達する前の段階から実トルクの減少速度が早まっていることがわかる。
【０１２７】
このようなトルクオフセットの値を切換えるような制御を採用することで、図１２（Ａ）に示すように、制御対象の実位置が指令位置に十分に追従していることがわかる。なお、図１２（Ａ）の拡大前のグラフ（左側のグラフ）上においては、指令位置と実位置との間に実質的な差はないので、図面の見やすさの観点から、両者を同一のものとして描いている。後述する、図１３（Ａ）および図１５（Ａ）の拡大前のグラフ、ならびに、図１４の（Ａ）についても同様である。
【０１２８】
なお、サーボドライバ２００の制御ループ内にトルクフィルタ（図３参照）が実装されている場合には、制御装置１００から与えるトルクオフセットがそのまま機能せず、トルクフィルタ後の値に基づいて指令値が算出されることになる。つまり、サーボドライバ２００内のトルクフィルタによって動摩擦補償の効果が低減してしまう可能性がある。
【０１２９】
このような場合、動摩擦補償の効果を低減させないように、制御装置１００から出力されるトルクオフセットに対して、トルクフィルタが有するフィルタ特性の逆特性を付与してもよい。
【０１３０】
図１３は、本実施の形態に従う制御対象の位置制御の別の測定例を示すグラフである。図１３の左側に示すグラフを拡大したものを右側に示す。図１３においては、（Ａ）制御対象の位置についての時間変化、（Ｂ）位置偏差についての時間変化、（Ｃ）トルクオフセットについての時間変化、および、（Ｄ）制御対象のトルクについての時間変化をそれぞれ示す。
【０１３１】
図１３（Ａ）に示すように、指令位置が増加から減少に転じる位置、すなわち、指令速度が正方向から逆方向に反転する位置（反転ポイント）が存在する場合に、その反転ポイントから先行切換時間だけ前のポイントにおいて、トルクオフセットの値が変更される。図１３（Ｃ）に示す例では、正方向の動摩擦トルク（正値）から逆方向の動摩擦トルク（負値）に切換えられている。この際、トルクフィルタのフィルタ特性の逆特性が付与されるため、トルクオフセットには、切換タイミングにおいては、実際の逆方向の動摩擦トルク（負値）より小さな値が設定される。そして、時間経過とともに、逆方向の動摩擦トルク（負値）の本来の値に戻るような時間変化が与えられる。
【０１３２】
トルクオフセットの値を図１３（Ｃ）に示すように変化させることで、動摩擦補償の効果を発揮させることができる。この結果、図１３（Ｂ）に示すように、反転ポイントの後、位置偏差が小さくなる方向に変化していることがわかる。
【０１３３】
このように、サーボドライバ２００が、制御装置１００からの補償指令（トルクオフセット）に基づいて補正された制御量にフィルタをかけて制御対象に与えるようなトルクフィルタ（図３に示すトルクフィルタ２２０）を有している場合には、制御装置１００（指令値補正制御モジュール１７０）は、トルクフィルタがもつ特性の逆特性を反映して、サーボドライバ２００に与える補償指令（トルクオフセット）を更新するようにしてもよい。
【０１３４】
このようなトルクフィルタの逆特性を反映することで、本来の動摩擦補償の効果を発揮させることができる。
【０１３５】
＜Ｉ．効果例＞
（ｉ１：本実施の形態に従う位置制御による効果）
次に、本実施の形態に従う位置制御の効果の一例について説明する。
【０１３６】
図１４は、本実施の形態に従う位置制御において動摩擦トルクの補償に係る測定例を示すグラフである。図１４において、ケース１およびケース２は比較例であり、ケース１は、動摩擦補償トルクの補償を適用していない場合を示し、ケース２は、動摩擦補償トルクの補償を適用するものの、先行切換時間＝０とした場合を示す。一方、ケース３は、実際に動摩擦特性の同定処理を行なって得られた先行切換時間を用いた場合を示す。本測定例においては、動摩擦特性の同定処理によって、先行切換時間＝制御周期×６倍と算出された。
【０１３７】
図１４の各ケースにおいては、（Ａ）制御対象の位置についての時間変化、（Ｂ）位置偏差についての時間変化、（Ｃ）トルクオフセットについての時間変化、（Ｄ）制御対象のトルクについての時間変化をそれぞれ示す。
【０１３８】
なお、位置制御の目的は、制御対象のフィードバック値（実位置）を目標軌道に可能な限り一致させることであり、その性能は、制御中に発生する位置偏差の大きさに基づいて評価できる。すなわち、位置偏差が小さいほど、位置制御の性能が高いといえる。
【０１３９】
まず、図１４のケース１（動摩擦補償なし）においては、指令位置が増加から減少に転じる（すなわち、速度方向の反転）直後において、逆方向に大きなピークをもつ位置偏差が生じていることがわかる。これに対して、図１４のケース２（先行切換時間＝０）においては、ケース１において生じていた位置偏差のピークが抑制されており、先行切換時間を用いなくても一定程度の動摩擦補償による効果が得られることがわかる。
【０１４０】
さらに、ケース３（同定処理によって決定された先行切換時間）においては、ケース１において生じていた位置偏差がほぼ生じていないことがわかる。
【０１４１】
このように、ケース１〜ケース３を比較することで、先行切換時間を用いて、トルクオフセットを先行して切換えることで、位置制御の精度を高められることがわかる。さらに、本実施の形態に従う同定処理を用いて、制御対象に応じた先行切換時間を決定することで、指令速度の速度方向が反転したタイミングに生じる、動摩擦に起因する外乱の影響を抑制して、位置偏差を小さく維持できることがわかる。
【０１４２】
このように、制御対象の動摩擦特性を取得するための動摩擦特性の同定処理と、当該取得された動摩擦特性に基づいて制御対象の位置制御を行なうための制御処理とを用いることで、位置制御系において動摩擦起因の誤差を低減できる。
【０１４３】
（ｉ２：比較例）
次に、比較例として、一般的な、動摩擦補償機能を有するサーボドライバを用いた場合の制御性能の一例について説明する。
【０１４４】
例えば、図３に示すサーボドライバ２００の制御系において、トルクオフセットを制御装置１００から与えるのではなく、サーボドライバ２００内で動摩擦を補償する機能が実行される。このような構成においては、典型的には、指令速度が正方向／逆方向のいずれかに応じて、トルクオフセットの値が切換えられる。そのため、制御装置１００において指令値補正制御を実装する場合に、サーボドライバ２００側の動摩擦を補償する機能を関与させると、指定される目標軌道によっては不具合が生じる場合がある。
【０１４５】
図１５は、本実施の形態に従う位置制御との比較例を示すグラフである。図１５の左側に示すグラフを拡大したものを右側に示す。図１５においては、（Ａ）制御対象の位置についての時間変化、（Ｂ）制御対象の速度についての時間変化、および、（Ｃ）制御対象のトルクについての時間変化をそれぞれ示す。
【０１４６】
図１５（Ａ）に示すように、制御装置１００の指令値補正制御によって、追従性を高めるために、補正後指令位置として、補正前の指令位置の停止位置を一旦越えてから戻る動きを出力することがある。このような場合、戻りのタイミングで動摩擦補償トルクの不要な切換えが発生し、それがトリガとなり、図１５（Ｂ）および図１５（Ｃ）に示すように、振動的な挙動を引き起こすことがある。
【０１４７】
本実施の形態に従う制御システム１においては、制御装置１００が指令値（指令位置および／または指令速度）に加えて、トルクオフセット（すなわち、動摩擦補償トルク）を決定するので、振動的な挙動が発生することがない。
【０１４８】
＜Ｊ．結論＞
本実施の形態によれば、制御装置１００からドライブ装置の一例であるサーボドライバ２００に対して、上述したような同定入力を指令値として与えることで、制御対象が正方向に移動する場合の動摩擦トルクの補償量である正方向トルクオフセット、および、制御対象が逆方向に移動する場合の動摩擦トルクの補償量である逆方向トルクオフセットをそれぞれ決定できる。また、制御装置１００からドライブ装置の一例であるサーボドライバ２００に対して、上述したような同定入力を指令値として与えることで、速度指令の変化タイミングに先行してトルクオフセットを設定または切換えるための先行切換時間についても決定できる。
【０１４９】
これらの決定されるトルクオフセットおよび先行切換時間は、制御対象の特性に応じて動的に決定される。これらの同定された制御対象の特徴量を用いて位置制御を行なうことで、動摩擦起因の誤差を低減して、目標軌道に対する軌跡精度を向上させることができる。したがって、動摩擦が相対的に大きなメカ機構が制御対象であっても、良好な軌跡精度を実現できる。
【０１５０】
また、上述したような同定処理は、自動的に実行されるので、位置制御に係るスキルが必要な調整などは不要であり、手間をかけることなく、位置制御の制御性能を高めることができる。
【０１５１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５２】
１  制御システム、２  アクチュエータ、４  ハウジング、６  ボールねじ、８  ナット、１０  サーボモータ、１２  エンコーダ、１００  制御装置、１０１  フィールドバス、１０２  プロセッサ、１０４  チップセット、１０６  メインメモリ、１０８  フラッシュメモリ、１１０  システムプログラム、１１２  ユーザプログラム、１１２Ａ  シーケンスプログラム、１１２Ｂ  モーションプログラム、１１６  外部ネットワークコントローラ、１１８  メモリカードインターフェイス、１２０  メモリカード、１２２  内部バスコントローラ、１２４  フィールドバスコントローラ、１２６  Ｉ／Ｏユニット、１５０  動摩擦特性同定モジュール、１６０  動摩擦特性情報、１７０  指令値補正制御モジュール、１８０  軌道生成モジュール、２００  サーボドライバ、２０２  コントローラ、２０４  ドライブ回路、２１０，２１４  差分演算部、２１２  位置制御部、２１６  速度制御部、２１８  加算部、２２０  トルクフィルタ、２２２  電流制御部、２２４  速度検出部。
【図１】
2018120399.tif 000003
【図２】
2018120399.tif 000004
【図３】
2018120399.tif 000005
【図４】
2018120399.tif 000006
【図５】
2018120399.tif 000007
【図６】
2018120399.tif 000008
【図７】
2018120399.tif 000009
【図８】
2018120399.tif 000010
【図９】
2018120399.tif 000011
【図１０】
2018120399.tif 000012
【図１１】
2018120399.tif 000013
【図１２】
2018120399.tif 000014
【図１３】
2018120399.tif 000015
【図１４】
2018120399.tif 000016
【図１５】
2018120399.tif 000017