(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-11-28
(45)【発行日】2022-12-06
(54)【発明の名称】ガントリ駆動システム、モータ制御システム、制御方法、及び制御プログラム
(51)【国際特許分類】
H02P 5/52 20160101AFI20221129BHJP
G05D 3/00 20060101ALI20221129BHJP
H02P 5/46 20060101ALI20221129BHJP
【FI】
H02P5/52 A
G05D3/00 Q
H02P5/46 F
(21)【出願番号】P 2021124470
(22)【出願日】2021-07-29
【審査請求日】2022-04-21
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【氏名又は名称】松尾 茂樹
(74)【代理人】
【識別番号】100212026
【氏名又は名称】中村 真生
(72)【発明者】
【氏名】古賀 稔
(72)【発明者】
【氏名】河原 翔太
(72)【発明者】
【氏名】伊藤 純市
【審査官】佐藤 彰洋
(56)【参考文献】
【文献】特開2005-332191(JP,A)
【文献】特開2000-347740(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H02P 5/00-5/753
G05D 3/00-3/20
G05B 19/18-19/416
(57)【特許請求の範囲】
【請求項1】
駆動対象物の第1の軸を駆動する第1のモータと、
前記駆動対象物の第2の軸を駆動する第2のモータと、
前記第1及び第2のモータを制御するモータ制御システムと、を備え、
前記モータ制御システムは、前記第1及び第2の軸において軸間の位置偏差を縮小しつつ前記駆動対象物の位置を個別に制御する第1の制御モードと、前記第1及び第2の軸の検出位置に基づいて、前記駆動対象物の位置を制御すると共に前記駆動対象物の回転状態を制御する第2の制御モードとを切り替えるモード切替部を有し、
前記モータ制御システムは、前記モード切替部により切り替えられたモードに従って、前記第1及び第2のモータを制御する、ガントリ駆動システム。
【請求項2】
前記モード切替部は、前記駆動対象物の剛性の程度を示す評価値に基づいて、前記第1の制御モードと前記第2の制御モードとを切り替える、請求項1に記載のガントリ駆動システム。
【請求項3】
前記モード切替部は、前記評価値が所定の閾値を超える場合に前記第1の制御モードに切り替え、前記評価値が前記閾値を下回る場合に前記第2の制御モードに切り替える、請求項2に記載のガントリ駆動システム。
【請求項4】
前記モータ制御システムは、
前記第1及び第2の軸の検出位置をテスト目標位置に追従させるように前記第1及び第2のモータを制御する初期設定制御を実行するテスト制御部と、
前記初期設定制御が実行されている間に得られた前記軸間の位置偏差と、当該軸間の位置偏差が得られたときの前記第1及び第2のモータそれぞれへの推力を示す指令の差とに基づいて、前記評価値を算出する剛性評価部と、を更に有する、請求項2又は3に記載のガントリ駆動システム。
【請求項5】
前記モータ制御システムは、前記第1のモータに接続された第1の制御装置と、前記第2のモータに接続された第2の制御装置とを有し、
前記第1及び第2の制御装置は、互いに通信可能に接続されており、
前記第1の制御モードにおいて、前記第1の制御装置が、前記第1の軸の検出位置に基づいて前記第1のモータへの指令を生成し、前記第2の制御装置が、前記第2の軸の検出位置に基づいて前記第2のモータへの指令を生成し、
前記第1の制御モードにおいて、前記第1及び第2の制御装置の少なくとも一方が、前記軸間の位置偏差に基づいて前記第1及び第2のモータへの指令の補償値を生成し、
前記第2の制御モードにおいて、前記第1の制御装置が、前記第1及び第2の軸の検出位置に基づいて前記第1及び第2のモータへの指令を生成し、前記第2の制御装置が、前記軸間の位置偏差に基づいて前記第1及び第2のモータへの指令を生成する、請求項1~4のいずれか一項に記載のガントリ駆動システム。
【請求項6】
前記第1の制御装置は、
前記第1の制御モードにおいて、前記第1の軸の検出位置及び前記軸間の位置偏差に基づいて、前記第1のモータへの第1の指令を生成する第1の個別制御部と、
前記第2の制御モードにおいて、前記第1及び第2の軸の検出位置に基づいて、前記第1及び第2のモータへの並進推力指令を生成する第1の連携制御部と、を有し、
前記第2の制御装置は、
前記第1の制御モードにおいて、前記第2の軸の検出位置及び前記軸間の位置偏差に基づいて、前記第2のモータへの第2の指令を生成する第2の個別制御部と、
前記第2の制御モードにおいて、前記軸間の位置偏差に基づいて、前記第1及び第2のモータへの回転トルク指令を生成する第2の連携制御部と、を有する、請求項5に記載のガントリ駆動システム。
【請求項7】
前記第1の個別制御部は、前記第1の指令に基づいて前記第1のモータを動作させ、
前記第1の連携制御部は、前記並進推力指令を前記第2の制御装置に出力し、前記並進推力指令と前記第2の連携制御部から得られる前記回転トルク指令とに基づいて、前記第1のモータを動作させ、
前記第2の個別制御部は、前記第2の指令に基づいて前記第2のモータを動作させ、
前記第2の連携制御部は、前記回転トルク指令を前記第1の制御装置に出力し、前記回転トルク指令と前記第1の連携制御部から得られる前記並進推力指令とに基づいて、前記第2のモータを動作させる、請求項6に記載のガントリ駆動システム。
【請求項8】
前記第1及び第2の制御装置は、所定の周期ごとに、前記駆動対象物が目標位置に近づき前記軸間の位置偏差が縮小するように、前記第1及び第2のモータを制御し、
前記第1の個別制御部は、前記所定の周期ごとに、前記第1の指令を生成することと、当該第1の指令に基づいて前記第1のモータを動作させることと、を実行し、
前記第2の個別制御部は、前記所定の周期ごとに、前記第2の指令を生成することと、当該第2の指令に基づいて前記第2のモータを動作させることと、を実行する、請求項6又は7に記載のガントリ駆動システム。
【請求項9】
前記第1及び第2の制御装置は、所定の周期ごとに、前記駆動対象物が目標位置に近づき前記軸間の位置偏差が縮小するように、前記第1及び第2のモータを制御し、
前記第1の連携制御部は、前記所定の周期ごとに、前記並進推力指令を生成及び出力することと、1つ前の周期で生成された前記並進推力指令及び前記回転トルク指令に基づいて前記第1のモータを動作させることと、を実行し、
前記第2の連携制御部は、前記所定の周期ごとに、前記回転トルク指令を生成及び出力することと、1つ前の周期で生成された前記並進推力指令及び前記回転トルク指令に基づいて前記第2のモータを動作させることと、を実行する、請求項6又は7に記載のガントリ駆動システム。
【請求項10】
前記第1の個別制御部は、前記駆動対象物の目標位置を示す位置指令を取得し、前記第1の軸の検出位置と前記位置指令との間の偏差が縮小し、前記軸間の位置偏差が縮小するように前記第1の指令を生成し、
前記第2の個別制御部は、前記位置指令を取得し、前記第2の軸の検出位置と前記位置指令との間の偏差が縮小し、前記軸間の位置偏差が縮小するように前記第2の指令を生成する、請求項6~9のいずれか一項に記載のガントリ駆動システム。
【請求項11】
前記第1の連携制御部は、前記駆動対象物の目標位置を示す位置指令を取得し、前記第1及び第2の軸の検出位置の平均値と前記位置指令との間の偏差が縮小するように前記並進推力指令を生成し、
前記第2の連携制御部は、前記軸間の位置偏差が縮小するように前記回転トルク指令を生成する、請求項6~10のいずれか一項に記載のガントリ駆動システム。
【請求項12】
駆動対象物の第1の軸を駆動する第1のモータと前記駆動対象物の前記第1の軸と平行な第2の軸を駆動する第2のモータとを制御する制御部と、
前記第1及び第2の軸において軸間の位置偏差を縮小しつつ前記駆動対象物の位置を個別に制御する第1の制御モードと、前記第1及び第2の軸の検出位置に基づいて、前記駆動対象物の位置を制御すると共に前記駆動対象物の回転状態を制御する第2の制御モードとを切り替えるモード切替部と、を備え、
前記制御部は、前記モード切替部により切り替えられたモードに従って、前記第1及び第2のモータを制御する、モータ制御システム。
【請求項13】
駆動対象物の第1の軸を駆動する第1のモータと、前記駆動対象物の前記第1の軸と平行な第2の軸を駆動する第2のモータとを制御することと、
前記第1及び第2の軸において軸間の位置偏差を縮小しつつ前記駆動対象物の位置を個別に制御する第1の制御モードと、前記第1及び第2の軸の検出位置に基づいて、前記駆動対象物の位置を制御すると共に前記駆動対象物の回転状態を制御する第2の制御モードとを切り替えることと、を含み、
前記第1及び第2のモータを制御することは、切り替えられたモードに従って、前記第1及び第2のモータを制御することを含む、制御方法。
【請求項14】
請求項13に記載の制御方法を装置に実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ガントリ駆動システム、モータ制御システム、制御方法、及び制御プログラムに関する。
【背景技術】
【0002】
特許文献1には、移動体の両端近傍の移動位置を検出する一対の位置検出器からの検出信号に基づいて移動体の両端近傍を駆動する一対の駆動手段を制御する制御装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、設定作業の簡素化に有用なガントリ駆動システム、モータ制御システム、制御方法、及び制御プログラムを提供する。
【課題を解決するための手段】
【0005】
本開示の一側面に係るガントリ駆動システムは、駆動対象物の第1の軸を駆動する第1のモータと、駆動対象物の第2の軸を駆動する第2のモータと、第1及び第2のモータを制御するモータ制御システムと、を備える。モータ制御システムは、第1及び第2の軸において軸間の位置偏差を縮小しつつ駆動対象物の位置を個別に制御する第1の制御モードと、第1及び第2の軸の検出位置に基づいて、駆動対象物の位置を制御すると共に駆動対象物の回転状態を制御する第2の制御モードとを切り替えるモード切替部を有する。モータ制御システムは、モード切替部により切り替えられたモードに従って、前記第1及び第2のモータを制御する。
【0006】
本開示の一側面に係るモータ制御システムは、駆動対象物の第1の軸を駆動する第1のモータと駆動対象物の第1の軸と平行な第2の軸を駆動する第2のモータとを制御する制御部と、第1及び第2の軸において軸間の位置偏差を縮小しつつ駆動対象物の位置を個別に制御する第1の制御モードと、第1及び第2の軸の検出位置に基づいて、駆動対象物の位置を制御すると共に駆動対象物の回転状態を制御する第2の制御モードとを切り替えるモード切替部と、を備える。制御部は、モード切替部により切り替えられたモードに従って、第1及び第2のモータを制御する。
【0007】
本開示の一側面に係る制御方法は、駆動対象物の第1の軸を駆動する第1のモータと、駆動対象物の第1の軸と平行な第2の軸を駆動する第2のモータとを制御することと、第1及び第2の軸において軸間の位置偏差を縮小しつつ駆動対象物の位置を個別に制御する第1の制御モードと、第1及び第2の軸の検出位置に基づいて、駆動対象物の位置を制御すると共に駆動対象物の回転状態を制御する第2の制御モードとを切り替えることと、を含む。第1及び第2のモータを制御することは、切り替えられたモードに従って、第1及び第2のモータを制御することを含む。
【発明の効果】
【0008】
本開示によれば、設定作業の簡素化に有用なガントリ駆動システム、モータ制御システム、制御方法、及び制御プログラムが提供される。
【図面の簡単な説明】
【0009】
【
図1】
図1は、ガントリ駆動システムの一例を示す模式図である。
【
図2】
図2は、ガントリ機構の運動方程式を説明するための模式図である。
【
図3】
図3は、モータ制御システムの機能構成の一例を示すブロック図である。
【
図4】
図4は、軸間補償制御モードにおける制御内容の一例を示す図である。
【
図5】
図5は、分離制御モードにおける制御内容の一例を示す図である。
【
図6】
図6は、モータ制御システムのハードウェア構成の一例を示すブロック図である。
【
図7】
図7は、軸間補償制御モードにおいて各制御装置が実行する一連の処理の一例を示すフローチャートである。
【
図8】
図8は、分離制御モードにおいて一方の制御装置が実行する一連の処理の一例を示すフローチャートである。
【
図9】
図9は、分離制御モードにおいて他方の制御装置が実行する一連の処理の一例を示すフローチャートである。
【
図10】
図10は、モードの切替方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、図面を参照して一実施形態について説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0011】
図1には、一実施形態に係るガントリ駆動システムが模式的に示されている。ガントリ駆動システム1は、所定の作業の少なくとも一部を自動実行するためのシステムである。ガントリ駆動システム1による所定の作業の具体例としては、基板への半導体部品のマウント、基板への半導体部品のはんだ付け、塗布作業、及び、半導体又は液晶の製造が挙げられる。ガントリ駆動システム1は、ガントリ機構10と、作業ツール14と、駆動システム20とを有する。
【0012】
ガントリ機構10は、駆動システム20によって駆動される対象物(駆動対象物)である。ガントリ機構10は、例えば、ワークWの上方に配置されており、ワークWの上方において所定の方向に移動(走行)するように構成されている。ガントリ機構10は、一つの方向に移動可能であってもよく、互いに交差する(例えば、直交する)2方向に移動可能であってもよい。
図1では、一つの方向に移動可能なガントリ機構10が例示されている。以下、ガントリ機構10が移動する一つの方向をY軸方向とし、そのY軸方向に垂直な方向をX軸方向とする。X軸方向及びY軸方向それぞれは、水平方向であってもよい。
【0013】
ガントリ機構10では、移動方向に直交する両端それぞれが駆動される。ガントリ機構10の両端に対して、互いに平行な2軸(平行な2つのライン)に沿う駆動力が付与されることで、ガントリ機構10が、Y軸方向に沿って往復移動する。以下では、上記平行な2軸(2つのライン)の一方を「Y1軸」と称し、他方を「Y2軸」と称する。ガントリ機構10は、例えば、可動部11A,11Bと、機械結合部12とを有する。
【0014】
可動部11Aは、Y1軸に沿って付与される駆動力によって、Y1軸に可動する部分(スライダ)である。可動部11Bは、Y2軸に沿って付与される駆動力によって、Y2軸に可動する部分(スライダ)である。ガントリ機構10は、可動部11AをY1軸に沿ってガイドするレール等のガイド部材(不図示)を含んでもよく、可動部11BをY2軸に沿ってガイドするレール等のガイド部材(不図示)を含んでもよい。
【0015】
機械結合部12は、Y1軸とY2軸とを機械的に結合する部分である。機械結合部12は、X軸方向に沿って延びるように棒状に形成されている。機械結合部12のX軸方向の一端が可動部11Aに接続され、機械結合部12のX軸方向の他端が可動部11Bに接続される。機械結合部12のX軸方向における長さは、作業対象のワークWのX軸方向における長さよりも長い。機械結合部12のX軸方向に垂直な断面は、四角形(例えば、長方形)であってもよい。機械結合部12の両端部それぞれに、可動部11A,11Bを介してY軸方向に平行なラインに沿って駆動力が付与される。
【0016】
作業ツール14は、ワークWに対して所定の作業を行うためのツールである。作業ツール14は、機械結合部12のX軸方向における略中央の側面に設けられていてもよい。
図1に示される例とは異なり、ガントリ機構10は、作業ツール14をX軸方向に沿って駆動する(往復移動させる)機構を含んでもよい。X軸方向に沿って作業ツール14を駆動する機構が、機械結合部12に設けられてもよい。ガントリ機構10は、X軸方向及びY軸方向に直交する方向に沿って作業ツール14を駆動する(往復移動させる)機構を含んでもよい。
【0017】
[ガントリ駆動システム]
駆動システム20は、ガントリ機構10を駆動するシステムである。駆動システム20は、例えば、ガントリ機構10におけるY1軸及びY2軸それぞれに駆動力を付与して、ガントリ機構10(の可動する部分)をY軸方向に沿って移動させる。駆動システム20は、モータ30Aと、モータ30Bと、モータ制御システム40とを備える。
【0018】
(モータ)
モータ30A(第1のモータ)は、ガントリ機構10のY1軸(第1の軸)を駆動する。モータ30Aは、ガントリ機構10の機械結合部12のX軸方向における一方の端部に駆動力を付与するように構成されている。モータ30Aは、例えば、リニアモータであり、その大部分がY1軸に沿って延びるように形成されている。モータ30Aには、機械結合部12の一方の端部の下面が可動部11Aを介して接続されている。モータ30Aは、可動部11AをY1軸に沿って往復移動させる。Y1軸において、機械結合部12の一方の端部の位置は、可動部11Aの位置に相関する。
【0019】
モータ30B(第2のモータ)は、ガントリ機構10のY2軸(第2の軸)を駆動する。モータ30Bは、ガントリ機構10の機械結合部12のX軸方向における他方の端部に駆動力を付与するように構成されている。モータ30Bは、例えば、リニアモータであり、その大部分がY2軸に沿って延びるように形成されている。モータ30Bには、機械結合部12の他方の端部の下面が可動部11Bを介して接続されている。モータ30Bは、可動部11BをY2軸に沿って往復移動させる。Y2軸において、機械結合部12の他方の端部の位置は、可動部11Bの位置に相関する。
【0020】
モータ30A及びモータ30Bは、互いに同様に構成された同種のモータであってもよい。モータ30A及びモータ30Bそれぞれは、駆動力を発生させる電動式の駆動源と、駆動対象である機械結合部12の端部のY軸方向における位置を検出する位置検出部とを含んでもよい。位置検出部は、例えば、リニアスケールである。モータ30A及びモータ30Bは、回転軸まわりの回転方向に駆動力を発生させるモータであってもよい。この場合、ガントリ機構10は、モータ30Aによる回転方向のエネルギーをY1軸に沿った運動に変換する機構(例えば、ボールねじ機構)を含んでもよく、モータ30Bによる回転方向のエネルギーをY2軸に沿った運動に変換する機構を含んでもよい。
【0021】
(モータ制御システム)
モータ制御システム40は、モータ30A及びモータ30Bを制御する制御システムである。モータ制御システム40は、例えば、複数のコンピュータ装置によって構成される。モータ制御システム40は、予め定められた動作プログラムに従って、モータ30A及びモータ30Bを制御してもよい。モータ制御システム40は、その制御モード(動作モード)が切替可能となるように構成されている。上記制御モードは、軸間補償制御モード(第1の制御モード)と、分離制御モード(第2の制御モード)とを含む。モータ制御システム40は、切り替えられた制御モードに従って、モータ30A及びモータ30Bを制御する。
【0022】
軸間補償制御モードでは、モータ制御システム40は、Y1軸及びY2軸において軸間の位置偏差を縮小しつつ機械結合部12の位置(両端それぞれの位置)を個別に制御するように、モータ30A及びモータ30Bを制御する。軸間の位置偏差とは、Y1軸での機械結合部12の検出位置と、Y2軸での機械結合部12の検出位置との間の偏差であり、以下、「軸間偏差Δy」と表記する。モータ制御システム40は、機械結合部12の両端それぞれの位置を同じタイミングで同じ目標位置に移動させようとする。しかしながら、モータ30A,30Bそれぞれの個体差、及び、モータ30A,30Bに含まれる部品、リニアスケール等の位置検出部の組み付け精度等に起因して軸間偏差Δyが生じ得る。
【0023】
モータ制御システム40は、機械結合部12の位置を個別に制御する際には、Y1軸での機械結合部12の検出位置が目標位置に近づくようにモータ30Aを制御し、Y2軸での機械結合部12の検出位置が目標位置に近づくようにモータ30Bを制御する。それぞれの位置制御において、軸間偏差Δyを縮小するための補償(補正)が行われる。
【0024】
分離制御モードでは、モータ制御システム40は、Y1軸の検出位置及びY2軸の検出位置に基づいて、機械結合部12の位置を制御すると共に機械結合部12の回転状態を制御するように、モータ30A及びモータ30Bを制御する。分離制御モードは、Y1軸及びY2軸での駆動力(駆動量)をまとめて制御する点で上記の軸間補償制御モードと異なる。分離制御モードにおいて、モータ制御システム40は、機械結合部12の並進方向(Y軸方向)における位置と、機械結合部12の回転状態(回転方向における角度)とに分離して、モータ30A及びモータ30Bを制御する。
【0025】
図2は、機械結合部12の並進位置の制御と、機械結合部12の回転状態の制御とを説明するための模式図である。
図2において、「Cg」は、X-Y平面における機械結合部12の重心を示しており、「L1」は、重心Cgと、モータ30Aからの駆動力F1が付与される位置との間の距離を示しており、「L2」は、重心Cgと、モータ30Bからの駆動力F2が付与される位置との間の距離を示している。機械結合部12の重量を「M」とし、X-Y平面に垂直であり、且つ重心Cgを通る軸線まわりに機械結合部12に発生するイナーシャを「Jz」としたときに、重心Cgにおける運動方程式は、以下の式(1)及び式(2)によって示される。
【数1】
【数2】
【0026】
式(1)は、機械結合部12の並進方向に関する運動方程式であり、式(2)は、機械結合部12の回転方向に関する運動方程式である。式(1)において、「Yg」は、下記の式(3)によって算出され、重心CgのY軸方向における位置を示す。式(3)において、「y1」は、モータ30Aから得られるY1軸での機械結合部12の検出位置であり、「y2」は、モータ30Bから得られるY2軸での機械結合部12の検出位置である。
【数3】
【0027】
式(2)において、「θ」は、機械結合部12の重心Cgまわりの回転角度を示しており、式(4)によって算出される。回転角度θの基準は、X軸方向に延びるラインである。すなわち、検出位置y1の値と検出位置y2の値とが互いに一致しているときに、回転角度θはゼロである。Y1軸とY2軸とにおいて、検出位置のずれは生じ得るが、機械的に連結されているので、回転角度θの値は小さい場合が多い。そのため、式(4)は、下記の式(5)のように近似することができる。
【数4】
【数5】
【0028】
モータ制御システム40は、分離制御モードにおいて、式(3)で示される位置Ygが目標位置に追従するように、モータ30A及びモータ30Bを制御すると共に、式(5)で示される回転角度θがゼロに近づくようにモータ30A及びモータ30Bを制御してもよい。上述した軸間補償制御モードと分離制御モードとの詳細については後述する。
【0029】
図1に戻り、モータ制御システム40は、制御装置50Aと、制御装置50Bと、上位コントローラ60とを有してもよい。制御装置50A(第1の制御装置)は、モータ30Aに接続されている。制御装置50Aは、モータ30Aによる機械結合部12への駆動力(駆動量)を調節可能である。制御装置50B(第2の制御装置)は、モータ30Bに接続されている。制御装置50Bは、モータ30Bによる機械結合部12への駆動力(駆動量)を調節可能である。制御装置50A,50Bそれぞれは、アンプ又はサーボアンプとも称される。
【0030】
制御装置50A及び制御装置50Bは、互いに通信可能に接続されている。制御装置50A及び制御装置50Bは、モータ30A及びモータ30Bを制御する制御部を構成する。制御装置50A及び制御装置50Bは、同期してモータ30A及びモータ30Bを制御する。制御装置50A及び制御装置50Bは、ガントリ機構10の機械結合部12が目標位置に追従するように、モータ30A及びモータ30Bを制御する。制御装置50A及び制御装置50Bは、所定の周期ごとに、機械結合部12が目標位置に近づき、且つ軸間偏差Δyが縮小するように、モータ30A及びモータ30Bを制御する。モータ制御システム40の制御モードによって、制御装置50A及び制御装置50Bの連携の仕方、及び各モータに対する制御方法が異なる。
【0031】
上位コントローラ60は、制御装置50A及び制御装置50Bそれぞれと通信可能に接続されている上位装置である。上位コントローラ60は、駆動対象物であるガントリ機構10の目標位置を示す位置指令を、制御装置50A及び制御装置50Bの両方、又は制御装置50A及び制御装置50Bの少なくとも一方に出力する。制御装置50A及び制御装置50Bの両方に位置指令を出力する場合、上位コントローラ60は、同じタイミング(同じ周期)において、同じ目標位置を示す位置指令を制御装置50A及び制御装置50Bそれぞれに出力する。
【0032】
制御装置50A、制御装置50B、及び上位コントローラ60は、例えば、互いに別体に構成されている。上記軸間補償制御モードでは、制御装置50Aが、Y1軸の検出位置y1に基づいてモータ30Aへの指令を生成し、制御装置50Bが、Y2軸の検出位置y2に基づいてモータ30Bへの指令を生成する。また、上記軸間補償制御モードでは、制御装置50A及び制御装置50Bの少なくとも一方が、上記軸間偏差Δyに基づいてモータ30A及びモータ30Bへの指令の補償値を生成(演算)する。例えば、制御装置50Aが軸間偏差Δyに基づきモータ30Aへの指令の補償値を生成し、制御装置50Bが軸間偏差Δyに基づきモータ30Bへの指令の補償値を生成する。
【0033】
上記分離制御モードでは、制御装置50Aが、検出位置y1及び検出位置y2に基づいてモータ30A及びモータ30Bへの指令を生成し、制御装置50Bが、軸間偏差Δyに基づいてモータ30A及びモータ30Bへの指令を生成する。以下では、制御装置50A、制御装置50B、及び上位コントローラ60それぞれについて、その一例を詳細に説明する。
【0034】
制御装置50Aは、上位コントローラ60からの位置指令に基づいて、モータ30Aから機械結合部12への駆動量を調節する。制御装置50Aは、
図3に示されるように、機能上の構成(以下、「機能モジュール」という。)として、例えば、モード切替部71と、位置取得部72と、個別制御部74と、連携制御部76とを有する。これらの各機能モジュールが実行する処理は、制御装置50Aが実行する処理に相当する。
【0035】
モード切替部71は、上記軸間補償制御モードと、上記分離制御モードとを切り替える。モード切替部71は、制御装置50Aの動作モードについて、軸間補償制御モードと、分離制御モードとのいずれか一方を選択する。制御装置50Aは、モード切替部71により切り替えられた(選択された)制御モードに従って、モータ30Aからの機械結合部12への駆動力を調節する。モード切替部71は、例えば、上位コントローラ60からの制御モードを示す指令に基づいて、いずれかの制御モードに切り替える。
【0036】
ガントリ機構10の剛性によって、発生する軸間偏差Δy(ねじれ)の大きさ、及び、許容できる制御ゲインの大きさが変化する。ガントリ機構10の剛性は、ガントリ機構10全体(可動する部分全体)における位置の変化のしにくさ(し易さ)の程度を意味する。ガントリ機構10の剛性が高いと、ガントリ機構10のY1軸及びY2軸それぞれにおける位置が変化し難く、ガントリ機構10の剛性が低いと、ガントリ機構10のY1軸及びY2軸それぞれにおける位置が変化し易い。いずれの制御モードで制御を実行するのが適しているか、ガントリ機構10の剛性に基づき決定することが考えられる。モード切替部71は、ガントリ機構10の剛性の程度を示す評価値に基づいて、軸間補償制御モードと分離制御モードとを切り替えてもよい。
【0037】
一例では、モード切替部71は、上記評価値が所定の閾値を超える場合に軸間補償制御モードに切り替え(を選択し)、上記評価値がその閾値を下回る場合に分離制御モードに切り替える(を選択する)。上記閾値は、例えば、モータ制御システム40に予め記憶されており、過去に得られた上記評価値と各制御モードでの実行結果との間の関係を検証した上で定められている。
【0038】
位置取得部72は、Y1軸での機械結合部12の検出位置y1を示す情報をモータ30Aから取得する。位置取得部72は、所定の周期ごとに、検出位置y1の値をモータ30Aの位置検出部から取得してもよい。位置取得部72は、Y2軸での機械結合部12の検出位置y2を示す情報を取得する。位置取得部72は、所定の周期ごとに、検出位置y2の値を制御装置50Bから取得してもよい。
【0039】
個別制御部74(第1の個別制御部)は、モード切替部71によって軸間補償制御モードに切り替えられた場合に、Y1軸の検出位置y1及び軸間偏差Δyに基づいて、モータ30Aへのトルク指令TcA(第1の指令)を生成する。個別制御部74は、機械結合部12のY軸方向における目標位置を示す位置指令ytを取得し、検出位置y1と位置指令yt(目標位置)との間の偏差が縮小し、軸間偏差Δyが縮小するように上記トルク指令TcAを生成する。
【0040】
個別制御部74は、モータ30Aへのトルク指令TcAに基づいて、モータ30Aを動作させる。個別制御部74は、所定の周期ごとに、トルク指令TcAを生成することと、そのトルク指令TcAに基づいてモータ30Aを動作させることとを実行してもよい。トルク指令TcAに基づきモータ30Aを動作させるとは、トルク指令TcAに応じた駆動力が機械結合部12のY1軸に付与されるように、モータ30Aへの駆動電力(例えば、駆動電流)の値を調節することを意味する。
【0041】
連携制御部76(第1の連携制御部)は、モード切替部71によって分離制御モードに切り替えられた場合に、Y1軸での検出位置y1及びY2軸での検出位置y2に基づいて、モータ30A及びモータ30Bの双方への並進推力指令を生成する。並進推力指令は、機械結合部12のY軸方向における位置(例えば、重心CgのY軸方向における位置)を制御するための指令である。
【0042】
連携制御部76は、機械結合部12のY軸方向における目標位置を示す位置指令ytを取得し、検出位置y1及び検出位置y2の平均値(上記位置Yg)と位置指令ytとの間の偏差が縮小するように並進推力指令を生成してもよい。連携制御部76は、上記並進推力指令を制御装置50Bに出力し、並進推力指令と制御装置50Bから得られる回転トルク指令とに基づいて、モータ30Aを動作させる。制御装置50Bから得られる回転トルク指令の詳細は、後述する。
【0043】
連携制御部76は、並進推力指令と回転トルク指令とに基づいて、モータ30Aへの合成トルク指令Tc1を生成する。連携制御部76は、合成トルク指令Tc1に応じた駆動力が機械結合部12のY1軸に付与されるように、モータ30Aへの駆動電力(例えば、駆動電流)の値を調節する。連携制御部76は、所定の周期ごとに、並進推力指令を生成及び出力することと、1つ前の周期で生成した並進推力指令と回転トルク指令とに基づいてモータ30Aを動作させることと、を実行してもよい。以上のように、軸間補償制御モードと、分離制御モードとの間では、モータ30Aへのトルク指令の生成方法(演算方法)が異なっている。
【0044】
制御装置50Bは、制御装置50Aと同期して、上位コントローラ60からの位置指令ytに基づいて、モータ30Bから機械結合部12への駆動量を調節する。制御装置50Bは、機能モジュールとして、例えば、モード切替部81と、位置取得部82と、個別制御部84と、連携制御部86と、を有する。これらの各機能モジュールが実行する処理は、制御装置50Bが実行する処理に相当する。
【0045】
モード切替部81は、上記軸間補償制御モードと、上記分離制御モードとに切り替える。モード切替部81は、制御装置50Bの動作モードについて、軸間補償制御モードと、分離制御モードとのいずれか一方を選択する。制御装置50Bは、モード切替部81により切り替えられた(選択された)制御モードに従って、モータ30Bからの機械結合部12への駆動量を調節する。制御装置50Bは、例えば、上位コントローラ60からの制御モードを示す指令に基づいて、いずれかの制御モードに切り替える。制御装置50Bは、制御装置50A(モード切替部71)からの情報に基づき、制御装置50Aで設定されている制御モードと同じモードに切り替えてもよい。
【0046】
位置取得部82は、Y2軸での機械結合部12の検出位置y2を示す情報をモータ30Bから取得する。位置取得部82は、所定の周期ごとに、検出位置y2の値をモータ30Bの位置検出部から取得してもよい。位置取得部82は、Y1軸での機械結合部12の検出位置y1を示す情報を取得する。位置取得部82は、所定の周期ごとに、検出位置y1の値を制御装置50Aから取得してもよい。
【0047】
個別制御部84(第2の個別制御部)は、モード切替部81によって軸間補償制御モードに切り替えられた場合に、Y2軸の検出位置y2及び軸間偏差Δyに基づいて、モータ30Bへのトルク指令TcB(第2の指令)を生成する。個別制御部84は、機械結合部12のY軸方向における目標位置を示す位置指令ytを取得し、検出位置y2と位置指令yt(目標位置)との間の偏差が縮小し、軸間偏差Δyが縮小するように上記トルク指令TcBを生成する。
【0048】
個別制御部84は、モータ30Aへのトルク指令TcBに基づいて、モータ30Bを動作させる。個別制御部84は、所定の周期ごとに、トルク指令TcBの指令を生成することと、そのトルク指令TcBに基づいてモータ30Bを動作させることと、を実行してもよい。個別制御部84は、トルク指令TcBに応じた駆動力が機械結合部12のY2軸に付与されるように、モータ30Bへの駆動電力(例えば、駆動電流)の値を調節する。
【0049】
連携制御部86(第2の連携制御部)は、モード切替部81によって分離制御モードに切り替えられた場合に、軸間偏差Δyに基づいて、モータ30A及びモータ30Bの双方への回転トルク指令を生成する。回転トルク指令は、機械結合部12の回転状態を制御するための指令である。連携制御部86は、軸間偏差Δyが縮小するように回転トルク指令を生成する。軸間偏差Δyが縮小することで、上記回転角度θがゼロに近づく。制御装置50Aの連携制御部76と異なり、連携制御部86は、目標位置を示す位置指令ytを取得しない。
【0050】
連携制御部86は、上記回転トルク指令を制御装置50Aに出力し、回転トルク指令と制御装置50A(連携制御部76)から得られる並進推力指令とに基づいて、モータ30Bを動作させる。連携制御部86は、並進推力指令と回転トルク指令とに基づいて、モータ30Bへの合成トルク指令Tc2を生成する。連携制御部86は、合成トルク指令Tc2に応じた駆動力が機械結合部12のY2軸に付与されるように、モータ30Bへの駆動電力(例えば、駆動電流)の値を調節する。
【0051】
連携制御部86は、所定の周期ごとに、回転トルク指令を生成及び出力することと、1つ前の周期で生成された回転トルク指令と並進推力指令とに基づいてモータ30Bを動作させることとを実行してもよい。以上のように、軸間補償制御モードと、分離制御モードとの間では、モータ30Bへのトルク指令の生成方法(演算方法)が異なっている。
【0052】
2つの制御モードのいずれであっても、制御装置50Aが、モータ30Aへの駆動電力の調節及び出力を行い、制御装置50Bが、モータ30Bへの駆動電力の調節及び出力を行う。軸間補償制御モードでは、制御装置50AがY1軸での位置制御を行い、制御装置50BがY2軸での位置制御を行う。制御装置50A及び制御装置50Bが行う位置制御それぞれにおいて、軸間偏差Δyを縮小するための補償値が加味される。
【0053】
図4は、軸間補償制御モードに切り替えられた場合でのデータの入出力関係の一例を示す。制御装置50Aでは、位置取得部72に対して、モータ30Aからの検出位置y1とモータ30Bからの検出位置y2とが入力される。位置取得部72は、検出位置y1と検出位置y2とから、軸間偏差Δy(=y1-y2)を演算する。個別制御部74に対して、位置指令ytと検出位置y1とが入力される。個別制御部74は、位置指令ytと検出位置y1とに基づいて、機械結合部12のY1軸での位置を位置指令ytに追従させるための位置速度制御を実行する。
【0054】
個別制御部74は、例えば、位置速度制御において、位置指令ytと検出位置y1との間の位置偏差を算出し、その位置偏差に基づき(例えば、比例演算により)速度指令を生成する。そして、個別制御部74は、生成した速度指令と、検出位置y1から得られる速度検出値との間の速度偏差を算出し、その速度偏差に基づき(例えば、比例・積分演算により)推力指令FcAを生成する。
【0055】
個別制御部74には、軸間偏差Δyも入力される。個別制御部74は、軸間偏差Δyが縮小するように推力指令の補償値Co(補正値)を算出する。個別制御部74は、速度偏差に基づき演算した推力指令FcAと補償値Coとに対して、所定のフィルタ条件に従った演算を施すことで上述のトルク指令TcAを生成する。個別制御部74は、トルク指令TcAに応じた駆動電流IAをモータ30Aに出力して、モータ30Aを動作させる。これにより、トルク指令TcAに応じた駆動力が機械結合部12のY1軸に付与される。
【0056】
制御装置50Bでは、位置取得部82に対して、モータ30Bからの検出位置y2とモータ30Aからの検出位置y1とが入力される。位置取得部82は、検出位置y1と検出位置y2とから、軸間偏差Δyを演算する。個別制御部84に対して、個別制御部74が取得した指令と同じ位置指令ytと、検出位置y2とが入力される。個別制御部84は、位置指令ytと検出位置y2とに基づいて、Y2軸での機械結合部12の位置を位置指令ytに追従させるための位置速度制御を実行する。
【0057】
個別制御部84は、例えば、位置速度制御において、位置指令ytと検出位置y2との間の位置偏差を算出し、その位置偏差に基づき(例えば、比例演算により)速度指令を生成する。そして、個別制御部84は、生成した速度指令と、検出位置y2から得られる速度検出値との間の速度偏差を算出し、その速度偏差に基づき(例えば、比例・積分演算により)推力指令FcBを生成する。
【0058】
個別制御部84には、軸間偏差Δyも入力される。個別制御部84は、軸間偏差Δyが縮小するように推力指令の補償値Co(補正値)を算出する。算出されるこの補償値Coは、個別制御部74によって算出される補償値Coと同じ値である。個別制御部84は、速度偏差に基づき演算した推力指令FcBと補償値Coとに対して、所定のフィルタ条件に従った演算を施すことで上述のトルク指令TcBを生成する。
図4に示される例のように、制御装置50Aの個別制御部74及び制御装置50Bの個別制御部84の両方が、推力指令の補償値Coを算出してもよく、この例とは異なり、個別制御部74及び個別制御部84のいずれか一方が、推力指令の補償値Coを算出してもよい。
【0059】
トルク指令TcAとトルク指令TcBとの間では、補償値Coの値は同じであるが、補償値Coの符号が互いに反転するように上記フィルタ条件が設定されていてもよい。個別制御部84は、トルク指令TcBに応じた駆動電流IBをモータ30Bに出力して、モータ30Bを動作させる。これにより、トルク指令TcBに応じた駆動力が機械結合部12のY2軸に付与される。
【0060】
一方、分離制御モードでは、制御装置50Aが上記並進推力指令を生成し、制御装置50A及び制御装置50Bが並進推力指令に基づき対応するモータへの駆動電力をそれぞれ調節するので、制御装置50Aが(実質的に)機械結合部12のY軸方向における位置を制御する。分離制御モードでは、制御装置50Bが上記回転トルク指令を生成し、制御装置50A及び制御装置50Bが回転トルク指令に基づき対応するモータへの駆動電力をそれぞれ調節するので、制御装置50Bが(実質的に)機械結合部12の回転角度θを制御する。
【0061】
図5は、分離制御モードに切り替えられた場合でのデータの入出力関係の一例を示す。制御装置50Aの位置取得部72に対して、モータ30Aからの検出位置y1とモータ30Bからの検出位置y2とが入力される。位置取得部72は、検出位置y1と検出位置y2とから、機械結合部12の重心CgのY軸方向における位置Yg[=(y1+y2)/2]を演算する。連携制御部76に対して、位置指令ytと位置Ygとが入力される。連携制御部76は、位置指令ytと位置Ygとに基づいて、機械結合部12の重心位置を位置指令ytに追従させるための位置速度制御を実行する。
【0062】
連携制御部76は、位置速度制御において、位置指令ytと位置Ygとの間の並進偏差を算出し、その並進偏差に基づき(例えば、比例演算により)速度指令を生成する。そして、連携制御部76は、生成した速度指令と、位置Ygから得られる速度検出値との間の速度偏差を算出し、その速度偏差に基づき(例えば、比例・積分演算により)Y軸方向における推力指令を示す並進推力指令Trcを生成する。連携制御部76は、並進推力指令Trcを1/2倍した値を制御装置50Bの連携制御部86に出力する。
【0063】
制御装置50Bの位置取得部82に対して、モータ30Bからの検出位置y2とモータ30Aからの検出位置y1とが入力される。位置取得部82は、検出位置y1と検出位置y2とから軸間偏差Δyを演算する。連携制御部86に対して、軸間偏差Δyが入力される。連携制御部86は、軸間偏差Δyに基づいて、機械結合部12の重心を通る鉛直な軸線まわりの機械結合部12の回転角度θをゼロに追従させるための位置速度制御を実行する。
【0064】
連携制御部86は、位置速度制御において、軸間偏差Δyから式(5)に基づき回転角度θを算出する。連携制御部86は、回転角度θの値に基づき(例えば、比例演算により)回転方向での速度指令を生成する。そして、連携制御部86は、生成した速度指令と、回転角度θから得られる回転方向での速度検出値との間の速度偏差を算出し、その速度偏差に基づき(例えば、比例・積分演算により)回転方向における推力指令を示す回転トルク指令Rocを生成する。連携制御部86は、回転トルク指令Rocの値を制御装置50Aの連携制御部76に出力する。
【0065】
連携制御部76は、並進推力指令Trcの半分の値と回転トルク指令Rocとに対して、所定のフィルタ条件に従った演算を施すことで上述の合成トルク指令Tc1を生成する。連携制御部76は、合成トルク指令Tc1に応じた駆動電流IAをモータ30Aに出力して、モータ30Aを動作させる。これにより、合成トルク指令Tc1に応じた駆動力が機械結合部12のY1軸に付与される。
【0066】
連携制御部86は、並進推力指令Trcの半分の値と回転トルク指令Rocとに対して、所定のフィルタ条件に従った演算を施すことで上述の合成トルク指令Tc2を生成する。合成トルク指令Tc1の生成と合成トルク指令Tc2の生成とでは、回転トルク指令Rocの符号が反転するように、上記フィルタ条件が定められていてもよい。連携制御部86は、合成トルク指令Tc2に応じた駆動電流IBをモータ30Bに出力して、モータ30Bを動作させる。これにより、合成トルク指令Tc2に応じた駆動力が機械結合部12のY2軸に付与される。
【0067】
図3に示されるように、上位コントローラ60は、機能モジュールとして、例えば、位置指令出力部62と、テスト制御部64と、剛性評価部66とを有する。これらの各機能モジュールが実行する処理は、上位コントローラ60が実行する処理に相当する。
【0068】
位置指令出力部62は、機械結合部12のY軸方向における目標位置を示す位置指令ytを、制御装置50A及び制御装置50Bそれぞれ出力するか、又は、制御装置50Bに位置指令ytを出力せずに制御装置50Aに出力する。位置指令出力部62は、所定の周期ごとに、制御装置50A及び制御装置50Bそれぞれ、又は制御装置50Aに位置指令tyを出力してもよい。位置指令出力部62は、予め定められ動作プログラムに従って、周期ごとに、制御装置50A及び制御装置50Bそれぞれ、又は制御装置50Aに位置指令に出力してもよい。位置指令出力部62は、他のシステムからの指令等に応じて、周期ごとに、制御装置50A及び制御装置50Bの両方又は制御装置50Aに位置指令ytを出力してもよい。
【0069】
テスト制御部64は、制御モードを切り替える際の指標を得るために、初期設定制御を実行する。テスト制御部64は、初期設定制御において、制御装置50A及び制御装置50Bに以下の動作を実行させる。初期設定制御では、例えば、制御装置50Aが、検出位置y1をテスト用の目標位置(テスト目標位置)に追従させるようにモータ30Aを制御し、制御装置50Bが、検出位置y2をテスト用の目標位置に追従させるようにモータ30Bを制御する。初期設定制御では、軸間偏差Δyを縮小させるための補償は行われない。
【0070】
テスト制御部64は、所定の設定期間において、初期設定制御を制御装置50A及び制御装置50Bに実行させてもよい。テスト用の目標位置は、設定期間において変動してもよい。テスト制御部64は、初期設定制御を実行する間において、周期ごとに、軸間偏差Δy、第1推力指令、及び第2推力指令を蓄積(記憶)する。第1推力指令は、制御装置50Aによって、検出位置y1をテスト用の目標位置に近づけるように演算された指令であり、上記推力指令FcAと同様に演算されて得られる。第2推力指令は、制御装置50Bによって、検出位置y2をテスト用の目標位置に近づけるように演算された指令であり、上記推力指令FcBと同様に演算されて得られる。
【0071】
剛性評価部66は、初期設定制御が実行されている間に得られた軸間偏差Δyと、当該軸間偏差Δyが得られたときのモータ30A及びモータ30Bそれぞれへの推力指令の差とに基づいて、ガントリ機構10の剛性の程度を示す評価値(指標)を算出する。剛性評価部66は、軸間偏差Δyを、上記第1推力指令と上記第2推力指令との差で除算することで、上記評価値を算出してもよい。
【0072】
剛性評価部66は、周期ごとに、一つの周期における軸間偏差Δyを、その周期における第1推力指令及び第2推力指令の差で除算してもよい。剛性評価部66は、複数の周期それぞれにおいて軸間偏差Δyを推力指令の差で除算して得られた値の平均値を上記評価値として算出してもよい。上述したモード切替部71及びモード切替部81が、剛性評価部66による評価値に基づいて、制御モードを切り替えてもよい。なお、制御装置50A及び制御装置50Bの少なくとも一方が、剛性評価部66を有してもよい。
【0073】
図6に示されるように、制御装置50Aは、回路170を備える。回路170は、少なくとも1つのプロセッサ171と、メモリ172と、ストレージ173と、入出力ポート175と、ドライバ176と、通信ポート178とを含む。ストレージ173は、コンピュータによって読み取り可能な不揮発型の記憶媒体(例えばフラッシュメモリ)である。ストレージ173は、制御装置50Bと連携してモータ30Aを制御するためのプログラム及びデータを記憶する。メモリ172は、ストレージ173からロードしたプログラム及びプロセッサ171による演算結果等を一時的に記憶する。
【0074】
プロセッサ171は、メモリ172と協働して上記プログラムを実行することで、制御装置50Aの上記機能モジュールを構成する。入出力ポート175は、プロセッサ171からの指令に応じて、モータ30A(例えば、モータ30Aの位置検出部)との間で電気信号の入出力を行う。ドライバ176は、プロセッサ171からの指令に応じてモータ30Aに駆動電力(駆動電流)を出力する。通信ポート178は、プロセッサ171からの指令に応じて、上位コントローラ60との間及び制御装置50Bとの間で、無線、有線、又はネットワーク回線を介して通信を行う。
【0075】
制御装置50Bは、回路180を備える。回路180は、少なくとも1つのプロセッサ181と、メモリ182と、ストレージ183と、入出力ポート185と、ドライバ186と、通信ポート188とを含む。ストレージ183は、コンピュータによって読み取り可能な不揮発型の記憶媒体(例えばフラッシュメモリ)である。ストレージ183は、制御装置50Aと連携してモータ30Bを制御するためのプログラム及びデータを記憶する。メモリ182は、ストレージ183からロードしたプログラム及びプロセッサ181による演算結果等を一時的に記憶する。
【0076】
プロセッサ181は、メモリ182と協働して上記プログラムを実行することで、制御装置50Bの上記機能モジュールを構成する。入出力ポート185は、プロセッサ181からの指令に応じて、モータ30B(例えば、モータ30Bの位置検出部)との間で電気信号の入出力を行う。ドライバ186は、プロセッサ181からの指令に応じてモータ30Bに駆動電力(駆動電流)を出力する。通信ポート188は、プロセッサ181からの指令に応じて、上位コントローラ60との間及び制御装置50Aとの間で、無線、有線、又はネットワーク回線を介して通信を行う。
【0077】
上位コントローラ60は、回路160を備える。回路160は、少なくとも1つのプロセッサ161と、メモリ162と、ストレージ163と、通信ポート168とを含む。ストレージ163は、コンピュータによって読み取り可能な不揮発型の記憶媒体(例えばフラッシュメモリ)である。ストレージ163は、制御装置50A及び制御装置50Bを介してモータ30A及びモータ30Bを制御するためのプログラム及びデータを記憶する。メモリ162は、ストレージ163からロードしたプログラム及びプロセッサ161による演算結果等を一時的に記憶する。
【0078】
プロセッサ161は、メモリ162と協働して上記プログラムを実行することで、上位コントローラ60の上記機能モジュールを構成する。通信ポート168は、プロセッサ161からの指令に応じて、制御装置50Aとの間及び制御装置50Bとの間で、無線、有線、又はネットワーク回線を介して通信を行う。制御装置50A、制御装置50B、及び上位コントローラ60それぞれが備える回路は、必ずしもプログラムにより各機能を構成するものに限られない。いずれかの回路は、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。
【0079】
[制御方法]
続いて、モータ制御システム40が実行するモータ30A及びモータ30Bに対する制御の方法(制御方法)について、その一例を説明する。この制御方法は、少なくとも、モータ30Aとモータ30Bとを制御することと、軸間補償制御モードと分離制御モードととを切り替えることと、を含む。モータ30A及びモータ30Bを制御することは、切り替えられたモードに従って、モータ30A及びモータ30Bを制御することを含む。
【0080】
図7は、一つの周期において、軸間補償制御モードに切り替えられた場合にモータ制御システム40が実行する一連の処理の一例が示されている。以下、軸間補償制御モードでのモータ30A及びモータ30Bそれぞれに対する個別の制御について順に説明する。軸間補償制御モードが選択されている場合、モータ制御システム40は、所定の周期で、下記のステップS11~S16の一連の処理を繰り返す。ここで、現在の周期を「k」(kは、1以上の整数である。)で表し、k回目の周期で得られる値及び指令をそれぞれ「Y(k)」及び「指令(k)」のように示す。
【0081】
モータ30Aに対する制御では、モータ制御システム40が、最初にステップS11を実行する。ステップS11では、例えば、制御装置50Aの個別制御部74が、上位コントローラ60の位置指令出力部62から位置指令yt(k)を取得する。位置指令yt(k)の値は、前の周期で得られる位置指令yt(k-1)と同じ値であってもよく、異なる値であってもよい。
【0082】
次に、モータ制御システム40は、ステップS12を実行する。ステップS12では、例えば、制御装置50Aの位置取得部72が、モータ30Aから検出位置y1(k)を取得し、制御装置50Bから検出位置y2を取得する。制御装置50Bから制御装置50Aへの通信に要する時間に起因して、制御装置50Bから得られる検出位置y2は、現在の周期よりも1つ前の周期において、制御装置50Bの位置取得部82が取得した値(検出位置y2(k-1))であってもよい。位置取得部72は、1つの前の周期でのステップS12で取得した検出位置y1(k-1)と、ステップS12で得られた検出位置y2(k-1)との差分を、軸間偏差Δy(k-1)として演算してもよい。
【0083】
次に、モータ制御システム40は、ステップS13,S14を実行する。ステップS13では、例えば、個別制御部74が、ステップS11で得られた位置指令yt(k)と、ステップS12で得られた検出位置y1(k)との位置偏差を算出する。なお、個別制御部74は、ステップS11で得られた位置指令yt(k)と、1つ前の周期でのステップS12で得られた検出位置y1(k-1)との位置偏差を算出してもよい。そして、個別制御部74は、算出した位置偏差に基づいて、検出位置y1を位置指令ytに近づけるように推力指令FcAを生成する。ステップS14では、例えば、個別制御部74が、ステップS12で得られた軸間偏差Δy(k-1)に基づいて、軸間偏差Δyをゼロに近づけるように推力指令の補償値Coを算出する。
【0084】
次に、モータ制御システム40は、ステップS15,S16を実行する。ステップS15では、例えば、個別制御部74が、所定のフィルタ条件に従って、ステップS13で得られた推力指令をステップS14で得られた補償値で補正することで、トルク指令TcAを生成する。ステップS16では、例えば、個別制御部74が、ステップS15で得られたトルク指令TcAに応じた駆動電力(駆動電流)をモータ30Aに出力する。モータ制御システム40が、以上のステップS11~S16を繰り返すことで、軸間偏差Δyが縮小しつつ、機械結合部12のY1軸における検出位置y1が位置指令ytに追従する。
【0085】
軸間補償制御モードが選択されている場合、モータ制御システム40は、所定の周期で、下記のステップS21~S26の一連の処理を繰り返す。ステップS21~S26は、制御対象がモータ30Bである点を除き、上記ステップS11~S16と同様に実行される。モータ制御システム40は、最初にステップS21を実行する。ステップS21では、例えば、制御装置50Bの個別制御部84が、上位コントローラ60の位置指令出力部62から位置指令yt(k)を取得する。
【0086】
次に、モータ制御システム40は、ステップS22を実行する。ステップS22では、例えば、制御装置50Bの位置取得部82が、モータ30Bから検出位置y2(k)を取得し、制御装置50Aから検出位置y1(k-1)を取得する。位置取得部82は、ステップS22で得られた検出位置y1(k-1)と1つの前の周期でのステップS22で取得した検出位置y2(k-1)との差分を、軸間偏差Δy(k-1)として演算してもよい。
【0087】
次に、モータ制御システム40は、ステップS23,S24を実行する。ステップS23では、例えば、個別制御部84が、ステップS21で得られた位置指令ytと、当該周期のステップS22で得られた検出位置y2(k)又は1つ前の周期でのステップS22で得られた検出位置y2(k-1)と、の位置偏差を算出する。そして、個別制御部84は、算出した位置偏差に基づいて、検出位置y2を位置指令ytに近づけるように推力指令FcBを生成する。ステップS24では、例えば、個別制御部84が、ステップS22で得られた軸間偏差Δy(k-1)に基づいて、軸間偏差Δyをゼロに近づけるように推力指令の補償値Coを算出する。
【0088】
次に、モータ制御システム40は、ステップS25,S26を実行する。ステップS25では、例えば、個別制御部84が、所定のフィルタ条件に従って、ステップS23で得られた推力指令FcBをステップS24で得られた補償値Coで補正することで、トルク指令TcBを生成する。ステップS26では、例えば、個別制御部84が、ステップS25で得られたトルクTcBに応じた駆動電力(駆動電流)をモータ30Bに出力する。モータ制御システム40が、以上のステップS21~S26を繰り返すことで、軸間偏差Δyが縮小しつつ、機械結合部12のY2軸における検出位置y2が位置指令ytに追従する。
【0089】
図8は、分離制御モードに切り替えられた場合に、一つの周期において、並進方向での制御に関してモータ制御システム40が実行する一連の処理の一例が示されている。並進方向の制御では、モータ制御システム40が、最初にステップS31を実行する。ステップS31では、例えば、制御装置50Aの連携制御部76が、上位コントローラ60の位置指令出力部62から位置指令yt(k)を取得する。
【0090】
次に、モータ制御システム40は、ステップS32を実行する。ステップS32では、例えば、制御装置50Aの位置取得部72が、モータ30Aから検出位置y1(k)を取得し、制御装置50Bから検出位置y2(k-1)を取得する。位置取得部72は、検出位置y1(k-1)と検出位置y2(k-1)との平均値を、機械結合部12の重心Cgでの位置Yg(k-1)として算出してもよい。
【0091】
次に、モータ制御システム40は、ステップS33を実行する。ステップS33では、例えば、制御装置50Aの連携制御部76が、上記位置Yg(k-1)と位置指令y(k)との偏差を算出し、その偏差に基づいて、位置Ygを位置指令ytに近づけるように並進推力指令Trc(k)を生成する。そして、連携制御部76は、生成した並進推力指令Trc(k)の値を半分にしたうえで、その半分の値を制御装置50Bの連携制御部86に出力する。
【0092】
次に、モータ制御システム40は、ステップS34を実行する。ステップS34では、例えば、連携制御部76が、制御装置50Bの連携制御部86から回転トルク指令を取得する。制御装置50Bから制御装置50Aからの通信に要する時間に起因して、ステップS34で取得される回転トルク指令は、1つ前の周期において連携制御部86が生成した回転トルク指令Roc(k-1)であってもよい。
【0093】
次に、モータ制御システム40は、ステップS35,S36を実行する。ステップS35では、例えば、連携制御部76が、1つ前の周期でのステップS33で生成した並進推力指令Trc(k-1)の半分の値と、ステップS34で取得した回転トルク指令Roc(k-1)とに基づいて、合成トルク指令Tc1を生成する。並進推力指令Trc(k-1)の半分の値と回転トルク指令Roc(k-1)との合成は、所定のフィルタ条件に従って実行される。ステップS36では、例えば、連携制御部76が、ステップS35で得られた合成トルク指令Tc1に応じた駆動電力(駆動電流)をモータ30Aに出力する。
【0094】
図9は、分離制御モードに切り替えられた場合に、一つの周期において、回転方向での制御に関してモータ制御システム40が実行する一連の処理の一例が示されている。回転方向の制御では、モータ制御システム40が、最初にステップS42を実行する。ステップS42では、例えば、制御装置50Bの位置取得部82が、モータ30Bから検出位置y2(k)を取得し、制御装置50Aから検出位置y1(k-1)を取得する。位置取得部72は、検出位置y1(k-1)と検出位置y2(k-1)との差分を、軸間偏差Δy(k-1)として算出する。
【0095】
次に、モータ制御システム40は、ステップS43を実行する。ステップS43では、例えば、制御装置50Bの連携制御部86が、ステップS42で算出された軸間偏差Δy(k-1)に基づいて、軸間偏差Δyが縮小するように回転トルク指令Roc(k)を生成する。そして、連携制御部86は、生成した回転トルク指令Roc(k)を制御装置50Aの連携制御部76に出力する。
【0096】
次に、モータ制御システム40は、ステップS44を実行する。ステップS44では、例えば、連携制御部86が、制御装置50Aの連携制御部76から並進推力指令Trcの半分の値を取得する。制御装置50Aから制御装置50Bへの通信に要する時間に起因して、ステップS44で取得される並進推力指令の半分の値は、1つ前の周期において連携制御部76が生成した並進推力指令Trc(k-1)の半分の値であってもよい。
【0097】
次に、モータ制御システム40は、ステップS45,S46を実行する。ステップS45では、例えば、連携制御部86が、1つ前の周期でのステップS43で生成した回転トルク指令Roc(k-1)と、ステップS44で取得した並進推力指令Trc(k-1)の半分の値とに基づいて、合成トルク指令Tc2を生成する。回転トルク指令Roc(k-1)と並進推力指令Trc(k-1)の半分の値との合成は、所定のフィルタ条件に従って実行される。ステップS46では、例えば、連携制御部86が、ステップS45で得られた合成トルク指令Tc2に応じた駆動電力(駆動電流)をモータ30Bに出力する。
【0098】
モータ制御システム40が、以上のステップS31~S36及びステップS42~S46を繰り返すことで、軸間偏差Δyが縮小しつつ、機械結合部12の重心Cgでの位置Ygが位置指令ytに追従する。上述の例では、1つ前の周期で生成された回転トルク指令Roc(k-1)と並進推力指令Trc(k-1)とに基づいて、各モータへの駆動電力が調節される。回転トルク指令及び並進推力指令は、1つ前の周期で得られる検出位置y1(k-1)及び検出位置y2(k-1)に基づくので、現在周期では、2つ前の周期で得られる検出位置y1,y2に基づき、各モータへの駆動電力が調節される。
【0099】
図10は、上述した初期設定制御において、モータ制御システム40が実行する一連の処理の一例を示すフローチャートである。初期設定制御は、ガントリ駆動システム1によるワークWに対する実際の作業(製造段階での作業)が行われる前の準備段階において、モータ制御システム40の設定を行うために実行される。この初期設定制御では、例えば、上位コントローラ60のテスト制御部64が、下記のステップS71~S76を制御装置50Aに実行させ、下記のステップS81~S86をステップS71~S76に同期させて制御装置50Bに実行させる。
【0100】
ステップS71~S76とステップS81~S86とは、制御対象のモータが異なる点を除き、同様に実行されるので、以下では、ステップS71~S76を説明し、ステップS81~S86の詳細な説明を省略する。制御装置50Aは、所定の条件が満たされるまで、ステップS71~S76を繰り返す。ステップS71では、例えば、制御装置50Aが、上位コントローラ60からテスト用の位置指令yt0(テスト用の目標位置)を取得する。
【0101】
ステップS72では、例えば、制御装置50Aが、モータ30Aから検出位置y1を取得する。ステップS73では、例えば、制御装置50Aが、ステップS71で取得した位置指令yt0と、ステップS72で取得した検出位置y1との位置偏差を算出する。ステップS74では、例えば、制御装置50Aが、ステップS73で算出した位置偏差に基づいて、当該偏差を縮小するように推力指令を生成する。ステップS75では、例えば、制御装置50Aが、ステップS74で生成した推力指令に応じて、モータ30Aへの駆動電力を調節する。ステップS76では、例えば、制御装置50Aが、ステップS72で取得した検出位置y1と、ステップS74で生成した推力指令を上位コントローラ60に出力する。上位コントローラ60は、その周期を示す情報に対応付けたうえで検出位置y1及び推力指令を記憶する。
【0102】
各周期でのステップS76,S86が実行された後に、モータ制御システム40は、ステップS91を実行する。ステップS91では、例えば、テスト制御部64が、最初のステップS71,S81を開始してから、所定の設定時間が経過したか否かを判定する。所定の設定時間は、例えば、ガントリ機構10の剛性を評価できる程度まで、データが蓄積される時間に設定されている。ステップS91において、所定の設定時間が経過していないと判断された場合(ステップS91:NO)、制御装置50AがステップS71~S76を再度実行し、制御装置50BがステップS81~S86を再度実行する。
【0103】
ステップS91において、所定の設定時間が経過したと判断された場合(ステップS91:YES)、モータ制御システム40は、ステップS92を実行する。ステップS92では、例えば、剛性評価部66が、ステップS76,S86が繰り返されることで蓄積されたデータに基づいて、ガントリ機構10の剛性の程度を示す評価値を算出する。剛性評価部66は、周期ごとに、ステップS72,S82で得られる検出位置同士の差分(軸間偏差Δy)を、ステップS74,S84で得られる推力指令同士の差分で除算してもよい。そして、剛性評価部66は、除算した値の平均値、最小値、最大値、又は最頻値等の統計値を評価値として取得してもよい。
【0104】
次に、モータ制御システム40は、ステップS93を実行する。ステップS93では、例えば、モード切替部71が、ステップS92で取得された評価値に基づいて、実行する制御モードを、軸間補償制御モードか分離制御モードのいずれか一方に切り替える。モード切替部81は、モード切替部71による切替結果を取得することで、実行する制御モードを、軸間補償制御モードか分離制御モードのいずれか一方に切り替えてもよい。以上により、準備段階での設定が終了し、以降、実際の製造段階において、モータ制御システム40は、切り替えられた制御モードに従って、モータ30A及びモータ30Bを制御する。
【0105】
(変形例)
図7~
図10それぞれにおいて説明した一連の処理は一例であり、適宜変更可能である。いずれかの一連の処理において、モータ制御システム40は、一のステップと次のステップとを並列に実行してもよく、上述した例とは異なる順序で各ステップを実行してもよい。モータ制御システム40は、いずれかのステップを省略してもよく、いずれかのステップにおいて上述の例とは異なる処理を実行してもよい。
【0106】
上述の初期設定制御以外の方法で、モータ制御システム40は、ガントリ機構10の剛性の程度を示す評価値を取得してもよい。モータ制御システム40は、例えば、他の装置で評価された上記評価値を、その装置から取得してもよく、評価値を示すユーザ入力によって上記評価値を取得してもよい。上述の例とは異なり、上位コントローラ60が、モード切替部を有し、上位コントローラ60のモード切替部の切替結果に従って、モード切替部71及びモード切替部81が制御モードを切り替えてもよい。
【0107】
モータ制御システム40は、ガントリ機構10の剛性の程度を示す評価値に基づく切替とは別の方法により、制御モードを切り替えてもよい。モータ制御システム40は、例えば、制御モードの指定を示すユーザ入力によって、制御モードを切り替えてもよい。モータ制御システム40は、ガントリ駆動システム1による実際の作業段階において、機械結合部12の走行状態(例えば、加速中であるか否か)に応じて、制御モードを切り替えてもよい。
【0108】
制御装置50Bの個別制御部84は、軸間偏差Δyに基づく推進指令の補償値を算出しない場合に、制御装置50Aの個別制御部74による補償値の算出結果を取得してもよい。制御装置50Aの個別制御部74は、軸間偏差Δyに基づく推進指令の補償値を算出しない場合に、制御装置50Bの個別制御部84による補償値の算出結果を取得してもよい。制御装置50Aがモータ30Bに接続されていてもよく、制御装置50Bがモータ30Aに接続されていてもよい。制御装置50Aと制御装置50Bとは、同種の制御装置であってもよく、互いに同じ機能を実現できるように構成されてもよい。この場合、モータ30Aに接続された制御装置が制御装置50Aとして機能し、モータ30Bに接続された制御装置が制御装置50Bとして機能してもよい。
【0109】
モータ制御システム40は、制御装置50A及び制御装置50Bに代えて、制御装置50A及び制御装置50Bの双方の機能を有する一つの制御装置(制御部)を備えてもよい。モータ制御システム40(制御部)において、上述の例とは異なり、制御装置50A、制御装置50B、及び上位コントローラ60が一体に構成されていてもよい。制御装置50A、制御装置50B、及び上位コントローラ60が有する機能モジュールを構成する一つのプログラム(制御プログラム)が一つの記憶媒体に記憶されてもよい。
【0110】
[実施形態の効果]
以上に説明した駆動システム20は、ガントリ機構10(機械結合部12)のY1軸を駆動するモータ30Aと、ガントリ機構10のY2軸を駆動するモータ30Bと、モータ30A,30Bを制御するモータ制御システム40と、を備える。モータ制御システム40は、Y1軸及びY2軸において軸間偏差Δyを縮小しつつガントリ機構10の位置を個別に制御する軸間補償制御モードと、Y1軸及びY2軸の検出位置に基づいて、ガントリ機構10の位置を制御すると共にガントリ機構10の回転状態を制御する分離制御モードとを切り替えるモード切替部71,81を有する。モータ制御システム40は、モード切替部71,81により切り替えられたモードに従って、モータ30A,30Bを制御する。
【0111】
軸間補償制御モード及び分離制御モードでは、例えば、制御時の制御ゲインの大きさ、及び、軸間偏差Δyの抑制の程度が互いに異なる。ガントリ駆動システム1は、2つの制御モードのいずれかでモータ30A及びモータ30Bに対する制御を実行できる。そのため、ガントリ機構10の特性に応じて、いずれかの制御モードで各モータを制御できる。ガントリ機構10は実際に動作させて、その特性を把握できる場合が多いので、上記構成では、駆動対象であるガントリ機構10の特性に応じて、それに合わせた制御を実行できる制御システムを準備する手間を省くことができる。従って、設定作業の簡素化に有用である。
【0112】
モード切替部71,81は、ガントリ機構10の剛性の程度を示す評価値に基づいて、軸間補償制御モードと分離制御モードとを切り替えてもよい。ガントリ機構10の機械的な特性に応じて、許容できる制御ゲインが異なる場合がある。上記評価値に基づき、制御モードを切り替えることで、ガントリ機構10の機械的な特性に応じた制御モードでモータを制御することができる。従って、制御の安定性の有用である。
【0113】
モード切替部71,81は、上記評価値が所定の閾値を超える場合に軸間補償制御モードに切り替え、上記評価値が閾値を下回る場合に分離制御モードに切り替えてもよい。分離制御モードでは、回転トルク指令それぞれがモータ30A,30Bからの駆動力にそれぞれ反映されて、ガントリ機構10の回転状態が制御されるので、軸間偏差Δyをより縮小できる。軸間補償制御モードでは、位置制御のための指令に補償値が加味されて、駆動力がモータに出力されるので、軸間偏差Δyを縮小できる程度が小さい傾向がある。上記評価値と閾値との比較により、ガントリ機構10の剛性に適した制御モードで、モータ30A,30Bの制御を実行することができる。
【0114】
モータ制御システム40は、Y1軸の検出位置y1及びY2軸の検出位置y2をテスト目標位置に追従させるようにモータ30A,30Bを制御する初期設定制御を実行するテスト制御部64と、初期設定制御が実行されている間に得られた軸間偏差Δyと、当該軸間偏差Δyが得られたときのモータ30A,30Bそれぞれへの推力を示す指令の差とに基づいて、上記評価値を算出する剛性評価部66と、を更に有してもよい。例えば、ガントリ駆動システム1の準備段階において、作業者等が、試行錯誤又は経験に基づき、実際に利用するガントリ機構10に適した制御モードを選択することも考えられる。この場合、作業者等は、ガントリ機構10における種々の状態量を観測して判断する必要があり、労力が大きく、また、最適な判断を行うには作業者等に経験が必要となる。上記構成では、モータ制御システム40による自動での制御モードの選択ができる。そのため、作業者等の準備段階での労力を軽減でき、また、経験が浅い作業者等でも簡易に最適な選択ができる。従って、設定作業の簡素化に更に有用である。
【0115】
モータ制御システム40は、モータ30Aに接続された制御装置50Aと、モータ30Bに接続された制御装置50Bとを有してもよい。制御装置50A及び制御装置50Bは、互いに通信可能に接続されていてもよい。軸間補償制御モードにおいて、制御装置50Aが、Y1軸の検出位置y1に基づいてモータ30Aへの指令を生成し、制御装置50Bが、Y2軸の検出位置y2に基づいてモータ30Bへの指令を生成してもよい。軸間補償制御モードにおいて、制御装置50A及び制御装置50Bの少なくとも一方が、軸間偏差Δyに基づいてモータ30A及びモータ30Bへの指令の補償値を生成してもよい。分離制御モードにおいて、制御装置50Aが、Y1軸の検出位置y1及びY2軸の検出位置y2に基づいてモータ30A及びモータ30Bへの指令を生成し、制御装置50Bが、軸間偏差Δyに基づいてモータ30A及びモータ30Bへの指令を生成してもよい。この場合、Y1軸及びY2軸それぞれでの軸単位での位置制御を実行する制御モードと、ガントリ機構10の制御単位を並進と回転とに分離して、位置制御と回転位置の制御とを実行する制御モードとのいずれかで、ガントリ機構10を駆動できる。そのため、ガントリ機構10の特性に合わせて、その特性に適した制御モードでガントリ機構10を駆動できる。従って、ガントリ機構10を精度良く動作させるのに有用である。
【0116】
制御装置50Aは、軸間補償制御モードにおいて、Y1軸の検出位置y1及び軸間偏差Δyに基づいて、モータ30Aへのトルク指令TcAを生成する個別制御部74と、分離制御モードにおいて、検出位置y1及び検出位置y2に基づいて、モータ30A及びモータ30Bへの並進推力指令Trcを生成する連携制御部76と、を有してもよい。制御装置50Bは、軸間補償制御モードにおいて、Y2軸の検出位置及び軸間偏差Δyに基づいて、モータ30Bへのトルク指令TcBを生成する個別制御部84と、分離制御モードにおいて、軸間偏差Δyに基づいて、モータ30A及びモータ30Bへの回転トルク指令Rocを生成する連携制御部86と、を有してもよい。この場合、異なる制御モードそれぞれにおいて、ガントリ機構10の位置制御と軸間偏差Δyを抑制する制御とを実行できる。
【0117】
個別制御部74は、トルク指令TcAに基づいてモータ30Aを動作させてもよい。連携制御部76は、並進推力指令Trcを制御装置50Bに出力し、並進推力指令Trcと連携制御部86から得られる回転トルク指令Rocとに基づいて、モータ30Aを動作させてもよい。個別制御部84は、トルク指令TcBに基づいてモータ30Bを動作させてもよい。連携制御部86は、回転トルク指令Rocを制御装置50Aに出力し、回転トルク指令Rocと連携制御部76から得られる並進推力指令Trcとに基づいて、モータ30Bを動作させてもよい。この場合、軸間補償制御モードでは、各モータからの検出位置を取得後に、軸単位で独立してモータの制御が実行される。また、分離制御モードでは、制御装置50A及び制御装置50Bが分担して生成した指令により、モータの制御が実行される。分離制御モードでは、制御装置50A及び制御装置50Bとの間で指令の送受信が行われるのに対して、軸間補償制御モードでは、指令の送受信が行われないので、応答性が高くなる。従って、ガントリ機構10で必要な応答性に合わせて、モータの制御を行うことができる。
【0118】
制御装置50A及び制御装置50Bは、所定の周期ごとに、ガントリ機構10が目標位置に近づき軸間偏差Δyが縮小するように、モータ30A及びモータ30Bを制御してもよい。個別制御部74は、所定の周期ごとに、トルク指令TcAを生成することと、当該トルク指令TcAに基づいてモータ30Aを動作させることと、を実行してもよい。個別制御部84は、所定の周期ごとに、トルク指令TcBを生成することと、当該トルク指令TcBに基づいてモータ30Bを動作させることと、を実行してもよい。この場合、1つの周期で、指令の生成と、その指令に基づくモータへの動作とが実行されるので、応答性が高い制御を実現できる。従って、ガントリ機構10の特性に応じて応答性を高めたい場合に、その特性に適した制御モードでモータの制御を行うことができる。
【0119】
制御装置50A及び制御装置50Bは、所定の周期ごとに、ガントリ機構10が目標位置に近づき軸間偏差Δyが縮小するように、モータ30A及びモータ30Bを制御してもよい。連携制御部76は、所定の周期ごとに、並進推力指令Trcを生成及び出力することと、1つ前の周期で生成された並進推力指令Trc及び回転トルク指令Rocに基づいてモータ30Aを動作させることと、を実行してもよい。連携制御部86は、所定の周期ごとに、回転トルク指令Rocを生成及び出力することと、1つ前の周期で生成された並進推力指令Trc及び回転トルク指令Rocに基づいてモータ30Bを動作させることと、を実行してもよい。この場合、一対のモータに対する並進のための指令と回転のための指令とを、別々の制御装置において分担して生成することができる。
【0120】
個別制御部74は、ガントリ機構10の目標位置を示す位置指令ytを取得し、Y1軸の検出位置y1と位置指令ytとの間の偏差が縮小し、軸間偏差Δyが縮小するようにトルク指令TcAを生成してもよい。個別制御部84は、位置指令ytを取得し、Y2軸の検出位置y2と位置指令ytとの間の偏差が縮小し、軸間偏差Δyが縮小するようにトルク指令TcBを生成してもよい。この場合、軸間補償制御モードにおいて、ガントリ機構10を目標位置に追従させる位置制御を実行することで、Y1軸とY2軸との間でのねじれの発生を抑制できる。
【0121】
連携制御部76は、ガントリ機構10の目標位置を示す位置指令ytを取得し、検出位置y1及び検出位置y2の平均値(位置Yg)と位置指令ytとの間の偏差が縮小するように並進推力指令Trcを生成してもよい。連携制御部86は、軸間偏差Δyが縮小するように回転トルク指令Rocを生成してもよい。この場合、分離制御モードにおいて、ガントリ機構10を目標位置に追従させつつ、ガントリ機構10の回転方向の状態を制御することで、Y1軸とY2軸との間でのねじれの発生を抑制できる。
【符号の説明】
【0122】
1…ガントリ駆動システム、10…ガントリ機構、20…駆動システム、30A,30B…モータ、40…モータ制御システム、50A,50B…制御装置、64…テスト制御部、66…剛性評価部、71,81…モード切替部、74,84…個別制御部、76,86…連携制御部。
【要約】
【課題】設定作業の簡素化を図る。
【解決手段】本開示の一側面に係るガントリ駆動システムは、駆動対象物の第1の軸を駆動する第1のモータと、駆動対象物の第2の軸を駆動する第2のモータと、第1及び第2のモータを制御するモータ制御システムと、を備える。モータ制御システムは、第1及び第2の軸において軸間の位置偏差を縮小しつつ駆動対象物の位置を個別に制御する第1の制御モードと、第1及び第2の軸の検出位置に基づいて、駆動対象物の位置を制御すると共に駆動対象物の回転状態を制御する第2の制御モードとを切り替えるモード切替部を有する。モータ制御システムは、モード切替部により切り替えられたモードに従って、前記第1及び第2のモータを制御する。
【選択図】
図1