(57)【要約】【課題】マルチモータ制御において、モータ軸エンコーダの検出信号を利用して、高精度の位置制御を実現することを課題とする。【解決手段】開示の技術の一態様に係る駆動装置は、第１の回転検出部を備えた第１のモータと、第２の回転検出部を備えた第２のモータと、を用い、被駆動軸を駆動する駆動装置であって、前記第１のモータ、及び前記第２のモータを制御する制御部を有し、前記第１のモータは、前記被駆動軸に駆動トルクを与え、前記第２のモータは、前記第１のモータと前記被駆動軸との間のバックラッシュを低減し、前記制御部は、第２の回転検出部の検出信号に基づいて制御することを特徴とする。【選択図】図１０
2019216558.tif 000002
【特許請求の範囲】
【請求項１】
第１の回転検出部を備えた第１のモータと、
第２の回転検出部を備えた第２のモータと、を用い、被駆動軸を駆動する駆動装置であって、
前記第１のモータ、及び前記第２のモータを制御する制御部を備え、
前記第１のモータは、前記被駆動軸に駆動トルクを与え、
前記第２のモータは、前記第１のモータと前記被駆動軸との間のバックラッシュを低減し、
前記制御部は、第２の回転検出部の検出信号に基づいて制御する
ことを特徴とする駆動装置。
【請求項２】
前記制御部は、第１の回転検出部、又は第２の回転検出部の検出信号を用いて制御し、
前記制御部が制御に用いる検出信号を、第１の回転検出部による検出信号と第２の回転検出部による検出信号との間で切り替える検出信号切替部を備え、
前記検出信号切替部は、前記第２のモータが前記被駆動軸に駆動トルクを与え、前記第１のモータが前記第２のモータと前記被駆動軸との間のバックラッシュを低減する場合に、前記制御部が制御に用いる検出信号を、第２の回転検出部による検出信号から第１の回転検出部による検出信号に切り替える
ことを特徴とする請求項１に記載の駆動装置。
【請求項３】
第１の回転検出部を備えた第１のモータと、
第２の回転検出部を備えた第２のモータと、を用い、被駆動軸を駆動する駆動装置であって、
前記第１のモータ、及び前記第２のモータを制御する制御部と、を備え、
前記第１のモータは、前記被駆動軸に駆動トルクを与え、
前記第２のモータは、前記被駆動軸に所定の駆動トルクを与え、
前記制御部は、第２の回転検出部の検出信号に基づいて制御する
ことを特徴とする駆動装置。
【請求項４】
前記検出信号を補正する補正値を記憶する記憶部と、
前記補正値により前記検出信号を補正する補正部と、を備え、
前記補正値は、前記所定の駆動トルクを与えた場合の前記第２のモータと前記被駆動軸との間の角度ズレを示すデータである
ことを特徴とする請求項３に記載の駆動装置。
【請求項５】
第１の回転検出部を備えた第１のモータと、
第２の回転検出部を備えた第２のモータと、を用い、駆動指令に基づいて被駆動軸を駆動する駆動装置であって、
前記駆動指令に基づいて、前記第１の回転検出部の検出信号と第２の回転検出部の検出信号の何れかを選択する検出信号選択部と、
選択された前記検出信号に基づき、前記第１のモータ、及び前記第２のモータを制御する制御部と、を有し、
前記駆動指令は、電圧値、電流値、又はトルク値を示す指令値であり、
前記指令値が負の限界値未満、又は０以上で正の限界値未満の場合に、前記検出信号選択部は、前記第２の回転検出部の検出信号を選択し、
前記指令値が負の限界値以上で０未満、又は正の限界値以上の場合に、前記検出信号選択部は、前記第１の回転検出部の検出信号を選択する
ことを特徴とする駆動装置。
【請求項６】
前記検出信号を補正する補正値を記憶する記憶部と、
前記指令値に基づいて、前記記憶部を参照して前記補正値を取得し、選択された前記検出信号を前記補正値により補正する補正部と、を有し、
前記制御部は、補正された前記検出信号に基づき、前記第１のモータ、及び前記第２のモータを制御する
ことを特徴とする請求項５に記載の駆動装置。
【請求項７】
前記補正値には、
前記指令値が０、前記正の限界値、及び前記負の限界値の場合の前記第１のモータと前記被駆動軸との間の角度ズレを示すデータと、
前記指令値が０、前記正の限界値、及び前記負の限界値の場合の前記第２のモータと前記被駆動軸との間の角度ズレを示すデータと、が含まれる
ことを特徴とする請求項６に記載の駆動装置。
【請求項８】
前記記憶部は、前記指令値と前記補正値との対応関係を示すテーブル、又は前記指令値と前記補正値との対応関係を示す数式を記憶し、
前記補正部は、前記指令値に基づき、前記記憶部を参照して前記補正値を取得する
ことを特徴とする請求項６、又は７に記載の駆動装置。
【請求項９】
前記記憶部は、複数の前記テーブル、又は複数の前記数式を記憶し、
複数の前記テーブル、又は複数の前記数式のうち、１つの前記テーブル、又は前記数式を選択する補正値選択部を有する
ことを特徴とする請求項６乃至８の何れか１項に記載の駆動装置。
【請求項１０】
前記補正値を更新する更新部を有する
ことを特徴とする請求項６乃至８の何れか１項に記載の駆動装置。
【請求項１１】
第１の回転検出部を備えた第１のモータと、
第２の回転検出部を備えた第２のモータと、を用い、被駆動軸を駆動する駆動装置で用いられる駆動方法であって、
前記第１のモータ、及び前記第２のモータを制御する制御工程を含み、
前記第１のモータは、前記被駆動軸に駆動トルクを与え、
前記第２のモータは、前記第１のモータと前記被駆動軸との間のバックラッシュを低減し、
前記制御工程は、第２の回転検出部の検出信号に基づいて制御する
ことを特徴とする駆動方法。
【請求項１２】
第１の回転検出部を備えた第１のモータと、
第２の回転検出部を備えた第２のモータと、を用い、被駆動軸を駆動する駆動装置で実行されるプログラムであって、
前記第１のモータ、及び前記第２のモータを制御する制御ステップを実行させ、
前記第１のモータは、前記被駆動軸に駆動トルクを与え、
前記第２のモータは、前記第１のモータと前記被駆動軸との間のバックラッシュを低減し、
前記制御ステップは、第２の回転検出部の検出信号に基づいて制御する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、駆動装置、駆動方法、及びプログラムに関する。
【背景技術】
【０００２】
複数のモータで同一の出力軸を駆動制御して、トルクアップ、及びバックラッシュ低減を図るマルチモータ制御技術が知られている。特に、２つのモータを制御する場合は、ダブルモータ制御技術と称される。また、モータ軸エンコーダ、又は出力軸エンコーダによる検出信号をフィードバックして出力軸の角度を制御し、出力軸による位置、速度等の制御を行う技術が知られている。
【０００３】
ダブルモータ制御技術では、片方のモータにプリロードトルクを与えることにより、バックラッシュを低減し、出力軸の角度を正確に制御することが可能である。しかし、複数のモータから出力軸に至るまでの減速機の剛性等に起因して、各モータの回転軸と出力軸との間で負荷トルクに応じた角度ズレが発生し、モータ軸エンコーダの検出信号により、出力軸による位置制御を正確に行えない場合がある。
【０００４】
このような課題に対し、出力軸の角度毎で補正値を記憶装置に記憶し、各モータの回転軸と出力軸との間の角度ズレを補正する技術が開示されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術では、ギアの角度に対する角度ズレのみが補正され、負荷トルクに応じた各モータの回転軸のネジレ等の影響は除去されないため、補正精度が十分でない場合があった。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、マルチモータ制御において、モータ軸エンコーダの検出信号を利用して、高精度の位置制御を実現することを課題とする。
【課題を解決するための手段】
【０００７】
開示の技術の一態様に係る駆動装置は、第１の回転検出部を備えた第１のモータと、第２の回転検出部を備えた第２のモータと、を用い、被駆動軸を駆動する駆動装置であって、前記第１のモータ、及び前記第２のモータを制御する制御部を有し、前記第１のモータは、前記被駆動軸に駆動トルクを与え、前記第２のモータは、前記第１のモータと前記被駆動軸との間のバックラッシュを低減し、前記制御部は、第２の回転検出部の検出信号に基づいて制御することを特徴とする。
【発明の効果】
【０００８】
本発明の実施形態によれば、マルチモータ制御において、モータ軸エンコーダの検出信号を利用して、高精度の位置制御を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】ダブルモータ制御により駆動される駆動系の一例を示す斜視図である。
【図２】ダブルモータ制御により駆動される駆動系の一例を示す平面図である。
【図３】ダブルモータ制御による出力軸の駆動の一例を示す模式図である。
【図４】モータに印加される電圧の一例を示す図である。
【図５】駆動系における角度ズレの要因の発生箇所の一例を示す模式図である。
【図６】ギアの歯の変形の一例を示す模式図である。
【図７】モータ等のネジレと電圧指令値との関係の一例を示す図である。
【図８】出力軸とモータとの間の角度ズレの一例を示す図である。
【図９】第１の実施形態の駆動装置のハードウェア構成の一例を示すブロック図である。
【図１０】第１の実施形態の駆動装置の構成要素の一例を機能ブロックで示す図である。
【図１１】第１の実施形態の駆動装置の角度ズレの補正処理を示すフローチャートである。
【図１２】第１の実施形態の駆動装置の補正値取得処理の一例を示すフローチャートである。
【図１３】第１の実施形態の指令値と補正値の対応関係を示すテーブルの一例を示す図である。
【図１４】第１の実施形態のエンコーダによる角度の検出値の変化の一例を示す図である。
【図１５】第２の実施形態の駆動装置の構成要素の一例を機能ブロックで示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して発明を実施するための形態について説明する。各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。
【００１１】
［第１の実施形態］
第１の実施形態の駆動装置を説明する。本実施形態の駆動装置は、複数のモータにより１つの出力軸を駆動する装置である。本実施形態では、２つのモータを用いたダブルモータ制御により、１つの出力軸を駆動する装置を例に説明する。
【００１２】
まず、ダブルモータ制御について説明する。図１は、ダブルモータ制御により駆動される駆動系Ｄの一例を示す斜視図である。図２は、駆動系Ｄの平面図である。
【００１３】
図１及び図２に示されているように、駆動系Ｄは、モータＭ１、及びＭ２と、出力軸Ｓと、伝達系Ｇ１、及びＧ２とを備える。尚、図１、及び図２の例では省略されているが、駆動系Ｄには、モータＭ１の角度θ１を計測するモータ軸エンコーダＥ１と、モータＭ２の角度θ２を計測するモータ軸エンコーダＥ２とが含まれる。モータ軸エンコーダＥ１はモータＭ１に外付けされてもよいし、モータＭ１に内蔵されてもよい。同様にモータ軸エンコーダＥ２はモータＭ２に外付けされてもよいし、モータＭ２に内蔵されてもよい。
【００１４】
モータＭ１は、特許請求の範囲に記載の「第１のモータ」の一例であり、モータＭ２は、特許請求の範囲に記載の「第２のモータ」の一例である。モータ軸エンコーダＥ１は、特許請求の範囲に記載の「第１の回転検出部」の一例であり、モータ軸エンコーダＥ２は、特許請求の範囲に記載の「第２の回転検出部」の一例である。出力軸Ｓは、特許請求の範囲に記載の「被駆動軸」の一例である。
【００１５】
尚、以下では説明を簡略化するため、「モータ軸エンコーダ」を単に「エンコーダ」と称する場合がある。またモータの角度はモータの回転角度と同義であり、出力軸の角度は出力軸の回転角度と同義である。
【００１６】
モータＭ１は、ダブルモータ制御により制御される一方のモータである。モータＭ１は、伝達系Ｇ１を介して、出力軸ＳにトルクＴ１を加え、出力軸Ｓを駆動する。モータＭ２は、ダブルモータ制御により制御される他方のモータである。モータＭ２は、伝達系Ｇ２を介して、出力軸ＳにトルクＴ２を加え、出力軸Ｓを駆動する。モータＭ１、及びＭ２は、例えばブラシレスＤＣ（Direct  Current）モータである。但し、ブラシ付きＤＣモータやＡＣ（Alternating  Current）モータ等を用いてもよい。
【００１７】
出力軸Ｓは、ダブルモータ制御により駆動される出力軸である。伝達系Ｇ１は、モータＭ１の回転を出力軸Ｓに伝達する複数のギアの組である。伝達系Ｇ２は、モータＭ２の回転を出力軸Ｓに伝達する複数のギアの組である。複数のギアの組は、例えば減速機である。ダブルモータ制御では、モータＭ１、及びＭ２がそれぞれ制御され、出力軸Ｓが駆動される。
【００１８】
図３は、ダブルモータ制御による出力軸の駆動の一例を示す模式図である。図３は、駆動系Ｄにおいて、モータＭ１に駆動される伝達系Ｇ１と、モータＭ２に駆動される伝達系Ｇ２とにより出力軸Ｓが駆動される様子を示す。
【００１９】
図３（ａ）は、バックラッシュを低減する出力軸Ｓの駆動を示す図である。伝達系Ｇ１は矢印１１の方向に回転し、出力軸Ｓに駆動トルクを与える。出力軸Ｓは駆動トルクに応じて矢印１３の方向に回転する。一方、伝達系Ｇ２は、伝達系Ｇ１の回転方向とは逆の矢印１２の方向に回転する。伝達系Ｇ２により、伝達系Ｇ１とは逆向きのトルクを加えることで、出力軸Ｓと伝達系Ｇ１との間のガタを防ぎ、バックラッシュを低減することができる。伝達系Ｇ２が加える逆向きのトルクは、プリロードトルクと称される。
【００２０】
一方、図３（ｂ）は、トルクを大きくする出力軸Ｓの駆動を示す図である。伝達系Ｇ１は矢印１４の方向に回転し、出力軸Ｓに駆動トルクを与える。出力軸Ｓは駆動トルクに応じて矢印１６の方向に回転する。伝達系Ｇ２は、伝達系Ｇ１の回転方向と同じ矢印１５の方向に回転する。伝達系Ｇ２で伝達系Ｇ１と同じ向きにトルクを加えることで、伝達系Ｇ１のトルクに伝達系Ｇ２のトルクが加算され、出力軸Ｓのトルクを大きくすることができる。
【００２１】
図４は、モータＭ１、及びＭ２に印加される電圧の一例を示すグラフである。図４の縦軸はモータＭ１、及びＭ２の印加電圧ｄｒｖ_ｏｕｔを示し、横軸は電圧指令値ｄｒｖ_ｉｎを示す。実線４１はモータＭ１の印加電圧、点線４２はモータＭ２の印加電圧である。一点鎖線４３はモータＭ１、及びＭ２の合計印加電圧、二点鎖線４４はモータＭ１、及びＭ２の平均印加電圧である。尚、ここではｄｒｖ_ｉｎ、及びｄｒｖ_ｏｕｔをそれぞれ電圧値とする例を説明するが、ｄｒｖ_ｉｎ、及びｄｒｖ_ｏｕｔを電流値、又はトルク値としてもよい。この点は、以降の図で示されるｄｒｖ_ｉｎ、及びｄｒｖ_ｏｕｔについても同様である。
【００２２】
図４の例では、正の電圧印加により、モータＭ１が出力軸Ｓに第１方向にトルクＴ１を加え、モータＭ２が出力軸Ｓに第１方向にトルクＴ２を加えることを想定する。また負の電圧印加により、モータＭ１が出力軸Ｓに第１方向と逆向きの第２方向にトルクＴ１を加え、モータＭ２が出力軸Ｓに第２方向にトルクＴ２を加えることを想定する。
【００２３】
図４において、ｌｉｍ１は印加電圧の正のリミット電圧を示し、ｌｉｍ２は印加電圧の負のリミット電圧を示す。ｉｎ_ｌｉｍ１は印加電圧が正のリミット電圧になる時の電圧指令値を示し、ｉｎ_ｌｉｍ２は印加電圧が負のリモット電圧になる時の電圧指令値を示す。ｏｆｆｓｅｔ１は正のオフセット電圧を示し、ｏｆｆｓｅｔ２は負のオフセット電圧を示す。オフセット電圧は、電圧指令値を０にした時にモータに印加される電圧である。尚、ｉｎ_ｌｉｍ１は、特許請求の範囲に記載の「正の限界値」の一例であり、ｉｎ_ｌｉｍ２は、特許請求の範囲に記載の「負の限界値」の一例である。
【００２４】
領域Ｒ１は、電圧指令値ｄｒｖ_ｉｎがｉｎ_ｌｉｍ２未満の範囲を示し、領域Ｒ２は、電圧指令値ｄｒｖ_ｉｎがｉｎ_ｌｉｍ２以上で０未満の範囲を示す。領域Ｒ３は、電圧指令値ｄｒｖ_ｉｎがｉｎ_ｌｉｍ１以上の範囲を示し、領域Ｒ４は、電圧指令値ｄｒｖ_ｉｎが０以上でｉｎ_ｌｉｍ１未満の範囲を示す。
【００２５】
領域Ｒ１では、モータＭ１にリミット電圧ｌｉｍ２からオフセット電圧ｏｆｆｓｅｔ１までの電圧が印加され、モータＭ２に所定のリミット電圧ｌｉｍ２が印加される。モータＭ１に印加される負電圧の絶対値が大きくなるほど、モータＭ１により出力軸Ｓに加えられる第２方向のトルクＴ１が大きくなる。領域Ｒ１では、モータＭ１は、出力軸Ｓを第２方向に駆動する駆動用モータとして機能するが、モータＭ２により、トルクＴ１と同じ第２方向にトルクＴ２が加えられるため、出力軸Ｓに加えられるトルクＴｏｕｔを大きくすることができる。
【００２６】
領域Ｒ２では、モータＭ１に所定のオフセット電圧ｏｆｆｓｅｔ１が印加され、モータＭ２にリミット電圧ｌｉｍ２からオフセット電圧ｏｆｆｓｅｔ２までの電圧が印加される。モータＭ２に印加される負電圧の絶対値が大きくなるほど、モータＭ２により出力軸Ｓに加えられる第２方向のトルクＴ２が大きくなる。領域Ｒ２では、モータＭ２は、出力軸Ｓを第２方向に駆動する駆動用モータとして機能する。
【００２７】
領域Ｒ２では、モータＭ１は出力軸Ｓに第１方向に所定のトルクＴ１を加え、モータＭ２が出力軸Ｓに第２方向にトルクＴ２を加える。そのため、出力軸Ｓに加えられるトルクＴｏｕｔは、トルクＴ１とトルクＴ２の差分となる。モータＭ１が、出力軸ＳにモータＭ２と逆向きのトルクを与えることで、出力軸ＳのギアとモータＭ２の伝達系Ｇ２のギアとが押し付けられ、出力軸ＳとのモータＭ２との間のバックラッシュが低減する。
【００２８】
領域Ｒ３では、モータＭ１に所定のリミット電圧ｌｉｍ１が印加され、モータＭ２にオフセット電圧ｏｆｆｓｅｔ２からリミット電圧ｌｉｍ１までの電圧が印加される。モータＭ２に印加される正電圧の絶対値が大きくなるほど、モータＭ２により出力軸Ｓに加えられる第１方向のトルクＴ２が大きくなる。領域Ｒ３では、モータＭ２は、出力軸Ｓを第１方向に駆動する駆動用モータとして機能するが、モータＭ１により、トルクＴ２と同じ第１方向にトルクＴ１が加えられるため、出力軸Ｓに加えられるトルクＴｏｕｔを大きくすることができる。
【００２９】
領域Ｒ４では、モータＭ１にオフセット電圧ｏｆｆｓｅｔ１からリミット電圧ｌｉｍ１までの電圧が印加され、モータＭ２に所定のオフセット電圧ｏｆｆｓｅｔ２が印加される。モータＭ１に印加される正電圧の絶対値が大きくなるほど、モータＭ１により出力軸Ｓに加えられる第１方向のトルクＴ１が大きくなる。領域Ｒ４では、モータＭ１は、出力軸Ｓを第１方向に駆動する駆動用モータとして機能する。
【００３０】
領域Ｒ４では、モータＭ１は出力軸Ｓに第１方向にトルクＴ１を加え、モータＭ２が出力軸Ｓに第２方向にトルクＴ２を加える。そのため、出力軸Ｓに加えられるトルクＴｏｕｔは、トルクＴ１とトルクＴ２の差分となる。一方で、モータＭ２が、出力軸ＳにモータＭ１と逆向きのトルクを与えることで、出力軸ＳのギアとモータＭ１の伝達系Ｇ２のギアとが押し付けられ、出力軸ＳとのモータＭ１との間のバックラッシュが低減する。
【００３１】
このように、ダブルモータ制御では、２つのモータＭ１、及びＭ２に印加する電圧を制御することにより、出力軸Ｓに加えるトルクＴｏｕｔを大きくしたり、バックラッシュを低減したりすることができる。
【００３２】
次に、ダブルモータ制御におけるモータと出力軸の角度ズレの要因について説明する。出力軸の角度ズレの要因としては、モータや出力軸等の回転軸のネジレ、ギアの歯の変形、モータ等の回転軸を支えるフレームの変形による回転軸の横ずれ（シフト）等が挙げられる。
【００３３】
図５は、駆動系Ｄにおける角度ズレの要因の発生箇所の一例を示す模式図である。図５は、駆動系Ｄにおいて、モータＭ１に取り付けられたギア５１と、出力軸Ｓに取り付けられたギア５２が、噛み合い箇所５３で噛み合う様子を示している。
【００３４】
モータＭ１の回転軸５４、及び出力軸Ｓの回転軸５５のそれぞれで回転軸のネジレが発生する。尚、ネジレとは、軸にトルクが加わった場合の軸回りの変形である。
【００３５】
ギアの歯の変形は、噛み合い箇所５３で発生する。ここで、図６は、ギアの歯の変形の一例を示す模式図である。一方のギアの歯６１と、他方のギアの歯６２が噛み合い箇所において接触している。図６（ａ）はギアの歯が変形していない場合で、図６（ｂ）は変形している場合である。図６（ｂ）では、トルクにより実線の矢印で示されている方向に力が加わり、ギアの歯６２がギアの歯６３のように弾性変形している。ギアの噛み合い箇所では、このようにギアの歯の変形が発生し、角度ズレを生じさせる。
【００３６】
図５に戻り、トルクに伴い、モータＭ１の回転軸５４を支えるフレームが変形し、例えば図５に破線の矢印５６で示されている方向に回転軸が横ずれする場合がある。このようなフレームの変形による回転軸の横ずれも角度ズレの要因となる。
【００３７】
モータの伝達系に、複数のギアを備える多段ギアを用いる場合は、ギアの数に応じて上記のような角度ズレの要因が加算されて発生する。
【００３８】
次に、モータＭ１と伝達系Ｇ１の回転軸のネジレ、モータＭ２と伝達系Ｇ２の回転軸のネジレ、及び出力軸Ｓの回転軸のネジレについて、図７を参照して説明する。尚、以下では説明を簡略化するため、「回転軸のネジレ」を単に「ネジレ」と称する。またモータＭ１と伝達系Ｇ１を「モータＭ１系統」と称し、モータＭ２と伝達系Ｇ２を「モータＭ２系統」と称する。
【００３９】
図７は、モータＭ１系統のネジレ、モータＭ２系統のネジレ、及び出力軸Ｓのネジレと、電圧指令値ｄｒｖ_ｉｎとの関係の一例を示す図である。図７の横軸は電圧指令値ｄｒｖ_ｉｎを示し、縦軸はネジレ量を示す。
【００４０】
実線７１はモータＭ１系統の出力軸Ｓに対するネジレ量であり、点線７２はモータＭ２系統の出力軸Ｓに対するネジレ量であり、一点鎖線７３は出力軸Ｓのネジレ量である。図７の領域Ｒ１は図４の領域Ｒ１に対応し、図７の領域Ｒ２は図４の領域Ｒ２に対応し、図７の領域Ｒ３は図４の領域Ｒ３に対応し、図７の領域Ｒ４は図４の領域Ｒ４に対応する。
【００４１】
電圧指令値ｄｒｖ_ｉｎに比例して出力軸Ｓに与えられるトルクは大きくなり、トルクに比例して出力軸Ｓのネジレ量は大きくなる。そのため、電圧指令値ｄｒｖ_ｉｎとトルクとの線形性を仮定すると、図７に一点鎖線７３で示されているように、出力軸Ｓのネジレ量は電圧指令値ｄｒｖ_ｉｎに比例して大きくなる。
【００４２】
領域Ｒ４では、モータＭ２系統には所定のオフセット電圧ｏｆｆｓｅｔ２が印加され、これに応じた所定のトルクＴ２が加えられているため（図４参照）、モータＭ２系統のネジレ量は、所定のトルクＴ２に応じたものとなる。従って出力軸Ｓのネジレ量に応じて出力軸Ｓに対するモータＭ２系統のネジレ量は変化し、図７に点線７２で示されているように、電圧指令値ｄｒｖ_ｉｎに比例して出力軸Ｓに対するモータＭ２系統のネジレ量は大きくなる。
【００４３】
一方、モータＭ１系統には印加電圧に伴い徐々に大きくなるトルクＴ１が加えられる。モータＭ１の回転が伝達系Ｇ１に伝達された直後は、ギアのバックラッシュによりトルクＴ１は殆ど発生しない。モータＭ１が回転するにつれ、伝達系Ｇ１のギアの歯車が噛み合い始めると、モータＭ１系統は低剛性領域に入り、バックラッシュは徐々に解消してトルクＴ１はモータＭ１の回転に対し非線形に変化する。トルクＴ１に応じて、出力軸Ｓに対するモータＭ１系統のネジレ量は非線形に変化する。
【００４４】
領域Ｒ３では、モータＭ２系統には領域Ｒ４とは逆向きのトルクＴ２が加えられ、トルクＴ２は徐々に大きくなる。そのため領域Ｒ３に入った直後にモータＭ２系統のネジレ量は急増し、その後、非線形に変化する。
【００４５】
一方、モータＭ１系統は、所定のリミット電圧ｌｉｍ１が印加され、これに応じた所定のトルクＴ１が加えられるため、モータＭ１系統のネジレ量は、所定のトルクＴ１に応じたものとなる。従って出力軸Ｓのネジレ量に応じて出力軸Ｓに対するモータＭ１系統のネジレ量は変化し、図７に実線７１で示されているように、電圧指令値ｄｒｖ_ｉｎに比例して出力軸Ｓに対するモータＭ１系統のネジレ量は大きくなる。
【００４６】
領域Ｒ２では、モータＭ１系統には所定のオフセット電圧ｏｆｆｓｅｔ１に応じた所定のトルクＴ１が加えられているため、モータＭ１系統のネジレ量は、所定のトルクＴ１に応じたものとなる。従って、出力軸Ｓのネジレ量に応じて出力軸Ｓに対するモータＭ１系統のネジレ量は変化し、図７に実線７１で示されているように、電圧指令値ｄｒｖ_ｉｎに比例して出力軸Ｓに対するモータＭ１系統のネジレ量は大きくなる。
【００４７】
一方、モータＭ２系統には印加電圧に伴い徐々に大きくなるトルクＴ２が加えられる。モータＭ２の回転が伝達系Ｇ２に伝達された直後は、ギアのバックラッシュによりトルクＴ２は殆ど発生しない。モータＭ２が回転するにつれ、伝達系Ｇ２のギアの歯車が噛み合い始めると、モータＭ２系統は低剛性領域に入り、バックラッシュは徐々に解消してトルクＴ２はモータＭ２の回転に対し非線形に変化する。トルクＴ２に応じて出力軸Ｓに対するモータＭ２系統のネジレ量は非線形に変化する。
【００４８】
領域Ｒ１では、モータＭ１系統には領域Ｒ２とは逆向きのトルクＴ１が加えられ、トルクＴ１は徐々に大きくなる。そのため領域Ｒ１に入った直後にモータＭ１系統のネジレは急増し、その後、非線形に変化する。
【００４９】
一方、モータＭ２系統は、所定のリミット電圧ｌｉｍ２が印加され、これに応じた所定のトルクＴ２が加えられるため、モータＭ２系統のネジレ量は、所定のトルクＴ２に応じたものとなる。従って出力軸Ｓのネジレに応じて出力軸Ｓに対するモータＭ２系統のネジレは変化し、図７に示されているように、電圧指令値ｄｒｖ_ｉｎに比例して出力軸Ｓに対するモータＭ２系統のネジレ量は大きくなる。
【００５０】
尚、トルクに比例してネジレ量が変化する場合は、トルク値Ｔを用いて角度を補正することができる。例えば回転軸の剛性をｋとすると、補正角度Δθは、Δθ＝ｋ・Ｔとして算出可能である。
【００５１】
図７では、電圧指令値ｄｒｖ_ｉｎに比例して変化する出力軸Ｓのネジレ（一点鎖線７３）を示したが、実際には、モータＭ１系統のネジレとモータＭ２系統のネジレ量が加算されて出力軸Ｓのネジレ量が生じる。そのため、電圧指令値ｄｒｖ_ｉｎと実際の出力軸Ｓのネジレ量とは必ずしも比例関係にならない場合がある。
【００５２】
以上説明したように、モータや出力軸等の回転軸のネジレ、ギアの歯の変形、モータ等の回転軸を支えるフレームの変形による回転軸の横ずれ（シフト）等に起因して、モータと出力軸Ｓとの間の角度ズレが発生する。
【００５３】
図８は、出力軸ＳとモータＭ１、及びモータＭ２の角度ズレの関係の一例を示す図である。図８の横軸は電圧指令値ｄｒｖ_ｉｎを示し、縦軸は角度ズレ量を示す。
【００５４】
実線８１はモータＭ１と出力軸Ｓとの間の角度ズレであり、点線８２はモータＭ２と出力軸Ｓとの間の角度ズレである。図８の領域Ｒ１は図４の領域Ｒ１に対応し、図８の領域Ｒ２は図４の領域Ｒ２に対応し、図８の領域Ｒ３は図４の領域Ｒ３に対応し、図８の領域Ｒ４は図４の領域Ｒ４に対応する。
【００５５】
図８において、θｌｉｍ１はリミット電圧ｌｉｍ１が印加された場合のモータＭ１と出力軸Ｓとの間の角度ズレ量であり、θｌｉｍ２はリミット電圧ｌｉｍ２が印加された場合のモータＭ２と出力軸Ｓとの間の角度ズレ量である。θｏｆｆｓｅｔ１は電圧指令値が０の場合のモータＭ１と出力軸Ｓとの間の角度ズレ量であり、θｏｆｆｓｅｔ２は電圧指令値が０の場合のモータＭ２と出力軸Ｓとの間の角度ズレ量である。
【００５６】
領域Ｒ４では、モータＭ２系統のネジレ量は、所定のオフセット電圧ｏｆｆｓｅｔ２に応じたものであるため、モータＭ２と出力軸Ｓとの間の角度ズレ量は、所定のθｏｆｆｓｅｔ２になる。モータＭ１系統のネジレは非線形に変化するため、これに応じてモータＭ１と出力軸Ｓとの間の角度ズレ量は非線形に変化する。
【００５７】
同様に、領域Ｒ３では、モータＭ２と出力軸Ｓとの間の角度ズレ量は非線形に変化し、モータＭ１と出力軸Ｓとの間の角度ズレ量は、所定のθｌｉｍ１になる。
【００５８】
領域Ｒ２では、モータＭ１と出力軸Ｓとの間の角度ズレ量は、所定のθｏｆｆｓｅｔ１になり、モータＭ２と出力軸Ｓとの間の角度ズレ量は非線形に変化する。
【００５９】
領域Ｒ１では、モータＭ１と出力軸Ｓとの間の角度ズレ量は非線形に変化し、モータＭ２と出力軸Ｓとの間の角度ズレ量は所定のθｌｉｍ２になる。
【００６０】
このようなモータＭ１と出力軸Ｓとの間の角度ズレ、及びモータＭ２と出力軸Ｓとの間の角度ズレは、エンコーダＥ１及びＥ２の検出信号に基づいてモータＭ１、及びＭ２を駆動し、出力軸Ｓによる位置制御を行う場合に、制御の精度を低下させる。
【００６１】
本実施形態の駆動装置１００では、領域Ｒ１と領域Ｒ４では、モータＭ２のエンコーダＥ２の検出信号に基づいてモータＭ１、及びＭ２を駆動し、出力軸Ｓによる位置制御を行う。また領域Ｒ２と領域Ｒ３では、モータＭ１のエンコーダＥ１の検出信号に基づいてモータＭ１、及びＭ２を駆動し、出力軸Ｓによる位置制御を行う。これにより、上記のような出力軸Ｓによる位置制御の精度の低下を防止する。
【００６２】
例えば、モータＭ１のエンコーダＥ１の検出信号ＥＮＣ１が示す角度の検出値をφ１とし、モータＭ２のエンコーダＥ２の検出信号ＥＮＣ２が示す角度の検出値をφ２とし、出力軸Ｓの位置制御に用いるエンコーダの角度の検出値をφとする。尚、説明を簡略化するため、以降では、角度の検出値を、単に検出値と称する。
【００６３】
まず領域Ｒ１では、駆動装置１００は、検出値φを次の（１）式により算出する。
【００６４】
φ＝φ２−θｌｉｍ２            （１）
領域Ｒ１では、モータＭ２と出力軸Ｓとの間の角度ズレ量は、電圧指令値ｄｒｖ_ｉｎによらず所定のθｌｉｍ２である。駆動装置１００は、（１）式により、所定の値であるθｌｉｍ２で検出値φ２を補正して、モータＭ２と出力軸Ｓとの間の角度ズレの影響を除去した検出値φを取得する。駆動装置１００は、この検出値φを用いて出力軸Ｓによる位置制御を行うことで、制御精度の低下を防止できる。
【００６５】
また（１）式によれば、予め測定した角度ズレのオフセット値θｌｉｍ２が差し引かれるため、領域Ｒ１〜Ｒ４の領域間で検出値φのオフセット値に差異がある場合でも、差異が取り除かれ、領域間での検出値φの連続性が確保される。
【００６６】
同様に、領域Ｒ２では次の（２）式で、領域Ｒ３では次の（３）式で、領域Ｒ４では次の（４）式で、それぞれ検出値φは算出される。
【００６７】
φ＝φ１−θｏｆｆｓｅｔ１      （２）
φ＝φ１−θｌｉｍ１            （３）
φ＝φ２−θｏｆｆｓｅｔ２      （４）
（２）〜（４）式により検出値φを算出することの効果は、上記の（１）式で説明したものと同様である。
【００６８】
図９は、本実施形態の駆動装置１００のハードウェア構成の一例を示すブロック図である。駆動装置１００は、ＣＰＵ（Central  Processing  Unit）１０１と、ＲＯＭ(Read  Only  Memory)１０２と、ＲＡＭ(Random  Access  Memory)１０３と、メモリ１０４と、指令信号入力Ｉ／Ｆ（Inter／Face）１０５とを有する。また駆動装置１００は、Ｍ１ドライバ回路１０６Ａと、Ｍ２ドライバ回路１０６Ｂと、ＡＳＩＣ（Application  Specific  Integrated  Circuit）１０７と、検出信号入力Ｉ／Ｆ１０８とを有する。これらはシステムバス１１０を介して相互に電気的に接続されている。
【００６９】
ＣＰＵ１０１は、駆動装置１００の動作を統括的に制御する。ＣＰＵ１０１は、ＲＡＭ１０３をワークエリア（作業領域）として、ＲＯＭ１０２に格納されたプログラムを実行することで、駆動装置１００全体の動作を制御し、後述する各種機能を実現する。
【００７０】
メモリ１０４は、θｌｉｍ１、θｌｉｍ２、θｏｆｆｓｅｔ１、及びθｏｆｆｓｅｔ２等の補正値を記憶する。補正値は、エンコーダＥ１、及びＥ２の検出値から出力軸Ｓの位置制御に用いる検出値φを算出するために用いられる。メモリ１０４は、例えば不揮発性メモリ等である。ＲＯＭ１０２に補正値を記憶させ、ＲＯＭ１０２にメモリ１０４の機能を実現させてもよい。
【００７１】
指令信号入力Ｉ／Ｆ１０５は、上位コントローラ２００と電気的に接続し、上位コントローラ２００からデータ、又は信号を受信するためのインターフェースである。上位コントローラ２００は、駆動装置１００に駆動系Ｄを駆動させるための指令を与えるマスターコントローラである。駆動装置１００は、指令信号入力Ｉ／Ｆ１０５を介して上位コントローラ２００からの駆動指令を示す電気信号を受信する。
【００７２】
Ｍ１ドライバ回路１０６Ａは、駆動系Ｄの有するモータＭ１と電気的に接続し、電圧を印加してモータＭ１を駆動する電気回路である。
【００７３】
Ｍ２ドライバ回路１０６Ｂは、駆動系Ｄの有するモータＭ２と電気的に接続し、電圧を印加してモータＭ２を駆動する電気回路である。
【００７４】
ＡＳＩＣ１０７は、Ｍ１ドライバ回路１０６Ａ、及びＭ２ドライバ回路１０６Ｂに出力するＰＷＭ（Pulse  Width  Modulation）信号を生成するための集積回路である。
【００７５】
検出信号入力Ｉ／Ｆ１０８は、エンコーダＥ１及びエンコーダＥ２と電気的に接続し、エンコーダＥ１及びエンコーダＥ２からデータ、又は信号を受信するためのインターフェースである。駆動装置１００は、検出信号入力Ｉ／Ｆ１０８を介してモータＭ１の角度を示す電気信号をエンコーダＥ１から受信し、またモータＭ２の角度を示す電気信号をエンコーダＥ２から受信する。
【００７６】
駆動装置１００は、図９に示されているハードウェア構成によって、次に説明する機能構成を実現することができる。
【００７７】
図１０は、本実施形態の駆動装置１００の構成要素の一例を機能ブロックで示す図である。尚、図１０に図示される駆動装置１００の各機能ブロックは概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。各機能ブロックの全部又は一部を、任意の単位で機能的又は物理的に分散・結合して構成することが可能である。駆動装置１００の各機能ブロックにて行われる各処理機能は、その全部又は任意の一部が、上述のＣＰＵ１０１にて実行されるプログラムにて実現され、或いはワイヤードロジックによるハードウェアとして実現されうる。
【００７８】
駆動装置１００は、ＰＩＤ（Proportional  Integral  Differential）制御部１２１と、Ｍ１印加電圧算出部１２２Ａと、Ｍ２印加電圧算出部１２２Ｂと、Ｍ１ＰＷＭ生成部１２３Ａと、Ｍ２ＰＷＭ生成部１２３Ｂとを有する。また駆動装置１００は、Ｍ１駆動部１３１Ａと、Ｍ２駆動部１３１Ｂと、指令信号受信部１３２と、検出信号受信部１３３と、検出信号選択部１３４と、補正部１３５と、モード切替部１３６と、メモリ１０４とを有する。
【００７９】
指令信号受信部１３２は、上位コントローラ２００から目標値指令信号を受信し、ＰＩＤ制御部１２１に出力する。本実施形態では、目標値は、例えば出力軸Ｓの位置の目標値である。また指令信号受信部１３２は、駆動装置１００の動作モードを駆動モード、又は補正値取得モードに切り替えるためのモード指令信号を上位コントローラ２００から受信し、モード切替部１３６に出力する。指令信号受信部１３２は、指令信号入力Ｉ／Ｆ１０５等により実現される。
【００８０】
検出信号受信部１３３は、モータＭ１の角度を示す検出信号ＥＮＣ１をエンコーダＥ１から受信し、モータＭ２の角度を示す検出信号ＥＮＣ２をエンコーダＥ２から受信する。検出信号受信部１３３は、駆動装置１００の動作モードが駆動モードの場合、受信した検出信号ＥＮＣ１、及び検出信号ＥＮＣ２を検出信号選択部１３４に出力する。また検出信号受信部１３３は、駆動装置１００の動作モードが補正値取得モードの場合、受信した検出信号ＥＮＣ１が示す検出値φ１、及び検出信号ＥＮＣ２が示す検出値φ２を、補正値としてメモリ１０４に出力する。検出信号受信部１３３は、検出信号入力Ｉ／Ｆ１０８等により実現される。
【００８１】
検出信号選択部１３４は、制御周期毎にＰＩＤ制御部１２１から出力される電圧指令値ｄｒｖ_ｉｎを入力する。またメモリ１０４を参照して、正の限界値ｉｎ_ｌｉｍ１、及び負の限界値ｉｎ_ｌｉｍ２を取得する。電圧指令値ｄｒｖ_ｉｎと正の限界値ｉｎ_ｌｉｍ１、及び負の限界値ｉｎ_ｌｉｍ２に基づき、電圧指令値の領域が領域Ｒ１〜Ｒ４（図４参照）のどの領域かを判別する。また検出信号選択部１３４は、検出信号受信部１３３から検出信号ＥＮＣ１と検出信号ＥＮＣ２を入力し、判別した電圧指令値の領域に応じて、検出信号ＥＮＣ１、又はＥＮＣ２の何れか１つを出力軸Ｓの制御に用いる信号として選択する。検出信号選択部１３４は、選択した検出信号ＥＮＣ１、又は検出信号ＥＮＣ２と、判別した領域を示す信号を、補正部１３５に出力する。検出信号選択部１３４は、特許請求の範囲に記載の「検出信号選択部」の一例である。
【００８２】
補正部１３５は、判別された領域を示す信号に基づき、メモリ１０４を参照して、判別された領域に応じた補正値を取得する。補正値は、θｌｉｍ１、θｌｉｍ２、θｏｆｆｓｅｔ１、θｏｆｆｓｅｔ２等である。補正部１３５は、選択された検出信号ＥＮＣ１が示す検出値φ１、又は検出信号ＥＮＣ２が示す検出値φ２と、補正値とに基づき、判別された領域に応じて上述の（１）〜（４）式の何れかを用いてエンコーダの検出値φを算出する。補正部１３５は、検出値φから出力軸Ｓの位置の検出値を算出し、ＰＩＤ制御部１２１に出力する。補正部１３５は、特許請求の範囲に記載の「補正部」の一例である。
【００８３】
尚、出力軸ＳとモータＭ１、及びＭ２の間には、トルクとは無関係の、モータやエンコーダの取付誤差に起因する角度ズレが含まれる場合がある。このような取付誤差に伴う角度ズレを予め測定してメモリ１０４に記憶しておき、補正部１３５が取付誤差に伴う角度ズレも補正するようにしてもよい。
【００８４】
モード切替部１３６は、指令信号受信部１３２から入力したモード指令信号に応じて、検出信号受信部１３３による検出信号ＥＮＣ１、及び検出信号ＥＮＣ２の出力先を、検出信号選択部１３４、又はメモリ１０４の何れかに切り替える。
【００８５】
検出信号選択部１３４、補正部１３５、及びモード切替部１３６は、例えばＣＰＵ１０１等により実現される。
【００８６】
メモリ１０４は、駆動装置１００の動作モードが補正値取得モードの場合に、所定の条件下で、検出信号受信部１３３から検出信号ＥＮＣ１が示す検出値φ１、及び検出信号ＥＮＣ２が示す検出値φ２を、補正値として記憶する。またメモリ１０４は、駆動装置１００の動作モードが駆動モードの場合に、補正部１３５から入力される電圧指令値の領域を示す信号に応じて、補正部１３５に補正値を出力する。さらにメモリ１０４は、予め規定した正の限界値ｉｎ_ｌｉｍ１、及び負の限界値ｉｎ_ｌｉｍ２を記憶しており、駆動装置１００の動作モードが駆動モードの場合に、検出信号選択部１３４により参照される。
【００８７】
メモリ１０４は、補正値に代えて、例えば（１）〜（４）式等の数式を記憶し、電圧指令値の領域を示す信号に応じて、補正部１３５に数式を出力してもよい。尚、メモリ１０４は、特許請求の範囲に記載の「記憶部」の一例である。
【００８８】
ＰＩＤ制御部１２１は、ＰＩＤ制御により、出力軸Ｓの位置の検出値が目標値に近づくように、電圧指令値ｄｒｖ_ｉｎを算出する。出力軸Ｓの位置の目標値を示す信号は、上位コントローラ２００から指令信号受信部１３２を介してＰＩＤ制御部１２１に入力される。出力軸Ｓの位置の検出値を示す信号は、補正部１３５からＰＩＤ制御部１２１に入力される。ＰＩＤ制御部１２１は、算出した電圧指令値ｄｒｖ_ｉｎをＭ１印加電圧算出部１２２Ａ、Ｍ２印加電圧算出部１２２Ｂ、及び検出信号選択部１３４に出力する。ＰＩＤ制御部１２１は、特許請求の範囲における「制御部」の一例である。
【００８９】
Ｍ１印加電圧算出部１２２Ａは、入力した電圧指令値ｄｒｖ_ｉｎに基づいて、モータＭ１の印加電圧ｄｒｖ_ｏｕｔを算出し、電圧値を示す信号をＭ１ＰＷＭ生成部１２３Ａに出力する。
【００９０】
Ｍ２印加電圧算出部１２２Ｂは、入力した電圧指令値ｄｒｖ_ｉｎに基づいて、モータＭ２の印加電圧ｄｒｖ_ｏｕｔを算出し、電圧値を示す信号をＭ２ＰＷＭ生成部１２３Ｂに出力する。
【００９１】
Ｍ１印加電圧算出部１２２Ａ、及びＭ２印加電圧算出部１２２Ｂにおける電圧指令値ｄｒｖ_ｉｎと印加電圧ｄｒｖ_ｏｕｔとの関係は、図４に一例を示したように、予め設定されている。
【００９２】
ＰＩＤ制御部１２１、Ｍ１印加電圧算出部１２２Ａ、及びＭ２印加電圧算出部１２２Ｂは、例えばＣＰＵ１０１等により実現される。
【００９３】
Ｍ１ＰＷＭ生成部１２３Ａは、Ｍ１印加電圧算出部１２２Ａから印加電圧を入力し、入力した印加電圧に応じたＰＷＭ信号を生成して、Ｍ１駆動部１３１Ａに出力する。Ｍ２ＰＷＭ生成部１２３Ｂは、Ｍ２印加電圧算出部１２２Ｂから印加電圧を入力し、入力した印加電圧に応じたＰＷＭ信号を生成して、Ｍ２駆動部１３１Ｂに出力する。
【００９４】
Ｍ１ＰＷＭ生成部１２３Ａ、及びＭ２ＰＷＭ生成部１２３Ｂは、例えばＡＳＩＣ１０７等により実現される。
【００９５】
Ｍ１駆動部１３１Ａは、Ｍ１ＰＷＭ生成部１２３ＡからＰＷＭ信号を入力し、ＰＷＭ信号に応じた印加電圧をモータＭ１に印加する。Ｍ２駆動部１３１Ｂは、Ｍ２ＰＷＭ生成部１２３ＢからＰＷＭ信号を入力し、ＰＷＭ信号に応じた印加電圧をモータＭ２に印加する。これにより、モータＭ１、及びＭ２が駆動され、伝達系Ｇ１、及びＧ２を介して、出力軸Ｓが駆動される。
【００９６】
Ｍ１駆動部１３１Ａは、Ｍ１ドライバ回路１０６Ａ等により、またＭ２駆動部１３１Ｂは、Ｍ２ドライバ回路１０６Ｂ等により、それぞれ実現される。
【００９７】
ここで図４に戻り、例えば図４の領域Ｒ２では、モータＭ２は、出力軸Ｓに駆動トルクを与え、モータＭ１は、モータＭ２と出力軸Ｓとの間のバックラッシュを低減する。この領域Ｒ２では、検出信号選択部１３４は、エンコーダＥ１の検出信号ＥＮＣ１を選択し、ＰＩＤ制御部１２１は検出信号ＥＮＣ１を制御に用いる。例えば、領域Ｒ４から領域Ｒ２に遷移する場合、又は領域Ｒ１から領域Ｒ２に遷移する場合に、ＰＩＤ制御部１２１が制御に用いる検出信号は、検出信号選択部１３４により、検出信号ＥＮＣ２から検出信号ＥＮＣ１に切り替えられる。このように検出信号選択部１３４は、切り換え手段としての機能を有する。尚、検出信号選択部１３４は、特許請求の範囲に記載の「検出信号切替部」の一例である。
【００９８】
次に、図１１は、本実施形態の駆動装置１００によるモータＭ１、及びモータＭ２と出力軸Ｓとの間の角度ズレの補正処理を示すフローチャートである。
【００９９】
先ず、検出信号選択部１３４は、メモリ１０４を参照し、正の限界値ｉｎ_ｌｉｍ１、及び負の限界値ｉｎ_ｌｉｍ２を取得する（ステップＳ１１０１）。
【０１００】
次に、検出信号選択部１３４は、制御周期毎にＰＩＤ制御部１２１が出力する電圧指令値ｄｒｖ_ｉｎを入力する（ステップＳ１１０２）。
【０１０１】
次に、検出信号選択部１３４は、電圧指令値ｄｒｖ_ｉｎが正の限界値ｉｎ_ｌｉｍ１以上かを判断する（ステップＳ１１０３）。電圧指令値ｄｒｖ_ｉｎが正の限界値ｉｎ_ｌｉｍ１以上の場合（ステップＳ１１０３、Ｙｅｓ）、検出信号選択部１３４は、検出信号ＥＮＣ１を選択し、検出信号ＥＮＣ１と領域Ｒ３を示す信号を補正部１３５に出力する。
【０１０２】
補正部１３５は、領域Ｒ３を示す信号に基づき、メモリ１０４を参照して領域Ｒ３に応じた補正値θｌｉｍ１を取得する。補正部１３５は、（３）式により検出信号ＥＮＣ１が示す検出値φ１を補正し、検出値φを算出する（ステップＳ１１０４）。補正部１３５は、検出値φに応じて出力軸Ｓの位置の検出値を算出し、ＰＩＤ制御部１２１に出力する。
【０１０３】
電圧指令値ｄｒｖ_ｉｎが正の限界値ｉｎ_ｌｉｍ１未満の場合（ステップＳ１１０３、Ｎｏ）、検出信号選択部１３４は、電圧指令値ｄｒｖ_ｉｎが０以上かを判断する（ステップＳ１１０５）。電圧指令値ｄｒｖ_ｉｎが０以上の場合（ステップＳ１１０５、Ｙｅｓ）、検出信号選択部１３４は、検出信号ＥＮＣ２を選択し、検出信号ＥＮＣ２と領域Ｒ４を示す信号を補正部１３５に出力する。
【０１０４】
補正部１３５は、領域Ｒ４を示す信号に基づき、メモリ１０４を参照して領域Ｒ４に応じた補正値θｏｆｆｓｅｔ２を取得する。補正部１３５は、（４）式により検出信号ＥＮＣ２が示す検出値φ２を補正し、検出値φを算出する（ステップＳ１１０６）。補正部１３５は、検出値φに応じて出力軸Ｓの位置の検出値を算出し、ＰＩＤ制御部１２１に出力する。
【０１０５】
電圧指令値ｄｒｖ_ｉｎが０未満の場合（ステップＳ１１０５、Ｎｏ）、検出信号選択部１３４は、電圧指令値ｄｒｖ_ｉｎが負の限界値ｉｎ_ｌｉｍ２以上かを判断する（ステップＳ１１０７）。電圧指令値ｄｒｖ_ｉｎが負の限界値ｉｎ_ｌｉｍ２以上の場合（ステップＳ１１０７、Ｙｅｓ）、検出信号選択部１３４は、検出信号ＥＮＣ１を選択し、検出信号ＥＮＣ１と領域Ｒ２を示す信号を補正部１３５に出力する。
【０１０６】
補正部１３５は、領域Ｒ２を示す信号に基づき、メモリ１０４を参照して領域Ｒ２に応じた補正値θｏｆｆｓｅｔ１を取得する。補正部１３５は、（２）式により検出信号ＥＮＣ１が示す検出値φ１を補正し、検出値φを算出する（ステップＳ１１０８）。補正部１３５は、検出値φに応じて出力軸Ｓの位置の検出値を算出し、ＰＩＤ制御部１２１に出力する。
【０１０７】
電圧指令値ｄｒｖ_ｉｎがｉｎ_ｌｉｍ２未満の場合（ステップＳ１１０７、Ｎｏ）、検出信号選択部１３４は、検出信号ＥＮＣ２を選択し、検出信号ＥＮＣ２と領域Ｒ１を示す信号を補正部１３５に出力する。
【０１０８】
補正部１３５は、領域Ｒ１を示す信号に基づき、メモリ１０４を参照して領域Ｒ１に応じた補正値θｌｉｍ２を取得する。補正部１３５は、（１）式により検出信号ＥＮＣ１が示す検出値φ２を補正し、検出値φを算出する（ステップＳ１１０９）。補正部１３５は、検出値φに応じて出力軸Ｓの位置の検出値を算出し、ＰＩＤ制御部１２１に出力する。
【０１０９】
以上により、検出信号選択部１３４、及び補正部１３５は、モータＭ１、及びモータＭ２と出力軸Ｓとの間の角度ズレの影響を除去した検出値φを取得することができる。
【０１１０】
次に、図１２は、駆動装置１００による補正値の取得処理を示すフローチャートである。
【０１１１】
先ず、指令信号受信部１３２は、動作モードを補正値取得モードにすることを示す指令信号を、上位コントローラ２００から受信し、ＰＩＤ制御部１２１及びモード切替部１３６にその旨を示す信号を出力する（ステップＳ１２０１）。
【０１１２】
次に、ＰＩＤ制御部１２１は、電圧指令値ｄｒｖ_ｉｎを０に設定し、Ｍ１印加電圧算出部１２２Ａ、及びＭ２印加電圧算出部１２２Ｂに出力する（ステップＳ１２０２）。Ｍ１印加電圧算出部１２２Ａ、Ｍ１ＰＷＭ生成部１２３Ａ、及びＭ１駆動部１３１Ａは、電圧指令値ｄｒｖ_ｉｎに応じてモータＭ１を駆動する。Ｍ２印加電圧算出部１２２Ｂ、Ｍ２ＰＷＭ生成部１２３Ｂ、及びＭ２駆動部１３１Ｂは、電圧指令値ｄｒｖ_ｉｎに応じてモータＭ２を駆動する。
【０１１３】
モード切替部１３６は、検出信号ＥＮＣ１が示す検出値φ１、及び検出信号ＥＮＣ２が示す検出値φ２の出力先を、メモリ１０４に切り替える（ステップＳ１２０３）。
【０１１４】
次に、検出信号受信部１３３は、検出信号ＥＮＣ１が示す検出値φ１をメモリ１０４に出力し、メモリ１０４は、検出値φ１を補正値θｏｆｆｓｅｔ１として記憶する（ステップＳ１２０４）。また検出信号受信部１３３は、受信した検出信号ＥＮＣ２が示す検出値φ２をメモリ１０４に出力し、メモリ１０４は検出値φ２を補正値θｏｆｆｓｅｔ２として記憶する（ステップＳ１２０５）。
【０１１５】
次に、ＰＩＤ制御部１２１は、電圧指令値ｄｒｖ_ｉｎを正の限界値ｉｎ_ｌｉｍ１に設定し、Ｍ１印加電圧算出部１２２Ａに出力する（ステップＳ１２０６）。Ｍ１印加電圧算出部１２２Ａ、Ｍ１ＰＷＭ生成部１２３Ａ、及びＭ１駆動部１３１Ａは、電圧指令値ｄｒｖ_ｉｎに応じてモータＭ１を駆動する。
【０１１６】
次に、検出信号受信部１３３は、受信した検出信号ＥＮＣ１が示す検出値φ１をメモリ１０４に出力し、メモリ１０４は、検出値φ１を補正値θｌｉｍ１として記憶する（ステップＳ１２０７）。
【０１１７】
次に、ＰＩＤ制御部１２１は、電圧指令値ｄｒｖ＿ｉｎをｉｎ_ｌｉｍ２に設定し、Ｍ２印加電圧算出部１２２Ｂに出力する（ステップＳ１２０８）。Ｍ２印加電圧算出部１２２Ｂ、Ｍ２ＰＷＭ生成部１２３Ｂ、及びＭ２駆動部１３１Ｂは、電圧指令値ｄｒｖ_ｉｎに応じてモータＭ２を駆動する。
【０１１８】
次に、検出信号受信部１３３は、受信した検出信号ＥＮＣ２が示す検出値φ２をメモリ１０４に出力し、メモリ１０４は検出値φ２を補正値θｌｉｍ２として記憶する（ステップＳ１２０９）。
【０１１９】
以上により、駆動装置１００は、補正値θｏｆｆｓｅｔ１、θｏｆｆｓｅｔ２、θｌｉｍ１、及びθｌｉｍ２を取得し、メモリ１０４に記憶することができる。
【０１２０】
図１３は、本実施形態の指令値と補正値の対応関係を示すテーブルの一例を示す図である。図１３に示されているテーブルがメモリ１０４に記憶される。補正部１３５は、電圧指令値ｄｒｖ_ｉｎの領域に基づき、メモリ１０４を参照して、補正値を取得することができる。
【０１２１】
ここで、本実施形態の駆動装置１００によるエンコーダの検出信号の選択の効果を、図１４を参照して説明する。図１４は、本実施形態の出力軸Ｓの駆動に伴うエンコーダで検出した角度の変化の一例を示す図である。横軸は時間を示し、縦軸は角度の検出値を示す。
【０１２２】
時間領域１４５は、電圧指令値ｄｒｖ_ｉｎが領域Ｒ４の時の時間領域であり、時間領域１４６は、電圧指令値ｄｒｖ_ｉｎが領域Ｒ３の時の時間領域である。時間領域１４７は、電圧指令値ｄｒｖ_ｉｎが領域Ｒ４の時の時間領域であり、時間領域１４８は、電圧指令値ｄｒｖ_ｉｎが領域Ｒ２の時の時間領域である。時間領域１４９は、電圧指令値ｄｒｖ_ｉｎが領域Ｒ１の時の時間領域である。図１４に示す例では、時間の経過に応じて、電圧指令値ｄｒｖ_ｉｎが領域Ｒ４、領域Ｒ３、領域Ｒ４、領域Ｒ２、領域Ｒ１の順に変化している。
【０１２３】
実線１４１は、トルクがかかっている場合のエンコーダＥ１による検出値φ１である。点線１４２は、トルクがかかっていない場合のエンコーダＥ１による検出値φ１である。一点鎖線１４３は、トルクがかかっている場合のエンコーダＥ２による検出値φ２である。二点鎖線１４４は、トルクがかかっていない場合のエンコーダＥ２による検出値φ２である。
【０１２４】
トルクがかかっていない場合は、モータＭ１、及びＭ２とも角度ズレが生じないため、検出値φ１、及びφ２とも角度ズレが含まれない正常な出力となる。一方、トルクがかかっている場合は、電圧指令値ｄｒｖ_ｉｎの領域の変化に応じて検出値φ１、及びφ２に角度ズレが含まれる。
【０１２５】
時間領域１４５（領域Ｒ４）、時間領域１４７（領域Ｒ４）、及び時間領域１４９（領域Ｒ１）では、実線１４１で示されている検出値φ１は、非線形に変化する角度ズレが含まれ、点線１４２と異なる傾向を示している。一方、一点鎖線１４３で示されている検出値φ２は、角度ズレは一定であるため、二点鎖線１４４と同様の傾向を示している。従って、これらの時間領域では、検出値φ２を用いることで、角度ズレの影響を除去した検出値φが得られる。
【０１２６】
時間領域１４６（領域Ｒ３）、及び時間領域１４８（領域Ｒ２）では、実線１４１で示されている検出角度φ１は、角度ズレは一定であるため、点線１４２と同様の傾向を示している。一方、一点鎖線１４３で示されている検出角度φ２は、非線形に変化する角度ズレが含まれ、二点鎖線１４４と異なる傾向を示している。従って、これらの時間領域では、検出値φ１を用いることで、角度ズレの影響を除去した検出値φが得られる。
【０１２７】
以上説明してきたように、本実施形態によれば、ダブルモータ等のマルチモータの制御において、モータや出力軸等の回転軸のネジレ、ギアの歯の変形等に起因したモータと出力軸の角度ズレの影響を除去して、モータ軸エンコーダの検出信号により出力軸の角度を正確に検出することができる。出力軸の角度の正確な検出値を用いることで、出力軸による高精度の位置制御を実現することができる。
【０１２８】
ところで、伝達系に減速比Ｈの減速機を用いると、例えば、モータの角度θｍと、出力軸の角度θｏｕｔとの間には、次の（５）式の関係が成立する。
【０１２９】
θｏｕｔ＝θｍ／Ｈ            （５）
モータの角度θｍを、減速比Ｈで分割できるため、出力軸の角度の分解能を上げるとともに、トルクを上げることが可能になる。また複数のギアを用いて多段減速するほど、減速比Ｈを大きくでき、さらに出力軸の角度の分解能を上げ、トルクを上げることができる。
【０１３０】
しかし、多段減速のギア数が増えるほど、モータや出力軸等の回転軸のネジレ、ギアの歯の変形等に起因する角度ズレが大きくなり、出力軸による位置制御の精度が低下する場合がある。
【０１３１】
本実施形態によれば、モータや出力軸等の回転軸のネジレ、ギアの歯の変形等に起因する角度ズレの影響を除去できる。そのため減速機による多段減速において、出力軸の角度の分解能を上げ、トルクを上げながら、出力軸による位置制御の精度を確保することができる。またモータ軸エンコーダの検出信号を用い、減速機による減速前の角度を検出して制御に用いるため、高性能で高価なエンコーダを用いなくとも、出力軸による高精度の位置制御が可能になる。
【０１３２】
さらに、本実施形態によれば、従来、ステッピングモータを使って行っていた角度制御が必要な機構等において、ステッピングモータを、ＤＣブラシレスモータ、ＤＣブラシ付モータ、又はＡＣモータに置き換えることが可能となる。産業用ロボットに限らず、自動車等の車両のドアミラーの角度調整や、衛星アンテナの角度調整等、角度調整が必要な機構に広く適用することができ、汎用性をより向上させた角度調整機構を提供することができる。
【０１３３】
尚、本実施形態では、出力軸による位置制御について述べたが、これに限定されず、出力軸による速度制御等を行う場合でも同様に適用できる。
【０１３４】
［第２の実施形態］
次に、第２の実施形態の画像形成装置の一例を説明する。尚、第１の実施形態において、既に説明した実施形態と同一構成部についての説明は省略する場合がある。
【０１３５】
第１の実施形態では、θｏｆｆｓｅｔ１、θｏｆｆｓｅｔ２、θｌｉｍ１、及びθｌｉｍ２を有する１セットの補正値を用いて、補正部１３５が検出値φ１、又はφ２を補正する例を示した。しかし、出力軸Ｓの実際の制御においては、出力軸Ｓの回転方向、角度、速度等の出力条件によって、重力の影響等が異なり、負荷トルクが変化する場合がある。負荷トルクが変化すると、適正な補正値が異なってくる。
【０１３６】
このため本実施形態では、出力軸の動作条件に応じた複数の補正値のセットをメモリに記憶しておき、出力軸の動作条件に応じて補正値のセットを選択することで、適正な補正値を用いた補正を可能にする。
【０１３７】
一方で、伝達系や出力軸の剛性は、経時で変化する場合がある。剛性が変化すると、適正な補正値が異なってくる。このため本実施形態では、例えばタイマーで計測した経過時間に基づく定期的な補正値の更新指令に応じて、補正値を更新可能にする。
【０１３８】
図１５は、本実施形態の駆動装置１００ａの構成要素の一例を機能ブロックで示す図である。駆動装置１００ａは、メモリ１０４ａと、指令信号受信部１３２ａと、補正値選択部１３７と、補正値更新部１３８とを有する。
【０１３９】
メモリ１０４ａは、出力軸の動作条件に応じた複数の補正値のセットを記憶する。例えば、メモリ１０４ａは、出力軸の動作条件Ａに応じた補正値のセットＡと、出力軸の動作条件Ｂに応じた補正値のセットＢとを記憶する。セットＡは、θｏｆｆｓｅｔ１Ａ、θｏｆｆｓｅｔ２Ａ、θｌｉｍ１Ａ、及びθｌｉｍ２Ａを有し、セットＢは、θｏｆｆｓｅｔ１Ｂ、θｏｆｆｓｅｔ２Ｂ、θｌｉｍ１Ｂ、及びθｌｉｍ２Ｂを有する。尚、メモリ１０４ａは、補正値のセットに代えて、（１）〜（４）式等の数式を記憶してもよい。
【０１４０】
指令信号受信部１３２ａは、上位コントローラ２００ａから目標値指令信号を受信し、ＰＩＤ制御部１２１に出力する。本実施形態では、目標値は、例えば出力軸Ｓの位置の目標値である。
【０１４１】
指令信号受信部１３２ａは、駆動装置１００の動作モードを駆動モード、又は補正値取得モードに切り替えるためのモード指令信号を上位コントローラ２００ａから受信し、モード切替部１３６に出力する。
【０１４２】
指令信号受信部１３２ａは、出力軸の動作条件に応じた補正値のセットの選択指令信号を上位コントローラ２００から受信し、補正値選択部１３７に出力する。また指令信号受信部１３２ａは、補正値の更新指令信号を上位コントローラ２００ａから受信し、補正値更新部１３８に出力する。
【０１４３】
指令信号受信部１３２ａは、指令信号入力Ｉ／Ｆ１０５等により実現される。
【０１４４】
補正値選択部１３７は、指令信号受信部１３２ａから入力した選択指令に基づき、メモリ１０４ａを参照して補正値のセット、又は数式を取得する。また補正値選択部１３７は、判別された領域を示す信号を補正部１３５から入力し、領域に応じた補正値を補正部１３５に出力する。補正値選択部１３７は、特許請求の範囲に記載の「補正値選択部」の一例である。
【０１４５】
補正値更新部１３８は、指令信号受信部１３２ａから入力した更新指令に応じて、上位コントローラ２００ａから新たな補正値を入力し、メモリ１０４ａに記憶された補正値を新たな補正値に書き換える。或いは、補正値更新部１３８は、指令信号受信部１３２ａから入力した更新指令に応じて、上位コントローラ２００ａから新たな数式を入力し、メモリ１０４ａに記憶された数式を新たな数式に書き換える。これによりメモリ１０４ａに記憶された補正値、又は数式が更新される。補正値更新部１３８は、特許請求の範囲に記載の「更新部」の一例である。
【０１４６】
補正値選択部１３７、及び補正値更新部１３８は、例えばＣＰＵ１０１等により実現される。
【０１４７】
尚、本実施形態では上位コントローラ２００ａから新たな補正値、又は数式を入力する例を示したが、これに限定はされない。例えば補正値更新部１３８は、更新指令に応じてモード切替部１３６にモード指令を出力する。モード切替部１３６は、入力したモード指令に応じて、検出信号ＥＮＣ１が示す検出値φ１、及び検出信号ＥＮＣ２が示す検出値φ２の出力先を、メモリ１０４に切り替える。そして、メモリ１０４ａは、入力した検出信号ＥＮＣ１が示す検出値φ１、及び検出信号ＥＮＣ２が示す検出値φ２により、記憶された補正値、又は数式を更新してもよい。
【０１４８】
以上説明したように、本実施形態では、出力軸の動作条件に応じて、メモリに記憶された複数の補正値のセット、又は数式を選択することで、適正な補正値を用い、補正を行うことができる。また、定期的な補正値の更新指令に応じて、補正値、又は数式を更新することで、伝達系や出力軸の剛性に経時変化に応じた適正な補正値、又は数式を用い、補正を行うことができる。
【０１４９】
尚、これ以外の効果は、第１の実施形態で説明したものと同様である。
【０１５０】
以上、実施形態に係る駆動装置、駆動方法、及びプログラムについて説明したが、本発明は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。
【符号の説明】
【０１５１】
１００      駆動装置（駆動装置の一例）
１０４、１０４ａ  メモリ（記憶部の一例）
１２１      ＰＩＤ制御部（制御部の一例）
１２２Ａ    Ｍ１印加電圧算出部
１２２Ｂ    Ｍ２印加電圧算出部
１２３Ａ    Ｍ１ＰＷＭ生成部
１２３Ｂ    Ｍ２ＰＷＭ生成部
１３１Ａ    Ｍ１駆動部
１３１Ｂ    Ｍ２駆動部
１３２、１３２ａ  指令信号受信部
１３３      検出信号受信部
１３４      検出信号選択部（検出信号選択部の一例、検出信号切替部の一例）
１３５      補正部（補正部の一例）
１３６      モード切替部
１３７      補正値選択部（補正値選択部の一例）
１３８      補正値更新部（更新部の一例）
２００、２００ａ  上位コントローラ
Ｍ１        モータ（第１のモータの一例）
Ｍ２        モータ（第２のモータの一例）
Ｅ１        エンコーダ（第１の回転検出部の一例）
Ｅ２        エンコーダ（第２の回転検出部の一例）
Ｓ          出力軸（被駆動軸の一例）
Ｄ          駆動系
Ｇ１、Ｇ２  伝達系
【先行技術文献】
【特許文献】
【０１５２】
【特許文献１】特許４４４４５５６号公報
【図１】
2019216558.tif 000003
【図２】
2019216558.tif 000004
【図３】
2019216558.tif 000005
【図４】
2019216558.tif 000006
【図５】
2019216558.tif 000007
【図６】
2019216558.tif 000008
【図７】
2019216558.tif 000009
【図８】
2019216558.tif 000010
【図９】
2019216558.tif 000011
【図１０】
2019216558.tif 000012
【図１１】
2019216558.tif 000013
【図１２】
2019216558.tif 000014
【図１３】
2019216558.tif 000015
【図１４】
2019216558.tif 000016
【図１５】
2019216558.tif 000017