以下に図面を参照しながら、本発明の好適な実施の形態について説明する。以下の実施の形態に示す具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項等については、適宜、省略及び簡略化がなされている。
<発明の実施の形態1>
図1を参照して、本実施の形態1にかかる倒立二輪車1の概要構成について説明する。図1は、本実施の形態1にかかる倒立二輪車1の概要構成を示す図である。
倒立二輪車1は、ハンドル4を把持してステップカバー3に搭乗した搭乗者が、倒立二輪車1の前後方向に荷重を作用させた際における、前後方向への倒立二輪車1の姿勢角(ピッチ角)をセンサを利用して検出し、この検出結果に基づいて、倒立二輪車1の倒立状態を維持するように左右の車輪2を駆動するモータを制御する。すなわち、倒立二輪車1は、ステップカバー3に搭乗した搭乗者が前方に荷重を作用させて倒立二輪車1を前方に傾斜させると、倒立二輪車1の倒立状態を維持するように前方に加速し、搭乗者が後方に荷重を作用させて倒立二輪車1を後方に傾斜させると、倒立二輪車1の倒立状態を維持するように後方に加速するように、左右の車輪2を駆動するモータを制御する。倒立二輪車1は、制御の安定性を確保するために、モータを制御する制御系が2重化されている。
また、倒立二輪車1は、搭乗者が倒立二輪車1のハンドル4を左右方向に操舵した際における、左右方向への倒立二輪車1のハンドル4のリーン角(操舵角、傾斜角)をセンサで検出し、この検出結果に基づいて、倒立二輪車1が旋回動作を行うように左右の車輪2を駆動するモータを制御する。すなわち、倒立二輪車1は、ステップカバー3に搭乗した搭乗者がハンドル4を左方に操舵すると、倒立二輪車1を左周りに旋回させ、搭乗者が右方に操舵すると、倒立二輪車1を右周りに旋回させるように、左右の車輪2を駆動するモータを制御する。
なお、これらのモータの制御は、倒立二輪車1に搭載された制御装置10によって行われる。
続いて、図2を参照して、本実施の形態1にかかる制御装置10の構成について説明する。図2は、本実施の形態1にかかる制御装置10の構成を示すブロック図である。
制御装置10は、マイクロコントローラ11、12(以下、「マイコン」とも呼ぶ)、インバータ13〜16、モータ17、18、回転角センサ19〜22、ジャイロセンサ23、24、及びリーン角センサ25、26を有する。
制御装置10は、倒立二輪車1の制御の安定性を確保するために、その制御系を、0系の制御系と1系の制御系とに二重化させた二重系システムとなっている。0系の制御系は、マイコン11、インバータ13、14、回転角センサ19、20、ジャイロセンサ23、及びリーン角センサ25を含む。1系の制御系は、マイコン12、インバータ15、16、回転角センサ21、22、ジャイロセンサ24、及びリーン角センサ26を含む。
マイコン11、12のそれぞれは、ジャイロセンサセンサ23、24のそれぞれから出力される角速度信号に基づいて、上述したように、倒立二輪車1の倒立状態を維持するようにモータ17、18を制御するECU(Electronic Control Unit)である。マイコン11、12のそれぞれは、CPU(Central Processing Unit)及び記憶部を有し、記憶部に格納されたプログラムを実行することによって、本実施の形態におけるマイコン11、12のそれぞれとしての処理を実行する。すなわち、マイコン11、12のそれぞれの記憶部に格納されるプログラムは、本実施の形態におけるマイコン11、12のそれぞれにおける処理を、CPUに実行させるためのコードを含む。なお、記憶部は、例えば、このプログラムや、CPUにおける処理に利用される各種情報を格納することができる任意の記憶装置を含んで構成される。記憶装置は、例えば、メモリ等である。
マイコン11は、モータ17を制御する指令値をインバータ13に出力する。また、マイコン11は、モータ18を制御する指令値をインバータ14に出力する。マイコン12は、モータ17を制御する指令値をインバータ15に出力する。また、マイコン12は、モータ18を制御する指令値をインバータ16に出力する。具体的には、マイコン11、12のそれぞれは、ジャイロセンサ23、24のそれぞれから出力される角速度信号が示す倒立二輪車1のピッチ軸周りの角速度(ピッチ角速度)を積分することで倒立二輪車1の前後方向の姿勢角(ピッチ角)を算出し、算出した姿勢角に基づいて倒立二輪車1の倒立状態を維持するようにモータ17、18を制御する指令値を生成する。
ここで、制御装置10は、ジャイロセンサ23、24に代えて、倒立二輪車1の前後方向の姿勢角(ピッチ角)を検出し、検出した姿勢角を示す姿勢角信号をマイコン11、12のそれぞれ出力する姿勢角センサを有するようにしてもよい。姿勢角センサは、例えば、加速度センサ及びジャイロセンサによって、倒立二輪車1の姿勢角を検出するように構成される。そして、マイコン11、12のそれぞれは、姿勢角センサから出力された姿勢角信号が示す姿勢角に基づいて、倒立状態を維持するようにモータ17、18を制御する指令値を生成するようにしてもよい。
また、マイコン11、12のそれぞれは、回転角センサ19、21のそれぞれから出力される、モータ17の回転角を示す回転角信号に基づいて、モータ17をフィードバック制御するように、インバータ13、15のそれぞれに対する指令値を生成する。また、マイコン11、12のそれぞれは、回転角センサ20、22のそれぞれから出力される、モータ18の回転角を示す回転角信号に基づいて、モータ18をフィードバック制御するように、インバータ14、16のそれぞれに対する指令値を生成する。
さらに、マイコン11、12のそれぞれは、リーン角センサ25、26のそれぞれから出力されるリーン角信号が示すリーン角に基づいて、倒立移動体1がリーン角に応じた旋回動作をするように、モータ17、18を制御する指令値を生成する。例えば、マイコン11、12のそれぞれは、リーン角信号が示すリーン角が、ハンドル4が右方に傾けた(操舵した)角度を示している場合には倒立二輪車1が右旋回をするように指令値を生成し、ハンドル4が左方に傾けた(操舵した)角度を示している場合には倒立二輪車1が左旋回をするように指令値を生成する。また、マイコン11、12のそれぞれは、リーン角が大きくなるほど、旋回度合(例えば旋回角度)が大きくなるように指令値を生成する。
インバータ13は、マイコン11から出力された指令値に基づいて、PWM(Pulse Width Modulation)制御を行うことで、モータ17を駆動する駆動電流を生成してモータ17に供給する。インバータ14は、マイコン11から出力された指令値に基づいて、PWM制御を行うことで、モータ18を駆動する駆動電流を生成してモータ18に供給する。インバータ15は、マイコン12から出力された指令値に基づいて、PWM制御を行うことで、モータ17を駆動する駆動電流を生成してモータ17に供給する。インバータ16は、マイコン12から出力された指令値に基づいて、PWM制御を行うことで、モータ18を駆動する駆動電流を生成してモータ18に供給する。
モータ17、18のそれぞれは、二重巻線のモータである。モータ17は、インバータ13から供給される駆動電流と、インバータ15から供給される駆動電流とに基づいて駆動される。モータ17を駆動することによって、倒立二輪車1の左側の車輪2が回転する。モータ18は、インバータ14から供給される駆動電流と、インバータ16から供給される駆動電流とに基づいて駆動される。モータ18を駆動することによって、倒立二輪車1の右側の車輪2が回転する。
回転角センサ19は、モータ17の回転角を検出し、検出した回転角を示す回転角信号を生成してマイコン11に出力する。回転角センサ20は、モータ18の回転角を検出し、検出した回転角を示す回転角信号を生成してマイコン11に出力する。回転角センサ21は、モータ17の回転角を検出し、検出した回転角を示す回転角信号を生成してマイコン12に出力する。回転角センサ22は、モータ18の回転角を検出し、検出した回転角を示す回転角信号を生成してマイコン12に出力する。なお、回転角センサ27〜30として、例えばエンコーダ又はレゾルバ等のモータ17、18の回転角を検出可能なセンサのうち、任意のセンサを利用するようにしてよい。
ジャイロセンサ23、24のそれぞれは、搭乗者がステップカバー3に対して、倒立二輪車1の前後方向に荷重を作用させた際における、倒立二輪車1の前後方向に対する角速度(ピッチ軸周りの角速度、ピッチ角速度)を検出し、検出した角速度を示す角速度信号をマイコン11、12のそれぞれに出力する。
リーン角センサ25、26のそれぞれは、ハンドル4のリーン角(傾斜角、操舵角)を検出し、検出したリーン角を示すリーン角信号を生成してマイコン11、12のそれぞれに出力する。なお、リーン角センサ25、26として、例えばポテンショメータ等のハンドル4のリーン角を検出可能なセンサのうち、任意のセンサを利用するようにしてよい。
続いて、図3〜図6を参照して、本実施の形態1にかかる故障診断方法について説明する。図3は、本実施の形態1にかかるマイコン11、12とリーン角センサ25、26との接続関係を示す図である。図4は、実施の形態1にかかるリーン角センサ25の検出有効範囲を示す図である。図5は、実施の形態1に係るリーン角センサにおける検出リーン角と出力電圧値との関係を示す図である。
図3に示すように、マイコン11、12のそれぞれは、上述したように、倒立二輪車1の制御に関する各種処理を実行するCPU110、120のそれぞれを有する。また、マイコン11、12のそれぞれは、上述したように、倒立二輪車1の制御に関する各種情報を格納することができる記憶部111、121のそれぞれを有する。制御装置10は、CPU110とCPU120とを接続するCPU間通信路200を有する。CPU110とCPU120とは、CPU間通信路200を介して相互に情報を送受信しつつ、倒立二輪車1の倒立制御を実施する。CPU110は、リーン角センサ25から出力されたリーン角信号を取得する。CPU120は、リーン角センサ26から出力されたリーン角信号を取得する。
ここで、図4及び図5を参照して、リーン角センサ25、26の出力内容について説明する。リーン角センサ25、26のそれぞれは、検出したリーン角を示すリーン角信号として、検出したリーン角を示す電圧値をマイコン11、12のそれぞれに出力する。本実施の形態1では、リーン角センサ25、26が、図4及び図5に示すように、検出したリーン角に対応する電圧値を出力するように倒立二輪車1に備え付けられている例について説明する。よって、リーン角センサ25、26は、この例とは異なるリーン角と電圧値との関係を有していてもよい。ここで、本実施の形態1では、図5に示すように、リーン角センサ25、26の間で、検出したリーン角と出力する電圧値との関係が、たすき掛けの関係となる。すなわち、リーン角センサ25は、検出したリーン角に対して所定の傾きで比例した電圧値を出力し、リーン角センサ26は、ハンドル4の中立点(リーン角0度)ではリーン角センサ25と同一の電圧値を出力し、かつ、リーン角センサ25の傾きとは異符号の傾きで、検出したリーン角に対して比例した電圧値を出力する、
リーン角センサ25は、リーン角が−20度の場合には1.5Vの電圧値を出力し、リーン角が0度の場合には2.5Vの電圧値を出力し、リーン角が20度の場合には3.5Vの電圧値を出力する。リーン角センサ26は、リーン角が−20度の場合には3.5Vの電圧値を出力し、リーン角が0度の場合には2.5Vの電圧値を出力し、リーン角が20度の場合には1.5Vの電圧値を出力する。リーン角センサ25、26は、例えば、ハンドル4が中立点より左方に操舵されている場合に、リーン角がマイナスとなり、ハンドル4が中立点より右方に操舵されている場合に、リーン角がプラスとなるように、倒立二輪車1に備え付けられている。なお、リーン角の符号と、ハンドル4の操舵方向との関係が、これとは逆となるようにされていてもよい。
図4に示すように、リーン角センサ25、26のそれぞれは、その電圧値(リーン角)に正常範囲と異常範囲が予め定義されている。図4では、リーン角センサ25、26のそれぞれにおいて、電圧値が1.5V〜3.5V(リーン角が−20度〜20度)の範囲が正常範囲と定義されており、それ以外の範囲は異常範囲と定義されている例について示している。正常範囲として、リーン角センサ25、26が、温度変化や経年劣化の影響を受けないと考えられる所定の範囲を定義するようにしてよい。
ここで、ハンドル4は、機械的な機構によって、リーン角が所定の範囲(例えば−13.5度〜13.5度)内でのみ可動するように倒立二輪車1の本体に取り付けられるようにしてもよい。この場合には、正常範囲として、ハンドル4の可動範囲(電圧値で−1.825V〜3.175V、リーン角で−13.5度〜13.5度)を定義してもよい。
上述したように動作するリーン角センサ25、26に対して、CPU110、120のそれぞれは、次に説明するように故障診断を実施する。図6は、本実施の形態1にかかる故障診断パターンを示す図である。
CPU110、120のそれぞれは、所定の故障診断時間間隔毎に、リーン角センサ25、26のそれぞれから出力されたリーン角信号を取得する。また、CPU110、120のそれぞれは、取得したリーン角信号によって示されるリーン角(電圧値)を示すリーン角情報を生成し、CPU間通信路200を介して他系のCPU(CPU110又はCPU120)に出力する。CPU110、120のそれぞれは、リーン角センサ25、26のそれぞれから取得したリーン角信号が示すリーン角(電圧値)と、他系のCPUから出力されたリーン角情報が示すリーン角(電圧値)に基づいて、リーン角センサ25、26の故障を診断する。言い換えると、CPU110、120のそれぞれは、0系のリーン角センサ25が検出したリーン角(電圧値)と、1系のリーン角センサ26が検出したリーン角(電圧値)とに基づいて、リーン角センサ25、26の故障を診断する。
図6に示すように、CPU110、120のそれぞれは、0系のリーン角センサ25が検出したリーン角(電圧値)と、1系のリーン角センサ26が検出したリーン角(電圧値)がいずれも正常範囲内である場合には、リーン角センサ25、26が故障していないと判定する。言い換えると、CPU110、120のそれぞれは、自系のリーン角センサが検出したリーン角(電圧値)と、他系のリーン角センサが検出したリーン角(電圧値)がいずれも正常範囲内である場合には、リーン角センサ25、26が故障していないと判定する。
ただし、この場合であっても、0系のリーン角(電圧値)と1系のリーン角(電圧値)とを総合的に判断して(又は比較判断して)、その判断結果が異常である場合には、リーン機構(リーン角センサ25、26)が故障していると判定する。
ここで、本実施の形態1では、図5に示すように、リーン角センサ25、26は、大きさ(絶対値)は同一であるが符号が異なるリーン角に対して同一の電圧値を出力するようになっている。また、リーン角センサ25、26は、リーン角と電圧値との関係が、符号だけ異なる傾きで比例関係となっており、中立点(リーン角0度)を中心として線対称の関係となっている。よって、リーン角センサ25、26が正常であれば、リーン角センサ25が検出した電圧値と、リーン角センサ26が検出した電圧値との加算値は、常に同一の値(5.0V)となることになる。したがって、CPU110、120のそれぞれは、リーン角センサ25、26が検出した電圧値(リーン角)が正常範囲内であっても、それぞれの電圧値の加算値が、その加算値の期待値(5.0V)と一致しない場合には、リーン機構が故障していると判定する。なお、ここでの一致の判断は、完全一致に限られず、誤差を考慮して、加算値が期待値との差が所定の範囲内であれば一致すると判定するようにしてもよい。
これによれば、リーン角センサ25、26から複数の信号線によって複数ビットで電圧値を示す信号が出力されている場合に、上位ビット及び下位ビットの信号線故障まで検出することが可能となる。例えば、リーン角が20度のときに、リーン角センサ25からの信号線のうち、上位ビットに対応する信号線故障が発生しており、リーン角センサ25からは3.5Vの電圧値を示す複数ビットの信号を出力しているのに、CPU110からは1.5Vの電圧値に見えている場合にも、電圧値が正常範囲内であるが、加算値が期待値と異なることになるため、その異常を検出することが可能となる。
ここで、リーン角センサ25、26におけるリーン角と電圧値との関係は、上述したものに限られない。リーン角センサ25、26は、同一のリーン角に対して、同一の電圧値を出力するように倒立二輪車1に備え付けられるようにしてもよい。例えば、リーン角センサ25、26の双方が、図5に示す2つのリーン角と電圧値との関係のうち、いずれかの関係を有するようにしてもよい。そして、この場合は、以下の式(1)〜(3)のいずれかが成立しない場合には、リーン機構が故障していると判定する。
自系リーン角センサの電圧値×2 =
自系リーン角センサの電圧値 + 他系リーン角センサの電圧値 ・・・ (1)
自系リーン角センサ − 他系リーン角センサ = 0 ・・・(2)
自系リーン角センサ = 他系リーン角センサ ・・・ (3)
式(1)では、自系のリーン角センサからの電圧値を2倍した値が、自系のリーン角センサからの電圧値と他系のリーン角センサからの電圧値を加算した加算値と一致する場合には、リーン機構が正常であり、一致しない場合には、リーン機構が故障していると判定する。同様の考え方で、式(2)では、自系のリーン角センサからの電圧値から他系のリーン角センサからの電圧値を減算した減算値が、0と一致する場合には、リーン機構が正常であり、一致しない場合には、リーン機構が故障していると判定する。同様の考え方で、式(3)では、自系のリーン角センサからの電圧値と、他系のリーン角センサからの電圧値とが、一致する場合には、リーン機構が正常であり、一致しない場合には、リーン機構が故障していると判定する。なお、ここでの一致の判断も、完全一致に限られず、上記式(1)〜(3)の右辺と左辺との差が所定の範囲内であれば一致すると判定するようにしてもよい。
リーン角センサ25、26が正常であれば、リーン角センサ25の電圧値と、リーン角センサ26の電圧値とが一致するはずである。これに対して、上記の式(1)〜(3)によれば、リーン角センサ25の電圧値と、リーン角センサ26の電圧値とが一致するか否かを評価することができる。
以上に説明した0系のリーン角(電圧値)と1系のリーン角(電圧値)とを総合的に判断して(又は比較判断して)の判断で異常と判定された場合には、リーン角センサ25、26のうち、いずれが故障しているかまで特定することができないため、リーン機構の故障として扱う。
一方、CPU110、120のそれぞれは、0系のリーン角センサ25が検出したリーン角(電圧値)が正常範囲内ではなく、1系のリーン角センサ26が検出したリーン角(電圧値)が正常範囲内である場合には、リーン角センサ25、26のうち、0系のリーン角センサ25が故障していると判定する。また、CPU110、120のそれぞれは、0系のリーン角センサ25が検出したリーン角(電圧値)が正常範囲内であり、1系のリーン角センサ26が検出したリーン角(電圧値)が正常範囲内でない場合には、リーン角センサ25、26のうち、1系のリーン角センサ26が故障していると判定する。
言い換えると、CPU110、120のそれぞれは、自系のリーン角センサが検出したリーン角(電圧値)が正常範囲内ではなく、他系のリーン角センサが検出したリーン角(電圧値)が正常範囲内である場合には、自系のリーン角センサが故障していると判定する。また、CPU110、120のそれぞれは、自系のリーン角センサが検出したリーン角(電圧値)が正常範囲内であり、他系のリーン角センサが検出したリーン角(電圧値)が正常範囲内でない場合には、他系のリーン角センサが故障していると判定する。
一方、CPU110、120のそれぞれは、0系のリーン角センサ25が検出したリーン角(電圧値)と、1系のリーン角センサ26が検出したリーン角(電圧値)がいずれも正常範囲内でない場合には、リーン機構(0系と1系のリーン角センサ25、26の両方が故障している)が故障していると判定する。言い換えると、CPU110、120のそれぞれは、自系のリーン角センサが検出したリーン角(電圧値)と、他系のリーン角センサが検出したリーン角(電圧値)がいずれも正常範囲内でない場合には、リーン機構(自系と他系のリーン角センサ25、26の両方が故障している)が故障していると判定する。なお、上述したように機械的な機構によってハンドル4の可動範囲を制限している場合に、この判定結果が得られた場合には、リーン機構の故障として、ハンドル4の可動範囲を制限するための機構に故障が発生し、ハンドル4が可動範囲を超えて操舵されている可能性もある。
そして、CPU110、120のそれぞれは、リーン機構に故障が発生していると判定した場合には、リーン機構の故障を検出する前にリーン角センサ25、26で検出したリーン角に基づいて、倒立二輪車1の旋回制御を行う。また、リーン角センサ25、26のいずれかに故障が発生していると判定した場合には、故障が発生していないリーン角センサで検出したリーン角に基づいて、倒立二輪車1を制御する。
CPU110、120のそれぞれは、リーン角センサ25、26のそれぞれからリーン角(電圧値)を取得したときに、そのリーン角(電圧値)を示す情報を記憶部111、121のそれぞれに格納しておく。そして、CPU110、120のそれぞれは、リーン機構の故障を検出したときに、記憶部111、121のそれぞれに格納しておいた情報が示すリーン角(電圧値)を、リーン機構の故障を検出する前にリーン角センサ25、26で検出したリーン角(電圧値)として利用する。
なお、リーン機構の故障検出前のリーン角は、故障を検出する前に記憶部111、121に保持しておいたリーン角であれば、直前に保持しておいたリーン角(リーン機構の故障検出の判定に利用したリーン角の一つ前に取得したリーン角)に限られないが、好ましくは、直前に保持しておいたリーン角を利用するとよい。そのようにすることで、より現在の倒立二輪車1の状態に近いリーン角に基づいて、倒立二輪車1を制御する。
このように、本実施の形態1では、リーン機構(リーン角センサ25、26)の故障を検出した場合に、故障検出前に検出していたリーン角に基づいて、倒立二輪車1を制御することで、リーン角センサ25、26が故障してしまった場合であっても、倒立二輪車1の安定性の低下を抑制することができるようにしている。
続いて、図7を参照して、本実施の形態1にかかる倒立二輪車1のリーン機構故障検出時の倒立二輪車1の制御について説明する。図7は、本実施の形態1にかかる倒立二輪車1のリーン機構故障検出時の倒立二輪車1の制御におけるリーン角度の変化を示す図である。
CPU110、120のそれぞれは、リーン機構の故障を検出した場合、故障検出前に取得していたリーン角に基づいた倒立二輪車1の制御として、故障検出前に取得していたリーン角に基づいて、ハンドル4を中立点に戻す制御を行う。CPU110、120のそれぞれは、故障検出前のリーン角が、ハンドル4が左方に傾いている角度である場合、倒立二輪車1を左方に旋回させるように制御することで、遠心力によってハンドル4のリーン角が中立点に戻るように制御する。また、CPU110、120のそれぞれは、故障検出前のリーン角が、ハンドル4が右方に傾いている角度である場合、ハンドル4が右方に傾いている角度である場合、倒立二輪車1を右方に旋回させるように制御することで、遠心力によってハンドル4のリーン角が中立点に戻るように制御する。
例えば、以下に説明するパターン(1)〜(3)のうち、いずれかのパターンでハンドル4のリーン角が戻るような旋回動作を倒立二輪車1に行わせることで、ハンドル4のリーン角のリーン角を中立点に戻す。なお、以下のパターン(1)〜(3)のそれぞれは、図7に示す(1)〜(3)のそれぞれに対応する。
(1)最初は緩やかに角度を落とし、最後は急に角度を落とす
(2)平均的に一定量角度を落としていく
(3)最初は急に角度を落とし、最後は緩やかに角度を落とす
例えば、パターン(1)では式(4)に示すようにハンドル4のリーン角が遷移して中立点に戻るように倒立二輪車1の旋回制御を実施し、パターン(2)では式(5)に示すようにハンドル4のリーン角が遷移して中立点に戻るように倒立二輪車1の旋回制御を実施し、パターン(3)では式(6)に示すようにハンドル4のリーン角が遷移して中立点に戻るように倒立二輪車1の旋回制御を実施する。
経過時間におけるリーン角 =
(log(最大時間−経過時間+1)/log(最大時間−開始時間+1))
× 故障検出前のリーン角センサ値 ・・・ (4)
経過時間におけるリーン角 =
((最大時間−経過時間)/(最大時間−開始時間)) × 故障検出前のリーン角センサ値
・・・ (5)
経過時間におけるリーン角 =
(log(最大時間)−log(経過時間))/(log(最大時間)−log(開始時間))
× 故障検出前のリーン角センサ値 ・・・ (6)
ここで、上記の式(4)〜(6)における「最大時間」、「経過時間」、「開始時間」、「故障検出前のリーン角センサ値」のそれぞれは、以下を意味する。
最大時間:故障前のリーン角から中立点に戻すための最大時間
経過時間:リーン角を中立点に戻す制御を開始して経過した時間
開始時間:リーン角を中立点に戻す制御を開始した時間
故障検出前のリーン角センサ値:リーン角センサ故障検出前に保持していたセンサ値(リーン角、電圧値)
このように、CPU110、120のそれぞれは、所定の最大時間が経過したときに、ハンドル4のリーン角が中立点に戻せるだけの旋回度合で倒立二輪車1を旋回させるように制御する。なお、最大時間として、例えば、2秒又は10秒等の任意の時間を予め定めるようにしてよい。
ここで、上述したように、リーン機構の故障が検出されているため、それ以降のリーン角センサ25、26によって検出されたリーン角は利用することができない。そのため、故障検出前に保持していたリーン角から、最大時間になったときにハンドル4のリーン角を中立点に戻せるだけの旋回度合で倒立二輪車1を制御するような指令値が、開始時間から最大時間にかけて算出できる算出アルゴリズムを予め任意に定めて用意しておき、CPU110、120は、その算出アルゴリズムに基づいて算出される指令値で倒立二輪車1を制御するようにすればよい。
例えば、パターン(1)の算出アルゴリズムでは、開始時間では小さい旋回角度となる指令値が算出され、最大時間に近づくにつれて徐々により大きい旋回角度となる指令値が算出されるようにすることで、最初は緩やかにリーン角を落とし、最後は急にリーン角を落とすようにするようにしてもよい。例えば、パターン(2)の算出アルゴリズムでは、開始時間から最大時間まで一定の旋回角度となる指令値が算出されるようにすることで、平均的に一定量でリーン角を落としいくようにしてもよい。例えば、パターン(3)の算出アルゴリズムでは、開始時間では大きい旋回角度となる指令値が算出され、最大時間に近づくにつれて徐々により小さい旋回角度となる指令値が算出されるようにすることで、最初は急にリーン角を落とし、最後は緩やかにリーン角を落とすようにするようにしてもよい。
ここで、好ましくは、パターン(3)によって、ハンドル4のリーン角を中立点に戻す制御を行うとよい。そのようにすることで、最初にハンドル4のリーン角の大きな変化があるため、それによって搭乗者がリーン機構の故障を容易に把握することが可能となる。
また、倒立二輪車1に通知手段としてLED(Light Emitting Diode)ライト又は表示パネル等を備えるようにして、故障を検出したCPU110又はCPU120が、LEDを発光させる又は表示パネルに故障を通知する画像を表示することによって、搭乗者にリーン機構の故障を通知するようにしてもよい。また、倒立二輪車1に通知手段としてスピーカーを備えるようにして、故障を検出したCPU110又はCPU120が、スピーカーから故障を通知する音声を出力することによって、搭乗者にリーン機構の故障を通知するようにしてもよい。
ここで、リーン機構の故障を検出した場合に、ハンドル4のリーン角を中立点に戻すようにしているが、ハンドル4のリーン角を故障発生時のリーン角で維持するように倒立二輪車1の制御を実施するようにしてもよい。
例えば、故障検出前に保持していたリーン角から、そのリーン角を維持するだけの旋回度合で倒立二輪車1を制御するような指令値が算出できる算出アルゴリズムを予め任意に定めて用意しておき、CPU110、120は、その算出アルゴリズムに基づいて算出される指令値で倒立二輪車1を制御するようにすればよい。例えば、分かり易い例としては、故障検出前に保持していたリーン角が0度であり、倒立二輪車1が直進している場合には、リーン角センサ25、26の出力は利用せずに、倒立二輪車1の直進(旋回角度0)が維持される指令値が算出されるようにする。これのような制御によっても、倒立二輪車1の安定性の低下を抑制することができる。
続いて、図8を参照して、本実施の形態1にかかる制御装置10による故障診断処理について説明する。図8は、本実施の形態1にかかる制御装置10による故障診断処理を示すフローチャートである。
CPU110、120は、所定の診断時間間隔毎に、自系のリーン角センサから出力されたリーン角信号を取得するとともに、他系のCPUから出力されたリーン角情報を取得する。CPU110、120は、取得したリーン角信号が示すリーン角(電圧値)が正常範囲内か否かを判定する(S1)。すなわち、自系のリーン角センサが検出したリーン角(電圧値)が正常範囲内か否かが判定される。
リーン角信号が示すリーン角(電圧値)が正常範囲内であると判定した場合(S1:Yes)、CPU110、120は、取得したリーン角情報が示すリーン角(電圧値)が正常範囲内か否かを判定する(S2)。すなわち、他系のリーン角センサが検出したリーン角(電圧値)が正常範囲内か否かが判定される。
リーン角情報が示すリーン角(電圧値)が正常範囲内であると判定した場合(S2:Yes)、CPU110、120は、リーン角信号が示す電圧値とリーン角情報が示す電圧値とを加算した加算値が正常範囲内であるか否かを判定する(S3)。すなわち、上述したように、リーン角センサ25、26の電圧値の加算値とその期待値とが所定の範囲内で一致するか否かを判定する。なお、ここでの判定として、リーン角センサ25、26が同一のリーン角に対して同一の電圧値を出力するように倒立二輪車1に備え付けられている場合には、上述したように、式(1)〜(3)のいずれかによる判定を行うようにする。
加算値が正常範囲内であると判定した場合(S3:Yes)、CPU110、120は、リーン機構(リーン角センサ25、26)が正常であると判定する(S4)。
加算値が正常範囲内でないと判定した場合(S3:No)、CPU110、120は、リーン機構(リーン角センサ25、26)が故障したと判定し(S5)、上述したように、ハンドル4を中立点に戻す制御を実施する(S6)。
リーン角情報が示すリーン角(電圧値)が正常範囲内でないと判定した場合(S2:Yes)、CPU110、120は、他系のリーン角センサが故障したと判定する(S7)。この場合、CPU110、120は、他系のCPUで、後述するステップS9によってリーン角センサの故障が検出されることになる。
リーン角信号が示すリーン角(電圧値)が正常範囲内でないと判定した場合(S1:No)、CPU110、120は、取得したリーン角情報が示すリーン角(電圧値)が正常範囲内か否かを判定する(S8)。すなわち、他系のリーン角センサが検出したリーン角(電圧値)が正常範囲内か否かが判定される。
リーン角情報が示すリーン角(電圧値)が正常範囲内であると判定した場合(S8:Yes)、CPU110、120は、自系のリーン角センサが故障していると判定する(S9)。この場合、CPU110、120は、他系のリーン角センサを利用して、倒立二輪車1を倒立制御しつつ継続して走行させる制御、又は、倒立二輪車1を倒立制御しつつ停止させる安全制御を行う(S10)。すなわち、CPU110、120は、他系のCPUから出力されるリーン角情報が示すリーン角に基づいて、倒立二輪車1を旋回させる制御を行う。
また、この場合は、CPU110、120は、自系の制御系を故障扱いとして縮退し、他系の制御系のみで、倒立二輪車1を倒立制御しつつ継続して走行させる制御、又は、倒立二輪車1を倒立制御しつつ停止させる安全制御を行うようにしてもよい。すなわち、この場合、CPU110、120は、モータ17、18の制御を停止する。また、安全制御を行う場合、CPU110、120は、他系のCPUに自系のリーン角センサの故障を通知する通知情報を、CPU間通信路200を介して送信し、他系のCPUが、この通知情報の受信に応じて安全制御を開始するようにする。
ここで、リーン角センサの故障に応じて安全制御を行う場合には、CPU110、120は、上述のステップS7で、安全制御を開始するようにしてもよい。また、CPU110、120は、上述のステップS7で、他系のCPUに他系のリーン角センサの故障を通知する通知情報を、CPU間通信路200を介して送信し、他系のCPUが、この通知情報の受信に応じて、他系のリーン角センサを利用した制御、又は、制御系の縮退を実施するようにしてもよい。
リーン角情報が示すリーン角(電圧値)が正常範囲内でないと判定した場合(S8:No)、CPU110、120は、リーン機構(リーン角センサ25、26)が故障したと判定し(S11)、上述したように、ハンドル4を中立点に戻す制御を実施する(S12)。
以上に説明したように、本実施の形態1では、制御部(マイコン11、12)は、リーン角センサ25、26が検出したリーン角が所定の正常範囲内でないと判定した場合、リーン角が正常範囲内でないと判定する前にリーン角センサ25、26が検出したリーン角に基づいて、移動体(倒立二輪車1)を制御するようにしている。
これによれば、リーン角センサ25、26の故障検出前に検出していた正常なリーン角に基づいて、移動体(倒立二輪車1)を制御するようにしているため、リーン角センサ25、26が故障してしまった場合であっても、安定性の低下を抑制することができる。
また、本実施の形態1によれば、2重化されたリーン角センサ25、26によって耐故障性を向上することができるとともに、上述した故障診断処理によってリーン角センサが2つであっても故障したリーン角センサを特定することが可能である。そのため、例えば、リーン角センサを3つ有する場合と比較して、倒立二輪車1の搭載スペースの圧迫を抑制するとともに、コストの増加を抑制することができる。
<発明の実施の形態2>
続いて、実施の形態2について説明する。実施の形態2にかかる倒立二輪車1の概要構成については、図1を参照して説明した実施の形態1にかかる倒立二輪車1の概要構成と同様であるため、説明を省略する。
続いて、図9を参照して、本実施の形態1にかかる制御装置10の構成について説明する。図9は、本実施の形態1にかかる制御装置10の構成を示すブロック図である。
本実施の形態2にかかる制御装置10は、実施の形態1にかかる制御装置10と比較して、さらに、リーン角センサ27を有する。また、本実施の形態2にかかる制御装置10は、実施の形態1にかかる制御装置10と比較して、マイコン12に代えて、マイコン28を有する。リーン角センサ27及びマイコン28は、2系の制御系に含まれる。
マイコン28は、原則、マイコン12と同様であるが、さらに、実施の形態1においてリーン角センサ25とリーン角センサ26との間で実施していた故障診断と同様の故障診断を、リーン角センサ26とリーン角センサ27との間でも実施する。
リーン角センサ27は、ハンドル4のリーン角(傾斜角、操舵角)を検出し、検出したリーン角を示すリーン角信号を生成してマイコン12に出力する。なお、リーン角センサ27として、例えばポテンショメータ等のハンドル4のリーン角を検出可能なセンサのうち、任意のものを利用するようにしてよい。
図10は、本実施の形態1にかかるマイコン11、28とリーン角センサ25〜27との接続関係を示す図である。図10に示すように、CPU280は、さらに、リーン角センサ27から出力されたリーン角信号を取得する。これによって、CPU280は、リーン角センサ26から出力されたリーン角信号が示すリーン角(電圧値)と、リーン角センサ27から出力されたリーン角信号が示すリーン角(電圧値)とに基づいて、実施の形態1においてリーン角センサ25とリーン角センサ26との間で実施していた故障診断と同様の故障診断を、リーン角センサ26とリーン角センサ27との間でも実施する。そして、CPU280は、実施の形態1においてリーン角センサ25とリーン角センサ26との間で実施していた故障診断を、リーン角センサ25と、リーン角センサ26、27のうち故障していないリーン角センサとの間で実施する。
よって、リーン角センサ26、27の間でも、検出したリーン角と出力する電圧値との関係が、図5に示すように、たすき掛けの関係となっているものとする。また、リーン角センサ26、27は、当然に、同一のリーン角に対して、同一の電圧値を出力するように倒立二輪車1に備え付けられるようにしてもよい。
続いて、図11を参照して、本実施の形態2にかかる制御装置10による故障診断処理について説明する。図11は、本実施の形態2にかかる制御装置10による故障診断処理を示すフローチャートである。
CPU280は、所定の診断時間間隔毎に、リーン角センサ26から出力されたリーン角信号と、リーン角センサ27から出力されたリーン角信号を取得する。CPU280は、リーン角センサ26から取得したリーン角信号が示すリーン角(電圧値)が正常範囲内か否かを判定する(S21)。
リーン角センサ26から取得したリーン角信号が示すリーン角(電圧値)が正常範囲内であると判定した場合(S21:Yes)、CPU280は、リーン角センサ27から取得したリーン角信号が示すリーン角(電圧値)が正常範囲内か否かを判定する(S22)。
リーン角センサ27から取得したリーン角信号が示すリーン角(電圧値)が正常範囲内であると判定した場合(S22:Yes)、CPU280は、リーン角センサ26から取得したリーン角信号が示す電圧値と、リーン角センサ27から取得したリーン角信号が示す電圧値とを加算した加算値が正常範囲内であるか否かを判定する(S23)。すなわち、上述したように、リーン角センサ26、27の電圧値の加算値とその期待値とが所定の範囲内で一致するか否かを判定する。なお、ここでの判定として、リーン角センサ26、27が同一のリーン角に対して同一の電圧値を出力するように倒立二輪車1に備え付けられている場合には、上述したように、式(1)〜(3)のいずれかによる判定を行うようにする。
加算値が正常範囲内であると判定した場合(S23:Yes)、CPU280は、リーン角センサ25と、リーン角センサ26又はリーン角センサ27との間で、図8に示す故障診断処理を実施する(S24)。すなわち、この場合は、リーン角センサ26、27のいずれも正常であるため、0系のCPU110で故障診断に利用されるリーン角情報として、リーン角センサ26、27のうち、任意のリーン角センサから出力されたリーン角信号によって示されるリーン角(電圧値)を示すリーン角情報を生成してCPU110に出力するようにしてよい。また、CPU280は、リーン角センサ26、27のうち、任意のリーン角センサから出力されたリーン角信号によって示されるリーン角(電圧値)を、自系のリーン角センサで検出されたリーン角(電圧値)として利用して、倒立二輪車1を旋回させる制御、及び、図8に示す故障診断処理を実施すればよい。
なお、この場合は、ステップS21〜S23の判定によって、リーン角センサ26、27が正常であることが保証されているため、ステップS3でNoとなった場合には、リーン角センサ25が故障していると判定し、CPU110はステップS9、S10の処理、CPU280はステップS7の処理を実施するようにしてもよい。
加算値が正常範囲内でないと判定した場合(S23:No)、CPU280は、自系のリーン角センサ26、27が故障したと判定し、他系のリーン角センサ25を利用して、倒立二輪車1を倒立制御しつつ継続して走行させる制御、又は、倒立二輪車1を倒立制御しつつ停止させる安全制御を行う(S25)。すなわち、CPU280は、他系のCPU110から出力されるリーン角情報が示すリーン角に基づいて、倒立二輪車1を旋回させる制御を行う。この場合は、リーン角センサ26、27のうち、いずれが故障しているかまで特定することができないため、リーン角センサ26、27の故障として扱う。
また、この場合、CPU280は、自系の制御系を故障扱いとして縮退し、他系の制御系のみで、倒立二輪車1を倒立制御しつつ継続して走行させる制御、又は、倒立二輪車1を倒立制御しつつ停止させる安全制御を行うようにしてもよい。なお、この場合における詳細な処理は、ステップS10で説明した処理と同様であるため、説明を省略する。
リーン角センサ27から取得したリーン角信号が示すリーン角(電圧値)が正常範囲内でないと判定した場合(S22:No)、リーン角センサ27が故障したと判定する(S26)。この場合、リーン角センサ25、26を利用して制御を継続する(S27)。すなわち、CPU280は、リーン角センサ26、27のうち、リーン角センサ26から出力されるリーン角信号が示すリーン角に基づいて、倒立二輪車1を旋回させる制御を行う。また、CPU280は、リーン角センサ25と、リーン角センサ26との間で、図8に示す故障診断処理を実施する(S28)。すなわち、この場合は、CPU280は、0系のCPU110で故障診断に利用されるリーン角情報として、リーン角センサ26、27のうち、リーン角センサ26から出力されたリーン角信号によって示されるリーン角(電圧値)を示すリーン角情報を生成してCPU110に出力する。また、CPU280は、リーン角センサ26、27のうち、リーン角センサ26から出力されたリーン角信号によって示されるリーン角(電圧値)を、自系のリーン角センサで検出されたリーン角(電圧値)として利用して、図8に示す故障診断処理を実施する。
リーン角センサ26から取得したリーン角信号が示すリーン角(電圧値)が正常範囲内でないと判定した場合(S21:No)、CPU280は、リーン角センサ27から取得したリーン角信号が示すリーン角(電圧値)が正常範囲内か否かを判定する(S29)。
リーン角センサ27から取得したリーン角信号が示すリーン角(電圧値)が正常範囲内であると判定した場合(S29:Yes)、リーン角センサ26が故障したと判定する(S30)。この場合、リーン角センサ25、27を利用して制御を継続する(S31)。すなわち、CPU280は、リーン角センサ26、27のうち、リーン角センサ27から出力されるリーン角信号が示すリーン角に基づいて、倒立二輪車1を旋回させる制御を行う。また、CPU280は、リーン角センサ25と、リーン角センサ27との間で、図8に示す故障診断処理を実施する(S32)。すなわち、この場合は、CPU280は、0系のCPU110で故障診断に利用されるリーン角情報として、リーン角センサ26、27のうち、リーン角センサ27から出力されたリーン角信号によって示されるリーン角(電圧値)を示すリーン角情報を生成してCPU110に出力する。また、CPU280は、リーン角センサ26、27のうち、リーン角センサ27から出力されたリーン角信号によって示されるリーン角(電圧値)を、自系のリーン角センサで検出されたリーン角(電圧値)として利用して、図8に示す故障診断処理を実施する。
リーン角センサ27から取得したリーン角信号が示すリーン角(電圧値)が正常範囲内でないと判定した場合(S29:No)、CPU280は、自系のリーン角センサ26、27が故障したと判定し、他系のリーン角センサ25を利用して、倒立二輪車1を倒立制御しつつ継続して走行させる制御、又は、倒立二輪車1を倒立制御しつつ停止させる安全制御を行う(S32)。この処理については、ステップS25の処理と同様であるため、詳細な説明は省略する。
以上に説明したように、本実施の形態2では、リーン角センサ26及びリーン角センサ27のうち、リーン角センサ26が検出したリーン角が所定の正常範囲内でないと判定した場合、リーン角センサ26が検出したリーン角に代えて、リーン角センサ27が検出したリーン角を利用して、0系と1系との間の故障診断処理を実施するようにしている。
これによれば、1系のリーン角センサ26が1つ故障した場合であっても、0系と1系との間の故障診断処理を継続実施することができる。すなわち、耐故障性を向上することができる。
なお、本実施の形態2では、1系のみに2つのリーン角センサを有するようにしているが、これに限られない。0系も2つのリーン角センサを有するようにして、図11と同様の故障診断を実施することで、その2つのうちで故障しているリーン角センサを検出し、故障していないリーン角センサの出力を利用して、図8に示す0系と1系との間の故障診断処理を実施するようにしてもよい。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
上記の実施の形態では、CPU110、120(又はCPU110、280)の両方が故障診断処理を実施するようにしているが、いずれか一方のみが故障診断処理を実施するようにしてもよい。しかしながら、好ましくは、CPU110、120(又はCPU280、240)の両方が故障診断処理を実施するようにすることで、より故障検出の即応性を向上することができる。
上記の実施の形態では、0系と1系のそれぞれにリーン角センサ25、26を有するようにしているが、1つだけリーン角センサを有するようにし、そのリーン角センサからリーン角信号をマイコン11、12の両方に通知するようにしてもよい。これによっても、図8に示す故障診断処理によれば、リーン角センサとマイコン11との間の信号線、及び、リーン角センサとマイコン12との間の信号線のうち、いずれかが故障した場合に、それを検出することが可能である。