(57)【要約】【課題】電動モーターで開閉する窓の開閉位置を、簡単な構造で且つ精度良く検出する。【解決手段】電動モーターが窓を駆動している間は、窓が所定の移動速度で移動しているものとして、窓の開閉位置を算出する。また、窓が全閉状態になったことを検知したら、算出していた窓の開閉位置を、全閉位置に初期化する。あるいは、窓が全開状態になったことを検知した場合には、算出していた窓の開閉位置を、全開位置に初期化する。こうすれば、窓の移動速度を仮定して開閉位置を算出しても、誤差が蓄積されることがないので、窓の開閉位置を十分な精度で算出することが可能となる。【選択図】図５
2019210784.tif 000002
【特許請求の範囲】
【請求項１】
車両（１）に搭載されて、電動モーター（２０）で開閉される窓（１０）の開閉位置を検出する窓開閉位置検出装置（１００、１５０）であって、
前記電動モーターの駆動負荷を検出する駆動負荷検出部（１０１）と、
前記電動モーターによる前記窓の駆動方向を検出する駆動方向検出部（１０２）と、
前記窓の駆動方向が閉方向の時に前記駆動負荷が所定の全閉閾値を超えた場合には、前記窓が全閉位置になったことを検知する全閉位置検知部（１０３）と、
前記窓の駆動方向が開方向の時に前記駆動負荷が所定の全開閾値を超えた場合には、前記窓が全開位置になったことを検知する全開位置検知部（１０４）と、
前記電動モーターによる前記窓の駆動中は、前記駆動方向に所定の移動速度で前記窓が移動するものとして前記窓の開閉位置を算出すると共に、前記窓が全閉位置あるいは前記全開位置になった場合には前記開閉位置を初期化することによって、前記全閉位置または前記全開位置からの前記窓の開閉位置を算出する開閉位置算出部（１０５）と
を備える窓開閉位置検出装置。
【請求項２】
請求項１に記載の窓開閉位置検出装置（１００）であって、
前記全閉位置あるいは前記全開位置が検知された時点で算出されていた前記開閉位置に基づいて、前記移動速度を修正する移動速度修正部（１０６）を備える
ことを特徴とする窓開閉位置検出装置。
【請求項３】
請求項２に記載の窓開閉位置検出装置であって、
前記開閉位置算出部は、
前記窓の駆動方向が前記閉方向の場合には、閉方向の前記移動速度を用いて前記開閉位置を算出し、
前記窓の駆動方向が前記開方向の場合には、開方向の前記移動速度を用いて前記開閉位置を算出しており、
前記移動速度修正部は、
前記全閉位置が検知されたときの前記開閉位置に基づいて前記閉方向の移動速度を修正し、
前記全開位置が検知されたときの前記開閉位置に基づいて前記開方向の移動速度を修正する
ことを特徴とする窓開閉位置検出装置。
【請求項４】
請求項１に記載の窓開閉位置検出装置（１５０）であって、
前記全開位置または前記全閉位置の何れか一方が検知された後に、前記窓の駆動が中断されないまま、前記全開位置または前記全閉位置の何れか他方が検知されるまでに要した全開全閉所要時間を計測する計時部（１５９）と、
前記全開全閉所要時間に基づいて、前記移動速度を修正する移動速度修正部（１５６）と
を備える窓開閉位置検出装置。
【請求項５】
請求項４に記載の窓開閉位置検出装置であって、
前記開閉位置算出部は、
前記窓の駆動方向が閉方向の時には、閉方向の前記移動速度を用いて前記開閉位置を算出し、
前記窓の駆動方向が開方向の時には、開方向の前記移動速度を用いて前記開閉位置を算出しており、
前記計時部は、前記全開位置から前記全閉位置になるまでに要する前記全開全閉所要時間を、全閉所要時間として取得し、前記全閉位置から前記全開位置になるまでに要する前記全開全閉所要時間を、全開所要時間として取得しており、
前記移動速度修正部は、前記全閉所要時間に基づいて前記閉方向の移動時間を修正し、前記全開所要時間に基づいて前記開方向の移動時間を修正する
ことを特徴とする開閉位置検出装置。
【請求項６】
請求項１ないし請求項５の何れか一項に記載の開閉位置検出装置であって、
前記車両の始動スイッチがオフ状態にされたことを検知するオフ状態検知部（１０７）と、
前記オフ状態が検知された時に、前記窓の開閉位置が前記全閉位置に対して所定の閾値量以上開いていた場合には、前記窓の閉め忘れを報知する報知部（１０８）と
を備える開閉位置検出装置。
【請求項７】
電動モーター（２０）で開閉される窓（１０）を搭載した車両（１）に適用されて、前記窓の開閉位置を検出する窓開閉位置検出方法であって、
前記電動モーターの駆動負荷を検出する工程（Ｓ１００）と、
前記電動モーターによる前記窓の駆動方向を検出する工程（Ｓ１０２）と、
前記窓の駆動方向が閉方向の時に前記駆動負荷が所定の全閉閾値を超えた場合には、前記窓が全閉位置になったことを検出する工程（Ｓ１０１、Ｓ２０１）と、
前記窓の駆動方向が開方向の時に前記駆動負荷が所定の全開閾値を超えた場合には、前記窓が全開位置になったことを検出する工程（Ｓ１０１、Ｓ２０１）と、
前記電動モーターによる前記窓の駆動中は、前記駆動方向に所定の移動速度で前記窓が移動するものとして前記窓の開閉位置を算出すると共に、前記窓が全閉位置あるいは前記全開位置になった場合には前記開閉位置を初期化することによって、前記全閉位置または前記全開位置からの前記窓の開閉位置を算出する工程（Ｓ２０４、Ｓ２０７）と
を備える窓開閉位置検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載されて、電動モーターで開閉される窓の開閉位置を検出する技術に関する。
【背景技術】
【０００２】
電動モーターを用いて窓を開閉する車両（いわゆるパワーウィンドウ車）は、今日では広く普及している。このパワーウィンドウ車では、窓が全閉状態あるいは全開状態になると電動モーターの負荷が増加するので、負荷を監視することによって、窓が全閉状態あるいは全開状態となったことを検知することができる。そして、このことを利用して、窓が全閉状態となっていないのに車両のイグニッションスイッチがＯＦＦにされた場合には、窓を閉め忘れたものと判断して、車両の乗員にその旨を報知することができる。
【０００３】
もっとも、電動モーターの負荷に基づいて窓が全閉状態となったことを検出する方法では、換気のために車両の乗員が窓を少し開けておいた場合にも、窓を閉め忘れたものと誤検知されてしまう。そこで、窓の開閉位置をセンサーで検出して、隙間が小さい場合は閉め忘れと判断しないようにした技術も提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−０８３６６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、提案されている従来の技術では、窓の開閉位置を検出するセンサーが必要となるので、構造が複雑になるという問題があった。
【０００６】
この発明は、従来の技術が上述した課題を有することに鑑みて成されたものであり、簡単な構造でありながら、窓の開閉位置を精度良く検出することが可能な技術の提供を目的とする。
【課題を解決するための手段】
【０００７】
上述した問題を解決するために本発明の窓開閉位置検出装置および窓開閉位置検出方法では、電動モーターが窓を駆動している間は、窓が所定の移動速度で移動しているものとして、窓の開閉位置を算出する。また、窓が全閉状態になったことを検知したら、算出していた窓の開閉位置を、全閉位置に初期化する。あるいは、窓が全開状態になったことを検知した場合には、算出していた窓の開閉位置を、全開位置に初期化する。
窓が所定の移動速度で移動しているものと仮定した場合、仮定した移動速度と実際の移動速度とには違いが生じるから、算出した窓の開閉位置には誤差が生じる。そして、この誤差は、窓が移動を繰り返すに従って蓄積されていくため、窓の開閉位置を精度良く算出することは困難となる。これに対して、本発明の窓開閉位置検出装置および窓開閉位置検出方法では、窓が全閉状態になったことを検知する度に、算出した窓の開閉位置を全閉位置に初期化し、窓が全開状態になったことを検知する度に、算出した窓の開閉位置を全開位置に初期化する。このため、誤差が蓄積されることがないので、窓の開閉位置を十分な精度で算出することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本実施例の窓開閉位置検出装置１００を搭載した車両１の大まかな内部構造を示した説明図である。
【図２】本実施例の窓開閉位置検出装置１００が組み込まれた窓開閉制御装置５０の大まかな内部構造を示した説明図である。
【図３】本実施例の窓開閉位置検出装置１００が実行する窓開閉位置検出処理のフローチャートである。
【図４】窓開閉位置検出処理の中で実行される全閉全開時処理のフローチャートである。
【図５】本実施例の窓開閉位置検出装置１００では、簡単な構造でありながら窓の開閉位置を精度良く検出可能な理由を示した説明図である。
【図６】変形例の窓開閉位置検出装置１５０が組み込まれた窓開閉制御装置５０の大まかな内部構造を示した説明図である。
【図７】変形例の窓開閉位置検出装置１５０が実施する移動速度修正処理の前半部分のフローチャートである。
【図８】変形例の窓開閉位置検出装置１５０が実施する移動速度修正処理の後半部分のフローチャートである。
【図９】変形例の窓開閉位置検出装置１５０が全開所要時間を計測する様子を例示した説明図である。
【図１０】変形例の窓開閉位置検出装置１５０が全閉所要時間を計測する様子を例示した説明図である。
【発明を実施するための形態】
【０００９】
以下では、上述した本願発明の内容を明確にするために実施例について説明する。
Ａ．装置構成  ：
図１（ａ）には、本実施例の窓開閉位置検出装置１００を搭載した車両１の大まかな内部構造が示されている。車両１は、窓ガラス１０を電動で上下動させることが可能な、いわゆるパワーウィンドウ装着車である。パワーウィンドウ装着車の扉２の内部には、窓ガラス１０を上下動させるための電動モーター２０と、窓ガラス１０の下端部分を保持する保持部２１と、保持部２１が上下動する動きをガイドするガイドレール２２とが内蔵されている。ガイドレール２２の上端および下端にはそれぞれプーリーが取り付けられ、電動モーター２０の回転軸にもプーリーが取り付けられていると共に、これら３つのプーリーには駆動ベルト２３が張設されている。そして、この駆動ベルト２３に保持部２１が取り付けられている。このため、電動モーター２０を回転させると、駆動ベルト２３に取り付けられた保持部２１がガイドレール２２に沿って上下動し、それに伴って窓ガラス１０も上下動するようになっている。
また、車両１には、電動モーター２０の動作を制御するための窓開閉制御装置５０が搭載されており、この窓開閉制御装置５０の中に、本実施例の窓開閉位置検出装置１００が組み込まれている。
【００１０】
図１（ｂ）には、窓ガラス１０を全閉状態とした場合が示されている。窓ガラス１０を全閉状態にすると、窓ガラス１０の上端が車両１側のシール部材（図示は省略）に当接して、それ以上には上昇しなくなる。このため、窓ガラス１０が全閉状態になると、電動モーター２０の負荷が増加する。従って、電動モーター２０の負荷が所定値以上になったことを検出することによって、窓ガラス１０が全閉状態になったことを検知することができる。
図１（ｃ）には、窓ガラス１０を全開状態とした場合が示されている。窓ガラス１０を全開状態にすると、窓ガラス１０の下端に取り付けられた保持部２１が、ガイドレール２２のストッパー（図示は省略）に当接して、それ以上には下降しなくなる。このため、窓ガラス１０が全開状態になった場合にも電動モーター２０の負荷が増加する。従って、電動モーター２０の負荷が所定値以上になったことを検出することによって、窓ガラス１０が全開状態になったことも検知することができる。
【００１１】
図２には、電動モーター２０の動作を制御する窓開閉制御装置５０の内部構造が示されている。図中に破線で示したように、本実施例の窓開閉位置検出装置１００は、この窓開閉制御装置５０の一部として組み込まれている。
図示されるように、窓開閉制御装置５０には、電動モーター駆動部５１や、モーター電流検出部５２や、本実施例の窓開閉位置検出装置１００が内蔵されている。また、本実施例の窓開閉位置検出装置１００には、駆動負荷検出部１０１や、駆動方向検出部１０２や、全閉位置検知部１０３や、全開位置検知部１０４や、開閉位置算出部１０５や、移動速度修正部１０６や、オフ状態検知部１０７や、報知部１０８などが内蔵されている。
尚、これらの「部」は、電動モーター２０を制御したり、窓ガラス１０の開閉位置を検出したりするために窓開閉制御装置５０が備える機能に着目して、窓開閉制御装置５０の内部を便宜的に区分した抽象的な概念であり、窓開閉制御装置５０の内部がこれらの「部」に物理的に区分されることを示すわけではない。従って、これらの「部」は、コンピューター上で動作するプログラムによってソフトウェア的に実現することもできるし、ＩＣやＬＳＩなどを含む電子回路によってハードウェア的に実現することもでき、更には、これらを組み合わせることによって実現することもできる。
【００１２】
電動モーター駆動部５１は、パワーウィンドウの操作スイッチ２５に接続されており、車両１の乗員が操作スイッチ２５を操作すると、その操作内容が電動モーター駆動部５１に入力される。そして、操作内容が窓ガラス１０を上昇させる旨の内容であった場合は、電動モーター２０に正方向の電流を流して電動モーター２０を正方向に回転させることによって、窓ガラス１０を上昇させる。
これに対して、操作内容が窓ガラス１０を下降させる旨の内容であった場合は、電動モーター２０に負方向の電流を流して電動モーター２０を逆方向に回転させることによって、窓ガラス１０を下降させる。
【００１３】
モーター電流検出部５２は、電動モーター２０に流れるモーター電流の電流値（以下では、モーター電流の電流値を、モーター電流値と称する）を検出して、電動モーター駆動部５１に出力する。電動モーター駆動部５１は、モーター電流検出部５２から受け取ったモーター電流値に基づいて電動モーター２０の負荷を検出して、負荷が所定値以上に高くなった場合は、電動モーター２０の駆動を停止する。
また、モーター電流検出部５２は、駆動負荷検出部１０１や駆動方向検出部１０２にも、検出したモーター電流値を出力する。
【００１４】
駆動負荷検出部１０１は、モーター電流検出部５２から受け取ったモーター電流の絶対値を取得することによって、電動モーター２０の駆動負荷を検出して、全閉位置検知部１０３および全開位置検知部１０４に出力する。
駆動方向検出部１０２は、モーター電流検出部５２から受け取ったモーター電流値の正負を取得することによって、電動モーター２０の駆動方向を検出する。すなわち、モーター電流値が正値であった場合は、電動モーター２０の駆動方向は正方向であり、窓ガラス１０の移動方向は上昇方向と判断する。また、モーター電流値が負値であった場合は、電動モーター２０の駆動方向は負方向であり、窓ガラス１０の移動方向は下降方向と判断する。そして、駆動方向検出部１０２は、検出した駆動方向を全閉位置検知部１０３および全開位置検知部１０４に出力する。
【００１５】
全閉位置検知部１０３は、駆動方向検出部１０２から受け取った駆動方向が正方向であり、且つ、駆動負荷検出部１０１から受け取った駆動負荷が、所定の全閉閾値を超えていた場合に、窓ガラス１０が全閉位置にあることを検知する。
また、全開位置検知部１０４は、駆動方向検出部１０２から受け取った駆動方向が負方向であり、且つ、駆動負荷検出部１０１から受け取った駆動負荷が、所定の全開閾値を超えていた場合に、窓ガラス１０が全開位置にあることを検知する。尚、全閉閾値と全開閾値とは同じ値としても良い。
【００１６】
開閉位置算出部１０５は、電動モーター２０の駆動負荷を受け取ることによって、窓ガラス１０が移動しているか否かを判断する。また、開閉位置算出部１０５は、電動モーター２０の駆動方向を受け取ることによって、窓ガラス１０の移動方向を認識する。
ここで、窓ガラス１０が所定の移動速度で移動するものと仮定すれば、窓ガラス１０の移動時間および移動方向から、窓ガラス１０の移動量を算出することができる。そこで、開閉位置算出部１０５は、窓ガラス１０が全閉位置あるいは全開位置からの移動量を取得することによって、窓ガラス１０の開閉位置を算出する。
加えて、本実施例の開閉位置算出部１０５は、窓ガラス１０が全閉位置に達した旨を全閉位置検知部１０３から受け取る度に、算出していた開閉位置を全閉位置に初期化する。同様に、窓ガラス１０が全開位置に達した旨を全開位置検知部１０４から受け取る度に、算出していた開閉位置を全開位置に初期化している。
【００１７】
移動速度修正部１０６は、全閉位置検知部１０３と、全開位置検知部１０４と、開閉位置算出部１０５とに接続されており、窓ガラス１０が全閉位置に達したことが検知されると、その時点で算出されている窓ガラス１０の開閉位置を取得する。また、窓ガラス１０が全開位置に達したことが検知されると、その時点で算出されている窓ガラス１０の開閉位置を取得する。
そして、窓ガラス１０が全閉位置に達した時点で算出されていた開閉位置に基づいて、窓ガラス１０の閉方向への移動速度を修正する。また、窓ガラス１０が全開位置に達した時点で算出されていた開閉位置に基づいて、窓ガラス１０の開方向への移動速度を修正する。窓ガラス１０の閉方向あるいは開方向への移動速度を修正する方法については後述する。
【００１８】
オフ状態検知部１０７は、図示しないエンジン始動スイッチに接続されており、エンジン始動スイッチがＯＦＦになったことを検知して、報知部１０８に出力する。
報知部１０８は、エンジン始動スイッチがＯＦＦになると、その時点で開閉位置算出部１０５によって算出されていた窓ガラス１０の開閉位置を取得する。そして、窓ガラス１０が開いた状態となっており、且つ、全閉位置に対する開閉位置が、所定値以上であった場合は、窓ガラス１０が開いた状態となっている旨を、スピーカー５などから、車両１の乗員に対して報知する。
【００１９】
上述したように、窓ガラス１０の開閉位置は、窓ガラス１０が所定の移動速度で移動するものと仮定して算出しているので、実際の開閉位置に対して誤差が含まれている。従って、乗員に対して警告する条件を、窓ガラス１０が全閉位置にあるか否かではなく、窓ガラス１０が全閉位置に対して所定値以上、開いているか否かとすると、誤差の影響で、警告すべき時に警告できなくなる虞が生じる。それを避けようとすると、窓ガラス１０が全閉位置にあるか否かに基づいて警告するか否かを判断するか、さもなければ、専用のセンサーを用いて窓ガラス１０の開閉位置を検出する必要が生じる。
しかし、上述した本実施例の窓開閉位置検出装置１００では、実用上の問題とならない程度まで誤差を抑制することができる。このため、何ら専用のセンサーを搭載しなくても、窓ガラス１０が全閉位置に対して所定値以上、開いていた場合には、車両１の乗員に対して確実に警告することが可能となる。こうしたことが可能となるのは、本実施例の窓開閉位置検出装置１００が、以下のような方法を用いて、窓ガラス１０の開閉位置を検出しているためである。
【００２０】
Ｂ．窓開閉位置検出処理  ：
図３には、本実施例の窓開閉位置検出装置１００が窓ガラス１０の開閉位置を検出するために実行する窓開閉位置検出処理のフローチャートが示されている。
図示されるように、窓開閉位置検出処理では、先ず始めに、電動モーター２０の駆動負荷（すなわち、モーター電流値の絶対値）が所定値以上か否かを判断する（Ｓ１００）。その結果、駆動負荷が所定値に満たない場合は（Ｓ１００：ｎｏ）、電動モーター２０が駆動されていないものと考えられるので、同じ判断（Ｓ１００）を繰り返すことによって待機状態となる。
これに対して、電動モーター２０の駆動負荷が所定値以上であった場合は（Ｓ１００：ｙｅｓ）、電動モーター２０が駆動されていると考えられる。
【００２１】
そこで今度は、電動モーター２０の駆動負荷が、所定の全閉閾値または所定の全開閾値の何れかよりも大きいか否かを判断する（Ｓ１０１）。ここで、全閉閾値とは、窓ガラス１０が全閉状態となったか否かを判断するために用いる閾値であり、全開閾値とは、窓ガラス１０が全開状態となったか否かを判断するために用いる閾値である。図１（ｂ）あるいは図１（ｃ）を用いて前述したように、窓ガラス１０が全閉状態あるいは全開状態になると、それ以上には上昇あるいは下降しなくなるから電動モーター２０の駆動負荷が増加する。このため、予め適切な全閉閾値あるいは全開閾値を設定しておくことで、電動モーター２０の駆動負荷が全閉閾値あるいは全開閾値の何れかを超えたら、窓ガラス１０が全閉状態あるいは全開状態になったと判断することができる。
電動モーター２０が駆動中の場合は（Ｓ１００：ｙｅｓ）、電動モーター２０の駆動負荷を全閉閾値および全開閾値と比較することによって（Ｓ１０１）、電動モーター２０が全閉状態あるいは全開状態になったか否かを判断する。尚、全閉閾値および全開閾値は、何れか大きい方の閾値で共用することも可能である。
【００２２】
その結果、電動モーター２０の駆動負荷が、全閉閾値あるいは全開閾値の何れかを超えていた場合は（Ｓ１０１：ｙｅｓ）、後述する全閉全開時処理（Ｓ２００）を行った後、処理の先頭に戻って、再び、電動モーター２０の駆動負荷が所定値以上か否かを判断する（Ｓ１００）。詳細には後述するが、全閉全開時処理（Ｓ２００）では、大まかには以下のような処理を行う。先ず、窓ガラス１０が全閉状態または全開状態の何れになったのかを判断する。そして、その結果に応じて、窓ガラス１０の開閉位置を、全閉位置あるいは全開位置として設定する。
また、後述するように、窓開閉位置検出処理では、窓ガラス１０が所定の速度で移動するものと仮定して、窓ガラス１０の開閉位置を算出するが、窓ガラス１０が全閉状態または全開状態の何れになった場合は、その時点で算出されていた窓ガラス１０の開閉位置を、全閉位置あるいは全開位置として設定する。
更に、全閉状態または全開状態になった時点で算出されていた窓ガラス１０の開閉位置に基づいて、窓ガラス１０の移動速度を修正する。これらの点については、後ほど詳しく説明する。
【００２３】
一方、電動モーター２０の駆動負荷が、全閉閾値および全開閾値の何れも超えていない場合は（Ｓ１０１：ｎｏ）、電動モーター２０の駆動方向が正方向か否かを判断する（Ｓ１０２）。電動モーター２０の駆動方向は、電動モーター２０に流れるモーター電流の正負に基づいて判断することができる。すなわち、電動モーター２０に流れるモーター電流値が正値であった場合は、駆動方向は正方向であると判断することができ、モーター電流値が負値であった場合は、駆動方向は負方向であると判断することができる。
【００２４】
そして、電動モーター２０の駆動方向が正方向であった場合は（Ｓ１０２：ｙｅｓ）、所定の微小時間（例えば、５０μ秒）が経過したか否かを判断する（Ｓ１０３）。その結果、経過していない場合は（Ｓ１０３：ｎｏ）、同じＳ１０３の判断を繰り返すことによって、微小時間が経過するまで待機状態となるが、微小時間が経過したら（Ｓ１０３：ｙｅｓ）、窓ガラス１０が閉方向の移動速度で上昇するものと仮定して、窓ガラス１０の開閉位置を更新する（Ｓ１０４）。すなわち、電動モーター２０の駆動方向が正方向であった場合は（Ｓ１０２：ｙｅｓ）、所定の微小時間の間、窓ガラス１０が所定の一定速度（すなわち、閉方向の移動速度）で上昇するものと仮定して、窓ガラス１０の開閉位置を、「閉方向の移動速度」×「微小時間」に相当する距離、閉方向に移動させるのである。
こうして、窓ガラス１０の開閉位置を更新したら（Ｓ１０４）、処理の先頭に戻って、再び、電動モーター２０の駆動負荷が所定値以上か否かを判断する（Ｓ１００）。
【００２５】
これに対して、電動モーター２０の駆動方向が正方向ではない（すなわち、負方向である）と判断された場合にも（Ｓ１０２：ｎｏ）、所定の微小時間（例えば、５０μ秒）が経過したか否かを判断する（Ｓ１０５）。その結果、経過していない場合は（Ｓ１０５：ｎｏ）、同じ判断を繰り返すことによって待機状態となる。そして、微小時間が経過したら（Ｓ１０５：ｙｅｓ）、窓ガラス１０が開方向の移動速度で下降するものと仮定して、窓ガラス１０の開閉位置を更新する（Ｓ１０６）。すなわち、電動モーター２０の駆動方向が負方向であった場合は（Ｓ１０２：ｎｏ）、所定の微小時間の間、窓ガラス１０が所定の開方向の移動速度で上昇するものと仮定して、窓ガラス１０の開閉位置を、「開方向の移動速度」×「微小時間」に相当する距離、開方向に移動させる。
こうして、窓ガラス１０の開閉位置を更新したら（Ｓ１０６）、処理の先頭に戻って、再び、電動モーター２０の駆動負荷が所定値以上か否かを判断する（Ｓ１００）。
【００２６】
このように、窓開閉位置検出処理では、窓ガラス１０が所定の移動速度で上昇あるいは下降するものと仮定して、窓ガラス１０の開閉位置を算出する。ところが、窓ガラス１０は、必ずしも一定の移動速度で上昇あるいは下降するわけではなく、更に、経時劣化の影響で、時間の経過と共に移動速度は変化する。このため、窓ガラス１０が所定の移動速度で上昇あるいは下降するものと仮定して、窓ガラス１０の開閉位置を算出しても、実用可能な算出精度を確保することは困難と考えられてきた。
しかし、本実施例の窓開閉位置検出装置１００では、窓ガラス１０が全閉状態あるいは全開状態となる度に、以下のような全閉全開時処理を実行しているので、十分に実用可能な精度で、窓ガラス１０の開閉位置を算出することが可能となっている。
【００２７】
Ｃ．全閉全開時処理  ：
図４には、本実施例の窓開閉位置検出装置１００が実行する全閉全開時処理のフローチャートが示されている。図３を用いて前述したように、この処理は、窓ガラス１０が全閉状態あるいは全開状態となったと判断される度に（Ｓ１０１：ｙｅｓ）、窓開閉位置検出装置１００によって実行される処理である。
【００２８】
図４に示されるように、全閉全開時処理（Ｓ２００）では、先ず始めに、電動モーター２０の駆動方向が正方向か否かを判断する（Ｓ２０１）。前述したように、電動モーター２０のモーター電流値が正値であった場合は、駆動方向は正方向と判断することができ、逆に、モーター電流値が負値であった場合は、駆動方向は負方向と判断することができる。
【００２９】
その結果、駆動方向が正方向であった場合は（Ｓ２０１：ｙｅｓ）、前述した窓開閉位置検出処理で算出していた窓ガラス１０の開閉位置を取得する（Ｓ２０２）。そして、取得した開閉位置の算出値に基づいて、窓ガラス１０の閉方向の移動速度を修正する（Ｓ２０３）。これは次のような処理である。
先ず、図４の全閉全開時処理は、図３を用いて前述した窓開閉位置検出処理の中で、窓ガラス１０が全閉状態あるいは全開状態の何れかと判断された場合（すなわち、図３のＳ１０１：ｙｅｓ）に開始される。その結果として開始された図４の全閉全開時処理のＳ２０１で、電動モーター２０の駆動方向が正方向であった場合は（Ｓ２０１：ｙｅｓ）、窓ガラス１０が上昇中であったと考えて良いので、窓ガラス１０は全閉状態になっている筈である。
【００３０】
そして、窓ガラス１０が全閉位置に達した時点で、算出されていた開閉位置を取得したところ、例えば、算出した開閉位置が未だ全閉位置に達していなかった場合は、窓ガラス１０の閉方向への移動速度が、実際の移動速度よりも小さいものと考えられる。
そこで、このような場合は、閉方向への移動速度が大きくなるように修正する。修正に際しては、予め小さな単位修正量を決めておき、閉方向の移動速度に単位修正量を加算することによって、閉方向の移動速度を修正する。もちろん、算出されていた開閉位置と、全閉位置との偏差に応じて、偏差が大きくなるほど修正量が大きくなるように修正しても良い。
【００３１】
あるいは逆に、窓ガラス１０が全閉状態となった時点で、算出されていた開閉位置が、既に全閉位置を通り過ぎていた場合は、窓ガラス１０の閉方向への移動速度が、実際の移動速度よりも大きいものと考えられる。
そこで、このような場合は、閉方向への移動速度が小さくなるように、閉方向の移動速度から単位修正量を減算することによって、閉方向の移動速度を修正する。もちろん、算出されていた開閉位置と、全閉位置との偏差に応じて、偏差が大きくなるほど修正量が大きくなるように修正しても良い。
【００３２】
こうして、窓ガラス１０の閉方向の移動速度を修正したら（Ｓ２０３）、窓ガラス１０の開閉位置の算出値を、全閉位置に設定する（Ｓ２０４）。こうすることによって、窓ガラス１０の移動速度を仮定したことによって生じた誤差が解消されることになる。
そして、図４の全閉全開時処理を終了して、図３の窓開閉位置検出処理に復帰した後、電動モーター２０の駆動負荷が所定値以上か否かを判断する（Ｓ１００）。
【００３３】
以上では、全閉全開時処理を開始した時点で、電動モーター２０の駆動方向が正方向であると判断した場合（Ｓ２０１：ｙｅｓ）について説明した。
これに対して、電動モーター２０の駆動方向が正方向ではない（すなわち、負方向）と判断した場合は（Ｓ２０１：ｎｏ）、窓ガラス１０は全開状態になっているものと考えて良い。
そこで、前述の窓開閉位置検出処理で算出していた窓ガラス１０の開閉位置を取得して（Ｓ２０５）、その開閉位置に基づいて、窓ガラス１０の開方向の移動速度を修正する（Ｓ２０６）。すなわち、窓ガラス１０が全開位置に達した時点で、算出していた開閉位置が未だ全開位置に達していなかった場合は、窓ガラス１０の開方向への移動速度が、実際の移動速度よりも小さいものと考えられる。
そこで、このような場合は、開方向への移動速度が大きくなるように、開方向の移動速度に単位修正量を加算することによって、開方向の移動速度を修正する。もちろん、算出されていた開閉位置と、全閉位置との偏差に応じて、偏差が大きくなるほど修正量が大きくなるように修正しても良い。
【００３４】
あるいは逆に、窓ガラス１０が全開状態となった時点で、算出していた開閉位置が、既に全開位置を通り過ぎていた場合は、窓ガラス１０の開方向への移動速度が、実際の移動速度よりも大きいものと考えられる。
そこで、このような場合は、開方向への移動速度が小さくなるように、開方向の移動速度から単位修正量を減算することによって、開方向の移動速度を修正する。もちろん、算出されていた開閉位置と、全開位置との偏差に応じて、偏差が大きくなるほど修正量が大きくなるように修正しても良い。
【００３５】
こうして、窓ガラス１０の開方向の移動速度を修正したら（Ｓ２０６）、窓ガラス１０の開閉位置の算出値を、全開位置に設定した後（Ｓ２０７）、図４の全閉全開時処理を終了する。そして、図３の窓開閉位置検出処理に復帰した後、電動モーター２０の駆動負荷が所定値以上か否かを判断して（Ｓ１００）、前述した続く一連の処理を開始する。
【００３６】
以上に説明したように、本実施例の窓開閉位置検出装置１００では、窓ガラス１０が一定の移動速度で移動するものと仮定して窓ガラス１０の開閉位置を算出する。このような方法では、開閉位置の算出結果に誤差が蓄積していくため、実用に耐え得る位置精度を確保することは困難である。しかし、本実施例の窓開閉位置検出装置１００では、窓ガラス１０が全閉状態または全開状態となる度に、誤差を解消することができる。
【００３７】
図５には、経時劣化などの影響で、窓ガラス１０の閉方向の移動速度が低下した場合を想定して、本実施例の窓開閉位置検出装置１００では、窓ガラス１０が全閉状態または全開状態となる度に、誤差が解消される様子が例示されている。始めに、図５（ａ）を参照することによって、窓ガラス１０が全閉状態または全開状態となっても誤差を解消しなかった場合について説明する。図中に示した実線は、窓ガラス１０の実際の開閉位置を表しており、図中の破線は、算出した開閉位置を表している。
ここでは、窓ガラス１０の閉方向の移動速度が低下した場合を想定しているから、窓ガラス１０が全開状態から全閉状態となるまでに要する時間は、本来の速度で移動した場合よりも長くなる。このため、窓ガラス１０が本来の速度で移動するものとして開閉位置を算出すると、図中に破線で示したように、窓ガラス１０の開閉位置は全閉位置を超えてしまう。そして、実際の開閉位置に対する算出した開閉位置の誤差ｄｐの大きさは、窓ガラス１０が全開位置と全閉位置とを往復するに従って、次第に大きくなっていく。
【００３８】
一方、図５（ｂ）に示した場合でも、窓ガラス１０は本来の速度で移動するものとして窓ガラス１０の開閉位置を算出しているので、窓ガラス１０が実際に全閉位置に達した時点では、算出した開閉位置は全閉位置を超えている。従って、算出した開閉位置と実際の開閉位置との間には誤差が発生するが、本実施例の窓開閉位置検出装置１００では、窓ガラス１０が実際に全閉位置に達する度に、算出した開閉位置を全閉位置に修正する。
尚、ここでは、開方向には、窓ガラス１０が本来の速度で移動するものとしているので、窓ガラス１０が全閉位置から全開位置まで移動しても、実際の開閉位置と算出した開閉位置との間に誤差が生じることはない。図５（ｂ）で、全開位置では算出した開閉位置を修正していないのは、修正の有無によらず結果が変わらないので修正の表示を省略したものであって、実際には、窓ガラス１０が全開位置に達する度に、算出した開閉位置を修正している。
【００３９】
図５（ｂ）に示したように、本実施例の窓開閉位置検出装置１００では、窓ガラス１０が実際に全閉位置あるいは全開位置に達する度に、算出した開閉位置を全閉位置あるいは全開位置に修正する。このため、窓ガラス１０が全開位置と全閉位置とを往復しても、算出した開閉位置と実際の開閉位置との誤差の大きさを、一定範囲内に保っておくことができる。その結果、センサーを用いて窓ガラス１０の開閉位置を検出しなくても、十分に実用的な精度で、窓ガラス１０の開閉位置を算出することが可能となる。そして、十分な精度で窓ガラス１０の開閉位置を算出することができれば、エンジン始動スイッチがＯＦＦにされた時の窓ガラス１０の開閉位置に基づいて、車両１の乗員に対して適切に警告することができる。例えば、窓ガラス１０が全閉状態となっていなくても、窓ガラス１０の開閉位置が所定の許容範囲内であれば警告はしないが、許容範囲外になると確実に警告することも可能となる。
【００４０】
加えて、本実施例の窓開閉位置検出装置１００では、窓ガラス１０が実際に全閉状態に達した時点で算出されていた開閉位置に基づいて、開閉位置の算出に用いる閉方向の移動速度を修正することができる。同様に、窓ガラス１０が実際に全開状態に達した時点で算出されていた開閉位置に基づいて、開方向の移動速度を修正することができる。
このため、たとえ経時劣化などの影響で、窓ガラス１０の移動速度が本来の速度から変化した場合でも、開閉位置の算出に用いる移動速度を、実際の移動速度に近付けることができる。
【００４１】
加えて、窓ガラス１０が実際に全閉状態あるいは全開状態に達したことを検出すると、その時点で算出されていた開閉位置に応じて、窓ガラス１０の移動速度を所定の単位修正量ずつ修正していく。このため、少なくとも全閉位置および全開位置の周辺では、窓ガラス１０の実際の開閉位置と計算上の開閉位置との偏差は、移動速度の単位修正量に対応する一定範囲内に収まることになる。
従って、移動速度の単位修正量を予め適切な値に設定しておけば、たとえ、長期に亘って車両１が使用された場合でも、窓ガラス１０の開閉位置の算出精度を、十分な精度に維持することが可能となる。
【００４２】
Ｄ．変形例  ：
上述した本実施例では、窓ガラス１０が実際に全閉状態あるいは全開状態になった時に、その時点で算出されていた開閉位置に応じて、窓ガラス１０の移動速度を所定の単位修正量ずつ修正するものとして説明した。
しかし、窓ガラス１０が全閉状態から全開状態になるまでの時間を実測して、あるいは逆に、窓ガラス１０が全開状態から全閉状態になるまでの時間を実測して、窓ガラス１０の移動時間を修正することとしても良い。
【００４３】
図６には、上述した変形例の窓開閉位置検出装置１５０を内蔵した窓開閉制御装置５０の大まかな内部構造を示した説明図である。変形例の窓開閉位置検出装置１５０は、図２を用いて前述した本実施例の窓開閉位置検出装置１００に対して、計時部１５９が追加されている点と、移動速度修正部１０６が移動速度修正部１５６に変更されている点とが大きく異なっている。その一方で、その他の点については、図２に示した本実施例の窓開閉位置検出装置１００と同様である。図６では、図２に示した本実施例の窓開閉位置検出装置１００との相違点に関係する部分を表示し、関係しない部分（例えば、開閉位置算出部１０５や、オフ状態検知部１０７や、報知部１０８）については図示を省略している。
【００４４】
図６に示されるように、変形例の窓開閉位置検出装置１５０には、駆動負荷検出部１０１や、駆動方向検出部１０２や、全閉位置検知部１０３や、全開位置検知部１０４や、計時部１５９や、移動速度修正部１５６などが内蔵されている。また、図６では図示が省略されているが、変形例の窓開閉位置検出装置１５０には、前述した本実施例の窓開閉位置検出装置１００と同様に、開閉位置算出部１０５や、移動速度修正部１０６や、オフ状態検知部１０７や、報知部１０８なども内蔵されている。
尚、変形例の窓開閉位置検出装置１５０が備える計時部１５９や、移動速度修正部１５６についても、窓開閉位置検出装置１５０の内部に、これらの「部」が物理的に区分されることを示すわけではない。従って、これらの「部」は、コンピューター上で動作するプログラムによってソフトウェア的に実現することもできるし、ＩＣやＬＳＩなどを含む電子回路によってハードウェア的に実現することもでき、更には、これらを組み合わせることによって実現することもできる。
【００４５】
電動モーター駆動部５１は、パワーウィンドウの操作スイッチ２５の操作内容に従って、電動モーター２０を駆動する。
モーター電流検出部５２は、電動モーター２０のモーター電流値を検出して、電動モーター駆動部５１に出力するとともに、駆動負荷検出部１０１や駆動方向検出部１０２にも出力する。
【００４６】
駆動負荷検出部１０１は、モーター電流検出部５２から受け取ったモーター電流値に基づいて、電動モーター２０の駆動負荷を検出して、全閉位置検知部１０３および全開位置検知部１０４に出力する。
駆動方向検出部１０２は、モーター電流検出部５２から受け取ったモーター電流値に基づいて、電動モーター２０の駆動方向を検出して、全閉位置検知部１０３および全開位置検知部１０４に出力する。
全閉位置検知部１０３は、駆動負荷検出部１０１から受け取った駆動負荷と、駆動方向検出部１０２から受け取った駆動方向とに基づいて、窓ガラス１０が全閉位置にあることを検知する。
また、全開位置検知部１０４は、駆動負荷検出部１０１から受け取った駆動負荷と、駆動方向検出部１０２から受け取った駆動方向とに基づいて、窓ガラス１０が全開位置にあることを検知する。
【００４７】
また、変形例の窓開閉位置検出装置１５０には計時部１５９が設けられており、この計時部１５９は、全閉位置検知部１０３と全開位置検知部１０４とに接続されており、窓ガラス１０が全閉状態あるいは全開状態になったことを認識することができる。また、計時部１５９は、駆動負荷検出部１０１と駆動方向検出部１０２とにも接続されており、窓ガラス１０が移動中であるか否か、および移動方向も認識することができる。そこで、計時部１５９は、窓ガラス１０が全閉状態から全開状態になるまでに要した時間や、全開状態から全閉状態になるまでに要した時間を計測して、その結果を、移動速度修正部１５６に出力する。
【００４８】
移動速度修正部１５６は、全閉状態から全開状態になるまでに要した時間に基づいて、開方向の移動時間を修正し、全開状態から全閉状態になるまでに要した時間に基づいて閉方向の移動時間を修正する。
こうすれば、経時劣化などの影響で、窓ガラス１０の移動速度が変化した場合でも、窓ガラス１０の開閉位置を算出するために用いる移動速度を、実際の移動速度に修正することができるので、窓ガラス１０の開閉位置を精度良く算出することが可能となる。
【００４９】
図７および図８には、上述した変形例の窓開閉位置検出装置１５０が、窓ガラス１０の移動速度を修正するために実行する移動速度修正処理のフローチャートが示されている。
図７に示したように、移動速度修正処理では、先ず始めに、窓ガラス１０が全閉状態になったか否かを判断する（Ｓ３００）。窓ガラス１０の駆動方向が正方向で、且つ、窓ガラス１０の駆動負荷が所定の全閉閾値よりも大きくなった場合は、窓ガラス１０が全閉状態になったと判断することができる。
【００５０】
窓ガラス１０が全閉状態ではなかった場合は（Ｓ３００：ｎｏ）、今度は、窓ガラス１０が全開状態か否かを判断する（図８のＳ３１３）。窓ガラス１０の駆動方向が負方向で、且つ、窓ガラス１０の駆動負荷が所定の全開閾値よりも大きくなった場合は、窓ガラス１０が全開状態になったと判断することができる。
その結果、全開状態でもなかった場合は（Ｓ３１３：ｎｏ）、再び、窓ガラス１０が全閉状態になったか否かを判断する（図７のＳ３００）。
【００５１】
このような判断を繰り返しているうちに、やがては、窓ガラス１０が全閉状態または全開状態の何れかとなる。ここでは、全閉状態になったとすると、Ｓ３００では「ｙｅｓ」と判断して、窓ガラス１０が移動を開始したか否かを判断する（Ｓ３０１）。窓ガラス１０は全閉状態になっているから、窓ガラス１０を駆動する電動モーター２０が負方向に駆動され、且つ、電動モーター２０の駆動負荷が、図３のＳ１００の判断で用いる所定値以上であった場合は、窓ガラス１０が移動を開始したと判断することができる。これに対して、電動モーター２０が正方向に駆動されている場合や、電動モーター２０が負方向に駆動されていても駆動負荷が所定値に満たない場合は、窓ガラス１０は移動を開始していないと判断することができる。
【００５２】
その結果、窓ガラス１０が移動を開始していないと判断した場合は（Ｓ３０１：ｎｏ）、同じＳ３０１の判断を繰り返すことによって、移動を開始するまで待機状態となる。
これに対して、窓ガラス１０が移動を開始したと判断した場合は（Ｓ３０１：ｙｅｓ）、全開所要時間の計測を開始する（Ｓ３０２）。ここで全開所要時間とは、窓ガラス１０が全閉状態から全開状態になるまでに要する時間である。
【００５３】
続いて、窓ガラス１０が移動中か否かを判断する（Ｓ３０３）。窓ガラス１０を駆動する電動モーター２０の駆動負荷が、図３のＳ１００の判断で用いる所定値以上の場合（但し、全開閾値には満たない場合）は、窓ガラス１０が移動中と判断することができる。これに対して、電動モーター２０の駆動負荷が所定値に満たない場合は、窓ガラス１０が停止したと判断することができる。
その結果、窓ガラス１０が移動中であった場合は（Ｓ３０３：ｙｅｓ）、全開状態になったか否かを判断し（Ｓ３０４）、全開状態になっていなければ（Ｓ３０４：ｎｏ）、再び、窓ガラス１０が移動中か否かを判断する（Ｓ３０３）。このような操作を繰り返すことによって、全開所要時間が計時されていく。そして、窓ガラス１０が全開状態になったと判断したら（Ｓ３０４：ｙｅｓ）、計時を終了して、その時点で計時されていた値を全開所要時間として取得する（Ｓ３０５）。
【００５４】
もちろん、窓ガラス１０が全閉状態から全開状態に達するまでの間に、窓ガラス１０が途中で停止される場合もある。このような場合は、Ｓ３０３で「ｎｏ」と判断して、全開所要時間の計時を中断する（Ｓ３０８）。そして、窓ガラス１０の移動を再開したか否かを判断し（Ｓ３０９）、移動が再開されていない場合は（Ｓ３０９：ｎｏ）、同じＳ３０９の判断を繰り返すことによって、移動が再開されるまで待機状態となる。
そして、移動が再開されたら（Ｓ３０９：ｙｅｓ）、今度は、窓ガラス１０の移動方向が開方向か否かを判断する（Ｓ３１０）。窓ガラス１０を駆動する電動モーター２０の駆動方向が負方向であれば、窓ガラス１０が開方向に移動していると判断することができ、電動モーター２０の駆動方向が正方向であれば、窓ガラス１０が閉方向に移動していると判断することができる。
【００５５】
その結果、窓ガラス１０が開方向に移動している場合は（Ｓ３１０：ｙｅｓ）、中断していた全開所要時間の計時を再開する（Ｓ３１１）。そして、窓ガラス１０が全開状態になったか否かを判断し（Ｓ３０４）、全開状態になっていなければ（Ｓ３０４：ｎｏ）、窓ガラス１０が移動中か否かを判断し（Ｓ３０３）、移動中であった場合は（Ｓ３０３：ｙｅｓ）、再び、全開状態になったか否かを判断する（Ｓ３０４）。このような操作を繰り返すうちに、全開状態になったら（Ｓ３０４：ｙｅｓ）、計時を終了するとともに、全開所要時間を取得する（Ｓ３０５）。
【００５６】
以上では、全閉状態から開方向に移動を開始した窓ガラス１０が、途中で一旦停止した後（Ｓ３０３：ｎｏ）、再び開方向に移動を開始した場合（Ｓ３１０：ｙｅｓ）について説明した。
これに対して、途中で一旦停止した窓ガラス１０が、今度は逆方向（すなわち、閉方向）に移動を開始した場合は（Ｓ３１０：ｎｏ）、それまでに計測していた全開所要時間の値を破棄してしまう（Ｓ３１２）。従って、全開所要時間が得られるのは、全閉状態から全開状態まで途中で停止することなく移動するか、途中で停止した場合でも、逆方向に移動することなく全開状態となった場合となる。また、途中で停止した場合は、停止している時間は、全開所要時間には含まれない。Ｓ３０５では、このような全開所要時間を取得する。
図９には、全開所要時間を計測する様子が例示されている。図示した例では、太線で表した部分では窓ガラス１０が移動しているが、破線で示した部分では窓ガラス１０が停止している。しかしこのような場合でも、窓ガラス１０が移動している太線で表した部分の時間を計測することによって、全開所要時間を計測することが可能となる。
【００５７】
こうして取得した全開所要時間から、窓ガラス１０の開方向の移動速度を算出する（Ｓ３０６）。すなわち、窓ガラス１０が全閉状態から全開状態になるまでに、窓ガラス１０が移動する距離は設計上から決まるから、その距離を移動するために要した時間（すなわち、全開所要時間）が分かれば、開方向の移動速度を算出することができる。
そして、窓ガラス１０の開閉位置を算出するために用いる開方向の移動速度を、算出した移動速度に変更する（Ｓ３０７）。
以上のようにして、開方向の移動速度を変更したら（Ｓ３０７）、処理の先頭に戻って、全閉状態になったか否かの判断（Ｓ３００）、あるいは全開状態になったか否かの判断（図８のＳ３１３）を繰り返す。また、計時中の全開所要時間を破棄した場合も（Ｓ３１２）、処理の先頭に戻って、全閉状態になったか否かの判断（Ｓ３００）、あるいは全開状態になったか否かの判断（図８のＳ３１３）を繰り返す。
【００５８】
以上では、処理の先頭で、窓ガラス１０が全閉状態あるいは全開状態になったか否かの判断（Ｓ３００、および図８のＳ３１３）を繰り返していたところ、窓ガラス１０が全閉状態になったと判断した場合（Ｓ３００：ｙｅｓ）について説明した。
これに対して、窓ガラス１０が全開状態になったと判断した場合は（Ｓ３１３：ｙｅｓ）、以下のようにして、閉方向の移動速度を変更する。
【００５９】
先ず、窓ガラス１０が移動を開始したか否かを判断する（Ｓ３１４）。ここでは、窓ガラス１０は全開状態になっているから、窓ガラス１０を駆動する電動モーター２０が正方向に駆動され、且つ、電動モーター２０の駆動負荷が、図３のＳ１００の判断で用いる所定値以上であった場合は、窓ガラス１０が移動を開始したと判断することができる。
【００６０】
その結果、窓ガラス１０が移動を開始したと判断した場合は（Ｓ３１４：ｙｅｓ）、今度は、全閉所要時間の計測を開始する（Ｓ３１５）。全閉所要時間とは、窓ガラス１０が全開状態から全閉状態になるまでに要する時間である。
そして、窓ガラス１０が移動中か否かを判断し（Ｓ３１６）、窓ガラス１０が移動中であった場合は（Ｓ３１６：ｙｅｓ）、全閉状態になったか否かを判断する（Ｓ３１７）。その結果、全閉状態になっていなければ（Ｓ３１７：ｎｏ）、再び、窓ガラス１０が移動中か否かを判断する（Ｓ３１６）。このような操作を繰り返しているうちに、窓ガラス１０が全閉状態になったと判断したら（Ｓ３１７：ｙｅｓ）、計時を終了して、その時点で計時されていた値を全閉所要時間として取得する（Ｓ３１８）。
【００６１】
また、窓ガラス１０が全開状態から全閉状態に達するまでの間に、途中で停まった場合は（Ｓ３１６：ｎｏ）、全閉所要時間の計時を中断する（Ｓ３２１）。そして、窓ガラス１０の移動を再開したか否かを判断し（Ｓ３２２）、移動が再開されていない場合は（Ｓ３２２：ｎｏ）、移動が再開されるまで待機状態となる。
そして、移動が再開されたら（Ｓ３２２：ｙｅｓ）、今度は、窓ガラス１０の移動方向が閉方向か否かを判断する（Ｓ３２３）。その結果、窓ガラス１０が閉方向に移動している場合は（Ｓ３２３：ｙｅｓ）、中断していた全閉所要時間の計時を再開して（Ｓ３２４）、窓ガラス１０が全閉状態になったか否かを判断し（Ｓ３１７）、全閉状態になっていなければ（Ｓ３１７：ｎｏ）、窓ガラス１０が移動中か否かを判断する（Ｓ３１６）。こうすることによって、再開した全閉所要時間の計時を継続する。
【００６２】
また、一旦停止した窓ガラス１０が、再び移動を開始したが（Ｓ３２２：ｙｅｓ）、移動方向が逆方向（すなわち、開方向）であった場合には（Ｓ３２３：ｎｏ）、それまでに計測していた全閉所要時間の値を破棄してしまう（Ｓ３２５）。従って、全閉所要時間が得られるのは、全開状態から全閉状態まで途中で停止することなく移動するか、途中で停止した場合でも、逆方向に移動することなく全閉状態となった場合となる。
図１０には、全閉所要時間を計測する様子が例示されている。図９の場合と同様に、図中の太線は窓ガラス１０が移動していることを表しており、図中の破線は窓ガラス１０が停止していることを表している。このような場合でも、窓ガラス１０が移動している太線で表した部分の時間を計測することで、全閉所要時間を計測することができる。
尚、全開所要時間と全閉所要時間とは、同じような値となる場合も多いので、これらをまとめて、全開全閉所要時間としてもよい。
【００６３】
こうして全閉所要時間が得られたら（Ｓ３１８）、窓ガラス１０の閉方向の移動速度を算出する（Ｓ３１９）。すなわち、窓ガラス１０が全開状態から全閉状態になるまでに、窓ガラス１０が移動する距離は設計上から決まるから、その距離を移動するために要した時間（すなわち、全閉所要時間）が分かれば、閉方向の移動速度を算出することができる。そして、窓ガラス１０の開閉位置を算出するために用いる閉方向の移動速度を、算出した移動速度に変更する（Ｓ３２０）。
以上のようにして、閉方向の移動速度を変更したら（Ｓ３２０）、あるいは、計時中の全開所要時間を破棄したら（Ｓ３２４）、処理の先頭に戻って、全閉状態になったか否かの判断（図７のＳ３００）および全開状態になったか否かの判断（図８のＳ３１３）を繰り返す。
【００６４】
変形例の窓開閉位置検出装置１５０では、以上のようにして、窓ガラス１０が全閉状態から全開状態に移動するために要する全開所要時間や、全開状態から全閉状態に移動するために要する全閉所要時間を実測する。そして、全開所要時間や全閉所要時間に基づいて、窓ガラス１０の開方向の移動速度や、閉方向の移動速度を算出する。このため、車両１の経時劣化などの影響で、窓ガラス１０の移動速度が変化した場合でも、移動速度の変化を反映させて、窓ガラス１０の開閉位置を精度良く算出することが可能となる。
【００６５】
以上、本実施例および変形例について説明したが、本発明は上述した本実施例および変形例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。
【符号の説明】
【００６６】
１…車両、    ５…スピーカー、    １０…窓ガラス、    ２０…電動モーター、
２１…保持部、          ２２…ガイドレール、      ２３…駆動ベルト、
２５…操作スイッチ、    ５０…窓開閉制御装置、    ５１…電動モーター駆動部、
５２…モーター電流検出部、      １００…窓開閉位置検出装置、
１０１…駆動負荷検出部、        １０２…駆動方向検出部、
１０３…全閉位置検知部、        １０４…全開位置検知部、
１０５…開閉位置算出部、        １０６…移動速度修正部、
１０７…オフ状態検知部、    １０８…報知部、    １５０…窓開閉位置検出装置、
１５６…移動速度修正部、    １５９…計時部。
【図１】
2019210784.tif 000003
【図２】
2019210784.tif 000004
【図３】
2019210784.tif 000005
【図４】
2019210784.tif 000006
【図５】
2019210784.tif 000007
【図６】
2019210784.tif 000008
【図７】
2019210784.tif 000009
【図８】
2019210784.tif 000010
【図９】
2019210784.tif 000011
【図１０】
2019210784.tif 000012