(57)【要約】【課題】モータを好適に制御できる人力駆動車両用制御装置を提供する。【解決手段】人力駆動車用制御装置は、人力駆動車に設けられるクランクに入力される人力駆動力に応じて人力駆動車の推進をアシストするモータを制御する制御部を含み、前記制御部は、前記クランクに入力される人力駆動力に応じて、第１演算処理と、前記第１演算処理とは異なる第２演算処理と、を行い、前記第１演算処理で算出した第１演算値と、前記第２演算処理で算出した第２演算値と、の合算値に応じて前記モータを制御する。【選択図】図２
2020045057.tif 000002
【特許請求の範囲】
【請求項１】
人力駆動車に設けられるクランクに入力される人力駆動力に応じて人力駆動車の推進をアシストするモータを制御する制御部を含み、
前記制御部は、
前記クランクに入力される人力駆動力に応じて、第１演算処理と、前記第１演算処理とは異なる第２演算処理と、を行い、
前記第１演算処理で算出した第１演算値と、前記第２演算処理で算出した第２演算値と、の合算値に応じて前記モータを制御する、人力駆動車用制御装置。
【請求項２】
前記第１演算処理と前記第２演算処理との少なくとも一方は開ループ演算処理である、請求項１に記載の人力駆動車用制御装置。
【請求項３】
前記制御部は、前記人力駆動力に対する前記モータの駆動力の比率が所定の比率になるように目標値を設定し、前記目標値を用いて前記第１演算処理および第２演算処理を行う、請求項１または２に記載の人力駆動車用制御装置。
【請求項４】
前記制御部は、前記クランクに人力駆動力が入力されると、前記第１演算処理と前記第２演算処理とを開始する、請求項１〜３のいずれか一項に記載の人力駆動車用制御装置。
【請求項５】
前記制御部は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値以上になると、前記第１演算処理の前記第１演算値を下げる、請求項１〜４のいずれか一項に記載の人力駆動車用制御装置。
【請求項６】
前記制御部は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値以上になると、前記第１演算処理の前記第１演算値を徐減させる、請求項５に記載の人力駆動車用制御装置。
【請求項７】
前記制御部は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値未満の間に、前記人力駆動車のクランクの回転が停止すると、前記第１演算値を下げる、請求項１〜６のいずれか一項に記載の人力駆動車用制御装置。
【請求項８】
前記制御部は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値未満の間に、前記人力駆動車のクランクに入力される人力駆動力に応じて前記モータを制御し、前記第１演算処理を行う頻度は、前記第２演算処理を行う頻度よりも少ない、請求項１〜７のいずれか一項に記載の人力駆動車用制御装置。
【請求項９】
前記制御部は、第１目標値を前記目標値として前記第１演算処理で用い、第２目標値を前記目標値として前記第２演算処理に用い、前記第１目標値を設定する頻度は、前記第２目標値を設定する頻度よりも少ない、請求項３に記載の人力駆動車用制御装置。
【請求項１０】
前記第１演算処理を行う頻度は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値未満の間に１回である、請求項８または９に記載の人力駆動車用制御装置。
【請求項１１】
前記制御部は、前記クランクが一周するまでに前記人力駆動力を取得し、前記第１演算処理を行う、請求項１〜１０のいずれか一項に記載の人力駆動車用制御装置。
【請求項１２】
前記制御部は、前記人力駆動車が停止状態から走行状態に遷移すると、前記クランクに入力される前記人力駆動力に応じて所定の頻度で前記第２演算処理を行う、請求項１〜１１のいずれか一項に記載の人力駆動車用制御装置。
【請求項１３】
前記制御部は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値未満の間、前記第２演算処理の前記第２演算値にフィルタ制御を行う、請求項１〜１２のいずれか一項に記載の人力駆動車用制御装置。
【請求項１４】
人力駆動車に設けられるクランクに入力される人力駆動力に応じて人力駆動車の推進をアシストするモータを制御する制御部を含み、
前記制御部は、前記モータを制御するための第１演算値を算出するための第１演算処理と、前記第１演算処理とは異なり、かつ、前記モータを制御するための第２演算値を算出するための第２演算処理と、を行い、
前記人力駆動車の走行状態に応じて前記第１演算処理と前記第２演算処理との少なくとも一方を変更し、
前記第１演算値と、前記第２演算値と、の合算値に応じて前記モータを制御する、人力駆動車用制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人力駆動車用制御装置に関する。
【背景技術】
【０００２】
例えば、特許文献１に開示されている人力駆動車用制御装置は、人力駆動車両に入力される人力駆動力に対するモータの出力の比率が所定の比率になるようにモータを制御している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−５９２６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、モータを好適に制御できる人力駆動車両用制御装置を提供することである。
【課題を解決するための手段】
【０００５】
本発明の第１側面に従う人力駆動車用制御装置は、人力駆動車に設けられるクランクに入力される人力駆動力に応じて人力駆動車の推進をアシストするモータを制御する制御部を含み、前記制御部は、前記クランクに入力される人力駆動力に応じて、第１演算処理と、前記第１演算処理とは異なる第２演算処理と、を行い、前記第１演算処理で算出した第１演算値と、前記第２演算処理で算出した第２演算値と、の合算値に応じて前記モータを制御する。
上記第１側面の人力駆動車用制御装置によれば、第１演算値と第２演算値との合算値に応じてモータを好適に制御できる。
【０００６】
前記第１側面に従う第２側面の人力駆動車用制御装置において、前記第１演算処理と前記第２演算処理との少なくとも一方は開ループ演算処理である。
上記第２側面の人力駆動車用制御装置によれば、第１演算処理と第２演算処理との少なくとも一方は開ループ制御であるため、演算負荷を小さくできる。
【０００７】
前記第１または第２側面に従う第３側面の人力駆動車用制御装置において、前記制御部は、前記人力駆動力に対する前記モータの駆動力の比率が所定の比率になるように目標値を設定し、前記目標値を用いて前記第１演算処理および第２演算処理を行う。
上記第３側面の人力駆動車用制御装置によれば、目標値を用いて好適に第１演算処理および第２演算処理を行える。
【０００８】
前記第１〜第３側面のいずれか１つに従う第４側面の人力駆動車用制御装置において、前記制御部は、前記クランクに人力駆動力が入力されると、前記第１演算処理と前記第２演算処理とを開始する。
上記第４側面の人力駆動車用制御装置によれば、クランクに人力駆動力が入力されるまで、第１演算処理と第２演算処理とが開始されないため、省エネに貢献できる。
【０００９】
前記第１〜第４側面のいずれか１つに従う第５側面の人力駆動車用制御装置において、前記制御部は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値以上になると、前記第１演算処理の前記第１演算値を下げる。
上記第５側面の人力駆動車用制御装置によれば、人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値以上になった後、好適にモータによるアシストを行える。
【００１０】
前記第５側面に従う第６側面の人力駆動車用制御装置において、前記制御部は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値以上になると、前記第１演算処理の前記第１演算値を徐減させる。
上記第６側面の人力駆動車用制御装置によれば、モータの駆動力の変化をゆるやかにできる。
【００１１】
前記第１〜第６側面のいずれか１つに従う第７側面の人力駆動車用制御装置において、前記制御部は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値未満の間に、前記人力駆動車のクランクの回転が停止すると、前記第１演算値を下げる。
上記第７側面の人力駆動車用制御装置によれば、クランクの回転が停止すると、第１演算値を下げるため、モータの駆動力が大きくなることを抑制できる。
【００１２】
前記第１〜第７側面のいずれか１つに従う第８側面の人力駆動車用制御装置において、前記制御部は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値未満の間に、前記人力駆動車のクランクに入力される人力駆動力に応じて前記モータを制御し、前記第１演算処理を行う頻度は、前記第２演算処理を行う頻度よりも少ない。
上記第８側面の人力駆動車用制御装置によれば、第１演算処理を行う頻度を少なくできるため、演算負荷を低減できる。
【００１３】
前記第３側面に従う第９側面の人力駆動車用制御装置において、前記制御部は、第１目標値を前記目標値として前記第１演算処理で用い、第２目標値を前記目標値として前記第２演算処理に用い、前記第１目標値を設定する頻度は、前記第２目標値を設定する頻度よりも少ない。
上記第９側面の人力駆動車用制御装置によれば、第１演算処理を行う頻度を第２演算処理を行う頻度以上にできるため、モータをより好適に制御できる。
【００１４】
前記第８または第９側面に従う第１０側面の人力駆動車用制御装置において、前記第１演算処理を行う頻度は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値未満の間に１回である。
上記第１０側面の人力駆動車用制御装置によれば、第１演算処置の頻度を人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値未満の間に１回にできる。
【００１５】
前記第１〜第１０側面のいずれか１つに従う第１１側面の人力駆動車用制御装置において、前記制御部は、前記クランクが一周するまでに前記人力駆動力を取得し、前記第１演算処理を行う。
上記第１１側面の人力駆動車用制御装置によれば、クランクが一周するまでに第１演算処理を開始できる。このため、クランクが一周するまでに第１演算処理を行うことでモータを好適に制御することができる。
【００１６】
前記第１〜第１１側面のいずれか１つに従う第１２側面の人力駆動車用制御装置において、前記制御部は、前記人力駆動車が停止状態から走行状態に遷移すると、前記クランクに入力される前記人力駆動力に応じて所定の頻度で前記第２演算処理を行う。
上記第１２側面の人力駆動車用制御装置によれば、人力駆動力に応じて所定の頻度で第２演算処理を行える。
【００１７】
前記第１〜第１２側面のいずれか１つに従う第１３側面の人力駆動車用制御装置において、前記制御部は、前記人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値未満の間、前記第２演算処理の前記第２演算値にフィルタ制御を行う。
上記第１３側面の人力駆動車用制御装置によれば、人力駆動車が停止状態から走行状態に遷移した後の走行距離、走行速度、および、クランクの回転量の少なくとも１つが所定値未満の間、第２演算処理の第２演算値にフィルタ制御を行える。
【００１８】
本発明の第１４側面に従う人力駆動車用制御装置は、人力駆動車に設けられるクランクに入力される人力駆動力に応じて人力駆動車の推進をアシストするモータを制御する制御部を含み、前記制御部は、前記モータを制御するための第１演算値を算出するための第１演算処理と、前記第１演算処理とは異なり、かつ、前記モータを制御するための第２演算値を算出するための第２演算処理と、を行い、前記人力駆動車の走行状態に応じて前記第１演算処理と前記第２演算処理との少なくとも一方を変更し、前記第１演算値と、前記第２演算値と、の合算値に応じて前記モータを制御する。
【発明の効果】
【００１９】
本開示の人力駆動車両用制御装置は、モータを好適に制御できる。
【図面の簡単な説明】
【００２０】
【図１】実施形態の人力駆動車用制御装置を含む人力駆動車の側面図。
【図２】実施形態の人力駆動車用制御装置の電気的な構成を示すブロック図。
【図３】図２の制御部によって実行されるモータを制御する処理のフローチャート。
【図４】図２の制御部によって実行される第１演算処理のフローチャート。
【図５】図２の制御部によって実行される第１演算値を変更するフローチャート。
【図６】図２の制御部によって実行される第２演算処理のフローチャート。
【図７】図２の制御部によって実行される第１演算値および第２演算値の変化の一例を示すタイミングチャート。
【発明を実施するための形態】
【００２１】
図１〜図７を参照して、実施形態の人力駆動車用制御装置５０について説明する。以後、人力駆動車用制御装置５０を、単に制御装置５０と記載する。制御装置５０は、人力駆動車１０に設けられる。人力駆動車１０は、少なくとも人力駆動力Ｈによって駆動することができる車両である。人力駆動車１０は、車輪の数が限定されず、例えば１輪車および３輪以上の車輪を有する車両も含む。人力駆動車１０は、例えばマウンテンバイク、ロードバイク、シティバイク、カーゴバイク、および、リカンベントなど種々の種類の自転車を含む。自転車は、電気モータによって駆動力が与えられる電動自転車（Ｅ−ｂｉｋｅ）を含む。電動自転車は、電動モータによって車両の推進を補助する電動アシスト自転車を含む。電動自転車は、電気モータによって推進が補助される電動アシスト自転車を含む。以下、実施の形態において、人力駆動車１０を、２つの車輪を有する自転車として説明する。
【００２２】
人力駆動車１０は、クランク１４、ホイール１２、および、車体１６を含む。車体１６は、フレーム１８およびサドル２０を含む。クランク１４には、人力駆動力Ｈが入力される。クランク１４は、フレーム１８に対して回転可能なクランク軸１４Ａと、クランク軸１４Ａの軸方向の端部にそれぞれ設けられるクランクアーム１４Ｂとを含む。各クランクアーム１４Ｂには、一対のペダル２２が個別に連結される。ホイール１２は、従動輪１２Ａおよび駆動輪１２Ｂを含む。駆動輪１２Ｂは、クランク１４が回転することによって駆動される。駆動輪１２Ｂは、フレーム１８に支持される。クランク１４と駆動輪１２Ｂとは、駆動機構２４によって連結される。駆動機構２４は、クランク軸１４Ａに結合される第１回転体２６を含む。クランク軸１４Ａと第１回転体２６とは、一体に回転するように結合されていてもよく、第１ワンウェイクラッチを介して結合されていてもよい。第１ワンウェイクラッチは、クランク１４が前転した場合に、第１回転体２６を前転させ、クランク１４が後転した場合に、第１回転体２６を後転させないように構成される。第１回転体２６は、スプロケット、プーリ、または、ベベルギアを含む。駆動機構２４は、第２回転体２８と、連結部材３０とをさらに含む。連結部材３０は、第１回転体２６の回転力を第２回転体２８に伝達する。連結部材３０は、例えば、チェーン、ベルト、または、シャフトを含む。
【００２３】
第２回転体２８は、駆動輪１２Ｂに連結される。第２回転体２８は、スプロケット、プーリ、または、ベベルギアを含む。第２回転体２８と駆動輪１２Ｂとの間には、第２ワンウェイクラッチが設けられていることが好ましい。第２ワンウェイクラッチは、第２回転体２８が前転した場合に、駆動輪１２Ｂを前転させ、第２回転体２８が後転した場合に、駆動輪１２Ｂを後転させないように構成される。人力駆動車１０は、クランク軸１４Ａの回転速度に対する駆動輪１２Ｂの回転速度の変速比率Ｂを変更するために用いられる変速機４６を含んでいてもよい。変速機４６は、例えばフロントディレイラ、リアディレイラおよび内装変速機の少なくとも１つを含む。変速機４６は、フロントディレイラのみ、リアディレイラのみ、内装変速機のみ、または、フロントディレイラ、リアディレイラおよび内装変速機のうちの任意の組合せを含んでいてもよい。本実施形態では、第１回転体２６および第２回転体２８の少なくとも一方は、複数のスプロケットを含む。第１回転体２６のみ、第２回転体２８のみ、または、第１回転体２６および第２回転体２８の両方が、複数のスプロケットを含んでいてもよい。本実施形態では、第１回転体２６は、１枚のスプロケットを含み、第２回転体２８は、複数のスプロケットを含む。ディレイラは、第１回転体２６が複数のフロントスプロケットを含む場合、フロントディレイラを含み、第２回転体２８が複数のフロントスプロケットを含む場合、リアディレイラを含む。変速機４６が内装変速機を含む場合、内装変速機は、例えば、駆動輪１２Ｂのハブに設けられる。
【００２４】
人力駆動車１０は、前輪および後輪を含む。フレーム１８には、フロントフォーク３２を介して前輪が取り付けられている。フロントフォーク３２にはハンドル部３４が取り付けられている。ハンドル部３４は、ステム３６およびハンドルバー３８を含む。フロントフォーク３２には、ハンドルバー３８がステム３６を介して連結されている。以下の実施形態では、後輪を駆動輪１２Ｂとして説明するが、前輪が駆動輪１２Ｂであってもよい。
【００２５】
人力駆動車１０は、バッテリ４０をさらに含む。バッテリ４０は、１または複数のバッテリセルを含む。バッテリセルは、充電池を含む。バッテリ４０は、人力駆動車１０に設けられ、バッテリ４０と電気的に接続されている他の電気部品、例えば、人力駆動車用制御装置５０に電力を供給する。バッテリ４０は、人力駆動車用制御装置５０と有線または無線によって通信可能に接続されている。バッテリ４０は、例えば電力線通信（ＰＬＣ；power line communication）によって人力駆動車用制御装置５０と通信可能である。バッテリ４０は、フレーム１８の外部に取り付けられてもよく、少なくとも一部がフレーム１８の内部に収容されてもよい。
【００２６】
人力駆動車１０は、人力駆動車１０の推進をアシストするように構成されるモータ４２を含む。人力駆動車１０は、駆動回路４４をさらに含む。駆動回路４４は、インバータ回路を含む。モータ４２は、駆動回路と同一のハウジングに設けられることが好ましい。駆動回路４４は、バッテリ４０からモータ４２に供給される電力を制御する。駆動回路４４は、人力駆動車用制御装置５０と有線または無線によって通信可能に接続されている。駆動回路４４は、例えばシリアル通信によって人力駆動車用制御装置５０の制御部５２と通信可能である。駆動回路４４は、人力駆動車用制御装置５０に含まれていてもよい。駆動回路４４は、制御部５２からの制御信号に応じてモータ４２を駆動させる。
【００２７】
モータ４２は、電気モータを含む。モータ４２は、ペダル２２から後輪までの人力駆動力Ｈの動力伝達経路、または、前輪に回転を伝達するように設けられる。モータ４２は、人力駆動車１０のフレーム１８、後輪、または、前輪に設けられる。本実施形態では、モータ４２は、クランク軸１４Ａから第１回転体２６までの動力伝達経路に結合される。モータ４２とクランク軸１４Ａとの間の動力伝達経路には、クランク軸１４Ａを人力駆動車１０が前進する方向に回転させた場合にクランク１４の回転力によってモータ４２が回転しないようにワンウェイクラッチが設けられるのが好ましい。モータ４２および駆動回路４４が設けられるハウジングには、モータ４２および駆動回路４４以外の構成が設けられてもよく、例えばモータ４２の回転を減速して出力する減速機が設けられてもよい。
【００２８】
人力駆動車用制御装置５０は、制御部５２を含む。制御部５２は、予め定められる制御プログラムを実行する演算処理装置を含む。演算処理装置は、例えばＣＰＵ（Central Processing Unit）またはＭＰＵ（Micro Processing Unit）を含む。制御部５２は、１または複数のマイクロコンピュータを含んでいてもよい。制御部５２は、複数の場所に離れて配置される複数の演算処理装置を含んでいてもよい。人力駆動車用制御装置５０は、記憶部５４をさらに含む。記憶部５４には、各種の制御プログラムおよび各種の制御処理に用いられる情報が記憶される。記憶部５４は、例えば不揮発性メモリおよび揮発性メモリを含む。制御部５２および記憶部５４は、例えばモータ４２が設けられるハウジングに設けられる。
【００２９】
人力駆動車用制御装置５０は、好ましくは、クランク回転センサ５６、車速センサ５８、および、トルクセンサ６０をさらに含む。クランク回転センサ５６、車速センサ５８、および、トルクセンサ６０は、モータ４２が設けられるハウジングの内部に設けられてもよく、外部に設けられてもよい。クランク回転センサ５６、車速センサ５８、および、トルクセンサ６０の少なくとも１つは、人力駆動車用制御装置５０に含まれなくてもよい。
【００３０】
クランク回転センサ５６は、人力駆動車１０のクランク１４の回転速度Ｎを検出するために用いられる。クランク回転センサ５６は、例えば人力駆動車１０のフレーム１８またはモータ４２が設けられるハウジングに取り付けられる。クランク回転センサ５６は、磁界の強度に応じた信号を出力する磁気センサを含んで構成される。周方向に磁界の強度が変化する環状の磁石が、クランク軸１４Ａまたはクランク軸１４Ａから第１回転体２６までの間の動力伝達経路に設けられる。クランク回転センサ５６は、制御部５２と有線または無線によって通信可能に接続されている。クランク回転センサ５６は、クランク１４の回転速度Ｎに応じた信号を制御部５２に出力する。クランク回転センサ５６は、クランク軸１４Ａから第１回転体２６までの人力駆動力Ｈの動力伝達経路において、クランク軸１４Ａと一体に回転する部材に設けられてもよい。例えば、クランク回転センサ５６は、クランク軸１４Ａと第１回転体２６との間に第１ワンウェイクラッチが設けられない場合、第１回転体２６に設けられてもよい。クランク回転センサ５６は、人力駆動車１０の走行速度Ｖを検出するために用いられてもよい。この場合、制御部５２は、クランク回転センサ５６によって検出されるクランク１４の回転速度Ｎと、変速比率Ｂとに応じて、駆動輪１２Ｂの回転速度を演算して、人力駆動車１０の走行速度Ｖを検出する。変速比率Ｂに関する情報は、記憶部５４に予め記憶されている。
【００３１】
人力駆動車１０に変速比率Ｂを変更するための変速機が設けられる場合、制御部５２は、人力駆動車１０の走行速度Ｖと、クランク１４の回転速度Ｎとに応じて、変速比率Ｂを演算してもよい。この場合、駆動輪１２Ｂの周長、駆動輪１２Ｂの直径、または、駆動輪１２Ｂの半径に関する情報が記憶部５４に予め記憶されている。人力駆動車用制御装置５０は、変速センサを含んでいてもよい。変速センサは、例えば、変速機４６に設けられる。変速センサは、変速機４６の現在の変速ステージを検出する。変速センサは、制御部５２に電気的に接続されている。変速ステージと変速比率Ｂとの関係は、記憶部５４に予め記憶されている。制御部５２は、変速センサの検出結果から、現在の変速比率Ｂを検出することができる。制御部５２は、駆動輪１２Ｂの回転速度を変速比率Ｂで除算することによって、クランク１４の回転速度Ｎを演算できる。この場合、車速センサ５８および変速センサをクランク回転センサ５６として用いてもよい。変速センサは、変速機４６ではなく、変速操作部に設けられてもよく、変速ワイヤに設けられてもよい。
【００３２】
車速センサ５８は、ホイール１２の回転速度を検出するために用いられる。車速センサ５８は、有線または無線によって制御部５２と電気的に接続されている。車速センサ５８は、制御部５２と有線または無線によって通信可能に接続されている。車速センサ５８は、ホイール１２の回転速度に応じた信号を制御部５２に出力する。制御部５２は、ホイール１２の回転速度に基づいて人力駆動車１０の走行速度Ｖを演算する。制御部５２は、走行速度Ｖが所定値以上になると、モータ４２を停止する。所定値は、例えば時速２５Ｋｍ、または、時速４５Ｋｍである。車速センサは、例えば、リードスイッチを構成する磁性体リード、または、ホール素子を含む。車速センサ５８は、フレーム１８のチェーンステイに取り付けられ、後輪に取り付けられる磁石を検出する構成としてもよく、フロントフォーク３２に設けられ、前輪に取り付けられる磁石を検出する構成としてもよい。別の例では、車速センサ５８は、ＧＰＳ受信部を含む。制御部５２は、ＧＰＳ受信部によって取得したＧＰＳ情報と、記憶部５４に予め記録されている地図情報と、時間とに応じて、人力駆動車１０の走行速度Ｖを検出してもよい。制御部５２は、時間を計るためのタイマを含むことが好ましい。
【００３３】
トルクセンサ６０は、人力駆動力ＨのトルクＴＨを検出するために用いられる。トルクセンサ６０は、例えば、モータ４２が設けられるハウジングに設けられる。トルクセンサ６０は、クランク１４に入力される人力駆動力ＨのトルクＴＨを検出する。トルクセンサ６０は、例えば、動力伝達経路に第１ワンウェイクラッチが設けられる場合、第１ワンウェイクラッチよりも上流側に設けられる。トルクセンサ６０は、歪センサまたは磁歪センサなどを含む。歪センサは、歪ゲージを含む。トルクセンサ６０が歪センサを含む場合、歪センサは、好ましくは、動力伝達経路に含まれる回転体の外周部に設けられる。トルクセンサ６０は、無線または有線の通信部を含んでいてもよい。トルクセンサ６０の通信部は、制御部５２と通信可能に構成される。
【００３４】
制御部５２は、例えば、人力駆動力Ｈに対するモータ４２の駆動力が所定の比率Ａになるように、モータ４２を制御する。制御部５２は、例えば、人力駆動車１０の人力駆動力ＨのトルクＴＨに対する、モータ４２によるモータ４２の駆動力の出力トルクＴＭが所定の比率Ａになるように、モータ４２を制御してもよい。制御部５２は、例えば、人力駆動力Ｈに対するモータ４２の出力の比率Ａの異なる複数の制御モードから選択される１つの制御モードでモータ４２を制御する。人力駆動車１０の人力駆動力ＨのトルクＴＨに対するモータ４２の出力トルクＴＭのトルク比率ＡＴを、比率Ａと記載する場合がある。制御部５２は、例えば、人力駆動力Ｈの仕事率ＷＨ（ワット）に対する、モータ４２の仕事率ＷＸ（ワット）が所定の比率Ａになるように、モータ４２を制御してもよい。人力駆動車１０の人力駆動力Ｈの仕事率ＷＨに対するモータ４２の出力の仕事率ＷＸの比率ＡＷを、比率Ａと記載する場合がある。人力駆動力Ｈの仕事率ＷＨは、人力駆動力Ｈとクランク１４の回転速度Ｎとの乗算によって算出される。モータ４２の出力が減速機を介して人力駆動力Ｈの動力経路に入力される場合は、減速機の出力を、モータ４２の出力とする。制御部５２は、人力駆動力Ｈの仕事率ＷＨまたはトルクＴＨに応じて、制御指令をモータ４２の駆動回路４４に出力する。制御指令は、例えばトルク指令値を含む。具体的には、制御部５２は、人力駆動力Ｈに対するモータ４２の駆動力の比率Ａが所定の比率Ａになるように目標値Ｘを設定し、設定した目標値Ｘを出力するようにモータ４２を制御する制御指令を駆動回路４４に出力する。
【００３５】
制御部５２は、モータ４２の出力の上限値が所定値以下になるようにモータ４２を制御する。制御部５２は、例えば、上限値の異なる複数の制御モードから選択される１つの制御モードでモータ４２を制御する。モータ４２の出力は、モータ４２の出力トルクＴＭを含む。モータ４２の出力は、モータ４２の仕事率ＷＸを含んでいてもよい。この場合、制御部５２は、モータ４２の仕事率ＷＸが所定値ＷＸ１以下になるようにモータ４２を制御する。所定値ＷＸ１は、一例では、５００ワットである。所定値ＷＸ１は、別の例では、３００ワットである。制御部５２は、トルク比率ＡＴが所定トルク比率ＡＴ１以下になるようにモータ４２を制御してもよい。所定トルク比率ＡＴ１は、一例では、３００％である。
【００３６】
複数の制御モードのそれぞれにおいて、比率Ａおよびモータ４２の出力の上限値の少なくとも一方が異なっていてもよい。複数の制御モードのそれぞれにおいて、比率Ａのみ、上限値のみ、または、比率Ａおよび上限値の両方が異なっていてもよい。この場合、制御部５２は、モータ４２の出力が選択されているモータ４２の制御モードにおいて規定される比率Ａ以下、かつ、所定値以下になるようにモータ４２を制御する。
【００３７】
制御装置５０は、人力駆動車１０に設けられるクランク１４に入力される人力駆動力Ｈに応じて人力駆動車１０の推進をアシストするモータ４２を制御する制御部５２を含む。制御部５２は、クランク１４に入力される人力駆動力Ｈに応じて、第１演算処理と、第１演算処理とは異なる第２演算処理と、を行う。制御部５２は、第１演算処理で算出した第１演算値Ｍ１と、第２演算処理で算出した第２演算値Ｍ２と、の合算値ＭＸに応じてモータ４２を制御する。第１演算値Ｍ１、第２演算値Ｍ２、および、合算値ＭＸは、モータ４２の駆動力の指令値であることが好ましい。制御部５２は、モータ４２の駆動力が合算値ＭＸになるようにモータ４２を制御する。
【００３８】
制御部５２は、第１演算処理部５２Ａと、第２演算処理部５２Ｂと、合算部５２Ｃとを含むことが好ましい。合算部５２Ｃは、加算回路を含むことが好ましい。合算部５２Ｃは、第１演算処理部５２Ａから出力される第１演算値Ｍ１と、第２演算処理部５２Ｂから出力される第２演算値Ｍ２とを合算する。
【００３９】
制御部５２は、人力駆動力Ｈに対するモータ４２の駆動力の比率Ａが所定の比率Ａになるように目標値Ｘを設定し、目標値Ｘを用いて第１演算処理および第２演算処理を行う。例えば、制御部５２は、選択されている制御モードと対応する比率Ａになるように、モータ４２の目標値Ｘを設定する。制御部５２は、設定した目標値Ｘを用いて第１演算処理を行って第１演算値Ｍ１を算出し、設定した目標値Ｘを用いて第２演算処理を行って第２演算値Ｍ２を算出する。第１演算処理に用いる目標値Ｘを第１目標値と記載し、第２演算処理に用いる目標値Ｘを第２目標値と記載することがある。目標値Ｘは、第１演算処理と第２演算処理とのそれぞれに異なる値が設定されてもよい。例えば、制御部５２は、目標値Ｘを所定周期ごとに算出し、第１演算処理および第２演算処理において、最新の目標値Ｘおよび過去に算出された目標値Ｘのうちの所定の目標値Ｘを用いる。例えば、制御部５２は、第２演算処理においては、その制御周期において最新の目標値Ｘを用い、第１演算処理においては、過去に算出された目標値Ｘのうちの所定の目標値Ｘを用いる。制御部５２は、第１演算処理および第２演算処理の少なくとも一方において、目標値Ｘに所定の処理を加えることもできる。例えば、制御部５２は、第１演算処理において、目標値Ｘに０よりも大きく１よりも小さい第１値Ｘ１を乗算する。制御部５２は、第１演算値Ｍ１、第２演算値Ｍ２、および、合算値ＭＸの少なくとも１つが予め定める上限値以下になるようにしてもよい。この場合、制御部５２は、例えば、ローパスフィルタを用いて、第１演算値Ｍ１、第２演算値Ｍ２、または、合算値ＭＸを処理することが好ましい。
【００４０】
第１演算処理と第２演算処理との少なくとも一方は開ループ演算処理であることが好ましい。本実施形態では、第１演算処理が開ループ制御であり、第２演算処理が閉ループ制御である。第２演算処理は、フィードバック制御を含む。フィードバック制御は、比例制御、ＰＩ制御、または、ＰＩＤ制御の少なくとも１つを含む。第２演算処理においては、最新の人力駆動力Ｈと、直前の検出周期において検出された人力駆動力Ｈとの変化に応じて第２演算値Ｍ２を変化させる。制御部５２は、クランク１４に人力駆動力Ｈが入力されると、第１演算処理と第２演算処理とを開始することが好ましい。第１演算処理の開始タイミングと、第２演算処理の開始タイミングとは、等しくてもよく、異なっていてもよい。
【００４１】
制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値未満の間に、人力駆動車１０のクランク１４に入力される人力駆動力Ｈに応じてモータ４２を制御する。第１演算処理を行う頻度は、第２演算処理を行う頻度よりも少ない。制御部５２は、第１目標値を目標値Ｘとして第１演算処理で用い、第２目標値を目標値Ｘとして第２演算処理に用い、第１目標値を設定する頻度は、第２目標値を設定する頻度よりも少なくしてもよい。この場合、制御部５２は、第１目標値を設定した後に、第１目標値を維持することによって第１演算値Ｍ１を変化させない。例えば、人力駆動車１０が停止状態から走行状態に遷移した後の初回の第１演算処理において用いられた目標値Ｘを第１目標値として次回以降の第１演算処理においても用いる。制御部５２は、第１演算処理では、例えば、人力駆動力Ｈと目標値Ｘとを乗算することによって、第１演算値Ｍ１を算出する。制御部５２の第１演算処理部５２Ａは、乗算回路を含むことが好ましい。
【００４２】
第１演算処理を行う頻度は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値未満の間に１回であることが好ましい。本実施形態では、制御部５２は、クランク１４が一周するまでに人力駆動力Ｈを取得し、第１演算処理を行う。すなわち、制御部５２は、第１演算処理において、クランク１４の回転量ＣＡが３６０度になるまでに目標値Ｘを設定し、第１演算処理を行うことが好ましい。より好ましくは、制御部５２は、クランク１４の回転量ＣＡが１８０度以内に人力駆動力Ｈを取得し、第１演算処理を行う。より好ましくは、制御部５２は、クランク１４の回転量ＣＡが９０度以内に人力駆動力Ｈを取得し、第１演算処理を行う。制御部５２は、クランク１４の回転量ＣＡが４５度以内に人力駆動力Ｈを取得し、第１演算処理を行ってもよく、クランク１４の回転量ＣＡが３０度以内に人力駆動力Ｈを取得し、第１演算処理を行ってもよい。
【００４３】
制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値以上になると、第１演算処理の第１演算値Ｍ１を下げることが好ましい。制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値以上になると、第１演算値Ｍ１を徐減させることが好ましい。制御部５２は、第１演算処理に用いる目標値Ｘを小さくすることによって第１演算値Ｍ１を下げてもよく、第１演算処理において第１演算値を小さくする処理を行うことによって第１演算値Ｍ１を下げてもよい。制御部５２は、目標値Ｘを徐減させることによって第１演算値Ｍ１が徐減させてもよく、目標値Ｘをゼロにし、第１演算処理用の目標値Ｘの変化に対する第１演算値Ｍ１の応答速度を低下させるフィルタ制御を行うことで第１演算値Ｍ１を徐減させてもよい。
【００４４】
制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌが所定値以上になると第１演算値Ｍ１を徐減させる場合、第１演算値Ｍ１に走行距離Ｌの増加または時間経過に応じて大きくなる係数を乗算する。係数の最大値は、０であることが好ましい。走行距離Ｌに関する所定値は、例えば、１０メートル以下であり、好ましくは３メートル以上かつ１０メートル以下である。
【００４５】
制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行速度Ｖが所定値以上になると第１演算値Ｍ１を徐減させる場合、第１演算値Ｍ１に走行速度Ｖの増加または時間経過に応じて大きくなる係数を乗算する。係数の最大値は、１であることが好ましい。走行速度Ｖに関する所定値は、例えば、時速１０ｋｍ以下であり、好ましくは時速５ｋｍ以上かつ時速１０ｋｍ以下である。
【００４６】
制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後のクランク１４の回転量ＣＡが所定値以上になると第１演算値Ｍ１を徐減させる場合、第１演算値Ｍ１にクランク１４の回転量ＣＡの増加または時間経過に応じて大きくなる係数を乗算する。係数の最大値は、１であることが好ましい。クランク１４の回転量ＣＡに関する所定値は、例えば、３６０度以上かつ７２０度以下である。一例では、クランク１４の回転量ＣＡに関する所定値は、３６０度である。
【００４７】
制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値未満の間に、人力駆動車１０のクランク１４の回転が停止すると、第１演算値Ｍ１を下げることが好ましい。制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値未満の間に、人力駆動車１０のクランク１４の回転が停止すると、第１演算値Ｍ１を０にすることが好ましい。制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値未満の間に、人力駆動車１０のクランク１４の回転が停止すると、第１演算値Ｍ１を徐減させてもよい。制御部５２は、第１演算処理に用いる目標値Ｘを小さくすることによって第１演算値Ｍ１を下げてもよく、第１演算処理において第１演算値を小さくする処理を行うことによって第１演算値Ｍ１を下げてもよい。制御部５２は、目標値Ｘを徐減させることによって第１演算値Ｍ１が徐減させてもよく、目標値Ｘをゼロにし、第１演算処理用の目標値Ｘの変化に対する第１演算値Ｍ１の応答速度を低下させるフィルタ制御を行うことで第１演算値Ｍ１を徐減させてもよい。
【００４８】
制御部５２は、人力駆動車１０が停止状態から走行状態に遷移すると、クランク１４に入力される人力駆動力Ｈに応じて所定の頻度で第２演算処理を行う。所定の頻度は、人力駆動力Ｈの検出頻度以下であることが好ましい。所定の頻度は、例えば、毎所定秒であることが好ましい。所定秒は、例えば０．１秒以下である。所定秒は、０．０５秒以下であることが好ましい。所定秒は、０．０１秒以下であることがさらに好ましい。制御部５２の第２演算処理部５２Ｂは、乗算回路を含むことが好ましい。制御部５２は、例えば、第２演算処理において人力駆動力Ｈと目標値Ｘとの乗算値に人力駆動力Ｈの変化に応じた補正値を加算または乗算することによって、第２演算値Ｍ２を算出してもよい。制御部５２は、人力駆動力Ｈの変化に応じて目標値Ｘを変更してもよい。
【００４９】
制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値未満の間、第２演算処理の第２演算値Ｍ２にフィルタ制御を行うことが好ましい。制御部５２は、フィルタ制御を行うためのフィルタ部を含むことが好ましい。制御部５２は、フィルタ制御を行うことによって、モータ４２の駆動力をゆるやかに上昇させることが好ましい。一例では、制御部５２は、第２演算処理において算出した第２演算値Ｍ２にフィルタ制御を行うことによって、最終の第２演算値Ｍ２を算出する。制御部５２は、最終の第２演算値Ｍ２を用いて、モータ４２を制御する。別例では、制御部５２は、人力駆動力Ｈにフィルタ制御を行い、フィルタ制御を行った値と目標値Ｘとを乗算することによって第２演算値Ｍ２を算出する。フィルタ制御に代えて、例えば、クランク１４の回転量ＣＡが大きくなるにつれて１００％に近付くゲインを第２演算値Ｍ２に乗算し、最終の第２演算値Ｍ２としてもよい。制御部５２は、クランク１４の回転量ＣＡに代えて、走行距離Ｌ、走行時間、または、走行速度Ｖの少なくとも１つが大きくなるにつれて１００％に近付くゲインを第２演算値Ｍ２に乗算し、最終の第２演算値Ｍ２としてもよい。
【００５０】
図３を参照して、モータ４２を制御する処理について説明する。制御部５２は、制御部５２に電力が供給されると、処理を開始して図３に示すフローチャートのステップＳ１１に移行する。制御部５２は、図３のフローチャートが終了すると、電力の供給が停止されるまでは、所定周期後にステップＳ１１からの処理を繰り返す。
【００５１】
制御部５２は、ステップＳ１１において、モータ４２を駆動させるか否かを判定する。制御部５２は、例えば、モータ４２によって人力駆動力Ｈのアシストを行う制御モードが選択されている場合、モータ４２を駆動すると判定する。制御部５２は、人力駆動力Ｈが所定駆動力ＨＸ以上の場合、クランク１４の回転速度Ｎが所定速度ＮＸ以上の場合、および、走行速度Ｖが所定速度ＶＸ以下の場合に、モータ４２を駆動させると判定してもよい。制御部５２は、モータ４２を駆動させない場合、処理を終了する。制御部５２は、モータ４２を駆動させる場合、ステップＳ１２に移行する。
【００５２】
制御部５２は、ステップＳ１２において、第１演算値Ｍ１を取得し、ステップＳ１３に移行する。制御部５２は、例えば、第１演算処理部５２Ａから出力される第１演算値Ｍ１を読み込むことによって第１演算値Ｍ１を取得する。
【００５３】
制御部５２は、ステップＳ１３において、第２演算値Ｍ２を取得し、ステップＳ１４に移行する。制御部５２は、例えば、第２演算処理部５２Ｂから出力される第２演算値Ｍ２を読み込むことによって第２演算値Ｍ２を取得する。ステップＳ１２とステップＳ１３との順序は入れ替えてもよい。
【００５４】
制御部５２は、ステップＳ１４において、第１演算値Ｍ１と第２演算値Ｍ２との合算値ＭＸを算出し、ステップＳ１５に移行する。制御部５２は、ステップＳ１５において、合算値ＭＸに応じてモータ４２を制御し、処理を終了する。
【００５５】
図４を参照して、第１演算処理について説明する。制御部５２は、制御部５２に電力が供給されると、処理を開始して図４に示すフローチャートのステップＳ２１に移行する。制御部５２は、図４のフローチャートが終了すると、電力の供給が停止されるまでは、所定周期後にステップＳ２１からの処理を繰り返す。
【００５６】
制御部５２は、ステップＳ２１において、人力駆動車１０が停止状態から走行状態に遷移したか否かを判定する。制御部５２は、例えば、クランク１４の回転が停止した状態から、回転を開始した状態に変化した場合、人力駆動車１０が停止状態から走行状態に遷移したと判定する。制御部５２は、人力駆動車１０が停止状態から走行状態に遷移していないと判定した場合、処理を終了する。制御部５２は、人力駆動車１０の停止状態が維持されている場合、および、人力駆動車１０の走行状態が維持されている場合、処理を終了する。制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した場合、ステップＳ２２に移行する。
【００５７】
制御部５２は、ステップＳ２２において、クランク１４に人力駆動力Ｈが入力されているか否かを判定する。制御部５２は、クランク１４に人力駆動力Ｈが入力されていない場合、処理を終了する。制御部５２は、クランク１４に人力駆動力Ｈが入力されている場合、ステップＳ２３に移行する。
【００５８】
制御部５２は、ステップＳ２３において、目標値Ｘに応じて第１演算値Ｍ１を算出し、処理を終了する。制御部５２は、ステップＳ２３において第１演算処理を行う。
【００５９】
図５を参照して、第１演算値Ｍ１を下げる処理について説明する。制御部５２は、制御部５２に電力が供給されると、処理を開始して図５に示すフローチャートのステップＳ３１に移行する。制御部５２は、図５のフローチャートが終了すると、電力の供給が停止されるまでは、所定周期後にステップＳ３１からの処理を繰り返す。
【００６０】
制御部５２は、ステップＳ３１において、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値以上になったか否かを判定する。制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値以上になった場合、ステップＳ３２に移行する。
【００６１】
制御部５２は、ステップＳ３２において、第１演算値Ｍ１を下げ、処理を終了する。制御部５２は、ステップＳ３２において、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量が措定値以上になってからの、走行距離Ｌ、走行速度Ｖ、クランク１４の回転量、および、時間の少なくとも１つに応じて第１演算値Ｍ１を下げてもよい。制御部５２は、ステップＳ３２を実行するごとに、第１演算値Ｍ１を段階的に下げるようにしてもよい。制御部５２は、第１演算値Ｍ１を算出するための第１演算処理用の目標値Ｘを下げることによって第１演算値Ｍ１を下げてもよく、第１演算処理によって算出された第１演算値Ｍ１に所定の処理を行うことによって第１演算値Ｍ１を下げてもよい。
【００６２】
制御部５２は、ステップＳ３１において、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値以上になっていない場合、ステップＳ３３に移行する。制御部５２は、ステップＳ３３において、クランク１４が停止したか否かを判定する。制御部５２は、クランク１４が停止していない場合、処理を終了する。制御部５２は、クランク１４が停止している場合、ステップＳ３４に移行する。制御部５２は、ステップＳ３４において、第１演算値Ｍ１を下げ、処理を終了する。制御部５２は、ステップＳ３４において、第１演算値Ｍ１を徐々に０に下げることが好ましい。制御部５２は、第１演算値Ｍ１を算出するための第１演算処理用の目標値Ｘを下げることによって第１演算値Ｍ１を下げてもよく、第１演算処理によって算出された第１演算値Ｍ１に所定の処理を行うことによって第１演算値Ｍ１を下げてもよい。目標値Ｘが人力駆動力Ｈが０になる場合に０に設定される場合は、クランク１４が停止すると人力駆動力Ｈが０になるため、ステップＳ３４において、第１演算値Ｍ１が徐々に０になるように第１演算値Ｍ１を下げることが好ましい。
【００６３】
制御部５２は、図４のステップＳ２３において用いた目標値Ｘを第１演算処理用の目標値Ｘ（第１目標値）として第１演算処理部５２Ａに記憶領域を設けて記憶するか、記憶部５４に記憶してもよい。制御部５２は、図４のステップＳ２３において用いた目標値Ｘを第１演算処理用の目標値Ｘとして記憶して、演算周期ごとに第１演算値Ｍ１を算出する場合、かつ、ステップＳ３２において目標値Ｘを下げることによって第１演算値Ｍ１を下げる場合、ステップＳ２３において記憶した目標値Ｘを下げることによって第１演算値Ｍ１を下げてもよい。目標値Ｘは、下げるごとに下げた目標値Ｘに更新してもよく、目標値Ｘを下げるための補正処理に用いるゲイン、または、フィルタ制御の応答速度を時間経過ごとに変化するようにしてもよい。この場合、制御部５２は、図３のステップＳ１２において、記憶した目標値Ｘを用いて算出した第１演算値Ｍ１を取得する。
【００６４】
制御部５２は、図４のステップＳ２３において算出した第１演算値Ｍ１を、第１演算処理部５２Ａに記憶領域を設けて記憶するか、記憶部５４に記憶してもよい。この場合、制御部５２は、ステップＳ３２またはステップＳ３４において下げた第１演算値Ｍ１を図４のステップＳ２３において記憶された第１演算値Ｍ１に上書きしてもよく、図４のステップＳ２３において記憶された第１演算値Ｍ１とは各別に記憶してもよい。この場合、制御部５２は、図３のステップＳ１２において、ステップＳ３２またはステップＳ３４において下げた第１演算値Ｍ１が記憶部５４に記憶されている場合は、下げた第１演算値Ｍ１を取得する。
【００６５】
図６を参照して、第２演算処理について説明する。制御部５２は、制御部５２に電力が供給されると、処理を開始して図６に示すフローチャートのステップＳ４１に移行する。制御部５２は、図６のフローチャートが終了すると、電力の供給が停止されるまでは、所定周期後にステップＳ４１からの処理を繰り返す。
【００６６】
制御部５２は、ステップＳ４１において、人力駆動車１０が停止状態から走行状態に遷移したか否かを判定する。制御部５２は、例えば、クランク１４の回転が停止した状態から、回転を開始した状態に変化した場合、人力駆動車１０が停止状態から走行状態に遷移したと判定する。制御部５２は、人力駆動車１０が停止状態から走行状態に遷移していないと判定した場合、処理を終了する。制御部５２は、人力駆動車１０の停止状態が維持されている場合、処理を終了する。制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した場合、ステップＳ４２に移行する。
【００６７】
制御部５２は、ステップＳ４２において、クランク１４に人力駆動力Ｈが入力されているか否かを判定する。制御部５２は、クランク１４に人力駆動力Ｈが入力されていない場合、処理を終了する。制御部５２は、クランク１４に人力駆動力Ｈが入力されている場合、ステップＳ４３に移行する。
【００６８】
制御部５２は、ステップＳ４３において、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値未満か否かを判定する。制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値未満の場合、ステップＳ４４に移行する。
【００６９】
制御部５２は、ステップＳ４４において、目標値Ｘに応じて第２演算値Ｍ２を算出し、かつ、フィルタ制御を行い、算出した第２演算値Ｍ２を記憶部５４に記憶し、ステップＳ４３に移行する。
【００７０】
制御部５２は、ステップＳ４３において、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値未満ではない場合、ステップＳ４５に移行する。
【００７１】
制御部５２は、ステップＳ４５において、目標値Ｘに応じて第２演算値Ｍ２を算出し、記憶部５４に記憶し、ステップＳ４６に移行する。制御部５２は、ステップＳ４６において、人力駆動車１０が停止状態か否かを判定する。制御部５２は、人力駆動車１０が停止状態ではない場合、ステップＳ４５に移行する。このため、制御部５２は、人力駆動車１０が停止状態の場合、第２演算値Ｍ２を算出する第２演算処理が繰り返される。制御部５２は、ステップＳ４６において、人力駆動車１０が停止状態と判定すると、処理を終了する。
【００７２】
図７を参照して、人力駆動車１０が停止状態から走行状態に遷移した場合のモータ４２の制御の実行態様について説明する。
時刻ｔ１０は、人力駆動車１０が停止状態から走行状態に遷移し、かつ、制御部５２が人力駆動力Ｈが入力されたことを判定した時刻を示す。制御部５２は、第１演算値Ｍ１と第２演算値Ｍ２とを算出する。
【００７３】
時刻ｔ１０以降において、第１演算値Ｍ１は、時刻ｔ１０において算出された値が維持される。第２演算値Ｍ２は、所定周期ごとに算出された値に更新される。第２演算値Ｍ２の算出のための第２演算処理には、フィルタ制御が用いられる。
【００７４】
時刻ｔ１１は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値以上になった時刻を示す。時刻ｔ１１以降において、第１演算値Ｍ１は、時間ｔが経過するごとに小さくなる。時刻ｔ１１以降において、第２演算値Ｍ２の算出のための第２演算処理には、フィルタ制御が用いられない。
【００７５】
人力駆動車１０が停止状態から走行状態に遷移した直後の期間においては、トルクセンサ６０によって検出される人力駆動力Ｈに外乱等の影響が大きい。
制御部５２は、フィルタ制御を含む第２演算処理によって第２演算値Ｍ２を算出し、第２演算値Ｍ２を用いてモータ４２を制御するため、外乱等の影響が低減されたモータ４２の制御を行うことができる。制御部５２は、さらに、第２演算値Ｍ２に加えて第１演算値Ｍ１を用いてモータ４２を制御するため、モータ４２の出力の低下を抑制できる。このため、第２演算値Ｍ２によって、モータ４２の駆動力を人力駆動力Ｈに応じてなめらかに変化させ、かつ、モータ４２の出力の低下を抑制できる。
【００７６】
（変形例）
実施形態に関する説明は、本発明に従う人力駆動車用制御装置が取り得る形態の例示であり、その形態を制限することを意図していない。本発明に従う人力駆動車用制御装置は、例えば以下に示される実施形態の変形例、および、相互に矛盾しない少なくとも２つの変形例が組み合わせられた形態を取り得る。以下の変形例において、実施形態の形態と共通する部分については、実施形態と同一の符号を付してその説明を省略する。
【００７７】
・第１演算処理を行う頻度を、第２演算処理を行う頻度以上にしてもよい。第１演算処理を行う条件と、第２演算処理を行う条件とを異ならせて、第１演算処理を行う頻度と、第２演算処理を行う頻度とが、毎回異なるようにしてもよい。
【００７８】
・第２演算処理をフィードフォワード制御にしてもよい。この場合、例えば、人力駆動力Ｈの変化に関するパラメータの変化を用いて第２演算値Ｍ２を算出する。人力駆動力Ｈの変化に関するパラメータは、例えば、人力駆動車１０の傾斜角度、走行路の路面状態、および、走行速度Ｖの少なくとも１つを含む。
【００７９】
・第２演算処理を開ループ演算処理にしてもよい。この場合、第２演算処理において、平滑化処理を含めてもよい。平滑化処理は、例えば、なまし処理を含む。この場合も、モータ４２の駆動力の人力駆動力Ｈに応じてなめらかに変化させることができる。
【００８０】
・第１演算処理を閉ループ演算処理にしてもよい。この場合も、第２演算値Ｍ２に第１演算値Ｍ１が合算された合算値ＭＸを用いてモータ４２が制御されるため、モータ４２の駆動力の低下を抑制できる。この場合、例えば、第１演算処理は、第２演算処理と同様に行われ、かつ、演算周期を異ならせることが好ましい。また、例えば、第１演算処理は、第２演算処理とは異なる閉ループ演算処理にしてもよい。第１演算処理は、フィードバック制御であってもよく、フィードフォワード制御であってもよい。
【００８１】
・制御部５２は、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値以上になった場合、第２演算処理を終了し、第３演算処理を開始するようにしてもよい。この場合、人力駆動車１０が停止状態から走行状態に遷移した後の走行距離Ｌ、走行速度Ｖ、および、クランク１４の回転量ＣＡの少なくとも１つが所定値以上になった後においては、制御部５２は、第３演算処理によって算出される第３演算値に応じてモータ４２を制御する。
【００８２】
・制御部５２は、モータ４２を制御するための第１演算値Ｍ１を算出するための第１演算処理と、第１演算処理とは異なり、かつ、モータ４２を制御するための第２演算値Ｍ２を算出するための第２演算処理と、を行い、人力駆動車１０の走行状態に応じて第１演算処理と第２演算処理との少なくとも一方を変更し、第１演算値Ｍ１と、第２演算値Ｍ２と、の合算値ＭＸに応じてモータ４２を制御するようにしてもよい。この場合、人力駆動車１０の走行状態は、例えば、人力駆動力Ｈを含む。
【符号の説明】
【００８３】
１０…人力駆動車、１４…クランク、４２…モータ、５０…人力駆動車用制御装置、５２…制御部。
【図１】
2020045057.tif 000003
【図２】
2020045057.tif 000004
【図３】
2020045057.tif 000005
【図４】
2020045057.tif 000006
【図５】
2020045057.tif 000007
【図６】
2020045057.tif 000008
【図７】
2020045057.tif 000009