(57)【要約】  【課題】モータの回転速度の脈動の影響を受けずに、モータの回転異常を検出できるモータ制御装置を提供する。  【解決手段】回転速度検出部からの出力によりモータの現在の回転速度を取得し、過去に回転速度検出部により検出してメモリに記憶しておいた回転速度のうち、現在の回転速度の所定回数前に検出した回転速度と、任意の過去の回転速度と、該過去の回転速度の所定回数前に検出した回転速度とをメモリから読み出す。そして、現在の回転速度とその所定回数前の回転速度の和と、過去の回転速度とその所定回数前の回転速度の和との差分を、回転速度の変化量として算出し、該変化量と予め設定された閾値とを比較した結果に基づいて、物体の挟み込みによるモータの回転異常の有無を判定する。【選択図】  図１１
2007060779.tif 000002
【特許請求の範囲】
【請求項１】
モータの回転速度を検出する検出手段と、
前記検出手段で検出された回転速度を順次記憶する記憶手段と、
前記検出手段から出力される現在の回転速度および前記記憶手段に記憶されている過去の回転速度とから回転速度の変化量を算出する算出手段と、
前記算出手段で算出された変化量と予め設定された閾値とを比較した結果に基づいて前記モータの回転異常の有無を判定する判定手段と、
前記判定手段の判定結果に応じて前記モータを制御する制御手段と、を備えたモータ制御装置において、
前記算出手段は、前記現在の回転速度とその所定回数前に検出された回転速度との和と、前記過去の回転速度とその所定回数前に検出された回転速度との和とから、前記変化量を算出することを特徴とするモータ制御装置。
【請求項２】
モータの回転速度を検出する検出手段と、
前記検出手段で検出された回転速度を順次記憶する第１の記憶手段と、
前記検出手段から出力される現在の回転速度および前記第１の記憶手段に記憶されている過去の回転速度とから外乱を取り除くフィルタ手段と、
前記フィルタ手段から出力されるフィルタ処理後の回転速度を順次記憶する第２の記憶手段と、
前記フィルタ手段から出力される現在のフィルタ処理後の回転速度および前記第２の記憶手段に記憶されている過去のフィルタ処理後の回転速度とから回転速度の変化量を算出する算出手段と、
前記算出手段で算出された変化量と予め設定された閾値とを比較した結果に基づいて前記モータの回転異常の有無を判定する判定手段と、
前記判定手段の判定結果に応じて前記モータを制御する制御手段と、を備えたモータ制御装置において、
前記フィルタ手段は、前記現在の回転速度とその所定回数前に検出された回転速度との平均値を、前記フィルタ処理後の回転速度として算出して出力することを特徴とするモータ制御装置。
【請求項３】
モータの回転速度を検出する検出手段と、
前記検出手段で検出された回転速度を順次記憶する第１の記憶手段と、
前記検出手段から出力される現在の回転速度および前記第１の記憶手段に記憶されている過去の回転速度とから外乱を取り除くフィルタ手段と、
前記フィルタ手段から出力されるフィルタ処理後の回転速度を順次記憶する第２の記憶手段と、
前記フィルタ手段から出力される現在のフィルタ処理後の回転速度および前記第２の記憶手段に記憶されている過去のフィルタ処理後の回転速度とから回転速度の変化量を算出する算出手段と、
前記算出手段で算出された変化量と予め設定された閾値とを比較した結果に基づいて前記モータの回転異常の有無を判定する判定手段と、
前記判定手段の判定結果に応じて前記モータを制御する制御手段と、を備えたモータ制御装置において、
前記フィルタ手段は、前記現在の回転速度とその所定回数前に検出された回転速度との和から回転速度の平均値を引いて、前記フィルタ処理後の回転速度として出力することを特徴とするモータ制御装置。
【請求項４】
請求項３に記載のモータ制御装置において、
前記フィルタ手段は、前記現在の回転速度を含まない前記過去の回転速度から前記平均値を算出することを特徴とするモータ制御装置。
【請求項５】
請求項２ないし請求項４のいずれかに記載のモータ制御装置において、
前記フィルタ手段は、前記フィルタ処理後の回転速度の算出後に、現在のフィルタ処理後の回転速度および前記第２の記憶手段に記憶されている過去のフィルタ処理後の回転速度とから、フィルタ複数回後の回転速度を算出して出力する処理を１回または複数回行い、
前記算出手段は、前記フィルタ手段により最終的に算出された現在のフィルタ複数回後の回転速度および前記第２の記憶手段に記憶されている過去のフィルタ複数回後の回転速度とから回転速度の変化量を算出することを特徴とするモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば車両の開閉体を駆動するためのモータを制御するモータ制御装置に関するものである。
【背景技術】
【０００２】
例えば自動車には、ドアの窓、サンルーフ、スライドドア等の開閉体と、該開閉体を駆動するためのモータと、該モータを制御するモータ制御装置とが設けられている。そのモータ制御装置のうち、窓開閉用のモータを制御するものは、パワーウィンドウ装置（または窓開閉制御装置）と呼ばれている。パワーウィンドウ装置は、一般にスイッチの操作によりモータを正転または逆転させて、ドアの窓ガラスを昇降させ、窓を開閉する。
【０００３】
図１は、パワーウィンドウ装置の電気的構成を示したブロック図である。１は窓の開閉を操作するための操作スイッチ、２はモータ３を駆動するモータ駆動回路、４はモータ３の回転に同期したパルスを出力するロータリエンコーダ、５はロータリエンコーダ４から出力されるパルスを検出するパルス検出回路、６はＲＯＭやＲＡＭ等から構成されるメモリ、８は窓の開閉動作を制御するＣＰＵおよびメモリから構成される制御部である。
【０００４】
操作スイッチ１を操作すると、制御部８に窓開閉指令が与えられ、モータ駆動回路２によりモータ３が正転または逆転する。モータ３の回転により、モータ３と連動する窓開閉機構が作動して窓の開閉が行われる。パルス検出回路５はロータリエンコーダ４から出力されるパルスを検出し、制御部８はこの検出結果に基づき窓の開閉量やモータ速度を算出して、モータ駆動回路２を介してモータ３の回転を制御する。
【０００５】
図２は、操作スイッチ１の一例を示した概略構成図である。操作スイッチ１は、軸Ｑを中心としてａｂ方向に回転可能な操作ノブ１１と、この操作ノブ１１と一体に設けられたロッド１２と、公知のスライドスイッチ１３とから構成される。１４はスライドスイッチ１３のアクチュエータ、２０は操作スイッチ１が組み込まれるスイッチユニットのカバーである。ロッド１２の下端は、スライドスイッチ１３のアクチュエータ１４と係合しており、操作ノブ１１がａｂ方向に回転すると、ロッド１２を介してアクチュエータ１４がｃｄ方向に移動し、その移動位置に応じてスライドスイッチ１３の接点（図示省略）が切り換えられる。
【０００６】
操作ノブ１１は、オート閉ＡＣ、マニュアル閉ＭＣ、中立Ｎ、マニュアル開ＭＯ、オート開ＡＯの各位置へ切換可能となっている。図２は、操作ノブ１１が中立Ｎの位置にある状態を示している。この位置から操作ノブ１１をａ方向に一定量回転させて、マニュアル閉ＭＣの位置にすると、マニュアル動作で窓が閉じるマニュアル閉動作が行われ、この位置よりさらにａ方向に操作ノブ１１を回転させてオート閉ＡＣの位置にすると、オート動作で窓が閉じるオート閉動作が行われる。また、操作ノブ１１を中立Ｎの位置からｂ方向に一定量回転させて、マニュアル開ＭＯの位置にすると、マニュアル動作で窓が開くマニュアル開動作が行われ、この位置よりさらにｂ方向に操作ノブ１１を回転させてオート開ＡＯの位置にすると、オート動作で窓が開くオート開動作が行われる。操作ノブ１１には、図示しないバネが設けられており、回転した操作ノブ１１から手を離すと、操作ノブ１１はバネの力により中立Ｎの位置に復帰する。
【０００７】
マニュアル動作の場合は、操作ノブ１１がマニュアル閉ＭＣまたはマニュアル開ＭＯの位置に手で保持され続ける間だけ、窓を閉じる動作または開ける動作が行われ、操作ノブ１１から手を離してノブが中立Ｎの位置に復帰すると、窓の閉動作または開動作は停止する。一方、オート動作の場合は、一旦、操作ノブ１１がオート閉ＡＣまたはオート開ＡＯの位置まで回転されると、その後は操作ノブ１１から手を離してノブが中立Ｎの位置に復帰しても、窓の閉動作または開動作が継続して行われる。
【０００８】
図３は、車両の各窓に設けられる窓開閉機構の一例を示した図である。１００は自動車の窓、１０１は窓１００を開閉する窓ガラス、１０２は窓開閉機構である。窓ガラス１０１は、窓開閉機構１０２の作動により昇降動作を行い、窓ガラス１０１の上昇により窓１００が閉じ、窓ガラス１０１の下降により窓１００が開く。窓開閉機構１０２において、１０３は窓ガラス１０１の下端に取り付けられた支持部材である。１０４は一端が支持部材１０３に係合され、他端がブラケット１０６に回転可能に支持された第１アーム、１０５は一端が支持部材１０３に係合され、他端がガイド部材１０７に係合された第２アームである。第１アーム１０４と第２アーム１０５とは、それぞれの中間部において軸を介して連結されている。３は前述のモータ、４は前述のロータリエンコーダである。ロータリエンコーダ４はモータ３の回転軸に連結されており、モータ３の回転量に比例した数のパルスを出力する。所定時間内にロータリエンコーダ４から出力されるパルスを計数することにより、モータ３の回転速度を検出することができる。また、ロータリエンコーダ４の出力から、モータ３の回転量（窓ガラス１０１の移動量）を算出することができる。
【０００９】
１０９はモータ３により回転駆動されるピニオン、１１０はピニオン１０９と噛合して回転する扇形のギヤである。ギヤ１１０は、第１アーム１０４に固定されている。モータ３は正逆方向に回転可能であり、正逆方向への回転によりピニオン１０９およびギヤ１１０を回転させて、第１アーム１０４を正逆方向へ回動させる。これに追随して、第２アーム１０５の他端がガイド部材１０７の溝に沿って横方向にスライドし、支持部材１０３が上下方向に移動して窓ガラス１０１を昇降させ、窓１００を開閉する。
【００１０】
以上のようなパワーウィンドウ装置において、操作ノブ１１が図２のオート閉ＡＣの位置にあってオート閉動作が行われる場合は、物体の挟み込みを検出する機能が備わっている。すなわち、図４に示したように、窓１００が閉まる途中で窓ガラス１０１の隙間に物体Ｚが挟み込まれた場合、これを検知して窓１００の閉動作を停止したり、開動作へ切り換えたりするようになっている。オート閉動作中は窓１００が自動的に閉じるため、誤って手や首などが挟まれた場合に、閉動作を禁止して人体に危害が加わるのを防止する必要性から、このような挟み込み検出機能が設けられる。挟み込みの検出にあたっては、パルス検出回路５の出力であるモータ３の回転速度を制御部８が随時読み込み、現在の回転速度と以前の回転速度とを比較して、その比較結果に基づいてモータ３の回転異常の有無を検出し、該検出結果から挟み込みの有無を判定する。窓１００に物体Ｚの挟み込みが発生すると、モータ３の負荷が増大して回転速度が低下する異常が生じるため、速度の変動量が大きくなり、この速度変動量が所定の閾値を超えたときに、物体Ｚが挟み込まれたと判定する。閾値はメモリ６にあらかじめ記憶されている。
【００１１】
ところで、モータ３の回転速度の変動は、物体の挟み込みだけではなく、ドアを閉じたときの振動や悪路を走行したときの振動等によっても発生する。そして、このような振動により回転速度が変動すると、物体が挟み込まれていないにもかかわらず、物体が挟み込まれたと誤判定して窓が開いてしまうことが起こりうる。
【００１２】
この対策として、下記の特許文献１では、モータの回転速度の平均値を算出し、さらに該平均値と現在の回転速度の差を算出し、該差と所定の閾値とを比較した結果から挟み込みの有無を判定している。また、下記の特許文献２では、モータの回転に同期したパルス信号のうち、第１のパルス信号の周期を含むパルス信号周期の第１の移動平均値と、少なくとも第１の移動平均値のパルス信号周期より過去のパルス信号の周期を含むパルス信号周期の第２の移動平均値との差をモータ負荷として算出し、該モータ負荷と所定の閾値とを比較した結果からモータの回転異常（過負荷）を判断している。さらに、下記の特許文献３では、モータの最新の回転速度を示す速度データからそのA個前までの速度データの平均値を現速度とし、一方最新の速度データからN個前の速度データを起点とし、該N個前の速度データからそのB個前までの速度データの平均値を前速度とし、現速度が前速度より小さくかつその差が所定の閾値より大きい場合に、モータで回転異常が生じたと判断している。
【００１３】
【特許文献１】特開２０００−１６０９３１号公報（段落００５５、図１０等）
【特許文献２】特許第３６５７６７１号公報（段落００３２〜００３５、図５等）
【特許文献３】特開平７−２１２９６３号公報（段落００２３、００２４、図３等）
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上述したパワーウィンドウ装置では、例えばピニオン１０９の中心軸のずれ等のような機械的要因によって、モータ３の回転速度が加速および減速を繰り返して、上下に大きく脈動する（振れる）ことがある。この場合、ロータリエンコーダ４からの出力信号（パルス信号）にはその脈動が含まれているため、物体Ｚの挟み込みによるモータ３の回転異常が発生していないにもかかわらず、発生したと誤判定してしまうことが起こりうる。
【００１５】
そこで、本発明では、モータの回転速度の脈動の影響を受けずに、モータの回転異常を検出できるモータ制御装置を提供することを課題とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、第１の発明では、モータの回転速度を検出する検出手段と、検出手段で検出された回転速度を順次記憶する記憶手段と、検出手段から出力される現在の回転速度および記憶手段に記憶されている過去の回転速度とから回転速度の変化量を算出する算出手段と、算出手段で算出された変化量と予め設定された閾値とを比較した結果に基づいてモータの回転異常の有無を判定する判定手段と、判定手段の判定結果に応じてモータを制御する制御手段とを備えたモータ制御装置において、算出手段は、現在の回転速度とその所定回数前に検出された回転速度との和と、過去の回転速度とその所定回数前に検出された回転速度との和とから、上記変化量を算出する。
【００１７】
このように、現在の回転速度を含む２つの回転速度の和と過去の２つの回転速度の和との差分を算出してモータの回転速度の変化量とすると、機械的要因によりモータの回転速度が脈動していても、該変化量については脈動の程度を小さく抑えることができる。このため、該変化量と閾値とを比較した結果に基づいてモータの回転異常の有無を判定することで、モータの回転速度の脈動の影響を受けずに、モータの回転異常を検出することが可能となる。
【００１８】
また、第２の発明では、モータの回転速度を検出する検出手段と、検出手段で検出された回転速度を順次記憶する第１の記憶手段と、検出手段から出力される現在の回転速度および第１の記憶手段に記憶されている過去の回転速度とから外乱を取り除くフィルタ手段と、フィルタ手段から出力されるフィルタ処理後の回転速度を順次記憶する第２の記憶手段と、フィルタ手段から出力される現在のフィルタ処理後の回転速度および第２の記憶手段に記憶されている過去のフィルタ処理後の回転速度とから回転速度の変化量を算出する算出手段と、算出手段で算出された変化量と予め設定された閾値とを比較した結果に基づいてモータの回転異常の有無を判定する判定手段と、判定手段の判定結果に応じてモータを制御する制御手段とを備えたモータ制御装置において、フィルタ手段は、現在の回転速度とその所定回数前に検出された回転速度との平均値を、フィルタ処理後の回転速度として算出して出力する。
【００１９】
このように、現在の回転速度を含む２つの回転速度の平均値を算出してフィルタ処理後の回転速度とし、現在と過去のフィルタ処理後の回転速度の差分を算出してモータの回転速度の変化量とすると、該変化量については脈動の程度を小さく抑えることができるため、該変化量と閾値との比較結果より、モータの回転速度の脈動の影響を受けずに、モータの回転異常を検出することが可能となる。
【００２０】
また、第３の発明では、モータの回転速度を検出する検出手段と、検出手段で検出された回転速度を順次記憶する第１の記憶手段と、検出手段から出力される現在の回転速度および記憶手段に記憶されている過去の回転速度とから外乱を取り除くフィルタ手段と、フィルタ手段から出力されるフィルタ処理後の回転速度を順次記憶する第２の記憶手段と、フィルタ手段から出力される現在のフィルタ処理後の回転速度および第２の記憶手段に記憶されている過去のフィルタ処理後の回転速度とから回転速度の変化量を算出する算出手段と、算出手段で算出された変化量と予め設定された閾値とを比較した結果に基づいてモータの回転異常の有無を判定する判定手段と、判定手段の判定結果に応じてモータを制御する制御手段とを備えたモータ制御装置において、フィルタ手段は、現在の回転速度とその所定回数前に検出された回転速度との和から回転速度の平均値を引いて、フィルタ処理後の回転速度として出力する。
【００２１】
このように、現在の回転速度を含む２つの回転速度の和から回転速度の平均値を引いてフィルタ処理後の回転速度とすると、現在と過去のフィルタ処理後の回転速度の差分であるモータの回転速度の変化量について脈動の程度をより小さく抑えることができるため、該変化量と閾値との比較結果より、モータの回転速度の脈動の影響を受けずに、モータの回転異常を検出することが可能となる。
【００２２】
また、第４の発明では、上記第３の発明において、フィルタ手段は、現在の回転速度を含まない過去の回転速度から前記平均値を算出する。
【００２３】
このように、現在の回転速度を含まずに回転速度の平均値を算出すると、モータの回転異常が発生したときに、現在の回転速度を含む２つの回転速度の和から該平均値を引いてフィルタ処理後の回転速度とし、現在と過去のフィルタ処理後の回転速度の差分をモータの回転速度の変化量とすることで、該変化量に含まれる回転異常に起因した回転速度の変動を抑えることなく、機械的要因に起因した脈動のみを小さく抑えることができる。
【００２４】
さらに、第５の発明では、上記第２ないし第４の発明のいずれかにおいて、フィルタ手段は、フィルタ処理後の回転速度の算出後に、現在のフィルタ処理後の回転速度および第２の記憶手段に記憶されている過去のフィルタ処理後の回転速度とから、フィルタ複数回後の回転速度を算出して出力する処理を１回または複数回行い、算出手段は、フィルタ手段により最終的に算出された現在のフィルタ複数回後の回転速度および第２の記憶手段に記憶されている過去のフィルタ複数回後の回転速度とから回転速度の変化量を算出する。ここで、「フィルタ複数回後」とは、「フィルタ処理を複数回行った後」の意味である。また、以下の実施形態に出てくる「フィルタｎ回後」とは、「フィルタ処理をｎ回行った後」の意味である。
【００２５】
このように、算出したフィルタ処理後の回転速度から、さらに新たなフィルタ複数回後の回転速度を算出して出力すると、検出手段により得たモータの回転速度から外乱を複数回に渡って取り除くことができる。このため、新たなフィルタ複数回後の回転速度から上記のようにしてモータの回転速度の変化量を算出することで、該変化量について脈動の程度をより一層小さく抑えることができる。
【発明の効果】
【００２６】
本発明によれば、機械的要因によりモータの回転速度が脈動していても、回転速度の変化量については脈動の程度を小さく抑えることができるため、回転速度の脈動の影響を受けずに、モータの回転異常を検出することが可能となる。
【発明を実施するための最良の形態】
【００２７】
次に、本発明の実施形態につき図を参照して説明する。以下では、背景技術の項で説明した図１〜図４を本発明の実施形態として引用する。図１は、本発明の実施形態であるパワーウィンドウ装置の電気的構成を示したブロック図である。本パワーウィンドウ装置は、車両の窓の開閉を制御する開閉制御装置であって、本発明におけるモータ制御装置を構成している。制御部８は、本発明における制御手段を構成している。図２は、操作スイッチの一例を示した概略構成図である。図３は、車両の各窓に設けられる窓開閉機構の一例を示した図である。図４は、図３において窓に物体が挟み込まれた状態を示す図である。これらの各図についてはすでに説明済みなので、ここでは重複説明を省略する。
【００２８】
図５は、本発明の第１実施形態における窓への物体の挟み込みによる回転異常検出ブロックを示している。この回転異常検出ブロックのうち、回転速度検出部８１、変化量算出部８３、および回転異常判定部８４は制御部８に備わるものであって、ここでは、便宜上ハードウェアの回路として図示してあるが、実際には各回路の機能はソフトウェアによって実現される。勿論、ハードウェア回路により上記各部を構成してもよい。また、回転速度記憶部８２はメモリ６内の所定領域に設けられるが、独立したメモリとして制御部８内に設けてもよい。
【００２９】
図５において、回転速度検出部８１は、図１のパルス検出回路５から出力されるパルスの数または周期を計数することによって、モータ３の回転速度を所定の周期で検出する。回転速度検出部８１は図１のロータリエンコーダ４およびパルス検出回路５とともに、本発明における検出手段を構成している。回転速度記憶部８２は、回転速度検出部８１で検出した回転速度を順次記憶する。つまり、回転速度記憶部８２には、所定の周期で検出した複数の回転速度が順番に記憶される。回転速度記憶部８２は、本発明における記憶手段を構成している。変化量算出部８３は、回転速度検出部８１から出力される現在の回転速度と、回転速度記憶部８２に記憶されている過去の回転速度とから回転速度の変化量を算出する。変化量算出部８３は、本発明における算出手段を構成している。回転異常判定部８４は、変化量算出部８３から出力される回転速度の変化量と、予め設定されてメモリ６に記憶されている所定の閾値とを比較した結果に基づいて、図４で示したような窓１００に物体Ｚを挟み込んだことにより発生するモータ３の回転異常の有無を判定し、該判定結果に応じた制御信号を図１のモータ駆動回路２へ出力する。回転異常判定部８４は、本発明における判定手段を構成している。
【００３０】
図６は、パワーウィンドウ装置の基本的な動作を示したフローチャートである。ステップＳ１で、図２の操作スイッチ１がマニュアル閉ＭＣの位置にあれば、マニュアル閉動作の処理が行われ（ステップＳ２）、ステップＳ３で、操作スイッチ１がオート閉ＡＣの位置にあれば、オート閉動作の処理が行われ（ステップＳ４）、ステップＳ５で、操作スイッチ１がマニュアル開ＭＯの位置にあれば、マニュアル開動作の処理が行われ（ステップＳ６）、ステップＳ７で、操作スイッチ１がオート開ＡＯの位置にあれば、オート開動作の処理が行われる（ステップＳ８）。また、ステップＳ７で、操作スイッチ１がオート開ＡＯの位置になければ、操作スイッチ１は中立Ｎの位置にあって、何も処理を行わない。ステップＳ２、Ｓ４、Ｓ６、Ｓ８の詳細については、以下に順を追って説明する。
【００３１】
図７は、図６のステップＳ２、後述する図９のステップＳ５８、および図１０のステップＳ６５におけるマニュアル閉動作の詳細手順を示すフローチャートである。各手順は、制御部８を構成するＣＰＵにより実行され、後述するフローチャートについても同様である。最初に、マニュアル閉動作により窓１００が完全に閉じたか否かをロータリエンコーダ４の出力に基づいて判定する（ステップＳ１１）。窓１００が完全に閉じれば（ステップＳ１１：ＹＥＳ）処理を終了し、完全に閉じてなければ（ステップＳ１１：ＮＯ）、モータ駆動回路２から正転信号を出力してモータ３を正転させ、窓１００を閉じる（ステップＳ１２）。続いて、窓１００が完全に閉じたか否かを判定し（ステップＳ１３）、完全に閉じれば（ステップＳ１３：ＹＥＳ）処理を終了し、完全に閉じてなければ（ステップＳ１３：ＮＯ）、モータ３の現在の回転速度と回転速度記憶部８２に記憶されている過去の回転速度とに基づいて、モータ３の回転速度の変化量の算出処理を行う（ステップＳ１４）。この算出処理の詳細については後述する。
【００３２】
ステップＳ１４でモータ３の回転速度の変化量を算出すると、該変化量と回転速度記憶部８２に記憶されている所定の閾値との比較結果に基づいて、物体Ｚの挟み込みに起因したモータ３の回転異常の有無を判定する（ステップＳ１５）。ここで、図４で示したような窓１００への物体Ｚの挟み込みが発生して、モータ３の回転速度の変化量が閾値を上回った場合は、モータ３の回転異常有りと判定し（ステップＳ１５：ＹＥＳ）、窓１００への異物の挟み込みが発生したと判断する（ステップＳ１６）。そして、モータ駆動回路２から逆転信号を出力してモータ３を逆転させ、窓１００を開く（ステップＳ１７）。これによって、挟み込みが解除される。そして、窓１００が完全に開いたか否かを判定し（ステップＳ１８）、完全に開けば（ステップＳ１８：ＹＥＳ）処理を終了し、完全に開いてなければ（ステップＳ１８：ＮＯ）、ステップＳ１７へ戻ってモータ３の逆転を継続する。
【００３３】
ステップＳ１５で、窓１００への物体Ｚの挟み込みが発生しておらず、モータ３の回転速度の変化量が閾値を上回っていない場合は、モータ３の回転異常無しと判定する（ステップＳ１５：ＮＯ）。そして引き続き、操作スイッチ１がマニュアル閉ＭＣの位置にあるか否かを判定し（ステップＳ１９）、操作スイッチ１がマニュアル閉ＭＣの位置にあれば（ステップＳ１９：ＹＥＳ）、ステップＳ１２へ戻ってモータ３の正転を継続し、マニュアル閉ＭＣの位置になければ（ステップＳ１９：ＮＯ）、オート閉ＡＣの位置にあるか否かを判定する（ステップＳ２０）。操作スイッチ１がオート閉ＡＣの位置にあれば（ステップＳ２０：ＹＥＳ）、後述のオート閉処理に移り（ステップＳ２１）、オート閉ＡＣの位置になければ（ステップＳ２０：ＮＯ）、マニュアル開ＭＯの位置にあるか否かを判定する（ステップＳ２２）。操作スイッチ１がマニュアル開ＭＯの位置にあれば（ステップＳ２２：ＹＥＳ）、後述のマニュアル開処理に移り（ステップＳ２３）、マニュアル開ＭＯの位置になければ（ステップＳ２２：ＮＯ）、オート開ＡＯの位置にあるか否かを判定する（ステップＳ２４）。操作スイッチ１がオート開ＡＯの位置にあれば（ステップＳ２４：ＹＥＳ）、後述のオート開処理に移り（ステップＳ２５）、操作スイッチ１がオート開ＡＯの位置になければ（ステップＳ２４：ＮＯ）、何も処理せずに終了する。
【００３４】
図８は、図６のステップＳ４、図７のステップＳ２１、後述する図９のステップＳ６０、および図１０のステップＳ６７におけるオート閉動作の詳細手順を示すフローチャートである。最初に、オート閉動作により窓１００が完全に閉じたか否かをロータリエンコーダ４の出力に基づいて判定する（ステップＳ３１）。窓１００が完全に閉じれば（ステップＳ３１：ＹＥＳ）処理を終了し、完全に閉じてなければ（ステップＳ３１：ＮＯ）、モータ駆動回路２へ正転信号を出力してモータ３を正転させ、窓１００を閉じる（ステップＳ３２）。続いて、窓１００が完全に閉じたか否かを判定し（ステップＳ３３）、完全に閉じれば（ステップＳ３３：ＹＥＳ）処理を終了し、完全に閉じてなければ（ステップＳ３３：ＮＯ）、モータ３の現在の回転速度と回転速度記憶部８２に記憶されている過去の回転速度とに基づいて、モータ３の回転速度の変化量の算出処理を行う（ステップＳ３４）。この算出処理の詳細についても後述する。
【００３５】
ステップＳ３４でモータ３の回転速度の変化量を算出すると、該変化量とメモリ６に記憶されている所定の閾値との比較結果に基づいて、物体Ｚの挟み込みに起因したモータ３の回転異常の有無を判定する（ステップＳ３５）。ここで、窓１００への物体Ｚの挟み込みが発生して、モータ３の回転速度の変化量が閾値を上回った場合は、モータ３の回転異常有りと判定し（ステップＳ３５：ＹＥＳ）、窓１００への異物の挟み込みが発生したと判断する（ステップＳ３６）。そして、モータ駆動回路２から逆転信号を出力してモータ３を逆転させ、窓１００を開く（ステップＳ３７）。これによって、挟み込みが解除される。そして、窓１００が完全に開いたか否かを判定し（ステップＳ３８）、完全に開けば（ステップＳ３８：ＹＥＳ）処理を終了し、完全に開いてなければ（ステップＳ３８：ＮＯ）、ステップＳ３７へ戻ってモータ３の逆転を継続する。
【００３６】
ステップＳ３５で、窓１００への物体Ｚの挟み込みが発生しておらず、モータ３の回転速度の変化量が閾値を上回っていない場合は、モータ３の回転異常無しと判定する（ステップＳ３５：ＮＯ）。そして引き続き、操作スイッチ１がマニュアル開ＭＯの位置にあれば（ステップＳ３９：ＹＥＳ）、後述のマニュアル開処理に移り（ステップＳ４０）、マニュアル開ＭＯの位置になければ（ステップＳ３９：ＮＯ）、オート開ＡＯの位置にあるか否かを判定する（ステップＳ４１）。操作スイッチ１がオート開ＡＯの位置にあれば（ステップＳ４１：ＹＥＳ）、後述のオート開処理に移り（ステップＳ４２）、操作スイッチ１がオート開ＡＯの位置になければ（ステップＳ４１：ＮＯ）、ステップＳ３２へ戻ってモータ３の正転を継続する。
【００３７】
図９は、図６のステップＳ６、図７のステップＳ２３、および図８のステップＳ４０におけるマニュアル開処理の詳細手順を表したフローチャートである。本図は、本発明の特徴とするところではないが、以下に一通り説明しておく。最初に、マニュアル開動作により窓１００が完全に開いたか否かをロータリエンコーダ４の出力に基づいて判定する（ステップＳ５１）。窓１００が完全に開けば（ステップＳ５１：ＹＥＳ）処理を終了し、完全に開いてなければ（ステップＳ５１：ＮＯ）、モータ駆動回路２から逆転信号を出力してモータ３を逆転させ、窓１００を開ける（ステップＳ５２）。続いて、窓１００が完全に開いたか否かを判定し（ステップＳ５３）、完全に開けば（ステップＳ５３：ＹＥＳ）処理を終了し、完全に開いてなければ（ステップＳ５３：ＮＯ）、操作スイッチ１がマニュアル開ＭＯの位置にあるか否かを判定する（ステップＳ５４）。操作スイッチ１がマニュアル開ＭＯの位置にあれば（ステップＳ５４：ＹＥＳ）、ステップＳ５２へ戻ってモータ３の逆転を継続し、マニュアル開ＭＯの位置になければ（ステップＳ５４：ＮＯ）、オート開ＡＯの位置にあるか否かを判定する（ステップＳ５５）。操作スイッチ１がオート開ＡＯの位置にあれば（ステップＳ５５：ＹＥＳ）、後述のオート開処理に移り（ステップＳ５６）、オート開ＡＯの位置になければ（ステップＳ５５：ＮＯ）、マニュアル閉ＭＣの位置にあるか否かを判定する（ステップＳ５７）。操作スイッチ１がマニュアル閉ＭＣの位置にあれば（ステップＳ５７：ＹＥＳ）、前述のマニュアル閉処理に移り（ステップＳ５８）、マニュアル閉ＭＣの位置になければ（ステップＳ５７：ＮＯ）、オート閉ＡＣの位置にあるか否かを判定する（ステップＳ５９）。操作スイッチ１がオート閉ＡＣの位置にあれば（ステップＳ５９：ＹＥＳ）、前述のオート閉処理に移り（ステップＳ６０）、操作スイッチ１がオート閉ＡＣの位置になければ（ステップＳ５９：ＮＯ）、何も処理せずに終了する。
【００３８】
図１０は、図６のステップＳ８、図７のステップＳ２５、図８のステップＳ４２、および図９のステップＳ５６におけるオート開処理の詳細手順を表したフローチャートである。本図も、本発明の特徴とするところではないが、以下に一通り説明しておく。最初に、オート開動作により窓１００が完全に開いたか否かをロータリエンコーダ４の出力に基づいて判定する（ステップＳ６１）。窓１００が完全に開けば（ステップＳ６１：ＹＥＳ）処理を終了し、完全に開いてなければ（ステップＳ６１：ＮＯ）、モータ駆動回路２から逆転信号を出力してモータ３を逆転させ、窓１００を開ける（ステップＳ６２）。続いて、窓１００が完全に開いたか否かを判定し（ステップＳ６３）、完全に開けば（ステップＳ６３：ＹＥＳ）処理を終了し、完全に開いてなければ（ステップＳ６３：ＮＯ）、操作スイッチ１がマニュアル閉ＭＣの位置にあるか否かを判定する（ステップＳ６４）。操作スイッチ１がマニュアル閉ＭＣの位置にあれば（ステップＳ６４：ＹＥＳ）、前述のマニュアル閉処理に移り（ステップＳ６５）、マニュアル閉ＭＣの位置になければ（ステップＳ６４：ＮＯ）、オート閉ＡＣの位置にあるか否かを判定する（ステップＳ６６）。操作スイッチ１がオート閉ＡＣの位置にあれば（ステップＳ６６：ＹＥＳ）、前述のオート閉処理に移り（ステップＳ６７）、操作スイッチ１がオート閉ＡＣの位置になければ（ステップＳ６６：ＮＯ）、ステップＳ６２へ戻って、モータ３の逆転を継続する。
【００３９】
図１１は、第１実施形態における、図７のステップＳ１４および図８のステップＳ３４でのモータ３の回転速度の変化量の算出処理の詳細手順を表したフローチャートである。最初に、回転速度検出部８１によりモータ３の現在の回転速度ｆ（０）を取得する（ステップＳ７１）。次に、現在の回転速度ｆ（０）の所定回数前に検出した回転速度ｆ（ｘ）を回転速度記憶部８２から読み出す（ステップＳ７２）。「ｘ」は過去の任意の回転速度検出時刻である。また次に、過去の回転速度ｆ（ｙ）を回転速度記憶部８２から読み出す（ステップＳ７３）。「ｙ」も過去の任意の回転速度検出時刻である。上記の「ｘ」と「ｙ」との差は、モータ３の回転速度の脈動の周期と異なることが好ましい。「ｘ」と現在時刻「０」との差は、モータ３の回転速度の脈動の周期の整数倍にならない方がよい。モータ３の回転速度の脈動の影響を受けないようにするため、「ｘ」と現在時刻「０」との差は、脈動の周期の２分の１になるようにｘを決定することが好ましい。さらに、過去の回転速度ｆ（ｙ）の所定回数前に検出した回転速度ｆ（ｙ＋ｘ）を回転速度記憶部８２から読み出す（ステップＳ７４）。「ｙ＋ｘ」は、上記の「ｙ」より過去の任意の回転速度検出時刻である。「ｘ」および「ｙ」は、モータ３の特性を予め測定することによって、決定することができる。そして、変化量算出部８３で、上記の現在の回転速度ｆ（０）とその所定回数前に検出された回転速度ｆ（ｘ）との和と、上記の過去の回転速度ｆ（ｙ）とその所定回数前に検出された回転速度ｆ（ｙ＋ｘ）との和との差分を回転速度の変化量ΔＦ（０）として算出する（ステップＳ７５）。
ΔＦ（０）＝｛ｆ（ｙ）＋ｆ（ｙ＋ｘ）｝−｛ｆ（０）＋ｆ（ｘ）｝
【００４０】
図１２は、第１実施形態における回転速度検出部８１から出力されるモータ３のフィルタ処理が施されていない生の回転速度と、上記のようにして算出した回転速度の変化量の時間的変化を示す図である。縦軸に回転速度および変化量を示し、横軸に回転速度検出時刻を示している。中央の右側の破線は、図４等に示した窓１００への物体Ｚの挟み込みによるモータ３の回転異常が発生した開始点Ｑの延長線である。左側の破線は、Ｑ点より前の任意の点Ｐの延長線である。Ｑ点より左側に示すように、生回転速度は、図４等のピニオン１０９の中心軸のずれ等のような機械的要因によって、加速および減速を繰り返して、上下に大きく脈動している。回転速度の変化量については、例えばＰ点では、この時の生回転速度を現在の回転速度ｆ（０）とし、該現在の回転速度ｆ（０）とその８回前の回転速度ｆ（８）との和と、現在の回転速度ｆ（０）の１７回前の過去の回転速度ｆ（１７）とその８回前に検出された回転速度ｆ（２５）との和との差分を変化量ΔＦ（０）として算出している。ここでは、ｘ＝８、ｙ＝１７としている。このように算出すると、Ｑ点より左側に示すように、回転速度の変化量については、脈動の程度が生回転速度より小さくなる。また、Ｑ点より右側に示すように、回転速度の変化量は、挟み込みにより発生したモータ３の回転異常、即ち回転速度の低下に応じて大きく上昇する。
【００４１】
図１１のステップＳ７５で回転速度の変化量を算出すると、該算出処理を終了し、図７のステップＳ１５または図８のステップＳ３５へ移行して、前述したように変化量ΔＦ（０）と閾値との比較結果に基づいてモータ３の回転異常の有無を判定する。
【００４２】
上述した第１実施形態のように、モータ３の現在の回転速度ｆ（０）を含む２つの回転速度ｆ（０）、ｆ（ｘ）の和と、過去の２つの回転速度ｆ（ｙ）、ｆ（ｙ＋ｘ）の和との差分を算出して回転速度の変化量ΔＦ（０）とすることで、ピニオン１０９の軸ずれ等のような機械的要因によりモータ３の回転速度が脈動していても、該変化量については脈動の程度を小さく抑えることができる。このため、該変化量と閾値とを比較した結果に基づいてモータ３の回転異常の有無を判定することで、図１２のＱ点より前では、物体Ｚの挟み込みによる回転異常が発生していないにもかかわらず、発生したと誤判定するのを防止することができ、Ｑ点より後では、物体Ｚの挟み込みによる回転異常の発生を確実に検出することができる。つまり、モータ３の回転速度の脈動の影響を受けずに、モータ３の回転異常の有無を検出することが可能となる。
【００４３】
図１３は、本発明の第２実施形態における回転異常検出ブロックを示している。第２実施形態は、モータ３の回転速度に複数の脈動成分が含まれている場合であっても、その脈動の影響を抑制し、モータ３の回転異常検出を行うようにしたものである。図中、図５と同一部分には同一符号を付してある。図５においては、回転速度検出部８１から出力される回転速度と回転速度記憶部８２から読み出した回転速度とを、変化量算出部８３へ直接入力するようにしていたが、図１３においては、両回転速度を一旦フィルタ処理部８５へ入力してから変化量算出部８３へ、またはフィルタ後回転速度記憶部８６を介して変化量算出部８３へ入力するようにしている。
【００４４】
フィルタ処理部８５は、回転速度検出部８１から出力される現在の回転速度と、回転速度記憶部８２に記憶されている過去の回転速度とから、後述するように外乱を取り除く。フィルタ処理部８５は、本発明におけるフィルタ手段を構成している。フィルタ後回転速度記憶部８６は、フィルタ処理部８５から出力されるフィルタ処理後の回転速度を順次記憶する。つまり、フィルタ後回転速度記憶部８６には、所定の周期で検出した回転速度から外乱が取り除かれた複数の回転速度が順番に記憶される。このフィルタ後回転速度記憶部８６も、回転速度記憶部８２と同様に、メモリ６内の所定領域に設けられるが、独立したメモリとして制御部８内に設けてもよい。回転速度記憶部８２は本発明における第１の記憶手段を構成し、フィルタ後回転速度記憶部８６は本発明における第２の記憶手段を構成している。本第２実施形態では、変化量算出部８３は、フィルタ処理部８５から出力される現在のフィルタ処理後の回転速度と、フィルタ後回転速度記憶部８６に記憶されている過去のフィルタ処理後の回転速度とから回転速度の変化量を算出する。回転速度検出部８１、回転速度記憶部８２、および回転異常判定部８４は、図５で説明したのと同様の処理を行う。
【００４５】
図１４は、第２実施形態におけるフィルタ処理の詳細手順を表したフローチャートである。本フィルタ処理は、図７のマニュアル閉処理および図８のオート閉処理の開始と同時または直後に開始され、終了と同時または直後に終了される。最初に、回転速度検出部８１によりモータ３の現在の回転速度ｆ（０）を取得する（ステップＳ８１）。次に、過去の回転速度ｆ（Ｔ０）を回転速度記憶部８２の所定領域から読み出す（ステップＳ８２）。「Ｔ０」は過去の任意の回転速度検出時刻である。「Ｔ０」は、フィルタで除去したいモータ３の回転速度の脈動の周期の２分の１にするのが好ましい。そして、フィルタ処理部８５で、上記の現在の回転速度ｆ（０）と過去の回転速度ｆ（Ｔ０）の平均値を、フィルタ１回後の回転速度Ｆ１（０）として算出して、フィルタ後回転速度記憶部８６に記憶する（ステップＳ８３）。
Ｆ１（０）＝｛ｆ（０）＋ｆ（Ｔ０）｝／２
【００４６】
ステップＳ８３の後、フィルタ１回後の回転速度Ｆ１（０）の算出回数が所定回数以上か否か、即ちフィルタ後回転速度記憶部８６にフィルタ１回後の回転速度が所定数記憶されているか否かを判定する（ステップＳ８４）。ここで、フィルタ１回後の回転速度Ｆ１（０）の算出回数が所定回数未満であれば（ステップＳ８４：ＮＯ）、ステップＳ８１へ戻ってステップＳ８４までの処理を繰り返す。そしてしばらくした後、ステップＳ８４でフィルタ１回後の回転速度Ｆ１（０）の算出回数が所定回数以上になると（ステップＳ８４：ＹＥＳ）、現在のフィルタ１回後の回転速度Ｆ１（０）、即ち直前のステップＳ８３で算出したフィルタ１回後の回転速度と、フィルタ後回転速度記憶部８６から読み出した過去のフィルタ１回後の回転速度Ｆ１（Ｔ１）の平均値を、フィルタ２回後の回転速度Ｆ２（０）として算出して、フィルタ後回転速度記憶部８６に記憶する（ステップＳ８５）。
Ｆ２（０）＝｛Ｆ１（０）＋Ｆ１（Ｔ１）｝／２
【００４７】
ステップＳ８５の後、フィルタ２回後の回転速度Ｆ２（０）を算出して記憶したのと同様にして、フィルタ３回後の回転速度Ｆ３（０）からフィルタｎ回後の回転速度Ｆｎ（０）までを順次算出して記憶する（ステップＳ８６）。つまり、ステップＳ８４、Ｓ８５と同様の処理を各フィルタ処理回数に応じて繰り返し行う。より詳しくは、フィルタｎ−１回後の回転速度Ｆｎ−１（０）の算出回数が所定回数以上になると、現在のフィルタｎ−１回後の回転速度Ｆｎ−１（０）と、フィルタ後回転速度記憶部８６から読み出した過去のフィルタｎ−１回後の回転速度Ｆｎ−１（Ｔｎ−１）の平均値を、フィルタｎ回後の回転速度Ｆｎ（０）として算出して、フィルタ後回転速度記憶部８６に記憶する。なお、時刻「Ｔ０〜Ｔｎ−１」は、モータ３の特性を予め測定することにより決定する。具体的には、モータ３の複数の脈動周期を測定する。それぞれの脈動周期に応じて、時刻「Ｔ０〜Ｔｎ−１」を決定する。時刻「Ｔ０〜Ｔｎ−１」は、それぞれの脈動周期の２分の１の長さに設定することにより、脈動の影響を十分に抑制することができる。
Ｆｎ（０）＝｛Ｆｎ−１（０）＋Ｆｎ−１（Ｔｎ−１）｝／２
【００４８】
ステップＳ８６の後は、ステップＳ８１へ戻って、マニュアル閉処理およびオート閉処理が終了するまでステップＳ８１〜Ｓ８６の処理を繰り返す。これにより、フィルタ後回転速度記憶部８６には、フィルタ１回後からフィルタｎ回後までの回転速度Ｆ１（０）〜Ｆｎ（０）が記憶された状態となる。フィルタ処理を施す回数ｎは、モータ３の回転速度に含まれている脈動成分の数に基づいて決定することが好ましい。例えば、モータ３の回転速度に３つの脈動成分が含まれている場合には、フィルタ処理を３回施すことにより、３つの脈動成分の影響を抑制することができる。
【００４９】
図１５は、第２実施形態における、図７のステップＳ１４および図８のステップＳ３４でのモータ３の回転速度の変化量の算出処理の詳細手順を表したフローチャートである。最初に、フィルタ処理部８５により現在のフィルタｎ回後の回転速度Ｆｎ（０）を取得する（ステップＳ９１）。次に、過去のフィルタｎ回後の回転速度Ｆｎ（ｙ）をフィルタ後回転速度記憶部８６から読み出す（ステップＳ９２）。そして、変化量算出部８３で、上記の現在のフィルタｎ回後の回転速度Ｆｎ（０）と過去のフィルタｎ回後の回転速度Ｆｎ（ｙ）との差分を回転速度の変化量ΔＦ（０）として算出する（ステップＳ９３）。
ΔＦ（０）＝Ｆｎ（ｙ）−Ｆｎ（０）
【００５０】
図１６は、第２実施形態における回転速度検出部８１から出力されるモータ３の生の回転速度と、上記のようにして算出したフィルタ処理後（１回後と２回後）の回転速度と、回転速度の変化量の時間的変化を示す図である。挟み込みによるモータ３の回転異常の発生開始点Ｑより左側に示すように、生回転速度は、機械的要因による外乱によって加速および減速を繰り返して、上下に大きく脈動している。フィルタ１回後の回転速度については、例えばＰ１点では、この時の生回転速度を現在の回転速度ｆ（０）とし、該現在の回転速度ｆ（０）とその７回前の過去の回転速度ｆ（７）との平均値を、フィルタ１回後の回転速度Ｆ１（０）として算出している。また、フィルタ２回後の回転速度については、例えばＰ１点で、現在のフィルタ１回後の回転速度Ｆ１（０）とその５回前の過去のフィルタ１回後の回転速度Ｆ１（５）との平均値を、フィルタ２回後の回転速度Ｆ２（０）として算出している。さらに、回転速度の変化量については、フィルタ２回後の回転速度をフィルタｎ回後の回転速度として、例えばＰ１点で、現在のフィルタ２回後の回転速度Ｆ２（０）とその１７回前の過去のフィルタ２回後の回転速度Ｆ２（１７）との差分を、変化量ΔＦ（０）として算出している。なお、図１６は簡略に示されているため、生回転速度に関して２つ目の脈動成分が明確に図示されていない。
【００５１】
このように算出すると、Ｑ点より左側に示すように、フィルタ後の回転速度については、脈動の程度が生回転速度より小さくなり、かつフィルタ回数の増加に連れてより小さくなる。回転速度の変化量についても、脈動の程度が生回転速度より小さくなる。また、Ｑ点より右側に示すように、回転速度の変化量は、挟み込みにより発生したモータ３の回転異常（回転速度の低下）に応じて大きく上昇する。
【００５２】
図１５のステップＳ９３で回転速度の変化量を算出した後は、該算出処理を終了し、図７のステップＳ１５または図８のステップＳ３５へ移行して、前述したように変化量ΔＦ（０）と閾値との比較結果に基づいてモータ３の回転異常の有無を判定する。
【００５３】
上述した第２実施形態のように、モータ３の現在の回転速度ｆ（０）を含む２つの回転速度ｆ（０）、ｆ（Ｔ０）の平均値を算出してフィルタ後の回転速度Ｆ１（０）とし、さらに該回転速度Ｆ１（０）に基づいて新たなフィルタ複数回後の回転速度Ｆ２（０）〜Ｆｎ（０）を順次算出し、その後現在と過去のフィルタｎ回後の回転速度Ｆｎ（０）、Ｆｎ（ｙ）の差分を算出して回転速度の変化量ΔＦ（０）とすることで、外乱によりモータ３の回転速度が脈動していても、生回転速度から外乱を複数回に渡って取り除いて、該変化量について脈動の程度をより一層小さく抑えることができる。このため、該変化量と閾値とを比較した結果に基づいてモータ３の回転異常の有無を判定することで、図１６のＱ点より前では、物体Ｚの挟み込みによる回転異常が発生していないにもかかわらず、発生したと誤判定するのを防止することができ、Ｑ点より後では、物体Ｚの挟み込みによる回転異常の発生を確実に検出することができる。つまり、モータ３の回転速度の脈動の影響を受けずに、モータ３の回転異常の有無を正確に検出することが可能となる。
【００５４】
図１７は、本発明の第３実施形態におけるフィルタ処理の詳細手順を表したフローチャートである。本フィルタ処理は、図７のマニュアル閉処理および図８のオート閉処理の開始と同時または直後に開始され、終了と同時または直後に終了される。なお、第３実施形態における回転異常検出ブロックは、図１３と同一構成であるため、図１３を第３実施形態として引用する。また、第３実施形態におけるモータ３の回転速度の変化量の算出処理は、図１５の手順と同様であるため、図１５も第３実施形態として引用する。
【００５５】
図１７において、最初に、回転速度検出部８１によりモータ３の現在の回転速度ｆ（０）を取得する（ステップＳ１０１）。次に、過去の回転速度ｆ（Ｔ０）を回転速度記憶部８２から読み出す（ステップＳ１０２）。また次に、現在の１回前から所定回数前までに検出した回転速度ｆ（１）〜ｆ（α）を全て回転速度記憶部８２から読み出す（ステップＳ１０３）。「１」は現在の１回前の回転速度検出時刻である。「α」は過去の回転速度検出時刻である。「α」と上記「Ｔ０」との差は、上記の「Ｔ０」と現在時刻との差の整数倍で、「Ｔ０」より大きい方がよい。これは、脈動の周期以上の時間における平均値を算出したいからである。特に、「Ｔ０」と現在時刻との差の２倍の整数倍にするのが好ましい。そして、フィルタ処理部８５で、上記の現在の回転速度ｆ（０）と過去の回転速度ｆ（Ｔ０）の和と、現在から所定回数前までの回転速度ｆ（０）〜ｆ（α）の平均値との差分を、フィルタ１回後の回転速度Ｆ１（０）として算出し、フィルタ後回転速度記憶部８６に記憶する（ステップＳ１０４）。
Ｆ１（０）＝｛ｆ（０）＋ｆ（Ｔ０）｝−平均値｛ｆ（０）〜ｆ（α）｝
平均値｛ｆ（０）〜ｆ（α）｝＝｛ｆ（０）＋ｆ（１）＋・・・＋ｆ（α）｝／（α＋１）
【００５６】
ステップＳ１０４の後、フィルタ１回後の回転速度Ｆ１（０）の算出回数が所定回数以上か否かを判定し（ステップＳ１０５）、該算出回数が所定回数未満であれば（ステップＳ１０５：ＮＯ）、ステップＳ１０１へ戻ってステップＳ１０５までの処理を繰り返す。そしてしばらくした後、ステップＳ１０５でフィルタ１回後の回転速度Ｆ１（０）の算出回数が所定回数以上になると（ステップＳ１０５：ＹＥＳ）、現在のフィルタ１回後の回転速度Ｆ１（０）、即ち直前のステップＳ１０４で算出したフィルタ１回後の回転速度と、フィルタ後回転速度記憶部８６から読み出した過去のフィルタ１回後の回転速度Ｆ１（Ｔ１）の和と、上記の平均値｛ｆ（０）〜ｆ（α）｝との差分を、フィルタ２回後の回転速度Ｆ２（０）として算出し、フィルタ後回転速度記憶部８６に記憶する（ステップＳ１０６）。
Ｆ２（０）＝｛Ｆ１（０）＋Ｆ１（Ｔ１）｝−平均値｛ｆ（０）〜ｆ（α）｝
【００５７】
ステップＳ１０６の後、フィルタ２回後の回転速度Ｆ２（０）を算出して記憶したのと同様にして、フィルタ３回後の回転速度Ｆ３（０）からフィルタｎ回後の回転速度Ｆｎ（０）までを順次算出して記憶する（ステップＳ１０７）。つまり、ステップＳ１０４、Ｓ１０５と同様の処理を各フィルタ処理回数に応じて繰り返し行う。より詳しくは、フィルタｎ−１回後の回転速度Ｆｎ−１（０）の算出回数が所定回数以上になると、現在のフィルタｎ−１回後の回転速度Ｆｎ−１（０）と、フィルタ後回転速度記憶部８６から読み出した過去のフィルタｎ−１回後の回転速度Ｆｎ−１（Ｔｎ−１）の和と、上記の平均値｛ｆ（０）〜ｆ（α）｝との差分を、フィルタｎ回後の回転速度Ｆｎ（０）として算出し、フィルタ後回転速度記憶部８６に記憶する。
Ｆｎ（０）＝｛Ｆｎ−１（０）＋Ｆｎ−１（Ｔｎ−１）｝−平均値｛ｆ（０）〜ｆ（α）｝
【００５８】
ステップＳ１０７の後は、ステップＳ１０１へ戻って、マニュアル閉処理およびオート閉処理が終了するまでステップＳ１０１〜Ｓ１０７の処理を繰り返す。これにより、フィルタ後回転速度記憶部８６には、フィルタ１回後からフィルタｎ回後までの回転速度Ｆ１（０）〜Ｆｎ（０）が記憶された状態となる。
【００５９】
さらにその後、図７のステップＳ１４および図８のステップＳ３４におけるモータ３の回転速度の変化量の算出処理を、前述の図１５の手順に基づいて実行する。この場合、図１５のステップＳ９３では、上記図１７のフィルタ処理で算出した現在のフィルタｎ回後の回転速度Ｆｎ（０）と過去のフィルタｎ回後の回転速度Ｆｎ（ｙ）の差分を、回転速度の変化量ΔＦ（０）として算出する。
【００６０】
図１８は、第３実施形態における回転速度検出部８１から出力されるモータ３の生の回転速度と、上記のようにして算出したフィルタ処理後（１回後と２回後）の回転速度と、回転速度の変化量の時間的変化を示す図である。Ｑ点より左側に示すように、生回転速度は外乱によって上下に大きく脈動している。なお、図１８は簡略に示されているため、生回転速度に関して２つ目以降の脈動成分は正確に図示されていない。フィルタ１回後の回転速度については、例えばＰ２点では、この時の生回転速度を現在の回転速度ｆ（０）とし、該現在の回転速度ｆ（０）とその７回前の過去の回転速度ｆ（７）の和と、現在から１４回前までの全ての回転速度ｆ（０）〜ｆ（１４）の平均値との差分を、フィルタ１回後の回転速度Ｆ１（０）として算出している。また、フィルタ２回後の回転速度については、例えばＰ２点で、現在のフィルタ１回後の回転速度Ｆ１（０）とその５回前の過去のフィルタ１回後の回転速度Ｆ１（５）の和と、上記の回転速度ｆ（０）〜ｆ（１４）の平均値との差分を、フィルタ２回後の回転速度Ｆ２（０）として算出している。さらに、回転速度の変化量については、フィルタ２回後の回転速度をフィルタｎ回後の回転速度として、例えばＰ２点で、現在のフィルタ２回後の回転速度Ｆ２（０）とその１７回前の過去のフィルタ２回後の回転速度Ｆ２（１７）との差分を、変化量ΔＦ（０）として算出している。
【００６１】
このように算出すると、Ｑ点より左側に示すように、フィルタ後の回転速度については、脈動の程度が生回転速度より小さくなり、かつフィルタ回数の増加に連れてより小さくなる。回転速度の変化量についても、脈動の程度が生回転速度より小さくなる。また、Ｑ点より右側に示すように、回転速度の変化量は、挟み込みにより発生したモータ３の回転異常（回転速度の低下）に応じて大きく上昇する。
【００６２】
図１５のステップＳ９３で上述したように回転速度の変化量を算出した後は、該算出処理を終了し、図７のステップＳ１５または図８のステップＳ３５へ移行して、前述したように変化量ΔＦ（０）と閾値との比較結果に基づいてモータ３の回転異常の有無を判定する。
【００６３】
上述した第３実施形態のように、モータ３の現在の回転速度ｆ（０）を含む２つの回転速度ｆ（０）、ｆ（Ｔ０）の和から、回転速度ｆ（０）〜ｆ（α）の平均値を引いてフィルタ後の回転速度Ｆ１（０）とし、さらに該回転速度Ｆ１（０）に基づいて新たなフィルタ複数回後の回転速度Ｆ２（０）〜Ｆｎ（０）を順次算出し、その後現在と過去のフィルタｎ回後の回転速度Ｆｎ（０）、Ｆｎ（ｙ）の差分を算出して回転速度の変化量ΔＦ（０）とすることで、モータ３の生回転速度から外乱を複数回に渡って取り除いて、該変化量について脈動の程度をより一層小さく抑えることができる。このため、該変化量と閾値とを比較した結果に基づいてモータ３の回転異常の有無を判定することで、図１８のＱ点より前では、物体Ｚの挟み込みによる回転異常が発生していないにもかかわらず、発生したと誤判定するのを防止することができ、Ｑ点より後では、物体Ｚの挟み込みによる回転異常の発生を確実に検出することができる。つまり、モータ３の回転速度の脈動の影響を受けずに、モータ３の回転異常の有無を正確に検出することが可能となる。
【００６４】
図１９は、本発明の第４実施形態におけるフィルタ処理の詳細手順を表したフローチャートである。本フィルタ処理は、図７のマニュアル閉処理および図８のオート閉処理の開始と同時または直後に開始され、終了と同時または直後に終了される。なお、第４実施形態における回転異常検出ブロックは、図１３と同一構成であるため、図１３を第４実施形態として引用する。また、第４実施形態におけるモータ３の回転速度の変化量の算出処理は、図１５の手順と同様であるため、図１５も第４実施形態として引用する。
【００６５】
図１９において、最初に、回転速度検出部８１によりモータ３の現在の回転速度ｆ（０）を取得する（ステップＳ１１１）。次に、過去の回転速度ｆ（ｄ）と、その所定回数前までの回転速度ｆ（ｄ）〜ｆ（α＋ｄ）を全て回転速度記憶部８２から読み出す（ステップＳ１１２）。「ｄ」は、現在の時刻から所定の時間だけ過去にさかのぼったときの時刻を示している。そして、フィルタ処理部８５で、上記の現在の回転速度ｆ（０）と過去の回転速度ｆ（Ｔ０）の和と、現在の回転速度ｆ（０）を含まない上記過去の回転速度ｆ（ｄ）〜ｆ（α＋ｄ）の平均値との差分を、フィルタ１回後の回転速度Ｆ１（０）として算出して、フィルタ後回転速度記憶部８６に記憶する（ステップＳ１１３）。
Ｆ１（０）＝｛ｆ（０）＋ｆ（Ｔ０）｝−平均値｛ｆ（ｄ）〜ｆ（α＋ｄ）｝
平均値｛ｆ（ｄ）〜ｆ（α＋ｄ）｝＝｛ｆ（ｄ）＋ｆ（ｄ＋１）＋・・・＋ｆ（α＋ｄ）｝／（α＋１）
【００６６】
ステップＳ１１３の後、フィルタ１回後の回転速度Ｆ１（０）の算出回数が所定回数以上か否かを判定し（ステップＳ１１４）、該算出回数が所定回数未満であれば（ステップＳ１１４：ＮＯ）、ステップＳ１１１へ戻ってステップＳ１１４までの処理を繰り返す。そしてしばらくした後、ステップＳ１１４でフィルタ１回後の回転速度Ｆ１（０）の算出回数が所定回数以上になると（ステップＳ１１４：ＹＥＳ）、現在のフィルタ１回後の回転速度Ｆ１（０）、即ち直前のステップＳ１１４で算出したフィルタ１回後の回転速度と、フィルタ後回転速度記憶部８６から読み出した過去のフィルタ１回後の回転速度Ｆ１（Ｔ１）の和と、上記の平均値｛ｆ（ｄ）〜ｆ（α＋ｄ）｝との差分を、フィルタ２回後の回転速度Ｆ２（０）として算出して、フィルタ後回転速度記憶部８６に記憶する（ステップＳ１１５）。
Ｆ２（０）＝｛Ｆ１（０）＋Ｆ１（Ｔ１）｝−平均値｛ｆ（ｄ）〜ｆ（α＋ｄ）｝
【００６７】
ステップＳ１１５の後、フィルタ２回後の回転速度Ｆ２（０）を算出して記憶したのと同様にして、フィルタ３回後の回転速度Ｆ３（０）からフィルタｎ回後の回転速度Ｆｎ（０）までを順次算出して記憶する（ステップＳ１１６）。つまり、ステップＳ１１３、Ｓ１１４と同様の処理を各フィルタ処理回数に応じて繰り返し行う。より詳しくは、フィルタｎ−１回後の回転速度Ｆｎ−１（０）の算出回数が所定回数以上になると、現在のフィルタｎ−１回後の回転速度Ｆｎ−１（０）と、フィルタ後回転速度記憶部８６から読み出した過去のフィルタｎ−１回後の回転速度Ｆｎ−１（Ｔｎ−１）の和と、上記の平均値｛ｆ（ｄ）〜ｆ（α＋ｄ）｝との差分を、フィルタｎ回後の回転速度Ｆｎ（０）として算出し、フィルタ後回転速度記憶部８６に記憶する。
Ｆｎ（０）＝｛Ｆｎ−１（０）＋Ｆｎ−１（Ｔｎ−１）｝−平均値｛ｆ（ｄ）〜ｆ（α＋ｄ）｝
【００６８】
ステップＳ１１６の後は、ステップＳ１１１へ戻って、マニュアル閉処理およびオート閉処理が終了するまでステップＳ１１１〜Ｓ１１６の処理を繰り返す。これにより、フィルタ後回転速度記憶部８６には、フィルタ１回後からフィルタｎ回後までの回転速度Ｆ１（０）〜Ｆｎ（０）が記憶された状態となる。
【００６９】
さらにその後、図７のステップＳ１４および図８のステップＳ３４におけるモータ３の回転速度の変化量の算出処理を、前述の図１５の手順に基づいて実行する。この場合、図１５のステップＳ９３では、上記図１９のフィルタ処理で算出した現在のフィルタｎ回後の回転速度Ｆｎ（０）と過去のフィルタｎ回後の回転速度Ｆｎ（ｙ）の差分を、回転速度の変化量ΔＦ（０）として算出する。
【００７０】
図２０は、第４実施形態における回転速度検出部８１から出力されるモータ３の生の回転速度と、上記のようにして算出したフィルタ処理後（１回後と２回後）の回転速度と、回転速度の変化量の時間的変化を示す図である。Ｑ点より左側に示すように、生回転速度は外乱によって上下に大きく脈動している。なお、図２０は簡略に示されているため、生回転速度に関して２つ目以降の脈動成分は正確に図示されていない。フィルタ１回後の回転速度については、例えばＰ３点では、この時の生回転速度を現在の回転速度ｆ（０）とし、該現在の回転速度ｆ（０）とその７回前の過去の回転速度ｆ（７）の和と、該過去から１４回前までの全ての回転速度ｆ（７）〜ｆ（２１）の平均値との差分を、フィルタ１回後の回転速度Ｆ１（０）として算出している。また、フィルタ２回後の回転速度については、例えばＰ３点で、現在のフィルタ１回後の回転速度Ｆ１（０）とその５回前の過去のフィルタ１回後の回転速度Ｆ１（５）の和と、上記の回転速度ｆ（７）〜ｆ（２１）の平均値との差分を、フィルタ２回後の回転速度Ｆ２（０）として算出している。さらに、回転速度の変化量については、フィルタ２回後の回転速度をフィルタｎ回後の回転速度として、例えばＰ３点で、現在のフィルタ２回後の回転速度Ｆ２（０）とその１７回前の過去のフィルタ２回後の回転速度Ｆ２（１７）との差分を、変化量ΔＦ（０）として算出している。
【００７１】
このように算出すると、Ｑ点より左側に示すように、フィルタ後の回転速度については、脈動の程度が生回転速度より小さくなり、かつフィルタ回数の増加に連れてより小さくなる。回転速度の変化量についても、脈動の程度が生回転速度より小さくなる。また、Ｑ点より右側に示すように、回転速度の変化量は、挟み込みにより発生したモータ３の回転異常（回転速度の低下）に応じて大きく上昇する。
【００７２】
図１５のステップＳ９３で上述したように回転速度の変化量を算出した後は、該算出処理を終了し、図７のステップＳ１５または図８のステップＳ３５へ移行して、前述したように変化量ΔＦ（０）と閾値との比較結果に基づいてモータ３の回転異常の有無を判定する。
【００７３】
上述した第４実施形態のように、モータ３の現在の回転速度ｆ（０）を含まずに過去の回転速度ｆ（ｄ）〜ｆ（α＋ｄ）の平均値を算出すると、窓１００への物体Ｚの挟み込みによるモータ３の回転異常が発生したとき（図２０のＱ点以降）に、図１９の手順に従ってフィルタ処理後の回転速度Ｆ１（０）〜Ｆｎ（０）を順次算出して、さらに図１５の手順に従って回転速度の変化量ΔＦ（０）を算出することで、該変化量に含まれる上記回転異常に起因した回転速度の低下変動を抑えることなく、機械的要因による外乱に起因した脈動のみを小さく抑えることができる。このため、該変化量と閾値とを比較した結果に基づいてモータ３の回転異常の有無を判定することで、図２０のＱ点より前では、物体Ｚの挟み込みによる回転異常が発生していないにもかかわらず、発生したと誤判定するのを防止することができ、Ｑ点より後では、物体Ｚの挟み込みによる回転異常の発生を確実に検出することができる。つまり、モータ３の回転速度の脈動の影響を受けずに、モータ３の回転異常の有無をより正確に検出することが可能となる。
【００７４】
以上述べた第２〜第４実施形態では、フィルタ１回後の回転速度の算出後に、フィルタ複数回後の回転速度を算出して、最終的に算出したフィルタｎ回後の回転速度から回転速度の変化量を算出した場合を例に挙げたが、本発明はこれのみに限定するものではなく、フィルタ１回後の回転速度から回転速度の変化量を算出するようにしてもよい。
【００７５】
また、以上述べた実施形態では、本発明を車両のドアの窓を開閉制御する装置に適用した場合を例に挙げたが、本発明はこれ以外にも、車両の天井のサンルーフ、車両の後部扉、建物の窓、建物の扉・戸など各種の開閉体を開閉制御する装置に適用することができる。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施形態であるパワーウィンドウ装置の電気的構成を示したブロック図である。
【図２】操作スイッチの一例を示した概略構成図である。
【図３】窓開閉機構の一例を示した図である。
【図４】窓に物体が挟み込まれた状態を示す図である。
【図５】本発明の第１実施形態における回転異常検出ブロックを示す図である。
【図６】パワーウィンドウ装置の基本的な動作を示したフローチャートである。
【図７】マニュアル閉処理の詳細手順を表したフローチャートである。
【図８】オート閉処理の詳細手順を表したフローチャートである。
【図９】マニュアル開処理の詳細手順を表したフローチャートである。
【図１０】オート開処理の詳細手順を表したフローチャートである。
【図１１】本発明の第１実施形態におけるモータの回転速度の変化量の算出処理の詳細手順を表したフローチャートである。
【図１２】本発明の第１実施形態におけるモータの生回転速度と回転速度の変化量の時間的変化を示す図である。
【図１３】本発明の第２実施形態における回転異常検出ブロックを示す図である。
【図１４】本発明の第２実施形態におけるフィルタ処理の詳細手順を表したフローチャートである。
【図１５】本発明の第２実施形態におけるモータの回転速度の変化量の算出処理の詳細手順を表したフローチャートである。
【図１６】本発明の第２実施形態におけるモータの生回転速度とフィルタ後の回転速度と回転速度の変化量の時間的変化を示す図である。
【図１７】本発明の第３実施形態におけるフィルタ処理の詳細手順を表したフローチャートである。
【図１８】本発明の第３実施形態におけるモータの生回転速度とフィルタ後の回転速度と回転速度の変化量の時間的変化を示す図である。
【図１９】本発明の第４実施形態におけるフィルタ処理の詳細手順を表したフローチャートである。
【図２０】本発明の第４実施形態におけるモータの生回転速度とフィルタ後の回転速度と回転速度の変化量の時間的変化を示す図である。
【符号の説明】
【００７７】
３    モータ
４    ロータリエンコーダ
５    パルス検出回路
６    メモリ
８    制御部
８１  回転速度検出部
８２  回転速度記憶部
８３  変化量算出部
８４  回転異常判定部
８５  フィルタ処理部
８６  フィルタ後回転速度記憶部
【図１】
2007060779.tif 000003
【図２】
2007060779.tif 000004
【図３】
2007060779.tif 000005
【図４】
2007060779.tif 000006
【図５】
2007060779.tif 000007
【図６】
2007060779.tif 000008
【図７】
2007060779.tif 000009
【図８】
2007060779.tif 000010
【図９】
2007060779.tif 000011
【図１０】
2007060779.tif 000012
【図１１】
2007060779.tif 000013
【図１２】
2007060779.tif 000014
【図１３】
2007060779.tif 000015
【図１４】
2007060779.tif 000016
【図１５】
2007060779.tif 000017
【図１６】
2007060779.tif 000018
【図１７】
2007060779.tif 000019
【図１８】
2007060779.tif 000020
【図１９】
2007060779.tif 000021
【図２０】
2007060779.tif 000022