(57)【要約】【課題】ユーザに煩わしさを与えてしまうことを抑制すること。【解決手段】開閉システムは、スイッチと、開閉部材を開閉動作させるモータと、スイッチから出力される操作信号に応じてモータを制御する制御装置とを備え、制御装置は、スイッチの操作回数を計数する計数部と、モータの回転軸の回転量を検出する回転量検出部と、開閉部材の閉動作におけるロックを検出するロック検出部と、回転量に基づいて開閉部材の開閉位置を算出する位置算出部と、操作回数に応じた開閉位置の誤差Δを算出する誤差算出部と、ロックが検出された場合において、式｛ｘ＜（ｂ−Δ）｝を満たす場合、開閉部材を全閉位置まで閉動作させ、式｛ｘ＞（ｂ＋Δ）｝を満たす場合、開閉部材を反転動作させるモータ制御部とを備える。但し、ｘは、全閉位置から開閉部材の上端部までの距離に応じた開閉部材の開閉位置を表し、ｂは、全閉位置から非反転領域の下端部までの距離を表す。【選択図】図５
2020125671.tif 000002
【特許請求の範囲】
【請求項１】
開閉部材の開閉動作を制御する開閉システムであって、
スイッチと、
前記開閉部材を開閉動作させるモータと、
前記スイッチから出力される操作信号に応じて、前記モータを制御する制御装置と
を備え、
前記制御装置は、
前記スイッチの操作回数を計数する計数部と、
前記モータの回転軸の回転量を検出する回転量検出部と、
前記開閉部材の閉動作におけるロックを検出するロック検出部と、
前記回転量に基づいて、前記開閉部材の開閉位置を算出する位置算出部と、
前記操作回数に応じた前記開閉位置の誤差Δを算出する誤差算出部と、
前記ロックが検出された場合において、式｛ｘ＜（ｂ−Δ）｝を満たす場合、前記開閉部材を全閉位置まで閉動作させ、式｛ｘ＞（ｂ＋Δ）｝を満たす場合、前記開閉部材を反転動作させるモータ制御部と
を備えることを特徴とする開閉システム。
但し、ｘは、全閉位置から前記開閉部材の上端部までの距離に応じた前記開閉部材の開閉位置を表し、ｂは、前記全閉位置から非反転領域の下端部までの距離を表す。
【請求項２】
前記モータ制御部は、
前記ロックが検出された場合において、式｛ｘ≧（ｂ−Δ）｝および式｛ｘ≦（ｂ＋Δ）｝の双方を満たす場合、前記開閉部材を反転動作させるとともに、以降の前記開閉部材の自動閉動作を禁止する
ことを特徴とする請求項１に記載の開閉システム。
【請求項３】
前記モータ制御部は、
前記ロックが検出された場合において、式｛ｘ≧（ｂ−Δ）｝および式｛ｘ≦（ｂ＋Δ）｝の双方を満たし、且つ、前記ロックが前回検出されたときとｘが同じである場合、前記開閉部材を全閉位置まで閉動作させる
ことを特徴とする請求項１に記載の開閉システム。
【請求項４】
前記誤差算出部は、
前記操作回数のべき乗に対して、所定の定数を乗じることにより、前記誤差Δを算出する
ことを特徴とする請求項１から３のいずれか一項に記載の開閉システム。
【請求項５】
前記誤差算出部は、
前記操作回数の１／２乗に対して、所定の定数を乗じることにより、前記誤差Δを算出する
ことを特徴とする請求項４に記載の開閉システム。
【請求項６】
前記誤差算出部は、
前記操作回数に対して、所定の定数を乗じることにより、前記誤差Δを算出する
ことを特徴とする請求項１から３のいずれか一項に記載の開閉システム。
【請求項７】
前記開閉部材が前記全閉位置に達したとき、
前記計数部は、前記操作回数をリセットし、
前記位置算出部は、前記開閉位置をリセットする
ことを特徴とする請求項１から６のいずれか一項に記載の開閉システム。
【請求項８】
前記開閉部材が全開位置に達したとき、
前記計数部は、前記操作回数をリセットし、
前記位置算出部は、前記開閉位置をリセットする
ことを特徴とする請求項１から７のいずれか一項に記載の開閉システム。
【請求項９】
前記操作回数が所定回数に達した場合、
前記モータ制御部は、前記開閉部材を全開位置まで開動作させ、
前記計数部は、前記操作回数をリセットし、
前記位置算出部は、前記開閉位置をリセットする
ことを特徴とする請求項１から７のいずれか一項に記載の開閉システム。
【請求項１０】
式｛Δ＞ｂ｝を満たした場合、
前記モータ制御部は、前記開閉部材を全開位置まで開動作させ、
前記計数部は、前記操作回数をリセットし、
前記位置算出部は、前記開閉位置をリセットする
ことを特徴とする請求項１から８のいずれか一項に記載の開閉システム。
【請求項１１】
前記開閉部材が自動閉動作を行っているときに、式｛Δ＞ｂ｝を満たした場合、
前記モータ制御部は、前記開閉部材を全開位置まで開動作させて、前記操作回数および前記開閉位置がリセットされた後、前記開閉部材を全閉位置まで閉動作させる
ことを特徴とする請求項１０に記載の開閉システム。
【請求項１２】
前記開閉部材が自動開閉動作以外の開閉動作を行っているときに、式｛Δ＞ｂ｝を満たした場合、
前記モータ制御部は、前記開閉部材を全開位置まで開動作させて、前記操作回数および前記開閉位置がリセットされた後、前記開閉部材を当該開閉動作の開始時の位置まで復帰させる
ことを特徴とする請求項１０または１１に記載の開閉システム。
【請求項１３】
前記モータを流れる電流を検出する電流検出手段をさらに備え、
前記回転量検出部は、
前記電流検出手段によって検出された前記電流に含まれるリップル成分の発生数に基づいて、前記回転量を検出し、
前記ロック検出部は、
前記電流検出手段によって検出された前記電流に基づいて、前記開閉部材の閉動作におけるロックを検出する
ことを特徴とする請求項１から１２のいずれか一項に記載の開閉システム。
【請求項１４】
前記位置算出部は、
前記モータ制御部が前記モータを駆動する毎に、前記開閉部材の開閉位置を、前記モータの駆動停止時の慣性移動量に応じた所定の補正値で補正する
ことを特徴とする請求項１から１３のいずれか一項に記載の開閉システム。
【請求項１５】
開閉部材の開閉動作を制御する開閉システムであって、
スイッチと、
前記開閉部材を開閉動作させるモータと、
前記スイッチから出力される操作信号に応じて、前記モータを制御する制御装置と
を備え、
前記制御装置は、
前記開閉部材の動作種類毎に動作回数を計数する計数部と、
前記モータの回転軸の回転量を検出する回転量検出部と、
前記開閉部材の閉動作におけるロックを検出するロック検出部と、
前記回転量に基づいて、前記開閉部材の開閉位置を算出する位置算出部と、
前記開閉部材の動作種類毎に動作回数に応じた前記開閉位置の誤差Δを算出する誤差算出部と、
前記ロックが検出された場合において、式｛ｘ＜（ｂ−Δ）｝を満たす場合、前記開閉部材を全閉位置まで閉動作させ、式｛ｘ＞（ｂ＋Δ）｝を満たす場合、前記開閉部材を反転動作させるモータ制御部と
を備えることを特徴とする開閉システム。
但し、ｘは、全閉位置から前記開閉部材の上端部までの距離に応じた前記開閉部材の開閉位置を表し、ｂは、前記全閉位置から非反転領域の下端部までの距離を表す。
【請求項１６】
前記動作種類は、開動作、閉動作、および反転動作を含む
ことを特徴とする請求項１５に記載の開閉システム。
【請求項１７】
前記誤差算出部は、
前記動作種類毎に、前記動作回数のべき乗に対して、所定の定数を乗じることにより、前記誤差Δを算出する
ことを特徴とする請求項１５または１６に記載の開閉システム。
【請求項１８】
前記誤差算出部は、
前記動作種類毎に、前記動作回数の１／２乗に対して、所定の定数を乗じることにより、前記誤差Δを算出する
ことを特徴とする請求項１７に記載の開閉システム。
【請求項１９】
前記誤差算出部は、
前記動作種類毎に、前記動作回数に対して、所定の定数を乗じることにより、前記誤差Δを算出する
ことを特徴とする請求項１５または１６に記載の開閉システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開閉システムに関する。
【背景技術】
【０００２】
従来、例えば、自動車等の車両に搭載されるパワーウインドウ装置では、窓の開閉動作を制御する制御方法として、窓による物体の挟み込みを検知した場合に、窓の開閉動作を反転させることにより、物体の挟み込みを防止する制御方法（以下、「挟み込み防止制御」と示す）が知られている。
【０００３】
また、このようなパワーウインドウ装置に関し、下記特許文献１には、窓の上端部の開閉位置が、全閉位置の近傍に設定された境界位置よりも上方にある場合、窓を確実に閉め切ることができるように、挟み込み防止制御を無効化する技術が開示されている。また、下記特許文献１には、モータを流れる電流におけるリップル成分の発生数に基づいて、モータの回転量を検出し、当該回転量に基づいて、窓の開閉位置を算出する技術も開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−３４２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１に開示されている技術では、モータを流れる電流に基づいて、モータの回転量を検出するため、窓の開閉操作が行われる度に、窓の開閉位置の誤差が蓄積されてしまい、挟み込み防止制御を無効化するための境界位置を正確に判定することができず、窓を誤動作させてしまう虞がある。そこで、従来、このような誤動作を回避するために、窓の開閉位置が全開位置または全閉位置に達したときに窓の開閉位置をリセットし、窓の開閉操作の回数が所定回数を超えた場合、窓の開閉位置がリセットされるまで、窓の自動開閉動作を無効化する技術が考案されている。しかしながら、この技術では、操作回数が所定回数を超える度に、窓の自動開閉動作が無効化されてしまうため、ユーザが思ったとおりに窓を開閉操作することができず、ユーザに煩わしさを与えてしまう虞がある。
【課題を解決するための手段】
【０００６】
一実施形態の開閉システムは、開閉部材の開閉動作を制御する開閉システムであって、スイッチと、開閉部材を開閉動作させるモータと、スイッチから出力される操作信号に応じて、モータを制御する制御装置とを備え、制御装置は、スイッチの操作回数を計数する計数部と、モータの回転軸の回転量を検出する回転量検出部と、開閉部材の閉動作におけるロックを検出するロック検出部と、回転量に基づいて、開閉部材の開閉位置を算出する位置算出部と、操作回数に応じた開閉位置の誤差Δを算出する誤差算出部と、ロックが検出された場合において、式｛ｘ＜（ｂ−Δ）｝を満たす場合、開閉部材を全閉位置まで閉動作させ、式｛ｘ＞（ｂ＋Δ）｝を満たす場合、開閉部材を反転動作させるモータ制御部とを備える。但し、ｘは、全閉位置から開閉部材の上端部までの距離に応じた開閉部材の開閉位置を表し、ｂは、全閉位置から非反転領域の下端部までの距離を表す。
【発明の効果】
【０００７】
一実施形態によれば、ユーザに煩わしさを与えてしまうことを抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る開閉システムのシステム構成を示す図
【図２】本発明の一実施形態に係るマイコンのハードウェア構成を示す図
【図３】本発明の一実施形態に係るマイコンの機能構成を示す図
【図４】本発明の一実施形態に係るマイコンによる制御方法の手順の第１例を示すフローチャート
【図５】本発明の一実施形態に係るマイコンの制御による窓の開閉動作の一例を示す図
【図６】本発明の一実施形態に係るマイコンによる制御方法の手順の第２例を示すフローチャート
【図７】本発明の一実施形態に係るマイコンによる制御方法の手順の第３例を示すフローチャート
【図８】本発明の一実施形態に係るマイコンによる制御方法の手順の第４例を示すフローチャート
【図９】本発明の一実施形態に係るマイコンによる誤差Δの算出例を示す図
【図１０】本発明の一実施形態に係るマイコンによる誤差Δの算出例を示す図
【図１１】本発明の一実施形態に係るマイコンによる誤差Δの算出例を示す図
【図１２】本発明の一実施形態に係るマイコンによる制御方法の手順の第５例を示すフローチャート
【図１３】本発明の一実施形態に係るマイコンによるモータの駆動電圧の制御プロファイルの一例を示す図
【図１４】本発明の一実施形態に係る開閉システムにおけるバッテリ電圧とバックラッシュの発生量との関係を表す図
【発明を実施するための形態】
【０００９】
以下、図面を参照して、一実施形態について説明する。
【００１０】
（開閉システム１のシステム構成）
図１は、本発明の一実施形態に係る開閉システム１のシステム構成を示す図である。図１に示す開閉システム１は、車両に設けられたパワーウインドウ装置５０を制御するシステムであって、パワーウインドウ装置５０が備えるモータ５４の動作を制御することにより、パワーウインドウ装置５０が備える窓５２（「開閉部材」の一例）の開閉動作を制御するシステムである。
【００１１】
図１に示すように、窓５２は、車両が備えるドア２の窓枠２Ａに対して、上下方向に開閉自在に設けられる。なお、開閉システム１は、車両が複数のドア２の各々にパワーウインドウ装置５０を備える場合、図１に示す各構成部を、各パワーウインドウ装置５０に対して設けることにより、複数のパワーウインドウ装置５０の各々に対して、同様の制御を行うことが可能である。
【００１２】
図１に示すように、開閉システム１は、モータ駆動回路１０、電圧検出回路２０、電流検出回路３０、スイッチ４０、およびマイコン１００を備える。
【００１３】
スイッチ４０は、ユーザにより、窓５２を開閉するためのスイッチ操作がなされる装置である。例えば、スイッチ４０は、車両におけるユーザによる操作可能な位置（例えば、ドア、センターコンソール等）に設けられている。スイッチ４０は、開操作、自動開操作、閉操作、および自動閉動作が可能である。スイッチ４０は、ユーザによりいずれかの操作がなされると、当該操作に応じた操作信号をマイコン１００へ出力する。
【００１４】
マイコン１００は、「制御装置」および「コンピュータ」の一例である。マイコン１００は、ユーザによってスイッチ４０に対するスイッチ操作がなされると、当該スイッチ操作に応じて、モータ駆動回路１０に制御信号を供給し、モータ５４の動作を制御することにより、窓５２を開閉動作させる。この際、マイコン１００は、公知の判定技術により、窓５２による挟み込みが生じているか否かを判定することができる。そして、マイコン１００は、窓５２による挟み込みが生じていると判定した場合、窓５２に対する所定の挟み込み防止制御を行うことができる。
【００１５】
モータ駆動回路１０は、マイコン１００から供給される制御信号に応じて、モータ５４に駆動電圧を印加することにより、モータ５４を駆動する。図１に示す例では、モータ駆動回路１０は、フルブリッジ回路を構成する４つのスイッチ素子１１〜１４を備えて構成されている。スイッチ素子１１およびスイッチ素子１２は、バッテリの出力電圧Ｖｂとグラウンドとの間において、直列接続されて設けられている。スイッチ素子１３およびスイッチ素子１４は、バッテリの出力電圧Ｖｂとグラウンドとの間において、直列接続され、且つ、スイッチ素子１１およびスイッチ素子１２と並列に設けられている。スイッチ素子１１とスイッチ素子１２との間には、モータ５４の一方の入力端子が接続されている。スイッチ素子１３とスイッチ素子１４との間には、モータ５４の他方の入力端子が接続されている。モータ駆動回路１０は、マイコン１００から供給される制御信号に応じて、４つのスイッチ素子１１〜１４のスイッチング動作を制御することにより、モータ５４の２つの入力端子に対して、モータ５４の回転軸の回転方向（すなわち、窓５２の開閉動作方向）に応じて極性が異なる駆動電圧を印加することができる。
【００１６】
モータ５４は、２つの入力端子に対して印加される駆動電圧の極性に応じた回転方向に、回転軸が回転する。これにより、モータ５４は、窓５２を開閉する。モータ５４としては、例えば、ＤＣモータが用いられる。
【００１７】
電圧検出回路２０は、バッテリの出力電圧Ｖｂを検出し、バッテリの出力電圧Ｖｂを表す電圧信号を出力する。図１に示す例では、電圧検出回路２０は、増幅部２１およびＡ／Ｄコンバータ２３を有して構成されている。増幅部２１は、バッテリの出力電圧Ｖｂを所定のゲインで増幅する。Ａ／Ｄコンバータ２３は、増幅部２１から出力される電圧を表すデジタル信号を、バッテリの出力電圧Ｖｂを表す信号として出力する。
【００１８】
電流検出回路３０は、「電流検出手段」の一例であり、モータ５４を流れる電流Ｉｍを検出し、モータ５４を流れる電流Ｉｍを表す電流信号を出力する。図１に示す例では、電流検出回路３０は、シャント抵抗ＲＳ、増幅部３１、フィルタ部３２、およびＡ／Ｄコンバータ３３を有して構成されている。シャント抵抗ＲＳは、モータ駆動回路１０とグラウンドとの間の電流経路に設けられている。増幅部３１は、シャント抵抗ＲＳに生じる電圧を所定のゲインで増幅する。フィルタ部３２は、増幅部３１から出力される電圧からスイッチング周波数の成分を除去する。Ａ／Ｄコンバータ３３は、フィルタ部３２から出力される電圧を表すデジタル信号を、モータ５４を流れる電流Ｉｍを表す信号として出力する。
【００１９】
（マイコン１００のハードウェア構成）
図２は、本発明の一実施形態に係るマイコン１００のハードウェア構成を示す図である。図２に示すように、マイコン１００は、ＣＰＵ（Central Processing Unit）１２１、ＲＯＭ（Read Only Memory）１２２、ＲＡＭ（Random Access Memory）１２３、および外部Ｉ／Ｆ（Interface）１２５を備える。各ハードウェアは、バス１２６を介して相互に接続されている。
【００２０】
ＣＰＵ１２１は、ＲＯＭ１２２に記憶されている各種プログラムを実行することにより、マイコン１００の動作を制御する。ＲＯＭ１２２は、不揮発性メモリである。例えば、ＲＯＭ１２２は、ＣＰＵ１２１により実行されるプログラム、ＣＰＵ１２１がプログラムを実行するために必要なデータ等を記憶する。ＲＡＭ１２３は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等の主記憶装置である。例えば、ＲＡＭ１２３は、ＣＰＵ１２１がプログラムを実行する際に利用する作業領域として機能する。外部Ｉ／Ｆ１２５は、モータ駆動回路１０、電圧検出回路２０、電流検出回路３０、およびスイッチ４０に対するデータの入出力を制御する。
【００２１】
（マイコン１００の機能構成）
図３は、本発明の一実施形態に係るマイコン１００の機能構成を示す図である。図３に示すように、マイコン１００は、操作信号取得部１０１、電圧値取得部１０２、電流値取得部１０３、回転量検出部１０４、位置算出部１０５、回転負荷算出部１０６、ロック検出部１０７、計数部１０８、誤差算出部１０９、およびモータ制御部１１０を備える。
【００２２】
なお、図３に示すマイコン１００の各機能は、例えば、マイコン１００において、ＲＯＭ１２２に記憶されたプログラムを、ＣＰＵ１２１が実行することにより実現される。このプログラムは、予めマイコン１００に導入された状態で提供されてもよく、外部から提供されてマイコン１００に導入されるようにしてもよい。後者の場合、このプログラムは、外部記憶媒体（例えば、ＵＳＢメモリ、メモリカード、ＣＤ−ＲＯＭ等）によって提供されてもよく、ネットワーク（例えば、インターネット等）上のサーバからダウンロードすることによって提供されるようにしてもよい。
【００２３】
操作信号取得部１０１は、スイッチ４０から出力された操作信号を取得する。例えば、スイッチ４０は、開操作、自動開操作、閉操作、および自動閉動作が可能である。ユーザによってスイッチ４０のいずれかの操作がなされた場合、スイッチ４０は、当該操作に応じた操作信号を出力する。そして、操作信号取得部１０１は、スイッチ４０から出力された操作信号を取得する。
【００２４】
電圧値取得部１０２は、電圧検出回路２０から出力された、バッテリの出力電圧Ｖｂを示す電圧信号を取得する。電流値取得部１０３は、電流検出回路３０から出力された、モータ５４を流れる電流Ｉｍを示す電流信号を取得する。
【００２５】
回転量検出部１０４は、電流値取得部１０３によって取得された電流信号に基づいて、モータ５４の回転軸の回転量を検出する。具体的には、回転量検出部１０４は、電流値取得部１０３によって取得された電流信号に基づいて、モータ５４を流れる電流Ｉｍに含まれる、予め求められた周波数成分の信号を、リップル成分として検出する。リップル成分は、モータ５４の回転軸が一定の角度回転する毎に、モータ５４を流れる電流Ｉｍに生じるものである。このため、回転量検出部１０４は、モータ５４を流れる電流Ｉｍに含まれるリップル成分の発生数に基づいて、モータ５４の回転軸の回転量を検出することができる。なお、本実施形態では、リップル成分の発生数を、そのままモータ５４の回転軸の回転量を表す値として用いている。
【００２６】
位置算出部１０５は、回転量検出部１０４によって検出されたモータ５４の回転軸の回転量（本実施形態では、リップル成分の発生数によって表される）に基づいて、窓５２の開閉位置（窓枠２Ａ内における高さ位置）を算出する。例えば、本実施形態では、窓５２の移動量は、モータ５４の回転軸の回転量（すなわち、リップル成分の発生数）に比例する。そこで、本実施形態では、リップル成分のカウント値を、そのまま窓の開閉位置を表す値として用いている。具体的には、本実施形態では、窓５２の全閉位置にあるときに、窓５２の開閉位置を表すリップル成分のカウント値を「０」とし、窓５２が開動作に伴って下方に移動するにつれて、窓５２の開閉位置を表すリップル成分のカウント値が、徐々に増加するようにしている。位置算出部１０５は、開閉動作前の窓５２の開閉位置を表すリップル成分のカウント値から、開閉動作中に生じたリップル成分の発生数を加算（開動作の場合）または減算（閉動作の場合）することにより、開閉動作後の窓５２の開閉位置を表すリップル成分のカウント値を算出することができる。このため、位置算出部１０５は、開閉動作後の窓５２の開閉位置を表すリップル成分のカウント値を算出する毎に、当該カウント値を、マイコン１００が備えるメモリに記憶させておく。
【００２７】
なお、位置算出部１０５は、窓５２が全閉位置に達したとき、および、窓５２が全開位置に達したとき、窓５２の開閉位置をリセットする。具体的には、位置算出部１０５は、窓５２が全閉位置に達したとき、窓５２の開閉位置を表すリップル成分のカウント値に「０」を設定する。また、位置算出部１０５は、窓５２が全開位置に達したとき、窓５２の開閉位置を表すリップル成分のカウント値に、所定の最大値を設定する。これにより、位置算出部１０５は、窓５２の開閉位置の誤差Δをリセットすることができる。なお、窓５２が全閉位置に達したとき、および、窓５２が全開位置に達したとき、同時に、計数部１０８は、スイッチ４０の操作回数Ｎに０を設定することにより、スイッチ４０の操作回数Ｎをリセットする。これにより、誤差算出部１０９によって操作回数Ｎに応じて算出される誤差Δもリセットされる。
【００２８】
回転負荷算出部１０６は、電流値取得部１０３によって取得された電流信号に基づいて、モータ５４の回転軸の回転負荷を算出する。本実施形態では、回転負荷算出部１０６は、モータ５４の回転軸の回転負荷を表す値として、モータ５４の駆動トルクτを算出する。モータ５４の回転軸の回転負荷が高まれば、モータ５４の駆動トルクτが高まるからである。例えば、回転負荷算出部１０６は、電流値取得部１０３によって取得された電流信号によって特定される、電流検出回路３０によって検出されたモータ５４を流れる電流Ｉｍに基づいて、式｛τ＝Ｋｔ×Ｉｍ−Ｔｍ｝により、モータ５４の駆動トルクτを算出する。但し、ＫｔおよびＴｍは、モータ５４に固有の定数である。
【００２９】
ロック検出部１０７は、窓５２の閉動作におけるロックを検出する。例えば、ロック検出部１０７は、回転負荷算出部１０６によって算出されたモータ５４の駆動トルクτが所定の閾値以上の場合、「窓５２の閉動作がロックした」と判断する。ロック検出部１０７は、モータ制御部１１０がモータ５４を制御しているにも関わらず、窓５２の位置が所定時間以上変化しない場合、「窓５２の閉動作がロックした」と判断するようにしてもよい。
【００３０】
計数部１０８は、スイッチ４０の操作回数Ｎを計数する。例えば、計数部１０８は、スイッチ４０の操作回数Ｎを記憶しておき、操作信号取得部１０１によって操作信号が取得される毎に、操作回数Ｎに１を加算する。
【００３１】
誤差算出部１０９は、スイッチ４０の操作回数Ｎに応じた窓５２の開閉位置の誤差Δを算出する。例えば、誤差算出部１０９は、下記数式（１）により、窓５２の開閉位置の誤差Δを算出する。但し、σは、スイッチ４０の操作１回あたりの窓５２の開閉位置の誤差の標準偏差を表し、Ｃ，Ｄは、所定の定数を表す。
【００３２】
【数１】
2020125671.tif 000003
【００３３】
これに限らず、誤差算出部１０９は、下記数式（２），（３）、または、その他の数式（少なくとも操作回数Ｎが増加するにつれて、誤差Δが増加するもの）により、窓５２の開閉位置の誤差Δを算出してもよい。
【００３４】
Δ＝Ｄ・Ｎ・・・（２）
【００３５】
Δ＝Ｃ・Ｎ＾Ｄ・・・（３）
【００３６】
モータ制御部１１０は、操作信号取得部１０１によって取得された操作信号に応じて、モータ駆動回路１０へ制御信号を供給してモータ５４を制御することにより、窓５２の開閉動作を制御する。
【００３７】
例えば、モータ制御部１１０は、操作信号取得部１０１によって窓５２の閉操作に応じた操作信号（以下、「閉操作信号」と示す）が取得された場合、スイッチ４０の閉操作がなされている間、モータ５４の回転軸を第１の方向（窓を閉める方向）に回転させるための制御信号をモータ駆動回路１０へ供給することにより、窓５２を閉動作させる。
【００３８】
また、モータ制御部１１０は、操作信号取得部１０１によって窓５２の開操作に応じた操作信号（以下、「開操作信号」と示す）が取得された場合、スイッチ４０の開操作がなされている間、モータ５４の回転軸を第１の方向とは反対方向である第２の方向（窓を閉める方向とは反対方向である窓を開ける方向）に回転させるための制御信号をモータ駆動回路１０へ供給することにより、窓５２を開動作させる。
【００３９】
また、モータ制御部１１０は、操作信号取得部１０１によって窓５２の自動閉操作に応じた操作信号（以下、「自動閉操作信号」と示す）が取得された場合、窓５２が全閉状態となるまでの間、モータ５４の回転軸を第１の方向（窓を閉める方向）に回転させるための制御信号をモータ駆動回路１０へ供給することにより、窓５２を自動閉動作させる。
【００４０】
また、モータ制御部１１０は、操作信号取得部１０１によって窓５２の自動開操作に応じた操作信号（以下、「自動開操作信号」と示す）が取得された場合、窓５２が全開状態となるまでの間、モータ５４の回転軸を第２の方向（窓を開ける方向）に回転させるための制御信号をモータ駆動回路１０へ供給することにより、窓５２を自動開動作させる。
【００４１】
例えば、モータ制御部１１０は、電圧値取得部１０２によって取得されたバッテリの出力電圧Ｖｂに基づいて実効電圧値Ｖｅを算出し、当該実効電圧値Ｖｅの駆動電圧を、モータ駆動回路１０を介してモータ５４に印加することにより、モータ５４の出力を制御する。
【００４２】
なお、モータ制御部１１０は、窓５２が閉動作を行っているときに、ロック検出部１０７によってロックが検出され、且つ窓が非反転領域にある場合、窓５２を反転動作させる。但し、モータ制御部１１０は、窓５２の開閉位置が非反転領域内にある場合、ロック検出部１０７によってロックが検出された場合であっても、窓５２を反転動作させない。このロックは、窓５２がウェザーストリップに当接することによって生じたものと考えられるからである。なお、非反転領域とは、全閉位置から下方に所定幅を有して設けられた領域であり、挟み込み防止制御を行わない領域である。
【００４３】
ここで、本実施形態では、モータ制御部１１０は、ロック検出部１０７によってロックが検出されたとき、窓５２の開閉位置の誤差Δを考慮して、窓５２の開閉動作を制御する。
【００４４】
例えば、モータ制御部１１０は、ロック検出部１０７によってロックが検出されたとき、式｛ｘ＜（ｂ−Δ）｝を満たす場合、窓５２を全閉位置まで閉動作させる。
【００４５】
また、例えば、モータ制御部１１０は、ロック検出部１０７によってロックが検出されたとき、式｛ｘ＞（ｂ＋Δ）｝を満たす場合、窓５２を反転動作させる。
【００４６】
また、例えば、モータ制御部１１０は、ロック検出部１０７によってロックが検出されたとき、式｛ｘ≧（ｂ−Δ）｝および式｛ｘ≦（ｂ＋Δ）｝の双方を満たす場合、窓５２を反転動作させるとともに、以降の窓５２の自動閉動作を禁止する。
【００４７】
上記各式において、ｘは、窓５２の開閉位置を表すリップル成分のカウント数を表し、ｂは、全閉位置から非反転領域の下端までの距離（すなわち、非反転領域の上下幅）を表し、Δは、誤差算出部１０９によって算出された窓５２の開閉位置の誤差を表す。
【００４８】
なお、窓５２の全閉位置（すなわち、リップル成分のカウント値を０とする位置）は、窓５２の窓枠２Ａの上端に備わっているウェザーストリップ（図示省略）へのくい込み量によって変動し得る。このため、例えば、窓５２の全閉位置は、窓５２の上端部がウェザーストリップの溝内に所定量（例えば、最小量、最大量、平均量等）くい込んだときの、窓５２の上端部の位置とするようにしてもよい。この際、窓５２の全閉位置は、窓５２毎に、個体差に応じた適切な値が設定されることが好ましい。
【００４９】
また、非反転領域の下端部までの距離ｂも、窓５２のウェザーストリップへのくい込み量によって変動し得る。例えば、距離ｂは、窓５２の上端部とウェザーストリップの下端部との間で所定の厚さ（例えば、４ｍｍ）の物体を挟み込んだ状態で、ウェザーストリップが所定量（例えば、最小量、最大量、平均量等）押し潰されたときの、窓５２の上端部の位置とするようにしてもよい。なお、ｂは、窓５２毎に、個体差に応じた適切な値が設定されることが好ましい。
【００５０】
なお、操作回数Ｎが所定回数に達した場合、または、式｛Δ＞ｂ｝を満たした場合、モータ制御部１１０が、窓５２を全開位置まで開動作させるとともに、計数部１０８が、操作回数Ｎをリセットし、位置算出部１０５が、開閉位置ｘをリセットするようにしてもよい。
【００５１】
ここで、窓５２が自動閉動作を行っているときに、式｛Δ＞ｂ｝を満たした場合、モータ制御部１１０は、窓５２を全開位置まで開動作させて、操作回数Ｎおよび開閉位置ｘがリセットされた後、窓５２を全閉位置まで閉動作させるようにしてもよい。
【００５２】
また、窓５２が自動開閉動作以外の開閉動作を行っているときに、式｛Δ＞ｂ｝を満たした場合、モータ制御部１１０は、窓５２を全開位置まで開動作させて、その時の窓５２の移動量ΔＰを記憶しておき、操作回数Ｎおよび開閉位置ｘがリセットされた後、窓５２をΔＰ分戻すことにより、窓５２を当該開閉動作の開始時の位置まで復帰させるようにしてもよい。
【００５３】
また、窓５２が自動開動作を行っているときに、式｛Δ＞ｂ｝を満たした場合、モータ制御部１１０は、窓５２を全開位置まで開動作させて、操作回数Ｎおよび開閉位置ｘがリセットされた後、窓５２をそのまま全開位置まで留めておくようにしてもよい。
【００５４】
（マイコン１００による制御方法の手順（第１例））
図４は、本発明の一実施形態に係るマイコン１００による制御方法の手順の第１例を示すフローチャートである。
【００５５】
まず、マイコン１００は、窓５２の操作回数に応じた開閉位置の誤差Δに０を設定するとともに、スイッチ４０の操作回数Ｎに０を設定する（ステップＳ４０１）。
【００５６】
次に、操作信号取得部１０１が、スイッチ４０から自動閉操作信号を取得したか否かを判断する（ステップＳ４０２）。ステップＳ４０２において、「自動閉操作信号を取得していない」と判断された場合、（ステップＳ４０２：Ｎｏ）、マイコン１００は、ステップＳ４０２の処理を再度実行する。
【００５７】
一方、ステップＳ４０２において、「自動閉操作信号を取得した」と判断された場合、（ステップＳ４０２：Ｙｅｓ）、計数部１０８が、操作回数Ｎに１を加算する（ステップＳ４０３）。
【００５８】
次に、ロック検出部１０７が、窓５２の閉動作におけるロックを検出したか否かを判断する（ステップＳ４０４）。
【００５９】
ステップＳ４０４において、「窓５２の閉動作におけるロックを検出していない」と判断された場合（ステップＳ４０４：Ｎｏ）、マイコン１００は、ステップＳ４０４の判断処理を再度実行する。
【００６０】
一方、ステップＳ４０４において、「窓５２の閉動作におけるロックを検出した」と判断された場合（ステップＳ４０４：Ｙｅｓ）、位置算出部１０５が、窓５２の開閉位置ｘを算出する（ステップＳ４０５）。そして、誤差算出部１０９が、スイッチ４０の操作回数Ｎに応じた窓５２の開閉位置の誤差Δを算出する（ステップＳ４０６）。
【００６１】
続いて、モータ制御部１１０が、式｛ｘ＜（ｂ−Δ）｝を満たすか否かを判断する（ステップＳ４０７）。
【００６２】
ステップＳ４０７において、「式｛（ｘ＜（ｂ−Δ）｝を満たす」と判断された場合（ステップＳ４０７：Ｙｅｓ）、モータ制御部１１０が、窓５２を全閉位置まで閉動作させる（ステップＳ４０８）。そして、マイコン１００は、図４に示す一連の処理を終了する。
【００６３】
一方、ステップＳ４０７において、「式｛（ｘ＜（ｂ−Δ）｝を満たさない」と判断された場合（ステップＳ４０７：Ｎｏ）、モータ制御部１１０が、式｛ｘ＞（ｂ＋Δ）｝を満たすか否かを判断する（ステップＳ４０９）。
【００６４】
ステップＳ４０９において、「式｛（ｘ＞（ｂ＋Δ）｝を満たす」と判断された場合（ステップＳ４０９：Ｙｅｓ）、モータ制御部１１０が、窓５２を反転動作させる（ステップＳ４１０）。そして、マイコン１００は、ステップＳ４０２へ処理を戻す。
【００６５】
一方、ステップＳ４０９において、「式｛（ｘ＞（ｂ＋Δ）｝を満たさない」と判断された場合（ステップＳ４０９：Ｎｏ）、モータ制御部１１０が、窓５２を反転動作させる（ステップＳ４１１）。また、モータ制御部１１０が、窓５２の自動閉動作を禁止する（ステップＳ４１２）。そして、マイコン１００は、ステップＳ４０２へ処理を戻す。
【００６６】
この制御方法によれば、物体の挟み込みが生じているか否かを確定することが可能な領域で窓５２がロックした場合、窓５２を全閉位置まで閉動作させるか、または、窓５２を反転動作させることができる。一方、この制御方法によれば、物体の挟み込みが生じているか否かを確定することが困難な領域で窓５２がロックした場合、安全性を重視して、窓５２を反転動作させるとともに、以降の自動閉動作を禁止することができる。この制御方法によれば、誤差が所定の値を超える度に窓の自動開閉動作を無効化するといった、従来の制御方法と比較して、安全性を損なうことなく、自動開閉動作を継続的に利用することができ、したがって、ユーザに煩わしさを与えてしまうことを抑制することができる。
【００６７】
（窓５２の開閉動作の一例）
図５は、本発明の一実施形態に係るマイコン１００の制御による窓５２の開閉動作の一例を示す図である。図５において、ｘ１〜ｘ４は、それぞれ、窓５２の閉動作がロックしたときの窓５２の開閉位置ｘの第１例〜第４例を示す。また、図５において、非反転領域の下端部の位置ｂを基準として、上方に誤差Δを加えた位置から、下方に誤差Δを加えた位置までの範囲を、ハッチングを付して表している。
【００６８】
図５においてｘ１で示すように、窓５２の上端部の位置ｘが、非反転領域の下端部の位置ｂを基準として上方に誤差Δを加えた位置よりも、さらに上方にある場合（すなわち、式｛（ｘ＜（ｂ−Δ）｝を満たす場合）、モータ制御部１１０の制御により、窓５２は、全閉位置まで閉動作する。この場合、誤差Δを考慮しても、物体の挟み込みが生じている可能性が低いと考えられるからである。
【００６９】
また、図５においてｘ４で示すように、窓５２の上端部の位置ｘが、非反転領域の下端部の位置ｂを基準として下方に誤差Δを加えた位置よりも、さらに下方にある場合（すなわち、式｛（ｘ＞（ｂ＋Δ）｝を満たす場合）、モータ制御部１１０の制御により、窓５２は、反転動作する。この場合、誤差Δを考慮しても、物体の挟み込みが生じている可能性が高いと考えられるからである。
【００７０】
一方、図５においてｘ２，ｘ３で示すように、窓５２の上端部の位置ｘが、非反転領域の下端部の位置ｂを基準として、上方に誤差Δを加えた位置と、下方に誤差Δを加えた位置との範囲内にある場合、（すなわち、式｛（ｘ≧（ｂ−Δ）｝および式｛（ｘ≦（ｂ＋Δ）｝の双方を満たす場合）、モータ制御部１１０の制御により、窓５２は、反転動作するとともに、以降の自動閉動作が禁止される。この場合、誤差Δを考慮すると、物体の挟み込みが生じているか否かを確定することは困難であり、このため、安全性を重視して、窓５２を反転動作させるとともに、以降の自動閉動作を禁止するからである。
【００７１】
（マイコン１００による制御方法の手順（第２例））
図６は、本発明の一実施形態に係るマイコン１００による制御方法の手順の第２例を示すフローチャートである。
【００７２】
まず、マイコン１００は、窓５２の誤差Δに０を設定し、スイッチ４０の操作回数Ｎに０を設定し、不明反転変数ｍにＦａｌｓｅを設定する（ステップＳ６０１）。
【００７３】
次に、操作信号取得部１０１が、スイッチ４０から自動閉操作信号を取得したか否かを判断する（ステップＳ６０２）。ステップＳ６０２において、「自動閉操作信号を取得していない」と判断された場合、（ステップＳ６０２：Ｎｏ）、マイコン１００は、ステップＳ６０２の処理を再度実行する。
【００７４】
一方、ステップＳ６０２において、「自動閉操作信号を取得した」と判断された場合、（ステップＳ６０２：Ｙｅｓ）、計数部１０８が、操作回数Ｎに１を加算する（ステップＳ６０３）。
【００７５】
次に、ロック検出部１０７が、窓５２の閉動作におけるロックを検出したか否かを判断する（ステップＳ６０４）。
【００７６】
ステップＳ６０４において、「窓５２の閉動作におけるロックを検出していない」と判断された場合（ステップＳ６０４：Ｎｏ）、マイコン１００は、ステップＳ６０４の判断処理を再度実行する。
【００７７】
一方、ステップＳ６０４において、「窓５２の閉動作におけるロックを検出した」と判断された場合（ステップＳ６０４：Ｙｅｓ）、位置算出部１０５が、窓５２の開閉位置ｘを算出する（ステップＳ６０５）。そして、誤差算出部１０９が、スイッチ４０の操作回数Ｎに応じた窓５２の開閉位置の誤差Δを算出する（ステップＳ６０６）。
【００７８】
続いて、モータ制御部１１０が、式｛ｘ＜（ｂ−Δ）｝を満たすか否かを判断する（ステップＳ６０７）。
【００７９】
ステップＳ６０７において、「式｛（ｘ＜（ｂ−Δ）｝を満たす」と判断された場合（ステップＳ６０７：Ｙｅｓ）、モータ制御部１１０が、窓５２を全閉位置まで閉動作させる（ステップＳ６０８）。そして、マイコン１００は、図６に示す一連の処理を終了する。
【００８０】
一方、ステップＳ６０７において、「式｛（ｘ＜（ｂ−Δ）｝を満たさない」と判断された場合（ステップＳ６０７：Ｎｏ）、モータ制御部１１０が、式｛ｘ＞（ｂ＋Δ）｝を満たすか否かを判断する（ステップＳ６０９）。
【００８１】
ステップＳ６０９において、「式｛（ｘ＞（ｂ＋Δ）｝を満たす」と判断された場合（ステップＳ６０９：Ｙｅｓ）、モータ制御部１１０が、窓５２を反転動作させる（ステップＳ６１０）。そして、マイコン１００は、ステップＳ６０２へ処理を戻す。
【００８２】
一方、ステップＳ６０９において、「式｛（ｘ＞（ｂ＋Δ）｝を満たさない」と判断された場合（ステップＳ６０９：Ｎｏ）、モータ制御部１１０が、不明反転変数ｍにＴｒｕｅが設定されているか否かを判断する（ステップＳ６１１）。ステップＳ６１１において、「不明反転変数ｍにＴｒｕｅが設定されている」と判断された場合（ステップＳ６１１：Ｙｅｓ）、モータ制御部１１０が、窓５２の開閉位置ｘが前回のロック位置と同じであるか否かを判断する（ステップＳ６１２）。
【００８３】
ステップＳ６１２において、「窓５２の開閉位置ｘが前回のロック位置と同じである」と判断された場合（ステップＳ６１２：Ｙｅｓ）、モータ制御部１１０が、窓５２を全閉位置まで閉動作させる（ステップＳ６０８）。そして、マイコン１００は、図６に示す一連の処理を終了する。
【００８４】
一方、ステップＳ６１１において、「不明反転変数ｍにＴｒｕｅが設定されていない」と判断された場合（ステップＳ６１１：Ｎｏ）、または、ステップＳ６１２において、「窓５２の開閉位置ｘが前回のロック位置と同じではない」と判断された場合（ステップＳ６１２：Ｎｏ）、モータ制御部１１０が、窓５２を反転動作させる（ステップＳ６１３）。また、モータ制御部１１０が、不明反転変数ｍにＴｒｕｅを設定する（ステップＳ６１４）。そして、マイコン１００は、ステップＳ６０２へ処理を戻す。
【００８５】
この制御方法によれば、物体の挟み込みが生じているか否かを確定することが困難な領域で窓５２がロックした場合であっても、窓５２がロックした位置が前回の自動閉動作においてロックしたときと同じである場合、窓５２を全閉位置まで閉動作させることができる。この場合、窓５２が物体の挟み込みによってロックしたのではなく、窓５２がウェザーストリップに当接することによってロックした可能性が高いと考えられるからである。したがって、この制御方法によれば、窓５２の閉め切り動作時のロックを高精度に判定することができ、したがって、窓５２の閉め切り動作時における誤動作を抑制することができる。
【００８６】
（マイコン１００による制御方法の手順（第３例））
図７は、本発明の一実施形態に係るマイコン１００による制御方法の手順の第３例を示すフローチャートである。
【００８７】
まず、マイコン１００は、スイッチ４０の操作回数Ｎに０を設定する（ステップＳ７０１）。
【００８８】
次に、操作信号取得部１０１が、スイッチ４０から操作信号を取得したか否かを判断する（ステップＳ７０２）。ステップＳ７０２において、「操作信号を取得していない」と判断された場合、（ステップＳ７０２：Ｎｏ）、マイコン１００は、ステップＳ７０２の処理を再度実行する。
【００８９】
一方、ステップＳ７０２において、「操作信号を取得した」と判断された場合、（ステップＳ７０２：Ｙｅｓ）、計数部１０８が、操作回数Ｎに１を加算するとともに、位置算出部１０５が、変数Ｐ１に操作開始時の窓５２の開閉位置を設定する（ステップＳ７０３）。
【００９０】
次に、ロック検出部１０７が、窓５２の自動閉動作におけるロックを検出したか否かを判断する（ステップＳ７０４）。
【００９１】
ステップＳ７０４において、「窓５２の自動閉動作におけるロックを検出していない」と判断された場合（ステップＳ７０４：Ｎｏ）、誤差算出部１０９が、窓５２の開閉動作が終了したか否かを判断する（ステップＳ７１３）。
【００９２】
ステップＳ７１３において、「窓５２の開閉動作が終了していない」と判断された場合（ステップＳ７１３：Ｎｏ）、マイコン１００は、ステップＳ７０４へ処理を戻す。
【００９３】
一方、ステップＳ７１３において、「窓５２の開閉動作が終了した」と判断された場合（ステップＳ７１３：Ｙｅｓ）、誤差算出部１０９が、スイッチ４０の操作回数Ｎに応じた窓５２の開閉位置の誤差Δを算出する（ステップＳ７１４）。
【００９４】
そして、モータ制御部１１０が、式｛Δ＞ｂ｝を満たすか否かを判断する（ステップＳ７１５）。ステップＳ７１５において、「式｛Δ＞ｂ｝を満たさない」と判断された場合（ステップＳ７１５：Ｎｏ）、マイコン１００は、ステップＳ７０２へ処理を戻す。
【００９５】
一方、ステップＳ７１５において、「式｛Δ＞ｂ｝を満たす」と判断された場合（ステップＳ７１５：Ｙｅｓ）、モータ制御部１１０が、窓５２を全開位置まで開動作させる（ステップＳ７１６）。そして、モータ制御部１１０が、変数Ｐ２に全開位置における窓５２の開閉位置ｘを設定して、変数ΔＰに、Ｐ２−Ｐ１によって求められる窓５２の移動量を設定し、さらに、位置算出部１０５が、窓５２の開閉位置ｘに窓の下端位置に対応する所定値を設定することにより、開閉位置ｘをリセットする（ステップＳ７１７）。
【００９６】
続いて、モータ制御部１１０が、ΔＰ分、窓５２を閉動作させることにより、窓５２を開閉動作開始時の開閉位置に復帰させる（ステップＳ７１８）。また、計数部１０８が、操作回数Ｎを１にする（ステップＳ７１９）。そして、マイコン１００は、ステップＳ７０２へ処理を戻す。
【００９７】
一方、ステップＳ７０４において、「窓５２の自動閉動作におけるロックを検出した」と判断された場合（ステップＳ７０４：Ｙｅｓ）、位置算出部１０５が、窓５２の開閉位置ｘを算出する（ステップＳ７０５）。そして、誤差算出部１０９が、スイッチ４０の操作回数Ｎに応じた窓５２の開閉位置の誤差Δを算出する（ステップＳ７０６）。
【００９８】
続いて、モータ制御部１１０が、式｛ｘ＜（ｂ−Δ）｝を満たすか否かを判断する（ステップＳ７０７）。
【００９９】
ステップＳ７０７において、「式｛（ｘ＜（ｂ−Δ）｝を満たす」と判断された場合（ステップＳ７０７：Ｙｅｓ）、モータ制御部１１０が、窓５２を全閉位置まで閉動作させる（ステップＳ７０８）。そして、マイコン１００は、図７に示す一連の処理を終了する。
【０１００】
一方、ステップＳ７０７において、「式｛（ｘ＜（ｂ−Δ）｝を満たさない」と判断された場合（ステップＳ７０７：Ｎｏ）、モータ制御部１１０が、式｛ｘ＞（ｂ＋Δ）｝を満たすか否かを判断する（ステップＳ７０９）。
【０１０１】
ステップＳ７０９において、「式｛（ｘ＞（ｂ＋Δ）｝を満たす」と判断された場合（ステップＳ７０９：Ｙｅｓ）、モータ制御部１１０が、窓５２を反転動作させる（ステップＳ７１０）。そして、マイコン１００は、ステップＳ７０２へ処理を戻す。
【０１０２】
一方、ステップＳ７０９において、「式｛（ｘ＞（ｂ＋Δ）｝を満たさない」と判断された場合（ステップＳ７０９：Ｎｏ）、モータ制御部１１０が、窓５２を全開位置まで開動作させる（ステップＳ７１１）。そして、位置算出部１０５が、窓５２の開閉位置ｘに窓の下端位置に対応する所定値を設定するとともに、計数部１０８が、操作回数Ｎに０を設定する（ステップＳ７１２）。そして、マイコン１００は、ステップＳ７０２へ処理を戻す。
【０１０３】
この制御方法によれば、窓５２の開閉位置の誤差Δが非反転領域の上下幅よりも大きくなったときに、窓５２を全開位置まで開動作させて窓の開閉位置をリセットするため、誤差Δをリセットすることができ、例えば、誤差Δが非反転領域の上下幅よりも大きくなることに起因して窓５２を閉じ切ることができなくなるといった事態を回避することができる。特に、この制御方法によれば、窓５２を全開位置へ開動作させて窓の開閉位置をリセットするため、リセット時の挟み込みが生じることなく、挟み込みによる事故の発生を回避できる。また、この制御方法によれば、窓５２の開閉位置をリセットした後、窓５２を操作開始時の位置に復帰させることができるため、操作開始時の位置に復帰させるためのユーザ操作が不要であり、したがって、ユーザに煩わしさを与えてしまうことを抑制することができる。
【０１０４】
（マイコン１００による制御方法の手順（第４例））
図８は、本発明の一実施形態に係るマイコン１００による制御方法の手順の第４例を示すフローチャートである。
【０１０５】
まず、マイコン１００は、スイッチ４０の操作回数Ｎに０を設定する（ステップＳ８０１）。
【０１０６】
次に、操作信号取得部１０１が、スイッチ４０から操作信号を取得したか否かを判断する（ステップＳ８０２）。ステップＳ８０２において、「操作信号を取得していない」と判断された場合、（ステップＳ８０２：Ｎｏ）、マイコン１００は、ステップＳ８０２の処理を再度実行する。
【０１０７】
一方、ステップＳ８０２において、「操作信号を取得した」と判断された場合、（ステップＳ８０２：Ｙｅｓ）、計数部１０８が、操作回数Ｎに１を加算するとともに、位置算出部１０５が、変数Ｐ１に操作開始時の窓５２の開閉位置を設定する（ステップＳ８０３）。
【０１０８】
次に、ロック検出部１０７が、窓５２の自動閉動作におけるロックを検出したか否かを判断する（ステップＳ８０４）。
【０１０９】
ステップＳ８０４において、「窓５２の自動閉動作におけるロックを検出していない」と判断された場合（ステップＳ８０４：Ｎｏ）、マイコン１００は、ステップＳ８０４の判断処理を再度実行する。
【０１１０】
一方、ステップＳ８０４において、「窓５２の閉動作におけるロックを検出した」と判断された場合（ステップＳ８０４：Ｙｅｓ）、位置算出部１０５が、窓５２がロックした位置が全閉位置であるか否かを判断する（ステップＳ８０５）。
【０１１１】
ステップＳ８０５において、「窓５２がロックした位置が全閉位置である」と判断された場合（ステップＳ８０５：Ｙｅｓ）、位置算出部１０５が、窓５２の開閉位置ｘに０を設定することにより、開閉位置ｘをリセットするとともに、計数部１０８が、操作回数Ｎに０を設定することにより、操作回数Ｎをリセットする（ステップＳ８０６）。そして、マイコン１００は、図８に示す一連の処理を終了する。
【０１１２】
一方、ステップＳ８０５において、「窓５２がロックした位置が全閉位置ではない」と判断された場合（ステップＳ８０５：Ｎｏ）、計数部１０８が、操作回数Ｎが所定回数よりも大きいか否かを判断する（ステップＳ８０７）。
【０１１３】
ステップＳ８０７において、「操作回数Ｎが所定回数以下である」と判断された場合（ステップＳ８０７：Ｎｏ）、マイコン１００は、ステップＳ８０２へ処理をもどす。
【０１１４】
一方、ステップＳ８０７において、「操作回数Ｎが所定回数より大きい」と判断された場合（ステップＳ８０７：Ｙｅｓ）、モータ制御部１１０が、窓５２を全開位置まで開動作させる（ステップＳ８０８）。
【０１１５】
そして、モータ制御部１１０が、変数Ｐ２に全開位置における窓５２の開閉位置ｘを設定して、変数ΔＰに、Ｐ２−Ｐ１によって求められる窓５２の移動量を設定し、さらに、位置算出部１０５が、窓５２の開閉位置ｘに窓の下端位置に対応する所定値を設定することにより、開閉位置ｘをリセットする（ステップＳ８０９）。
【０１１６】
続いて、モータ制御部１１０が、ΔＰ分、窓５２を閉動作させることにより、窓５２を開閉動作開始時の開閉位置に復帰させる（ステップＳ８１０）。また、計数部１０８が、操作回数Ｎを１にする（ステップＳ８１１）。そして、マイコン１００は、ステップＳ８０２へ処理を戻す。
【０１１７】
この制御方法によれば、操作回数Ｎが所定回数を超えたとき、窓５２を全開位置まで開動作させて窓５２の開閉位置をリセットするため、誤差Δをリセットすることができ、例えば、誤差Δが非反転領域の上下幅よりも大きくなることに起因して窓５２を閉じ切ることができなくなるといった事態を回避することができる。特に、この制御方法によれば、窓５２を全開位置へ開動作させて窓の開閉位置をリセットするため、リセット時の挟み込みが生じることなく、挟み込みによる事故の発生を回避できる。また、この制御方法によれば、窓５２の開閉位置をリセットした後、窓５２を操作開始時の位置に復帰させることができるため、操作開始時の位置に復帰させるためのユーザ操作が不要であり、したがって、ユーザに煩わしさを与えてしまうことを抑制することができる。
【０１１８】
（マイコン１００による誤差Δの算出例）
図９〜図１１は、本発明の一実施形態に係るマイコン１００による誤差Δの算出例を示す図である。
【０１１９】
＜第１算出例＞
図９は、マイコン１００によって上記数式（１）を用いて算出された誤差Δを、実際の窓５２に生じた誤差Δと比較して表すものである。図９に示すグラフにおいて、横軸は操作回数Ｎの０．５乗を表し、縦軸は誤差Δ［リップルカウント］を表す。また、図９に示すグラフおいて、点線は、マイコン１００によって上記数式（１）を用いて算出された誤差Δを表し、ドットは、実際に生じた誤差Δを表す。
【０１２０】
図９に示す第１算出例では、定数Ｃとして、個体差に応じて予め求められた好適な値である「２．８２５７」を用いている。すなわち、図９に示す第１算出例では、式｛Δ＝２．８２５７・Ｎ＾０．５｝を用いて、誤差Δを算出している。
【０１２１】
図９に示すように、マイコン１００によって上記数式（１）を用いて算出される誤差Δは、操作回数Ｎが増加するにつれて誤差Δが増加するものであり、実際の窓５２に生じる誤差Δと概ね近似するものである。このように、この第１算出例では、上記数式（１）を用いて、定数Ｃに適切な値を設定することにより、誤差Δを高精度に算出できることが確認された。
【０１２２】
＜第２算出例＞
図１０は、マイコン１００によって上記数式（２）を用いて算出された誤差Δを、実際の窓５２に生じた誤差Δと比較して表すものである。図１０に示すグラフにおいて、横軸は操作回数Ｎを表し、縦軸は誤差Δ［リップルカウント］を表す。また、図１０に示すグラフおいて、点線は、マイコン１００によって上記数式（２）を用いて算出された誤差Δを表し、ドットは、実際に生じた誤差Δを表す。
【０１２３】
図１０に示す第２算出例では、定数Ｄとして、個体差に応じて予め求められた好適な値である「０．８１３５」を設定している。すなわち、図１０に示す第２算出例では、式｛Δ＝０．８１３５・Ｎ｝を用いて、誤差Δを算出している。
【０１２４】
図１０に示すように、マイコン１００によって上記数式（２）を用いて算出される誤差Δは、操作回数Ｎが増加するにつれて誤差Δが線形に増加するものであり、実際の窓５２に生じる誤差Δと概ね近似するものである。このように、この第２算出例では、上記数式（２）を用いて、定数Ｄに適切な値を設定することにより、誤差Δを高精度に算出できることが確認された。
【０１２５】
＜第３算出例＞
図１１は、マイコン１００によって上記数式（３）を用いて算出された誤差Δを、実際の窓５２に生じた誤差Δと比較して表すものである。図１１に示すグラフにおいて、横軸は操作回数Ｎを表し、縦軸は誤差Δ［リップルカウント］を表す。また、図１１に示すグラフおいて、点線は、マイコン１００によって上記数式（３）を用いて算出された誤差Δを表し、ドットは、実際に生じた誤差Δを表す。
【０１２６】
図１１に示す第３算出例では、定数Ｃとして、個体差に応じて予め求められた好適な値である「０．６８５８」を設定している。また、定数Ｄとして、個体差に応じて予め求められた好適な値である「２．１３０４」を設定している。すなわち、図１１に示す第３算出例では、式｛Δ＝０．６８５８・Ｎ＾２．１３０４｝を用いて、誤差Δを算出している。
【０１２７】
図１１に示すように、マイコン１００によって上記数式（３）を用いて算出される誤差Δは、操作回数Ｎが増加するにつれて誤差Δが非線形に増加するものであり、実際の窓５２に生じる誤差Δと概ね近似するものである。このように、この第３算出例では、上記数式（３）を用いて、定数Ｃおよび定数Ｄに適切な値を設定することにより、誤差Δを高精度に算出できることが確認された。
【０１２８】
以上説明したように、本実施形態の開閉システム１は、スイッチ４０と、窓５２を開閉動作させるモータ５４と、スイッチ４０から出力される操作信号に応じて、モータ５４を制御するマイコン１００とを備え、マイコン１００は、スイッチ４０の操作回数Ｎを計数する計数部１０８と、モータ５４の回転軸の回転量を検出する回転量検出部１０４と、窓５２の閉動作におけるロックを検出するロック検出部１０７と、回転量検出部１０４によって検出された回転量に基づいて、窓５２の開閉位置ｘを算出する位置算出部１０５と、操作回数Ｎに応じた開閉位置ｘの誤差Δを算出する誤差算出部１０９と、ロックが検出された場合において、式｛ｘ＜（ｂ−Δ）｝を満たす場合、窓５２を全閉位置まで閉動作させ、式｛ｘ＞（ｂ＋Δ）｝を満たす場合、窓５２を反転動作させるモータ制御部１１０とを備える。
【０１２９】
これにより、本実施形態の開閉システム１は、誤差Δを考慮したうえで、物体の挟み込みが生じていないと確定できる場合（式｛ｘ＜（ｂ−Δ）｝を満たす場合）、窓５２を全閉位置まで閉動作させることができる。また、本実施形態の開閉システム１は、誤差Δを考慮したうえで、物体の挟み込みが生じていると確定できる場合（式｛ｘ＞（ｂ＋Δ）｝を満たす場合）、および、物体の挟み込みが生じているか否か不明である場合、安全性を重視して、窓５２を反転動作させることができる。すなわち、本実施形態の開閉システム１によれば、誤差が所定の値を超える度に窓の自動開閉動作を無効化するといった、従来の制御方法と比較して、安全性を損なうことなく、窓５２の自動開閉機能を継続的に利用することができ、したがって、ユーザに煩わしさを与えてしまうことを抑制することができる。
【０１３０】
また、本実施形態の開閉システム１において、モータ制御部１１０は、ロックが検出された場合において、式｛ｘ≧（ｂ−Δ）｝および式｛ｘ≦（ｂ＋Δ）｝の双方を満たす場合、窓５２を反転動作させるとともに、以降の窓５２の自動閉動作を禁止することができる。
【０１３１】
これにより、本実施形態の開閉システム１は、誤差Δを考慮したうえで、物体の挟み込みが生じているか否か不明である場合、安全性を重視して、窓５２を反転動作させることができるとともに、それ以降も、安全性を重視して、窓５２の自動ではない閉動作により、窓５２を全閉位置まで閉め切ることができる。
【０１３２】
また、本実施形態の開閉システム１において、モータ制御部１１０は、ロックが検出された場合において、式｛ｘ≧（ｂ−Δ）｝および式｛ｘ≦（ｂ＋Δ）｝の双方を満たし、且つ、ロックが前回検出されたときとｘが同じである場合、窓５２を全閉位置まで閉動作させることができる。
【０１３３】
これにより、本実施形態の開閉システム１は、物体の挟み込みが生じているか否か不明な領域で窓５２がロックした場合であっても、窓５２がロックした位置が前回ロックしたときと同じである場合、窓５２を全閉位置まで閉動作させることができる。この場合、窓５２が物体の挟み込みによってロックしたのではなく、窓５２がウェザーストリップに当接することによってロックした可能性が高いと考えられるからである。したがって、本実施形態の開閉システム１によれば、窓５２の閉め切り動作時のロックを高精度に判定することができ、したがって、窓５２の閉め切り動作時における誤動作を抑制することができる。
【０１３４】
また、本実施形態の開閉システム１において、誤差算出部１０９は、操作回数Ｎのべき乗に対して、所定の定数を乗じることにより、誤差Δを算出することができる。
【０１３５】
これにより、本実施形態の開閉システム１は、所定の定数に適切な値を設定することにより、誤差Δを比較的高精度に算出することができ、したがって、ロックが検出されたときの、窓５２による挟み込みであるか否かの判定精度をより高めることができる。
【０１３６】
また、本実施形態の開閉システム１において、誤差算出部１０９は、操作回数Ｎの１／２乗に対して、所定の定数を乗じることにより、誤差Δを算出することができる。
【０１３７】
これにより、本実施形態の開閉システム１は、所定の定数に適切な値を設定することにより、誤差Δを比較的高精度に算出することができ、したがって、ロックが検出されたときの、窓５２による挟み込みであるか否かの判定精度をより高めることができる。
【０１３８】
また、本実施形態の開閉システム１において、誤差算出部１０９は、操作回数Ｎに対して、所定の定数を乗じることにより、誤差Δを算出することができる。
【０１３９】
これにより、本実施形態の開閉システム１は、所定の定数に適切な値を設定することにより、誤差Δを比較的高精度に算出することができ、したがって、ロックが検出されたときの、窓５２による挟み込みであるか否かの判定精度をより高めることができる。
【０１４０】
また、本実施形態の開閉システム１において、窓５２が全閉位置に達したとき、計数部１０８は、操作回数Ｎをリセットし、位置算出部１０５は、開閉位置ｘをリセットすることができる。
【０１４１】
これにより、本実施形態の開閉システム１は、窓５２が全閉位置に達したとき、位置算出部１０５によって算出される開閉位置ｘと、実際の窓の開閉位置とを一致させることができ、すなわち、誤差Δを０にすることができ、よって、その後の窓５２による挟み込みであるか否かの判定精度をより高めることができる。
【０１４２】
また、本実施形態の開閉システム１において、窓５２が全開位置に達したとき、計数部１０８は、操作回数Ｎをリセットし、位置算出部１０５は、開閉位置ｘをリセットすることができる。
【０１４３】
これにより、本実施形態の開閉システム１は、窓５２が全開位置に達したとき、位置算出部１０５によって算出される開閉位置ｘと、実際の窓の開閉位置とを一致させることができ、すなわち、誤差Δを０にすることができ、よって、その後の窓５２による挟み込みであるか否かの判定精度をより高めることができる。
【０１４４】
また、本実施形態の開閉システム１において、操作回数Ｎが所定回数に達した場合、モータ制御部１１０は、窓５２を全開位置まで開動作させ、計数部１０８は、操作回数Ｎをリセットし、位置算出部１０５は、開閉位置ｘをリセットすることができる。
【０１４５】
これにより、本実施形態の開閉システム１は、操作回数Ｎが所定回数に達することによって誤差Δが一定量に達した時、自動的に窓５２を全開位置まで開動作させて、位置算出部１０５によって算出される開閉位置ｘと、実際の窓の開閉位置とを一致させることができ、すなわち、誤差Δを０にすることができ、よって、その後の窓５２による挟み込みであるか否かの判定精度をより高めることができる。
【０１４６】
また、本実施形態の開閉システム１において、式｛Δ＞ｂ｝を満たした場合、モータ制御部１１０は、窓５２を全開位置まで開動作させ、計数部１０８は、操作回数Ｎをリセットし、位置算出部１０５は、開閉位置ｘをリセットすることができる。
【０１４７】
これにより、本実施形態の開閉システム１は、誤差Δが一定量に達した時、自動的に窓５２を全開位置まで開動作させて、位置算出部１０５によって算出される開閉位置ｘと、実際の窓の開閉位置とを一致させることができ、すなわち、誤差Δを０にすることができ、よって、その後の窓５２による挟み込みであるか否かの判定精度をより高めることができる。
【０１４８】
また、本実施形態の開閉システム１において、窓５２が自動閉動作を行っているときに、式｛Δ＞ｂ｝を満たした場合、モータ制御部１１０は、窓５２を全開位置まで開動作させて、操作回数Ｎおよび開閉位置ｘがリセットされた後、窓５２を全閉位置まで閉動作させることができる。
【０１４９】
これにより、本実施形態の開閉システム１は、窓５２の開閉位置をリセットした後、窓５２を自動閉動作を自動的に再開することができるため、自動閉動作を再開するためのユーザ操作が不要であり、したがって、ユーザに煩わしさを与えてしまうことを抑制することができる。
【０１５０】
また、本実施形態の開閉システム１において、窓５２が自動開閉動作以外の開閉動作を行っているときに、式｛Δ＞ｂ｝を満たした場合、モータ制御部１１０は、窓５２を全開位置まで開動作させて、操作回数Ｎおよび開閉位置ｘがリセットされた後、窓５２を当該開閉動作の開始時の位置まで復帰させることができる。
【０１５１】
これにより、本実施形態の開閉システム１は、窓５２の開閉位置をリセットした後、窓５２を操作開始時の位置に自動的に復帰させることができるため、操作開始時の位置に復帰させるためのユーザ操作が不要であり、したがって、ユーザに煩わしさを与えてしまうことを抑制することができる。
【０１５２】
また、本実施形態の開閉システム１は、モータ５４を流れる電流を検出する電流検出回路３０をさらに備え、回転量検出部１０４は、電流検出回路３０によって検出された電流に含まれるリップル成分の発生数に基づいて、回転量を検出し、ロック検出部１０７は、電流検出回路３０によって検出された電流に基づいて、窓５２の閉動作におけるロックを検出することができる。
【０１５３】
これにより、本実施形態の開閉システム１は、回転量を検出する構成にかかるコストを抑制することができる。
【０１５４】
（マイコン１００による制御方法の手順（第５例））
図１２は、本発明の一実施形態に係るマイコン１００による制御方法の手順の第５例を示すフローチャートである。
【０１５５】
まず、マイコン１００は、以下に示すとおり、各種変数を初期化する（ステップＳ１２０１）。
【０１５６】
・窓５２の開閉位置の誤差Δに０を設定する。
【０１５７】
・窓５２の閉動作回数Ｎｕｐに０を設定する。
【０１５８】
・窓５２の開動作回数Ｎｄｏｗｎに０を設定する。
【０１５９】
・窓５２の反転動作回数Ｎｐｉｎｃｈに０を設定する。
【０１６０】
次に、操作信号取得部１０１が、スイッチ４０から自動閉操作信号または自動開操作信号を取得したか否かを判断する（ステップＳ１２０２）。ステップＳ１２０２において、「自動閉操作信号または自動開操作信号を取得していない」と判断された場合、（ステップＳ１２０２：Ｎｏ）、マイコン１００は、ステップＳ１２０２の処理を再度実行する。
【０１６１】
一方、ステップＳ１２０２において、「自動閉操作信号または自動開操作信号を取得した」と判断された場合、（ステップＳ１２０２：Ｙｅｓ）、計数部１０８が、取得された操作信号が自動閉操作信号であるか否かを判断する（ステップＳ１２０３）。
【０１６２】
ステップＳ１２０３において、取得された操作信号が自動閉操作信号であると判断された場合（ステップＳ１２０３：Ｙｅｓ）、計数部１０８が、閉動作回数Ｎｕｐに１を加算する（ステップＳ１２０４）。そして、計数部１０８が、窓５２が反転動作したか否かを判断する（ステップＳ１２０５）。
【０１６３】
ステップＳ１２０５において、窓５２が反転動作したと判断された場合（ステップＳ１２０５：Ｙｅｓ）、計数部１０８が、反転動作回数Ｎｐｉｎｃｈに１を加算する（ステップＳ１２０５）。そして、マイコン１００は、ステップＳ１２０８へ処理を進める。
【０１６４】
一方、ステップＳ１２０５において、窓５２が反転動作していないと判断された場合（ステップＳ１２０５：Ｎｏ）、マイコン１００は、ステップＳ１２０８へ処理を進める。
【０１６５】
ステップＳ１２０３において、取得された操作信号が自動閉操作信号ではない（すなわち、自動開操作信号である）と判断された場合（ステップＳ１２０３：Ｎｏ）、計数部１０８が、閉動作回数Ｎｄｏｗｎに１を加算する（ステップＳ１２０７）。そして、マイコン１００は、ステップＳ１２０８へ処理を進める。
【０１６６】
ステップＳ１２０８では、ロック検出部１０７が、窓５２の閉動作におけるロックを検出したか否かを判断する。
【０１６７】
ステップＳ１２０８において、「窓５２の閉動作におけるロックを検出していない」と判断された場合（ステップＳ１２０８：Ｎｏ）、マイコン１００は、図１２に示す一連の処理を終了する。
【０１６８】
一方、ステップＳ１２０８において、「窓５２の閉動作におけるロックを検出した」と判断された場合（ステップＳ１２０８：Ｙｅｓ）、位置算出部１０５が、窓５２の開閉位置ｘを算出する（ステップＳ１２０９）。そして、モータ制御部１１０が、式｛ｘ＜（ｂ−Δ）｝を満たすか否かを判断する（ステップＳ１２１０）。
【０１６９】
ステップＳ１２１０において、「式｛（ｘ＜（ｂ−Δ）｝を満たす」と判断された場合（ステップＳ１２１０：Ｙｅｓ）、モータ制御部１１０が、窓５２を全閉位置まで閉動作させる（ステップＳ１２１１）。そして、マイコン１００は、図１２に示す一連の処理を終了する。
【０１７０】
一方、ステップＳ１２１０において、「式｛（ｘ＜（ｂ−Δ）｝を満たさない」と判断された場合（ステップＳ１２１０：Ｎｏ）、モータ制御部１１０が、式｛ｘ＞（ｂ＋Δ）｝を満たすか否かを判断する（ステップＳ１２１２）。
【０１７１】
ステップＳ１２１２において、「式｛（ｘ＞（ｂ＋Δ）｝を満たす」と判断された場合（ステップＳ１２１２：Ｙｅｓ）、モータ制御部１１０が、窓５２を反転動作させる（ステップＳ１２１３）。そして、マイコン１００は、ステップＳ１２１６へ処理を進める。
【０１７２】
一方、ステップＳ１２１２において、「式｛（ｘ＞（ｂ＋Δ）｝を満たさない」と判断された場合（ステップＳ１２１２：Ｎｏ）、モータ制御部１１０が、窓５２を反転動作させる（ステップＳ１２１４）。また、モータ制御部１１０が、窓５２の自動閉動作を禁止する（ステップＳ１２１５）。そして、マイコン１００は、ステップＳ１２１６へ処理を進める。
【０１７３】
ステップＳ１２１６では、誤差算出部１０９が、スイッチ４０の閉動作回数Ｎｕｐ、開動作回数Ｎｄｏｗｎ、および反転動作回数Ｎｐｉｎｃｈに基づいて、窓５２の開閉位置の誤差Δを更新する。その後、マイコン１００は、ステップＳ１２０２へ処理を戻す。
【０１７４】
例えば、ステップＳ１２１６では、誤差算出部１０９は、下記数式（４）を用いて、窓５２の開閉位置の誤差Δ（更新後の値）を算出する。
【０１７５】
Δ＝Ｅｕｐ・ＮｕｐＦｕｐ
＋Ｅｄｏｗｎ・ＮｄｏｗｎＦｄｏｗｎ
＋Ｅｐｉｎｃｈ・ＮｐｉｎｃｈＦｐｉｎｃｈ・・・（４）
【０１７６】
上記数式（４）によって求められる誤差Δは、スイッチ４０の閉動作回数Ｎｕｐによる窓５２の開閉位置の誤差と、スイッチ４０の開動作回数Ｎｄｏｗｎによる窓５２の開閉位置の誤差と、スイッチ４０の反転動作回数Ｎｐｉｎｃｈによる窓５２の開閉位置の誤差とが足し合されたものである。
【０１７７】
但し、上記数式（４）において、各パラメータＥｕｐ，Ｆｕｐ，Ｅｄｏｗｎ，Ｆｄｏｗｎ，Ｅｐｉｎｃｈ，Ｆｐｉｎｃｈには、予め、実機テスト、シミュレーション等によって、窓５２毎に個別に求めておいた好適な値が設定される。
【０１７８】
例えば、ある実施例では、各指数Ｆｕｐ＝１,Ｆｄｏｗｎ＝１,Ｆｐｉｎｃｈ＝１とした場合、各定数Ｅｕｐ＝０．２３,Ｅｄｏｗｎ＝２．４５,Ｅｐｉｎｃｈ＝３．３３とすることが、好適である（すなわち、誤差Δを高精度に算出できる）ことが確認された。
【０１７９】
また、例えば、他の実施例では、各指数Ｆｕｐ＝０．５,Ｆｄｏｗｎ＝０．５,Ｆｐｉｎｃｈ＝０．５とした場合、各定数Ｅｕｐ＝０．３１,Ｅｄｏｗｎ＝３．５７,Ｅｐｉｎｃｈ＝４．４８とすることが、好適である（すなわち、誤差Δを高精度に算出できる）ことが確認された。
【０１８０】
この制御方法によれば、窓５２の動作の種類毎（閉動作、開動作、および反転動作毎）に誤差を求め、窓５２の動作の種類毎の複数の誤差を足し合わせることにより、窓５２の開閉位置の誤差Δを算出するため、窓５２の動作の種類毎に生じる誤差が異なる場合であっても、より高精度に、窓５２の開閉位置の誤差Δを算出することができる。したがって、この制御方法によれば、窓５２のロック時の動作（閉動作または反転動作）の制御を、より高精度に行うことができる。
【０１８１】
（マイコン１００の追加機能）
本発明の一実施形態に係るマイコン１００は、以下に示す複数の追加機能のうち、少なくともいずれか一つを有してもよい。
【０１８２】
（バックラッシュ対策機能）
窓５２が全閉位置に移動したときに、モータ５４の駆動を停止したにも関わらず、ウェザーストリップにおいて生じる弾性力により、窓５２が反転方向に僅かに移動してしまう。これにより、窓５２の開閉位置に誤差が生じてしまう。ここでは、この誤差を「バックラッシュ」と呼ぶ。マイコン１００は、モータ５４を流れる電流Ｉｍのリップル成分に基づいて窓の移動量を検出しているため、モータ５４の駆動停止時に生じるバックラッシュを検出することができない。
【０１８３】
そこで、マイコン１００は、窓５２が全閉位置に位置する直前（窓５２がウェザーストリップに突き当たる直前）に、モータ駆動回路１０によるモータ５４の駆動電圧（実効電圧）をＰＷＭ制御によって低くしてもよい。
【０１８４】
例えば、図１３は、本発明の一実施形態に係るマイコン１００によるモータ５４の駆動電圧の制御プロファイルの一例を示す図である。図１３に示す例では、窓５２が全閉位置に位置する直前に、モータ５４の駆動電圧（実効電圧）を「１６Ｖ」（バッテリ電圧）から「９Ｖ」（リップル成分を検出可能な最低電圧値）に低めている。
【０１８５】
これにより、マイコン１００は、窓５２がウェザーストリップに突き当たるときのモータ５４の駆動トルクτを低めて、ウェザーストリップにおいて生じる弾性力を弱めることができ、したがって、バックラッシュの発生量を抑制することができる。
【０１８６】
また、マイコン１００は、窓５２がウェザーストリップに突き当たるときのバッテリ電圧に基づいて、バックラッシュの発生量を算出し、算出されたバックラッシュの発生量を用いて、窓５２の開閉位置を補正してもよい。
【０１８７】
例えば、図１４は、本発明の一実施形態に係る開閉システム１におけるバッテリ電圧とバックラッシュの発生量との関係を表す図である。図１４に示すように、バックラッシュの発生量は、窓５２がウェザーストリップに突き当たるときのバッテリ電圧Ｅ［Ｖ］の関数（Ａ×Ｅ［Ｖ］＋Ｂ）によって算出することができる。但し、各パラメータＡ，Ｂには、予め、実機テスト、シミュレーション等によって、窓５２毎に個別に求めておいた好適な値が設定される。例えば、図１４では、Ａ＝１．９４２４, Ｂ＝−１３．５０８とすることが好適である例を表している。
【０１８８】
（窓５２の開閉位置の補正機能）
マイコン１００は、各種変動要因（例えば、経年劣化、気温変動等）を考慮し、所定の補正タイミングで、窓５２の全閉位置および全開位置を補正してもよい。所定の補正タイミングとしては、例えば、エンジン起動毎、一定期間毎（例えば、１か月毎）、エンジン起動時の気温が前回より一定値（例えば、１０℃）以上変化する毎、等（但し、これらに限らない）が挙げられる。
【０１８９】
例えば、マイコン１００は、所定の補正タイミングにおいて、窓５２が上端で停止したときに、窓５２の全閉位置のカウント数を、「０」に補正する。但し、マイコン１００は、上記のとおりバックラッシュの発生量を算出する場合、窓５２が上端で停止したときに、窓５２の全閉位置のカウント値を、「０＋バックラッシュ発生量」に補正する。
【０１９０】
また、例えば、マイコン１００は、所定の補正タイミングにおいて、窓５２が上端で停止した後、窓５２が下端で停止したときに、窓５２の全開位置のカウント値を、そのときのカウント値に補正する。
【０１９１】
なお、マイコン１００は、窓５２の全閉位置の補正と、窓５２の全開位置の補正とを、互いに同じタイミングで行ってもよく、互いに異なるタイミングで行ってもよい。また、マイコン１００は、窓５２の全閉位置の補正の頻度と、窓５２の全開位置の補正の頻度とを、互いに同一としてもよく、互いに異ならせてもよい。例えば、マイコン１００は、窓５２の全閉位置の補正を１か月毎に行い、窓５２の全開位置の補正を２か月毎に行ってもよい。また、例えば、マイコン１００は、窓５２の全閉位置の補正をエンジン起動毎に行い、窓５２の全開位置の補正を窓５２が下端に位置する毎に行ってもよい。
【０１９２】
なお、マイコン１００は、窓５２の位置を、リップル成分のカウント値で表してもよく、リップル成分のカウント値を所定の変換式によって変換して表してもよい。但し、窓５２の位置を、リップル成分のカウント値で表すことにより、変換式が不要となるため、制御プログラムを簡素化できる点で好ましい。
【０１９３】
以上、本発明の一実施形態について詳述したが、本発明はこれらの実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【０１９４】
例えば、上記実施形態では、回転量検出部１０４が、電流検出回路３０から出力される電流信号に基づいて、モータ５４の回転軸の回転量を検出し、回転負荷算出部１０６が、電流検出回路３０から出力される電流信号に基づいて、モータ５４の回転軸の回転負荷を算出するようにしているが、これに限らない。例えば、モータ５４にホールセンサが設けられている場合、回転量検出部１０４が、ホールセンサから出力されるパルス信号に基づいて、モータ５４の回転軸の回転量を検出し、回転負荷算出部１０６が、回転速度、バッテリ電圧、モータ固有の定数に基づいて、モータ５４の回転軸の回転負荷を算出するようにしてもよい。
【０１９５】
また、例えば、上記実施形態において、位置算出部１０５は、モータ制御部１１０がモータ５４を駆動する毎に、窓５２の開閉位置を、モータ５４の駆動停止時の慣性移動量に応じた一定の補正値で補正するようにしてもよい。これにより、位置算出部１０５は、窓５２の開閉位置を、より高精度に算出することができる。
【符号の説明】
【０１９６】
１  開閉システム
２  ドア
２Ａ  窓枠
１０  モータ駆動回路
２０  電圧検出回路
３０  電流検出回路（電流検出手段）
４０  スイッチ
５０  パワーウインドウ装置
５２  窓（開閉部材）
５４  モータ
１００  マイコン（制御装置，コンピュータ）
１０１  操作信号取得部
１０２  電圧値取得部
１０３  電流値取得部
１０４  回転量検出部
１０５  位置算出部
１０６  回転負荷算出部
１０７  ロック検出部
１０８  計数部
１０９  誤差算出部
１１０  モータ制御部
【図１】
2020125671.tif 000004
【図２】
2020125671.tif 000005
【図３】
2020125671.tif 000006
【図４】
2020125671.tif 000007
【図５】
2020125671.tif 000008
【図６】
2020125671.tif 000009
【図７】
2020125671.tif 000010
【図８】
2020125671.tif 000011
【図９】
2020125671.tif 000012
【図１０】
2020125671.tif 000013
【図１１】
2020125671.tif 000014
【図１２】
2020125671.tif 000015
【図１３】
2020125671.tif 000016
【図１４】
2020125671.tif 000017