(57)【特許請求の範囲】
【請求項１】
車体に設けたガイドトラックに沿って開閉可能に支持されたスライドドアを、モータ駆動により開閉移動させるようにした車両用スライドドアの自動開閉制御装置において、
正逆転可能なモータを有するドア駆動部と、
前記ドア駆動部のモータ負荷対応データを検出するモータ負荷検出手段と、
前記ガイドトラックに案内されるドアの位置を、ドア全開から全閉までの範囲で検出するドア位置検出手段と、
ドア位置検出手段の検出位置によってアドレス指定される所要サンプリング領域に、前記モータ負荷検出手段が検出したモータ負荷対応データを関連させて、ドアの位置に係るモータ負荷対応データを記憶する記憶手段と、
記憶されたモータ負荷対応データが、最新のサンプリング領域のアドレスで読み出される毎に、最新に検出されたモータ負荷対応データにより、読み出されたモータ負荷対応データを適宜修正して、新たに記憶されるべきモータ負荷対応データとして学習するモータ負荷対応データ学習手段と、
ドアが実在するサンプリング領域よりもドアの移動方向に適数領域分進んだサンプリング領域の記憶されたモータ負荷対応データを読み出し、それとドアが実在するサンプリング領域のモータ負荷対応データを所要に演算してドアの移動方向について予測されるモータ負荷対応データの予測値を求め、その予測値と実在するサンプリング領域のモータ負荷対応データの偏差から挟み込みの有無を判別する挟み込み判別手段と、
を備えることを特徴とする車両用スライドドアの自動開閉制御装置。
【請求項２】
前記モータ負荷対応データが、間欠的に検出されたモータの電流値であることを特徴とする請求項１に記載の車両用スライドドアの自動開閉制御装置。
【請求項３】
前記モータ負荷対応データが、ドア位置対応のアドレスを持つサンプリング領域内で間欠的に複数個検出されたモータ電流の平均電流値であることを特徴とする請求項１に記載の車両用スライドドアの自動開閉制御装置。
【請求項４】
前記記憶されたモータ負荷対応データが、ドアの移動方向に配列する各サンプリング領域で検出されたモータの電流値又は平均電流値による直前検出のサンプリング領域の電流値又は平均電流値と今回検出のサンプリング領域の電流値又は平均電流値との変化率であることを特徴とする請求項１〜３のいずれかに記載の車両用スライドドアの自動開閉制御装置。
【請求項５】
前記挟み込み判別手段が、記憶された前記モータ負荷対応データから求めた予測値と実在するサンプリング領域のモータ負荷対応データの偏差から挟み込みの有無を判別するとき、ドアの位置および作動方向に応じて判定度合いを変えていることを特徴とする請求項１〜４のいずれかに記載の車両用スライドドアの自動開閉制御装置。
【請求項６】
前記挟み込み判別手段が、記憶された前記モータ負荷対応データから求めた予測値と実在するサンプリング領域のモータ負荷対応データの偏差から挟み込みの有無を判別するとき、予測値との比較に加えて、最近のモータ負荷データの増加傾向の判定を行うことを特徴とする請求項１〜５のいずれかに記載の車両用スライドドアの自動開閉制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自動車等の車両の側面に取り付けたスライドドアを、モータ等の駆動源によって自動的に開閉し得るようにした車両用スライドドアの自動開閉制御装置に関する。
【０００２】
【従来の技術】
従来から車体の側面に前後方向にスライド可能に支持されたスライドドアを、モータ等の駆動源によって開閉移動するようにした車両用スライドドアの自動開閉制御装置が知られている。この装置では、運転席やドアハンドルの近くに設けた操作手段を使用者が意識的に操作することによって駆動源を起動し、スライドドアを駆動源の駆動力によって自動的に開閉するようになっている。
【０００３】
また、操作手段に代わるトリガー手段として、スライドドアが手動力によって所定の距離を移動したことを検知し、それを契機として駆動源を起動し、手動力に代わって駆動源の駆動力に切り替えてスライドドアを自動的に開閉するようにしたものもある。
【０００４】
【発明が解決しようとする課題】
従来の車両用スライドドアの自動開閉制御装置においては、スライドドアの自重が重いため、スライドドアの駆動に係る負荷が開閉方向や開閉位置に影響されやすく、とくにスライドドアの移動方向に係る自動車の前後の傾きによっては、ドアの自重を吊り上げるほどの過大加重から、同程度の加重に制動を加える負の負荷を生じるため、安全対策を十分に考慮しての自動開閉制御を困難なものにしていた。
【０００５】
つまり、スライドドアに係る負荷が大きく、かつ負荷変動幅が大きくなれば、ドア駆動手段の出力パワーは負荷変動に素早く対処できるように十分な余裕をもって大きくしなければならない。しかし、反対に小さな負荷変動に対しては感応力が減少するため、スライドドアに挟み込みが生じないように安全性を考慮して出力パワーを制御するのは困難であった。
【０００６】
とくにスライドドアの動力駆動の開始時期を自動制御とした場合、スライドドアの開閉方向や開閉位置、スライドドアが開閉されるときの車体姿勢など、自動車のあらゆる状況を考慮して安全対策を施さなければならない。
【０００７】
例えば、手動力から電動力に切り替える契機をスライドドアの移動距離で得る場合は、手動力でスライドドアが動かされたことを確実に判断するのが難しい。例えば、緩やかな坂道で停車して開いたスライドドアが緩慢に移動したとき、スライドドアは自動駆動に切り替わり、自動駆動を望まない場合でも駆動力が働いてしまう。このような車体の姿勢等によりドアの負荷変動幅が大きくなったり、ドアの負荷自体が大きくなると、確実な手動力から自動力への切り替えが困難になる。
【０００８】
とくにスライドドアはドアの移動方向が直線的で、かつ車体の前後方向と同一方向に移動し得るようになっているため、坂道でのドアの開閉にはドアの自重が制御に大きく作用する。このため、自動車の駐車時姿勢、すなわち駐車した道路に傾斜がある場合の傾斜の度合いを、スライドドアの開閉に際して知ることは重要である。
【０００９】
（目的）
本発明は、このような従来の課題を解決するためになされたもので、スライドドアの自動駆動に課せられるあらゆる状況を考慮して、自在性と安全性との二律背反する制御を可能とすることを目的とする。そして、本発明は、手動駆動から自動駆動への切替えを確実に行い、スライドドアが所在する位置に応じて制御条件や制御量を的確に変更してスライドドアを安全かつ迅速自在に制御し、スライドドアの挟み込みの有無を速やかに判別して安全対策を施すようにした車両用スライドドアの自動開閉制御装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明の請求項１に記載の発明は、車体に設けたガイドトラックに沿って開閉可能に支持されたスライドドアを、モータ駆動により開閉移動させるようにした車両用スライドドアの自動開閉制御装置において、正逆転可能なモータを有するドア駆動部と、前記ドア駆動部のモータ負荷対応データを検出するモータ負荷検出手段と、前記ガイドトラックに案内されるドアの位置を、ドア全開から全閉までの範囲で検出するドア位置検出手段と、ドア位置検出手段の検出位置によってアドレス指定される所要サンプリング領域に、前記モータ負荷検出手段が検出したモータ負荷対応データを関連させて、ドアの位置に係るモータ負荷対応データを記憶する記憶手段と、記憶されたモータ負荷対応データが、最新のサンプリング領域のアドレスで読み出される毎に、最新に検出されたモータ負荷対応データにより、読み出されたモータ負荷対応データを適宜修正して、新たに記憶されるべきモータ負荷対応データとして学習するモータ負荷対応データ学習手段と、ドアが実在するサンプリング領域よりもドアの移動方向に適数領域分進んだサンプリング領域の記憶されたモータ負荷対応データを読み出し、それとドアが実在するサンプリング領域のモータ負荷対応データを所要に演算してドアの移動方向について予測されるモータ負荷対応データの予測値を求め、その予測値と実在するサンプリング領域のモータ負荷対応データの偏差から挟み込みの有無を判別する挟み込み判別手段とを備えることを特徴とする。
【００１１】
本発明の請求項２に記載の発明は、請求項１に記載の発明において、前記モータ負荷対応データが、間欠的に検出されたモータの電流値であることを特徴とする。
【００１２】
本発明の請求項３に記載の発明は、請求項１に記載の発明において、前記モータ負荷対応データが、ドア位置対応のアドレスを持つサンプリング領域内で間欠的に複数個検出されたモータ電流の平均電流値であることを特徴とする。
【００１３】
本発明の請求項４に記載の発明は、請求項１〜３のいずれかに記載の発明において、前記記憶されたモータ負荷対応データが、ドアの移動方向に配列する各サンプリング領域で検出されたモータの電流値又は平均電流値による直前検出のサンプリング領域の電流値又は平均電流値と今回検出のサンプリング領域の電流値又は平均電流値との変化率であることを特徴とする。
【００１４】
本発明の請求項５に記載の発明は、請求項１〜４のいずれかに記載の発明において、前記挟み込み判別手段が、記憶された前記モータ負荷対応データから求めた予測値と実在するサンプリング領域のモータ負荷対応データの偏差から挟み込みの有無を判別するとき、ドアの位置および作動方向に応じて判定度合いを変えていることを特徴とする。
【００１５】
本発明の請求項６に記載の発明は、請求項１〜５のいずれかに記載の発明において、前記挟み込み判別手段が、記憶された前記モータ負荷対応データから求めた予測値と実在するサンプリング領域のモータ負荷対応データの偏差から挟み込みの有無を判別するとき、予測値との比較に加えて、最近のモータ負荷データの増加傾向の判定を行うことを特徴とする。
【００１６】
【発明の実施の形態】
図１は、本発明による車両用スライドドアの自動開閉制御装置が適用される自動車の一例を示す外観斜視図で、車体１の側面にスライドドア２が前後方向に開閉可能に装着された状態を示している。また、図２はスライドドア２（鎖線で示す）を取り外した状態を示す車体１の拡大斜視図であり、図３はスライドドア２のみを単独で示す斜視図である。
【００１７】
これらの図において、スライドドア２は車体１のドア開口部３の上縁に設けたアッパートラック４と下縁に設けたロアートラック５にドア２の上下端に固設した摺動連結具６と連係して前後方向に摺動自在に懸架されている。
【００１８】
また、スライドドア２は内側後端に取り付けたヒンジアーム２２が車体１の後部ウェスト部付近に固定したガイドトラック７に摺動自在に係合して案内され、ドア開口部３を密閉した全閉位置から車体１のアウターパネルの外側面より若干外方に突出しながら車体１の外装パネル側面と平行に後方に移動し、ドア開口部３を全開させる全開位置まで移動するように装着されている。
【００１９】
さらに、スライドドア２は、全閉位置に位置するときに開口端面に設けたドアロック８が車体１側に固定したストライカと係合することによって、確実な閉鎖状態をもって全閉位置に保持されるように構成されている。また、スライドドア２の外側面には、手動による開閉操作を行うためのドアハンドル３７が取り付けられている。なお、ドアロック８はスライドドア２の後端面に設けるようにしてもよい。
【００２０】
また、車体１のドア開口部３の後方には、車体１を外装するアウターパネルと室内側のインナーパネルとの間に、図４に示すようなスライドドア駆動装置１０が装着されている。このスライドドア駆動装置１０は、モータ駆動によってガイドトラック７内に配設されたケーブル部材１２を移動させ、それによってケーブル部材１２に連結されたスライドドア２を移動させるものである。
【００２１】
なお、本実施の形態では車内に設置した開閉スイッチ（図示せず）によってスライドドア２の開閉指示を行うとともに、図１に示すように、車外からワイヤレスリモコン３０によっても開閉指示を行うことができるように構成されている。これらの構成の詳細については後述する。
【００２２】
図５は、スライドドア駆動装置１０の要部を示す斜視図である。スライドドア駆動装置１０はモータ駆動部１１を有し、このモータ駆動部１１は車体１の室内側にボルト等をもって固定されたベースプレート１３に、正逆転可能なスライドドア開閉用の開閉モータ１４、ケーブル部材１２が巻回されるドライブプーリ１５、電磁クラッチ１６を内蔵する減速部１７をそれぞれ固定した構成からなっている。
【００２３】
ドライブプーリ１５は回転伝達力が減速機構を有して開閉モータ１４の回転数を減少し、かつ出力トルクを増大してケーブル部材１２に伝達する。また、電磁クラッチ１６は開閉モータ１４の駆動時に別途適時に励磁されて開閉モータ１４とドライブプーリ１５とを機械的に連結する。
【００２４】
ドライブプーリ１５に巻回されたケーブル部材１２は、ガイドトラック７の後方に設けられた一対の案内プーリ１９，１９を介して外向きにコ字型に開口するガイドトラック７の上方の開口部７ａと、下方の開口部７ｂとに互いに平行に掛け回されるとともに、ガイドトラック７の前端部に設けた反転プーリ２０に巻回されて無端索条を形成している。
【００２５】
また、ケーブル部材１２のガイドトラック７の開口部７ａを走行する部分の適所には、開口部７ａ内を抵抗なく走行できる状態で移動部材２１が固設されている。ケーブル部材１２はこの移動部材２１より前方側が閉扉用ケーブル１２ａとなり、後方側が開扉用ケーブル１２ｂとなっている。
【００２６】
移動部材２１はヒンジアーム２２を介してスライドドア２の内側後端部に連結され、開閉モータ１４の回転による開扉用ケーブル１２ａまたは閉扉用ケーブル１２ｂの引っ張り力によってガイドトラック７の開口部７ａ内を前方または後方に移動し、それによってスライドドア２を閉扉方向または開扉方向に移動させるようになっている。
【００２７】
また、ドライブプーリ１５の回転軸には、その回転角度を高分解能に計測するロータリーエンコーダ１８が連係されている。ロータリーエンコーダ１８はドライブプーリ１５の回転角度に応じたパルス数の出力信号を発生し、ドライブプーリ１５に巻回されているケーブル部材１２の移動量、すなわちスライドドア２の移動量を計測できるようになっている。
【００２８】
このため、スライドドア２の全閉位置を初期値としてロータリーエンコーダ１８からのパルス数を全開位置まで計数すれば、その計数値Ｎは移動部材２１の位置、すなわちスライドドア２の位置を表すことになる。
【００２９】
図６は、スライドドア２の移動状況を示す概略的平面図である。前述したように、スライドドア２は上下端に固設した摺動連結具６がアッパートラック４およびロアートラック５と連係することによって前方部が保持されており、ヒンジアーム２２がガイドトラック７と連係することにより後方部が保持されている。
【００３０】
（スライドドア自動制御装置）
次に、図７に示すブロック図を参照してスライドドア自動制御装置２３と、車体１およびスライドドア２内の各電気的要素との接続関係について説明する。スライドドア自動制御装置２３はマイクロコンピュータによるプログラム制御によってスライドドア駆動装置１０を制御するもので、例えば車体１内のモータ駆動部１１の近傍に配置されている。
【００３１】
スライドドア自動制御装置２３と車体１内の各電気的要素との接続としては、直流電圧ＢＶを受けるためのバッテリー２４との接続、イグニッション信号ＩＧを受けるためのイグニッションスイッチ２５との接続、パーキング信号ＰＫを受けるためのパーキングスイッチ２６との接続、メインスイッチ信号ＭＡを受けるためのメインスイッチ２７との接続がある。
【００３２】
さらに、ドア開信号ＤＯを受けるためのドア開スイッチ２８との接続、ドア閉信号ＤＣを受けるためのドア閉スイッチ２９との接続、ワイヤレスリモコン３０からのリモコン開信号ＲＯまたはリモコン閉信号ＲＣを受けるためのキーレスシステム３１との接続、スライドドア２が自動開閉されることを警告するために警報音を発生するブザー３２との接続がある。
【００３３】
なお、ドア開スイッチ２８およびドア閉スイッチ２９がそれぞれ２つの操作子から構成されているのは、これらのスイッチが例えば車内の運転席と後部座席との２箇所に設置されていることを示している。
【００３４】
次に、スライドドア自動制御装置２３とスライドドア駆動装置１０との接続関係としては、開閉モータ１４に電力を供給するための接続、電磁クラッチ１６を制御するための接続、ロータリーエンコーダ１８からのパルス信号を受けてパルス信号φ１、φ２を出力するパルス信号発生部３８との接続などがある。
【００３５】
また、スライドドア自動制御装置２３とスライドドア２内の各電気的要素との接続としては、スライドドア２が全閉状態より若干開いた状態でドア開口部３に設けた車体側コネクタ３３とスライドドア２の開口端に設けたドア側コネクタ３４とが接続されることによって可能となる。
【００３６】
この接続状態でのスライドドア自動制御装置２３とスライドドア２内の各電気的要素との接続としては、スライドドア２をハーフラッチからフルラッチの状態にまで締め込むためにクロージャーモータＣＭに電力を供給するための接続、ドアロック８を駆動してストライカ９から外すためのアクチュエータ（ＡＣＴＲ）３５に電力を供給するための接続、ハーフラッチを検出するハーフラッチスイッチ３６からのハーフラッチ信号ＨＲを受けるための接続、ドアロック８と連結しているドアハンドル３７の操作を検出するドアハンドルスイッチ３７ａからのドアハンドル信号ＤＨを受けるための接続などがある。
【００３７】
次に、図８に示すブロック図を参照してスライドドア自動制御装置２３の構成について説明する。スライドドア自動制御装置２３は主制御部５５を有し、一定の時間間隔で繰り返し制御を行っている。主制御部５５内には各入出力周辺機器の状況に応じて適正な制御モードを選択する制御モード選択部５４が含まれている。
【００３８】
制御モード選択部５４は、各入出力周辺機器の最新の状況に応じて制御に必要な最適の専用制御部を選択する。専用制御部としては、主としてスライドドア２の開閉を制御するオートスライド制御部５６、スライドドア２の移動速度を制御する速度制御部５７、スライドドア２を駆動中にスライドドア２の移動を抑制する物が移動方向に挟み込まれたか否かを検出する挟み込み制御部５８がある。また、オートスライド制御部５６は、車体１の姿勢を検出するための坂道判定部５９を含んでいる。
【００３９】
また、スライドドア自動制御装置２３は複数の入出力ポート３９を有し、前述した各種のスイッチのオン／オフ信号や、リレーまたはクラッチ等の動作／非動作信号等を入出力するように構成されている。また、速度算出部４２および位置検出部４３はパルス信号発生部３８から出力される２相のパルス信号φ１，φ２を受けて周期計数値Ｔおよび位置計数値Ｎを生成する。
【００４０】
バッテリー２４は自動車の走行中に発電機４０によって充電され、その出力電圧は安定化電源回路４１によって定電圧化されてスライドドア自動制御装置２３に供給される。また、バッテリー２４の出力電圧は電圧検出部４７によって検出され、その電圧値はＡ／Ｄ変換部４８でディジタル信号に変換されてスライドドア自動制御装置２３に入力される。
【００４１】
さらに、バッテリー２４の出力電圧はシャント抵抗４９に供給され、抵抗４９に流れる電流値Ｉが電流検出部５０で検出される。検出された電流値ＩはＡ／Ｄ変換部５１でディジタル信号に変換され、スライドドア自動制御装置２３に入力される。
【００４２】
また、バッテリー２４の出力電圧はシャント抵抗４９を介して電力スイッチ素子４６に供給される。この電力スイッチ素子４６はスライドドア自動制御装置２３によってオン／オフ制御され、直流信号をパルス信号に変換して開閉モータ１４またはクロージャーモータＣＭに供給する。パルス信号のデューティ比は電力スイッチ素子４６で自在に制御し得るようになっている。
【００４３】
電力スイッチ素子４６で得られたパルス信号は、極性反転回路４５およびモータ切替回路４４を介して開閉モータ１４またはクロージャーモータＣＭに供給される。極性反転回路４５は開閉モータ１４またはクロージャーモータＣＭの駆動方向を変更するためのもので、電力スイッチ素子４６と共にモータの電力供給回路を構成している。
【００４４】
また、モータ切替回路４４は主制御部５５からの指示によってスライドドア２を開閉駆動する開閉モータ１４とクロージャーモータＣＭとのいずれか一方を選択する。両モータともスライドドア２を駆動するモータであるが、同時に駆動されることがないため、選択的に駆動電力を供給するようにしている。
【００４５】
この他に、主制御部５５からの指示によって電磁クラッチ１６を制御するクラッチ駆動回路５２、同じく主制御部５５からの指示によってアクチュエータ３５を制御するアクチュエータ駆動回路５３を備えている。
【００４６】
（メインルーチン）
次に、この構成を有する本発明の動作について説明する。図９は、スライドドア自動制御装置２３の動作を示すメインルーチンのフローチャートである。初めに初期設定を行い（ステップ１０１）、稼働初期に主なパラメータ等をイニシャライズする。スイッチ（ＳＷ）判定（ステップ１０２）は、入出力ポート３９に接続されている前述した各種のスイッチ２５〜２９等の開閉状態を判定し、各スイッチの開閉状態を示すフラグ等を設定する。
【００４７】
Ａ／Ｄ入力（ステップ１０３）は、Ａ／Ｄ変換部４８，５１から電圧値Ｖおよび電流値Ｉを取り込む。このＡ／Ｄ入力は下位レベルに電流値補正（ステップ１１１）、電圧アドレス変換（ステップ１１２）を備えている。
【００４８】
次いで、前述した各スイッチの開閉状態等の周囲状況からオートスライドモード（ステップ１１３）かクロージャーモード（ステップ１１４）かを判定するモード判定（ステップ１０４）を行い、いずれかに選択制御する。オートスライドモードは開閉モータ１４を駆動してスライドドア２を開閉制御するモードであり、クロージャーモードはクロージャーモータＣＭを駆動してスライドドア２をフルラッチの状態に締め込んだり解放したりするモードである。
【００４９】
続くアクチュエータ（ＡＣＴＲ）リレー制御（ステップ１０５）、クラッチリレー制御（ステップ１０６）、オートスライドリレー制御（ステップ１０７）およびクロージャーリレー制御（ステップ１０８）は、各制御部の制御結果が反映されて、電磁クラッチ１６やモータ１４，ＣＭに電力投入を行う直接的制御部分なので、特に詳細な説明は省略する。なお、スライドドア２を開閉駆動する開閉モータ１４の起動・停止はオートスライドリレー制御（ステップ１０７）によって行う。
【００５０】
次のスリープモード（ステップ１０９）は、長時間なんの変化もないときに電力消費を低減する制御である。次のプログラム調整（ステップ１１０）は、別途ループ外に設けた割り込みプログラムにおけるプログラム調節タイマー（ステップ１１５）により、メインループのインターバルを、例えば１０mm秒に一定に制御するものである。
【００５１】
このプログラム調整において、プログラム調節タイマーの割り込みを受けることにより、各ステップにおける制御点が周囲の状況によってネストのより深いレベルに入り込んだり、浅い階層で済んだり等して、メインループの入り口に戻るインターバルが変動するのを常に一定に調節している。プログラム調整が終了すると、ＳＷ判定（ステップ１０２）に戻り、それ以降の処理を繰り返すループ制御を行っている。
【００５２】
（モード判定ルーチン）
図１０は、モード判定（ステップ１０４）の中のオートスライドモード判定の概要を示すフローチャートである。このオートスライドモード判定では、ドア２の動き出しをその時点の様々な状況によって区分するスタートモード（ステップ１１７）、動き出したドア２をその時点の状況に応じて適正に制御する挟み込み判定（ステップ１１８）、坂道モード（ステップ１１９）、速度制御（ステップ１２０）等がある。坂道モードは、その下位レベルに平坦値データ入力（ステップ１２１）、坂道判定（ステップ１２２）等のルーチンがある。
【００５３】
また、オートスライドモード判定（ステップ１１６）は、スイッチ文（ステップ１２３）の部分で周囲の状況に応じた識別子によりオート開作動（ステップ１２４）、オート閉作動（ステップ１２５）、マニュアル閉作動（ステップ１２６）、逆転開作動（ステップ１２７）、逆転閉作動（ステップ１２８）のいずれかに分岐されて制御を行い、これらの制御の下位レベルには、目標位置算出（ステップ１２９）、全開検出（ステップ１３０）の各ルーチンがある。さらに、スタートモード（ステップ１１７）等と同じレベルにストップモード（ステップ１３１）のルーチンがある。
【００５４】
また、スタートモード（ステップ１１７）は、その下位レベルにスイッチ文（ステップ１３２）により多枝分岐される通常スタートモード（ステップ１３３）、ＡＣＴＲスタートモード（ステップ１３４）、手動通常スタートモード（ステップ１３５）および手動全閉スタートモード（ステップ１３６）の各ルーチンがある。
【００５５】
なお、スイッチ文（ステップ１２３，１３２）として示される多分岐フローは周囲の状況を示す識別子として各スイッチの開閉状態や、所要の制御の継続中または終了を表す通常は１ビットのフラグを利用している。
【００５６】
このオートスライドモード判定のフローは、メインルーチンにしたがって制御点を移しているが、図１０に別途に示すパルスカウントタイマー（ステップ１１５Ａ）およびパルス割り込み（ステップ１１５Ｂ）の両ルーチンは、メインルーチンとは制御点を別にした割り込みプログラムを構成している。
【００５７】
（周期計数値Ｔ・位置計数値Ｎ）
図１１は、割り込みプログラムにおけるパルスカウントタイマー（ステップ１１５Ａ）とパルス割り込み（ステップ１１５Ｂ）の各ルーチンにおいて所要される周期計数値Ｔおよび位置計数値Ｎの取得タイムチャートを示す図である。
【００５８】
同図において、２相の速度信号Ｖφ１，Ｖφ２はロータリーエンコーダ１８から出力される２相のパルス信号φ１，φ２に対応するもので、両信号の位相関係からロータリーエンコーダ１８の回転方向、すなわちスライドドア２の移動方向を検出する。具体的には、パルス信号φ１の立ち上がり時にパルス信号φ２がＬレベル（図示の状態）であれば、例えば開扉方向と判定し、逆にＨレベルであれば閉扉方向と判定する。
【００５９】
速度算出部４２では、速度信号Ｖφ１の立ち上がり時に割り込みパルスｇ１を発生し、この割り込みパルスｇ１の発生周期の間に割り込みパルスｇ１より十分小さな周期（例えば、４００μsec ）を有するクロックパルスＣ１のパルス数を計数し、その計数値を周期計数値Ｔとする。従って、この周期計数値Ｔはロータリーエンコーダ１８が出力するパルス信号φ１の周期をディジタル値に変換したものとなる。
【００６０】
例えば、ロータリーエンコーダ１８の出力パルスが１mm当たり１パルス（１周期）とすると、周期計数値Ｔが２５０のときはドア２の移動速度は「１mm／（４００μｓ×２５０）＝１０mm／sec 」となり、周期計数値Ｔが１００のときはドア２の移動速度は「２５mm／sec 」となる。
【００６１】
なお、図１１に示す周期計数値ＴN-3 〜ＴN+3 は、ロータリーエンコーダ１８が出力する出力信号φ１によって得られる位置計数パルス（実質的には割り込みパルスｇ１）を計数したドア２の位置情報を示す位置計数値Ｎを添え字として持つもので、周期計数値ＴN は、そのときに注目するＮ番目の位置に対応した周期計数値Ｔを示し、ＴN-1 、ＴN-2 またはＴN+1 、ＴN+2 は、それぞれ位置計数値Ｎに対して１または２番前後の位置に係る周期計数値Ｔを示すものである。
【００６２】
また、この実施の形態では速度信号Ｖφ１の連続する４周期分の周期計数値からスライドドア２の速度を認識するようにしているので、４周期分の周期計数値を格納するために４つの周期レジスタ１〜４を備えており、４つの周期レジスタにＮ番の位置を注目点とし、それが周期レジスタ１〜４の先頭出力値となるように４回分保留されるようになっている。
【００６３】
こうして、パルスカウントタイマー（ステップ１１５Ａ）とパルス割り込み（ステップ１１５Ｂ）のルーチンとは、メインルーチンとは別途にそれぞれのタイミングで周期計数値Ｔと位置計数値Ｎとを収得している。
【００６４】
図１２は、ロータリーエンコーダ１８が出力する出力信号φ１を位置計数パルスとしてドア２の後述する制御領域Ｅ１〜Ｅ６における分解能Ｂに応じてサンプリングされるサンプリング点のタイムチャートを示している。すなわち、制御領域Ｅ３，Ｅ４では位置計数パルスφ１を２分の一分周した分解能２でサンプリングし、制御領域Ｅ２では位置計数パルスφ１を４分の一分周した分解能４でサンプリングし、制御領域Ｅ１，Ｅ５，Ｅ６では位置計数パルスφ１を８分の一分周した分解能８でサンプリングする。
【００６５】
（スライドドアの制御領域）
ここで、スライドドア２の制御領域Ｅ１〜Ｅ６について説明する。図１３は、ガイドトラック７の平面視を示している。スライドドア２の開閉位置を移動部材２１の位置で表すと、ドア２の閉方向に係るドアの所在エリアはエリア１〜４の４エリアに分けてあり、ドア２の開方向に係るドアの所在エリアはエリア５〜７の３エリアに分けてある。
【００６６】
ドア２の全閉位置の位置計数値Ｎを０、全開位置の位置計数値Ｎを８５０とすると、閉方向移動（Ｚ＝０）の場合は、Ｎ＝８５０〜６００がエリア１、Ｎ＝６００〜３５０がエリア２、Ｎ＝３５０〜６０がエリア３、Ｎ＝６０〜０がエリア４となっている。エリア４の内の全閉側半分はＡＣＴＲ領域となっている。開方向移動（Ｚ＝１）の場合は、Ｎ＝０〜１２０がエリア５、Ｎ＝１２０〜８００がエリア６、Ｎ＝８００〜８５０がエリア７となっている。
【００６７】
そして、エリア１とエリア６が通常制御領域Ｅ１、エリア２が減速制御領域Ｅ２、エリア３がリンク減速領域Ｅ３、エリア４が締め込み制御領域Ｅ４、エリア５がリンク減速領域Ｅ５、エリア７がチェック制御領域Ｅ６となっており、ドア２は各制御領域に適した移動速度等で制御される。
【００６８】
（パルス割り込みルーチン）
図１４は、パルス割り込みルーチン（ステップ１１５Ｂ）を示すフローチャートである。このルーチンは割り込みパルスｇ１の発生毎に位置計数値Ｎおよびドア移動方向Ｚによってスライドドア２が現在位置するエリア１〜７および制御領域Ｅ１〜Ｅ６（図１３参照）を判別する処理である。なお、エリア１〜７および制御領域Ｅ１〜Ｅ６の詳細については後述する。
【００６９】
まず、開閉モータ１４が停止中か否か調べ（ステップ１３７）、作動中であれば現在の周期計数値Ｔを周期レジスタに格納し（ステップ１３８）、モータ停止中を解除する（ステップ１３９）。開閉モータ１４が停止中であれば周期計数値Ｔに満杯値ＦＦ（１６進数）をセットする（ステップ１４０）。
【００７０】
次いで、ドア２の移動方向Ｚを調べ（ステップ１４１）、ドア２が開方向（Ｚ＝１）に移動していれば位置計数値Ｎを増計数し（ステップ１４２）、それにより位置計数値Ｎが１２０以上で８００未満であれば（ステップ１４３，１４４）、前は制御領域Ｅ１か調べ（ステップ１４５）、制御領域Ｅ１であれば現在も制御領域Ｅ１であるので処理を終了し、前が制御領域Ｅ１でなければ制御領域Ｅ１、エリア６にセットし（ステップ１４６）、エリア変更指示データを変更有りにセットし（ステップ１４７）、処理を終了する。
【００７１】
位置計数値Ｎが１２０未満であれば（ステップ１４３）、前は制御領域Ｅ５か調べ（ステップ１４８）、制御領域Ｅ５であれば現在も制御領域Ｅ５であるので処理を終了し、前が制御領域Ｅ５でなければ制御領域Ｅ５、エリア５にセットし（ステップ１４９）、エリア変更指示データを変更有りにセットし（ステップ１４７）、処理を終了する。
【００７２】
位置計数値Ｎが８００を超えていれば（ステップ１４４）、前は制御領域Ｅ６か調べ（ステップ１５０）、制御領域Ｅ６であれば現在も制御領域Ｅ６であるので処理を終了し、前が制御領域Ｅ６でなければ制御領域Ｅ６、エリア７にセットし（ステップ１５１）、エリア変更指示データを変更有りにセットし（ステップ１４７）、処理を終了する。
【００７３】
ドア２が開方向（Ｚ＝０）に移動していれば（ステップ１４１）、位置計数値Ｎを減計数し（ステップ１５２）、それによって位置計数値Ｎが６００を超えた値であれば（ステップ１５３〜１５５）、前は制御領域Ｅ１か調べ（ステップ１５６）、制御領域Ｅ１であれば現在も制御領域Ｅ１であるので処理を終了し、前が制御領域Ｅ１でなければ制御領域Ｅ１、エリア１にセットし（ステップ１５７）、エリア変更指示データを変更有りにセットして（ステップ１４７）、処理を終了する。
【００７４】
位置計数値Ｎが６０以下であれば（ステップ１５３）、前は制御領域Ｅ４か調べ（ステップ１５８Ａ）、制御領域Ｅ４であれば現在も制御領域Ｅ４であるので処理を終了し、前が制御領域Ｅ４でなければ制御領域Ｅ４、エリア４にセットし（ステップ１５８Ｂ）、エリア変更指示データを変更有りにセットし（ステップ１４７）、処理を終了する。
【００７５】
位置計数値Ｎが６０を超え、３５０以下であれば（ステップ１５４）、前は制御領域Ｅ３か調べ（ステップ１５８Ｃ）、制御領域Ｅ３であれば現在も制御領域Ｅ３であるので処理を終了し、前が制御領域Ｅ３でなければ制御領域Ｅ３、エリア３セットし（ステップ１５８Ｄ）、エリア変更指示データを変更有りにセットし（ステップ１４７）、処理を終了する。
【００７６】
位置計数値Ｎが３５０を超え、６００以下であれば（ステップ１５５）、前は制御領域Ｅ２か調べ（ステップ１５８Ｅ）、制御領域Ｅ２であれば現在も制御領域Ｅ２であるので処理を終了し、前が制御領域Ｅ２でなければ制御領域Ｅ２、エリア２にセットし（ステップ１５８Ｆ）、エリア変更指示データを変更有りにセットし（ステップ１４７）、処理を終了する。
【００７７】
（パルスカウントタイマー）
図１５は、パルスカウントタイマー（ステップ１１５Ａ）を示すフローチャートである。クロックパルスＣ１の数を所要のパルスカウンタにより計数して周期計数値Ｔを得（ステップ１５９）、周期計数値Ｔが満杯（Ｔ＝ＦＦ）になったか調べ（ステップ１６０）、満杯でなければリターンし、満杯ならば周期計数値Ｔを零にクリアー（Ｔ＝０）し（ステップ１６１）、所要カウンタの計数値を増計数してキャリーアップし（ステップ１６２）、その後リターンする。
【００７８】
（エリア１〜７における制御）
図１６は、前述したエリア１〜７（図１３）においてスライドドア２を制御するために要求される各種データを記憶するためのメモリテーブルである。エリア１とエリア６の両エリアは通常制御領域Ｅ１と称し、この制御領域Ｅ１ではドア２の適性移動速度Ｔ１が２５０mm／s 、基準デューティ値Ｄが２５０、サンプリング領域の分解能Ｂが８で、注目度は小となっている。
【００７９】
デューティ値Ｄは、モータに印加する電圧波形（矩形波）のデューティサイクルを示す値で、本実施の形態では、「Ｄ＝２５０」がデューティサイクル１００％、すなわちＨレベルの直流信号を意味し、「Ｄ＝０」がデューティサイクル０％、すなわちＬレベルの直流信号を意味している。そして、この間の２５０段階で矩形波のデューティサイクルを変化させることによってモータの出力トルクを調整するようにしている。
【００８０】
エリア２は減速制御領域Ｅ２と称し、この制御領域Ｅ２ではドア２の適性移動速度Ｔ２が１７０mm／s 、デューティ値Ｄが１７０、分解能Ｂが４、注目度は危険領域である。また、エリア３はリンク減速制御領域Ｅ３と称し、この制御領域Ｅ３ではドア２の適性移動速度Ｔ３が１００mm／s 、デューティ値Ｄが１００、分解能Ｂが２、注目度は危険領域である。さらに、エリア４は締め込み制御領域Ｅ４と称し、この制御領域Ｅ４ではドア２の適性移動速度Ｔ４が１２０mm／s 、デューティ値Ｄが１２０、分解能Ｂが２、注目度は危険領域である。さらに、エリア５はリンク減速制御領域Ｅ５と称し、この制御領域Ｅ５ではドア２の適性移動速度Ｔ５が２００mm／s 、デューティ値Ｄが２００、分解能Ｂが８、注目度は小である。さらに、エリア７はチェック制御領域Ｅ６と称し、この制御領域Ｅ６ではドア２の適性移動速度Ｔ６が２５０mm／s 、注目度は中である。
【００８１】
分解能Ｂは比較的注目度の低い通常領域Ｅ１のエリア１，６、リンク減速制御領域Ｅ５のエリア５は間引き幅の広い分解能Ｂを８に設定してある。また、減速制御領域Ｅ２のエリア２は挟み込みの発生しやすい危険領域であるが、ドア２の開度が十分にあるエリアなので分解能Ｂは４に設定してある。さらに、リンク減速制御領域Ｅ３のエリア３と、締め込み制御領域Ｅ４は、ドア２が曲線を描いて移動し、かつ注目度の最も高い危険領域なので、分解能Ｂは最も細かい２に設定してある。これらの分解能Ｂに基づいて定めたサンプリング領域Ｑを図１２に示している。ｎは閉方向、ｍは開方向である。
【００８２】
（オートスライドモード判定）
図１７は、オートスライドモード判定ルーチン（ステップ１１６）の詳細を示すフローチャートである。このルーチンはスライドドア２を開閉駆動するためのオートスライドモードか否か判定し、オートスライドモードでなければ始動判定を行う。ドア２の始動を判定したときはオートスライド作動中の処理を行う。オートスライド作動の終了を判定するとオートスライドの停止処理を行い、オートスライド作動を終了させる。
【００８３】
まず、オートスライド停止中であればストップモード状態（ステップ１６３）ではなく、オートスライド作動中（ステップ１６５）でもないので、メインスイッチのオン／オフ状態を調べ（ステップ１６７）、メインスイッチがオフであればリターンする。
【００８４】
メインスイッチがオンであれば手動および始動判定（ステップ１６８，１６９）を行う。手動判定（ステップ１６８）の詳細は後述する（図１８）が、ドア２が所定の速度以上で移動したことを検出すると、手動開または手動閉状態にセットし、オートスライド作動モードに移行するための準備を行う。
【００８５】
手動判定が終了すると、始動モード判定を実行する（ステップ１６９）。始動モード判定は、オートスライド作動モードを決定するための処理で、スイッチ判定（ステップ１０２）でリモコンスイッチ３０のドア開を検出し、またはドア開スイッチ２８のオンを検出し、あるいは手動判定（ステップ１６８）で手動開状態を確認したときは、オート開作動モード（ステップ１８１）にセットする。また、危険領域外においてリモコンスイッチ３０のドア閉を検出し、またはドア閉スイッチ２９のオンを検出し、あるいは手動閉状態を確認したときはオート閉作動モード（ステップ１８２）にセットする。また、危険領域内においてドア閉スイッチ２９のオンを検出したときはマニュアル閉作動モード（ステップ１８３）にセットする。
【００８６】
こうして始動モード判定（ステップ１６９）が終了すると、オートスライド作動モード状態か判定する（ステップ１７０）。オートスライド作動モードでなければリターンする。オートスライド作動モードであれば、オートスライドが始動したので、動作計数値Ｇをクリアし（ステップ１７１）、オートスライド動作中の状態にセットし（ステップ１７２）、スタート中の状態にセットし（ステップ１７３）、オートスライド開始にセットする（ステップ１７４）。こうしてオートスライド作動がセットされる。
【００８７】
チェック制御（ステップ１７５）は、電磁クラッチ１６を半クラッチ状態にしてドア２を停止保持する仮保持制御を行う部分で、オートスライド作動中の場合はストップモード終了後に行う。手動操作時はドア２が止まったことを確認してから行う。
【００８８】
ステップ１６８〜１７４によってオートスライド開始にセットされると、次のオートスライドモード判定ルーチンのときはオートスライド作動中およびスタートモード（ステップ１６５，１６６）と判定し、スタートモードの処理を実行する（ステップ１７６）。
【００８９】
このスタートモードは各スイッチのオン／オフ状態や周囲の状況に応じてドア２を動力駆動するためのオートスライド動作をスタートさせるモードを識別し、その識別したモードで制御を行う。この詳細については後述する。スタートモードが終了し、次のオートスライドモード判定ルーチンのときは通常モードに入り、挟み込み判定（ステップ１７７）、速度制御（ステップ１７８）、坂道判定（ステップ１７９）を実行する。なお、これらの詳細については後述する。
【００９０】
また、始動モード判定（ステップ１６９）で行った各スイッチの開閉状態に応じて、スイッチ文１８０でオート開作動（ステップ１８１）、オート閉作動（ステップ１８２）、マニュアル閉作動（ステップ１８３）に分岐する。また、これらの作動中に挟み込みを検出したときは、逆転開作動（ステップ１８４）、逆転閉作動（ステップ１８５）に分岐する。
【００９１】
なお、オートスライド作動中（ステップ１８６）は作動計数値Ｇを増計数し（ステップ１８７）、リターンする。オートスライド作動終了を判定すると（ステップ１８６）、作動計数値Ｇをクリアし（ステップ１８８）、ストップモードにセットして（ステップ１８９）、リターンする。
【００９２】
ストップモードがセット（ステップ１８９）されると、次のオートスライドモード判定ルーチンのときにストップモード状態と判定され（ステップ１６３）、ストップモード（ステップ１６４）を実行する。このストップモードはオートスライドモード時におけるドア２の開閉制御時に、ドア２の動力駆動を停止させたときの安全制御を目的として、電磁クラッチ１６のオフと開閉モータ１４のオフとのそれぞれのタイミングを制御している。
【００９３】
すなわち、ドア２が全開位置と全閉位置との中間位置で停止した時は、開閉モータ１４を先に停止させ、その後に所要の待ち時間をおいて電磁クラッチ１６をオフにする。ドア２が全閉位置のときは直ぐに開閉モータ１４、電磁クラッチ１６を同時にオフする。ストップモード作動中は作動計数値Ｇを増計数し（ステップ１９１）、リターンする。ストップモード終了時は、作動計数値Ｇをクリアし（ステップ１９２）、ストップモードを解除し（ステップ１９３）、オートスライド作動を終了させ（ステップ１９４）、リターンする。
【００９４】
（手動判定ルーチン）
図１８は、手動判定ルーチン（ステップ１６８）の詳細を示すフローチャートである。この手動判定ルーチンは、ドア２を制御するメインルーチンとは別に計測されているドア速度を検出することによって、ドア２が手動力で作動したことを検知し、動力駆動する契機を得るものである。
【００９５】
まず、ドア２が全閉状態（ハーフスイッチがオン）か判断する（ステップ１９５Ａ）。ドア２が全閉状態であれば、ドア全閉状態にセットされているか判断し（ステップ１９５Ｄ）、セットされていなければドア全閉状態にセットする（ステップ１９５Ｅ）。次いで、ドアハンドル３７が操作されてハンドルスイッチ３７ａがオンしたか判断し（ステップ１９５Ｆ）、オンしていなければリターンする。ハンドルスイッチ３７ａがオンになると（ステップ１９５Ｆ）、ドア全閉状態をクリアし（ステップ１９５Ｇ）、全閉−ドア開手動状態にセットし（ステップ１９５Ｈ）、リターンする。
【００９６】
ドア２が全閉状態でなければ（ステップ１９５Ａ）、ドア全閉状態にセットされているか判断し（ステップ１９５Ｂ）、セットされていればドア全閉状態をクリアし（ステップ１９５Ｇ）、全閉−ドア開手動状態にセットする（ステップ１９５Ｈ）。これは、通常はドアハンドル３７を引いてドア２を開けるので、それによってドア全閉状態がクリアされるが（ステップ１９５Ｆ，１９５Ｇ）、ハンドルスイッチ故障時またはハンドルスイッチを省略したシステムの場合は、ハーフスイッチがオフとなったことを検出してドア全閉状態をクリアし（ステップ１９５Ａ，１９５Ｂ，１９５Ｇ）、全閉−ドア開手動状態セット（ステップ１９５Ｈ）する。
【００９７】
ドア全閉状態にセットされていなければ（ステップ１９５Ｂ）、ドア２の移動速度を表す速度データ（ａ／Ｔ：ａはロータリーエンコーダの分解能）が所定の手動認識速度より速く（ステップ１９５Ｃ）、しかも急閉速度以下のとき（ステップ１９６）は、開閉方向に基づき（ステップ１９７）、ドア開手動状態（ステップ１９８）またはドア閉手動状態（ステップ１９９）のいずれかのモードにセットする。ドア速度が手動認識速度以下のとき（ステップ１９５Ｃ）は、ドア２が停止しているとしてリターンし、ドア速度が急閉速度以上（ステップ１９６）のときは、メカ保護上そのまま手動力による閉作動を継続させるためにリターンする。
【００９８】
ただし、電磁クラッチ１６がオフ後は、ワイヤーの張力による運動を無視するために所要のタイムラグ期間中はドア開閉いずれかの状態への移行は受け付けないようになっている。
【００９９】
なお、手動認識速度はドア２の動力駆動を行う契機を作り出す値で、比較的広範囲の任意の値を設定することができる。ドア２の移動速度、換言すれば周期計数値Ｔはロータリーエンコーダ１８の１周期を最小の分解能として計測可能であることから、１mm程度のドア２の移動によっても、ドア２を動力駆動させる契機を作り出すことができる。これにより、オート開閉作動の反応が高感度になるとともに、安全性を得る処理に対応させるために、ドア２の動きの変化を高分解能で高感度に検知することができる。
【０１００】
（オート開作動ルーチン）
図１９は、オート開作動ルーチン（ステップ１２２，１８１）の詳細を示すフローチャートである。このオート開作動ルーチンは、リモコンスイッチ３０をドア開に操作し、またはドア開スイッチ２８をオンし、あるいはドア開手動状態を確認したときにスイッチ文１８０で選択され、ドア２を開方向に安全に動力駆動するために、オート開作動中のドア駆動停止または反転作動の制御を行うものである。
【０１０１】
まず、全開検出を行う（ステップ２００）。この全開検出の詳細については後述するが、ドア２が全開状態か検出するもので、この全開検出が終了すると、挟み込み判定を実行し（ステップ２０１）、挟み込みがなければ全開検出でドア全開状態を検出したか判断する（ステップ２０５）。ドア２が全開状態でなく、異常状態でもなく（ステップ２０７）、スイッチ受付可能であり（ステップ２０８）、リモコン３０の閉スイッチおよびドア閉スイッチ２９が共にオフであり（ステップ２１０，２１１）、メインスイッチがオンであり（ステップ２１２）、リモコン３０の開スイッチおよびドア開スイッチ２８が共にオフであれば（ステップ２１３，２１４）、リターンし、オート開作動を継続する。
【０１０２】
挟み込みを検出すると（ステップ２０１）、反転方向に制御を移すための目標位置算出を実行し（ステップ２０２）、挟み込み有りを解除し（ステップ２０３）、閉危険領域（エリア２〜４）でなければ（ステップ２０４）、オート開作動を解除し、逆転閉作動を許可し、ドア開作動を解除し、ドア閉作動を許可し（ステップ２１５〜２１８）、リターンする。閉危険領域であれば、オート開作動を解除し（ステップ２２３）、リターンする。
【０１０３】
ドア２が全開位置に達すれば（ステップ２０５）、ドア全開検出を解除し（ステップ２０６）、オート開作動を解除し（ステップ２２３）、リターンする。また、モータロックなどの異常を検出した場合も（ステップ２０７）、オート開作動を解除し（ステップ２２３）、リターンする。オート開作動解除（ステップ２２３）によって電磁クラッチ１６および開閉モータ１４を制御し、ドア２を停止させる（ステップ１０６，１０７）。
【０１０４】
また、本実施の形態では、開閉スイッチは全てプッシュ・オン／プッシュ・オフ式となっているので、いずれかのスイッチが押されたままだとスイッチ受付可能状態でないと判断し（ステップ２０８）、各開閉スイッチのオン／オフ状態を確認する。
【０１０５】
すなわち、リモコン３０の開スイッチまたはドア開スイッチ２８の少なくとも一方がオンで（ステップ２０９，２１９）、リモコン３０の閉スイッチまたはドア閉スイッチ２９が共にオフであれば（ステップ２２０，２２２）、そのままリターンしオート開作動を継続する。しかし、リモコン３０の開スイッチまたはドア開スイッチ２８の一方がオンで（ステップ２０９，２１９）、リモコン３０の閉スイッチまたはドア閉スイッチ２９の一方がオンであれば（ステップ２２０，２２２）、開スイッチと開スイッチの双方がオンされていることになるので、オート開作動を解除し（ステップ２２３）、リターンする。また、リモコン３０の開スイッチおよびドア開スイッチ２８の双方がオフであれば（ステップ２０９，２１９）、スイッチ受付可能にセットし（ステップ２２１）、リターンする。
【０１０６】
スイッチ受付可能なときに（ステップ２０８）、すなわち開閉スイッチの全てがオフのときにリモコン３０の閉スイッチまたはドア閉スイッチ２９の少なくとも一方がオンすれば（ステップ２１０，２１１）、ドア閉作動の指示が出されたと判断して前述したステップ２０４以降の処理に移行する。
【０１０７】
メインスイッチがオフすると（ステップ２１２）、オート開作動を解除し（ステップ２２３）、開閉モータ１４を停止してリターンする。また、リモコン３０の開スイッチまたはドア開スイッチ２８の少なくとも一方がオンすると（ステップ２１３，２１４）、プッシュ・オン／プッシュ・オフ式の開スイッチが再度オンされたことになるので、その位置でスライドドア２を停止させるためオート開作動を解除し（ステップ２２３）、リターンする。
【０１０８】
（オート閉作動ルーチン）
図２０は、オート閉作動ルーチン（ステップ１２３，１８２）の詳細を示すフローチャートである。このオート閉作動ルーチンは、危険領域外においてリモコンスイッチ３０をドア閉に操作し、またはドア閉スイッチ２９をオンし、あるいはドア閉手動状態を確認したときにスイッチ文１８０で選択され、ドア２を閉方向に安全に動力駆動させるために、オート閉作動中のドア駆動停止または反転作動の制御を行うものである。
【０１０９】
まず、ドア２がハーフラッチ領域に達すれば（ステップ２２４）、オート閉作動を解除し（ステップ２４６）、リターンする。ドア２がハーフラッチ領域以外のときは挟み込み判定を実行する（ステップ２２５）。挟み込みがなく、異常もなく、スイッチ受付可能であり、リモコン３０の開スイッチおよびドア開スイッチ２８が共にオフであり、メインスイッチがオンであり、リモコン３０の閉スイッチおよびドア閉スイッチ２９が共にオフであれば（ステップ２２９〜２３５）、オート閉作動中であるのでリターンする。
【０１１０】
挟み込みを検出すると（ステップ２２５）、ドア２を反対方向に移動させるために目標位置算出を実行し（ステップ２２６）、挟み込み有りを解除し（ステップ２２７）、オート閉作動を解除し（ステップ２２８）、逆転開作動を許可し、ドア閉作動を解除し、ドア開作動を許可する（ステップ２３６〜２３８）。次いで、ドア２がＡＣＴＲ領域でなければリターンし、ＡＣＴＲ領域ならば（ステップ２３９）、ＡＣＴＲ作動許可して（ステップ２４０）、リターンする。
【０１１１】
モータロックなどで異常電流を検出した場合は（ステップ２２９）、オート開作動を解除し（ステップ２４６）、リターンする。オート閉作動解除（ステップ２４６）によって電磁クラッチ１６および開閉モータ１４を制御し、ドア２を停止させる（ステップ１０６，１０７）。
【０１１２】
また、いずれかの開閉スイッチが押されたままでスイッチ受付可能状態でないと判断した場合は（ステップ２３０）、各開閉スイッチのオン／オフ状態を確認する。すなわち、リモコン３０の閉スイッチまたはドア閉スイッチ２９の少なくとも一方がオンで（ステップ２４１，２４２）、リモコン３０の開スイッチまたはドア開スイッチ２８が共にオフであれば（ステップ２４３，２４４）、そのままリターンしてオート閉作動を継続する。
【０１１３】
しかし、リモコン３０の開スイッチまたはドア開スイッチ２８の少なくとも一方がオンであれば（ステップ２４３，２４４）、開スイッチと開スイッチの双方がオンされていることになるので、オート閉作動を解除し（ステップ２４６）、リターンする。また、リモコン３０の閉スイッチおよびドア閉スイッチ２９の双方がオフであれば（ステップ２４１，２４２）、スイッチ受付可能にセットし（ステップ２４５）、リターンする。
【０１１４】
スイッチ受付可能なときに（ステップ２３０）、リモコン３０の開スイッチまたはドア開スイッチ２８の少なくとも一方がオンすれば（ステップ２３１，２３２）、ドア開作動の指示が出されたと判断して前述したステップ２２８以降の処理に移行する。
【０１１５】
メインスイッチがオフすると（ステップ２３３）、オート閉作動を解除し（ステップ２４６）、リターンする。また、リモコン３０の閉スイッチまたはドア閉スイッチ２９の少なくとも一方がオンすると（ステップ２３４，２３５）、プッシュ・オン／プッシュ・オフ式の閉スイッチが再度オンされたことになるので、その位置でドア２を停止させるためにオート閉作動を解除し（ステップ２４６）、リターンする。
【０１１６】
（マニュアル閉作動ルーチン）
図２１は、マニュアル閉作動ルーチン（ステップ１２６．１８３）の詳細を示すフローチャートである。このマニュアル閉作動ルーチンは、危険領域中でドア閉スイッチ２９がオンしたことを確認すると、スイッチ文１８０で選択され、閉スイッチ２９を操作者が押下中のみ閉作動になり、閉スイッチ２９を離すとドア２を停止させるモードである。
【０１１７】
まず、挟み込み判定を実行する（ステップ２４７）。挟み込みがなければドア閉スイッチ２９がオンされているか判断し（ステップ２４９）、オンされていればマニュアル閉作動を続行するためにリターンする。閉スイッチ２９がオンされていなければマニュアル閉作動を解除し（ステップ２５５）、リターンする。マニュアル閉作動解除（ステップ２５５）によって電磁クラッチ１６および開閉モータ１４を制御し、ドア２を停止させる（ステップ１０６，１０７）。
【０１１８】
挟み込みを検出すると（ステップ２４７）、挟み込み有りを解除し（ステップ２４８）、反転方向に制御を移すためにドア閉作動を解除し、ドア開作動を許可し、マニュアル閉作動を解除し、逆転開作動を許可し、目標位置算出を実行して（ステップ２５０〜２５４）、リターンする。
【０１１９】
（逆転開作動ルーチン）
図２２は、逆転開作動ルーチン（ステップ１２７，１８４）の詳細を示すフローチャートである。この逆転開作動ルーチンは、オート閉作動中（図２０）、またはマニュアル閉作動中（図２１）に、挟み込み有りの判定を得た場合に、算出した目標位置にドア２を反転移動させて停止させるモードで、ドア２の停止または反転作動を安全に制御するものである。
【０１２０】
まず、全開検出を行う（ステップ２５６）。全開検出はドア２の全開状態を判定するもので、この全開検出が終了すると、現在の位置計数値Ｎからドア２が算出した目標位置か判断する（ステップ２５７）。ドア２が目標位置でなく、メインスイッチがオンであり（ステップ２５９）、ドア２が全開位置でなく（ステップ２６０）、挟み込みもなく（ステップ２６２）、異常状態でもなく（ステップ２６４）、スイッチ受付可能状態であり（ステップ２６６）、リモコン閉スイッチおよびドア閉スイッチが共にオフであれば（ステップ２６７，２６９）、逆転開作動中であるのでリターンする。
【０１２１】
ドア２が目標位置に達したとき（ステップ２５７）、あるいはメインスイッチがオフのとき（ステップ２５９）は、逆転開作動を解除し（ステップ２５８）、リターンする。ドア２が全開位置であればドア全開検出を解除し（ステップ２６０，２６１）、挟み込みを検出すれば挟み込み有りを解除し（ステップ２６２，２６３）、モータロックなどの異常状態を検出すれば異常状態検出を解除し（ステップ２６４，２６５）、それぞれ逆転開作動を解除して（ステップ２５８）、リターンする。逆転開作動解除（ステップ２５８）によって電磁クラッチ１６および開閉モータ１４を制御し、メインルーチンでドア２を停止させる（ステップ１０６，１０７）。
【０１２２】
また、スイッチ受付可能状態（各開閉スイッチがいずれもオフ）のときにリモコン３０の閉スイッチまたはドア閉スイッチ２９がオンされた場合は（ステップ２６７，２６９）、逆転開作動を解除し（ステップ２５８）、開閉モータ１４を停止してリターンする。
【０１２３】
スイッチ受付可能状態でないときは（ステップ２６６）、各開閉スイッチのオン／オフ状態を確認し、開閉スイッチが全てオフでなければ（ステップ２６８）、そのままリターンし、開閉スイッチが全てオフであれば、スイッチ受付可能状態にセットし（ステップ２７０）、リターンする。これは、例えばマニュアル閉作動中に挟み込みがあって逆転した場合は、ドア閉スイッチ２９が押下中の場合があるためで、そのような場合でもこのモードを継続させるためである。
【０１２４】
（逆転閉作動ルーチン）
図２３は、逆転閉作動ルーチン（ステップ１２８，１８５）の詳細を示すフローチャートである。この逆転閉作動ルーチンは、オート開作動中（図１９）に挟み込み有りの判定を得て算出した目標位置に、ドア２を反転移動させて停止させるモードで、ドア２の停止または反転作動を安全に制御するものである。
【０１２５】
まず、現在の位置計数値Ｎからドア２が目標位置か、または危険領域（エリア２〜４）か判断する（ステップ２７１，２７３）。ドア２の現在位置がいずれでもなく、メインスイッチがオンであり（ステップ２７４）、挟み込みもなく（ステップ２７５）、異常もなく（ステップ２７７）、スイッチ受付可能状態であり（ステップ２７９）、リモコン開スイッチおよびドア開スイッチが共にオフであれば（ステップ２８０，２８３）、逆転閉作動中であるのでリターンする。
【０１２６】
ドア２が目標位置または危険領域（ステップ２７１，２７３）であり、あるいはメインスイッチがオフであれば（ステップ２７４）、逆転閉作動を解除し（ステップ２７２）、リターンする。逆転閉作動解除（ステップ２７２）によって電磁クラッチ１６および開閉モータ１４を制御し、メインルーチンでドア２を停止させる（ステップ１０６，１０７）。
【０１２７】
また、挟み込みを検出したときは挟み込み有りを解除し（ステップ２７５，２７６）、モータロックなどの異常を検出したときは異常状態検出を解除し（ステップ２７７，２７８）、それぞれ逆転閉作動を解除して（ステップ２７２）、リターンする。
【０１２８】
また、スイッチ受付可能状態（各開閉スイッチがいずれもオフ）のときにリモコン３０の開スイッチまたはドア開スイッチ２８がオンされた場合も（ステップ２８０，２８３）、逆転開作動を解除し（ステップ２７２）、リターンする。
【０１２９】
スイッチ受付可能状態でないときは（ステップ２７９）、開閉スイッチが全てオフでなければ（ステップ２８１）、そのままリターンし、開閉スイッチが全てオフであれば、スイッチ受付可能状態にセットし（ステップ２８２）、リターンする。これは、オート開作動中に挟み込みがあって逆転した場合、ドア開スイッチ２８が押下中の場合があるためで、そのような場合でもこのモードを継続させるためである。
【０１３０】
（目標位置算出ルーチン）
図２４は、目標位置算出ルーチン（ステップ２０２，２２６，２５４）の詳細を示すフローチャートである。この目標位置算出ルーチンは、オート開作動（図１９）またはオート閉作動（図２０）、マニュアル閉作動（図２１）において、挟み込み検出時にドア２をそれまでの移動方向から反転させ、安全な位置まで逆転させる際の目標位置を算出するルーチンである。
【０１３１】
まず、ドア２の移動方向を判別する（ステップ２８４）。ドア２が開方向に作動中と判別されると、ドア２の現在位置がエリア３，４か判別する（ステップ２８５Ａ）。ドア２の位置がエリア３，４であれば、ドア２の現在位置を目標位置とする（ステップ２８５Ｃ）。これは開作動中の挟み込み発生時の逆転閉作動においては、再度挟み込みが発生する危険があるので、逆転閉作動はエリア３，４では行わないようにしており、現在位置を目標位置とする。
【０１３２】
ドア２の位置がエリア３，４以外であれば、位置計数値Ｎで示される現在位置の値から予め指定された移動量を減算し、目標位置の値とする（ステップ２８５Ｂ）。しかし、目標位置の値がエリア３以下の危険領域であれば（ステップ２８９）、エリア２とエリア３との境界値（Ｎ＝３５０）を目標位置とする（ステップ２９０）。
【０１３３】
ドア２が閉方向に作動中と判別されると、位置計数値Ｎで示される現在位置の値に予め指定された移動量を加算し目標位置の値とする（ステップ２８６）。この目標位置の値が全開位置の値（Ｎ＝８５０）を越えた場合は（ステップ２８７）、全開位置の値を目標位置とする（ステップ２８８）。
【０１３４】
（全開検出ルーチン）
図２５は、全開検出ルーチン（ステップ１３０，２００，２５６）の詳細を示すフローチャートである。この全開検出ルーチンは、初期動作時にはドア２の全開位置の位置計数値Ｎを認識して記憶し、それ以降はオート開作動時（図１９）、または逆転開作動時（図２２）において、ドア２が全開状態に達したことを検出するルーチンである。
【０１３５】
まず、初期動作時にはドア２を全閉位置（Ｎ＝０）から移動させ、位置計数値Ｎの値がエリア７内に達すると（ステップ２９１）、全開位置データが既に認識されているか判断する（ステップ２９２）。初期動作時には認識されていないのでドア２が全開位置で停止したか判断し（ステップ２９３）、全開位置で停止していなければリターンし、停止していればそのときの位置計数値Ｎを取り出す（ステップ２９５）。
【０１３６】
次いで、そのときの位置計数値Ｎから全開マージン（任意値）を差し引き、それを全開認識値として所要のメモリ部に記憶する（ステップ２９６，２９７）。全開マージンは、ドア２の開動作中に全開位置と認識してドア２を停止しても若干の移動が生じるので、その移動量を見込んで全開位置の手前になるように設定している。こうして全開認識値が設定されると、ドア全開状態を検出し（ステップ２９８）、リターンする。
【０１３７】
全開認識値設定以降は、位置計数値Ｎがエリア７に達すると（ステップ２９１）、全開位置データが既に認識されているので（ステップ２９２）、位置計数値Ｎが全開認識値に達するとドア全開状態を検出し（ステップ２９８）、リターンする。
【０１３８】
（スタートモード）
図２６は、スタートモードルーチン（ステップ１１７，１７６）の詳細を示すフローチャートである。このスタートモードは各スイッチのオン／オフ状態や周囲の状況等に応じてドア２を起動するためのモードを選択し、スタートさせる処理である。
【０１３９】
まず、スタート識別子がセットされているか判断する（ステップ２９９）。当初はセットされていないので、手動モードか判断する（ステップ３０１Ａ）。手動モードであれば全閉−ドア開手動状態か判断し（ステップ３０１Ｂ）、そうであれば手動全閉スタートモードにセットし（ステップ３０２Ａ）、そうでなければ手動通常スタートモードにセットし（ステップ３０２Ｂ）、それぞれ手動モードを解除する（ステップ３０３）。
【０１４０】
手動モードでなければドア開作動か判断し（ステップ３０４）、ドア開作動であればＡＣＴＲ制御領域か判断し（ステップ３０５）、ＡＣＴＲ制御領域であればＡＣＴＲスタートモードにセットする（ステップ３０６）。ドア開作動でなく、あるいはドア開作動であってもＡＣＴＲ制御領域でなければ通常スタートモードにセットする（ステップ３０７）。こうしてスタート別の識別子をセットするとオートスライドモード作動計数値Ｇをクリアし（ステップ３０８）、リターンする。各スタートモードの設定条件をまとめると次のようになる。
【０１４１】
通常スタートモード    ：全閉以外時にスイッチ操作でスタート
ＡＣＴＲスタートモード：全閉時にスイッチ操作でスタート
手動通常スタートモード：全閉以外時に手動操作でスタート
手動全閉スタートモード：全閉時に手動操作でスタート
こうしてスタート別の識別子がセットされ、次のルーチンでスタートモードが選択されると、スタート別の識別子がセットされているので（ステップ２９９）、識別子に応じ（ステップ３００）、通常スタートモード（ステップ３０９）、ＡＣＴＲスタートモード（ステップ３１０）、手動通常スタートモード（ステップ３１２Ａ）、手動全閉スタートモード（ステップ３１２Ｂ）を実行する。
【０１４２】
通常スタートモードは、ドア全閉領域外でのスタート時の制御をする。最初に電磁クラッチ１６オンにし（ステップ１０６）、開閉モータ１４とドライブプーリ１５とをつなぐ。電磁クラッチ１６のオンタイムラグ後に、オートスライド作動可能にセットし、開閉モータ１４をオンする（ステップ１０７）。その後、開閉モータ１４がオンしたときに、作動別スタート識別子をリセットし、作動別スタート制御の終了を他のルーチンに知らせる。
【０１４３】
ＡＣＴＲスタートモードは、ＡＣＴＲ３５を介してドアロックのラッチ８とストライカ９との係合を解除した後、ドア２を自動駆動するスタートモード時の制御をする。ハーフラッチスイッチ３６がオフしているのを一定時間確認後、電磁クラッチ１６をオンにする（ステップ１０６）。電磁クラッチ１６のオンタイムラグ経過後、オートスライド作動中にする。その後、開閉モータ１４のオンのときに（ステップ１０７）、作動別スタート識別子をリセットし、作動別スタート制御の終了を他のルーチンに知らせる。
【０１４４】
手動通常スタートモードおよび手動全閉スタートモードについては後述する。識別子がリセットされ、次のルーチンで再びスタートモードが選択されると、スタートモードを解除し（ステップ３１３，３１４）、作動計数値Ｇをクリアし（ステップ３１５）、リターンする。
【０１４５】
（手動通常スタートモード）
図２７は、手動通常スタートモード（ステップ３１２Ａ）を示すフローチャートである。この手動通常スタートモードは、ドア２が全閉状態でないときに手動操作を検知して、ドア２を開方向または閉方向にオートモードで駆動するものである。
【０１４６】
まず、オートスライド用の開閉モータ１４が作動状態か判断する（ステップ３１６）。最初は作動状態ではないので、後述するＰＷＭ制御によって定められるモータ駆動電圧にセットする（ステップ３１８）。次いで、ドア２の作動方向を判別し（ステップ３２６）、開作動であればドア開作動可にセットしてモータ１４を開方向に駆動するように準備する（ステップ３２７）。閉作動であればドア閉作動可にセットしてモータ１４を閉方向に駆動するように準備する（ステップ３２８）。また、開方向の場合は（ステップ３２７）、ＡＣＴＲ領域か判別し（ステップ３２９）、ＡＣＴＲ領域でなければリターンし、ＡＣＴＲ領域であればＡＣＴＲ作動可にセットする（ステップ３３０）。
【０１４７】
開閉モータ１４が作動状態であれば（ステップ３１６）、作動計数Ｇによって手動タイムラグが過ぎているか判断する（ステップ３１７）。過ぎていなければリターンし、過ぎていれば手動によるドア２の移動速度がドア急閉速度より速いか判断する（ステップ３１９）。ドア２の移動速度がドア急閉速度よりも遅ければ、次に手動認識速度より遅いか判断する（ステップ３２０）。遅くなければクラッチ作動可にセットし（ステップ３２２）、クラッチ作動後のドア作動時間を計測するために作動計数Ｇをクリアし（ステップ３２３）、手動通常スタートモードを解除して（ステップ３２４）、リターンする。
【０１４８】
手動によるドア２の移動速度がドア急閉速度より速い場合（ステップ３１９）は、そのまま手動によるドア急閉作動を優先させるために、ドア急閉作動可にセット（ステップ３２１）し、異常状態にセットしてモータを停止するようにし（ステップ３２５）、手動通常スタートモードを解除して（ステップ３２４）、リターンする。
【０１４９】
また、ドア２の移動速度が手動認識速度より遅い場合も（ステップ３２０）、オートモードに移行しないために、異常状態にセットし（ステップ３２５）、手動通常スタートモードを解除して（ステップ３２４）、リターンする。異常状態にセットすると、オート開作動やオート閉作動の各ルーチンにおいて異常状態が検出されて作動が解除され、ストップモードとなってモータが停止する。
【０１５０】
（手動全閉スタートモード）
図２８は、手動全閉スタートモード（ステップ３１２Ｂ）を示すフローチャートである。この手動全閉スタートモードは、ドア２が全閉状態のときに手動操作を検知して、ドア２を開方向にオートモードで駆動するものである。
【０１５１】
まず、ドア２が開方向に移動しているかをパルス信号φ１，φ２の位相関係によって検出する（ステップ３３０Ａ）。開方向に移動していれば、後述するＰＷＭ制御によって定められるモータ駆動電圧にセットし（ステップ３３０Ｂ）、次いでドア開作動可にセットして開方向にモータ１４を開方向に駆動するように準備し（ステップ３３０Ｃ）、さらにＡＣＴＲ作動可にセットする（ステップ３３０Ｄ）。
【０１５２】
次いで、ハーフスイッチのオフを念のために確認し（ステップ３３０Ｅ）、オフであればクラッチ作動可にセットして電磁クラッチ１６を駆動するように準備し（ステップ３３０Ｆ）、クラッチ作動後のドア作動時間を計測するために作動計数Ｇをクリアし（ステップ３３０Ｇ）、手動全閉スタートモードを解除して（ステップ３３０Ｈ）、リターンする。
【０１５３】
ドア２が開方向に移動していなければ（ステップ３３０Ａ）、このモードは不要であるので、異常状態にセットしてモータを停止するようにし（ステップ３３０Ｉ）、手動全閉スタートモードを解除して（ステップ３３０Ｈ）、リターンする。ハーフスイッチがオフの場合もドアロックが再嵌合したおそれがあるので、異常状態にセットし（ステップ３３０Ｉ）、手動全閉スタートモードを解除し（ステップ３３０Ｈ）、リターンする。
【０１５４】
なお、ＡＣＴＲの作動を最初とするシステムも考えられるが、この場合はドアハンドルスイッチ３７ａがオンとなると、まずＡＣＴＲが作動するので、ＡＣＴＲが解錠するので、小さい力でロックを解錠できる。
【０１５５】
（速度制御ルーチン）
図２９は、速度制御ルーチン（ステップ１２０，１７８）の概要図である。この速度制御ルーチンは、スライドドア２の速度が前述した各制御領域Ｅ１〜Ｅ６毎に定められている適正移動速度になるように現在の移動速度に対する制御目標値を定め、それによってスライドドア２の速度を制御するものである。本実施の形態では、スライドドア２の速度制御は開閉モータ１４に印加する矩形波電圧のデューティサイクルを変化させることによって、つまりパルス幅変調（ＰＷＭ）によって開閉モータ１４の出力トルクを調整するようにしているので、以下ではＰＷＭ制御として説明する。
【０１５６】
このＰＷＭ制御（ステップ３３１）には、目標値の決定（ステップ３３２）、適合計算（ステップ３３３）、フィードバック調整（ステップ３３４）があり、適合計算（ステップ３３３）の下位レベルに差計算（ステップ３３５）があり、フィードバック調整（ステップ３３４）の下位レベルに調整量の算出（ステップ３３６）がある。
【０１５７】
図３０は、目標値の決定（ステップ３３２）、適合計算（ステップ３３３）、差計算（ステップ３３５）、調整量の算出（ステップ３３６）の各部分の機能をブロック図で示したものである。同図において、ドア位置検出部６０はロータリーエンコーダ１８からのパルス信号φ１，φ２から位置計数値Ｎおよび移動方向Ｚを求める。
【０１５８】
制御領域弁別部６１ａは位置計数値Ｎおよび移動方向Ｚからドア２がそのとき存在するエリア１〜７を求め、このエリア１〜７によって図１６に示すメモリテーブルを参照し、対応する制御領域Ｅ１〜Ｅ６を判別する。そして、各制御領域Ｅ１〜Ｅ６にそれぞれ所要されるスライドドア２の適正移動速度に対応した周期計数値Ｔ１〜Ｔ６を求める。
【０１５９】
制御速度選択部６１ｂでは、判別した制御領域Ｅｉ（ｉ＝１〜６）の適正移動速度に対応した適性速度周期計数値Ｔｏ（Ｔ１〜Ｔ６）を求め、かつその制御領域における最高移動速度に対応する最高速度周期計数値Ｔmin と、最低移動速度に対応する最低速度周期計数値Ｔmax とを求める。制御領域弁別部６１ａおよび制御速度選択部６１ｂによって目標値の決定（ステップ３３２）の機能を達成している。
【０１６０】
制御速度選択部６１ｂで求めた制御領域Ｅｉの適正速度周期計数値Ｔｏは調整量算出部６２に送られ、フィードバックの調整量Ｒを求めるために使用される。その詳細は後述する。調整量算出部６２で求めたフィードバックの調整量Ｒは、上限値を設定する最大調整量制限部６３に送られる。調整量算出部６２および最大調整量制限部６３によって調整量の算出（ステップ３３６）の機能を達成している。
【０１６１】
ドア移動速度検出部６４はパルスカウントタイマー（ステップ１１５Ａ）に相当し、割り込みパルスｇ１の発生間隔毎のクロックパルスＣ１を計数し、その時点の計数値を移動速度周期計数値Ｔｘとして求めている。この逆数がスライドドア２の現在の移動速度となる。
【０１６２】
移動速度周期計数値Ｔｘは速すぎ検出部６５および遅すぎ検出部６６に入力される。また、速すぎ検出部６５には最高速度周期計数値Ｔmin が入力され、遅すぎ検出部６６には最低速度周期計数値Ｔmax が入力されている。速すぎ検出部６５および遅すぎ検出部６６によって適合計算（ステップ３３３）の機能を達成している。
【０１６３】
速すぎ検出部６５は現在の移動速度を表す周期計数値Ｔｘから最高速度周期計数値Ｔmin を差計算部６５ａで減算し、速すぎ量ＴＨを求める。それを２段のシフトレジスタ等による一時保留部６５ｂ，６５ｃに送り込む。そして、前段の一時保留部６５ｃには抽出時期が１つ前の速すぎ量ＴＨ２を保留し、後段の一時保留部６５ｂには現時点または前段の抽出時期に連続した１つ後の速すぎ量ＴＨ１を保留する。この２つの速すぎ量ＴＨ１，ＴＨ２は修正量演算部６５ｄで加算され、速すぎ適合差ＪNHとして出力される。
【０１６４】
同様に、遅すぎ検出部６６は現在の移動速度を表す周期計数値Ｔｘから最低速度周期計数値Ｔmax を差計算部６６ａで減算し、遅すぎ量ＴＬを求める。それを２段のシフトレジスタ等による一時保留部６６ｂ，６６ｃに送り込む。そして、前段の一時保留部６６ｃには抽出時期が１つ前の遅すぎ量ＴＬ２を保留し、後段の一時保留部６６ｂには現時点または前段の抽出時期に連続した１つ後の遅すぎ量ＴＬ１を保留する。この２つの遅すぎ量ＴＬ１，ＴＬ２は修正量演算部６６ｄで加算され、遅すぎ適合差ＪNLとして出力される。差計算部６５ａ，６６ｂによって差計算（ステップ３３５）の機能を達成している。
【０１６５】
速すぎ検出部６５の速度判別部６５ｅは、現在の周期計数値Ｔｘが周期計数値Ｔmin よりも大きいと判別した場合、すなわち現在の移動速度が最高速度よりも遅いと判別した場合は、一時保留部６５ｂ，６５ｃの保留内容を零にリセットする。同様にして遅すぎ検出部６６の速度判別部６６ｅは、現在の周期計数値Ｔｘが周期計数値Ｔmax よりも小さいと判別した場合、すなわち現在の移動速度が最低速度よりも速いと判別した場合は、一時保留部６５ｂ，６５ｃの保留内容を零にリセットする。
【０１６６】
こうして、スライドドア２の現在の移動速度が速すぎず、または遅すぎないときは、一時保留部の保留内容を零にリセットする。これにより、修正量演算部６５ｄ，６６ｄに速すぎ量ＴＨ１，ＴＨ２または遅すぎ量ＴＬ１，ＴＬ２が２つ揃って引き渡されるには、速すぎまたは遅すぎが２度引き続いて生じなければならないことになり、これによって誤検出を防止するようにしている。
【０１６７】
速すぎ適合差ＪNHおよび遅すぎ適合差ＪNLは、フィードバック調整部６７および調整量算出部６２に送られる。調整量算出部６２では、両適合差ＪNH，ＪNLをまとめて適合差ＪN として扱い、制御速度選択部６１ｂで得られた適性速度周期計数値Ｔｏを識別子として調整量Ｒの算出式を選択し、調整量Ｒを求めている。例えば、周期計数値ＴｏがＴａならば調整量Ｒは３倍の適合差ＪN 、すなわち、Ｒ＝３ＪN 、同様に周期計数値ＴｏがＴｂならば、Ｒ＝２ＪN 、周期計数値ＴｏがＴｃならば、Ｒ＝ＪN 、周期計数値ＴｏがＴａ，Ｔｂ，Ｔｃのいずれでもなければ、Ｒ＝３ＪN とする。
【０１６８】
Ｔａ，Ｔｂ，Ｔｃ，は任意の大きさの値でよいが、実質的は図１６に示す注目度の高い領域や危険領域に設定されている適正移動速度に応じるのが好ましい。また、調整量Ｒを算出する倍率係数は、ドア２の移動軌跡の曲線部や直線部等に応じてフィードバック制御に適する所要の値を設定する。また、調整量Ｒは最大調整量制限部６３で上限値（Ｄ１）が制限されるとともに、後述するデューティの値Ｄに変換され、そのデューティ値Ｄはフィードバック調整部６７に入力される。
【０１６９】
電源電圧検出部６８はバッテリー２４の電圧Ｖｘを計測している。電圧Ｖｘのときに所要電圧相当ＶｏのデューティサイクルＤｏを求めるのがデューティ演算部６９である。所要電圧Ｖｏ相当のデューティサイクル（以下、デューティ、という）Ｄｏとは、テューティ１００％の電圧波形、すなわち直流電圧Ｖｏを印加したときの出力トルクと、その直流電圧Ｖｏより高い任意の電圧Ｖｘを印加して同じ出力トルクを得るためのデューティＤｏのことで、次式で表される。
【０１７０】
Ｄｏ［％］＝（Ｖｏ／Ｖｘ）・Ｄmax ［％］
ただし、モータに流れる電流値は一定としている。なお、デューティ１００％はＨレベルの直流電圧波形に相当しＤmax と表し、デューティ０％はＬレベルの直流電圧波形に相当しＤmin と表す。
【０１７１】
すなわち、デューティ演算部６９はバッテリー２４の電圧変動を電源電圧検出部６８が測定電圧Ｖｘとして検出し、その電圧Ｖｘと所要電圧Ｖｏとから前記計算式に基づいて所要電圧Ｖｏ相当のデューティＤｏを求める。さらに、デューティ演算部６９は所要電圧Ｖｏより上方または下方に１Ｖ［ボルト］変化したときのデューティの変化量を求め、これを１Ｖ相当デューティＤ１としている。そして、所要電圧Ｖｏ相当のデューティＤｏと１Ｖ相当デューティＤ１とは、フィードバック調整部６７に入力している。
【０１７２】
なお、デューティ演算部６９は電流の変化分を含まない１次の計算式で求めているが、電流の変化分やモータの負荷特性を含めて電源電圧変動に対するデューティＤの修正値Ｄ’を予めメモリーマップにしておいて、電源電圧Ｖｘでアドレスして求めることもできる。
【０１７３】
図３１に示すグラフは、モータに流れる電流を一定としたときの電圧変動とデューティＤの関係を示すもので、横軸に電圧Ｖｘ、縦軸にデューティＤを取っている。車両用のバッテリー２４は最大電圧Ｖmax を１６Ｖ、最小電圧Ｖmin を９Ｖとしており、その間の電圧変化に対応してデューティを決めている。
【０１７４】
（ＰＷＭ制御ルーチン）
図３２は、ＰＷＭ制御ルーチン（ステップ３３１）の詳細を示すフローチャートである。このＰＷＭ制御ルーチンは、スライドドア２が開閉モータ１４によって駆動されているときに、エリア毎に定められた目標速度に一致するようにモータ１４の駆動電圧のデューティＤをＰＷＭ制御によって調整する制御で、機構部の遅れ等を考慮してフィードバック調整を行うまでの時間Ｆをエリア別に調整するようにしている。
【０１７５】
まず、ＰＷＭ目標値が有るか判定し（ステップ３３７）、目標値が求まってないときは目標値の決定を行い（ステップ３３９）、リターンする。目標値の決定は制御領域弁別部６１ａおよび制御速度選択部６１ｂで行う。
【０１７６】
目標値が求まっている場合は、フィードバック計数Ｆが最大か調べ（ステップ３３８）、最大でなければ増計数し（ステップ３４０）、最大であればステップ３４０をジャンプする。フィードバック計数Ｆはタイマーとして機能し、後述するようにこの計数Ｆが一定値に達したときにフィードバック調整を行うようにしている。最大値ＭＡＸは、例えば１０以上の値である。
【０１７７】
次いで、速すぎ検出部６５および遅すぎ検出部６６によって適合度を計算し（ステップ３４１）、低速差データ、すなわち遅すぎ量ＴＬがあるか検出する（ステップ３４２）。遅すぎ量ＴＬがあれば低速度数Ｌを増計数する（ステップ３４３）。遅すぎ量ＴＬがなければ低速度数Ｌをクリアする（ステップ３４４）。
【０１７８】
次いで、エリア３であれば（ステップ３４５）、フィードバック計数Ｆの値が５以上か調べ（ステップ３４６）、フィードバック計数Ｆの値が５以上でなければリターンする。エリア４のときもリターンする（ステップ３４５，３４７）。エリア３でなくエリア４でもないとき、すなわちエリア１，２，５，６，７のときはフィードバック計数Ｆの値が１０以上か調べ（ステップ３４８）、フィードバック計数Ｆの値が１０以上でなければリターンする。
【０１７９】
エリア３でフィードバック計数Ｆの値が５以上のとき（ステップ３４６）、あるいはエリア１，２，５〜７でフィードバック計数Ｆの値が１０以上のとき（ステップ３４８）は、後述するフィードバック調整を行い（ステップ３４９）、その結果、デューティを調整したのであればフィードバック計数Ｆをクリアし（ステップ３５１）、リターンする。デューティを調整しなかったのであればそのままリターンする。
【０１８０】
この結果、エリア３のような曲線部ではスライドドア２の速度が低下するおそれがあるので、他のエリアよりも調整間隔を狭めてフィードバック調整をするようにしている。具体的には、メインルーチンのループ周期を１０msecとすれば、エリア３では５０msec間隔、エリア１，２，５〜７では１００msec間隔で行うようにしている。
【０１８１】
（フィードバック調整ルーチン）
図３３は、フィードバック調整ルーチン（ステップ３３４，３４９）の詳細を示すフローチャートである。このフィードバック調整ルーチンは、２回以上連続して遅すぎ量ＴＬ、速すぎ量ＴＨが発生したときに、スライドドア２の速度が目標速度になるようにデューティ（ＤＵＴＹ）調整を行うものである。
【０１８２】
まず、遅すぎ検出部６６の一時保留部６６ｂ，６６ｃに遅すぎ量ＴＬ１，ＴＬ２があるか調べ（ステップ３５２）、無ければ速すぎ検出部６５の一時保留部６５ｂ，６５ｃに速すぎ量ＴＨ１，ＴＨ２があるか調べる（ステップ３５３）。両方なければフィードバック調整は不要なので調整量Ｒをクリアし（ステップ３５６）、リターンする。
【０１８３】
一時保留部６５ｂ，６５ｃに速すぎ量ＴＨ１，ＴＨ２があれば、この２つの速すぎ量ＴＨ１，ＴＨ２を加算して速すぎ適合差ＪNHを求め（ステップ３５５）、調整量算出部６２および最大調整量制限部６３で調整量Ｒを算出する（ステップ３５７）。次いで、前のルーチンで調整量があったか調べ（ステップ３５８）、それが増速であれば（ステップ３５９）、今回の調整量Ｒは半分の値に設定する（ステップ３６０）。これは、前回は遅すぎて調整量を加算し、今回は速すぎて調整量を減算するので、調整量が大きいと再度遅すぎになる可能性が高いためである。
【０１８４】
前のルーチンで調整量がない場合、前回は増速でなかった場合、調整量Ｒを半分の値に設定した場合（ステップ３５８〜３６０）は、それぞれ現在のデューティＤから調整量Ｒ（これもデューティ）を減算して新たなデューティＤNEW を求め（ステップ３６１）、この新たなデューティＤNEW を出力し（ステップ３６２）、リターンする。これによって開閉モータ１４はこの新たなデューティＤNEW を有する矩形波電圧によって減速駆動される。
【０１８５】
一時保留部６６ｂ，６６ｃに遅すぎ量ＴＬ１，ＴＬ２がある場合（ステップ３５２）は、ドア２の現在位置が開方向（エリア５〜７）か閉方向（エリア１〜４）かを調べる（ステップ３５３）。これは、閉方向は挟み込みの可能性があるため単純にはフィードバック調整によって増速駆動できないためである。
【０１８６】
すなわち、閉方向であれば、低速カウンタが所定のタイムラグをカウントしたか判断し（ステップ３６４Ａ）、所定のタイムラグが過ぎていなければリターンする。所定のタイミラグが過ぎていれば、負荷の学習がない初期状態か判断する（ステップ３６４Ｂ）。初期状態でなく、学習値が増加傾向の場合は（ステップ３６４Ｃ）、後述する挟み込み判定でエラーが有れば（ステップ３６４Ｅ）、挟み込みの可能性があるのでリターンする。
【０１８７】
また、学習値は増加傾向ではないが（ステップ３６４Ｃ）、電流値が上昇傾向であって（ステップ３６４Ｄ）、かつ継続している場合は（ステップ３６５）、挟み込みの可能性があるのでリターンする。
【０１８８】
それ以外の場合、すなわち、エラーが無い場合（ステップ３６４Ｅ）、電流値が上昇傾向で無い場合（ステップ３６４Ｄ）、電流値の上昇が継続していない場合は（ステップ３６５）、挟み込みの可能性はないとして増速駆動のフィードバック調整を行う。もちろん、ドア２が開方向の場合（ステップ３５３）や初期状態の場合（ステップ）も増速駆動のフィードバック調整を行う。
【０１８９】
増速駆動のフィードバック調整は、まず、２つの遅すぎ量ＴＬ１，ＴＬ２を加算して遅すぎ適合差ＪNLを求めてメモリに格納し（ステップ３６６，３６７）、調整量算出部６２および最大調整量制限部６３で調整量Ｒを算出する（ステップ３６８）。次いで、前のルーチンで調整量があったか調べ（ステップ３６９）、それが減速であれば（ステップ３７０）、今回の調整量Ｒを半分の値に設定する（ステップ３７１）。これは、前回は速すぎて調整量を減算し、今回は遅すぎて調整量を加算するので、調整量が大きいと再度速すぎになる可能性が高いためである。
【０１９０】
前のルーチンで調整量がない場合、前回は減速でなかった場合、調整量Ｒを半分の値に設定した場合（ステップ３６９〜３７１）は、それぞれ現在のデューティＤから調整量Ｒ（これもデューティ）を加算して新たなデューティＤNEW を求め（ステップ３７２）、この新たなデューティＤNEW を出力し（ステップ３６２）、リターンする。これによって開閉モータ１４はこの新たなデューティＤNEW を有する矩形波電圧によって増速駆動される。
【０１９１】
（挟み込み判定ルーチン）
図３４は、挟み込み判定ルーチン（ステップ１１８，１７７）の概要を示す図である。この挟み込み判定ルーチンは、スライドドア２の開閉駆動中に異物の挟み込みを検出するものである。この検出結果に基づいて開閉駆動中のドア２を逆転作動させる契機とし、安全性を確保するようにしている。
【０１９２】
この挟み込み判定ルーチンには、後に詳述する学習判定（ステップ３７４）、継続＆変化量（ステップ３７５）、総合判定（ステップ３７６）等のルーチンがある。また、学習判定（ステップ３７４）の下位レベルには、学習アドレス演算（ステップ３７７）、エラー判定（ステップ３７８）、学習重み付け（ステップ３７９）、平均値算出（ステップ３８０）、比較値生成（ステップ３８１）、学習処理（ステップ３８２）、学習遅延処理（ステップ３８３）等の各ルーチンがある。さらに比較値生成（ステップ３８１）の下位レベルには、比較値計算（ステップ３８４）のルーチンがある。
【０１９３】
図３５は、挟み込み判定ルーチン（ステップ３７３）を示すフローチャートである。各ルーチンの詳細については後述するが、まず、サンプリング領域毎のモータ負荷の変化率の学習が済んでいるか判定する（ステップ３８５）。済んでいなければ、その学習処理および学習遅延処理を実行し（ステップ３８６Ａ，３８６Ｂ）、リターンする。
【０１９４】
学習処理が済んでいれば、ストップモードか判定し（ステップ３８７）、ストップモードであればドア２を停止させているのでリターンする。ストップモードでなければ学習判定（ステップ３８８）を行う。次いで、モータ電流値の変化量と上昇継続時間を検出する継続＆変化量処理（ステップ３８９）を行う。続く総合判定（ステップ３９０）では、学習判定（ステップ３８８）で得た判定、および継続＆変化量処理（ステップ３８９）で得たモータ電流値の変化量や上昇継続時間等から挟み込みの有無の判定を下す。
【０１９５】
（挟み込み判定の機能ブロック図）
図３６は、挟み込み判定ルーチンの機能を示すブロック図である。同図において、サンプリング領域演算部７０、サンプリング領域の負荷データ演算部７２および記憶用学習データ演算部７５は、スライドドア２の開閉による標準の負荷抵抗成分（その変化率を含む）を、モータ１４に流れる電流値ＩN に基づき抽出し、ドア２の開閉状況とその位置とに固有のサンプリング領域Ｑｎ（またはＱｍ、以下同）に対応させて負荷サンプルデータメモリ７１に記憶する。
【０１９６】
１つのサンプリング領域Ｑｎについて記憶される負荷抵抗成分は、そのサンプリング領域Ｑｎの中の分解能Ｂの数だけ含まれる電流値ＩN の平均電流値ＩAnによる前後のサンプリング領域間の電流増加率ΔＩAnとしている。
【０１９７】
そして、通常のドア２の開閉に際し、同一サンプリング領域Ｑｎごとに記憶された標準の負荷抵抗成分と現在の負荷抵抗成分とを、挟み込み判定部８５で比較し、挟み込みの有無を検出している。そして、サンプリング領域Ｑｎに応じてメモリ７１に記憶される負荷抵抗成分は、ドア２の開閉操作があるたびに新たな負荷抵抗成分に基づいて修正され、学習更新される。
【０１９８】
挟み込み判定部８５は、そのほかに電流計測部７３で計測した電流値ＩN と、前回電流値メモリ部８６に記憶されている前回電流値Ｉ'Nおよび今回電流値ＩN から変化量算出部８７で求めた電流増加値ΔＩと、電流増加回数計数部８８が出力する増加回数値Ｋと、坂道検出部８９からの傾斜判定データθとに基づいて挟み込み判定を行う。判定動作の詳細については後述する。
【０１９９】
（サンプリング領域演算部７０）
サンプリング領域演算部７０は、ドア位置検出部６０から供給される位置計数値Ｎおよび移動方向Ｚから、エリア１〜７（図１６）に定められた分解能Ｂに応じてパルス信号φ１を間引いて計数した計数値ｎ（またはｍ）に基づいてサンプリング領域Ｑn （またはＱｍ）のアドレスを定める。
【０２００】
計数値ｎは分解能Ｂに応じて閉方向に間引きして計数した値であり、計数値ｍは開方向に間引きして計数した値である。それぞれドア２の位置を示すアドレス番号を表す。アドレス番号ｎはドア２が閉じられる方向に付設した番号なので、ドア２が閉じるときには減計数する。従って、移動中のドア２の１つ前のアドレス番号はｎ＋１となる。これに対し、アドレス番号ｍはドア２が開く方向に付設した番号なので、移動中のドア２の１つ前のアドレス番号はｍ−１となる。
【０２０１】
アドレス番号ｎ，ｍと、分解能Ｂと、位置計数値Ｎとの関係は、
Ｎ／Ｂ＝ｎ＋ｂ
Ｎ／Ｂ＝ｍ＋ｂ    （ｎ，ｍは商の整数部、ｂは商の余り）
と表される。
【０２０２】
アドレス番号ｎ，ｍは負荷サンプルデータメモリ７１のアドレスとなり、余りｂは負荷データ演算部７２において分解能Ｂの数と同じ数のレジスタを備えた電流値記憶レジスタ７４のデータをシフトするために作用する。
【０２０３】
（負荷サンプルデータメモリ７１）
負荷サンプルデータメモリ７１は、サンプリング領域演算部７０からのアドレス番号ｎ，ｍで指定されるサンプル領域Ｑｎ，Ｑｍの記憶データをなす平均電流値ＩAn，ＩAmを予測比較値演算部７６へ出力するとともに、記憶用学習データ演算部７５へも出力している。
【０２０４】
（負荷データ演算部７２）
負荷データ演算部７２は、分解能Ｂと同じ段数を有する電流値記憶レジスタ７４に記憶されたモータ１４の電流値ＩN を、各サンプリング領域Ｑn ，Ｑm 毎に平均値をとり、平均電流値ＩAnとして記憶用学習データ演算部７５に出力する。電流値記憶レジスタ７４には電流計測部７３によって一定のインターバル毎（ステップ１０３）に計測された電流値ＩN が記憶されている。
【０２０５】
図３７は、学習効果を考慮しない状態でのサンプリング領域Ｑn ，Ｑn-1 における前回記憶した平均電流値Ｉ'An ，Ｉ'A(n-1) と、今回求められた現在の平均電流値ＩAn，ＩA(n-1)とを表している。なお、ここではドア２の開閉状況はエリア２の減速制御領域Ｅ２（分解能Ｂが４）とし、かつ注目するサンプリング領域Ｑｎと１つ後のサンプリング領域Ｑn-1 とにおけるパルス信号φ１毎の位置計数値Ｎに対応した電流値ＩN を示している。
【０２０６】
すなわち、サンプリング領域Ｑｎの位置計数値Ｎ〜Ｎ-3に相当する今回の動作の電流値ＩN 〜ＩN-3 が電流値記憶レジスタ７４に保留され、それらを加算平均したものが平均電流値ＩAnである。
【０２０７】
（記憶用学習データ演算部７５）
記憶用学習データ演算部７５は、図３８に示すように、電流増加率演算部８１、直前データ保留レジスタ８２、学習データ遅延レジスタ８３、学習値重み付け更新演算部８４からなる。
【０２０８】
直前データ保留レジスタ８２は、ドア２の閉移動方向（この例ではエリア２を想定しているため）に順次現れるサンプリング領域Ｑｎ（ｎは漸減する）における現在注目するサンプリング領域Ｑｎの直前のサンプリング領域Ｑn+1 の平均電流値ＩA(n+1)を電流増加率演算部８１に出力する。
【０２０９】
電流増加率演算部８１は、負荷データ演算部７２から送られてくる現在注目するサンプリング領域Ｑｎの平均電流値ＩAnと、直前データ保留レジスタ８２で遅延された直前のサンプリング領域Ｑn+1 の平均電流値ＩA(n+1)とを比較し、電流変化率ΔＩAn（＝ＩAn／ＩA(n+1)）を求め、学習データ遅延レジスタ８３に送っている。
【０２１０】
学習データ遅延レジスタ８３は、学習結果の更新時期を若干遅らせるためのもので、段数は任意であるが、この例では７段とし、学習値重み付け更新演算部８４に７個前のサンプリング領域Ｑn+7 の電流増加率ΔＩA(n+7)を出力する。
【０２１１】
学習値重み付け更新演算部８４は、現在のサンプリング領域Ｑn+7 に係る電流増加率ΔＩA(n+7)と、それと同じアドレス番号ｎ＋７でアドレス指定される負荷サンプルデータメモリ７１からの読み出しデータＱn+7 とが、アドレスを一致されて入力される。
【０２１２】
すなわち、学習値重み付け更新演算部８４は同一サンプリング領域について、予めデータメモリ７１に記憶されている前回ドア駆動時の電流増加率Ｑn+7 に、今回得た最新の電流増加率ΔＩA(n+7)を考慮して、次式に基づいて記憶データを学習更新させている。
【０２１３】
Ｑ’n+7 ＝（３／４）×Ｑ’n+7 ＋（１／４）×ΔＩA(n+7)
一般式で書くと、
Ｑ’n ＝（３／４）×Ｑ’n ＋（１／４）×ΔＩAn
となる。新旧データの割合は適宜変更できる。
【０２１４】
こうして新たに求められた記憶データ（電流増加率）Ｑ'nは、負荷サンプルデータメモリ７１に書き込みデータＤＬとして送られ、アドレス番号ｎをアドレスとして記憶され、記憶データの学習更新が行われる。
【０２１５】
なお、ここでは、負荷サンプルデータメモリ７１からの読み出しデータ、すなわち記憶されたデータを表記するのに、本来ストアされている平均電流値Ｉ'An をもって表すのではなく、アドレス指定されたサンプリング領域Ｑｎの方で表記し、演算等はそのサンプリング領域Ｑｎのアドレス番号ｎで指定されたロケーションに記憶された平均電流値Ｉ'An のデータを使用するものとする。また、記憶用学習データ演算部７５の出力データも、サンプリング領域Ｑｎの形式で表記してある。
【０２１６】
（予測比較値演算部７６）
予測比較値演算部７６は、図３９に示すように、予測値レジスタ７７、閾値計算部７８、比較値計算部７９、予測比較値遅延レジスタ８０からなり、負荷サンプルデータメモリ７１から出力される現在のサンプリング領域Ｑｎのアドレス番号ｎに対応した学習値Ｑ'nよりも、ドア２の移動方向で４つ先方のサンプリング領域Ｑn-4 の挟み込み判別に所要される予測比較値Ｃｎ，Ｃｍを挟み込み判定部８５に出力する。
【０２１７】
予測値レジスタ７７は、ドア２の現在のサンプリング領域Ｑｎ内で最初の電流値ＩN を計測した時点から、メインルーチンのループインターバルで現在までの各測定電流値を加算平均したサンプリング領域内の平均電流値ＩAnの最新のものが保留されている。
【０２１８】
閾値計算部７８および比較値計算部７９には、最新の電流値ＩN を得ているサンプリング領域Ｑｎのアドレス番号ｎよりも、４つ後のアドレス番号ｎ−４のサンプリング領域Ｑn-4 の記憶データ（電流増加率Ｑ'n-4）を、負荷サンプルデータメモリ７１から読み出して与えられている。
【０２１９】
閾値計算部７８は、最新の制御領域内平均電流値ＩAnと、４つ後のアドレス番号ｎ−４のサンプリング領域Ｑ'n-4の記憶データとから、次式によって弁別の許容幅を決める閾値Ｆn-4 を計算する。
【０２２０】
Ｆn-4 ＝ＩAn×Ｑ'n-1×Ｑ'n-2×Ｑ'n-3×Ｑ'n-4×α
一般式で表すと、
Ｆｎ＝ＩA(n+4)×Ｑ'n+3×Ｑ'n+2×Ｑ'n+1×Ｑ'n×α
となる。ただし、αは補正計数である。
【０２２１】
比較値計算部７９では、これから出現するサンプリング領域Ｑn-4 の平均電流値ＩA(n-4)と比較する予測比較値Ｃn-4 が次式によって計算される。
【０２２２】
Ｃn-4 ＝ＩAn×Ｑ'n-1×Ｑ'n-2×Ｑ'n-3×Ｑ'n-4＋Ｆn-4
一般式で表すと、
Ｃｎ＝ＩA(n+4)×Ｑ'n+3×Ｑ'n+2×Ｑ'n+1×Ｑ'n＋Ｆｎ
となる。
【０２２３】
比較値計算部７９によって求められた予測比較値Ｃn-4 は、４段の予測比較値遅延レジスタ８０を通過することにより、現在所要されるサンプリン領域Ｑｎのアドレス番号ｎに対応するものと合致する。
【０２２４】
予測比較値演算部７６において、最初の比較値生成時は、その比較値を予測比較値遅延レジスタ８０の前段に入れ、それを４回繰り返し、４つ先の比較値まで求める。すなわち、
１つ先の予測値：Ｃn-1 ＝Ａn   ×Ｑ'n-1
２つ先の予測値：Ｃn-2 ＝Ｃn-1 ×Ｑ'n-2
３つ先の予測値：Ｃn-3 ＝Ｃn-2 ×Ｑ'n-3
４つ先の予測値：Ｃn-4 ＝Ｃn-3 ×Ｑ'n-4
である。
【０２２５】
（初期動作）
図３６に示す挟み込み判定の各ブロックにおいて、初期状態では、負荷サンプルデータメモリ７１の記憶内容は、車体１を前後左右に傾きのない平坦な場所で平常姿勢としておき、この平常姿勢においてドア２を開閉させ、各エリア毎のサンプル領域Ｑｎ，Ｑｍの平均電流値ＩAn，ＩAmを求める。
【０２２６】
この初期状態において、記憶用学習データ演算部７５で現在および直前の平均電流値の比から電流変化率ΔＩAn，ΔＩAmを求める。この電流変化率ΔＩAn，ΔＩAmは学習データ遅延シフトレジスタ８３から学習値重み付け更新演算部８４を素通りして負荷サンプルデータメモリ７１の書き込みデータＤＬとして出力されるとともに、そのデータが記録されるアドレス番号はサンプリング領域演算部７０で得られるその平均電流値ＩAn，ＩAmを求めたサンプル領域データＱｎ，Ｑｍのアドレス番号ｎ，ｍで指定される。
【０２２７】
ここで、図３４に示す挟み込み判定の各ルーチンと、図３６に示す挟み込み判定の各ブロックとの関係について説明する。平均値算出ルーチン（ステップ３８０）は負荷データ演算部７２および電流値記憶レジスタ７４に対応している。比較値生成ルーチン（ステップ３８１）および比較値計算ルーチン（ステップ３８４）は、予測比較値算出部７６に対応している。学習処理ルーチン（ステップ３８２）および学習遅延処理ルーチン（ステップ３８３）は、記憶用学習データ演算部７５に対応している。継続＆変化量ルーチン（ステップ３７５）は、前回電流値メモリ部８６、変化量算出部８７および電流増加回数計数部８８に対応している。
【０２２８】
（学習判定ルーチン）
図４０は、学習判定ルーチン（ステップ３７４）の詳細を示すフローチャートである。この学習判定ルーチンは、毎回電流値を加算し、エラー判定および学習重み付け（挟み込み認識）を行う。また、ドア２が移動してサンプリング領域が移り変わったときに、その領域の平均電流値の算出、比較値の算出、学習処理、学習遅延処理を行う。
【０２２９】
サンプリング領域が移り変わったことは、動き出しのサンプリング領域演算時の余り（位置計数値Ｎを分解能Ｂで割った余り）にドア２が動いた量のパルス数を加算し、分解能Ｂの数値８，４，２を越えたことをみて判断する。パルス数は毎回加算した時点でクリアする。また、サンプリング領域が移り変わった時点で分解能Ｂの数値を引き、再びカウントしていく。ただし、動き始めは、そのサンプリング領域の途中なので平均電流値が出せないため、サンプリング領域が切り替わった時点で電流値の加算を始める。そして、次にサンプリング領域が移り変わった時点で、平均電流値および比較値が出せるため、以後は毎回エラー判定が可能となる。
【０２３０】
まず、サンプリング領域番号が演算済みか判断する（ステップ３９２）。ドア２の動き出しでは演算済みでないので、演算する（ステップ３９４）。次いで、学習可能か判断する（ステップ３９３）。初回は学習可能状態でないので、次にドア２の位置はエリア１，５，６か判断する。
【０２３１】
エリア１，５，６であれば、分解能計数（サンプリング領域演算での余り）に周期レジスタ番号（動いたパルス数）を加算し、新たな分解能計数を求める（ステップ４００）。次いで、動いたパルス数をカウントするために周期レジシタ番号をクリア（ステップ４１２）し、さらに分解能計数が８以下の場合（ステップ４１３）はリターンする。
【０２３２】
そして、次回以降も同様にして周期レジスタ番号を加算していき、８以上になると（サンプリング領域が移り変わると）、分解能計数から８を引き（ステップ４１４）、学習可能か判断する（ステップ４１５）。今の場合は学習可能でないので、学習可能にセットし（ステップ４１７）、電流値メモリおよび電流値レジスタ番号をクリアし（ステップ４２１Ｃ，４２２）、リターンする。
【０２３３】
次回は学習可能なので（ステップ３９３）、現在の電流値を記憶値に加算し（ステップ３９５）、電流レジスタ番号をインクリメントして電流値の加算回数をカウントし（ステップ３９６）、エラー判定可能か判断する（ステップ３９７Ａ）。今の場合はエラー判定可能ではないので、ステップ３９９にジャンプする。そして、ステップ４００〜４１５の処理を実行し、今度は学習可能であるので（ステップ４１５）、平均値算出（ステップ４１６）、比較値算出（ステップ４１８）、学習処理（ステップ４１９）、学習遅延処理（ステップ４２０）をそれぞれ実行し、エラー判定可能にセットして（ステップ４２１Ａ，４２１Ｂ）、リターンする。
【０２３４】
次回からはエラー判定が可能なので（ステップ３９７Ａ）、後述するエラー判定（ステップ３９７Ｂ）および学習重み付け（ステップ３９８）を実行する。また、サンプリング領域を越える毎に平均値算出（ステップ４１６）〜学習遅延処理（ステップ４２０）を行う。
【０２３５】
ドア２の位置がエリア１からエリア２に切り替わると（ステップ３９９，４０１）、分解能計数が４を越えているか判断する（ステップ４０２）。これは、エリアが切り替わった初回はその前のエリア１の最後のサンプリング領域の平均値等を算出するためである。分解能計数が４を越えていればステップ４００以降の処理に移行する。
【０２３６】
分解能計数が４を越えていなければ、分解能計数に周期レジスタ番号を加算し、新たな分解能計数を求め（ステップ４０８）、動いたパルス数をカウントするために周期レジシタ番号をクリアし（ステップ４０９）、さらに分解能計数が４未満の場合は（ステップ４１０）リターンし、４以上になると分解能計数から４を引き（ステップ４１１）、ステップ４１５以降の処理に移行する。
【０２３７】
ドア２の位置がエリア２からエリア３に切り替わると（ステップ３９９，４０１）、分解能計数が２を越えているか判断する（ステップ４０３）。これは、エリアが切り替わった初回はその前のエリア２の最後のサンプリング領域の平均値等を算出するためである。分解能計数が２を越えていればステップ４０２以降の処理に移行する。
【０２３８】
分解能計数が２を越えていれば、分解能計数に周期レジスタ番号を加算し、新たな分解能計数を求め（ステップ４０４）、動いたパルス数をカウントするために周期レジシタ番号をクリアし（ステップ４０５）、さらに分解能計数が２未満の場合は（ステップ４０６）リターンし、２以上になると分解能計数から２を引き（ステップ４０７）、ステップ４１５以降の処理に移行する。
【０２３９】
（エラー判定ルーチン）
図４１は、エラー判定ルーチン（ステップ３７８，３９７）の詳細を示すフローチャートである。このエラー判定ルーチンは、現在の電流値ＩN と予測比較値Ｃｎとを比較し、電流値ＩN が大なる回数をエラー回数として計数するものである。
【０２４０】
まず、現在の電流値ＩN と予測比較値Ｃｎとを比較する（ステップ４２４）。電流値ＩN が大きければエラー回数を加算し（ステップ４２５）、同じか小さければエラー回数をクリアする（ステップ４２６）。これは、電流値ＩN が連続して大なるときのみ挟み込み有りとしているためである。
【０２４１】
（学習重み付けルーチン）
図４２は、学習重み付けルーチン（ステップ３７９，３９８）の詳細を示すフローチャートである。この学習重み付けルーチンは、エリア１〜７に応じてエラー回数の重み付けを変え、挟み込み検出を有効に行うものである。
【０２４２】
まず、エラー回数がゼロか判断し（ステップ４２９）、ゼロであればリターンする。ゼロでなければ各エリアに応じてエラー回数の重み付けを行う。
【０２４３】
すなわち、エリア１，５〜７では（ステップ４３０）、エラー回数が３以上か判断し（ステップ４３１）、エリア２では（ステップ４３２）、エラー回数が２以上か判断し（ステップ４３３）、エリア３，４では（ステップ４３４）、エラー回数が１以上か判断する（ステップ４３５）。このように、閉方向の開始エリア１や開方向のエリア５〜７にくらべ、閉方向の危険領域のエリア２〜４ほど厳しい設定値としている。
【０２４４】
これらの判断の結果、現在の制御領域の電流値が増加傾向でない場合（ステップ４２７）や、増加傾向であってもエラー回数がエリア毎に設定された設定値より大きいときは、異常と判定して挟み込み検出を許可する（ステップ４３５）。現在の制御領域の電流値が増加傾向であっても、エラー回数が設定値よりも小さい場合はリターンする。
【０２４５】
（継続＆変化量ルーチン）
図４３は、継続＆変化量ルーチン（ステップ３７５，３８９）の詳細を示すフローチャートである。この継続＆変化量ルーチンは、電流値ＩN の変化量と上昇継続時間を測定して挟み込み検出を有効に行うものである。
【０２４６】
まず、電流値が増加傾向か判断し（ステップ４３６）、増加傾向であれば継続時間を計数するカウンタを加算し（ステップ４３７）、変化前電流値のデータが無い場合は（ステップ４３９）、前電流値を変化前電流値として格納し（ステップ４４０）、現在の電流値ＩN から変化前電流値を引いて電流値の変換量を求め（ステップ４４１）、リターンする。電流値が増加傾向でない場合は（ステップ４３６）、継続時間を計数するカウンタをクリアし（ステップ４３８）、変化前電流値もクリアし（ステップ４４２）、リターンする。
【０２４７】
（総合判定ルーチン）
図４４は、総合判定ルーチン（ステップ３７６，３９０）の詳細を示すフローチャートである。この総合判定ルーチンは、学習での判定、電流値の変化量および増加継続時間等の全てを加味したうえで挟み込み判定を行うものである。
【０２４８】
まず、現在の電流値が異常認識値以上か判断し（ステップ４４３）、異常認識値以上であれば異常状態にセットし（ステップ４４４）、リターンする。現在の電流値が異常認識値未満であれば（ステップ４４３）、学習判定で挟み込み検出が許可されているか判断し（ステップ４４５）、許可されていなければリターンする。
【０２４９】
挟み込み検出が許可されていれば（ステップ４４５）、電流値の増加する継続時間が設定最大値以上のとき（ステップ４４６Ａ）、電流値の変化量が設定最大値以上のとき（ステップ４４６Ｂ）、継続時間が設定最小値以上であって変化量も設定値（ただし、最大値より小）以上のとき（ステップ４４７，４４８）は、それぞれ挟み込みがあったと判断して挟み込み処理済みにセットし（ステップ４４９）、リターンする。異常状態セット（ステップ４４４）、または挟み込み処理済みにセット（ステップ４４９）する。これにより、例えばオート閉作動中であれば、オート閉作動ルーチンによって目標値まで逆転開作動する。
【０２５０】
（坂道判定ルーチン）
図４５は、坂道判定ルーチン（ステップ１２２）の詳細を示すフローチャートである。この坂道判定ルーチンは、坂道判定をするための条件を整えるためのもので、まず、ドア２の位置がエリア１，６か判断する（ステップ）。これは通常制御領域であるエリア１，６で坂道判定を行うためである。従って、ドア２の位置が他のエリアであればリターンする。
【０２５１】
ドア２の位置がエリア１，６であれば、ドア２の作動が安定する時間が過ぎたか判断し（ステップ４５１）、過ぎていれば坂道判定済みか判断する（ステップ４５２）。作動時間が安定時間に達していないとき、または坂道判定済みであればリターンする。
【０２５２】
坂道判定済みでなければ、安定度カウントが所定の設定値以上か判断する（ステップ４５３）。ここで安定度とは、連続する複数（例えば４つ）の周期計数値Ｔの最大値と最小値との差が一定値以内である状態をいう。その状態が所定の設定値回数以上になっていなければ、リターンする。
【０２５３】
安定度カウントが所定の設定値以上であれば、平坦地でドア２が安定したと判断し、判定基準値入力済みか判断する（ステップ４５５）。初期時は入力済みでないので後述する平坦値データ入力を行い（ステップ４５７）、入力済みであれば後述する坂道検査を行う（ステップ４５６）。
【０２５４】
（平坦値データ入力）
図４６は、平坦値データ入力ルーチン（ステップ１２１，４５７）の詳細を示すフローチャートである。この平坦値データ入力ルーチンは、坂道判定に使用する基準値（平坦基準値）を入力するもので、ドア２のエリア１，６における周期計数値Ｔが基準周期内にあるか、すなわちドア２の移動速度が設定速度Ｔ１（図１６）に対して所定の範囲内にあるか判断する（ステップ４５８）。所定の範囲内になければリターンする。
【０２５５】
ドア２が目標速度に制御されていれば（ステップ４５８）、現電流値を平坦電流値として格納し（ステップ４５９）、かつそのときの駆動電圧を平坦駆動電圧として格納する（ステップ４６０）。駆動電圧は、
駆動電圧＝電源電圧×（ＤＵＴＹ／２５０）
となる。ここで、（ＤＵＴＹ／２５０）は前述したようにデューティサイクルを意味する。
【０２５６】
（坂道検査ルーチン）
図４７は、坂道検査ルーチン（ステップ４５６）の詳細を示すフローチャートである。この坂道検査ルーチンは、先に設定した平坦基準値（平坦電流値および平坦駆動電圧）から車体１が停止している状況が平坦地か坂道かを判断するものである。
【０２５７】
まず、現在の電流値が平坦電流値よりも大きければ（ステップ４６１）、平坦電流値に判定マージンとしての坂道電流値を加算し、加算後の値を坂道判定値とする（ステップ４６２）。そして、現在の電流値が坂道判定値以上の大きさであれば（ステップ４６４）、平坦電流値に判定マージンとしての急坂値（坂道値よりも大きい）を加算し、加算後の値を急坂判定値とする（ステップ４６５）。
【０２５８】
そして、現在の電流値が急坂判定値以上の大きさで（ステップ４６７）、ドア２の移動方向が開方向であれば（ステップ４６８）、急下り坂と判定し（ステップ４７０）、閉方向であれば急上り坂と判定する（ステップ４７１）。また、現在の電流値が急坂判定値未満の大きさで（ステップ４６７）、ドア２の移動方向が開方向であれば（ステップ４６９）、下り坂と判定し（ステップ４７２）、閉方向であれば上り坂と判定する（ステップ４７３）。
【０２５９】
これは、車体１の停止位置が下り坂でドア２の移動方向が開方向、または車体１の停止位置が上り坂でドア２の移動方向が閉方向であれば、ドア２の自重に抗して移動させる必要があるため、モータ負荷が増大し、坂道の傾斜に比例して電流値が増えるため、現在の電流値を平坦電流値と比較することによって坂道判定を行っている。現在の電流値が坂道判定値未満の大きさであれば（ステップ４６４）、平坦地と判定する（ステップ４６６）。
【０２６０】
現在の電流値が平坦電流値以下であれば（ステップ４６１）、現在の駆動電圧を求め（ステップ４６３）、先に求めた平坦駆動電圧から判定マージンとしての坂道電圧値を減算し、減算後の値を坂道判定電圧とする（ステップ４７４）。そして、現在の駆動電圧が坂道判定電圧以下の大きさであれば（ステップ４７５）、平坦電圧値から判定マージンとしての急坂電圧値（坂道値よりも大きい）を減算し、減算後の値を急坂判定電圧とする（ステップ４７６）。
【０２６１】
そして、現在の駆動電圧が急坂判定電圧以下の大きさで（ステップ４７７）、ドア２の移動方向が開方向であれば（ステップ４７８）、急上り坂と判定し（ステップ４８０）、閉方向であれば急下り坂と判定する（ステップ４８１）。また、現在の駆動電圧が急坂判定電圧より大きく（ステップ４７７）、ドア２の移動方向が開方向であれば（ステップ４７９）、上り坂と判定し（ステップ４８２）、閉方向であれば下り坂と判定する（ステップ４８３）。
【０２６２】
これは、車体１の停止位置が上り坂でドア２の移動方向が開方向、または車体１の停止位置が下り坂でドア２の移動方向が閉方向であれば、ドア２が自重で目的の方向に移動するので、そのままだと急開または急閉となり危険であるので、ＤＵＴＹ制御によって駆動電圧を下げ、速度制御を行っているため、現在の駆動電圧を平坦駆動電圧と比較することによって坂道判定を行うことができる。現在の駆動電圧が坂道判定電圧以上の大きさであれば（ステップ４７５）、平坦地と判定する（ステップ４６６）。
【０２６３】
駆動電圧の算出（ステップ４６３）は次のように行う。ＰＷＭ制御によりＤＵＴＹが１００％で無い場合、そのときの駆動電圧は、
ＤＵＴＹ値÷２５０（１００％）＝駆動割り合い
バッテリー電圧×駆動割合＝駆動電圧
となる。ＤＵＴＹ＝１００％の場合は、
バッテリー電圧＝駆動電圧
となる。本実施の形態では、１００％のＤＵＴＹ値を２５０としている。
【０２６４】
【発明の効果】
請求項１記載の発明によれば、ドアの駆動に係るモータ負荷データを、ドアの位置に応じて記憶させてあるため、挟み込みが生じたときのドアの位置のモータ負荷データが既知でのものであり、予め既知のモータ負荷データを先読みして既知データの変動を予測し判定しているため、柔らかな弾力のある物の挟み込みでも、少ないドアの移動距離で速やかにその挟み込みを検知することができ、ドアを安全に運用できる。
【０２６５】
また、請求項２記載の発明によれば、ドアの開閉負荷抵抗に敏感に感応するモータの電流値を間欠的に検出しているため、挟み込み現象を少ないドアの移動距離によって素早く検知し、ドアの停止または反転駆動を速やかに行わせるので安全である。
【０２６６】
また、請求項３記載の発明によれば、モータ負荷データを検出するサンプリング領域内で、複数回のモータ電流を間欠的に計測した平均電流値をもって該サンプリング領域のモータ負荷データとしているため、モータ負荷の増減が平均電流値に正確に反映されるので、少ないサンプリング領域の通過結果でも、正しい挟み込みの状況が反映され、速やかな挟み込みの判定ができる。
【０２６７】
また、請求項４記載の発明によれば、モータ負荷データを、進行方向に隣接するサンプリング領域間の電流又は平均電流の変化率で記憶しているので、ドアの移動に係る負荷データは、負荷の増加傾向、または減少傾向として読み出され、それを先読みで予測することにより、挟み込みに判定が速やかに正確にできるので、挟み込みを生じてから最小限のドアの進行で、挟み込みを回避するドアの停止または反転等の処理が速やかにとれ、ドアを安全に運転する。
【０２６８】
また、請求項５記載の発明によれば、ドアの閉方向かつドアの開口幅が小さい位置では判定度合は小さくして、速やかに挟み込み有りを判定できるので安全である。また、ドアの開方向のように挟み込みが発生する頻度が極めてまれな場合は、判定度合を大きくできるため、挟み込みの誤検出を小さくすることができる。
【０２６９】
また、請求項６記載の発明によれば、ガイドトラックに小石が入った等のように、挟み込みではないモータ負荷の一時的増加に対し、安全性を損なうことがなく、挟み込みの誤検出を小さくすることができる。
【図面の簡単な説明】
【図１】本発明が適用される自動車の一例を示す外観斜視図である。
【図２】スライドドアを取り外した状態を示す車体の拡大斜視図である。
【図３】スライドドアを示す斜視図である。
【図４】車内側から見たスライドドアの取り付け部分を示す斜視図である。
【図５】スライドドア駆動装置の要部を示す斜視図である。
【図６】スライドドアの移動状況を示す概略的平面図である。
【図７】スライドドア自動制御装置と周辺の電気的要素との接続関係を示すブロック図である。
【図８】スライドドア自動制御装置の要部を示すブロック図である。
【図９】本発明によるスライドドア自動制御装置の動作を説明するフローチャートである。
【図１０】図９のモード判定ルーチンの概要図である。
【図１１】パルス割り込みルーチンによって実行されるドアの移動速度の計数に係るタイムチャートである。
【図１２】位置計数パルスが各エリアにおいて分解能に応じてサンプリングされるサンプリング点のタイムチャートである。
【図１３】ドアの開閉位置と位置計数値との関係およびドアの開度に応じたエリアを示すロアートラックの平面図である。
【図１４】パルス割り込みルーチンの詳細を示すフローチャートである。
【図１５】パルスカウントタイマールーチンの詳細を示すフローチャートである。
【図１６】エリア毎に要求される制御データ等を示すメモリテーブルである。
【図１７】オートスライドモード判定ルーチンの詳細を示すフローチャートである。
【図１８】手動判定ルーチンの詳細を示すフローチャートである。
【図１９】オート開作動ルーチンの詳細を示すフローチャートである。
【図２０】オート閉作動ルーチンの詳細を示すフローチャートである。
【図２１】マニュアル閉作動ルーチンの詳細を示すフローチャートである。
【図２２】逆転開作動ルーチンの詳細を示すフローチャートである。
【図２３】逆転閉作動ルーチンの詳細を示すフローチャートである。
【図２４】目標位置算出ルーチンの詳細を示すフローチャートである。
【図２５】ドア全開制御ルーチンの詳細を示すフローチャートである。
【図２６】スタートモードルーチンの詳細を示すフローチャートである。
【図２７】手動通常スタートモードルーチンの詳細を示すフローチャートである。
【図２８】手動全閉スタートモードルーチンの詳細を示すフローチャートである。
【図２９】速度制御ルーチンの概要図である。
【図３０】速度制御に係る機能を示すブロック図である。
【図３１】モータに流れる電流を一定としたときの電圧変動とデューティサイクルの関係を示すグラフである。
【図３２】ＰＷＭ制御ルーチンの詳細を示すフローチャートである。
【図３３】フィードバック調整ルーチンの詳細を示すフローチャートである。
【図３４】挟み込み判定ルーチンの概要図である。
【図３５】挟み込み判定ルーチンの詳細を示すフローチャートである。
【図３６】挟み込み判定に係る機能を示すブロック図である。
【図３７】注目するサンプリング領域の電流値を示すグラフである。
【図３８】記憶用学習データ演算部のブロック図である。
【図３９】予測比較値演算部のブロック図である。
【図４０】学習判定ルーチンの詳細を示すフローチャートである。
【図４１】エラー判定ルーチンの詳細を示すフローチャートである。
【図４２】学習重み付けルーチンの詳細を示すフローチャートである。
【図４３】継続・変化量ルーチンの詳細を示すフローチャートである。
【図４４】総合判定ルーチンの詳細を示すフローチャートである。
【図４５】坂道判定ルーチンの詳細を示すフローチャートである。
【図４６】平坦値データ入力ルーチンの詳細を示すフローチャートである。
【図４７】坂道検査ルーチンの詳細を示すフローチャートである。
【符号の説明】
１  車体
２  スライドドア
３  ドア開口部
４  アッパートラック
５  ロアートラック
６  摺動連結具
７  ガイドトラック
８  ドアロック
９  ストライカ
１０  ドア駆動装置
１１  モータ駆動部
１２  ドア駆動ケーブル部材
１２ａ  閉扉用ケーブル
１２ｂ  開扉用ケーブル
１３  ベースプレート
１４  開閉モータ
１５  ドライブプーリ
１６  電磁クラッチ
１７  減速部
１８  ロータリーエンコーダ
１９  案内プーリ
２０  反転プーリ
２１  移動部材
２２  ヒンジアーム
２３  スライドドア自動制御装置
２４  バッテリー
２５  イグニッションスイッチ
２６  パーキングスイッチ
２７  メインスイッチ
２８  ドア開スイッチ
２９  ドア閉スイッチ
３０  ワイヤレスリモコン
３１  キーレスシステム
３２  ブザー
３３  車体側コネクタ
３４  ドア側コネクタ
３５  アクチュエータ
３６  ハーフラッチスイッチ
３７  ドアハンドル
３８  パルス信号発生部
３９  出力ポート
４０  発電機
４１  安定化電源
４２  速度検出部
４３  位置検出部
４４  モータ切り替えスイッチ
４５  極性反転スイッチ回路
４６  電力スイッチ素子
４７  電圧検出部
４８  Ａ／Ｄ変換部
４９  シャント抵抗
５０  電流検出部
５１  Ａ／Ｄ変換部
５２  クラッチ駆動回路
５３  アクチュエータ駆動回路
５４  制御モード選択部
５５  主制御部
５６  オートスライド制御部
５７  速度制御部
５８  挟み込み制御部
５９  坂道判定部
６０  ドア位置検出部
６１ａ  制御領域弁別部
６１ｂ  制御速度選択部
６２  調整量算出部
６３  最大調整量制限部
６４  ドア移動速度検出部
６５  速すぎ検出部
６６  遅すぎ検出部
６７  フィードバック調整部
６８  電源電圧検出部
６９  デューティ演算部
【図１】
0003667740.tif 000002
【図２】
0003667740.tif 000003
【図３】
0003667740.tif 000004
【図４】
0003667740.tif 000005
【図５】
0003667740.tif 000006
【図６】
0003667740.tif 000007
【図７】
0003667740.tif 000008
【図８】
0003667740.tif 000009
【図９】
0003667740.tif 000010
【図１０】
0003667740.tif 000011
【図１１】
0003667740.tif 000012
【図１２】
0003667740.tif 000013
【図１３】
0003667740.tif 000014
【図１４】
0003667740.tif 000015
【図１５】
0003667740.tif 000016
【図１６】
0003667740.tif 000017
【図１７】
0003667740.tif 000018
【図１８】
0003667740.tif 000019
【図１９】
0003667740.tif 000020
【図２０】
0003667740.tif 000021
【図２１】
0003667740.tif 000022
【図２２】
0003667740.tif 000023
【図２３】
0003667740.tif 000024
【図２４】
0003667740.tif 000025
【図２５】
0003667740.tif 000026
【図２６】
0003667740.tif 000027
【図２７】
0003667740.tif 000028
【図２８】
0003667740.tif 000029
【図２９】
0003667740.tif 000030
【図３０】
0003667740.tif 000031
【図３１】
0003667740.tif 000032
【図３２】
0003667740.tif 000033
【図３３】
0003667740.tif 000034
【図３４】
0003667740.tif 000035
【図３５】
0003667740.tif 000036
【図３６】
0003667740.tif 000037
【図３７】
0003667740.tif 000038
【図３８】
0003667740.tif 000039
【図３９】
0003667740.tif 000040
【図４０】
0003667740.tif 000041
【図４１】
0003667740.tif 000042
【図４２】
0003667740.tif 000043
【図４３】
0003667740.tif 000044
【図４４】
0003667740.tif 000045
【図４５】
0003667740.tif 000046
【図４６】
0003667740.tif 000047
【図４７】
0003667740.tif 000048