以下、本発明の実施形態を図面に基づいて説明する。本実施形態では、図1に示すように、福祉車両20における座席30を車外側へ振り出し又は車内側へ格納するために駆動される複数のモータを同期制御する場合を例として説明する。座席30は、本発明の移動対象物に相当する。また、振り出し方向への移動は、本発明の第1方向への移動に相当し、格納方向への移動は、本発明の第2方向への移動に相当する。本実施形態においては、座席30は、回転方向A、前後スライド方向B、内外スライド方向Cの3方向に移動時間の一部又は全てを重複して移動する。これにより、座席30は、ドアや車体等に当ることのない適切な移動軌跡Eを通って車外側へ振出し又は車内側へ格納される。
このように座席30を上記3方向のそれぞれについて適切な時期に適切な速度で移動させるため、本実施形態においては、図2に示すように、3方向それぞれに座席30を移動させるために第1モータ1、第2モータ2、第3モータ3の3個のモータが備えられる。即ち、第1モータ1は回転方向A、第2モータ2は前後スライド方向B、第3モータ3は内外スライド方向Cの座席30の移動をそれぞれ担当し、図示しないアーム等の機構部品を介して座席30を移動させる。尚、本実施形態においては、3つのモータを有する場合を例示しているが、座席30のシートバックの傾斜角度を変更するリクライニング用モータなどの他のモータを含めて4つ以上のモータを有していてもよい。当然ながら、ドアの開口が大きい車両などでは、例えば、回転方向Aと内外スライド方向Cとの2つのモータのみを有して構成されていてもよい。
第1モータ1、第2モータ2、第3モータ3は、座席30の振出し又は格納の際に、動作する動作量(例えば回転量)がそれぞれ異なり、その間の動作速度や荷重もそれぞれに異なる。即ち、これら第1モータ1、第2モータ2、第3モータ3は、それぞれに負荷が異なっており、それに応じてそれぞれに特性が異なるモータが用いられている。また、本実施形態においては、図3に示すように、これら3つのモータは、動作開始及び動作完了の時刻も異なっている。つまり、3つのモータが動作時間の一部又は全てを重複して動作することによって、座席30は車両20に格納された状態の一方の端点(完全格納端、回転格納端)p0から、車外に振り出された状態の他方の端点(完全振り出し端、内外スライド振り出し端)p4まで移動する。
具体的には、初めに完全格納端p0において第1モータ1が動作を開始し、座席30は図1に示すA方向へ沿って車外側へと回転し始める。座席30の移動量が第1中間点(前後スライド格納端)p1に達すると、第2モータ2も動作を開始し、座席30は回転しながら前後移動する(図1に示すA及びB)。第1中間点p1は、回転と前後スライドとの2つの動作が同期を開始する同期開始点psyである。尚、後述するように、座席30が振り出し状態から格納される際には、同期開始点psyは、2つのモータの動作が同期を完了する点となる。従って、第1モータ1及び第2モータ2においては、本発明の「動作完了位置」に相当すると考えることもできる。特に、第1モータ1は、格納時にはさらに動作を継続するが、完全格納端p0だけでなく、同期開始点psyも「動作完了位置」に相当する。
座席30の移動量が第2中間点(内外スライド格納端)p2に達すると、第3モータ3も動作を開始する。座席30は、回転を伴って、前後方向及び内外方向へ移動する(図1に示すA、B、C)。座席30が第3中間点(理想回転振り出し端(基準停止位置)、前後スライド振り出し端)p3に達すると、第1モータ1及び第2モータ2が停止する。但し、第1モータ1については理想的には、第3中間点p3で停止するように設計されるものの、実際には機械的な規制手段によって第3中間点p3の近傍の規制端点(回転振り出し端)spで停止する(図4参照)。第3中間点p3及び規制端点spを過ぎると、第3モータ3のみが動作を継続し、完全振り出し端p4に達した時点で停止する。格納時には、基本的に上述した振り出し動作と逆の順序で動作する。
上述したように、格納時に第2モータ2及び第3モータ3が動作を完了する位置では、複数のモータが動作している。従って、格納時における第2モータ2及び第3モータ3の動作完了位置は、第2モータ2及び第3モータ3の「同期動作完了位置」と言うこともできる。格納時に、第1中間点p1(同期開始点psy)を過ぎた後、単独で動作する第1モータ1は、第1中間点p1において他のモータ(本例では第2モータ2)との同期動作を完了する。従って、格納時における第1中間点p1(同期開始点psy)は、第1モータ1の「同期動作完了位置」ということもできる。
モータ制御装置10は、このように3つのモータを動作時間の一部又は全てを重複して駆動制御する。この際、3つのモータを個別に制御すると座席30の動きに統一感がなくなるため、3つのモータは同期制御される。円滑に同期制御を実行するため、モータ制御装置10は、3つのモータの単位動作量(単位回転量)が共通する基準動作量情報に基づいて制御を実行する。上述した完全格納端p0から完全振り出し端p4までの各点は、基準動作量を用いた基準位置Rとして定義される。以下、基準動作量情報について説明する。
図2に示すように、第1モータ1、第2モータ2、第3モータ3には、回転量に応じてパルス信号を出力する第1回転センサ21、第2回転センサ22、第3回転センサ23が備えられている。モータ制御装置10に設けられた実動作量取得部4は、第1回転センサ21、第2回転センサ22、第3回転センサ23から出力されたパルス信号を受け取り、そのパルス数を積算して実パルス数情報(実動作量情報)M1、M2、M3を取得する。実パルス数情報が示す値(実パルス数)は、本実施形態では、座席30の振り出し時における各モータ1〜3の動作開始から現時点までの実際の動作量(実動作量)を表している。図3に示すように、本実施形態では、説明を簡単にするために、振り出し時における第1モータ1の動作の始端から終端までの実パルス数が400パルス、第2モータ2の実パルス数が150パルス、第3モータ3の実パルス数が100パルスとする。
各実動作量情報M1、M2、M3は、負荷や特性が異なる各モータの固有の値であるから、そのままでは同期制御が煩雑となる。そこで、モータ制御装置10に設けられた変換部5において、各実動作量情報M1、M2、M3は、単位動作量が各モータに共通する値である基準動作量情報に変換される。ここで、単位動作量とは、単位時間当たりの各モータの動作量である。3つのモータ1〜3は、同期制御されるので、単位動作量が共通する基準動作量情報を用いると同期の良否判定も容易となり制御の負荷が軽減される。変換部5は、変換パラメータに基づいて各実動作量情報を基準動作量情報に変換する。本実施形態において、変換パラメータは変換係数a1,a2,a3及びオフセット値c1,c2,c3である。
まず、変換係数a1,a2,a3について説明する。変換部5は、各モータ1〜3の実動作量情報M1、M2、M3にそれぞれ所定の変換係数a1,a2,a3を乗じて、各実動作量情報を基準動作量情報に変換する。本実施形態では、第1モータ1の変換係数a1は1であり、第2モータ2の変換係数a2は2であり、第3モータ3の変換係数a3は4である。変換係数a1〜a3は、制御対象の各モータ1〜3の理論パルス数(理論動作量)の比に基づいて定めた定数である。
図3に示すように、完全格納端p0から完全振り出し端p4までの各点は、基準動作量を用いた基準位置Rとして以下のように表される。
完全格納端 p0:R(p0)= 0
第1中間点 p1:R(p1)=100
第2中間点 p2:R(p2)=200
第3中間点 p3:R(p3)=400
完全振り出し端p4:R(p4)=600
また、各モータは、基準位置Rに基づけば以下の範囲で動作することになる。
第1モータ : R(p0)〜R(p3)= 0〜400
第2モータ : R(p1)〜R(p3)=100〜400
第3モータ : R(p2)〜R(p4)=200〜600
各モータの実動作量情報M1〜M3の値域は、0から始まるので、各モータの実動作量情報M1〜M3をそれぞれ基準動作量情報R1〜R3に変換する際には、所定のオフセット値c1〜c3が加算される。上記、各モータの基準位置Rにおける動作範囲より、第1モータ1のオフセット値c1はゼロ、第2モータ2のオフセット値c2は100、第3モータ3のオフセット値c3は200である。また、上述したように、第1モータ1の変換係数a1は1であり、第2モータ2の変換係数a2は2であり、第3モータ3の変換係数a3は4である。本実施形態では、後述するように同期制御に用いる基準動作量情報R1〜R3を得るまでに、補正処理が施される。従って、ここでは、実動作量情報M1〜M3から補正前の基準動作量情報r1〜r3への変換式を示す。
第1モータの基準動作量情報r1=M1・a1+c1= M1
第2モータの基準動作量情報r2=M2・a2+c2=2・M2+100
第3モータの基準動作量情報r3=M3・a3+c3=4・M3+200
モータ制御装置10は、例えば、マイクロコンピュータなどのプロセッサを中核としたECU(electronic control unit)として構成される。ECUには、マイクロコンピュータの他、プログラムメモリやパラメータメモリ、ワークメモリなどの各種メモリや、周辺機器とのインターフェースとなる電子部品等が搭載されている。マイクロコンピュータのCPUコアは、命令レジスタや命令デコーダ、種々の演算の実行主体となるALU(arithmetic logic unit)、フラグレジスタ、汎用レジスタ、割り込みコントローラなどを有して構成される。当然ながら、プログラムメモリやワークメモリも、CPUコアなどと共に1つのプロセッサに内蔵されていてもよい。図2に示す変換部5や補正部8の演算器51〜53、81〜83などは、例えばALUによって構成される。実動作量取得部4のレジスタ41〜43、変換部5や補正部8のパラメータレジスタ54〜59、84〜89などは、例えば汎用レジスタによって構成される。制御部9など図2における他の機能部についても、上述したCPUコアの各部を用いて構成される。当業者であれば容易に理解可能であろうから詳細な説明は省略する。上述した、変換係数a1〜a3やオフセット値c1〜c3は、プログラムメモリやパラメータメモリなどによって構成される記憶部に記憶されており、汎用レジスタなどに読み出されて利用される。当然ながら、プログラムの進行に伴って、新たなデータに更新されてもよい。
モータ制御装置10の制御部9は、基準動作量情報R1〜R3(r1〜r3)に基づいて、モータ1〜3をPWM(pulse width modulation )制御などによって同期制御する。例えば、図3に示すように任意の点pnにおける同期制御を例として説明する。ここでは、任意の点pnにおける基準位置R(pn)は300である。モータ1〜3が理想的に動作していれば、各モータの基準動作量情報R1〜R3(r1〜r3)は全て300である。しかし、実際には、負荷の増減等により互いに異なる値となることがある。ここで、R1=298、R2=307、R3=304であったとする。動作中のモータの平均基準動作量Rav(=(R1+R2+R3)/3)は303である。第1モータ1は遅れており、第2モータ2及び第3モータ3は進んでいることになる。そこで、制御部9は、動作中のモータの同期ずれを修正して座席30が所望の軌跡に沿って移動するように制御する。具体的には、第1モータ1のPWM制御のパルス幅を広げて速度を上げさせたり、第2モータ2及び第3モータ3のPWM制御のパルス幅を狭めて速度を下げさせたりする。この際、制御部9は頻繁な速度変化によるハンチングを抑制するために、平均基準動作量Ravとの偏差が所定の許容量よりも小さいモータに関しては修正を行わないと好適である。例えば、この許容量が2である場合には、基準動作量が301〜305の許容範囲にあるモータについてはパルス幅を修正しないようにする。本例においては第3モータ3についてはパルス幅が修正されないことになる。
ところで、本実施形態においては、座席30をA方向に回転させる第1モータ1は、上述したように、理想的には、第3中間点p3(基準停止位置)で停止するように設計されるものの、実際には機械的な規制手段によって第3中間点p3の近傍の規制端点spで停止する。福祉車両では、振り出し時に歯車等の機構部品の機械的な公差やバックラッシュにより座席30が振動すると搭乗者に違和感や不安感を抱かせる可能性がある。このため、規制手段により機械的に規制される位置まで第1モータ1が動作させられる。第1モータ1が停止する際の誤差、つまり、第3中間点p3と規制端点spとの誤差は回転方向Aにおける角度でおおよそ±2度程度である。本実施形態では、図4に示すように、この誤差は基準位置R(基準動作量情報)に換算して±12程度となる。
この第3中間点p3においては、振り出し時には第2モータ2が停止される。例えば、第1モータ1が第3中間点p3よりも手前の388(=400−12)で停止するときには、回転(A)が終了した後にも前後方向移動(B)が継続する。第1モータ1が412(=400+12)で停止するときには、前後方向移動(B)が終了した後も回転(A)が継続する。特に、回転(A)が終了した後に前後方向移動(B)が継続すると、座席30が車両の外側を向いていることから搭乗者は回転を伴わずに左右方向に横移動することとなり、違和感を覚える場合がある。但し、回転(A)に伴う慣性力が働いているため、後述する格納時と比べると違和感は少ない。
一方、格納時には、基準動作量情報(基準位置R)に基づいて同期制御され、第3中間点p3において第1モータ1及び第2モータ2が共に動作を開始する。第1モータ1の動作開始時において、第2モータ2及び第3モータ3の基準動作量情報r2及びr3はほぼ400近傍となるように同期制御されているから、平均基準動作量情報Ravと第1モータ1の基準動作量情報r1との偏差は非常に大きくなる。その結果、制御部9は、第1モータ1のPWM制御のデューティーを大きく変更することとなる。特に、第1モータ1が412(=400+12)で停止していたときには、第1モータ1が動作を開始した時点で格納方向へ向かって約12の偏差を生じて遅れていることとなる。第1モータ1は、図4に示すように一点鎖線から点線まで偏差を縮めるべく大きく加速され、過負荷となる可能性がある。また、第1モータ1が、388(=400−12)で停止していた時には、第1モータ1が動作を開始した時点で格納方向へ向かって約12の偏差を生じて進んでいることとなる。従って、図4に示す二点鎖線から点線までの偏差を縮めるべく、第1モータ1の加速が遅れることとなる。この時、座席30が車両の外側を向いていることから搭乗者は、ほとんど回転を伴うことなく左右方向に横移動することとなる。この時には振り出し時とは異なり、回転(A)の慣性力がないので、振り出し時よりも違和感を覚えやすい。
そこで、モータ制御装置10は、少なくとも第1モータ1の基準動作量情報r1を補正する。具体的には、規制端点spにおける基準動作量情報(停止位置情報)の値(388や412など。)が、第3中間点(基準停止位置情報)p3の値(400)となるように基準動作量情報を補正する。この補正は、図2に示す補正部8において実施される。補正後の第1モータ1の基準動作量情報はR1である。第2モータ2及び第3モータ3の基準動作量情報が補正された場合には、それぞれ、R2、R3となる。
図5は、第1モータ1の基準動作量情報r1のみを補正して基準動作量情報R1とした場合の状態図の一例を示す。図5では、規制端点spにおけるプラス方向(完全振り出し端p4側)への誤差の補正例を示す。この状態図は、座席30が一度振り出され、その際に取得された規制端点spにおける基準動作量情報r1(停止位置情報)を用いて補正された基準動作量情報R1に基づいて座席30が格納される際に適用されると好適である。図5に示す例では、第1モータ1は振り出し時に基準動作量情報r1=412で停止したとする(停止位置情報)。この値が基準停止位置情報の値に相当する400であれば、格納時に第2モータ2と共に動作を開始することが可能である。
そこで、補正前の基準動作量情報r1に補正係数(補正パラメータ)b1=0.96を乗じて、補正後の基準動作量情報R1とする。補正係数b1は、下記式により算出される。ここでは、前後スライド格納端p1から始まる前後スライドと回転との同期タイミングを維持するために、基準位置R=100(同期開始点psy、第1中間点p1)以降で基準動作量情報r1を補正する。つまり、補正係数b1は、規制端点spの理論的な位置である基準停止位置(第3中間点p3)から同期開始点psy(第1中間点p1)までの理論的な動作量を、停止位置情報に基づく規制端点spの実際の位置から同期開始点psy(第1中間点p1)までの実際の動作量に比例配分することによって演算される。上述したように、第1モータ1の場合、同期開始点psy(第1中間点p1)は、格納時において同期動作が完了する点である。従って、同期開始点psy(第1中間点p1)は、第1モータ1の動作完了位置(同期動作完了位置)に相当する。
b1=(基準停止位置−第1中間点p1)/(規制端点−第1中間点p1)
=(R(p3)−R(p1))/(R(sp)−R(p1))
= 300/312 ≒ 0.96
実際の回転振り出し端である規制端点spは、停止検出部25により検出される。例えば、停止検出部25は、第1モータ1に設けられた電流センサ24からモータ電流値や過電流検出信号を受け取る。モータ電流値が所定のしきい値よりも大きい時や、過電流検出信号が有効状態であるとき、停止検出部25は第1モータ1が規制手段によって回転を規制されて停止状態となっていることを検出する。あるいは、停止検出部25は、回転センサ21から受け取るパルス信号が所定時間変化しない場合に、第1モータ1が停止状態となっていることを検出してもよい。
停止位置情報取得部6は、停止検出部25から第1モータ1が停止状態であるとの検出結果を受け取ると、その時点における第1モータ1の基準動作量情報r1(R1)を取得する。この時点において補正部8における補正係数(補正パラメータ)は初期値の1であるので、補正前後の基準動作量情報r1及びR1は同じ値であり、実際に制御部9において使用される基準動作量情報r1(R1)の値が取得される。取得された値は、実際の回転振り出し端(規制端点)spにおける基準動作量情報r1(R1)の値である。一方、理想回転振り出し端p3及び同期開始点psy(第1中間点p1)における基準動作量情報r1(R1)の値は既知であるから、これらの値に基づいて、補正パラメータ演算部7は上記のように補正係数b1を演算する。演算された補正係数b1は、補正部8のレジスタ84に設定される。
第3中間点p3及び規制端点spを過ぎると、第3モータ3のみが動作を継続し、完全振り出し端p4に達した時点で停止する。続いて、完全振り出し端p4(又は、規制端点spよりも完全振り出し端p4側)から格納方向へ座席30が移動される場合について説明する。ここでは、動作対象のモータは第3モータ3のみであるから、第3モータ3の基準動作量情報r3(R3)が平均基準動作量Ravとなる。制御部9は、第3モータ3の基準動作量情報r3(R3)に基づいて第3モータ3を制御する。また、第3モータ3に関しては、補正係数b3が設定されておらず初期状態のままであるから、補正前後の基準動作量情報r3及びR3は同値である。
平均基準動作量Rav(=基準動作量情報r3(R3))が400に達すると、第1モータ1及び第2モータ2の動作が開始される。第2モータ2は、振り出しの際に基準動作量情報r2(R2)が400で停止している。また、第2モータ2に関しては、補正係数b2が設定されておらず初期状態のままであるから、補正前後の基準動作量情報r2及びR2は同値である。第1モータ1は、振り出しの際に、基準動作量情報r1が412である規制端点spにおいて停止している。しかし、上述したように補正係数b1が設定されていることから、補正後の基準動作量情報R1は、同期開始点psyの基準位置R(psy)をSYとして、以下のように演算される。
if r1<SY:
R1=SY+(r1−SY)・b1
else:
R1= r1 = M1・a1+c1
規制端点spにおける補正後の基準動作量情報R1(sp)は以下に示すように400となる。
R1(sp)=100+(412−100)×0.96≒400
このように、第3モータ3の基準動作量情報r3(R3)が400の時に起動される第1モータ1及び第2モータ2の基準動作量情報R1及びr2(R2)は、共に400である。従って、動作対象の3つのモータの平均基準動作量Ravは400となり、何れのモータも誤差を生じない。従って、各モータはPWM制御のデューティーに大きな変動を生じることもなく、また、加減速を繰り返すようなハンチングを生じることもなく、良好に動作する。当然ながら、搭乗者に対して違和感を生じさせることもない。
尚、本実施形態では、第1モータ1の基準動作量情報r1の演算に際しては、上述したようにオフセット値c1=0である。オフセット値c1≠0の場合には、補正後の基準動作量情報R1は以下のように求められる。
if r1<SY:
R1=SY+(r1−SY−c1)・b1+c1
R1=SY+(M1・a1+c1−SY−c1)・b1+c1
R1=SY+(M1・a1−SY)・b1+c1
else:
R1= r1 = M1・a1+c1
以降、上述したように平均基準動作量Ravに基づいて同期制御が実行され、第3モータ3の基準動作量情報r3(R3)が200に達すると、第3モータ3が停止される。この際、理想的には平均基準動作量Ravも200であり、第2モータ2の基準動作量情報r2(R2)も、第1モータ1の基準動作量情報R1も200である。但し、第1モータ1の基準動作量情報R1は補正後の値であるから、振り出し時の基準動作量情報r1に換算すると、
204=100+(200−100)/0.96
である。従って、図5に一点鎖線で示すように、第2中間点p2における各モータの相対位置が、振り出し時とは若干異なるものとなる。座席30の移動軌跡Eは振り出し時とは若干異なるが、搭乗者にはほとんど違和感を生じさせることはない。
一方、第1中間点p1(同期開始点psy)を基準として補正を行っているので、第1中間点p1における第1モータ1と第2モータ2との相対位置は、振り出し時と同様となる。つまり、第2モータ2の基準動作量情報r2(R2)が100に達すると、第2モータ2が停止される。この際、第1モータ1の基準動作量情報R1も100であるから、座席30の移動軌跡Eは振り出し時と同様となる。格納時において第1モータ1の実動作量M1=100となるときには、補正が完了しており、第1モータ1と第2モータ2とは同期をとって第1中間点p1に達することとなる。この後も、さらに第1モータ1は動作を継続する。第1モータ1は、第1モータ1の基準動作量情報R1が0となると、つまり完全格納端p0において停止される。補正前後の基準動作量r1及びR1の値は共に0であるから、振り出し時と同じ完全格納端p0において第1モータ1は停止される。
このように、振り出し時において検出された規制端点spの基準動作量情報(停止位置情報)に基づいて求められた補正係数b1により第1モータ1の基準動作量情報r1が補正される。そして、格納時には補正後の基準動作量情報R1が用いられることによって座席30が円滑に移動される。尚、完全格納端p0(又は、規制端点spよりも完全格納端p0側)から座席30が再度、振り出される際にも、第1モータ1は補正係数b1を用いて補正された後の基準動作量情報R1に基づいて制御される。つまり、図5に示した状態図に従って3つのモータが制御される。補正係数b1を求めて格納された後の移動時には、理想的な移動軌跡とは若干異なるものの、振り出し時及び格納時の座席30の起動軌跡Eは同一となる。
図6は、図5と同様に、第1モータ1の基準動作量情報r1のみを補正して基準動作量情報R1とした場合の状態図の一例である。図6では、規制端点spにおけるマイナス方向(完全格納端p0側)への誤差を補正する例を示している。動作の流れについては、上述した通りであるので、説明を省略する。図6に示す例では、第1モータ1は振り出し時に基準動作量情報r1=388で停止したとする(停止位置情報)。この値が400であれば、格納時に第2モータ2と共に動作を開始することが可能である。そこで、補正前の基準動作量情報r1に補正係数b1=1.04を乗じて、補正後の基準動作量情報R1とする。補正係数b1は、下記式により算出される。
b1=(基準停止位置−第1中間点p1)/(規制端点−第1中間点p1)
=(R(p3)−R(p1))/(R(sp)−R(p1))
= 300/288 ≒ 1.04
従って、格納時において、規制端点spにおける補正後の基準動作量情報R1(sp)は以下に示すように400となる。
R1(sp)=SY+(r1−SY)・b1
=100+(388−100)×1.04≒400
第1中間点p1(同期開始点psy)を基準として補正を行っているので、図6に示すように、第1中間点p1における第1モータ1と第2モータ2との相対位置は、振り出し時と同様となる。つまり、第2モータ2の基準動作量情報r2(R2)が100に達すると、第2モータ2が停止される。この際、第1モータ1の基準動作量情報R1も100であるから、座席30の移動軌跡Eは振り出し時と同様となる。そして、第1モータ1は、第1モータ1の基準動作量情報R1が0となると、つまり完全格納端p0において停止される。補正前後の基準動作量r1及びR1の値は共に0であるから、振り出し時と同じ完全格納端p0において第1モータ1は停止される。尚、完全格納端p0(又は、規制端点spよりも完全格納端p0側)から座席30が再度、振り出される際にも、第1モータ1は補正係数b1を用いて補正された後の基準動作量情報R1に基づいて制御される。つまり、図5と同様に図6に示した状態図に従って3つのモータが制御される。
このように、規制端点spの誤差の方向に拘わらず、振り出し時に検出された規制端点spの基準動作量情報(停止位置情報)に基づいて設定された補正係数(補正パラメータ)が用いられる。これにより、誤差が検出される振り出し時に続く格納時を含め、それ以降は座席30円滑に移動させることが可能となる。つまり、この格納後には、振り出し及び格納において同じ移動軌跡Eで座席30が移動されることになる。
補正係数b1を演算する対象となる第1モータ1は、本発明の基準モータに相当する。基準モータは、動作開始及び動作完了を含み、理論的には基準停止位置(第3中間点p3)において動作するモータのうちの少なくとも1つである。第1モータ1は、振り出し時には、理論的には基準停止位置に相当する規制端点spにおいて動作完了し、格納時には基準停止位置である第3中間点p3で動作を開始するモータであるから、基準モータとなる要件を充分に満たす。また、上記例においては、基準モータとして第1モータ1のみを適用する場合を例示したが、他のモータも基準モータとして適用することができる。図7は、第1モータ1及び第3モータ3を基準モータとして用い、第1モータ1及び第3モータ3の補正係数b1,b3をそれぞれ求めて、補正後の基準動作量情報R1,R3を得る例を示している。
第3モータ3の補正係数b3は、R(p3):基準停止位置、R(sp):回転振り出し端(規制端点)、R(p2):内外スライド格納端として、以下のように求められる。つまり、補正係数b3は、基準停止位置(第3中間点p3)から格納時の第3モータ3の動作完了位置(第2中間点p2)までの理論的な動作量を、停止位置情報に基づく規制端点spの実際の位置から第3モータ3の動作完了位置までの実際の動作量に比例配分することによって演算される。第3モータ3は同期開始位置psyよりも振り出し側でのみ動作するので、補正係数b3の演算に際して同期開始位置psyを考慮する必要はない。
b3=(R(p3)−R(p2))/(R(sp)−R(p2))
=(400−200)/(412−200)
= 200/212 ≒ 0.94
同期開始位置psyを考慮する必要のない補正後の基準動作量情報R3は、M3:実動作量情報、r3:補正前の基準動作量情報、a3:変換係数、c3:オフセット値として、以下のように求めることができる。
R3=(r3−c3)・b3+c3
=(M3・a3+c3−c3)・b3+c3
= M3・a3・b3+c3
振り出し時に完全振り出し端p4で停止した第3モータ3の基準動作量情報r3は、図3〜図6に示すように600であり、その際の実動作量情報M3は100である。格納時に、上記補正係数b3を用いて基準動作量情報R3を求めると、下記のように576となる。
R3(p4) = 100×4×0.94+200 = 576
格納動作の開始時、つまり、完全振り出し端p4においては、動作対象のモータは第3モータ3のみであるから、第3モータ3の基準動作量情報r3(R3)が平均基準動作量Ravとなる。従って、基準動作量情報R3と平均基準動作量Ravとの誤差は生じず、第3モータ3は円滑に制御される。基準動作量情報R3の値が400に達すると、上述したように第1モータ1及び第2モータ2が起動される。以降は上述した通りであるので、説明を省略する。
座席30が格納され、再度振り出される際には、第3モータ3は補正後の基準動作量情報R3の値が600となるまで動作する。従って、理想的な内外スライドの振り出し端よりも多く振り出されることになるが、大きな差異ではなく搭乗者に違和感を生じさせるものでもない。この後は、理想的な移動軌跡とは若干異なるものの、振り出し時及び格納時の座席30の起動軌跡Eは同一となる。
また、当然ながら、第1モータ1及び第2モータ2を基準モータとして用い、第1モータ1及び第2モータ2の補正係数b1,b2をそれぞれ求めて、補正後の基準動作量情報R1,R2を得るようにしてもよい。図8に、その場合の状態図を例示する。
第2モータ2の補正係数b2は、R(p3):基準停止位置、R(sp):回転振り出し端(規制端点)、R(p1):前後スライド格納端として、以下のように求められる。つまり、補正係数b2は、基準停止位置(第3中間点p3)から格納時の第2モータ2の動作完了位置(第1中間点p1)までの理論的な動作量を、停止位置情報に基づく規制端点spの実際の位置から第2モータ2の動作完了位置までの実際の動作量に比例配分することによって演算される。第3モータ3と同様に、第2モータ2も同期開始位置psyよりも振り出し側でのみ動作するので、補正係数b2の演算に際して同期開始位置psyを考慮する必要はない。
b2=(R(p3)−R(p1))/(R(sp)−R(p1))
=(400−100)/(412−100)
= 300/312 ≒ 0.96
また、第3モータ3と同様に、同期開始位置psyを考慮する必要のない補正後の基準動作量情報R2は、M2:実動作量情報、r2:補正前の基準動作量情報、a2:変換係数、c2:オフセット値として、以下のように求めることができる。
R2=(r2−c2)・b2+c2
=(M2・a2+c2−c2)・b2+c2
= M2・a2・b2+c2
振り出し時に第3中間点(前後スライド振り出し端)p3で停止した第2モータ2の基準動作量情報r2は、図3〜図7に示すように400であり、その際の実動作量情報M2は150である。格納時に、上記補正係数b2を用いて基準動作量情報R2を求めると、下記のように388となる。
R2(p3) = 150×2×0.96+100 = 388
上述したように、格納時には、第3モータ3の基準動作量情報r3(R3)が400となると、第1モータ1及び第2モータ2が動作を開始される。この際、第2モータ2の基準動作量情報R2が388であると、平均基準動作量Ravとの差が大きくなる。従って、第1モータ1と共に動作を開始する第2モータ2は、格納時には基準動作量情報r2を補正することなく、完全格納後の次の振り出しの際から補正後の基準動作量情報R2を用いて制御されることが好ましい。この後は、理想的な移動軌跡とは若干異なるものの、振り出し時及び格納時の座席30の起動軌跡Eは同一となる。
さらに、第1モータ1、第2モータ2、第3モータ3の全てをそれぞれ基準モータとして用いてもよい。即ち、第1モータ1、第2モータ2、第3モータ3の補正係数b1,b2,b3をそれぞれ求めて、補正後の基準動作量情報R1,R2,R3を得るようにしてもよい。図9に、その場合の状態図を例示する。この場合においても、第1モータ1と共に動作を開始する第2モータ2は、格納時には基準動作量情報r2を補正することなく、完全格納後の次の振り出しの際から補正後の基準動作量情報R2を用いて制御されることが好ましい。詳細については、図5〜図8に基づいて説明したことと重複するので、説明を省略する。
尚、第1モータ1、第2モータ2、第3モータ3の補正係数b1,b2,b3をそれぞれ求めて、補正後の基準動作量情報R1,R2,R3を得る場合において、必ずしもそれぞれのモータを基準モータとする必要はない。つまり、第1モータ1を含む複数のモータについて補正係数を求める場合であっても、第1モータ1以外のモータは必ずしも基準モータとして用いられなくてよい。例えば、第1モータ1のみを基準モータとして、全てのモータの補正係数を求めてもよい。図10にその場合の状態図を例示する。個々のモータに対応して補正係数が演算されていないので、上述した各例に比べて理想的な移動軌跡との差異はやや大きくなる可能性があるが実質的な問題はない。一方、補正係数の演算が1通りで済むので演算負荷は大きく軽減される。尚、この場合においても、第1モータ1と共に動作を開始する第2モータ2は、格納時には基準動作量情報r2を補正することなく、完全格納後の次の振り出しの際から補正後の基準動作量情報R2を用いて制御されることが好ましい。
また、例えば図9を参照すれば、規制端点spにおける補正前の基準動作量情報r1〜r3の値と、第3中間点p3における基準位置R(基準停止位置情報の値)との差は、それぞれ12である。補正係数b1〜b3の値は異なっているが、補正の基準点である規制端点spに近い位置では、絶対的な値の差はほとんど発生していない。従って、必ずしも第1モータ1を基準モータとする必要もなく、動作開始御及び動作完了を含めて基準停止位置(第3中間点p3)において動作するモータのうちの1つを基準モータとしてもよい。
以下、図11に示す振り出し及び格納を繰り返す際のパラメータ設定例を示す遷移図を用いて、複数回にわたる振り出し/格納の繰り返し動作について整理しておく。ここでは、図9に示したように、全てのモータの補正係数がそれぞれ個別に設定される場合を例として説明する。第1回目の動作は、振り出し(第1方向)動作である。この時点において、変換部5のレジスタ54〜59には、変換係数a1,a2,a3及びオフセット値c1,c2,c3の初期値がセットされている。また、補正部8のレジスタ84〜89には、補正係数b1,b2,b3及びオフセット値c1,c2,c3の初期値がセットされている。値については、上述した通りである。この第1回目の動作の際に、回転方向Aの誤差が検出され、補正係数b1,b2,b3が演算される。尚、図2、図11及び後述する図16において、同期開始位置psyの基準位置Rの値SY(=100)が格納されるレジスタ等については図示を省略している。
第2回目の動作は、格納(第2方向)動作である。変換部5及び補正部8にセットされている変換係数a1,a2,a3及びオフセット値c1,c2,c3の値には変更はない。補正部8のレジスタ84には、第1回目の動作時に取得された規制端点spの基準動作量情報(停止位置情報)に基づいて演算された第1モータ1の補正係数b1がセットされる。第2モータ2及び第3モータ3の補正係数b2,b3は、演算済みではあるが、レジスタ86及び88にはセットされていないものとする。第2回目の動作時には、第1モータ1の基準動作量情報R1が補正された値となり、円滑に座席30が格納される。
第2回目の動作完了時には、補正部8のレジスタ86及び88に第2モータ2及び第3モータ3の補正係数b2,b3がセットされていると好適である。回転方向Aの誤差は解消され、第3回目の動作(振り出し)、第4回目の動作(格納)の際には、往復において同じ移動軌跡Eで座席30が円滑に移動される。第3回目の動作(振り出し)、第4回目の動作(格納)の際には、各レジスタの記憶内容が維持されている。又は、各レジスタの内容が、好ましくは不揮発性のメモリなどにバックアップされ、各レジスタにロードされてもよい。この時、変換係数a1,a2,a3を補正係数b1,b2,b3によって補正して、補正係数b1,b2,b3を初期値に戻しておいてもよい。第5回目の動作(振り出し)では、変換係数a1,a2,a3が補正係数b1,b2,b3によって補正された場合を例示している。尚、この場合、第1モータ1に関しては、基準位置RがSY(=100)未満か否かで補正係数が異なることとなる。従って、厳密には2種類の補正係数を用いることとなるが、説明を容易にするために、ここでは基準位置RがSY(=100)以上の場合の補正係数を図示している。
第5回目の動作(振り出し)時には、一度解消されていた回転方向Aの誤差が再度出現した場合を例示している。第1回目の動作時には、プラス方向(完全振り出し端側)へ機械的な誤差が生じており、これを制御変数(基準動作量情報)の上で解消させた。ここでは、上記機械的な誤差が解消されたため、制御変数(基準動作量情報)による補正が過剰となり、逆にマイナス方向(完全格納端側)への機械的な誤差が現れた場合を想定する。第1回目の動作と同様に、回転方向Aの誤差が検出され、補正係数b1,b2,b3が演算される。
第6回目の動作(格納)時には、第2回目の動作時と同様に、補正部8のレジスタ84に第5回目に取得された誤差に基づいて演算された第1モータ1の補正係数b1がセットされる。第6回目の動作時には、第1モータ1の基準動作量情報R1が補正された値となり、円滑に座席30が格納される。
以下、図12の説明図、図13〜図15のフローチャートも利用して、3つのモータを同期制御して座席30を移動させる際の手順について説明する。この手順は、例えば、モータ制御装置10の中核となるマイクロコンピュータなどにより実行されるプログラムとして実現されると好適である。図12は、マイクロコンピュータのフラグレジスタなどに構成される各モータの動作状態を規定するフラグの設定を示している。各モータに対して、駆動制御されるか(フラグ=ON)、停止制御されるか(フラグ=OFF)の状態を示す動作フラグが設定されている。また、機械的な規制手段により移動を規制される第1モータ1に対しては、さらに規制状態にあるか(フラグ=ON)、規制解除状態にあるか(フラグ=OFF)を示す規制フラグが設定されている。
例えば、マイクロコンピュータは、車両20のコンソールやドア、リモートコントローラに設けられたスイッチ等を介して発せられた座席30の移動指令を受け取ると、同期制御プログラムを起動する。初めに、動作方向が第1方向(振り出し方向)であるか第2方向(格納方向)であるかが判定される(#1)。そして、判定された動作方向に応じて、変換係数a1〜a3、補正係数b1〜b3、オフセット値c1〜c3、各点の基準位置(p1、p2等)の演算パラメータが、パラメータメモリやバックアップ用のメモリからマイクロコンピュータのレジスタにセットされる(#2)。次に、回転センサ21〜23、電流センサ24等から、各モータの実動作量情報M1〜M3などの動作情報が取得される(#3)。実動作量情報M1〜M3は、変換部5及び補正部8において基準動作量情報r1〜r3、R1〜R3に変換される(#4)。上述したように、補正係数b1〜b3が1の場合には、補正前後で基準動作量情報は同じ値となる。尚、図13においては、ステップ#2〜#4を、動作方向が第1方向の時のステップ#2a〜#4aと、動作方向が第2方向の時のステップ#2b〜#4bとに分けて記載しているが、これらは同一の処理であってもよい。
動作方向が第1方向の場合には、ステップ#4の後、経路$1を経てステップ#10が実行され、動作方向が第2方向の場合には、ステップ#4の後、経路$3を経てステップ#30が実行される。以下、図14に基づいて、まず、第1方向の振り出し動作時の制御について説明する。はじめに、第1モータ規制フラグがOFFであるか否かが判定される(#11)。これは、障害物への接近や障害物との接触、利用者の判断による停止指示などによって、振り出し動作が途中で中断され、再開される場合を想定したものである。つまり、後述するように、規制フラグがON状態であれば、規制端点spよりも振り出し側で中断されて再開されていることになる。この判定を第3中間点p3を基準として実行すると、回転方向Aにおける機械的な誤差の影響を受けるので、規制端点spを基準とすることができる規制フラグを判定基準としている。
ここでは、完全格納端p0からの振り出し動作を例として説明する。この場合、規制フラグはOFF状態であるから、次に第1モータ動作フラグがON状態にセットされる(#12)。次に、平均基準動作量情報Ravが100以上であるか否かが判定される(#13)。平均基準動作量情報Ravは動作中のモータの基準動作量情報の平均値である。完全格納端p0から動作を開始した場合には、動作中のモータは第1モータ1のみであり、その基準動作量情報r1(R1)は100未満であるから、ステップ#13の判定結果は「No」となり、ステップ#23に進んで第1方向への同期制御が実行される。ステップ#23の次には、経路$2を経て再び図13に示すステップ#3a(#3)からの処理が順次実行される。尚、ステップ#12のフラグ設定の処理も繰り返し実行されるが、フラグが同じ状態は同じ値が再設定(上書き)される。これは、以降の全てのフラグ設定において同様である。
これを繰り返し、座席30が移動を続けると、第1中間点p1に達し、平均基準動作量情報Ravが100以上となる。ステップ#13において「Yes」と判定されると、第2モータ2の動作フラグがON状態に設定される(#14)。次に、平均基準動作量情報Ravが200以上であるか否かが判定される(#15)。平均基準動作量情報Ravが100以上200未満の時には、図3等に示すように第1モータ1と第2モータ2とが動作する。つまり、ステップ#15において「No」と判定され、ステップ#23において第1モータ1と第2モータ2が同期制御される。
これを繰り返し、座席30が移動を続けると、第2中間点p2に達し、平均基準動作量情報Ravが200以上となる。ステップ#15において「Yes」と判定されると、第3モータ3の動作フラグがON状態に設定される(#16)。さらに、座席30が移動を続けると、第3中間点p3又は規制端点spに達する。機械的誤差により、第3中間点p3よりも先に規制端点spに達する可能性があるので、まず、規制端点spに達したか否かが判定される(#17)。具体的には、第1モータ1の過負荷検出などの停止検出の有無が判定される。停止検出が無い場合には、第3中間点p3に達しているか否か、つまりは、平均基準動作量Ravが400以上であるか否かが判定される(#20)。規制端点spにも第3中間点p3にも達していない場合には、図3等に示すように第1モータ1と第2モータ2と第3モータ3とが動作する。つまり、ステップ#20において「No」と判定され、ステップ#23において第1モータ1と第2モータ2と第3モータ3とが同期制御される。
ステップ#17で規制端点spに達したと判定されると、第1モータ規制フラグがON状態にセットされると共に、第1モータ動作フラグがOFF状態にセットされる(#18)。続いて、この時点の第1モータ1の基準動作量情報r1(R1)の値が、停止位置情報として取得される。そして、上述したように、停止位置情報に基づいて、第1モータ1の補正係数b1が演算され、補正部8のレジスタにセットされる(#19)。これ以降、振り出し動作が中断され、格納方向への動作が指示されたとしても、第1モータ1については、補正係数b1を用いて補正された基準動作量情報R1に基づいて制御されることとなる。従って、第1モータ1は過負荷やハンチングを生じることなく円滑に制御される。ステップ#18において第1モータ1の動作フラグがOFF状態にセットされ、ステップ#20で第3中間点p3に達していないと判定されると、ステップ#23に進んで、第2モータ2と第3モータ3との同期制御が実行される。
ステップ#20で第3中間点p3に達していると判定されると、第2モータ2の動作フラグがOFF状態にセットされる(#21)。次に、完全振り出し端p4に達していないか否か、つまり平均基準動作量情報Ravが600未満であるか否かが判定される(#22)。判定結果が「Yes」の場合には、ステップ#23に進んで第3モータ3のみが駆動制御される。尚、ステップ#17で第1モータ1の停止検出が無いと判定され、ステップ#20で第3中間点p3に達していると判定されている場合には、第1モータ1の動作フラグはON状態のままであり、第2モータ2の動作フラグがOFF状態となっている。この場合に、ステップ#22で平均基準動作量情報Ravが600未満であると判定されると、ステップ#23に進んで第1モータ1と第3モータ3とが同期制御される。
繰り返し処理を継続し、ステップ#22で平均基準動作量情報Ravが600に達したと判定されると、第3モータ3の動作フラグがOFF状態にセットされる(#24)。これにより、全てのモータの動作が停止されることとなるので、汎用レジスタ等を含む各レジスタに格納された演算パラメータをバックアップして(#25)、経路$5を経て処理を終了する。
次に、動作方向が第2方向(格納)の場合の手順を図15に基づいて説明する。格納の動作の際には、中断後の再開や、振り出し途中から格納などの場合も含めて、はじめに第3モータの動作フラグがON状態にセットされる(#31)。この時点において、第3モータ3が動作しない基準位置200未満であったとすれば、駆動制御のステップ#39へ進む前に、ステップ#35で動作フラグがOFF状態に再設定されるので問題はない。ここでは、完全振り出し端p4から格納動作が開始されるとする。ステップ#31に続いて平均基準動作量情報Ravが400以下であるか否かが判定される(#32)。つまり、第3中間点p3に達しているか否かが判定される。平均基準動作量情報Ravが400を超えている場合には、ステップ#39へ進んで動作フラグがON状態となっている第3モータ3のみが駆動制御される。
振り出し動作の際と同様に、ステップ#39の次に経路$4を経てステップ#3b(#3)へ戻り、処理が繰り返される。ステップ#32において平均基準動作量情報Ravが400以下であると判定されると、第1モータ規制フラグをOFF、第1モータ動作フラグをON、第2モータ動作フラグをONの状態にセットする(#33)。つまり、第1モータ1と第2モータ2とは同時に動作を開始される。振り出し動作の際に、規制端点spにおける第1モータ1の基準動作量情報R1(sp)が400となるように補正係数b1が設定されているので、規制端点spの機械的な誤差に拘わらず、第1モータ1は過負荷やハンチングを生じることなく良好に駆動されることになる。次に、平均基準動作量情報Ravが200以下であるか否かが判定され(#34)、「No」の場合には、ステップ#39において第1モータ1、第2モータ2、第3モータ3が同期制御される。
繰り返し処理を継続し、ステップ#34において平均基準動作量情報Ravが200以下である、つまり第2中間点p2に達したと判定されると、第3モータ3の動作フラグがOFF状態にセットされる(#35)。次に、平均基準動作量情報Ravが100以下であるか否か、つまり第1中間点p1に達したか否かが判定される(#36)。平均基準動作量情報Ravが200を超えている場合には、ステップ#39において第1モータ1と第2モータ2とが同期制御される。
ステップ#36において平均基準動作量情報Ravが100以下である、つまり第1中間点p1に達したと判定されると判定されると、第2モータ2の動作フラグがOFF状態にセットされる(#37)。次に、平均基準動作量情報Ravが0を超えているか否か、つまり、完全格納端p0に達していないか否かが判定される(#38)。完全格納端p0に達していない場合には、ステップ#39において第1モータ1が駆動制御される。
ステップ#38において完全格納端p0に達したと判定されると、第1モータ1の動作フラグがOFF状態にセットされる(#40)。これにより、全てのモータの動作が停止されることとなる。次回の振り出し動作以降において、第2モータ2及び第3モータ3についても補正係数b2,b3を適用する場合には、当該補正係数b2,b3を演算し、補正部8のレジスタにセットする(#41)。最後に、汎用レジスタ等を含む各レジスタに格納された演算パラメータをバックアップし(#42)、経路$5を経て処理を終了する。次回の振り出し動作時には、バックアップされた演算パラメータがロードされるので、補正係数b2,b3も用いた同期制御が可能である。尚、第2モータ2及び第3モータ3の補正係数b2,b3の演算及びレジスタへのセットに関しては、第2モータ2及び第3モータ3の動作フラグがOFFにセットされた次のステップ、例えば#37や#35の後のステップで実行されてもよい。格納途中で再度振り出された場合に直ちに補正係数b2,b3が適用可能となって好適である。
尚、図11の第5回目の動作時などにおいて説明したように、変換係数a1〜a3を補正係数b1〜b3に基づいて補正し、補正後の変換係数a1〜a3を用いて実動作量情報M1〜M3を変換することも可能である。この場合、図16に示すように、実質的に、変換部5と補正部8とを統合することも可能である。
本発明のモータ制御装置10は、複数のモータを同期制御するものであり、各モータの定常動作中の動作量の変位がリニアである場合には、理想的には、基準動作量情報が同じ傾きとなるものである。しかし、複数のモータのうちの1つのモータが、誤差を含む機械的な規制端点spにおいて動作を停止、又は開始することから、同期制御の乱れを生じる可能性があった。本発明においては、規制端点spにおいて各モータの基準動作量情報の変位を示す直線が交差するように、基準動作量情報の傾きを補正する。つまり、傾きを補正するための係数が補正係数b1〜b3である。当業者であれば、上記実施形態に鑑みて、このような本発明の要旨を逸脱することなく種々の改変が可能であろうが、そのような改変もまた、本発明の技術的範囲に属するものである。
例えば、上記実施形態においては、同期開始点psyよりも振り出し側において第1モータ1に補正係数a1を適用した。しかし、第2モータ2や第3モータ3と同様に、第1モータ1の完全格納端p0を動作完了位置として、補正係数b1を演算してもよい。具体的には、図5に示した例を適用すると、
b1=(基準停止位置−回転格納端)/(規制端点−回転格納端)
=(R(p3)−R(p0))/(R(sp)−R(p0))
= 400/412 ≒ 0.97
となるようなケースである。
補正後の基準動作量情報R1についても、第2モータ2や第3モータ3と同様に以下のように演算することが可能である。当然ながら、規制端点spにおける補正後の基準動作量情報R1(sp)は以下に示すように400となる。
R1=(r1−c1)・b1+c1
=(M1・a1+c1−c1)・b1+c1
= M1・a1・b1+c1
R1(sp) = 412×1×0.97+0 = 400
この場合には、図5等に例示した第2中間点p2と同様に、第1中間点p1における第1モータ1と第2モータ2との相対位置も振り出し時とは若干異なるものとなる。つまり、第2モータ2の基準動作量情報r2(R2)が100に達すると、第2モータ2が停止される。この際、理想的には平均基準動作量Ravも100であり、第1モータ1の基準動作量情報R1も100である。但し、第1モータ1の基準動作量情報R1は補正後の値であるから、振り出し時の基準動作量情報r1に換算すると103(=100/0.97)である。このため、座席30の移動軌跡Eは振り出し時とは若干異なる。上記実施形態のように、2つの動作(例えば、回転Aと前後スライドB)の同期関係を完全に維持する必要がなく、理想的な移動軌跡からのずれが許容できる場合には、このようにしてもよい。
尚、図13〜図15に示したように、上述した実施形態によれば、座席30が搭載される車両20や、座席30の機械的誤差に拘わらず、共通したプログラムを多数の車両に展開することが可能である。但し、プログラムの修正が許容される場合には、検出された規制端点spの位置情報を、第3中間点p3の値に置き換えることによって、第1モータ1の過負荷やハンチングを抑制することが可能である。この場合に修正されるステップは、図14の#15や、図15の#34である。
また、個々の動作方向(A〜C)における機械的な誤差を補正するために、誤差修正用の修正用オフセット値d1〜d3などが別途設けられていてもよい。当業者であれば、理解できるであろうが、修正用オフセット値d1〜d3は、変換部5や補正部8において基準動作量情報r1〜r3やR1〜R3が演算される際に用いられる。つまり、上述した基準動作量情報r1〜r3やR1〜R3を求める式において切片として適用される。この修正用オフセット値d1〜d3は、パラメータメモリやプログラムメモリに格納され、例えば図13に示すステップ#2において読み出されてマイクロコンピュータのレジスタにセットされると好適である。
以上、多様な実施形態を示して詳述したように、本発明によって、特性及び負荷の一方又は双方が異なる複数のモータを同期制御することにより一方の端点と他方の端点との間で相互に移動対象物を移動させるに際して、複数のモータに機械的な規制手段により停止されるモータが含まれていても、当該複数のモータを良好に同期制御することができるモータ制御技術が提供される。