(57)【特許請求の範囲】
【請求項１】
サンルーフのルーフリッドが所定距離移動する間のリッド駆動用モータの出力軸回転数などの負荷変化を検出すると共に、これらの検出したデータを予め定められた数だけマイコンのメモリに保存し、ルーフリッドを閉方向に動作させている際に、保存した出力軸回転数データが、マイコン内に設定した所定負荷変動のしきい値を超えた場合には、挟み込みありと判断してモータを反転させてルーフリッドを開方向に動作させるサンルーフ制御方法であって、
マイコンのメモリに、連続的にモータの出力軸回転数データを保存する連続的なメモリ領域と、所定の更新頻度でモータの出力軸回転数データを更新する非連続的なメモリ領域とを設定し、連続的なメモリ領域において、最新の出力軸回転数を検出する毎に、それまでに保存したデータの中で最も古いデータをデータバッファに移して保存すると共に、最も古いデータ以降のデータを順送りに古いデータ位置にそれぞれシフトして、検出したばかりの出力軸回転数を最新のデータとして保存し、非連続的なメモリ領域のデータには、前記連続的なメモリ領域の最も古いデータが保存してあるデータバッファからデータを取り出す毎にパルスカウントするデータ更新時期を示すカウンタを設定し、非連続的なメモリ領域において、データの各々に設定してあるカウンタが所定値をカウントした時点で一つ前の新しい領域のデータをコピーして出力軸回転数データを更新すると共に、更新が終了した時点でカウンタをリセットし、最新の出力軸回転数値と、ルーフリッドの所定移動距離間における回転数値とを比較して、これにより得られる回転数値差がマイコン内に設定した回転数差しきい値を上回っている場合には、挟み込みありと判断することを特徴とするサンルーフ制御方法。
【請求項２】
カウンタは、非連続的なメモリ領域のデータのうちの一つのデータに設定し、パルスカウントが２の乗数毎にデータを更新する請求項１に記載のサンルーフ制御方法。
【請求項３】
減速機構を介してルーフリッドに連結されたアーマチュア軸を有するモータと、
ルーフリッドを開方向に移動させる開指令信号を発生する開スイッチと、
ルーフリッドを閉方向に移動させる閉指令信号を発生する閉スイッチと、
前記開スイッチからの開指令信号に応じて開駆動信号を発生すると共に閉スイッチからの閉指令信号に応じて閉駆動信号を発生する制御手段と、
前記モータに対して、前記制御手段からの開駆動信号に応じてルーフリッドの開方向に相当する回転を与える駆動電流を供給すると共に閉駆動信号に応じてルーフリッドの閉方向に相当する回転を与える駆動電流を供給する駆動手段と、
前記モータのアーマチュア軸の回転に応じて位相差を有するパルス信号を発生するモータ回転検出手段を備えた車両開閉ガラス制御装置において、
前記制御手段は、モータ回転検出手段からの出力信号波形から立ち上がりエッジおよび立ち下がりエッジを検出するエッジ検出ブロックと、
このエッジ検出ブロックで検出された出力信号波形の立ち上がりエッジおよび立ち下がりエッジ間の時間を測定してモータのアマチュア軸の回転数を算出すると共にアマチュア軸と減速機構の出力軸との減速比を乗じて出力軸回転数を算出する出力軸回転数算出ブロックと、
エッジ検出ブロックで検出された出力信号の立ち上り／立ち下がり信号毎に出力軸回転数を算出して、連続して配置したREV(0)〜REV(32)のメモリに順次保存し、最新の回転数データをREV(0)に保存すると共に、古い回転数データを順送りにシフトしてREV(32)の回転数データをバッファに移す回転数連続メモリブロックと、
回転数連続メモリブロックのREV(32)に続いて非連続に配置したメモリを有する回転数非連続メモリブロックと、
エッジ検出ブロックで検出された出力信号の立ち上り／立ち下がり信号によりインクリメントされると共に、回転数非連続メモリブロックのシフト判定フラグが配置され、このシフト判定フラグが０から１に変化した時点でそのフラグに対応する回転数データをREV(N)からひとつ古い回転数データへと回転数値をシフトするデータシフト用カウンタと、
エッジ検出ブロックで検出された出力信号の立ち上り／立ち下がり信号をカウントし、アーマチュア軸がルーフリッド開方向に回転するとカウント値をインクリメントすると共にルーフリッド閉方向に回転するとカウント値をデクリメントするルーフリッド位置カウンタと、
REV(0)に保存した最新の回転数データおよび連続して配置したREV(0)〜REV(32)のメモリの所定回転数データを比較した際のしきい値回転数BDR(M)を保存した連続メモリしきい値用データＲＯＭと、
REV(0)に保存した最新の回転数データおよび非連続に配置したメモリの所定回転数データを比較した際のしきい値回転数LBDR(N)を保存した非連続メモリしきい値用データＲＯＭと、
ルーフリッドの動作方向を決定すると共に出力軸回転数算出ブロックからの出力軸回転数，ルーフリッド位置カウンタ，回転数しきい値などのデータに基づいて、所定のしきい値回転数を超えて減速している場合、あるいは、モータの起動直後に所定の回転数に達せずに減速する場合に、挟み込み発生と判定して、ルーフリッドを反転させる制御を行う制御ブロックを備えていることを特徴とするルーフリッドの制御装置。
【請求項４】
回転数連続メモリブロックのREV(32)に続く回転数非連続メモリブロックのメモリを２の乗数のパルスカウントの間隔をおいて配置されるREV(34)，REV(38)，REV(46)，REV(62)，REV(94)，REV(158)，REV(286)のメモリとした請求項３に記載のルーフリッドの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、車両の屋根に配設したサンルーフ装置のルーフリッドを開閉する際に用いられるサンルーフ制御方法およびサンルーフ制御装置に関するものである。
【０００２】
【従来の技術】
従来において、サンルーフ装置のルーフリッドを閉方向に動作させるに際しては、ルーフリッドが所定距離移動する間のリッド駆動用モータの出力軸回転数などの負荷変化を検出すると共に、これらの検出したデータを予め定められた数だけマイコンのメモリに保存し、この保存した出力軸回転数データがマイコン内に設定した所定負荷変動のしきい値を超えた場合に、挟み込みありと判断してモータを反転させてルーフリッドを開方向に動作させるサンルーフ制御方法が採用されていた。
【０００３】
【発明が解決しようとする課題】
ところが、上記した従来におけるルーフリッドの制御方法では、例えば、弾性率が極めて小さい物体を挟み込んだ場合には、負荷の変化を検出する所定距離の範囲において、測定した負荷の変化が所定の負荷変動のしきい値を下まわって挟み込みを検出することができず、その結果、挟み込み荷重が増大してしまい、モータロックの荷重になってしまうことがないとは言えないという問題を有しており、この問題を解決することが従来の課題であった。
【０００４】
【発明の目的】
本発明は、上記した従来の課題に着目してなされたもので、ルーフリッドを閉方向に動作させる際に、弾性率が非常に小さい物体を挟み込んだとしても、この挟み込みを確実に検出することができ、その結果、モータロックの荷重になることを未然に防止することが可能であるルーフリッドの制御方法および制御装置を提供することを目的としている。
【０００５】
【課題を解決するための手段】
本発明の請求項１に係わるルーフリッドの制御方法は、サンルーフのルーフリッドが所定距離移動する間のリッド駆動用モータの出力軸回転数などの負荷変化を検出すると共に、これらの検出したデータを予め定められた数だけマイコンのメモリに保存し、ルーフリッドを閉方向に動作させている際に、保存した出力軸回転数データが、マイコン内に設定した所定負荷変動のしきい値を超えた場合には、挟み込みありと判断してモータを反転させてルーフリッドを開方向に動作させるサンルーフ制御方法であって、マイコンのメモリに、連続的にモータの出力軸回転数データを保存する連続的なメモリ領域と、所定の更新頻度でモータの出力軸回転数データを更新する非連続的なメモリ領域とを設定し、連続的なメモリ領域において、最新の出力軸回転数を検出する毎に、それまでに保存したデータの中で最も古いデータをデータバッファに移して保存すると共に、最も古いデータ以降のデータを順送りに古いデータ位置にそれぞれシフトして、検出したばかりの出力軸回転数を最新のデータとして保存し、非連続的なメモリ領域のデータには、前記連続的なメモリ領域の最も古いデータが保存してあるデータバッファからデータを取り出す毎にパルスカウントするデータ更新時期を示すカウンタを設定し、非連続的なメモリ領域において、データの各々に設定してあるカウンタが所定値をカウントした時点で一つ前の新しい領域のデータをコピーして出力軸回転数データを更新すると共に、更新が終了した時点でカウンタをリセットし、最新の出力軸回転数値と、ルーフリッドの所定移動距離間における回転数値とを比較して、これにより得られる回転数値差がマイコン内に設定した回転数差しきい値を上回っている場合には、挟み込みありと判断する構成としたことを特徴としており、このルーフリッドの制御方法の構成を前述した従来の課題を解決するための手段としている。
【０００６】
また、本発明の請求項２に係わるルーフリッドの制御方法において、カウンタは、非連続的なメモリ領域のデータのうちの一つのデータに設定し、パルスカウントが２の乗数毎にデータを更新する構成としている。
【０００７】
一方、本発明の請求項３に係わるルーフリッドの制御装置は、減速機構を介してルーフリッドに連結されたアーマチュア軸を有するモータと、ルーフリッドを開方向に移動させる開指令信号を発生する開スイッチと、ルーフリッドを閉方向に移動させる閉指令信号を発生する閉スイッチと、前記開スイッチからの開指令信号に応じて開駆動信号を発生すると共に閉スイッチからの閉指令信号に応じて閉駆動信号を発生する制御手段と、前記モータに対して、前記制御手段からの開駆動信号に応じてルーフリッドの開方向に相当する回転を与える駆動電流を供給すると共に閉駆動信号に応じてルーフリッドの閉方向に相当する回転を与える駆動電流を供給する駆動手段と、前記モータのアーマチュア軸の回転に応じて位相差を有するパルス信号を発生するモータ回転検出手段を備えた車両開閉ガラス制御装置において、前記制御手段は、モータ回転検出手段からの出力信号波形から立ち上がりエッジおよび立ち下がりエッジを検出するエッジ検出ブロックと、このエッジ検出ブロックで検出された出力信号波形の立ち上がりエッジおよび立ち下がりエッジ間の時間を測定してモータのアマチュア軸の回転数を算出すると共にアマチュア軸と減速機構の出力軸との減速比を乗じて出力軸回転数を算出する出力軸回転数算出ブロックと、エッジ検出ブロックで検出された出力信号の立ち上り／立ち下がり信号毎に出力軸回転数を算出して、連続して配置したREV(0)〜REV(32)のメモリに順次保存し、最新の回転数データをREV(0)に保存すると共に、古い回転数データを順送りにシフトしてREV(32)の回転数データをバッファに移す回転数連続メモリブロックと、回転数連続メモリブロックのREV(32)に続いて非連続に配置したメモリを有する回転数非連続メモリブロックと、エッジ検出ブロックで検出された出力信号の立ち上り／立ち下がり信号によりインクリメントされると共に、回転数非連続メモリブロックのシフト判定フラグが配置され、このシフト判定フラグが０から１に変化した時点でそのフラグに対応する回転数データをREV(N)からひとつ古い回転数データへと回転数値をシフトするデータシフト用カウンタと、エッジ検出ブロックで検出された出力信号の立ち上り／立ち下がり信号をカウントし、アーマチュア軸がルーフリッド開方向に回転するとカウント値をインクリメントすると共にルーフリッド閉方向に回転するとカウント値をデクリメントするルーフリッド位置カウンタと、REV(0)に保存した最新の回転数データおよび連続して配置したREV(0)〜REV(32)のメモリの所定回転数データを比較した際のしきい値回転数BDR(M)を保存した連続メモリしきい値用データＲＯＭと、REV(0)に保存した最新の回転数データおよび非連続に配置したメモリの所定回転数データを比較した際のしきい値回転数LBDR(N)を保存した非連続メモリしきい値用データＲＯＭと、ルーフリッドの動作方向を決定すると共に出力軸回転数算出ブロックからの出力軸回転数，ルーフリッド位置カウンタ，回転数しきい値などのデータに基づいて、所定のしきい値回転数を超えて減速している場合、あるいは、モータの起動直後に所定の回転数に達せずに減速する場合に、挟み込み発生と判定して、ルーフリッドを反転させる制御を行う制御ブロックを備えている構成としたことを���徴としており、このルーフリッドの制御装置の構成を前述した従来の課題を解決するための手段としている。
【０００８】
そして、本発明の請求項４に係わるルーフリッドの制御装置は、回転数連続メモリブロックのREV(32)に続く回転数非連続メモリブロックのメモリを２の乗数のパルスカウントの間隔をおいて配置されるREV(34)，REV(38)，REV(46)，REV(62)，REV(94)，REV(158)，REV(286)のメモリとした構成としている。
【０００９】
【発明の作用】
請求項１および請求項３に記載した発明では、図１および図２に示すように、ルーフリッドを閉方向に動作させている場合において、マイコンのＲＡＭ領域の０〜３２までは、出力軸回転数データがパルスカウント毎に連続的に記録され、古いデータはシフトされ、最も古いデータは、例えば、２の乗数回毎にシフトされ、挟み込みの検出にあたっては、最新の出力軸回転数値（０番目）と所定の距離の範囲の回転数値とを比較し、それぞれの回転数差BDR(32)、LBDR(62)〜LBDR(286)とマイコン内に設定したしきい値回転数とを比較して、回転数差がしきい値回転数を上回っていれば、挟み込みと判断するようにしているので、ルーフリッドの長い移動範囲内で出力軸回転数の比較を少ないメモリで行い得ることとなる。
【００１０】
また、請求項２および請求項４に記載した発明では、上記した構成としているので、より少ないメモリでルーフリッドの長い移動距離間の回転数データを保存し得ることとなる。
【００１１】
【実施例】
以下、本発明を図面に基づいて説明する。
【００１２】
図３は、本発明に係わるルーフリッド制御装置の構成を示すブロック図である。
【００１３】
図３に示すサンルーフ制御装置１は、開スイッチ２と、閉スイッチ３と、モータ４を備えたアクチュエータＡＣから主として構成されており、アクチュエータＡＣには、２つのホールＩＣ、ＩＣ１およびＩＣ２からなるモータ回転検出手段５と、出力回路（駆動手段）６と、制御手段ＭＣＵ（microprogram control unit)が組込まれている。そして、制御手段ＭＣＵには、エッジ検出ブロック７、出力軸回転数算出ブロック８、回転数連続メモリブロック９、回転数非連続メモリブロック１０、データシフト用カウンタ１１、ルーフリッド位置カウンタ１２、入力ブロック１３、制御ブロック１４、出力ブロック１５、連続メモリしきい値用データＲＯＭ１６および非連続メモリしきい値用データＲＯＭ１７が内蔵されている。
【００１４】
開スイッチ２は、ルーフリッドＬを開ける（スライド開）ときにオン操作され、オン操作によって開指令信号を発生する。また、閉スイッチ３は、ルーフリッドＬを閉じる（スライド閉）ときにオン操作され、これによって閉指令信号を発生する。これらスイッチ２，３の操作によって発生した開指令信号あるいは閉指令信号は、制御手段ＭＣＵの入力ブロック１３に供給される。
【００１５】
モータ４は、アーマチュア軸４ａを有し、アーマチュア軸４ａはウオームおよびウオームホイールからなる減速機構を介して出力軸４ｂに連結され、出力軸４ｂは、図示しないリッド駆動機構を介してルーフリッドＬに連結されており、モータ４への駆動電流の供給に基くアーマチュア軸４ａおよび出力軸４ｂの正逆回転によって、ルーフリッドＬが開閉作動するようになっている。
【００１６】
モータ回転検出手段５は、上記したように２つのホールＩＣからなり、これらホールＩＣ１およびＩＣ２は、アーマチュア軸４ａに取付けられたマグネットの周辺部に、非接触にして９０度相対して配置されている。
【００１７】
モータ回転検出手段５のホールＩＣ１およびＩＣ２は、モータ４のアーマチュア軸４ａの回転に応じて、互いに９０度の位相差を持つパルス信号をそれぞれ発生する。これらホールＩＣ１およびホールＩＣ２が発生したパルス信号は、それぞれ制御手段ＭＣＵのエッジ検出ブロック７に与えられる。
【００１８】
エッジ検出ブロック７は、モータ回転検出手段５のホールＩＣ１およびホールＩＣ２からの入力信号より、その立ち上り／立ち下がりエッジを検出し、出力軸回転数算出ブロック８に対して、モータ４の出力軸４ｂの回転数の計算開始を促す。また、回転数連続メモリブロック９および回転数非連続メモリブロック１０のシフト要因となり、さらに、データシフト用カウンタ１１およびモータ起動後のルーフリッド位置カウンタ１２のカウント要因となる。
【００１９】
出力軸回転数算出ブロック８は、エッジ検出ブロック７からのホールＩＣ信号の立ち上り／立ち下がり信号に基き、エッジが検出される度にエッジ間の時間を測定してアーマチュア軸４ａの回転数を算出し（すなわち、この実施例においては、モータ回転検出手段５からの発生する２つのパルス信号エッジ間の時間を４個でアーマチュア軸１回転の時間に相当することになる）、アーマチュア軸４ａと出力軸４ｂとの減速比を乗じて単位時間当たりの出力軸４ｂの回転数（回転速度）を算出する。当該出力軸回転数算出ブロック８による算出結果は、制御ブロック１４に与えられる。
【００２０】
回転数連続メモリブロック９は、エッジ検出ブロック７で検出された出力信号の立ち上り／立ち下がり信号毎に出力軸回転数を算出して、連続して配置したREV(0)〜REV(32)のメモリに順次保存し、最新の回転数データをREV(0)に保存すると共に、古い回転数データを順送りにシフトしてREV(32)の回転数データをバッファに移す。
【００２１】
回転数非連続メモリブロック１０は、回転数連続メモリブロック９のREV(32)に続いて非連続に配置したREV(34)〜REV(286)のメモリを有し、データシフト用カウンタ１１のシフトビットに従ってデータがシフトされるようになっている。
【００２２】
データシフト用カウンタ１１は、エッジ検出ブロック７で検出された出力信号の立ち上り／立ち下がり信号によりインクリメントされると共に、２進数で表されるビットのぞれぞれに回転数非連続メモリブロック１０のシフト判定フラグが配置され、このシフト判定フラグが０から１に変化した時点でそのフラグに対応する回転数データをREV(N)からひとつ古い回転数データへと回転数値をシフトする。
【００２３】
ルーフリッド位置カウンタ１２は、エッジ検出ブロック７で検出された出力信号の立ち上り／立ち下がり信号をカウントし、アーマチュア軸４ａがルーフリッド開方向に回転するとカウント値をインクリメントすると共にルーフリッド閉方向に回転するとカウント値をデクリメントする。なお、ルーフリッド位置カウンタ９のカウント値は、ルーフリッドＬが前閉位置にあるときに「０」値をとるように設定してあり、当該カウント値はルーフリッドＬの現在位置を示すことになる。また、ルーフリッド位置カウンタ９のカウントデータは、制御ブロック１４に与えられる。
【００２４】
連続メモリしきい値用データＲＯＭ１６は、REV(0)に保存した最新の回転数データおよび連続して配置したREV(0)〜REV(32)のメモリの所定回転数データを比較した際のしきい値回転数BDR(M)を保存し、一方、非連続メモリしきい値用データＲＯＭ１７は、REV(0)に保存した最新の回転数データおよび非連続に配置したREV(34)〜REV(286)のメモリの所定回転数データを比較した際のしきい値回転数LBDR(N)を保存する。
【００２５】
入力ブロック１３は、開スイッチ２からの開指令信号、あるいは、閉スイッチ３からの閉指令信号の入力に基いて、これら入力信号にフィルタ処理、禁止処理などを行ったうえで制御ブロック１４に送る。
【００２６】
制御ブロック１４は、システム全体の動作をコントロールする。すなわち、入力ブロック１３を介して開スイッチ２から入力された開指令信号に基いて、出力ブロック１５により開駆動信号を出力回路６に供給する。また、入力ブロック１３を介して閉スイッチ３から閉指令信号が入力されると、出力ブロック１５を介して閉駆動信号を出力回路６に供給し、ルーフリッドＬを閉方向に作動させる。そして、出力軸回転数算出ブロック１０からの出力軸回転数，ルーフリッド位置カウンタ１２，回転数しきい値などのデータに基づいて、所定のしきい値回転数を超えて減速している場合、あるいは、モータ４の起動直後に所定の回転数に達せずに減速する場合に、挟み込み発生と判定して、閉駆動信号の出力を停止すると共に、出力ブロック１５から開駆動信号を出力回路６に供給して、ルーフリッドＬを反転させる制御を行うようになっている。
【００２７】
出力ブロック１５は、制御ブロック１４からその出力信号を受けて、モータ４を正逆転させるための開駆動信号あるいは閉駆動信号を出力回路６に供給する。
【００２８】
出力回路６は、リレーまたはトランジスタを含んでおり、出力ブロック１５から与えられた開駆動信号あるいは閉駆動信号に応じて、モータ４を正逆転させてルーフリッドＬを開閉作動させるための駆動電流をモータ４に供給あるいは停止する。
【００２９】
上記した構成を有するサンルーフ制御装置１は、図４に示す通常動作ルーチン（メインルーチン），図５に示す回転変動判定（挟み込み判定）サブルーチンおよび図６に示す出力軸回転数計算サブルーチンに基いてルーフリッドＬの動きを制御する。
【００３０】
図４に示すメインルーチンにおいて、ステップ１０１〜１０７については、このような制御手段ＭＣＵを備えたアクチュエータＡＣをスイッチ類やサンルーフ装置本体と共に車両に搭載したときに行う初期設定に係わるものであって、サンルーフリッドＬが全閉位置にあるときのルーフリッド位置カウンタ１２のカウント値を「０」に正確に調整するためのものである。
【００３１】
すなわち、これらサンルーフシステムを車両に搭載した状態で、バッテリー電源に接続すると、まずステップ１０１において初期動作フラグFG_INITがセットされ、次にステップ１０２において挟み込みが発生したことを示すフラグFG_SAFEが立っているかどうかが判定される。この時点では、ルーフリッドＬは実質的にまだ作動しておらず、上記フラグはセットされていない（ＮＯ）ので、ステップ１０２から１０３および１０４に移行し、スライド閉スイッチ３からの入力の有無が判定される。
【００３２】
ここで、閉スイッチ３をオン操作すると（ＹＥＳ）、制御はステップ１０４に進み、ここで初期動作フラグFG_INITの状態が判定される。初期動作フラグFG_INITは、ステップ１０１でセットされている（ＹＥＳ）ので、ステップ１０５に進み、該ステップ１０５においてルーフリッド位置カウンタＧＰＣ（ルーフリッド位置カウンタ１２）をクリア（ＧＰＣ←０）した後、ステップ１０６においてモータロックかどうか、すなわちルーフリッドＬが全閉位置に到達したかどうかが判定される。
【００３３】
モータロックされていなければ（ＮＯ）、ステップ１０８に移行してモータ４にスライド閉方向の駆動電流が供給され、ルーフリッドＬが全閉位置に向けて移動し、全閉位置に到達して、ステップ１０６においてモータロックが検出されるまで、これらのステップが繰り返され、ステップ１０６においてモータロックが検出されると、ステップ１０７において初期動作フラグFG_INITがリセットされる。そして、この間ステップ１０５を通る度にルーフリッド位置カウンタＧＰＣがリセットされるので、ルーフリッドＬが全閉位置にあるときのルーフリッド位置カウンタＧＰＣのカウント値が「０」に調整され、初期設定が終了する。初期設定終了後は、初期動作フラグFG_INITがセットされることはなく、ステップ１０５〜１０７が実行されることはない。
【００３４】
次に、当該サンルーフ制御装置１の通常運転時における制御について説明する。上記した初期設定が終了すると、制御はステップ１０２に戻る。
【００３５】
ステップ１０２において挟み込みが発生したことを示すフラグFG_SAFEの状態が判定されるが、この時点では、ルーフリッドＬは全閉位置にあり、実質的にまだ作動していないため、上記フラグはセットされておらず（ＮＯ）、ステップ１０２から１０３および１０９に移行し、スライド閉スイッチ３あるいはスライド開スイッチ２からの入力の有無が判定される。開スイッチ２、閉スイッチ３がいずれも操作されていない場合には、ステップ１０３（ＮＯ）およびステップ１０９（ＮＯ）からステップ１１０に移行し、ステップ１１０において、モータ起動直後からパルス割り込みの回数を計数するモータ起動カウンタＭＰＣをクリアした後、ステップ１１１においてモータ出力（この場合には最初から出力されていない）を停止し、さらにステップ１１２に移行する。
【００３６】
ステップ１１２においては、ホールＩＣ１，ホールＩＣ２にエッジ入力の有無、すなわちモータが回転しているかどうかが判定されるが、この場合にはまだ回転しておらず、エッジ入力はない（ＮＯ）ので、ステップ１１３に移行してエッジ入力フラグFG_EDGEをリセットし、ステップ１０２に戻る。そして、スライド開スイッチ２がオン操作されるまで、上記ステップ１０２〜１０３、１０９〜１１３のループが繰り返し実行される。
【００３７】
スライド開スイッチ２がオン操作されると、ステップ１０９においてスイッチ入力有り（ＹＥＳ）と判定されて、ステップ１１４に移行して出力回路６に対して開駆動信号が出力され、出力回路６からの駆動電流によってモータ４がルーフリッドＬのスライド開方向に作動する。そして、モータ４の回転に基いてモータ回転検出手段５のホールＩＣ１，ホールＩＣ２にエッジ入力が生じると、ステップ１１２（ＹＥＳ)からステップ１１５に移行してエッジ入力フラグFG_EDGEをセットした後、ステップ１１６においてモータ起動カウンタＭＰＣをインクリメントし、ステップ３００の出力軸回転数計算サブルーチンに移行する。
【００３８】
このステップ３００の出力軸回転数計算サブルーチンは、メインルーチンの１ループに１度呼び出されるルーチンであって、全体として、パルス割り込み毎に出力軸回転数の計算を実施し、そのときの出力軸回転数Rin(n)を算出する処理を行う。
【００３９】
すなわち、図６に示すように、まず、ステップ３０１においてモータ４が作動中であるか否かを判定しており、モータ４が動作していない（ＮＯ）ときには、ステップ３０２に移行して、回転数を計算するためのパルス間時間測定用ＲＡＭに初期値（OFFFFH）を設定し、ステップ３０３において回転数保存ＲＡＭREV(0)〜REV(286)をクリアして、メインルーチンに戻る。
【００４０】
また、ステップ３０１においてモータ４が作動中である（ＹＥＳ）場合には、ステップ３０４においてパルス割り込みがあったか否かを確認し、パルス割り込みがない場合には、このルーチンを抜ける。
【００４１】
一方、ステップ３０４においてパルス割り込みがあったと判定した場合は、ステップ３０５において、出力軸回転数算出ブロック８に内蔵され、モータ回転検出手段５のホールＩＣ１，ホールＩＣ２から出力された２つのパルス信号のエッジ間の時間を測定するタイマーPLS_TMのカウント値をＰＴ４としてロードし、ステップ３０６において前記パルス幅タイマーPLS_TMをクリアし、ステップ３０７に移行する。
【００４２】
ステップ３０７においては、エッジ間時間値ＰＴ４に、前回、前々回および３回前のエッジ検出時にロードした時間値ＰＴ３、ＰＴ２およびＰＴ１を加算することによってアーマチュア軸４ａの１回転に要する時間ＡＴを算出する。そして、ステップ３０８において、ステップ３０７で求めた１回転の時間ＡＴに、アーマチュア軸４ａと出力軸４ｂの減速比ＲＡＴを乗じた積で６０を除すことにより、単位時間（１分）当たりの出力軸４ｂの回転数Ｒin（ｎ）を算出する。
【００４３】
次いで、制御はステップ３０９に移行して回転数のシフト操作が行われる。すなわち、回転数ＲＡＭ領域内に前回までに保存された回転数データREV(0)〜REV(32)をそれぞれ１個づつシフトし、ステップ３０８で得られた最新の回転数Rin(n)をＲＡＭ領域の最新データ位置ＲＡＭ（０）に保存する。そして、ステップ３０９で回転数Rin(n)を得た後に、ステップ３２７においてパルス間の時間データを一つずつシフトしてメインルーチンに戻る。なお、ステップ３１０〜３１２においてREV(34)〜REV(286)のシフト判断用カウンタSHIFT_CTを参照し、REV(34)以降のＲＡＭのシフトが必要か否かをステップ３１３〜３２６において判断して、シフトが必要であれば随時シフトする。
【００４４】
上記の出力軸回転数計算サブルーチンを抜けた後のステップ１１７において、ホールＩＣ１およびＩＣ２から出力される両パルス信号のエッジ方向（一方のパルス信号に立ち上りエッジが検出されたときの他方のパルス信号がＨかＬか）に基いてルーフリッドＬの移動方向が判定される。この場合、ルーフリッドＬはスライド開方向に移動している（ＮＯ）ので、ステップ１１８に移行してルーフリッド位置カウンタＧＰＣをインクリメントする。こうして、スライド開スイッチ２がオン操作されている間、ステップ１０２〜１０３，１１４，１１２，１１５〜１１８のループが繰り返され、ルーフリッドＬが全開位置に向けて移動を続ける。
【００４５】
スライド開スイッチ２から指を離せば（オフ操作）、ステップ１０９（ＮＯ)からステップ１１０に移行して起動後パルスカウンタＭＰＣをクリアした後、ステップ１１１において、開駆動信号が中止され、モータ４への電流供給を停止するので、ルーフリッドＬを所望の位置で停止させることができる。そして、ホールＩＣ１，２からのパルス信号のエッジ入力がなくなれば、ステップ１１２（ＮＯ）からステップ１１３に移行し、エッジ入力フラグFG_EDGEをリセットした後、ステップ１０２に戻る。
【００４６】
そして、ルーフリッドＬが開いた状態において、スライド閉スイッチ３を押す（オン操作）と、ステップ１０２（ＮＯ）からステップ１０３を経て、ステップ１０４に移行して初期動作フラグFG_INITの状態が判定される。初期動作フラグFG_INITは、初期設定終了時にステップ１０７においてリセットされている（ＮＯ）ので、ステップ１０４（ＮＯ）からステップ２００に進み、回転変動判定サブルーチンに移行する。
【００４７】
このステップ２００における回転変動判定サブルーチンは、挟み込み反転動作ではないルーフリッド閉方向の通常動作時において、メインルーチンの１ループに１度呼び出されるルーチンであって、ステップ２０１において、モータ起動カウンタＭＰＣのそのときのカウント値を参照して、ＲＯＭデータエリアから４パルスカウント差用のしきい値BDR(4)が読み込まれ、ステップ２０２において、比較期間が４パルスカウントのときの回転数差REV(4)−REV(0)が計算され、これと上記しきい値BDR(4)とが比較される。
【００４８】
この４パルスカウント回転数差REV(4)−REV(0)がしきい値BDR(4)を超えていなければ（ＮＯ）、ステップ２０３に移行し、同様にそのときのモータ起動カウンタＭＰＣのカウント値を参照して、ＲＯＭデータエリアから８パルスカウント差用のしきい値BDR(8)が読み込まれ、ステップ２０４において、比較期間が８パルスカウントのときの回転数差REV(8)−REV(0)が計算され、これと上記しきい値BDR(8)とが比較される。
【００４９】
この８パルスカウント回転数差REV(8)−REV(0)がしきい値BDR(8)を超えていなければ（ＮＯ）、図示しないステップ２０５に移行し、そのときのモータ起動カウンタＭＰＣのカウント値に基いて、ＲＯＭデータエリアから１６パルスカウント差用のしきい値BDR(16)が読み込まれ、図示しないステップ２０６において、比較期間が１６パルスカウントのときの回転数差REV(16)−REV(0)が計算され、これと上記しきい値BDR(16)とが同様に比較される。
【００５０】
この１６パルスカウント回転数差REV(16)−REV(0)がしきい値を超えていなければ（ＮＯ）、ステップ２０７に移行し、そのときのモータ起動カウンタＭＰＣのカウント値に応じて、ＲＯＭデータエリアから３２パルスカウント差用のしきい値BDR(32)が読み込まれ、ステップ２０８において、比較期間が３２パルスカウントのときの回転数差REV(32)−REV(0)が計算され、これと上記しきい値BDR(32)とが同様に比較される。
【００５１】
以降、ステップ２０９〜ステップ２１４において、ＲＯＭデータエリアから６２パルスカウント差用のしきい値BDR(62)，１５８パルスカウント差用のしきい値BDR(158)および２８６パルスカウント差用のしきい値BDR(286)が順次読み込れて、その都度、REV(0)に対する回転数差が計算され、それぞれに対応するしきい値とが同様に比較され、最終的に、ステップ２１４における判定において、比較期間が２８６パルスカウントのときの回転数差REV(286)−REV(0)がＲＯＭデータエリアから読み込まれたしきい値LBDR(286)を超えていなければ（ＮＯ）、ステップ２１５に移行して、挟み込みの発生がないものとして反転動作フラグFG_SAFEをリセットして、メインルーチンに戻る。
【００５２】
回転変動判定サブルーチン２００から戻ったステップ１１９において、反転動作フラグFG_SAFEの状態が判定され（ＮＯ）、ステップ１０８に移行し、出力回路６に対する閉駆動信号出力が維持され、モータ４はルーフリッドＬのスライド閉方向の作動を継続する。
【００５３】
そして、ステップ１１２を経て（ＹＥＳ）ステップ１１５に進み、該ステップ１１５においてエッジ入力フラグFG_EDGEをセット状態を保持し、ステップ１１６においてモータ起動カウンタＭＰＣをインクリメントしたのち、ステップ３００の出力軸回転数計算サブルーチンを経てステップ１１７（ＹＥＳ）からステップ１２０に移行し、ステップ１２０においてリッド位置カウンタＧＰＣをデクリメントしたのち、ステップ１０２に戻る。
【００５４】
このようにして、スライド閉スイッチ３のオン操作が続けば、ステップ１０２〜１０４、ステップ２００の回転変動判定サブルーチン、ステップ１１８，１０８、１１２、１１５〜１１７および１２０の実行が繰り返され、ルーフリッドＬの作動が何らかの障害によって拘束されて、回転変動判定サブルーチンのステップ２０２、２０４、２０６（図示せず）、２０８、２１０、２１２、２１４のいずれかの判定においてモータ４の回転速度が低下した（ＹＥＳ）と判定されない限り、モータ４の閉駆動回転が継続し、ルーフリッドＬが全閉位置に向けて移動する。もちろん、ルーフリッドＬが所望の位置となったときに、閉スイッチ３の操作を中断（オフ）すれば、ステップ１０３（ＮＯ）、ステップ１０９（ＮＯ）からステップ１１０に移行して、起動後パルスカウンタＭＰＣをクリアした後、ステップ１１６において閉駆動信号出力を停止するので、その位置でルーフリッドＬが停止することになる。
【００５５】
また、何らかの原因でルーフリッドＬの動きが拘束されて、モータ４の円滑な回転が妨げられ、ステップ２００における回転変動判定サブルーチンのステップ２０２、２０４、２０６、２０８、２１０、２１２および２１４のいずれかのステップにおいて、モータ４の回転速度が低下した（ＹＥＳ）と判定されると、挟み込み発生と判断してステップ２１６に移行し、反転動作フラグFG_SAFEをセットして、メインルーチンに戻る。
【００５６】
回転変動判定サブルーチン２００から戻った後のステップ１１９において、反転動作フラグFG_SAFEの状態が判定され、この場合にはサブルーチンのステップ２１６において反転動作フラグFG_SAFEがセットされているので（ＹＥＳ）、制御は１１０に移行する。そして、ステップ１１０においてモータ起動カウンタＭＰＣをクリアし、ステップ１１１において閉駆動信号の出力を停止し、モータ４への駆動電流の供給を中止する。
【００５７】
モータ４の回転が停止し、モータ回転検出手段５のホールＩＣからエッジ入力がなくなると、ステップ１１２（ＮＯ）からステップ１１３に移行してエッジ入力フラグFG_EDGEをリセットしたのち、ステップ１０２に戻る。
【００５８】
ステップ１０２においては、反転動作フラグFG_SAFEがセットされている（ＹＥＳ）と判定されて、ステップ１２１に移行し、ステップ１２１においてリッド位置カウンタＧＰＣのそのときのカウント値が予め定められたリッド位置データXSAFEと比較される。位置データXSAFEは、全開位置に近い比較的大きな値に設定してあるので、ステップ１２１（ＮＯ）からステップ１１４に移行し、ステップ１１４において開駆動信号が出力回路６に供給されるので、モータ４がルーフリッドＬの開方向に回転を始める。
【００５９】
モータ４の回転に基いて、モータ回転検出手段５からエッジ入力があると、ステップ１１２（ＹＥＳ）から、ステップ１１５、１１６、３００，１１７（ＮＯ）を経てステップ１１８に移行し、リッド位置カウンタＧＰＣがインクリメントされたのち、ステップ１０２に戻る。そして、ルーフリッド位置カウンタＧＰＣのカウント値がリッド位置データXSAFEを超え、ルーフリッドＬが十分に開放されると、ステップ１２１（ＹＥＳ）からステップ１２２に移行し、ステップ１２２においてスライド開スイッチ２あるいは閉スイッチ３の操作が確認される。
【００６０】
閉スイッチ３がまだオン操作されたまま、あるいはモータ４が開方向に作動している間に開スイッチ２が押しなおされた場合には、ステップ１２２（ＹＥＳ）からステップ１２３に移行して、出力回路６に対する開駆動信号の出力が停止されるので、サンルーフが十分に開放された状態でルーフリッドＬが停止する。
【００６１】
そして、閉スイッチ３および開スイッチ２から指を離すと、ステップ１２４において反転動作フラグFG_SAFEがリセットされ、挟み込み検出および反転作動制御が終了してステップ１０２に戻り、閉スイッチ３が再度操作された場合には、新たに挟み込み検出が開始される。
【００６２】
上記したサンルーフ制御装置１では、ルーフリッドＬを閉方向に動作させている場合において、マイコンのＲＡＭ領域の０〜３２までは、古いデータを順送りにシフトしながら出力軸回転数データをパルスカウント毎に連続的に記録し、最も古いデータを２の乗数回毎にシフトし、挟み込みの検出にあたっては、REV(0)に保存した最新の回転数データと所定の距離の範囲の回転数値とを比較し、それぞれの回転数差BDR(32)、LBDR(62)〜LBDR(286)とマイコン内に設定したしきい値回転数とを比較して、回転数差がしきい値回転数を上回っていれば、挟み込みと判断するようにしているので、ルーフリッドＬの長い移動範囲内で出力軸回転数の比較を少ないメモリで行い得ることとなる。
【００６３】
したがって、上記したサンルーフ制御装置１では、ルーフリッドＬの長い移動範囲内で出力軸回転数の比較がなされるので、弾性率が非常に小さい物体を挟み込んだとしても、この挟み込みを確実に検出することができる。
【００６４】
なお、本発明に係わるルーフリッドの制御方法および制御装置の詳細な構成は、上記した実施例の構成に限定されるものではなく、他の構成として、例えば、カウンタを非連続的なメモリ領域のデータのそれぞれに個々に設定するようにしてもよい。
【００６５】
【発明の効果】
以上説明したように、請求項１および請求項３に記載した発明では、上記した構成としたから、サンルーフのルーフリッドを閉方向に動作させるに際して、弾性率が極めて小さい物体を挟み込んだ場合であったとしても、この挟み込みを確実に検出することができ、したがって、モータロックの荷重になることを阻止することが可能であるのに加えて、メモリ領域を節約することで大容量のＲＡＭを不要のものとすることができ、その結果、安価なシステムの構築が可能になるという非常に優れた効果がもたらされる。
【００６６】
また、請求項２および請求項４に記載した発明では、上記した構成としたため、ルーフリッドの長い移動距離間の回転数データをより少ないメモリで保存することが可能であるという非常に優れた効果がもたらされる。
【図面の簡単な説明】
【図１】本発明に係わるサンルーフ制御方法の内容を概略的に示す説明図である。
【図２】図１のサンルーフ制御方法における回転数データのシフト状況を示す図である。
【図３】本発明に係わるサンルーフ制御装置の構成を示すブロック図である。
【図４】図３に示したサンルーフ制御装置における制御のメインルーチンを示すフローチャートである。
【図５】図３に示したサンルーフ制御装置の制御における回転変動判定サブルーチンを示すフローチャートである。
【図６】図３に示したサンルーフ制御装置の制御における出力軸回転数計算サブルーチンを示すフローチャートである。
【符号の説明】
１  サンルーフ制御装置
２  開スイッチ
３  閉スイッチ
４  モータ
４ａ  アーマチュア軸
５  モータ回転検出手段
６  出力回路（駆動手段）
７  エッジ検出ブロック
８  出力軸回転数算出ブロック
９  回転数連続メモリブロック
１０  回転数非連続メモリブロック
１１  データシフト用カウンタ
１２  ルーフリッド位置カウンタ
１４  制御ブロック
１６  連続メモリしきい値用データＲＯＭ
１７  非連続メモリしきい値用データＲＯＭ
ＭＣＵ  制御手段
Ｌ  ルーフリッド
【図１】
0003898068.tif 000002
【図２】
0003898068.tif 000003
【図３】
0003898068.tif 000004
【図４】
0003898068.tif 000005
【図５】
0003898068.tif 000006
【図６】
0003898068.tif 000007