以下に、本発明の実施形態について図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素および部分には同一の参照符号を付与している。また、以下の説明では、運転者によってペダルに加えられた踏力で後輪を駆動すると共に、電動モータによる補助駆動力で前輪を駆動するタイプの電動補助自転車に本発明を適用する場合を例示する。
[第1の実施形態]
電動補助自転車1は、フロントフォーク11、ヘッドパイプ12、ダウンチューブ13、シートチューブ14、シートステー15、チェーンステー16からなるフレームを有している。前輪21はフロントフォーク11に回動自在に取り付けられ、後輪22はシートステー15とチェーンステー16との交点に回動自在に取り付けられている。
ヘッドパイプ12には、ハンドルステム23が回動自在に挿通され、ハンドルステム23の上端にはハンドル24が取り付けられている。一方、シートチューブ14には、シートポスト25が嵌合されており、シートポスト24の上端にはサドル26が取り付けられている。
ペダル27は、クランク28を介してスプロケット(図示せず)に接続されている。運転者がペダル27に踏力を加えることによりスプロケットが回転し、スプロケットが回転することによってチェーン29を介して後輪22に駆動力が伝達されるようになっている。
電動モータ30は、前輪21の車軸に装着され、前輪21を回転させる駆動力を生成する。電動モータ30の回転は、減速機構(図示せず)によって減速され、前輪21に伝達されるように構成されている。電動モータ30は、例えばブラシレスDCモータによって構成することができる。
電動モータ30を駆動するための電力は、シートチューブ14に沿って着脱可能に設けられたバッテリ31から供給される。バッテリ31は、例えばリチウムイオン二次電池により構成され、充電を行うことによって繰り返し使用することが可能となっている。
図2は、電動補助自転車1における、電動モータ30の出力制御を行うためのモータ制御系の構成を示すブロック図である。
電源回路41は、例えばチョッパ方式の降圧型DC−DCコンバータを含んで構成され、バッテリ31から出力される直流電圧を降圧し、これをMCU(Micro Controller Unit)50の駆動電圧としてMCU50に供給する。
入力トルク検出部42は、運転者がペダルを踏み込む際の踏力(トルク)を検出し、検出した入力トルクの大きさを示す入力トルク検出信号をMCUに供給する。入力トルク検出部42は、例えば、クランク28のクランク軸とスプロケット(図示せず)との間に入力トルクに応じて変位するばね等の弾性体を設け、入力トルクに応じた回転部での弾性体の変位量をカムや遊星ギヤ等を用いて固定部での変位量に変換し、この変位量をポテンションメータ等を用いて電気信号に変換する公知のトルクセンサを含んで構成されていてもよい。また、入力トルク検出部42は、磁歪効果を持つ磁歪材と検出用コイルとで構成された、公知の非接触式のトルクセンサを含んで構成されていてもよい。
操作・表示部43は、図2に示す制御系全体の起動および停止を切り替える電源スイッチ、電動モータによる補助駆動力の大きさを切り替えるためのアシストモード切替スイッチなどを含む操作入力部と、走行スピード、バッテリ残量などを表示する表示部と、を一体的に構成したものである。操作部に対する操作入力は、信号配線(図示せず)を介してMCU50に供される。また、表示部は、MCU50から共有される情報に基づいて各種の表示を行う。操作・表示部43は、運転者がその操作・表示面を操作および視認しやすいように、例えばハンドル24に取り付けられている。
モータ駆動回路44は、MCU50から供給される制御信号に基づいて電動モータ30を駆動するための駆動電力をバッテリ31から取り出して電動モータ30に供給する。モータ駆動回路44は、例えばPWM(pulse width modulation)方式によって電動モータ30の駆動を行うものであってもよい。電動モータ30は、モータ駆動回路44から供給される駆動電力に応じた補助駆動力を発生させ、前輪21を回転駆動する。
モータトルク検出部45は、電動モータ30のトルクを検出し、検出したトルクの大きさを示すモータトルク検出信号をMCU50に供給する。ここで、電動モータ30が発生させるトルクは、電動モータ30に供給される電流に比例する。従って、モータトルク検出部45は、電動モータ30に供給される電流に基づいて電動モータ30のトルクを検出してもよい。
モータ回転数検出部46は、電動モータ30の回転数を検出し、検出した回転数を示す回転数検出信号をMCU50に供給する。例えば、電動モータ30がブラシレスDCモータによって構成される場合には、マグネットロータの回転位置を検出するためにホール素子などの磁気センサが電動モータ30に付随して設けられる。本実施形態では、モータ回転数検出部46は、この電動モータ30に付随して設けられる磁気センサを含んで構成されており、磁気センサの出力信号に基づいて電動モータ30の回転数を検出する。なお、モータ回転数検出部46は、発光ダイオード等の光源からの光を、スリット円盤上の位置検出パターンを通して受光素子で読み取る、公知の回転検出器(エンコーダ)を含んで構成されていてもよい。
MCU50は、単一の半導体チップにCPU、メモリ、入出力回路、タイマー回路などを含むコンピュータシステムを集積したLSI(Large Scale Integration)である。MCU50は、入力トルク検出部42、モータトルク検出部45、モータ回転数検出部46から供給される各種信号に基づいて、走行状況に適したアシスト比率を演算によって導出する。例えば、電動モータ30の回転数が低く且つ電動モータ30のトルクが大きい場合には、発進直後の状態または上り坂を走行している状態等であると推測されるので、このような場合、MCU50は、より大きな補助駆動力を発生するべくモータ駆動回路44にモータ出力指令値を供給する。
また、MCU50は、モータトルク検出部45から供給されるモータトルク検出信号およびモータ回転数検出部46から供給される回転数検出信号に基づいて電動モータ30によって駆動される前輪21におけるスリップを検出するスリップ検出処理を実行する。MCU50におけるスリップ検出処理については後述する。
また、MCU50は、前輪21にスリップが生じた場合には、前輪21におけるスリップが解消するまで、踏力による入力トルクに対する電動モータ30による補助駆動力の比率(以下アシスト比率という)をスリップが解消するまで段階的に引き下げるスリップ解消処理を実行する。MCU50におけるスリップ解消処理については後述する。
また、MCU50は、上記のスリップ解消処理によって前輪21のスリップが解消した後に電動モータ30におけるアシスト比率を段階的に引き上げて電動モータ30の出力を回復させるモータ出力回復処理を実行する。MCU50におけるモータ出力回復処理については後述する。
<スリップ検出処理>
以下に、MCU50において実行されるスリップ検出処理について説明する。ここで、図3(a)〜図3(c)は、それぞれ、運転者によってペダル27に加えられる踏力によってクランク軸に生じる入力トルクを示す入力トルク検出信号、入力トルクに応じてMCU50からモータ駆動回路44に供給されるモータ出力指令値、該モータ出力指令値に応じて駆動される電動モータ30のトルクを示すモータトルク検出信号および電動モータ30の回転数を示す回転数検出信号の時間推移を示した図である。図3(a)は、発進時において前輪21にスリップが生じていない場合を示し、図3(b)は、発進時において前輪21にスリップが生じた場合を示し、図3(c)は、走行中において前輪21にスリップが生じた場合を示している。
図3(a)に示すように、電動補助自転車1の発進時においてMCU50からモータ出力指令が発せられると、電動モータ30が回転を開始する。前輪21にスリップが生じていない場合には、電動モータ30の回転数は比較的緩やかに上昇するので、回転数検出信号は比較的緩やかな傾斜で立ち上がる。一方、電動モータ30のトルクは回転開始時点から急激に大きくなるのでモータトルク検出信号は急峻に立ち上がる。
図3(b)に示すように、電動補助自転車1の発進開始時点から前輪21にスリップが生じた場合には、電動モータ30の負荷は、スリップが生じていない場合と比較して小さくなるので、電動モータ30の回転数は回転開始直後から急激に大きくなる。これにより、回転数検出信号は電動モータ30の回転開始直後から比較的急な傾きで上昇する。一方、電動モータ30のトルクは、スリップが生じていない場合と比較して小さくなり、その結果、モータトルク検出信号の立ち上がりは比較的緩やかとなる。
図3(c)に示すように、電動補助自転車1の走行中に前輪21にスリップが生じた場合には、スリップ開始時点において電動モータ30の負荷が小さくなるので、回転数はスリップ開始直後において比較的急な傾きで上昇する。その結果、回転数検出信号には信号レベルが上昇する方向に変化する変曲点が現れる。一方、電動モータ30のトルクは、スリップ開始直後において比較的急な傾きで低下し、モータトルク検出信号には信号レベルが低下する方向に変曲点が現れる。
このように、発進時および走行中において前輪21にスリップが生じた場合には、モータトルク検出部45から出力されるモータトルク検出信号およびモータ回転数検出部46から出力される回転数検出信号の波形は、スリップが生じていない場合とは異なる波形となる。MCU50は、モータトルク検出部45から出力されるモータトルク検出信号およびモータ回転数検出部46から出力される回転数検出信号を所定のサンプリング周期(例えば1msec)でサンプリングしてこれらの信号波形を観測することによって前輪21のスリップを検出する。
図4(a)および図4(b)は、それぞれ、電動補助自転車1の発進時において、MCU50が前輪21のスリップを検出する方法を示す図である。図4(a)には、電動補助自転車1の発進時におけるモータトルク検出信号の時間推移が示され、図4(b)には、電動補助自転車1の発進時における回転数検出信号の時間推移が示されている。各図において、スリップが生じていない場合が破線で示され、スリップが生じている場合が実線で示されている。また、各図におけるプロットは、MCU50における各信号のサンプリング点を示している。
MCU50は、車速が略ゼロの状態から入力トルクが加えられたことをもって電動補助自転車1の発進を検出する。ここで、車速が略ゼロとは、電動補助自転車1が完全に停車している状態若しくは、押し歩きしている状態等からの発進時における車速(例えば時速0〜5Km/h程度の範囲)をいう。以下、同様。)また、MCU50は、例えば、モータ回転数検出部46から供給される回転数検出信号に基づいて車速を検出することができる。MCU50は、電動補助自転車1の発進の検出の直後にサンプリングしたモータトルク検出信号の信号値の増加する方向における変化量(増加量)Δt1が所定の閾値tsよりも小さく、且つ電動補助自転車1の発進の検出の直後にサンプリングした回転数検出信号の信号値の増加する方向における変化量(増加量)Δr1が所定の閾値よりも大きい場合には、前輪21にスリップが生じているものと判定する。図4(a)および図4(b)には、電動補助自転車1の発進検出後、1つめのサンプリング点における信号値と2つめのサンプリング点の信号値を用いてスリップ検出を行う場合が例示されている。なお、電動補助自転車1の発進の検出直後における2以上の複数のサンプリング点を用いてスリップ検出を行うこととしてもよい。また、変化量Δt1および変化量Δr1の閾値は、入力トルク検出部42から出力される入力トルク信号に応じて変化させてもよい。
図5(a)および図5(b)は、それぞれ、電動補助自転車1の走行時において、MCU50が前輪21のスリップを検出する方法を示す図である。図5(a)には、電動補助自転車1の走行時におけるモータトルク検出信号の時間推移が示され、図5(b)には、電動補助自転車1の走行時における回転数検出信号の時間推移が示されている。各図において、スリップが生じていない場合が破線で示され、スリップが生じている場合が実線で示されている。また、各図におけるプロットは、MCU50における各信号のサンプリング点を示している。
MCU50は、例えば、モータ回転数検出部46から供給される回転数検出信号に基づいて車速を検出することができるので、この回転数検出信号に基づいて電動補助自転車が走行中であることを検出することができる。MCU50は、電動補助自転車1が走行中であることを検出した場合には、サンプリングしたモータトルク検出信号の信号値が低下する方向に変化する変曲点と、サンプリングした回転数検出信号の信号値が増加する方向に変化する変曲点とが同時に出現した場合に、前輪21にスリップが生じているものと判定する。例えば、MCU50は、モータトルク検出信号の信号値が前回サンプリングした信号値に対して低下する方向に変化する変化量Δt2が所定の閾値よりも大きく、且つサンプリングした回転数検出信号の信号値が前回サンプリングした信号値に対して上昇する方向に変化する変化量Δr2が所定の閾値よりも大きい場合には、前輪21にスリップが生じているものと判定してもよい。
図6は、MCU50において実行されるスリップ検出処理プログラムにおける処理の流れを示すフローチャートである。当該プログラムは、MCU50内に形成された不揮発性メモリ(図示せず)に予め格納されている。
ステップS1において、MCU50は、モータトルク検出部45から出力されるモータトルク検出信号およびモータ回転数検出部46から出力される回転数検出信号の信号値をサンプリングする。
ステップS2において、MCU50は、現在、電動補助自転車1が発進状態にあるか否かを判断する。MCU50は、例えば、車速が略ゼロの状態から入力トルクが加えられた場合に電動補助自転車1の発進を検出する。MCU50は発進を検出した場合に処理をステップS3に移行し、それ以外の場合には処理をステップS4に移行する。
ステップS3において、MCU50は、前回サンプリングしたモータトルク検出信号の信号値に対する今回ステップS1においてサンプリングしたモータトルク検出信号の信号値の変化量(増加量)Δt1が所定の閾値ts1よりも小さく(Δt1<ts1)、且つ、前回サンプリングした回転数検出信号の信号値に対する今回ステップS1においてサンプリングした回転数検出信号の信号値の変化量(増加量)Δr1が所定の閾値rs1よりも大きい(Δr1>rs1)か否かを判断する。MCU50は、本ステップS3において、肯定判定を行った場合には処理をステップS6に移行し、否定判定を行った場合には本ルーチンを終了させる。
一方、ステップS4において、MCU50は、現在、電動補助自転車1が走行状態にあるか否かを判断する。MCU50は、例えば、モータ回転数検出部46から供給される回転数検出信号に基づいて車速を検出することができるので、この回転数検出信号に基づいて電動補助自転車が走行中であることを検出することができる。MCU50は電動補助自転車1が走行中であることを検出した場合には処理をステップS5に移行し、それ以外の場合は、本ルーチンを終了させる。
ステップS5において、MCU50は、モータトルク検出信号の信号値が低下する方向に変化する変曲点が出現し、且つ、回転数検出信号の信号値が増加する方向に変化する変曲点が出現したか否かを判断する。例えば、前回サンプリングしたモータトルク検出信号の信号値に対する今回ステップS1においてサンプリングしたモータトルク検出信号の信号値の変化量(減少量)Δt2が所定の閾値ts2よりも大きく、且つ、前回サンプリングした回転数検出信号の信号値に対する今回ステップS1においてサンプリングした回転数検出信号の信号値の変化量(増加量)Δr2が所定の閾値rs2よりも大きいか否かを判定することによって、上記の変曲点の出現を判定することとしてもよい。MCU50は、本ステップS5において、肯定判定を行った場合には処理をステップS6に移行し、否定判定を行った場合には本ルーチンを終了する。
ステップS6において、MCU50は、前輪21にスリップが生じているものと判断して、スリップ検出フラグをセットして本ルーチンを終了させる。
このように、MCU50は、電動補助自転車1が発進状態であるのか走行中であるのかに応じて異なるアルゴリズムで前輪21のスリップを検出する。また、MCU50は、モータトルク検出信号と回転数検出信号の双方の波形に基づいて前輪21のスリップを検出する。このようなスリップ検出方法によれば、確実かつ迅速なスリップ検出を実現することができる。また、このようなスリップ検出方法によれば、既存の構成部品を用いてスリップ検出を行うことが可能であり、スリップ検出を行うためにのみ使用される部品の追加を要しない。すなわち、前輪と後輪の回転数の差に応じてスリップを検出する場合よりも簡便な構成とすることができる。
<スリップ解消処理>
以下に、MCU50において実行されるスリップ解消処理について説明する。MCU50は、上記のスリップ検出処理において前輪21のスリップを検出した場合には、前輪21に生じたスリップを解消するスリップ解消処理を実行する。
図7(a)および図7(b)は、前輪21のスリップが検出され、スリップ解消処理が実行された場合における、電動モータ30におけるアシスト比率の時間推移を例示したものである。図7(a)および図7(b)におけるプロットは、MCU50からモータ駆動回路44に供給されるモータ出力指令値の出力タイミングを示している。MCU50は、所定の周期(例えば1msec)でモータ出力指令値を発する。電動モータ30におけるアシスト比率は、MCU50から発せられるモータ出力指令値によって制御されることとなる。
図7(a)および図7(b)に示すように、MCU50は、前輪21のスリップを検出すると、電動モータ30におけるアシスト比率を段階的に引き下げるべくモータ出力指令値をモータ駆動回路44に供給する。アシスト比率を段階的に引き下げることにより、電動モータ30による補助駆動力は段階的に小さくなる。
図7(a)には、前輪21のスリップが検出された場合にアシスト比率を一定量ずつ低下させる場合が示されている。換言すれば、アシスト比率を一定の傾きで低下させる場合が示されている。例えば、スリップ検出前のアシスト比率が100%(すなわち踏力による入力トルクと電動モータ30による補助駆動力が1:1)であった場合において、MCU50は、前輪21のスリップが検出された直後のモータ出力指令値でアシスト比率を例えば90%まで低下させる。その後、MCU50は、前輪21のスリップが解消しているか否かを判断し、スリップが解消していない場合には、さらに次のモータ出力指令値でアシスト比率を80%まで低下させ、前輪21のスリップが解消しているか否かを判定する。MCU50は、このような処理を前輪21のスリップが解消するまで繰り返す。この例では、前輪21のスリップが解消するまで、アシスト比率は10%ずつ引き下げられることとなる。なお、各モータ出力指令値毎のアシスト比率の引き下げ幅は適宜変更することが可能である。
図7(b)には、前輪21のスリップが検出された場合にアシスト比率を直前の値から一定の割引率で割り引く場合が示されている。例えば、MCU50は、前輪21のスリップが検出された直後のモータ出力指令値でアシスト比率を例えば直前の値の50%に設定する。その後MCU50は、前輪21のスリップが解消しているか否かを判断し、スリップが解消していない場合には、さらに次のモータ出力指令値でアシスト比率を直前の値の50%に設定し(すなわち、アシスト比率は当初の25%)、前輪21のスリップが解消しているか否かを判定する。MCU50は、このような処理を前輪21のスリップが解消するまで繰り返す。なお、各モータ出力指令値毎のアシスト比率の割引率は適宜変更することが可能である。
図8は、MCU50において実行されるスリップ解消処理プログラムにおける処理の流れを示すフローチャートである。当該プログラムは、MCU50内に形成された不揮発性メモリ(図示せず)に予め格納されている。
ステップS11において、MCU50は、直前のアシスト比率の設定値に対して引き下げを行い、これによって得られた値を今回のアシスト比率の設定値とする。MCU50は、例えば、図7(a)に示すように、引き下げ幅が一定となるようにアシスト比率の設定値を引き下げてもよいし、図7(b)に示すように、割引率が一定となるようにアシスト比率の設定値を引き下げてもよい。
ステップS12において、MCU50は、入力トルク検出部42から出力される入力トルク検出信号の信号値をサンプリングする。
ステップS13において、MCU50は、ステップS11において導出したアシスト比率にステップS12においてサンプリングした入力トルク検出信号の信号値によって示される入力トルクを乗じた大きさの補助駆動力が得られるようにモータ出力指令値を生成して、これをモータ駆動回路44に供給する。なお、当該モータ出力指令値に対応する補助駆動力の大きさが前回算出されたモータ出力指令値に対応する補助駆動力の大きさよりも小さくなるように制限をかけてもよい。
ステップS14において、MCU50は、モータトルク検出部45から出力されるモータトルク検出信号およびモータ回転数検出部46から出力される回転数検出信号の信号値をサンプリングする。
ステップS15において、MCU50は、ステップS13においてサンプリングしたモータトルク検出信号および回転数検出信号のサンプリング値に基づいて、前輪21のスリップが解消したか否かを判定する。
ここで、図9を参照して、前輪21のスリップの解消を検出する方法について説明する。図9は、前輪21のスリップが解消してグリップが回復したときのモータトルク検出信号および回転数検出信号の時間推移を示したものである。図9に示すように、前輪21のスリップが解消して前輪21がグリップを回復すると、電動モータ30の負荷が大きくなる。その結果、電動モータ30の回転数はスリップ解消直後から比較的急な傾きで低下し、回転数検出信号には信号レベルが低下する方向に変化する変曲点が現れる。一方、電動モータ30のトルクはスリップ解消直後から比較的急な傾きで上昇し、モータトルク検出信号には信号レベルが上昇する方向に変曲点が現れる。MCU50は、サンプリングしたモータトルク検出信号および回転数検出信号のサンプリング値からこれらの信号に生じた変曲点を検出した場合に、前輪21のスリップが解消したものと判断する。
MCU50は、ステップS15において、スリップが解消していないものと判断した場合には、処理をステップS11に戻し、スリップが解消したものと判断した場合には、処理をステップS16に移行する。ステップS16において、MCU50は、スリップ解消フラグをセットして本ルーチンを終了させる。
このように、MCU50は、前輪21のスリップを検出した場合には電動モータ30の出力の引き下げと、スリップが解消しているか否かの判定とをスリップが解消するまで繰り返し実行する。すなわち、MCU50は、電動モータ30の出力をスリップが解消するまで段階的に引き下げる。これにより、電動モータの出力が必要以上に低下したり、出力を低下したもののスリップの解消に到らないといった従来の制御方式における問題を解消することができる。また、本実施形態に係るスリップ解消処理によれば、電動モータ30のアシスト比率の引き下げは、スリップを解消し得る最低限の下げ幅に抑えられるので、電動モータ30による補助駆動力を最大限確保しつつスリップを解消することが可能となる。従って、従来の電動補助自転車と比較して、スリップが生じた場合における運転者の乗り心地を改善することができる。
なお、本実施形態では、電動モータ30におけるアシスト比率を段階的に引き下げることにより電動モータ30の出力(トルク)を低下させてスリップを解消させることとしたが、電動モータ30の出力(トルク)の上限値を図7(a)および図7(b)に示すような態様で段階的に引き下げることとしてもよい。これにより、入力トルク(踏力)の上昇過程においてスリップが検出された場合でも、スリップ解消処理中において電動モータ30の出力が増加することはなくなるのでモータの出力を迅速に低下させることが可能となる。また、本実施形態では、アシスト比率を段階的に引き下げることにより電動モータ30の出力(トルク)を段階的に低下させることとしたが、アシスト比率を連続的に引き下げることにより電動モータ30の出力(トルク)を連続的に低下させてもよい。すなわち、MCU50は、前輪21のスリップの発生の検出後、スリップの解消を判定するまでの期間において電動モータ30の出力(トルク)が徐々に低下するようにモータ出力指令値を出力するように構成されていてればよい。
<モータ出力回復処理>
以下に、MCU50において実行されるモータ出力回復処理について説明する。MCU50は、上記のスリップ解消処理において前輪21のスリップが解消されたものと判定した場合には、スリップ解消処理において低下したモータ出力を回復させるモータ出力回復処理を実行する。
モータ出力回復処理の一例を図10(a)に示す。図10(a)には、モータ出力回復処理中におけるアシスト比率の時間推移が例示されている。図10(a)における各プロットは、MCU50からモータ駆動回路44に供給されるモータ出力指令値の出力タイミングを示している。図10(a)に示すように、MCU50は、上記のスリップ解消処理において前輪21のスリップの解消を検出すると、電動モータ30におけるアシスト比率を所定値まで段階的に引き上げるべくモータ出力指令値を生成する。例えば、MCU50は、前輪21のスリップの解消を判定した後、所定の周期(例えば1msec)で生成するモータ出力指令値によってアシスト比率を例えば1%ずつ上昇させる。アシスト比率は、例えば、スリップ検出前の標準のアシスト比率まで回復される。このように、アシスト比率を段階的に引き上げることにより電動モータ30の出力(トルク)は徐々に増加するので、スリップの再発を防止することができる。
なお、図10(a)では、モータ出力回復処理においてアシスト比率を一定の傾きで段階的に引き上げることで、電動モータ30の出力を回復させる場合を示しているが、電動モータ30のトルクの上限値を一定の傾きで段階的に引き上げることにより電動モータ30の出力を回復させてもよい。
また、アシスト比率を段階的に引き上げる際の各段階において前輪21にスリップが生じているか否かを判定し、スリップが検出された場合には、アシスト比率の1回の引き上げ幅をそれまでよりも小さくしてもよい。また、アシスト比率を段階的に引き上げている間にスリップが検出された場合には、上記のスリップ解消処理を再度実行することにより、アシスト比率の引き下げを行い、スリップの解消を検出したときに、再度アシスト比率を引き上げるようにしてもよい。
モータ出力回復処理の他の例を図10(b)に示す。図10(b)には、モータ出力回復処理中における電動モータ30のトルク上限値の時間推移が例示されている。図10(b)におけるプロットは、MCU50からモータ駆動回路44に供給されるモータ出力指令値の出力タイミングを示している。図10(b)に示すように、MCU50は、上記のスリップ解消処理によって前輪21のスリップの解消を検出した後は、電動モータ30のトルクに所定の上限値Tmaxを設定し、トルク上限値Tmaxに到るまで電動モータ30のトルク上限値を段階的に引き上げる。トルク上限値Tmaxは、スリップが検出されない場合の通常時のトルク上限値よりも低い値とされる。このように、トルク上限値Tmaxを設定することにより、入力トルク(踏力)が大きい場合でも、電動モータ30のトルクが上限値Tmaxを超えることがなくなるので、スリップの再発を防止することができる。なお、トルク上限値Tmaxによる電動モータ30の出力制限は、例えば所定時間(数秒程度)が経過したとき、または、ペダル27の踏み込み動作の回数が所定数に達したとき等に解除されることが好ましい。
図11は、MCU50において実行される、上記したスリップ検出処理、スリップ解消処理およびモータ出力回復処理をサブルーチンとして含む走行制御プログラムにおける処理の流れを示すフローチャートである。当該プログラムは、例えば、操作・表示部43の電源スイッチ(図示せず)の操作によって図2に示すモータ制御系全体が起動されたタイミングで実行される。
ステップS101において、MCU50は、上記のスリップ検出処理(図6参照)を実行する。ステップS102において、MCU50は、スリップ検出フラグがセットされているか否かを判定する。MCU50は、スリップ検出フラグがセットされていると判定した場合には、処理をステップS103に移行し、スリップ検出フラグがセットされていないと判定した場合には処理をステップS101に戻す。ステップS103において、MCU50は、上記のスリップ解消処理(図8参照)を実行する。ステップS104において、MCU50は、スリップ解消フラグがセットされているか否かを判定する。MCU50は、スリップ解消フラグがセットされていると判定した場合には、処理をステップS105に移行する。ステップS105において、MCU50は上記のモータ出力回復処理(図10参照)を実行して本ルーチンが終了する。
以上の説明から明らかなように、本発明の実施形態に係る電動補助自転車1によれば、モータトルク検出信号と回転数検出信号の双方の時間推移に基づいて前輪21のスリップを検出するので、確実かつ迅速なスリップ検出を実現することができる。また、既存の構成部品を用いてスリップ検出を行うことが可能であるので、低コストでスリップ検出システムを構築することができる。また、自車両が発進状態であるのか走行中であるのかに応じて異なるアルゴリズムで前輪21のスリップを検出するので、より的確なスリップ検出を実現することができる。
また、本発明の実施形態に係る電動補助自転車1によれば、前輪21のスリップを検出した場合には、スリップの解消が検出されるまで、アシスト比率を段階的に引き下げることによって電動モータ30の出力を段階的に低下させるので、電動モータの出力が必要以上に低下したり、出力の引き下げが不十分であるためにスリップが解消しないといった従来の制御方式における問題を解消することができる。また、電動モータ30の出力の低下量は、スリップを解消し得る最低限の大きさに抑えられるので、電動モータ30による補助駆動力を最大限確保しつつスリップを解消することが可能となる。このように、本実施形態に係る電動自転車1によれば、前輪21にスリップが生じた場合でもアシスト機能が最大限に発揮されるので、従来の電動補助自転車と比較して、スリップが生じた場合における運転者の乗り心地を改善することができる。
また、本発明の実施形態に係る電動補助自転車1によれば、スリップの解消が判定された直後からモータ出力回復処理が実行されるので、電動モータ30による補助駆動力を迅速に回復することができる。また、モータ出力回復処理では、電動モータ30の出力が徐々に増加するようにアシスト比率が段階的に引き上げられるのでスリップの再発を防止することができる。また、他の態様によるモータ出力回復処理によれば、電動モータ30のトルクには上限値Tmaxが設定され、前輪21の駆動力が制限されるので、スリップの再発を防止することができる。
[第2の実施形態]
以下に、本発明の第2の実施形態に係る電動補助自転車について説明する。第2の実施形態に係る電動補助自転車では、MCU50は、上記したスリップ検出処理において、モータトルク検出部信号および回転数検出信号に基づいて路面の滑りやすさまたはスリップの規模を判定し、判定した路面のすべりやすさまたはスリップの規模に応じて、スリップ解消処理におけるアシスト比率の引き下げ量または割引率を変化させる。更に、第2の実施形態に係る電動補助自転車では、MCU50は、判定した路面の滑りやすさまたはスリップの規模に応じて、モータ出力回復処理におけるモータ出力の回復の態様を変化させる。
はじめに、MCU50がスリップ検出処理において路面の滑りやすさまたはスリップの規模を判定する方法について説明する。本実施形態に係る電動補助自転車においても、上記した第1の実施形態と同様、モータトルク検出信号および回転数検出信号の波形に基づいて前輪21のスリップを検出する。
ここで、図4に示すように、電動補助自転車の発進時に前輪21にスリップが発生した場合には、モータトルク検出信号の立ち上がりは、スリップが生じていない場合と比較して緩やかとなる。一方、回転数検出信号の立ち上がりは、スリップが生じていない場合と比較して急峻となる。このようなスリップが生じた場合の波形と、スリップが生じていない場合の波形との差異は、路面が滑りやすい程顕著となる。すなわち、路面がより滑りやすい状況にある場合(路面の摩擦係数がより小さい場合)には、図4(a)に示すモータトルク検出信号のサンプリングポイント間における変化量Δt1はより小さくなり、図4(b)に示す回転数検出信号のサンプリングポイント間における変化量Δr1はより大きくなる。従って、MCU50は、モータトルク検出信号および回転数検出信号の波形に基づいて、発進時における前輪21のスリップを検出するとともに、これらの信号のサンプリングポイント間における変化量Δt1およびΔr1を検出することにより路面の滑りやすさまたはスリップの規模を判定することができる。MCU50は、変化量Δt1およびΔr1の大きさに応じて現在走行している路面の滑りやすさまたはスリップの規模を例えば3つのランク(A、B、C)のうちのいずれかに分類する。このとき、入力トルクの大きさも加味してランク付けを行うこととしてもよい。なお、変化量Δt1およびΔr1の双方およびいずれか一方の大きさに応じて路面の滑りやすさまたはスリップの規模のランク付けを行ってもよい。
一方、図5に示すように、電動補助自転車の走行中にスリップが発生した場合には、モータトルク検出信号および回転数検出信号の双方に変曲点が現れる。これらの信号波形に生じる変曲点は、路面が滑りやすい程顕著となる。すなわち、路面が滑りやすいほど、変曲点に対応するサンプリングポイントにおける信号値と、変曲点の直後のサンプリングポイント(スリップ検出点に対応するサンプリングポイント)における信号値とのレベル差Δt2およびΔr2は大きくなる。従って、MCU50は、モータトルク検出信号および回転数検出信号の波形に基づいて、走行中における前輪21のスリップを検出するとともに、これらの信号の変曲点とスリップ検出点との間の信号値の変化量Δt2およびΔr2を検出することにより路面の滑りやすさまたはスリップの規模を判定することができる。MCU50は、変化量Δt2およびΔr2の大きさに応じて現在走行している路面の滑りやすさまたはスリップの規模を例えば3つのランク(A、B、C)のうちのいずれかに分類する。このとき、入力トルクの大きさも加味してランク付けを行うこととしてもよい。なお、変化量Δt2およびΔr2の双方およびいずれか一方の大きさに応じて路面の滑りやすさまたはスリップの規模のランク付けを行ってもよい。
図12は、上記した路面の滑りやすさまたはスリップの規模の判定処理を含む本発明の第2の実施形態に係るスリップ検出処理プログラムにおける処理の流れを示すフローチャートである。本フローチャートのステップS21〜ステップS26における処理は、図6に示すフローチャートのステップS1〜ステップS6と同様であるので、説明は省略する。ステップS27において、MCU50は、発進時におけるモータトルク検出信号の変化量Δt1および回転数検出信号の変化量Δr1又は、走行時におけるモータトルク検出信号の変化量Δt2および回転数検出信号の変化量Δr2に基づいて現在走行中の路面の滑りやすさまたはスリップの規模を例えば3つのランク(A、B、C)のうちのいずれかにランク付けする。ここでは、滑りやすい順にAランク、Bランク、Cランクとする。MCU50は、ランク付けの結果をメモリに格納して本ルーチンが終了する。
次に、MCU50が、スリップ解消処理において、路面の滑りやすさまたはスリップの規模のランクに応じてアシスト比率の引き下げ量または引き下げ率を変化させる態様について説明する。
図13(a)は、スリップ解消処理において、路面の滑りやすさまたはスリップの規模に応じてアシスト比率の引き下げ幅を変化させる場合を例示した図である。MCU50は、スリップ検出処理において、現在走行中の路面の滑りやすさまたはスリップの規模をCランクと判定した場合には、図13(a)において一点鎖線で示すように、アシスト比率の1回の引き下げ幅を比較的小とする。すなわち、比較的小さい傾きでアシスト比率を低下させる。一方、MCU50は、現在走行中の路面の滑りやすさまたはスリップの規模をAランクと判定した場合には、図13(a)において破線で示すように、アシスト比率の1回の引き下げ幅を比較的大とする。すなわち、比較的大きい傾きでアシスト比率を低下させる。一方、MCU50は、現在走行中の路面の滑りやすさまたはスリップの規模をBランクと判定した場合には、図13(a)において実線で示すように、アシスト比率の1回の引き下げ幅を中程度とする。すなわち、Aランクにおける傾きとCランクにおける傾きの中間の傾きでアシスト比率を低下させる。
図13(b)は、路面の滑りやすさまたはスリップの規模に応じて直前のアシスト比率の割引率を変化させる場合を例示した図である。この場合、MCU50は、スリップ検出処理において、現在走行中の路面の滑りやすさまたはスリップの規模をCランクと判定した場合には、図13(b)において一点鎖線で示すように、直前のアシスト比率に対する割引率を比較的小とする。例えば、MCU50は、アシスト比率を直前の値の80%(割引率20%)に設定する処理をスリップが解消するまで繰り返す。一方、MCU50は、現在走行中の路面の滑りやすさまたはスリップの規模をAランクと判定した場合には、図13(b)において破線で示すように、直前のアシスト比率に対する割引率を比較的大とする。例えば、MCU50は、アシスト比率を直前の値の40%(割引率60%)に設定する処理をスリップが解消するまで繰り返す。一方、MCU50は、現在走行中の路面の滑りやすさまたはスリップの規模をBランクと判定した場合には、図13(b)において実線で示すように、直前のアシスト比率に対する割引率を中程度とする。例えば、MCU50は、アシスト比率を直前の値の60%(割引率40%)に設定する処理をスリップが解消するまで繰り返す。
比較的滑りにくいCランクの路面の場合、前輪21の駆動力をわずかに低下さればスリップは解消されるものと考えられる。従って、スリップ解消処理においてアシスト比率の1回の引き下げ幅または割引率を小さくすることにより、アシスト比率を最大限に確保しつつスリップの解消を行うことが可能となる。
一方、非常に滑りやすいAランクの路面の場合、前輪21の駆動力をわずかに低下させてもスリップは解消されない可能性が高いと考えられる。従って、スリップ解消処理においてアシスト比率の1回の引き下げ幅または割引率を大きくすることにより、迅速にスリップを解消することが可能となる。
図14は、路面の滑りやすさまたはスリップの規模の判定結果に応じてアシスト比率の引き下げ幅または割引率を決定して段階的にアシスト比率の引き下げを行う本発明の第2の実施形態に係るスリップ解消処理プログラムにおける処理の流れを示すフローチャートである。
ステップS31において、MCU50は、上記のスリップ検出処理のステップS27においてメモリに格納した路面の滑りやすさまたはスリップの規模のランクを当該メモリから読み出す。
ステップS32において、MCU50は、路面の滑りやすさまたはスリップの規模のランクとアシスト比率の引き下げ幅または割引率とが対応づけられたテーブルを参照することにより読み出したランクに対応するアシスト比率の引き下げ幅または割引率を決定する。
ステップS33において、MCU50は、ステップS32にて決定した引き下げ幅または割引率にて直前のアシスト比率の設定値に対して引き下げを行い、これによって得られた値を今回のアシスト比率の設定値とする。
以降のステップS34〜ステップS38における処理は、上記した第1の実施形態に係るスリップ解消処理のステップS12〜ステップS16と同様であるので説明は省略する。
このように本実施形態に係る電動補助自転車によれば、路面がすべりやすい程スリップ解消処理におけるアシスト比率の引き下げ幅または割引率が大きくなる。すなわち、比較的滑りやすい路面状況においてスリップが生じた場合には、アシスト比率は速やかに低下するので、スリップ検出からスリップ解消までの時間をより短くすることができる。一方、比較的滑りにくい路面状況においてスリップが生じた場合には、アシスト比率は緩やかに低下するので、補助駆動力を確保したままスリップの解消を図ることができる。
上記の説明では、MCU50が前輪21のスリップ発生時点におけるモータトルク検出信号および回転数検出信号の波形から路面の滑りやすさまたはスリップの規模を判定し、当該判定した路面の滑りやすさまたはスリップの規模に応じてアシスト比率の引き下げ幅若しくは割引率を設定する場合を例示したが、これに限定されるものではない。すなわち、MCU50は、スリップ解消処理中に前輪21のスリップの規模の変化を検出し、スリップ規模の結果に応じてアシスト比率の引き下げ幅または割引率を直前の引き下げ率または割引率から変化させてもよい。
この場合、MCU50は、スリップ解消処理中においてモータトルク検出部45から出力されるモータトルク検出信号をモニタし、その信号レベルの変化に基づいてスリップの規模の変化を判定する。前輪21に生じたスリップの規模がスリップ解消処理によって小さくなるにつれて電動モータ30のトルクが大きくなる。従って、MCU50は、スリップ解消処理において、前輪21のスリップ発生後のモータトルク検出信号の信号レベルの変化量に基づいてスリップ発生後におけるスリップの規模の変化を検出することが可能である。なお、MCU50は、スリップの規模の変化を検出するにあたり回転数検出信号を併せて使用することとしてもよい。
MCU50は、スリップ解消処理において、段階的にモータ出力を低下させる各段階においてモータトルク検出信号をサンプリングしてスリップの規模の変化を検出し、スリップの規模が小さくなったと判定した場合(すなわち、モータトルク検出信号の信号レベルが上昇した場合)には、アシスト比率の引き下げ幅または割引率がそれまでの値よりも小さくなるように若しくはそれまでの値を維持するようにモータ出力指令値を生成する。一方、MCU50は、スリップの規模が変化していない若しくは大きくなったと判定した場合(すなわち、モータトルク検出信号の信号レベルが変化しない若しくは低下した場合)には、アシスト比率の引き下げ幅および割引率がそれまでの値よりも大きくなるようにモータ出力指令値を生成する。
例えば、図15に示すように、スリップ解消処理中において、モータトルク検出信号の任意のサンプリング点SP1における信号レベルa0が、次のサンプリング点SP2においてa1に増加した場合には、MCU50は、スリップの規模は小さくなったものと判定してスリップ解消処理におけるアシスト比率の引き下げ幅または割引率を直前の引き下げ幅または割引率よりも小さくなるように設定する。
一方、スリップ解消処理中において、モータトルク検出信号の信号レベルがa0からa2に増加した場合もMCU50は、スリップの規模は小さくなったものと判定してスリップ解消処理におけるアシスト比率の引き下げ幅または割引率を直前の値よりも小さくなるように設定する。しかしながら、スリップ規模の低減量は、上記したa0からa1に変化する場合よりも小さいので、MCU50は、アシスト比率の引き下げ幅または割引率の直前の値に対する低下量を上記のa0からa1に変化する場合よりも小さくする。このようにMCU50は、スリップの規模の変化量をモータトルク検出信号の信号レベルの変化量から定量的に検出し、スリップの規模の低減量が大きい程(すなわち、モータトルク検出信号の信号レベルの増加量が大きい程)、アシスト比率の引き下げ幅または割引率の直前の引き下げ幅または割引率に対する低下量を小さくする。なお、スリップ解消処理中においてモータトルク検出信号の信号レベルの増加量が所定値未満である場合には、アシスト比率の引き下げ幅または割引率を直前の引き下げ幅または割引率と同一の値に設定してもよい。
一方、スリップ解消処理中において、モータトルク検出信号の信号レベルが変化しない場合、MCU50は、スリップの規模に変化はないものと判断し、アシスト比率の引き下げ幅または割引率を直前の値よりも大きくなるように設定する。
一方、スリップ解消処理中において、モータトルク検出信号の信号レベルがa0からa3に低下した場合には、MCU50は、スリップの規模は大きくなったものと判定してスリップ解消処理におけるアシスト比率の引き下げ幅または割引率を直前の値よりも大きくなるように設定するが、スリップ規模が大きくなっているので、アシスト比率の引き下げ幅または割引率の直前の引き下げ幅または割引率に対する増加量をスリップ規模に変化がない場合よりも大きくする。
このように、スリップ解消処理中におけるスリップの規模の変化に追従するようにアシスト比率の引き下げ幅または割引率を逐次変化させることによりスリップの規模が大きい程アシスト比率の引き下げ幅または割引率が大きくなるのでスリップ解消に至るまでの時間を最小とすることができる。一方、スリップの規模が小さくなるにつれてアシスト比率の引き下げ幅または割引率が小さくなるので、スリップ解消時点におけるアシスト比率を最大とすることができる。
次に、MCU50が、モータ出力回復処理において、路面の滑りやすさまたはスリップの規模のランクに応じてモータ出力の回復のさせ方を変化させる態様について説明する。MCU50は、上記の第1の実施形態の場合と同様、前輪21のスリップの解消を検出した後、電動モータ30の出力を段階的に引き上げるモータ出力回復処理を実行する。
図16(a)は、本実施形態に係るモータ出力回復処理を示す図であり、モータ出力回復処理中におけるアシスト比率の時間推移を例示したものである。本実施形態では、MCU50は、モータ出力回復処理において、路面の滑りやすさまたはスリップの規模のランクに応じてアシスト比率の引き上げの傾きを変化させる。具体的には、MCU50は、上記のスリップ検出処理において、現在走行中の路面の滑りやすさまたはスリップの規模をCランクと判定した場合には、図16(a)において一点鎖線で示すように、アシスト比率の1回の引き上げ幅を比較的大とする。すなわち、比較的大きい傾きでアシスト比率を増加させる。一方、MCU50は、現在走行中の路面の滑りやすさまたはスリップの規模をAランクと判定した場合には、図16(a)において破線で示すように、アシスト比率の1回の引き上げ幅を比較的小とする。すなわち、比較的小さい傾きでアシスト比率を増加させる。一方、MCU50は、現在走行中の路面の滑りやすさまたはスリップの規模をBランクと判定した場合には、図16(a)において実線で示すように、アシスト比率の1回の引き上げ幅を中程度とする。すなわち、Aランクにおける傾きとCランクにおける傾きの中間の傾きでアシスト比率を増加させる。このように、路面の滑りやすさまたはスリップの規模に応じてアシスト比率の増加の傾きを変えることで、路面の滑りやすさまたはスリップの規模に応じた適切なパワーアシストを実現することができる。
図16(b)は、本実施形態に係るモータ出力回復処理の他の例を示す図であり、モータ出力回復処理中における電動モータ50のトルクの上限値の時間推移を例示したものである。図16(b)に示すように、MCU50は、前輪21のスリップの解消を検出した後は、路面の滑りやすさまたはスリップの規模のランクに応じて電動モータ30のトルクの上限値を互いに異なる値に設定してもよい。具体的には、MCU50は、上記のスリップ検出処理において、現在走行中の路面の滑りやすさまたはスリップの規模をCランクと判定した場合には、図16(b)において一点鎖線で示すように、電動モータ30のトルク上限値を比較的大きいTmax1に設定し、トルク上限値Tmax1に到るまで電動モータ30のトルク上限値を段階的に引き上げる。一方、MCU50は、現在走行中の路面の滑りやすさまたはスリップの規模をAランクと判定した場合には、図16(b)において破線で示すように、電動モータ30のトルク上限値を比較的小さいTmax3に設定し、トルク上限値Tmax3に到るまで電動モータ30のトルク上限値を段階的に引き上げる。一方、MCU50は、現在走行中の路面の滑りやすさまたはスリップの規模をBランクと判定した場合には、図16(b)において実線で示すように、電動モータ30のトルク上限値をTmax1とTmax3の中間のTmax2に設定し、トルク上限値Tmax2に到るまで電動モータ30のトルク上限値を段階的に引き上げる。なお、トルク上限値Tmax1、Tmax2、Tmax3は、いずれもスリップが検出されない場合の通常時のトルク上限値よりも低い値とされることが好ましい。また、トルク上限値Tmax1、Tmax2、Tmax3による電動モータ30の出力制限は、例えば所定時間(数秒程度)が経過したとき、または、ペダル27の踏み込み回数が所定数に達したとき等に解除されてもよい。このようなモータ出力回復処理によれば、路面が滑りやすい状況では、電動モータ30の出力(トルク)が十分に抑制されるのでスリップの再発を効果的に防止することができる。一方、路面が滑りにくい状況では、電動モータ30の出力(トルク)がある程度確保されるので、スリップの再発を防止しつつ十分な補助駆動力を得ることができる。従って、この場合においても路面の滑りやすさまたはスリップの規模に応じた適切なパワーアシストを実現することが可能となる。
[第3の実施形態]
以下に、本発明の第3の実施形態に係る電動補助自転車について説明する。本発明の第3の実施形態に係る電動補助自転車では、MCU50は、前輪21のスリップを検出した場合であって、現在走行中の路面が滑りやすい状況にあるものと判断し得る所定の条件が成立した場合に、通常のアシスト比率よりも小さいアシスト比率となるように電動モータ30の出力を制御する「低アシストモード」に移行する。
図17は、MCU50において実行されるアシストモード切替処理プログラムにおける処理の流れを示すフローチャートである。当該プログラムは、MCU50内に形成された不揮発性メモリ(図示せず)に予め格納されている。当該プログラムは、例えば、操作・表示部43の電源スイッチ(図示せず)の操作によって図2に示す制御系全体が起動されたタイミングで実行される。
ステップS41において、MCU50は、前輪21にスリップが生じたか否かを判定する。前輪21のスリップ検出は、上記したスリップ検出処理(図6参照)に準じて行うことが可能である。MCU50は、本ステップにおいてスリップを検出すると処理をステップS42に移行する。なお、MCU50は、本ステップにおいてスリップを検出した後、上記の第1の実施形態および第2の実施形態において示したスリップ解消処理およびモータ出力回復処理を実行してもよい。
ステップS42において、MCU50は、低アシストモードへの移行条件が成立したか否かを判定する。MCU50は、例えば、上記した一連のスリップ検出処理、スリップ解消処理およびモータ出力回復処理が、最初のスリップ検出時点から所定期間内(例えば5秒間)において所定回数(例えば3回)実行された場合に、現在走行中の路面は滑りやすい状況であるものと判断して低アシストモードへの移行条件が成立したものと判定してもよい。
また、MCU50は、例えば運転者による連続する2回のペダルの踏み込み動作の各々に関連して前輪21のスリップを検出した場合に、現在走行中の路面は滑りやすい状況であるものと判断して低アシストモードへの移行条件が成立したものと判定してもよい。
また、MCU50は、最初のスリップ検出時点から所定期間内(例えば10秒間)に行われる複数回のペダルの踏み込み動作のうちのいずれか1回または複数回のペダルの踏み込み動作に関連して前輪21のスリップを検出した場合に低アシストモードへの移行条件が成立したものと判定してもよい。なお、MCU50は、例えば、ペダルの踏み込み動作に対応してピークを生ずる図18に示すような入力トルク信号をモニタすることで、運転者によるペダルの踏み込み動作のタイミングを検出することができる。
MCU50は、ステップS42において低アシストモードへの移行条件が成立したものと判定した場合には処理をステップS43に移行し、移行条件が成立していないものと判定した場合には処理をステップS41に戻す。
ステップS43において、MCU50は、アシスト比率の設定値を、スリップ検出前のアシスト比率の設定値よりも小さい値に設定することにより、アシストモードを通常モードから低アシストモードに移行する。低アシストモードに移行した後は、MCU50は、入力トルク検出部42から供給される入力トルク信号によって示される入力トルク(踏力)の大きさに低アシストモードにおけるアシスト比率を乗じた大きさの補助駆動力で前輪21を駆動するべくモータ出力指令値を生成してこれをモータ駆動回路44に供給する。
ステップS44において、MCU50は、低アシストモードの解除条件が成立したか否かを判定する。MCU50は、例えば、低アシストモードへの移行を開始してから所定期間(例えば10秒)経過したときに、低アシストモードの解除条件が成立したものと判定してもよい。また、MCU50は、低アシストモードに移行してからの運転者によるペダルの踏み込み回数が所定数(例えば3回)に達したときに低アシストモードの解除条件が成立したものと判定してもよい。また、MCU50は、低アシストモードに移行してからの走行距離が所定値に達したときに低アシストモードの解除条件が成立したものと判定してもよい。また、MCU50は、低アシストモードに移行後、所定期間(例えば10秒間)継続して前輪21のスリップが検出されない場合に低アシストモードの解除条件が成立したものと判定してもよい。MCU50は、低アシストモードの解除条件が成立したものと判定すると処理をステップS45に移行する。
ステップS45において、MCU50は、低アシストモードを解除して、電動モータ30によるアシスト比率を、低アシストモードにおけるアシスト比率からスリップ検出前の通常モードにおけるアシスト比率に切り替える。通常モードに移行した後は、MCU50は、入力トルク検出部42から供給される入力トルク信号によって示される入力トルク(踏力)の大きさに通常モードにおけるアシスト比率を乗じた大きさの補助駆動力で前輪21を駆動するべくモータ出力指令値を生成してこれをモータ駆動回路44に供給する。
このように、本実施形態に係る電動補助自転車によれば、前輪21におけるスリップの発生状況によって低アシストモードへの移行条件が成立したか否かが判定され、低アシストモードへの移行条件が成立した場合には、電動モータ30におけるアシスト比率がスリップ発生前のアシスト比率よりも小さい値に設定される。このようなアシスト切替制御によれば、比較的滑りやすい路面の走行時においては、アシスト比率が通常よりも小さい値に設定されるので、スリップの再発を効果的に防止することが可能となる。また、低アシストモードの解除条件を設けることにより、一旦低アシストモードに移行した場合でも通常モードへの復帰が可能となる。
図19は、変形例に係るアシストモード切替処理プログラムにおける処理の流れを示すフローチャートである。
ステップS51において、MCU50は、前輪21にスリップが生じたか否かを判定する。前輪21のスリップ検出は、上記した第2の実施形態に係るスリップ検出処理(図12参照)に準じて行うことが可能である。すなわち、本ステップS51では、スリップ検出が行われるとともに、路面の滑りやすさまたはスリップの規模のランク付けがなされる。
ステップS52において、MCU50は、路面の滑りやすさまたはスリップの規模のランクをメモリに格納する。
ステップS53において、MCU50は、低アシストモードへの移行条件が成立したか否かを判定する。本ルーチンでは、路面の滑りやすさまたはスリップの規模のランクを低アシストモードへの移行条件として用いてもよい。例えば、路面の滑りやすさまたはスリップの規模のランクがAランクである場合に低アシストモードへの移行条件が成立したものと判定してもよい。MCU50は、低アシストモードへの移行条件が成立したものと判定した場合には処理をステップS54に移行し、移行条件が成立していないものと判定した場合には処理をステップS51に戻す。
ステップS54において、MCU50は、路面の滑りやすさまたはスリップの規模のランクをメモリから読み出す。
ステップS55において、MCU50は、電動モータ30によるアシスト比率を、スリップ検出前の設定値よりも小さい値に設定することによりアシストモードを通常モードから低アシストモードに移行する。このとき、MCU50は、ステップS54において読み出した路面の滑りやすさまたはスリップの規模のランクに応じて低アシストモードにおけるアシスト比率を設定する。すなわち、MCU50は、路面が比較的すべりやすいと判定した場合には、低アシストモードにおけるアシスト比率を比較的小さい値に設定し、路面が比較的すべりにくいと判定した場合には、低アシストモードにおけるアシスト比率を比較的大きい値に設定する。MCU50は、路面の滑りやすさまたはスリップの規模とアシスト比率の設定値とを対応づけたテーブルを参照することにより低アシストモードにおけるアシスト比率の設定値を導出してもよい。
ステップS56において、MCU50は、ステップS54において読み出した路面の滑りやすさまたはスリップの規模のランクに応じて低アシストモードの解除条件を設定する。例えば、低アシストモードへの移行後の経過時間によって解除条件を規定する場合には、路面がすべりやすい程、解除条件としての経過時間としてより長い時間を要求することとしてもよい。例えば、MCU50は、路面が比較的すべりやすいと判定した場合には、「低アシストモードに移行後10秒経過すること」を解除条件として設定し、路面が比較的すべりにくいと判定した場合には、「低アシストモード移行後5秒経過すること」を解除条件として設定してもよい。
また、例えば低アシストモードに移行してからの運転者によるペダルの踏み込み動作の回数によって解除条件を規定する場合には、路面が滑りやすい程、解除条件としてのペダルの踏み込み動作の回数として、より多くの回数を要求することとしてもよい。例えば、MCU50は、路面が比較的すべりやすいと判定した場合には、「低アシストモードに移行後ペダルの踏み込み動作が5回なされること」を解除条件として設定し、路面が比較的すべりにくいと判定した場合には、「低アシストモード移行後ペダルの踏み込み動作が1回なされること」を解除条件として設定してもよい。
また、例えば低アシストモードに移行してから前輪21のスリップの非検出期間によって解除条件を規定する場合には、路面が滑りやすい程、解除条件としてのスリップ非検出期間として、より長い非検出期間を要求することとしてもよい。例えば、MCU50は、路面が比較的すべりやすいと判定した場合には、「低アシストモードに移行後、前輪21のスリップの非検出期間が10秒継続すること」を解除条件として設定し、路面が比較的すべりにくいと判定した場合には、「低アシストモードに移行後、前輪21のスリップの非検出期間が3秒継続すること」を解除条件として設定してもよい。
ステップS57において、MCU50は、ステップS56において設定した解除条件が成立したか否かを判定し、解除条件が成立したものと判定した場合には処理をステップS58に移行する。
ステップS58において、MCU50は、低アシストモードを解除して、電動モータ30によるアシスト比率を、低アシストモードにおけるアシスト比率からスリップ検出前の通常モードにおけるアシスト比率に切り替えて本ルーチンを終了させる。
このように、路面の滑りやすさまたはスリップの規模のランクに応じて低アシストモードに移行した際のアシスト比率を設定することにより、スリップが生じた場合に路面のすべりやすさに応じた適切な出力制限を行うことが可能となる。さらに、路面の滑りやすさまたはスリップの規模のランクに応じて低アシストモードの解除条件を設定することにより、スリップの再発を効果的に抑制することが可能となる。
なお、上記の各実施形態では、モータトルク検出信号および回転数検出信号の波形から前輪21のスリップを検出することとしたが、前輪21と後輪22との回転数差から前輪21のスリップを検出してもよい。この場合、電動モータ30で駆動される前輪21の回転数は、電動モータ30の回転数やギヤ比等から算出することができる。一方、運転者のペダルの踏み込み動作によって駆動される後輪22の回転数は、例えば、公知の回転検出器(エンコーダ)やペダルの踏み込み動作に同期した入力トルク信号の周期から算出することが可能である。
また、上記の各実施形態では、電動モータ30で前輪21を駆動するタイプの電動補助自転車に本発明を適用する場合を例示したが、後輪を電動モータで駆動するタイプの電動補助自転車に本発明を適用することも可能である。