以下、本発明の実施形態について図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素および部分には同一の参照符号を付与している。
図1は、本発明の実施形態に係る電動機付自転車1の構成を示す側面図である。電動機付自転車1は、フロントフォーク11、ヘッドパイプ12、ダウンチューブ13、シートチューブ14、シートステー15、チェーンステー16からなるフレームを有している。前輪21はフロントフォーク11に回動自在に取り付けられ、後輪22はシートステー15とチェーンステー16との交点に回動自在に取り付けられている。
ヘッドパイプ12には、ハンドルステム23が回動自在に挿通され、ハンドルステム23の上端にはハンドル24が取り付けられている。一方、シートチューブ14には、シートポスト25が嵌合されており、シートポスト25の上端にはサドル26が取り付けられている。
ペダル27は、クランク28を介してスプロケット(図示せず)に接続されている。ユーザがペダル27に踏力を加えることによりスプロケットが回転し、スプロケットが回転することによってチェーン29を介して後輪22に駆動力が伝達されるようになっている。
モータ160は、前輪21の車軸に装着され、前輪21を回転させる駆動力を生成する。モータ160の回転は、減速機構(図示せず)によって減速され、前輪21に伝達されるように構成されている。なお、本実施形態では、車輪にモータを組み込むハブモータ式の電動機付自転車を例示しているが所謂センターマウント方式の電動機付自転車に本発明を適用することも可能である。
モータ160を駆動するための電力は、シートチューブ14に沿って着脱可能に設けられたバッテリ110から供給される。バッテリ110は、例えばリチウムイオン二次電池により構成され、充電を行うことによって繰り返し使用することが可能となっている。
フロントフォーク11の先端部には、カゴ30を支持するためのステー31が接続されている。ライト170は、ステー31の上部をカゴ30の下面に取り付けるための締結金具(図示)に取り付けられている。ライト170は、自車両の前方に向けて光を出射する灯具である。ライト170は、バッテリ110から電力の供給を受けて発光するLEDや白熱電球等の光源を含んで構成されている。なお、ライト170は、投光方向が自車両の前方に向くようにハンドル24やフロントフォーク11の適当な位置に設けられていてもよい。
ハンドル24には、操作・表示部180が設けられている。操作・表示部180は、踏力に対する補助駆動力の比率(以下、アシスト比率ともいう)の設定(以下、アシストモードともいう)を選択するための入力操作を受け付けるモード選択ボタン(図示せず)、ライト170を点灯および消灯させるための入力操作を受け付けるライトボタン(図示せず)や自車両の状態を表示する表示部(図示せず)を有する。
図2は、電動機付自転車1のハンドル24付近の構成を示す図である。なお、図2において、操作・表示部180が省略されている。ハンドル24を構成する右側グリップ51の近傍には、リムブレーキやハブブレーキ等の機械式のブレーキ機構を有する前輪ブレーキ(図示せず)を作動させるための第1のブレーキレバー61と、第1のブレーキレバー61が操作されたことを検出する第1のブレーキセンサ220が設けられている。同様に、ハンドル24を構成する左側グリップ52の近傍には、リムブレーキやハブブレーキ等の機械式のブレーキ機構を有する後輪ブレーキ(図示せず)を作動させるための第2のブレーキレバー62と、第2のブレーキレバー62が操作されたことを検出する第2のブレーキセンサ230が設けられている。
図3は、本発明の実施形態に係る電動機付自転車1の電気系統の構成を示すブロック図である。
トルクセンサ200は、ペダル27に加えられた人力による入力トルクの大きさを検出し、検出した入力トルクの大きさを示すトルク検出信号STを生成する。トルクセンサ200によって生成されたトルク検出信号STは、演算処理装置100に供給される。トルクセンサ200は、例えば、クランク軸に対して機械的な接触部分を有しない、磁歪効果を利用した公知のトルクセンサを用いることが可能である。
回転数センサ210は、モータ160の回転数を検出し検出した回転数を示す回転数検出信号SVを生成する。回転数センサ210によって生成された回転数検出信号SVは、演算処理装置100に供給される。回転数センサ210は、例えば、モータ160を構成するロータの角度位置を検出するホール素子によって構成することが可能である。
第1のブレーキセンサ220は、第1のブレーキレバー61が操作されたことを検出すると、ブレーキ操作検出信号SBを生成してこれを演算処理装置100に供給する。同様に、第2のブレーキセンサ230は、第2のブレーキレバー62が操作されたことを検出すると、ブレーキ操作検出信号SBを生成してこれを演算処理装置100に供給する。
操作・表示部180は、アシスト比率の設定(アシストモード)を選択するための入力操作を受け付けるモード選択ボタン(図示せず)およびライト170を点灯および消灯させるための入力操作を受け付けるライトボタン(図示せず)を有する。操作・表示部180は、モード選択ボタンおよびライトボタンが操作されると、これらのボタンが操作されたことを演算処理装置100に通知する。また、操作・表示部180は、バッテリ残量、現在選択されているアシストモードおよびライトの点灯・消灯等を含む自車両の状態を表示するための表示部(図示せず)を有する。自車両の状態に関する情報は、演算処理装置100から供給される。
演算処理装置100は、例えば、単一の半導体チップにCPU(演算処理装置)、メモリ、入出力回路、タイマー回路などを含むコンピュータシステムを集積したLSI(Large Scale Integration)を含んで構成されている。
演算処理装置100は、バッテリ110から電力を取り出してこれをモータ160に供給してモータ160を駆動することにより補助駆動力を得る力行モードと、モータ160の運動エネルギーを電気エネルギーに変換して回生電流として回収する回生モードとの切り替えを制御する。演算処理装置100は、第1のブレーキセンサ220および第2のブレーキセンサ230の少なくとも一方においてブレーキ操作検出信号SBが出力された場合、すなわち、第1のブレーキレバー61および第2のブレーキレバーの少なくとも一方が操作された場合に回生モードに移行する。
電動機付自転車1は、回生モード時において、モータ160から回生電流を回収することでモータ160を減速させて制動力を発生させる。すなわち、電動機付自転車1は、走行中に第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方が操作されると回生モードに移行し、当該ブレーキレバーの操作に連動して作動する機械式の前輪ブレーキおよび/または後輪ブレーキ(図示せず)による制動力に加えて、回生制動による制動力によって減速する。モータ160から回収された回生電流は、バッテリ110に供給され、これによってバッテリ110の充電が行われるようになっている(回生充電)。なお、回生電流をバッテリ110に供給することなく抵抗素子に流すことによりモータ160の運動エネルギーを熱エネルギーとして消費してもよい。
演算処理装置100は、トルクセンサ200、回転数センサ210、第1のブレーキセンサ220および第2のブレーキセンサ230から供給される各種の検出信号に基づいて、力行モード時にはモータ駆動指令値C1を生成し、回生モード時には回生電流指令値C2を生成する。演算処理装置100は、モータ駆動指令値C1または回生電流指令値C2をモータ駆動回路120に供給することによってモータ駆動回路120の動作を制御する。
モータ駆動回路120は、力行モード時においては、演算処理装置100から供給されるモータ駆動指令値C1によって示されるアシスト量(トルク目標値)に対応した駆動電力をバッテリ110から取り出してモータ160に供給する。一方、モータ駆動回路120は、回生モード時においては、演算処理装置100から供給される回生電流指令値C2によって示される値の回生電流をモータ160から回収し、回収した回生電流によってバッテリ110を充電する。なお、演算処理装置100、モータ駆動回路120、モータ160、操作・表示部180、トルクセンサ200、回転数センサ210、第1のブレーキセンサ220および第2のブレーキセンサ230は、それぞれ、バッテリ110から供給される電力によって動作する。
図4は、バッテリ110、モータ駆動回路120およびモータ160の接続関係を詳細に示す図である。モータ駆動回路120は、トランジスタT1〜T6を含むインバータ回路121と、トランジスタT1〜T6を個別にオンオフするためのゲート信号を生成するインバータ制御回路122と、インバータ回路121に接続されたトランジスタT7と、を含んでいる。トランジスタT7もインバータ制御回路122から供給されるゲート信号に応じてオンオフする。
各トランジスタT1〜T6は、ドレイン側にカソードが接続され、ソース側にアノードが接続されたダイオードを有するnチャネルMOSFETによって構成されている。トランジスタT1〜T6は、オフ状態においてもダイオードを介して逆方向に電流を流すことが可能となっている。一方、トランジスタT7は、ドレイン側にアノードが接続され、ソース側にカソードが接続されたダイオードを有するpチャネルMOSFETによって構成されている。トランジスタT7は、オフ状態においても、ダイオードを介して逆方向に電流を流すことが可能となっている。
本実施形態において、モータ160は、インナーロータ型のブラシレスモータであり、永久磁石を含むロータと、モータ巻線Lを有するステータと、ロータの回転位置を検出するための3つのホール素子Hと、を含んでいる。なお、本実施形態において、ホール素子Hはモータ160の回転数を検出する回転数センサ210を兼ねている。
バッテリ110の正極側(ハイサイド側)に接続されたトランジスタT1、T3、T5と、バッテリ110の負極側(ローサイド側)に接続されたトランジスタT2、T4、T6との各接続点u、v、wは、モータ160を構成する3つのモータ巻線Lにそれぞれ接続されている。
インバータ制御回路122は、力行モード時には3つのホール素子Hからそれぞれ出力される検知信号によってロータの角度位置を検出し、検出したロータの角度位置に応じてトランジスタT1〜T6を一定の順序でオンさせる。これにより、モータ巻線Lに流れる電流の向きが順次切り替わりロータが回転する。インバータ制御回路122は、力行モード時においては、演算処理装置100から供給されるモータ駆動指令値C1によって示されるアシスト量(トルク目標値)が得られるようにトランジスタT1〜T6のオンデューティを調整する。また、インバータ制御回路122は、力行モード時にはトランジスタT7をオフさせることによりモータ160からバッテリ110に向かう方向の電流を遮断する。バッテリ110からモータ160に向かう方向の電流はトランジスタT7に付随するダイオードを介して流れる。
一方、インバータ制御回路122は、回生モード時にはハイサイド側のトランジスタT1、T3およびT5を全てオフ状態に維持しつつローサイド側のトランジスタT2、T4およびT6を互いに同一のタイミングでオンオフするようにPWM制御し、且つトランジスタT7をオンさせる。上記PWM制御において、ローサイド側のトランジスタT2、T4およびT6がオン状態とされている期間においてはモータ巻線Lに短絡電流が流れてモータ巻線Lにエネルギーが蓄えられ、これによってモータ160が減速して回生制動による制動力が発生する。その後、ローサイド側のトランジスタT2、T4およびT6がオフ状態とされるとモータ巻線Lに電圧が誘起される。かかる誘起電圧がバッテリ電圧を超えると、各トランジスタに付随するダイオードおよびトランジスタT7を介してバッテリ110に向けて回生電流が流れ、モータ巻線Lに蓄えられたエネルギーが放出されるとともにバッテリ110が充電される。
回生制動による制動力は、回生電流の値が大きくなる程大きくなる。回生電流の値は、上記のPWM制御におけるローサイド側のトランジスタT2、T4およびT6のオンデューティによって制御される。インバータ制御回路122は、回生モード時においては、演算処理装置100から供給される回生電流指令値C2によって示される電流値Iの回生電流が得られるようにローサイド側のトランジスタT2、T4およびT6のオンデューティを調整する。
図5は、演算処理装置100の機能的な構成を示す機能ブロック図である。演算処理装置100は、記憶部101、駆動指令値導出部102、目標値導出部103、係数導出部104、回生電流指令値導出部105および選択部106を含んで構成されている。
駆動指令値導出部102は、力行モード時において、トルクセンサ200から供給されるトルク検出信号STおよび回転数センサ210から供給される回転数検出信号SVに基づいて、走行状況に適したアシスト量(トルク目標値)を導出し、導出したアシスト量(トルク目標値)をモータ駆動指令値C1として選択部106に供給する。例えば、モータ160の回転数が低く且つ入力トルク(踏力)が大きい場合には発進直後の状態または上り坂を走行している状態等であると推測されるので、このような場合、駆動指令値導出部102は、比較的大きなアシスト量(トルク目標値)をモータ駆動指令値C1として導出する。
なお、駆動指令値導出部102は、操作・表示部180のモード選択ボタン(図示せず)に対する入力操作によって選択されたアシストモードに応じたアシスト量(トルク目標値)を導出する。本実施形態においては、アシスト比率の大きさが互いに異なる3つのアシストモード(エコ、標準、パワー)が予め定められており、これらのいずれかを操作・表示部180のモード選択ボタンを押下することによって選択することが可能となっている。記憶部101には、アシストモード毎に入力トルクおよびモータ160の回転数と、アシスト量との関係を示すマップが記憶されている。駆動指令値導出部102は、記憶部101に記憶された上記のマップを参照することにより入力トルクおよびモータ160の回転数に応じた最適なアシスト量(トルク目標値)を導出する。
目標値導出部103は、第1のブレーキセンサ220および第2のブレーキセンサ230の少なくとも一方がブレーキ操作検出信号SBを出力しているものと判定した場合に(すなわち回生モードに移行した場合に)、回生電流の目標値ITをモータ160の回転数に追従して導出する。
ここで、図6(a)は、回生モード時にモータ駆動回路120において行われるPWM制御におけるローサイド側のトランジスタT2、T4およびT6のオンデューティと、回生電流との関係の一例を示す図である。図6(a)において、モータ160の回転数(車速)が比較的高い場合が実線で示され、モータ160の回転数(車速)が比較的低い場合が破線で示され、モータ160の回転数(車速)が中程度の場合が一点鎖線で示されている。
図6(a)に示すように、回生電流は、あるオンデューティでピークを持つ。これは、回生モード時において、ローサイド側のトランジスタT2、T4およびT6のオンデューティが小さすぎるとモータ160のインダクタ(モータ巻線L)に蓄えられるエネルギーが小さくなる一方、オンデューティが大きすぎるとモータ160のインダクタ(モータ巻線)に蓄えられたエネルギーを放出する時間が不足するためである。また、回生電流の最大値はモータ160の回転数が高い程(車速が高い程)大きくなる。図6(a)においてラインAは、各回転数における回生電流のピークを結んだ線である。目標値導出部103は、回生モード時において、刻々と変化するモータ160の回転数を回転数センサセンサ210から逐次取得し、取得したモータ160の回転数においてモータ160から回収可能な回生電流の最大値を、回生電流の目標値ITとして導出する。
図6(b)は、モータ160の回転数と回収可能な回生電流の最大値との関係の一例を示す図である。図6(b)に示す特性カーブは、実測またはシミュレーション等に基づいて取得され、上記特性カーブを示す情報が記憶部101に記憶されている。目標値導出部103は、回転数センサ210から取得したモータ160の回転数に対応する回生電流の最大値を、記憶部101に記憶された上記の特性カーブを参照することによって抽出し、抽出した値を回生電流の目標値ITとして導出する。なお、モータ160の回転数と回収可能な回生電流の最大値との関係を示す関係式を記憶部101に記憶しておき、目標値導出部103は、上記関係式に回転数センサ210から取得したモータ160の回転数を代入することによって目標値ITを導出してもよい。
係数導出部104は、第1のブレーキセンサ220および第2のブレーキセンサ230の少なくとも一方がブレーキ操作検出信号SBを出力しているものと判定した時点からの経過時間tの増加に伴い、徐々に1に近づくように変化する係数αを所定期間毎(例えば0.1msec)に導出する。なお、係数αの値は0≦α≦1の範囲内に設定される。
また、係数導出部104は、第1のブレーキセンサ220および第2のブレーキセンサ230のいずれか一方からブレーキ操作検出信号SBが出力されているものと判定した場合(すなわち、第1のブレーキレバー61および第2のブレーキレバー62のいずれか一方が操作された場合)と、第1のブレーキセンサ220および第2のブレーキセンサ230の双方からブレーキ操作検出信号SBが出力されているものと判定した場合(すなわち、第1のブレーキレバー61および第2のブレーキレバー62の双方が操作された場合)とで、異なる時間変化を有する係数αを導出する(図7参照)。なお、係数αの時間変化については後述する。
記憶部101には、経過時間tと係数αとの関係式が記憶されている。係数導出部104は、タイマー回路を含んでおり、タイマー回路によって経過時間tを計測し、記憶部101に記憶された上記の関係式に計測によって取得した経過時間tを代入することによって係数αを導出する。
回生電流指令値導出部105は、目標値導出部103によって導出された回生電流の目標値ITと係数導出部104によって導出された係数αとを乗算することによって得られる回生電流の電流値I(I=α×IT)を回生電流指令値C2として導出し、これを選択部106に供給する。
選択部106は、第1のブレーキセンサ220および第2のブレーキセンサ230の少なくとも一方からブレーキ操作検出信号SBが出力されているものと判定した場合に、回生モードに移行し、回生電流指令値導出部105から供給される回生電流指令値C2を選択してこれをモータ駆動回路120に供給する。一方、選択部106は、第1のブレーキセンサ220および第2のブレーキセンサ230のいずれからもブレーキ操作検出信号SBが出力されていないものと判定した場合に、力行モードに移行し、駆動指令値導出部102から供給されるモータ駆動指令値C1を選択してこれをモータ駆動回路120に供給する。このように選択部106がブレーキ操作検出信号SBの有無に基づいてモータ駆動指令値C1および回生電流指令値C2のいずれか一方を選択することにより、力行モードと回生モードとの切り替えがなされる。
モータ駆動回路120は、選択部106からモータ駆動指令値C1が供給された場合には、当該モータ駆動指令値C1によって示されるアシスト量の補助駆動力が得られるようにモータ160を駆動する。一方、モータ駆動回路120は、選択部106から回生電流指令値C2が供給された場合には、当該回生電流指令値C2によって示される電流値Iの回生電流をモータ160から回収する。
記憶部101は、力行モード時に駆動指令値導出部102において参照される入力トルクおよびモータ160の回転数とアシスト量との関係を示すマップ、図6(b)に示す特性カーブを示す情報、経過時間tと係数αとの関係式および後述する回生電流制御プログラム等を記憶した不揮発性の記憶領域である。
上記したように、回生電流指令値C2として出力される、モータ160から回収すべき回生電流の電流値Iは、目標値導出部103によって導出された回生電流の目標値ITと係数導出部104によって導出された係数αとを乗算した値である(I=α×IT)。換言すれば、係数導出部104によって導出される係数αは、回生電流の目標値ITとモータ160から回収すべき回生電流の電流値Iとの比I/ITに相当する(α=I/IT)。
ここで、図7は、係数導出部104として機能する演算処理装置100によって導出される係数αの時間変化の一例を示す図である。図7において実線は第1のブレーキセンサ220および第2のブレーキセンサ230の双方からブレーキ操作検出信号SBが出力された場合(すなわち、第1のブレーキレバー61および第2のブレーキレバー62の双方が操作された場合)に対応し、破線は、第1のブレーキセンサ220および第2のブレーキセンサ230のいずれか一方からブレーキ操作検出信号SBが出力された場合(すなわち、第1のブレーキレバー61および第2のブレーキレバー62のいずれか一方が操作された場合)に対応する。
演算処理装置100は、第1のブレーキセンサ220および第2のブレーキセンサ230の少なくとも一方からブレーキ操作検出信号SBが出力された時点からの経過時間tに応じて係数α(=I/IT)を1に向けて徐々に増大させる。図7に示す例では、係数αが、経過時間tに対して一定の時間変化率(傾き)で増加している場合が示されている。係数αの値が1に達したとき、モータ160から回収される回生電流の電流値Iは、目標値IT(すなわちその時点における最大値)に一致することになり、回生制動による制動力が最大となる。係数αを徐々に1に近づけることで、第1のブレーキレバー61および/または第2のブレーキレバー62の操作開始時点から回生制動による制動力が徐々に最大値に近づくことになる。従って、第1のブレーキレバー61および/または第2のブレーキレバー62の操作開始直後に最大の制動力が作用することが回避され、ブレーキ作動時におけるショックを緩和することができる。
また、演算処理装置100は、実線で示される、第1のブレーキセンサ220および第2のブレーキセンサ230の双方からブレーキ操作検出信号SBが出力された場合における係数αの時間変化率(傾き)が、破線で示される、第1のブレーキセンサ220および第2のブレーキセンサ230のいずれか一方からブレーキ操作検出信号SBが出力された場合における係数αの時間変化率(傾き)よりも大きくなるように係数αを導出する。これにより、ブレーキ操作開始時点から回生制動による制動力が最大値に達するまでの時間は、片方のブレーキレバーが操作された場合よりも両方のブレーキレバーが操作された場合の方が短くなる。
また、演算処理装置100は、実線で示される、第1のブレーキセンサ220および第2のブレーキセンサ230の双方からブレーキ操作検出信号SBが出力された場合と、破線で示される、第1のブレーキセンサ220および第2のブレーキセンサ230のいずれか一方からブレーキ操作検出信号が出力された場合と、の双方において係数αを1まで増加させる。すなわち、回生制動による制動力は、操作されるブレーキレバーの数が1であるか2であるかにかかわらず最大値にまで達する。従って、操作されるブレーキレバーの数が1であるか2であるかにかかわらず回生制動による制動力を最大限に作用させることができる。
図8(a)は、係数αの値が1に達する前に、一方のブレーキレバーに対する操作がなされている状態から追加のブレーキ操作が行われて両方のブレーキレバーに対する操作がなされている状態に変化した場合の係数αの時間変化の一例を示す図である。一方、図8(b)は、係数αの値が1に達する前に、双方のブレーキレバーに対する操作がなされている状態から一方のブレーキレバーに対する操作が解除されて片方のブレーキレバーのみが操作されている状態に変化した場合の係数αの時間変化の一例を示す図である。
図8(a)および図8(b)において、実線は第1のブレーキレバー61および第2のブレーキレバー62の双方が操作されている状態に対応し、破線は第1のブレーキレバー61および第2のブレーキレバー62のいずれか一方が操作されている状態に対応する(図9、図11〜図15において同じ)。また、図8(a)および図8(b)において、一点鎖線は、ブレーキ操作が開始されてから係数αの値が1に達するまでの全期間に亘り両方のブレーキレバーが操作されている状態が継続する場合の仮想線であり、二点鎖線は、ブレーキ操作が開始されてから係数αの値が1に達するまでの全期間に亘り片方のブレーキレバーのみが操作されている状態が継続する場合の仮想線である(図9、図11〜図15において同じ)。
係数導出部104として機能する演算処理装置100は、図8(a)に示すように、追加のブレーキ操作が行われる時刻t1から係数αの値が1に達する時刻t2までの期間T2における係数αの時間変化率(傾き)を、片方のブレーキレバーに対する操作が開始されてから時刻t1までの期間T1における係数αの時間変化率(傾き)よりも大とする。すなわち、演算処理装置100は、追加のブレーキ操作が行われる時刻t1において係数αの時間変化率(傾き)を増加させる。これにより、二点鎖線で示される、追加のブレーキ操作がなされない場合と比較してブレーキ操作が開始されてから係数αの値が1に達するまでの期間が短くなる。図8(a)に示す例では、期間T2における係数αの時間変化率(傾き)は、一点鎖線で示されるブレーキ操作の開始時点から係数αの値が1に達するまでの全期間に亘り両方のブレーキレバーが操作されている状態が継続する場合における係数αの時間変化率(傾き)と同一とされている。
また、演算処理装置100は、図8(b)に示すように、一方のブレーキレバーに対する操作が解除される時刻t3から係数αの値が1に達する時刻t4までの期間T4における係数αの時間変化率(傾き)を、両方のブレーキレバーに対する操作が開始されてから時刻t3までの期間T3における係数αの時間変化率(傾き)よりも小とする。すなわち、演算処理装置100は、一方のブレーキレバーに対する操作が解除される時刻t3において係数αの時間変化率(傾き)を減少させる。これにより、一点鎖線で示される、一方のブレーキレバーに対する操作の解除がなされない場合と比較してブレーキ操作が開始されてから係数αの値が1に達するまでの期間が長くなる。図8(b)に示す例では、期間T4における係数αの時間変化率は、二点鎖線で示される、ブレーキ操作の開始時点から係数αの値が1に達するまでの全期間に亘り片方のブレーキレバーのみが操作されている状態が継続する場合における係数α時間変化率と同一とされている。
図9は、係数αの値が1に達する前に、一方のブレーキレバーに対する操作がなされている状態から追加のブレーキ操作が行われて両方のブレーキレバーに対する操作がなされている状態に変化し、その後更に、一方のブレーキレバーに対する操作が解除されて片方のブレーキレバーのみが操作されている状態に変化した場合の係数αの時間変化の一例を示す図である。
係数導出部104として機能する演算処理装置100は、追加のブレーキ操作が開始される時刻t5から一方のブレーキレバーに対する操作が解除される時刻t6までの期間T6における係数αの時間変化率(傾き)を、ブレーキ操作が開示されてから時刻t5までの期間T5における係数αの時間変化率(傾き)よりも大とする。また、演算処理装置100は、時刻t6から係数αの値が1に達する時刻t7までの期間T7における係数αの時間変化率(傾き)を期間T6における係数αの傾きよりも小とする。すなわち、演算処理装置100は、追加のブレーキ操作が行われる時刻t5において係数αの時間変化率(傾き)を増加させ、一方のブレーキレバーに対する操作が解除される時刻t6において係数αの時間変化率(傾き)を減少させる。また、演算処理装置100は、期間T7における係数αの時間変化率(傾き)を、期間T5における係数αの時間変化率(傾き)と同一する。期間T7および期間T5における係数αの時間変化率(傾き)は、二点鎖線で示される、ブレーキ操作が開始されてから係数αの値が1に達するまでの全期間に亘り片方のブレーキレバーのみが操作されている状態が継続する場合における係数αの時間変化率(係数α)と同一とされる。一方、期間T6における係数αの時間変化率(傾き)は、一点鎖線で示される、ブレーキ操作が開始されてから係数αの値が1に達するまでの全期間に亘り両方のブレーキレバーが操作されている状態が継続する場合における係数αの時間変化率(係数α)と同一とされる。
このように、本実施形態では、係数αが1に達するまでは、一方のブレーキレバーに対する操作が行われている場合の係数αの時間変化率は常に一定である。また、係数αが1に達するまでは、両方のブレーキレバーに対する操作が行われている場合の係数αの時間変化率は常に一定であり且つ一方のブレーキレバーに対する操作が行われている場合の係数αの時間変化率よりも大である。
以上のように、演算処理装置100は、係数α(=I/IT)の値が1に達する前に、追加のブレーキ操作がなされた場合およびいずれか一方のブレーキレバーに対する操作が解除された場合に係数αの時間変化率を変化させる。これにより、回生制動による制動力の時間変化がブレーキ操作に連動するので、ユーザの意思に合致した良好なブレーキ感覚を得ることができる。
また、本実施形態において、演算処理装置100は、一方のブレーキレバーに対する操作が解除される時刻t3(図8(b)参照)および時刻t6(図9参照)において、係数αの値を減少させない。すなわち、演算処理装置100は、第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方に対する操作が開始されてから係数αの値が1に達するまでの間に第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方に対する操作が継続している場合には、係数αの値を増加する方向にのみ変化させる。
また、演算処理装置100は、係数αの値が1に達した後は、第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方に対する操作が継続している場合には、係数αの値を1に維持する。すなわち、回生制動による制動力が最大値に達した後は、第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方が操作されている限り回生制動による制動力は最大値を維持する。例えば、第1のブレーキレバー61および第2のブレーキレバー62の双方が操作されている状態で係数αの値が1に達した後、いずれか一方のブレーキレバーに対する操作が解除された場合においても係数αの値は1に維持される。
一方、演算処理装置100は、第1のブレーキレバー61および第2のブレーキレバー62の双方に対する操作が解除された場合には、係数αの値を直ちにゼロにする。これにより、回生電流の電流値Iはゼロとなり、回生制動による制動力が作用しなくなる。なお、演算処理装置100は、第1のブレーキセンサ220および第2のブレーキセンサ230のいずれからもブレーキ操作検出信号SBが出力されていないものと判定した時点から係数αをゼロに向けて緩やかに減少させてもよい。
図10は、回生モード時において、演算処理装置100によって実行される回生電流制御プログラムにおける処理の流れを示すフローチャートである。なお、以下の説明では、理解を容易にするために、第1のブレーキレバー61および第2のブレーキレバー62のいずれか一方が操作されている場合に導出される係数αを「係数α1」と表記し、第1のブレーキレバー61および第2のブレーキレバー62の双方が操作されている場合に導出される係数αを「係数α2」と表記する。
演算処理装置100は、ステップS1において、第1のブレーキセンサ220および第2のブレーキセンサ230の少なくとも一方からブレーキ操作検出信号SBが出力されているか否かを判定する。演算処理装置100は、第1のブレーキセンサ220および第2のブレーキセンサ230の少なくとも一方からブレーキ操作検出信号SBが出力されているものと判定した場合には処理をステップS2に移行する。
演算処理装置100は、ステップS2において、回転数センサ210から回転数検出信号SVを取得する。演算処理装置100は、ステップS3において、目標値導出部103として機能し、ステップS2において取得したモータ160の回転数に対応する回生電流の最大値を、記憶部101に記憶された図6(b)に示す特性カーブを参照することによって抽出し、抽出した値を回生電流の目標値ITとして導出する。
演算処理装置100は、ステップS4において、第1のブレーキセンサ220および第2のブレーキセンサ230からのブレーキ操作検出信号SBの有無に基づいて、第1のブレーキレバー61および第2のブレーキレバー62のいずれか一方が操作されているのか双方が操作されているのかを判定する。演算処理装置100は、ステップS4において、片方のブレーキレバーが操作されているものと判定した場合には処理をステップS5に移行し、両方のブレーキレバーが操作されているものと判定した場合には処理をステップS7に移行する。
演算処理装置100は、ステップS5において、係数導出部104として機能し、ステップS1においてブレーキレバーの操作を検出した時点からの経過時間、追加のブレーキ操作がなされてからの経過時間または一方のブレーキレバーに対する操作の解除がなされてからの経過時間に応じた係数α1を導出する。演算処理装置100は、自身に内蔵するタイマー回路による計測によって各時点からの経過時間を取得し、取得した各時点からの経過時間に対応する係数α1を記憶部101に記憶された関係式に基づいて導出する。これにより、演算処理装置100は、経時的に1に向けて増大する係数α1を導出することとなる。
演算処理装置100は、ステップS6において、回生電流指令値導出部105として機能し、ステップS3において導出した回生電流の目標値ITとステップS5において導出した係数α1とを乗算し、これによって得た回生電流の電流値I(I=α1×IT)を回生電流指令値C2として導出する。演算処理装置100は、導出した回生電流指令値C2をモータ駆動回路120に供給する。
一方、演算処理装置100は、ステップS7において、係数導出部104として機能し、ステップS1においてブレーキレバーの操作を検出した時点からの経過時間、追加のブレーキ操作がなされてからの経過時間または一方のブレーキレバーに対する操作の解除がなされてからの経過時間に応じた係数α2を導出する。演算処理装置100は、自身に内蔵するタイマー回路による計測によって各時点からの経過時間を取得し、取得した各時点からの経過時間に対応する係数α2を記憶部101に記憶された関係式に基づいて導出する。これにより、演算処理装置100は、継時的に1に向けて増大する係数α2を導出することとなる。演算処理装置100は、係数α2の時間変化率が、係数α1の時間変化率よりも大となるように係数α1および係数α2を導出する。
演算処理装置100は、ステップS8において、回生電流指令値導出部105として機能し、ステップS3において導出した回生電流の目標値ITとステップS7において導出した係数α2とを乗算し、これによって得た回生電流の電流値I(I=α2×IT)を回生電流指令値C2として導出する。演算処理装置100は、導出した回生電流指令値C2をモータ駆動回路120に供給する。
演算処理装置100は、ステップS9において、第1のブレーキセンサ220および第2のブレーキセンサ230から出力されるブレーキ操作検出信号SBに基づいて、第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方に対する操作が継続しているか否かを判定する。演算処理装置100は、ステップS9において、第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方に対する操作が継続しているものと判定した場合には、処理をステップS2に戻し、ステップS2からステップS9までの処理を繰り返し実行する。一方、演算処理装置100は、ステップS9において、第1のブレーキレバー61および第2のブレーキレバー62の双方に対する操作が解除されたものと判定した場合には処理をステップS10に移行する。
演算処理装置100は、ステップS10において回生電流の電流値Iをゼロに設定し、電流値Iがゼロであることを示す回生電流指令値C2をモータ駆動回路120に供給して本ルーチンを終了させる。回生電流の電流値Iがゼロとなることで回生制動による制動力はゼロとなる。
以上の説明から明らかなように、本実施形態に係る電動機付自転車1においては、第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方が操作された場合に、機械式のブレーキによる制動力に加えて回生制動による制動力が作用する。回生制動による制動力は、モータ160から回収される回生電流の電流値Iによって制御される。また、演算処理装置100は、モータ160から回収可能な回生電流の最大値をモータ160の回転数に追従して取得し、取得した回生電流の最大値を当該回転数における回生電流の目標値ITとして導出する。演算処理装置100は、モータ160から回収すべき回生電流の電流値Iと目標値ITとの比I/ITに相当する係数αを緩やかに1に近づける。これにより、第1のブレーキレバー61および/または第2のブレーキレバー62の操作開始直後に最大の制動力が作用することが回避され、ブレーキ作動時におけるショックを緩和することができる。
また、演算処理装置100は、第1のブレーキレバー61および第2のブレーキレバー62のいずれか一方が操作された場合における係数αの時間変化と、第1のブレーキレバー61および第2のブレーキレバー62の双方が操作された場合における係数αの時間変化を異ならせる。また、演算処理装置100は、係数αの値が1に達する前に、追加のブレーキ操作がなされた場合およびいずれか一方のブレーキレバーに対する操作が解除された場合に係数αの時間変化率を変化させる。これにより、回生制動の制動力の時間変化がブレーキ操作に連動するので、ユーザの意思に合致した良好なブレーキ感覚を得ることができる。
また、演算処理装置100は、第1のブレーキレバー61および第2のブレーキレバー62のいずれか一方が操作された場合と、第1のブレーキレバー61および第2のブレーキレバー62の双方が操作された場合との双方において係数αの値を1まで増加させる。すなわち、回生制動による制動力は、操作されるブレーキレバーの数が1であるか2であるかにかかわらず最大値にまで達する。従って、操作されるブレーキレバーの数が1であるか2であるかにかかわらず回生制動による制動力を最大限に作用させることができる。このように、本実施形態に係る電動機付自転車によれば、回生制動時におけるフィーリングを改善するとともに、片方のブレーキレバーが操作された場合および両方のブレーキレバーが操作された場合の双方において回生制動による制動力を最大限に作用させることができる。
また、演算処理装置100は、係数αの値が1に達した後は、第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方に対する操作が継続している場合には係数αの値を1に維持する。すなわち、回生制動による制動力が最大値に達した後は、第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方に対する操作が継続されている限り回生制動による制動力は最大値を維持する。回生制動による制動力は、モータ160の回転数の低下に伴って小さくなるので、係数αの値が1に達して制動力が最大となった後は、いずれか一方のブレーキレバーが操作されている限り、最大の制動力が得られる状態を維持することが好ましい。
また、演算処理装置100は、係数αの値が1に達する前に、両方のブレーキレバーが操作されている状態から片方のブレーキレバーが操作されている状態に変化した場合に係数αの時間変化率(傾き)を減少されるが、このとき係数αの値を減少させない。すなわち、演算処理装置100は、第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方に対する操作が開始されてから係数αの値が1に達するまでの間に第1のブレーキレバー61および第2のブレーキレバー62の少なくとも一方に対する操作が継続している場合には、係数αの値を増加する方向にのみ変化させる。上記のように、回生制動による制動力はモータ160の回転数の低下に伴って小さくなるので、一方のブレーキレバーに対する操作が解除された場合でも係数αの値を減じることなく1に向けて常に増加する方向に変化させることで、回生制動による制動力を有効に作用させることが可能となる。
なお、上記の実施形態では、目標値導出部103として機能する演算処理装置100は、当該回転数において回収可能な回生電流の最大値を目標値ITとして導出しているが、これに限定されるものではない。目標値導出部103として機能する演算処理装置100は、当該回転数において回収可能な回生電流の最大値よりも小さい値(例えば最大値の90%に相当する値)を回生電流の目標値として導出してもよい。また、バッテリ110への充電電流が過大となることを防止する観点から、目標値導出部103として機能する演算処理装置100は、回生電流の目標値ITに上限値を設定してもよい。例えば、目標値ITの上限値が6Aに設定された場合には、演算処理装置100は、当該回転数において回収可能な回生電流の最大値が7Aであっても、目標値ITとして上限値である6Aを導出してもよい。
また、上記の実施形態においては、目標値導出部103として機能する演算処理装置100は、モータ160の回転数に追従するように回生電流の目標値ITを導出することとしたが、電動付自転車の車速に追従するように回生電流の目標値ITを導出してもよい。この場合には、回転数センサ210とは別に電動機付自転車1の車速を検出する車速センサを設けてもよいし、ホール素子Hによって車速を検出してもよい。
(変形例)
係数導出部104として機能する演算処理装置100は、ブレーキ操作が開始されてから係数αの値が1に達する前に、追加のブレーキ操作がなされた場合およびいずれか一方のブレーキレバーに対する操作が解除された場合に、図11〜図15に示すような態様で係数αを変化させてもよい。
図11(a)および図11(b)は、係数αの値が1に達する前に、一方のブレーキレバーに対する操作がなされている状態から追加のブレーキ操作が行われて両方のブレーキレバーに対する操作がなされている状態に変化した場合の係数αの時間変化の変形例を示す図である。
係数導出部104として機能する演算処理装置100は、図11(a)に示すように、片方のブレーキレバーに対する操作が開始されてから追加のブレーキ操作が行われる時刻t8までの期間においては、一定の時間変化率(傾き)で係数αの値を増加させ、時刻t8において追加のブレーキ操作を検出したときに係数αの値を直ちに1に変化させてもよい。また、図11(b)に示すように、片方のブレーキレバーに対する操作が開始されてから追加のブレーキ操作が行われる時刻t8までの期間においては、係数αの時間変化を非線形としてもよい。
図12(a)および図12(b)は、係数αの値が1に達する前に、両方のブレーキレバーが操作されている状態からいずれか一方のブレーキレバーに対する操作が解除されて片方のブレーキレバーのみが操作されている状態に変化した場合の係数αの時間変化の変形例を示す図である。
係数導出部104として機能する演算処理装置100は、一方のブレーキレバーに対する操作が解除される時刻t9から係数αの値が1に達する時刻t10までの期間T10における係数αの時間変化率(傾き)を、ブレーキ操作が開始されてから時刻t9までの期間T9における係数αの時間変化率(傾き)よりも小とする。このとき、演算処理装置100は、図12(a)に示すように、係数αが1に達するまでの全期間(すなわち期間T9と期間T10とを合せた期間)の長さが、期間T0の長さと同一となるように、期間T10における係数αの時間変化率を調整する。ここで、期間T0は、二点鎖線で示される、ブレーキ操作が開始されてから係数αの値が1に達するまでの全期間に亘り片方のブレーキレバーのみが操作されている状態が継続する場合における係数αが1に達するまでの期間である。従って、期間T10における係数αの時間変化率(傾き)は、二点鎖線で示される係数αの時間変化率(傾き)よりも小さくなる。このように、本実施形態において、演算処理装置100は、一方のブレーキレバーに対する操作が解除された場合には、ブレーキ操作が開始されてから係数αが1に達するまでの期間の長さが所定の長さとなるように、一方のブレーキレバーに対する操作の解除後における係数αの時間変化率を調整する。また、演算処理装置100は、図12(b)に示すように、ブレーキ操作が開始されてから時刻t9までの期間においては、係数αの時間変化を非線形としてもよい。
図13は、係数αの値が1に達する前に、一方のブレーキレバーに対する操作がなされている状態から追加のブレーキ操作が行われて両方のブレーキレバーに対する操作がなされている状態に変化し、その後、一方のブレーキレバーに対する操作が解除されて片方のブレーキレバーのみが操作されている状態に変化した場合の係数αの時間変化の変形例を示す図である。
係数導出部104として機能する演算処理装置100は、図13に示すように、追加のブレーキ操作が行われる時刻t11において係数αの時間変化率(傾き)を増加させ、一方のブレーキレバーに対する操作が解除される時刻t12において係数αの時間変化率(傾き)を減少させる。このとき演算処理装置100は、図13に示すように、係数αが1に達するまでの全期間(すなわち、期間T11と期間T12と期間T13とを合せた期間)の長さが、期間T0の長さと同一となるように、期間T13における係数αの時間変化率を調整する。ここで期間T0は、二点鎖線で示される、ブレーキ操作が開始されてから係数αの値が1に達するまでの全期間に亘り片方のブレーキレバーのみが操作されている状態が継続する場合における、係数αが1に達するまでの期間である。従って、期間T13における係数αの時間変化率(傾き)は、二点鎖線で示される係数αの時間変化率よりも小さくなる。このように、本実施形態において、演算処理装置100は、一方のブレーキレバーに対する操作が解除された場合には、ブレーキ操作が開始されてから係数αが1に達するまでの期間の長さが所定の長さとなるように、一方のブレーキレバーに対する操作の解除後における係数αの時間変化率を調整する。
図14は、係数αの値が1に達する前に、一方のブレーキレバーに対する操作がなされている状態から追加のブレーキ操作が行われて両方のブレーキレバーに対する操作がなされている状態に変化し、その後、一方のブレーキレバーに対する操作が解除されて片方のブレーキレバーのみが操作されている状態に変化した場合の係数αの時間変化の変形例を示す図である。
係数導出部104として機能する演算処理装置100は、図14に示すように、追加のブレーキ操作が行われる時刻t14において係数αの時間変化率(傾き)を増加させ、一方のブレーキレバーに対する操作が解除される時刻t15において係数αの時間変化率(傾き)を減少させる。本実施形態においては、演算処理装置100は、一方のブレーキレバーに対する操作が解除される時刻t15において係数αの値を減少させる。具体的には、演算処理装置100は、時刻t15における係数αの値を、二点鎖線で示される、ブレーキ操作が開始されてから係数αの値が1に達するまでの全期間に亘り片方のブレーキレバーのみが操作されている状態が継続する場合における時刻t15における係数αの値に一致させる。演算処理装置100は、時刻t15から係数αの値が1に達する時刻t16までの期間T16における係数αの時間変化率を、ブレーキ操作が開始されてから時刻t14までの期間T14における係数αの時間変化率と同一とする。すなわち期間T14および期間T15において、係数αは、二点鎖線上の値をとる。従って、係数αが1に達するまでの全期間(すなわち、期間T14と期間T15と期間T16とを合せた期間)の長さは、期間T0の長さと一致する。ここで期間T0は、二点鎖線で示される、ブレーキ操作が開始されてから係数αの値が1に達するまでの全期間に亘り片方のブレーキレバーのみが操作されている状態が継続する場合における、係数αが1に達するまでの期間である。このように、ブレーキレバーの操作解除に連動して係数αの値を減じることで、ブレーキ感覚の更なる改善を図ることが可能となる。
図15は、係数αの値が1に達する前に、一方のブレーキレバーに対する操作がなされている状態から追加のブレーキ操作が行われて両方のブレーキレバーに対する操作がなされている状態に変化し、その後一方のブレーキレバーに対する操作が解除されて片方のブレーキレバーのみが操作されている状態に変化した場合の係数αの時間変化の変形例を示す図である。
係数導出部104として機能する演算処理装置100は、図15に示すように、追加のブレーキ操作が行われる時刻t17において係数αの時間変化率を増加させ、一方のブレーキレバーに対する操作が解除される時刻t18において係数αの時間変化率を減少させる。また、演算処理装置100は、時刻t18において係数αの値を減少させる。具体的には、演算処理装置100は、時刻t18における係数αの値を、二点鎖線で示される、ブレーキ操作が開始されてから係数αの値が1に達するまでの全期間に亘り片方のブレーキレバーのみが操作されている状態が継続する場合における時刻t18における係数αの値に一致させる。また、演算処理装置100は、時刻t18から係数αが1に達する時刻t19までの期間T19の長さが期間T0の長さと同一となるように、期間T19における係数αの時間変化率(傾き)を調整する。ここで期間T0は、二点鎖線で示される、ブレーキ操作が開始されてから係数αの値が1に達するまでの全期間に亘り片方のブレーキレバーのみが操作されている状態が継続する場合における、係数αが1に達するまでの期間である。すなわち、一方のブレーキレバーに対する操作が解除された後、係数αが1に達するまでの期間の長さが、常に期間T0の長さと一致するようにブレーキ操作解除後の係数αの時間変化率(傾き)が調整される。従って、期間T19における係数αの時間変化率は、二点鎖線で示される係数αの時間変化率よりも小さくなる。