(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、図を参照し、本発明の実施例に係る開閉体制御装置の一例であるパワーウインドウ装置について説明する。
図1は、パワーウインドウ装置の構成例を示す概略図である。
【0010】
パワーウインドウ装置は、車両のドア1に搭載された開閉体としての窓ガラス2の動きを制御する。パワーウインドウ装置は、主に、窓ガラス駆動機構4の制御を行う演算装置6を有する。
図1の例では、演算装置6はドア1内に設けられているが、車両内の別の位置に設けられていてもよい。
【0011】
ドア1は窓1aを備えている。窓1aは窓ガラス2が上下動することで開閉される。具体的には、窓ガラス2が下降することで窓1aが開かれ、窓ガラス2が上昇することで窓1aが閉じられる。そして、窓ガラス2が全閉位置まで上昇すると窓1aは全閉状態となる。このとき、窓ガラス2の上端部2tは、ドア1の上端部を構成する上部サッシュ3に突き当たる。
【0012】
窓ガラス駆動機構4は、窓ガラス2を上下動させる機構であり、ドア1内に収納されている。窓ガラス駆動機構4は、動力源としての電動機10を含む。
【0013】
電動機10は、順方向及び逆方向に回転可能であり、一方向に回転することで窓ガラス2を上昇させ、他方向に回転することで窓ガラス2を下降させる。
図1の例では、電動機10は、整流子を備えた直流整流子電動機である。演算装置6は、電動機10の回転を制御することで窓ガラス2による窓1aの開閉を制御できる。
【0014】
図2は、演算装置6の構成例を示す機能ブロック図である。演算装置6は、主に、操作ボタン7、電圧検出部10a及び電流検出部10bからの信号を受けて各種演算を実行し、4つのスイッチSW1〜SW4のそれぞれに対して制御指令を出力できる。
図2の例では、演算装置6は、CPU、揮発性メモリ、不揮発性メモリ等を備えたマイクロコンピュータである。スイッチSW1〜SW4は、半導体リレーで構成されている。電磁リレーで構成されていてもよい。
【0015】
電動機10は、4つのスイッチSW1〜SW4を介して電源に接続されている。そして、スイッチSW1とスイッチSW3が閉状態(導通状態)となったときに順回転して窓ガラス2を下降させる。また、スイッチSW2とスイッチSW4が閉状態となったときに逆回転して窓ガラス2を上昇させる。電源に接続されている
図2の例では、順回転する電動機10を流れる電流が正の値を有し、逆回転する電動機10を流れる電流が負の値を有する。惰性回転中は、スイッチSW2とスイッチSW3が閉状態となり、順回転する電動機10を流れる電流は負の値を有し、逆回転する電動機10を流れる電流は正の値を有する。本実施例では、惰性回転中も回転を検出するために、電動機10と電流検出部10bは、閉ループ中に存在する。なお、本実施例では、電動機10は、電気抵抗値が十分大きいため、電動機10の2つの端子を短絡しても、惰性で回転する。一方、電動機10は、電気抵抗値が小さい場合には、電動機10の2つの端子を短絡すると、急速に減速する。惰性回転中の電動機10の減速を抑制するためには、抵抗器を通る閉ループを形成すればよい。
【0016】
電圧検出部10aは、電動機10の端子間電圧Vを検出する。電流検出部10bは、電動機10を流れる電流Imを検出する。
【0017】
操作ボタン7は、窓ガラス2を操作するための操作装置の一例であり、例えば、ドア1の車室側の表面に設けられている。本実施例では、操作ボタン7は、自動開ボタン7A、手動開ボタン7B、自動閉ボタン7C及び手動閉ボタン7Dを含む。
【0018】
演算装置6は、各種演算を実行するための機能要素として、開閉制御部60、位置検出部61、接触判定部62、計数部63及び機能制限部64を有する。
【0019】
開閉制御部60は、窓ガラス2の動きを制御する。本実施例では、開閉制御部60は、操作ボタン7からの信号に応じて窓ガラス2の動きを制御する。
【0020】
例えば、開閉制御部60は、所定の窓開け条件が満たされた場合に窓ガラス2を自動的に開ける(下降させる)自動開け機能を実行する。例えば、自動開ボタン7Aが操作されると、所定の窓開け条件が満たされたと判定し、スイッチSW1及びスイッチSW3を閉状態にして電動機10を順回転させて窓ガラス2を下降させる。そして、他のボタンが操作されるか、或いは、窓ガラス2が全開位置に達するまでその順回転を継続させる。自動開ボタン7Aが再操作されたときにその順回転を停止させてもよい。
【0021】
また、開閉制御部60は、手動開ボタン7Bが操作されると、手動開ボタン7Bが操作されている間だけ窓ガラス2を開ける(下降させる)手動開け機能を実行する。例えば、手動開ボタン7Bが押下されている間だけスイッチSW1及びスイッチSW3を閉状態にして電動機10を順回転させて窓ガラス2を下降させる。そして、手動開ボタン7Bの押下が中止されてから所定時間が経過すると、その順回転を停止させる。
【0022】
また、開閉制御部60は、所定の窓閉じ条件が満たされた場合に窓ガラス2を自動的に閉じる(上昇させる)自動閉じ機能を実行する。例えば、自動閉ボタン7Cが操作されると、所定の窓閉じ条件が満たされたと判定し、スイッチSW2及びスイッチSW4を閉状態にして電動機10を逆回転させて窓ガラス2を上昇させる。そして、他のボタンが操作されるか、或いは、窓ガラス2が全閉位置に達するまでその逆回転を継続させる。自動閉ボタン7Cが再操作されたときにその逆回転を停止させてもよい。
【0023】
また、開閉制御部60は、手動閉ボタン7Dが操作されると、手動閉ボタン7Dが操作されている間だけ窓ガラス2を閉じる(上昇させる)手動閉じ機能を実行する。例えば、手動閉ボタン7Dが押下されている間だけスイッチSW2及びスイッチSW4を閉状態にして電動機10を逆回転させて窓ガラス2を上昇させる。そして、手動閉ボタン7Dの押下が中止されてから所定時間が経過すると、その逆回転を停止させる。
【0024】
位置検出部61は、窓ガラス2の位置を検出する。本実施例では、位置検出部61は、電動機10の回転角度を算出する。そして、電動機10の回転角度に基づき、全閉位置に関する窓ガラス2の上端部2tの相対位置を検出する。また、位置検出部61は、窓1aが全閉状態となったと判定する度に、その時点で検出されている上端部2tの位置で基準位置としての全閉位置を更新する。すなわち、上端部2tの現在の位置が全閉位置となる。
【0025】
接触判定部62は、窓ガラス2と他の物体とが接触しているか否かを判定する。本実施例では、接触判定部62は、自動閉じ機能の実行中に窓ガラス2と他の物体とが接触しているか否かを判定する。例えば、位置検出部61が算出する電動機10の回転角速度と端子間電圧Vと電流Imとに基づいてトルクを算出する。そして、算出したトルクが所定の第1閾値以上の場合に窓ガラス2と他の物体とが接触していると判定する。
【0026】
計数部63は、電動機10の起動回数を計数する。本実施例では、計数部63は、電動機10が起動したとき、すなわち電動機10の回転が開始されたときに、電動機10の起動回数をカウントアップする。例えば、操作ボタン7が操作される度に起動回数を1だけ加算(インクリメント)する。また、計数部63は、窓ガラス2が全閉位置に達する度に起動回数をゼロにリセットする。
【0027】
機能制限部64は、開閉制御部60による機能の一部を制限する。本実施例では、機能制限部64は、所定の機能制限条件が満たされた場合に自動閉じ機能を制限する。例えば、電動機10の起動回数に基づいて自動閉じ機能を制限する。
【0028】
自動閉じ機能の制限は、例えば、自動閉じ機能の実行を禁止すること、自動閉じ機能による窓ガラス2の上端部2tの最終到達位置を全閉位置よりも低い位置にすること、自動閉じ機能による窓ガラス2の移動距離(上昇距離)を制限すること等を含む。
【0029】
機能制限部64は、例えば、電動機10の起動回数が所定の閾値を超えたときに、所定の機能制限条件が満たされたと判定し、自動閉じ機能の実行を禁止する。起動回数が多いほど、窓ガラス2の位置の検出誤差が大きくなり、自動閉じ機能が誤動作する可能性が高まるためである。
【0030】
この点に関し、窓ガラス2を上昇させるために電動機10を起動する場合と窓ガラス2を下降させるために電動機10を起動する場合とで検出誤差の増減方向が正反対となるときには、計数部63はその違いを考慮してもよい。例えば、計数部63は、自動開ボタン7A又は手動開ボタン7Bが押下されたときに起動回数を1だけインクリメントし、自動閉ボタン7C又は手動閉ボタン7Dが押下されたときに起動回数を1だけ減算(デクリメント)してもよい。
【0031】
また、機能制限部64は、窓ガラス2が全閉位置に達したときに自動閉じ機能の制限を解除する。自動閉じ機能の誤動作の原因となる窓ガラス2の位置の検出誤差がゼロにリセットされるためである。
【0032】
ここで、
図3、
図4A及び
図4Bを参照し、自動閉ボタン7Cが操作されたときに演算装置6が実行する処理(以下、「自動閉じ処理」とする。)について説明する。
図3は自動閉じ処理のフローチャートである。
図4A及び
図4Bは、窓ガラス2の上端部2tと上部サッシュ3の位置関係を示す断面図であり、
図1の破線L1を含む平面を矢印AR1で示す方向から見たときの断面図に対応する。
【0033】
最初に、演算装置6は、自動閉じ機能が有効であるか否かを判定する(ステップST1)。演算装置6は、例えば、機能制限部64によって自動閉じ機能が制限されていない場合に自動閉じ機能が有効であると判定する。機能制限部64によって自動閉じ機能が禁止されていない場合に自動閉じ機能が有効であると判定してもよい。すなわち、自動閉じ機能が制限されている場合であっても禁止されていなければ自動閉じ機能が有効であると判定してもよい。
【0034】
自動閉じ機能が無効であると判定した場合(ステップST1のNO)、開閉制御部60は、自動閉じ機能を開始させることなく、今回の自動閉じ処理を終了させる。
【0035】
自動閉じ機能が有効であると判定した場合(ステップST1のYES)、開閉制御部60は、自動閉じ機能を開始させる(ステップST2)。開閉制御部60は、例えば、スイッチSW2及びスイッチSW4を閉状態にして電動機10を逆回転させて窓ガラス2を上昇させる。
【0036】
その後、接触判定部62は、窓ガラス2と他の物体とが接触しているか否かを判定する(ステップST3)。接触判定部62は、例えば、電動機10が発生させているトルクが第1閾値以上の場合に窓ガラス2と他の物体とが接触していると判定する。
【0037】
窓ガラス2と他の物体とが接触していないと判定した場合(ステップST3のNO)、接触判定部62は、窓ガラス2と他の物体とが接触していると判定するまでステップST3の判定を繰り返す。
【0038】
窓ガラス2と他の物体とが接触していると判定された場合(ステップST3のYES)、位置検出部61は、窓ガラス2の上端部2tの位置が非検出範囲内にあるか否かを判定する(ステップST4)。
【0039】
非検出範囲は、窓ガラス2と接触している物体を異物として検出しない範囲、すなわち、窓ガラス2と接触している物体が上部サッシュ3であるとみなされる範囲を意味する。「範囲」は、例えば、全閉位置からの距離で表される。
【0040】
本実施例では、位置検出部61は、
図4Aに示すように、全閉位置と窓ガラス2の上端部2tとの距離D1が閾値Dt以下の場合に、窓ガラス2の上端部2tの位置が非検出範囲内にあると判定する。そして、接触判定部62により窓ガラス2と他の物体とが接触していると判定され、且つ、位置検出部61により窓ガラス2の上端部2tの位置が非検出範囲内にあると判定されると、演算装置6は、窓1aが全閉状態にあると判定する。
【0041】
一方で、位置検出部61は、
図4Bに示すように、全閉位置と窓ガラス2の上端部2tとの距離D1が閾値Dtより大きい場合に、窓ガラス2の上端部2tの位置が非検出範囲内にないと判定する。そして、接触判定部62により窓ガラス2と他の物体とが接触していると判定され、且つ、位置検出部61により窓ガラス2の上端部2tの位置が非検出範囲内にないと判定されると、演算装置6は、窓ガラス2が上部サッシュ3以外の異物に接触していると判定する。
【0042】
窓ガラス2の上端部2tの位置が非検出範囲内にあると判定した場合(ステップST4のYES)、開閉制御部60は、窓1aが全閉状態にあると判定して電動機10を停止させる(ステップST5)。電動機10が発生させているトルクが第2閾値(>第1閾値)に達するまで電動機10の逆回転を継続させ、トルクが第2閾値に達したときに電動機10の逆回転を停止させてもよい。
【0043】
その後、位置検出部61は、全閉位置をリセット(初期化)する(ステップST6)。位置検出部61は、例えば、窓ガラス2の上端部2tの現在の位置が全閉位置に一致しているか否かにかかわらず、窓ガラス2の上端部2tの現在の位置を全閉位置として設定する。
【0044】
そして、計数部63は、起動回数をリセットする。全閉位置のリセットにより、窓ガラス2の位置の検出誤差が解消されるためである。そして、機能制限部64は、自動閉じ機能を制限している場合には、その制限を解除する。窓ガラス2の位置の検出誤差が解消されたため、すなわち、その検出誤差に起因して自動閉じ機能が誤動作するおそれがなくなったためである。
【0045】
窓ガラス2の上端部2tの位置が非検出範囲内にないと判定した場合(ステップST4のNO)、開閉制御部60は、窓ガラス2が上部サッシュ3以外の異物に接触していると判定し、電動機10の回転方向を反転させる(ステップST7)。本実施例では、開閉制御部60は、逆回転していた電動機10を順回転させて窓ガラス2を下降させる。異物の挟み込みを防止するためである。
【0046】
その後、開閉制御部60は、窓ガラス2が全開位置に達するまで電動機10を順回転させ、窓ガラス2が全開位置に達したところで電動機10を停止させる(ステップST8)。開閉制御部60は、窓ガラス2が所定距離だけ下降したところで電動機10の順回転を停止させてもよい。
【0047】
次に、
図5を参照し、パワーウインドウ装置の稼働中に演算装置6が実行する基本的な処理(以下、「基本処理」とする。)について説明する。
図5は基本処理のフローチャートである。演算装置6は、所定の制御周期で繰り返しこの基本処理を実行する。
【0048】
最初に、演算装置6は、操作ボタン7が操作されたか否かを判定する(ステップST11)。本実施例では、演算装置6は、自動開ボタン7A、手動開ボタン7B、自動閉ボタン7C及び手動閉ボタン7Dの何れかが押下されたときに操作ボタン7が操作されたと判定する。
【0049】
操作ボタン7が操作されたと判定した場合(ステップST11のYES)、計数部63は、電動機10の起動回数をカウントアップする(ステップST12)。本実施例では、自動開ボタン7A、手動開ボタン7B、自動閉ボタン7C及び手動閉ボタン7Dの何れが押下された場合であっても起動回数を1だけインクリメントする。
【0050】
その後、機能制限部64は、起動回数が閾値を超えたか否かを判定する(ステップST13)。本実施例では、機能制限部64は、起動回数が10回を超えたか否かを判定する。
【0051】
起動回数が閾値を超えたと判定した場合(ステップST13のYES)、機能制限部64は、自動閉じ機能を制限する(ステップST14)。本実施例では、機能制限部64は、自動閉じ機能の実行を禁止する。
【0052】
起動回数が閾値を超えていないと判定された場合(ステップST13のNO)、演算装置6は、自動閉じ機能を制限することなく、ステップST15を実行する。操作ボタン7が操作されていないと判定した場合(ステップST11のNO)、演算装置6は、起動回数をカウントアップすることなく、また、自動閉じ機能を制限することなく、ステップST15を実行する。
【0053】
ステップST15において、演算装置6は、窓1aが全閉状態にあるか否かを判定する。本実施例では、窓ガラス2の上端部2tの位置が非検出範囲内にある場合に窓1aが全閉状態にあると判定する。例えば、手動閉ボタン7Dの操作によって上端部2tの位置が非検出範囲内に至った場合に窓1aが全閉状態にあると判定する。
【0054】
窓1aが全閉状態にあると判定された場合(ステップST15のYES)、位置検出部61は全閉位置をリセットし、計数部63は起動回数をリセットし、そして、機能制限部64は、自動閉じ機能を制限している場合には、その制限を解除する(ステップST16)。本実施例では、位置検出部61は、窓ガラス2の上端部2tの現在の位置を全閉位置として設定する。計数部63は起動回数をゼロにリセットする。機能制限部64は、自動閉じ機能の実行を禁止している場合には、その禁止を解除する。
【0055】
窓1aが全閉状態にないと判定した場合(ステップST15のNO)、演算装置6は、全閉位置のリセット、起動回数のリセット、及び、自動閉じ機能の制限の解除の何れをも行うことなく、今回の基本処理を終了させる。
【0056】
上述のように、パワーウインドウ装置は、窓ガラス2を自動的に閉じる自動閉じ機能を実行する開閉制御部60と、窓ガラス2を駆動する電動機10の起動回数を計数する計数部63と、電動機10の起動回数に基づいて自動閉じ機能を制限する機能制限部64とを有する。そのため、窓ガラス2の位置の検出誤差が大きくなった可能性があるときに自動閉じ機能を制限できる。例えば電動機10の起動回数が所定の閾値を超えた場合に自動閉じ機能を制限できる。起動回数が閾値を超えるといった状況は、例えば、窓ガラス2を僅かに動かすためのインチング操作が繰り返された場合に発生する。この構成により、パワーウインドウ装置は、窓ガラス2が全閉位置に達したことを検出するためのセンサ(リミットスイッチ、ホールセンサ等)を備えていなくとも、自動閉じ機能の誤動作を低コストで且つ確実に防止できる。すなわち、電流Imのリップル成分に基づいて窓ガラス2の位置を検出する後述のような構成においても、自動閉じ機能の誤動作を確実に防止できる。具体的には、窓ガラス2が全閉位置に達した状態を異物に接触した状態と誤認識してしまい、窓ガラス2の移動方向を反転させて窓ガラス2を開いてしまうといった状況が発生してしまうのを防止できる。また、窓ガラス2が異物に接触した状態を全閉位置に達した状態と誤認識してしまい、窓ガラス2で異物を挟み込んでしまうといった状況が発生してしまうのを防止できる。
【0057】
機能制限部64は、窓ガラス2が全閉位置に達したときに自動閉じ機能の制限を解除してもよい。この構成により、パワーウインドウ装置は、自動閉じ機能が一時的に制限されている場合であっても、窓ガラス2が全閉位置に達したときにその制限を解除して自動閉じ機能を再び利用可能な状態にできる。
【0058】
計数部63は、電動機10が起動するときに電動機10の起動回数をカウントアップしてもよい。例えば、操作ボタン7が操作される度に起動回数をカウントアップしてもよく、操作ボタン7からの信号とは無関係に、電動機10の回転が開始される度に起動回数をカウントアップしてもよい。この構成により、パワーウインドウ装置は、窓ガラス2の位置の検出誤差が大きくなった可能性のある状態を容易に認識できる。
【0059】
計数部63は、望ましくは、窓ガラス2が全閉位置に達したときに電動機10の起動回数をゼロにリセットする。窓ガラス2が全閉位置に達すると、全閉位置がリセットされ、窓ガラス2の位置の検出誤差が解消されるためである。この構成により、計数部63は、自動閉じ機能が誤って早期に制限されてしまうのを防止できる。
【0060】
機能制限部64は、電動機10の起動回数が所定の閾値を超えた場合に、自動閉じ機能の実行を禁止してもよい。自動閉じ機能の実行を禁止するときの閾値は、自動閉じ機能を制限するときの閾値より大きい値であってもよい。この構成により、パワーウインドウ装置は、窓ガラス2の位置の検出誤差が大きくなった可能性が高いときに自動閉じ機能の実行を禁止できる。その結果、自動閉じ機能の誤動作をより確実に防止できる。
【0061】
次に、
図6〜
図14を参照し、位置検出部61の詳細について説明する。回転角度検出器100は、位置検出部61の一例であり、電動機10の回転角度を検出し、その回転角度に基づいて窓ガラス2の位置を検出する。
図6の例では、回転角度検出器100は、電動機10の端子間電圧Vと電動機10を流れる電流Imとに基づいて電動機10の回転角度を検出する。
【0062】
図7は電動機10における整流子20の概略図である。
図7に示すように、整流子20は、スリット20sによって互いに隔てられた8つの整流子片20aで構成されている。各整流子片20aの円弧の中心角であるスリット間角度θcは約45度である。
【0063】
回転角度検出器100は、主に、電圧フィルタ部30、回転角速度算出部31、回転角度算出部32、電流フィルタ部33、第1信号生成部34、第2信号生成部35、回転情報算出部36、抵抗設定部37等の要素を含む。各要素は、電気回路で構成されていてもよく、ソフトウェアで構成されていてもよい。
【0064】
電圧フィルタ部30は、電圧検出部10aが出力する端子間電圧Vの波形を滑らかにする。電圧フィルタ部30は、例えば、回転角速度算出部31が電動機10の回転角速度を精度良く算出できるように端子間電圧Vの波形を滑らかにする。
図6の例では、電圧フィルタ部30は、ローパスフィルタであり、電圧検出部10aが出力する端子間電圧Vの波形のうちの高周波成分をノイズとして除去した端子間電圧V'を出力する。
【0065】
回転角速度算出部31は、電動機10の端子間電圧V'と電動機10を流れる電流Imとに基づいて電動機10の回転角速度を算出する。
図6の例では、回転角速度算出部31は、式(1)に基づいて回転角速度ωを算出する。
【0066】
【数1】
Keは逆起電力定数であり、Rmは電動機10の内部抵抗に対応する値(設定抵抗値)であり、Lmは電動機10のインダクタンスであり、dIm/dtは電流Imの一回微分である。電流Imの一回微分は、例えば、前回の電流Imの値と今回の電流Imの値との差である。設定抵抗値Rmは、例えば、回転角度検出器100の起動時に抵抗設定部37によって設定される。
【0067】
回転角速度算出部31は、一定の制御周期毎に電動機10の回転角速度ωを算出し、算出した回転角速度ωを回転角度算出部32に対して出力する。
【0068】
回転角度算出部32は、電動機10の回転角度θを算出する。回転角度算出部32は、式(2)に基づいて回転角度θを算出する。
【0069】
【数2】
回転角度算出部32は、例えば、回転角速度算出部31が一定の制御周期毎に出力する回転角速度ωを積算して回転角度θを算出し、算出した回転角度θに関する信号である回転角度信号を第2信号生成部35に対して出力する。
【0070】
また、回転角度算出部32は、第2信号生成部35からの同期指令に応じて回転角度θをゼロにリセットする。
【0071】
電流フィルタ部33は、電流検出部10bが出力する電流Imに含まれる特定の周波数成分であるリップル成分Irを出力する。電流フィルタ部33は、例えば、第1信号生成部34が電流Imのリップル成分Irを検出できるようにリップル成分Irの周波数を通すバンドパスフィルタで構成される。バンドパスフィルタで構成される電流フィルタ部33は、電流検出部10bが出力する電流Imの波形のうちのリップル成分Ir以外の周波数成分を除去する。本実施例で利用するリップル成分Irは、整流子片20aとブラシとの接触・分離に起因して生成される。そのため、リップル成分Irの1周期の間に電動機10が回転する角度はスリット間角度θcに等しい。
【0072】
第1信号生成部34は、電動機10が一定の角度だけ回転したことを、リップル成分Irの波形から推定した信号を生成する。この信号は、リップル成分Irの周期に応じた信号である。一定の角度は、リップル成分Irの1周期に対応する角度でもよいし、半周期に対応する角度でもよい。この実施例では、電動機10がスリット間角度θcだけ回転する毎に、リップル成分Irの波形から推定した信号(第1パルス信号Pa)を生成する。第1信号生成部34は、例えば、電流フィルタ部33が出力するリップル成分Irの波形に基づいて第1パルス信号Paを生成する。
【0073】
図8Aは、第1信号生成部34が第1パルス信号Paを生成するタイミングの一例を示す図である。第1信号生成部34は、リップル成分Irの1周期毎に第1パルス信号Paを生成する。例えば、リップル成分Irが基準電流値Ibを超える度に第1パルス信号Paを生成する。
図8Aの例では、時刻t1、t2、t3、・・・、tn等で第1パルス信号Paを生成している。C1、C2、C3、・・・、Cn等は、リップル成分Irの周期を示し、θ1、θ2、θ3、・・・、θn等は、第1信号生成部34が第1パルス信号を生成したときの回転角度θを示す。回転角度θは、回転角度算出部32が算出した値である。このように、第1信号生成部34は、典型的には、回転角度θのがスリット間角度θcだけ増加する毎に第1パルス信号Paを生成する。
【0074】
但し、第1信号生成部34は、例えば、電動機10の電源オフ後の惰性回転期間において電流Im及びそのリップル成分Irが小さくなった場合、リップル成分Irを検出できずに、第1パルス信号Paを生成できないことがある。また、第1信号生成部34は、例えば、電動機10の電源オン直後に突入電流が発生した場合、その突入電流に応じて第1パルス信号Paを誤って生成してしまうことがある。このような第1パルス信号Paの生成漏れ又は誤生成は、回転角度検出器100が出力する電動機10の回転に関する情報(以下、「回転情報」とする。)の信頼性を低下させてしまう。
【0075】
そこで、回転角度検出器100は、第2信号生成部35により、電動機10の回転角度を表す信号をより高精度に生成できるようにしている。
【0076】
第2信号生成部35は、電動機10が所定角度だけ回転したことを表す信号を生成する。第2信号生成部35は、例えば、回転角度算出部32が出力する回転角度信号と第1信号生成部34が出力する第1パルス信号Paとに基づいてスリット間角度θc毎に第2パルス信号Pbを生成する。第2パルス信号Pbは、電動機10が所定角度だけ回転したことを表す情報の一例である。第1パルス信号Paは、リップル成分Irの波形のみから推定した信号であるため、誤って出力されることがある。一方、第2パルス信号Pbは、第1パルス信号Paと、回転角度信号の双方から推定した信号であるため、誤差を一定値以下にできる。
【0077】
図9は、第2信号生成部35が第2パルス信号Pbを生成するタイミングの一例を示す図である。第1閾値θu及び第2閾値θdは、第1パルス信号Paの受付可否の閾値であり、例えば、回転角度θと電動機10の実際の回転角度との最大位相差に基づいて設定される。
【0078】
第2信号生成部35は、回転角度θが第1閾値θu以上で且つスリット間角度θc未満のときに第1信号生成部34が最初に生成した第1パルス信号Paに基づいて、第2パルス信号Pbを生成する。第1閾値θuは、予め設定される値であってもよく、動的に設定される値であってもよい。
図9は、回転角度θが第1閾値θu以上で且つスリット間角度θc未満の角度範囲である受付範囲をドットパターンで示す。
図9の例では、第1信号生成部34が第1パルス信号Pa1、Pa2、Pa4を生成したときの回転角度θ1、θ2、θ5が第1閾値θu以上で且つスリット間角度θc未満である。すなわち、回転角度θ1、θ2、θ5のそれぞれがスリット間角度θcに達するまでの残りの角度が角度α未満である。角度αは、例えば、回転角度θと電動機10の実際の回転角度との最大誤差に基づき設定される。この場合、第2信号生成部35は、時刻t1、t2、t5において第1信号生成部34が生成した第1パルス信号Pa1、Pa2、Pa4がノイズでないとみなす。そのため、第2信号生成部35は、時刻t1、t2、t5において第2パルス信号Pb1、Pb2、Pb4を生成する。第2パルス信号Pbを生成すると、第2信号生成部35は、回転角度算出部32に対して同期指令を出力する。なお、回転角度θがスリット間角度θc未満、且つ、第1閾値θu以上の場合に、リップル成分Irと同じ周波数成分を持つノイズが発生すると、誤った第1パルス信号Paが出力され、第2パルス信号Pbが生成されるおそれがある。しかし、次のタイミングで、本当のリップル成分Irが検出され、回転角度検出器100は、正しい回転角度を検出できる。したがって、回転角度検出器100が検出する回転角度は、ノイズによって、一時的に誤って検出されても、正しい回転角度に戻る。また、誤差の範囲は、角度α未満であり、実用上、問題無い範囲である。
【0079】
また、第2信号生成部35は、回転角度θの大きさが所定角度に達したときに第2パルス信号Pbを生成する。所定角度は、例えば、スリット間角度θcである。但し、回転角度θは、回転角度算出部32が算出した角度であり、誤差が含まれる。
図9の例では、時刻t3、t7、t9において回転角度θ3、θ7、θ9の絶対値がスリット間角度θcに達したときに第2パルス信号Pb3、Pb5、Pb6を生成している。第2パルス信号Pbを生成すると、第2信号生成部35は、回転角度算出部32に対して同期指令を出力する。回転角度算出部32は、同期指令を受けると回転角度θをゼロにリセットする。
【0080】
すなわち、第2信号生成部35は、例えば、時刻t2において、第2パルス信号Pb2を生成した後で第1パルス信号Paを受け取ることがない状態のまま、回転角度θの絶対値がスリット間角度θcに達したときに第2パルス信号Pb3を生成する。
【0081】
このように、第2信号生成部35は、何らかの理由で第1パルス信号Paが生成されなかった場合であっても、回転角度算出部32によって算出された回転角度θの絶対値がスリット間角度θcに達しさえすれば、第2パルス信号Pbを生成する。そのため、第1パルス信号Paの生成漏れを確実に防止できる。
【0082】
また、第2信号生成部35は、第1信号生成部34が第1パルス信号Paを生成したときの回転角度θが第2閾値θd未満の場合、第2パルス信号Pbを生成しない。第2閾値θdは、予め設定される値であってもよく、動的に設定される値であってもよい。このような状況は、典型的には、回転角度θの大きさが所定角度に達したことで第2パルス信号Pbが生成された後に発生する。
図9は、回転角度θがゼロ以上で且つ第2閾値θd未満の角度範囲である受付範囲をドットパターンで示す。
図9の例では、時刻t3で回転角度θの絶対値がスリット間角度θcに達したことで第2パルス信号Pb3が生成された後の時刻t4において、第1信号生成部34が第1パルス信号Pa3を生成している。このときの回転角度θ4は、第2閾値θd未満である。すなわち、時刻t3でリセットされた後に積算された回転角度θ4は未だ角度β未満である。この場合、第2信号生成部35は、時刻t4で第1信号生成部34が生成した第1パルス信号Pa3を、時刻t3で生成した第2パルス信号Pb3に統合可能と判定できる。具体的には、電動機10の実際の回転角度がスリット間角度θcに達する前に、回転角度算出部32が出力する回転角度θが、スリット間角度θcに達した場合に発生する。すなわち、実際の回転角度がスリット間角度θcに達していないにもかかわらず、回転角度算出部32が算出した回転角度θがスリット間角度θcに達したために、第2パルス信号Pb3が生成された場合に発生する。第2パルス信号Pb3を生成した直後に第1パルス信号Pa3が生成された時点が、実際の回転角度がスリット間角度θcに達した瞬間である。このため、第2信号生成部35は、第1パルス信号Pa3を生成した時点で、回転角度算出部32に対して同期指令を出力する。この場合、第2信号生成部35は、時刻t4では第2パルス信号Pbを生成しない。
図9の「×」に向かう破線矢印は、第1パルス信号Pa3に基づいて第2パルス信号Pbが生成されなかったことを表す。他の図における「×」に向かう破線矢印についても同様である。
【0083】
また、第1信号生成部34が、第1パルス信号Paを短時間に連続して生成することがある。上述したとおり、
図8Aにおいて、リップル成分Irが基準電流値Ibを超える度に、第1信号生成部34が、第1パルス信号Paを生成する。リップル成分Irが基準電流値Ibを超える直前や直後は、微小なノイズが重畳されても、第1パルス信号Paが誤って生成される。この場合、第1信号生成部34が、第1パルス信号Paを生成する間隔が角度β(第2閾値θd)未満となる。
図9の例では、第1信号生成部34が、時刻t2で、第1パルス信号Pa2を生成する。第2信号生成部35は、第2パルス信号Pb2を生成すると共に、回転角度算出部32に同期指令を出力する。回転角度算出部32は、回転角度θをリセットする。その後、第1信号生成部34が、時刻t2'で、第1パルス信号Pa2'を生成する。時刻t2'の時点での回転角度θは、第2閾値θd未満である。この場合、第2信号生成部35は、第2パルス信号Pbを生成せず、同期指令も出力しない。
図9の「×」に向かう破線矢印は、第1パルス信号Pa3に基づいて第2パルス信号Pbが生成されなかったことを表す。なお、リップル成分Irが基準電流値Ibを超える直前や直後は、微小なノイズが重畳された場合、短時間に連続して複数発生する第1パルス信号Paの何れが、スリット間角度θcに達したことを示す第1パルス信号Paか判断できない。しかし、この場合、複数の第1パルス信号Paは、短い期間内(角度β未満)に生成されるため、最初の第1パルス信号Paの時点で、回転角度θがスリット間角度θcに達したと見なしても、実用上、問題ない。また、リップル成分Irが基準電流値Ibを超える度に、同様のノイズが発生したとしても、誤差は、角度β未満に抑えられる。つまり、誤差が累積しない。このため、実用上問題ない範囲に誤差を抑えることができる。
【0084】
また、第2信号生成部35は、第1信号生成部34が第1パルス信号Paを生成したときの回転角度θが第2閾値θd以上で且つ第1閾値θu未満の場合、すなわち、回転角度θが角度範囲R1内にある場合、第2パルス信号Pbを生成することはなく、回転角度算出部32に対して同期指令を出力することもない。
図9の例では、時刻t6において第1信号生成部34が第1パルス信号Pa5を生成したときの回転角度θ6は、第2閾値θd以上で且つ第1閾値θu未満である。すなわち、回転角度θ6がスリット間角度θcに達するまでの残りの角度が角度αより大きく、時刻t5でリセットされた後に積算された回転角度θ6が角度β以上である。この場合、第2信号生成部35は、第1パルス信号Pa5がノイズに基づくものと判定できる。そのため、第2信号生成部35は、時刻t6では第2パルス信号Pbを生成することはなく、回転角度算出部32に対して同期指令を出力することもない。すなわち、ノイズに基づく第1パルス信号Pa5による影響を排除できる。
【0085】
また、第2信号生成部35は、第1信号生成部34が第1パルス信号Paを生成したときの回転角度θが第2閾値θd未満の場合、第2パルス信号Pbを生成しない。但し、第2信号生成部35は、第1信号生成部34が第1パルス信号Paを生成したときの回転角度θが第2閾値θd未満の場合、回転角度算出部32に対して同期指令を出力する場合と、同期指令を出力しない場合がある。第1パルス信号Paが生成される前に、回転角度θがスリット間角度θcに達した後で、回転角度θが第2閾値θd未満のときに第1パルス信号Paが生成されると、第2信号生成部35は、同期指令を回転角度算出部32に送る。但し、第1パルス信号Paが生成される前に、回転角度θがスリット間角度θcに達した後で、回転角度θが第2閾値θd未満のときに複数の第1パルス信号Paが生成されると、2番目以降の第1パルス信号Paは無視される。すなわち、第2信号生成部35は、同期指令を出力しない。また、回転角度θがスリット間角度θcに達する前に第1パルス信号Paが生成された後、回転角度θが第2閾値θd未満のときに第1パルス信号Paが生成されても、第2信号生成部35は、同期指令を出力しない。つまり、第1パルス信号Paが第2閾値θd(角度β)未満の間に、複数の第1パルス信号Paが生成された場合、2番目以降の第1パルス信号Paは無視される。すなわち、第2信号生成部35は、同期指令を出力しない。
図9の例では、時刻t4'において第1信号生成部34が第1パルス信号Pa3'を生成したときの回転角度θ4'は、第2閾値θd未満である。しかしながら、第1パルス信号Pa3'は、直近の第2パルス信号Pb3が生成された後の2番目の第1パルス信号Paである。そのため、第2信号生成部35は、第1パルス信号Pa3'を受け取ったときには、第2パルス信号Pbを生成することはなく、回転角度算出部32に対して同期指令を出力することもない。
【0086】
以上の構成により、回転角度検出器100は、電動機10の回転角度θの検出誤差を実用上問題ない範囲に抑えることができる。特に、回転角度検出器100では、誤差が累積されることがない。このため、電動機10の回転数にかかわらず、誤差を一定範囲内に抑えることができる。発明者は、次の前提が成り立つことを発見し、上述した回転角度検出器100を発明した。(1)微小ノイズによるリップル成分Irの誤検出は、リップル成分Irが基準電流値Ibを超える直前か直後に限定される。この場合、正しく生成された第1パルス信号Paの前後の短時間(角度αだけ前から角度βだけ後まで)のみ、誤った第1パルス信号Paが生成される。(2)大きなノイズは、電源オン直後の突入電流等によるもので、スリット間角度θcより充分長い間隔で発生する。(3)回転角度算出部32が、端子間電圧V'と電流Imから算出する回転角度θの誤差は、スリット間角度θcより充分に小さい。
【0087】
以上の構成により、第2信号生成部35は、例えば、電動機10の電源オフ後の惰性回転期間において電流Im及びそのリップル成分Irが小さくなり、第1信号生成部34がリップル成分Irの波形に基づいて第1パルス信号Paを生成できない場合であっても、第2パルス信号Pbを生成できる。
【0088】
また、第2信号生成部35は、例えば、電動機10の電源オン直後に突入電流が発生し、第1信号生成部34がその突入電流に応じて第1パルス信号Paを誤って生成してしまった場合であっても、その第1パルス信号Paに対応する第2パルス信号Pbを生成しない。すなわち、その第1パルス信号Paによる影響を排除できる。
【0089】
また、第2信号生成部35は、例えば、第1信号生成部34がノイズ等の影響により第1パルス信号Paを誤って生成してしまった場合であっても、その第1パルス信号Paに対応する第2パルス信号Pbを生成することはなく、回転角度算出部32に対して同期指令を出力することもない。
【0090】
そのため、回転角度検出器100は、第1パルス信号Paと回転角度信号の双方に基づき生成される第2パルス信号Pbに基づいて電動機10の回転情報を算出することで、電動機10の回転情報の信頼性を向上させることができる。
【0091】
また、第2信号生成部35は、電動機10の回転方向を表す方向信号を出力する。例えば、第2信号生成部35は、回転方向が順回転方向であれば、回転角度θとして正の値を出力し、回転方向が逆回転方向であれば、回転角度θとして負の値を出力する。回転角度θは、電動機10を流れる電流が正の値のときに正の値を有し、電動機10を流れる電流が負の値のときに負の値を有する。但し、惰性回転中は、回転角度θは、電動機10を流れる電流が負の値のときに正の値を有し、電動機10を流れる電流が正の値のときに負の値を有する。
【0092】
回転情報算出部36は、電動機10の回転情報を算出する。電動機10の回転情報は、例えば、基準回転位置からの回転量(回転角度)、基準回転位置からの回転数、基準位置(全閉位置)に対する窓ガラス2の上端部2tの相対位置、窓1aの開き量等に変換された値でもよい。また、ある期間における回転角速度ωの平均値、最大値、最小値、中央値等の統計値を含んでいてもよい。
図6の例では、回転情報算出部36は、第2信号生成部35の出力に基づいて電動機10の回転情報を算出する。例えば、電動機10の回転が開始した後に生成された第2パルス信号Pbの数にスリット間角度θcを乗ずることで、電動機10の回転が開始した後の回転量を算出する。その際、回転情報算出部36は、第2信号生成部35が第2パルス信号Pbと共に出力する方向信号に基づいて第2パルス信号Pbの数をインクリメントするかデクリメントするかを決定する。或いは、回転情報算出部36は、順回転方向を表す方向信号と共に受けた第2パルス信号Pbの数と、逆回転方向を表す方向信号と共に受けた第2パルス信号Pbの数とを別々に計数し、それらの差に基づいて電動機10の回転量を算出してもよい。
【0093】
抵抗設定部37は、電動機10の抵抗特性に対応する抵抗値を設定する。抵抗設定部37は、例えば、回転角度検出器100の起動時に、不揮発性記憶媒体に予め記憶されている値を、式(1)における設定抵抗値Rmとして設定する。設定抵抗値Rmは、動的に更新されてもよい。
【0094】
次に、
図10を参照し、回転角度検出器100が電動機10の回転量を算出する処理(以下、「回転量算出処理」とする。)の流れについて説明する。
図10は、回転量算出処理のフローチャートである。回転角度検出器100は、電動機10の駆動中にこの回転量算出処理を実行する。
【0095】
最初に、回転角度検出器100は、端子間電圧V及び電流Imを取得する(ステップST21)。
図6の例では、回転角度検出器100は、電圧検出部10aが出力する端子間電圧V、及び、電流検出部10bが出力する電流Imを所定の制御周期毎に取得する。
【0096】
その後、回転角度検出器100は、回転角速度ω及び回転角度θを算出する(ステップST22)。
図6の例では、回転角度検出器100の回転角速度算出部31は、端子間電圧V'と電流Imを式(1)に代入して回転角速度ωを所定の制御周期毎に算出する。そして、回転角度検出器100の回転角度算出部32は、制御周期毎に算出される回転角速度ωを積算して回転角度θを算出する。
【0097】
その後、回転角度検出器100は、回転角度θが所定角度未満であるか否かを判定する(ステップST23)。
図6の例では、回転角度検出器100の第2信号生成部35は、回転角度θがスリット間角度θc未満であるか否かを判定する。
【0098】
回転角度θがスリット間角度θc以上であると判定した場合(ステップST23のNO)、第2信号生成部35は、スリット間角度θcまでのタイミングで第1パルス信号Paが生成されなかったと判定する。この場合、第2信号生成部35は、第1パルス信号Paが生成されていないことを示すためにフラグFを"False"にする(ステップST23A)。フラグFは、第1パルス信号Paが生成されたか否かを示すためのフラグである。フラグFの初期値は、第1パルス信号Paが生成されていないことを示す"False"である。フラグFが"True"であることは、第1パルス信号Paが既に生成されたことを示す。そして、第2パルス信号Pbを生成し(ステップST29)、且つ、回転角度θをゼロにリセットする(ステップST30)。これは、第1パルス信号Paが生成される前に回転角度θがスリット間角度θcに達した場合であり、
図9の例において時刻t3、t7、t9で回転角度θが回転角度θ3、θ7、θ9に達した場合に対応する。
【0099】
一方、回転角度θがスリット間角度θc未満であると判定した場合(ステップST23のYES)、第2信号生成部35は、第1パルス信号Paが生成されたか否かを判定する(ステップST24)。
図6の例では、第1信号生成部34によって第1パルス信号Paが生成されたか否かを判定する。
【0100】
回転角度θがスリット間角度θc未満の段階(ステップST23のYES)で第1パルス信号Paが未だ生成されていないと第2信号生成部35が判定した場合(ステップST24のNO)、回転角度検出器100は、回転量を算出する(ステップST27)。そして、回転情報算出部36は、第2信号生成部35の出力に基づいて電動機10の回転量を算出する。この場合、算出される回転量に変化はない。これは、
図9の例において時刻t0で回転角度θが回転角度θ0になっている場合に対応する。
【0101】
その後、回転角度検出器100は、回転角速度ωがゼロになったか否かを判定する(ステップST28)。そして、回転角度検出器100は、回転角速度ωがゼロになっていないと判定した場合(ステップST28のNO)、処理をステップST1に戻し、回転角速度ωがゼロになったと判定した場合(ステップST28のYES)、回転量算出処理を終了させる。
【0102】
第1パルス信号Paが生成されたと判定した場合(ステップST24のYES)、第2信号生成部35は、回転角度θが第1閾値θu未満であるか否かを判定する(ステップST25)。第1閾値θu未満のタイミングで生成された第1パルス信号Paは、ノイズに基づく慨然性が高いためである。
【0103】
回転角度θが第1閾値θu以上であると判定した場合(ステップST25のNO)、第2信号生成部35は、第1パルス信号Paが生成されたか否かを示すためにフラグFを"True"にする(ステップST25A)。そして、第2信号生成部35は、第2パルス信号Pbを生成し(ステップST29)、且つ、回転角度θをゼロにリセットする(ステップST30)。回転角度θが、第1閾値θu以上のときに第1パルス信号Paが発生した場合、第1パルス信号Paが発生した時点の実際の回転角度が、スリット間角度θcに近いためである。これは、
図9の例において時刻t1、t2、t5で第1パルス信号Pa1、Pa2、Pa4が生成された場合に対応する。
【0104】
回転角度θが第1閾値θu未満であると判定した場合(ステップST25のYES)、第2信号生成部35は、現時点では、第1パルス信号Paがノイズに基づくものでないとは判定できない。回転角度θは、多少の誤差を含む場合がある。また、第1パルス信号Paの生成時期が、ノイズ等の影響で、若干ずれることがある。このため、回転角度θがスリット間角度θcに達する時期と、第1パルス信号Paの生成時期がずれる場合がある。このため、回転角度θがスリット間角度θcに達する時期と、第1パルス信号Paの生成時期のどちらが早いか分からないためである。そこで、第2信号生成部35は、直近の第2パルス信号Pbを生成した後で最初に受け取った第1パルス信号Paに関し、回転角度θが第2閾値θd未満であるか否かを判定する(ステップST26)。
【0105】
最初の第1パルス信号Paに関する回転角度θが第2閾値θd未満であると判定した場合(ステップST26のYES)、第2信号生成部35は、フラグFを調べる(ステップST26A)。フラグFは、第1パルス信号Paが、連続して発生したことを判断するためのフラグである。フラグFが"True"の場合、第1パルス信号Paは、連続して発生した2番目以降の第1パルス信号Paである。フラグFが"True"の場合(ステップST26AのYES)、回転角度検出器100は、回転量を算出する(ステップST27)。これは、
図9の例において時刻t2'、t4'で第1パルス信号Pa2'、Pa3'が生成されたときに対応する。フラグFが"False"の場合(ステップST26AのNO)、第2信号生成部35は、フラグFを"True"にする(ステップST26B)。その後、第2信号生成部35は、回転角度θをゼロにリセットする(ステップST30)。回転角度θが第2閾値θd未満の場合、第1パルス信号Paが生成されたときの実際の回転角度が、スリット間角度θcに近いためである。すなわち、第2閾値θd未満の場合、第1パルス信号Paが、直前に生成した第2パルス信号Pbに対応すると判定できるためである。これは、
図9の例において時刻t4、t8で第1パルス信号Pa3、Pa6が生成された場合に対応する。すなわち、第1パルス信号Pa3、Pa6が第2パルス信号Pb3、Pb5に対応すると判定できる。
【0106】
最初の第1パルス信号Paに関する回転角度θが第2閾値θd以上であると判定した場合(ステップST26のNO)、すなわち、角度範囲R1内であると判定した場合、第2信号生成部35は、その第1パルス信号Paがノイズに基づくものであると判定する。この場合、第2信号生成部35は、第2パルス信号Pbを生成することはなく、回転角度θをリセットすることもない。そして、回転情報算出部36は、第2信号生成部35の出力に基づいて電動機10の回転量を算出する。これは、
図9の例において時刻t6で第1パルス信号Pa5が生成されたときに対応する。すなわち、第2信号生成部35は、第1パルス信号Pa5をノイズに基づくものと判定している。
【0107】
その後、回転角度検出器100は、電動機10の回転量を算出する(ステップST27)。
図6の例では、回転角度検出器100の回転情報算出部36は、電動機10の回転が開始した後に生成された第2パルス信号Pbの数にスリット間角度θcを乗ずることで、電動機10の回転が開始した後の回転量を算出する。
【0108】
次に、
図11を参照し、回転角度検出器100が算出した電動機10の回転量の信頼性に関する実験結果について説明する。
図11は、合成パルス信号及びホールパルス信号のそれぞれの推移を示す図である。
【0109】
合成パルス信号は、第2パルス信号Pbの複数パルスを1パルスに合成することで得られる信号である。
図11の例では、スリット間角度θcは90度である。第1パルス信号Pa及び第2パルス信号Pbは、基本的に、電動機10の回転軸が90度回転する度に生成されている。そして、合成パルス信号は、第2パルス信号Pbの2パルスを1パルスに合成して生成されている。すなわち、回転角度検出器100は、電動機10の回転軸が180度回転する度に合成パルス信号を1つ生成するように構成されている。
【0110】
ホールパルス信号は、ホールセンサが出力したパルス信号である。ホールセンサは、第2パルス信号Pbとホールパルス信号との比較のために電動機10の回転軸に取り付けられた磁石が作る磁束を検出する。
図11の例では、回転角度検出器100は、電動機10の回転軸が180度回転する度にホールパルス信号を1つ生成するように構成されている。
【0111】
図11の「×」に向かう破線矢印は、第1パルス信号Paに基づいて第2パルス信号Pbが生成されなかったことを表す。すなわち、第1パルス信号Paがノイズとして無視されたことを表す。また、
図11の8つの実線矢印は、第1パルス信号Paの生成漏れの際に第2パルス信号Pbが追加されたことを表す。
【0112】
図11の例では、電動機10の順回転を開始させてからその順回転を停止させるまでの期間に生成された合成パルス信号及びホールパルス信号のそれぞれの数が等しいことが確認された。すなわち、第2パルス信号Pbに基づいて算出される電動機10の回転量が、ホールセンサによって検出される電動機10の回転量に等しいことが確認された。
【0113】
次に、
図12を参照し、抵抗設定部37が電動機10の抵抗特性に対応する抵抗値を更新する処理(以下、「更新処理」とする。)について説明する。
図12は、更新処理のフローチャートである。抵抗設定部37は、所定の制御周期で繰り返しこの更新処理を実行する。
【0114】
最初に、抵抗設定部37は、電動機10の回転が安定している回転安定状態であるか否かを判定する(ステップST31)。回転安定状態は、例えば、所定期間における電動機10の端子間電圧Vの変動幅が所定値未満で、且つ、その所定期間における電動機10を流れる電流Imの変動幅が所定値未満で、且つ、その所定期間における第1パルス信号Paの周期の変動幅が所定値未満の状態を含む。
【0115】
図13は、窓ガラス2の昇降に使用される電動機10の回転安定状態の一例を示す。具体的には、窓ガラス2を下げるためのインチング操作が行われたときの端子間電圧V、電流Im及び第1パルス信号Paの時間的推移を示す。窓ガラス2を下げるためのインチング操作は、例えば、手動閉ボタン7Dの短時間の押圧操作である。
図13は、時刻t1において手動閉ボタン7Dが押下されたときにスイッチSW1及びSW3(
図6参照。)が閉状態となり端子間電圧V及び電流Imが増加する様子を示す。また、時刻t4においてスイッチSW1が開状態となり且つスイッチSW2(
図6参照。)が閉状態となった後で電動機10の惰性回転に応じて端子間電圧V及び電流Imが変動する様子を示す。そして、時刻t5において電動機10が停止して端子間電圧V及び電流Imがゼロに至る様子を示す。時刻t2は最初の回転安定状態の開始時点を表し、時刻t3は最初の回転安定状態の終了時点を表す。
図14は、最初の回転安定状態のときの端子間電圧V、電流Im及び第1パルス信号Paの時間的推移を示す。
【0116】
図14に示すように、抵抗設定部37は、所定数の第1パルス信号Paを検出する度に、その期間における端子間電圧V及び電流Imのそれぞれの平均値を算出する。中央値、最頻値、最大値、最小値等の他の統計値であってもよい。
図14の例では、8つの第1パルス信号Paを検出する度にその期間Tにおける端子間電圧V及び電流Imのそれぞれの平均値を算出している。期間T1、T2、T3、・・・、Tnは、8つの第1パルス信号Paを検出するのに要した期間を表す。平均端子間電圧V1、V2、V3、・・・、Vnは、期間T1、T2、T3、・・・、Tnにおける端子間電圧Vの平均値を表す。平均電流Im1、Im2、Im3、・・・、Imnは、期間T1、T2、T3、・・・、Tnにおける電流Imの平均値を表す。
【0117】
抵抗設定部37は、例えば、以下の条件が満たされる場合に、電動機10が回転安定状態にあると判定する。
【0118】
【数3】
ΔTは期間閾値を表し、ΔImは電流閾値を表し、ΔVは電圧閾値を表す。iは1〜nの整数を表す。具体的には、抵抗設定部37は、期間T1〜Tnのそれぞれの期間T1に対する差の絶対値が期間閾値ΔTより小さく、平均電流Im1〜Imnのそれぞれの平均電流Im1に対する差の絶対値が電流閾値ΔImより小さく、且つ、平均端子間電圧V1〜Vnのそれぞれの平均端子間電圧V1に対する差の絶対値が電圧閾値ΔVより小さい場合に電動機10が回転安定状態にあると判定する。すなわち、第1パルス信号Paの生成間隔、電流Im及び端子間電圧Vが何れも安定しているときに電動機10が回転安定状態にあると判定する。
【0119】
図14の破線による図解は、期間T2、T3、Tnの期間T1に対する差の絶対値が期間閾値ΔTより小さいことを表している。
図14のドットパターン領域は、T1±ΔTの範囲を表している。
図14の一点鎖線による図解は、平均端子間電圧V2、V3、Vnの平均端子間電圧V1に対する差の絶対値が電圧閾値ΔVより小さいことを表している。
図14の二点鎖線による図解は、平均電流Im2、Im3、Imnの平均電流Im1に対する差の絶対値が電流閾値ΔImより小さいことを表している。
【0120】
図14の例では、抵抗設定部37は、時刻t3において、時刻t2から時刻t3までの期間で電動機10が回転安定状態にあったと判定できる。すなわち、電動機10が現時点において回転安定状態にあると判定できる。
【0121】
ここで再び
図12を参照する。電動機10が回転安定状態にあると判定すると(ステップST31のYES)、抵抗設定部37は、第1パルス信号Paの周期に基づいて回転角速度ω'を算出する(ステップST32)。抵抗設定部37は、例えば、以下の式(3)に基づいて回転角速度ω'を算出する。
【0122】
【数4】
nは期間Tの数を表し、Mは期間Tにおける第1パルス信号Paの数を表す。例えば、nを10とし、Mを8とし、スリット間角度θcを45度とすると、回転角速度ω'は、電動機10が10回転する間の平均回転角速度[rad/s]を表す。このように、抵抗設定部37は、第1パルス信号Paの周期(上述の例では80周期)に基づいて回転角速度ω'を算出できる。
【0123】
その後、抵抗設定部37は、回転角速度ω'に基づいて推定抵抗値R'mを算出する(ステップST33)。抵抗設定部37は、例えば、以下の式(4)に基づいて推定抵抗値R'mを算出する。
【0124】
【数5】
式(4)は電動機の基本理論式であり、Keは逆起電力定数を表し、Ke×ω'は逆起電力推定値を表す。すなわち、平均端子間電圧V1〜Vnの平均値から逆起電力推定値を差し引いた値を平均電流Im1〜Imnの平均値で除した値が推定抵抗値R'mとして導き出される。平均値は、中央値、最頻値、最大値、最小値等の他の統計値であってもよい。
【0125】
その後、抵抗設定部37は、推定抵抗値R'mが正常範囲内にあるか否かを判定する(ステップST34)。抵抗設定部37は、例えば、不揮発性記憶媒体に予め登録されている正常範囲の上限及び下限を参照し、推定抵抗値R'mが正常範囲内にあるか否かを判定する。正常範囲の上限及び下限の少なくとも一方は、外気温、電動機10の温度等に応じて動的に変更されてもよい。
【0126】
推定抵抗値R'mが正常範囲内にあると判定した場合(ステップST34のYES)、抵抗設定部37は、推定抵抗値R'mを用いて設定抵抗値Rmを更新する(ステップST35)。
図12の例では、抵抗設定部37は、推定抵抗値R'mを算出する周期と同じ周期で、推定抵抗値R'mを用いて設定抵抗値Rmを更新する。但し、抵抗設定部37は、推定抵抗値R'mを算出する周期とは異なる周期で設定抵抗値Rmを更新してもよい。例えば、推定抵抗値R'mを算出する周期より短い周期で設定抵抗値Rmを更新してもよい。
【0127】
具体的には、抵抗設定部37は、例えば、以下の式(5)で導き出される抵抗値R"mで設定抵抗値Rmを更新してもよい。
【0128】
【数6】
Kmは1.0以下の正の実数定数を表す。すなわち、Kmの値が1.0に近いほど、設定抵抗値Rmは推定抵抗値R'mに近い抵抗値R"mで更新される。典型的には、Kmは1.0未満である。設定抵抗値Rmの急変、振動等を防止するためである。Kmは、不揮発性記憶媒体に予め登録されている固定値又は可変値であってもよく、動的に算出され且つ設定される値であってもよい。例えば、インチング操作(比較的短い押圧操作)が行われたときのKmは、通常操作(比較的長い押圧操作)が行われたときのKmよりも大きくなるように設定されてもよい。インチング操作が行われたときは、通常操作が行われたときに比べ、設定抵抗値Rmを更新する処理を繰り返し実行するために利用できる時間が短いためである。
【0129】
また、式(5)から明らかなように、抵抗設定部37は、更新後の設定抵抗値Rm(抵抗値R"m)と推定抵抗値R'mとの差が、更新前の設定抵抗値Rmと推定抵抗値R'mとの差より小さくなるように設定抵抗値Rmを更新する。設定抵抗値Rmの急変を防止しながら、設定抵抗値Rmを推定抵抗値R'mに徐々に近づけるようにするためである。例えば、式(4)を用いて繰り返し導き出される推定抵抗値R'mがほとんど変化しない場合、抵抗設定部37は、設定抵抗値Rmを推定抵抗値R'mに徐々に近づけることができる。特に、推定抵抗値R'mを算出する周期より短い周期で設定抵抗値Rmを更新する場合、抵抗設定部37は、新たな推定抵抗値R'mが算出される前に、設定抵抗値Rmを推定抵抗値R'mに徐々に近づけることができる。抵抗値R"mは、導き出される度に推定抵抗値R'mに近づくためである。
【0130】
電動機10が回転安定状態にないと判定した場合(ステップST31のNO)、或いは、推定抵抗値R'mが正常範囲内にないと判定した場合(ステップST34のNO)、抵抗設定部37は、設定抵抗値Rmを更新することなく、今回の更新処理を終了する。この場合、回転角速度算出部31は、現在の設定抵抗値Rmを用い、式(1)に基づいて回転角速度ωを算出する。
【0131】
このように、抵抗設定部37は、電動機10が回転安定状態にあるときの第1パルス信号Paの周期から電動機10の回転角速度ω'を算出する。そして、算出した回転角速度ω'に基づいて推定抵抗値R'mを導き出し、推定抵抗値R'mを用いて式(1)における設定抵抗値Rmを更新できる。そのため、電動機10の温度変化、経年変化等に起因する電動機10の抵抗特性の変化に応じて設定抵抗値Rmを適切に更新できる。経年変化は、例えば、整流子片20aの摩耗、ブラシの摩耗等を含む。その結果、回転角度検出器100は、例えば、電動機10の電源オフ後の惰性回転期間において電流Im及びそのリップル成分Irが小さくなり、第1信号生成部34がリップル成分Irの波形に基づいて第1パルス信号Paを生成できない場合にも、電動機10の回転に関する情報をより高い信頼性で取得できる。具体的には、第1パルス信号Paによらずに、適切な設定抵抗値Rmを用いてリアルタイムに算出された回転角速度ω及び回転角度θに基づいて第2パルス信号Pbをより正確に生成することで、電動機10の回転に関する情報をより高い信頼性で取得できる。例えば、窓ガラス2の昇降に使用される電動機10に関し、窓ガラス2を昇降させるためのインチング操作が行われた場合における電動機10の惰性回転期間であっても、電動機10の回転に関する情報をより高い信頼性で取得できる。
【0132】
上述の通り、整流子20を備えた電動機10の回転情報を取得する回転角度検出器100は、電動機10の抵抗特性に対応する抵抗値を設定する抵抗設定部37と、電圧検出部10aが検出した検出電圧値と電流検出部10bが検出した検出電流値と抵抗設定部37が設定した設定抵抗値Rmとに基づいて電動機10の回転に関する情報を算出する回転情報算出部36とを含む。そして、抵抗設定部37は、電動機10の回転が安定している回転安定状態で検出された検出電圧値と検出電流値とに基づいて推定抵抗値R'mをリアルタイムで導き出し、その推定抵抗値R'mを用いて設定抵抗値Rmをリアルタイムで更新するように構成されている。そのため、ホールセンサ等の回転センサが無くても、電動機10の回転情報を高い信頼性で取得できる。これは、センサインタフェース回路、ハーネス等の回転センサを利用するために必要な部品を省略できることを意味する。そのため、軽量化、低コスト化、小型化等を実現できる。
【0133】
抵抗設定部37は、例えば、推定抵抗値R'mが所定範囲内である場合にその推定抵抗値R'mを用いて設定抵抗値Rmを更新し、推定抵抗値R'mが所定範囲外である場合には設定抵抗値Rmを更新しないように構成されている。そのため、異常な推定抵抗値R'mによって設定抵抗値Rmが更新されてしまうのを防止できる。
【0134】
回転安定状態は、例えば、所定期間における端子間電圧Vの変動幅が所定値未満で、且つ、その所定期間における電流Imの変動幅が所定値未満で、且つ、その所定期間における第1パルス信号Paの周期の変動幅が所定値未満の状態である。回転安定状態は、端子間電圧V、電流Im、及び、第1パルス信号Paの周期の少なくとも1つを用いて定められる他の状態であってもよい。例えば、所定期間における端子間電圧Vの標準偏差が所定値未満で、且つ、その所定期間における電流Imの標準偏差が所定値未満で、且つ、その所定期間における第1パルス信号Paの周期の標準偏差が所定値未満の状態であってもよい。或いは、所定期間における端子間電圧Vの積算値が所定範囲内で、且つ、その所定期間における電流Imの積算値が所定範囲内の状態であってもよい。この構成により、抵抗設定部37は、推定抵抗値R'mを適切に導き出すことができる。
【0135】
また、抵抗設定部37は、望ましくは、更新後の設定抵抗値Rmと推定抵抗値R'mとの差が、更新前の設定抵抗値Rmと推定抵抗値R'mとの差より小さくなるように設定抵抗値Rmを更新ように構成されている。設定抵抗値Rmの急変を防止しながら、設定抵抗値Rmを推定抵抗値R'mに徐々に近づけるようにするためである。
【0136】
また、回転角度検出器100は、電流Imのリップル成分Irに基づいて生成される第1パルス信号Paと、端子間電圧V及び電流Imに基づいて算出される回転角度θとを用いて第2パルス信号Pbを生成する。すなわち、別々の方法で導き出される2つのパラメータである第1パルス信号Paと回転角度θとを用いて第2パルス信号Pbを生成する。そのため、一方のパラメータが適切に導出されなかった場合であっても他方のパラメータでその不具合を補うことができる。その結果、電動機10の回転情報をより高い信頼性で取得できる。
【0137】
回転角度算出部32は、例えば、端子間電圧Vと電流Imとに基づいて算出される電動機10の回転角速度ωを積算して回転角度θを算出するように構成される。そのため、回転角度算出部32は、電動機10の起動直後の期間、惰性回転期間等を含めた全期間に亘って回転角度θを安定的且つ継続的に算出できる。そして、第2信号生成部35は、例えば、回転角度θが所定角度に達したときに、第2パルス信号Pbを即時に生成するように構成される。そのため、第2信号生成部35は、第1パルス信号Paの生成漏れが発生した場合であっても、安定的且つ継続的に算出される回転角度θに基づき、所定角度だけ回転したことを表す第2パルス信号Pbをリアルタイムに生成できる。そのため、回転角度検出器100は、電動機10の回転情報を遅滞なく算出できる。
【0138】
第2信号生成部35は、例えば、回転角度θが所定角度に達したときに、回転角度θをゼロにリセットする指令を回転角度算出部32に出力するように構成される。そのため、回転角度検出器100は、回転角度算出部32が算出する回転角度θの最大値が所定角度に制限されるので、回転角度θの記憶に必要なメモリのサイズを小さくできる。
【0139】
所定角度は、例えば、整流子片20aの円弧の中心角、すなわちスリット間角度θcである。そのため、回転角度検出器100は、回転角度算出部32が算出する回転角度θの累積誤差の最大値をスリット間角度θcとすることができる。
【0140】
受付範囲は、例えば、電動機10がスリット間角度θcだけ回転する毎に生じる回転角度θの最大誤差の範囲である。すなわち、回転角速度算出部31が、実際よりも、回転角速度ωを大きく算出した場合に、実際の回転角度に基づく第1パルス信号Paが生成される(誤差を含んだ)回転角度θの最大値が第2閾値θdである。また、回転角速度算出部31が、実際よりも、回転角速度ωを小さく算出した場合に、実際の回転角度に基づく第1パルス信号Paが生成される(誤差を含んだ)回転角度θの最小値が第1閾値θuである。そのため、回転角度検出器100では、回転角度算出部32が算出する回転角度θの誤差が累積されない。つまり、電動機10が何回転しても、誤差を−αから+βの範囲とすることができる。
【0141】
第2信号生成部35は、例えば、第1パルス信号Paを受けたときに、回転角度θが第1閾値θu以上であれば、第2パルス信号Pbを生成するように構成される。第1閾値θuは、例えば、所定角度(スリット間角度θc)より小さい値として予め設定されている。この構成により、第2信号生成部35は、回転角度θが、第1閾値θu以上のときに生成された第1パルス信号Paをノイズに基づくものではないと見なす。そして、第1パルス信号Paが生成されなくても、回転角度θが所定角度(スリット間角度θc)に達したら、第2パルス信号Pbを生成する。そのため、第1パルス信号Paの生成漏れによる回転情報の算出結果への影響を確実に排除できる。
【0142】
また、第2信号生成部35は、例えば、第1パルス信号Paを受けたときに、回転角度θが第1閾値θu未満であれば、第2パルス信号Pbを生成しないように構成される。この構成により、第2信号生成部35は、回転角度θが第1閾値θu未満のときに生成された第1パルス信号Paをノイズに基づくものであると判定できる。そして、ノイズに基づいて生成された第1パルス信号Paに対応する第2パルス信号Pbが生成されてしまうのを防止できる。そのため、ノイズに基づいて生成された第1パルス信号Paによる回転情報の算出結果への影響を確実に排除できる。
【0143】
また、第2信号生成部35は、例えば、第1パルス信号Paを受けたときに、回転角度θが第2閾値θdより小さければ、回転角度θをゼロにリセットする指令を回転角度算出部32に出力するように構成される。第2閾値θdは、例えば、所定角度(スリット間角度θc)より位相がβだけ遅れた値として予め設定されている。この構成により、第2信号生成部35は、第1パルス信号Paの生成漏れの発生に先立って第2パルス信号Pbを生成した直後に第1パルス信号Paを受けた場合、その第1パルス信号Paをノイズに基づくものではないと見なす。そして、その第1パルス信号Paを、直前に生成した第2パルス信号Pbに対応付けることができる。そのため、第1パルス信号Paの生成タイミングのずれによる回転情報の算出結果への影響を確実に排除できる。
【0144】
以上、本発明の好ましい実施例について詳説した。しかしながら、本発明は、上述した実施例に制限されることはない。本発明の範囲を逸脱することなしに上述した実施例に種々の変形及び置換を加えることができる。
【0145】
例えば、開閉体制御装置は、車両のサンルーフ、ドアミラー、スライドドア等の窓ガラス2以外の開閉体を電動機で動作させる装置であってもよい。
【0146】
本願は、2017年5月10日に出願した日本国特許出願2017−093675号に基づく優先権を主張するものであり、これらの日本国特許出願の全内容を本願に参照により援用する。