図1は、この発明の実施例に係る車両の状態検出装置を含む全体構成を模式的に示す概略図である。車両は、自動二輪車、スクータ、ATV(All Terrain Vehicle。三輪・四輪バギー)、自動四輪車など全ての車両を意味するが、この実施例においては車両として自動二輪車を例にとる。
図1において、符号10はその自動二輪車を示す。自動二輪車10は、前輪(フロントタイヤ)12と、前輪12の上方に取り付けられるハンドルバー14と、フレーム16の中央位置付近に配置(搭載)される内燃機関(以下「エンジン」という)20と、エンジン20に供給されるべき燃料が貯留される燃料タンク22と、フレーム16の後方に取り付けられる後輪(リアタイヤ)24などを備える。
自動二輪車10に搭載されるエンジン20は、例えば4サイクル単気筒の水冷式で、排気量250cc程度のガソリン・エンジンからなる。
また、図1に示す如く、前輪12の付近には車速センサ26が配置される。車速センサ26は、前輪12が所定の角度だけ回転するごとに信号を出力する。また、ハンドルバー14のアクセルグリップ30の付近には、アクセル開度センサ32が配置される。アクセル開度センサ32は、アクセル開度θA(乗員によるアクセルグリップ30の操作角度(量))に応じた信号を出力する。
自動二輪車10の適宜位置には、ECU(Electronic Control Unit。電子制御ユニット)34が搭載される。尚、ECU34は、CPU,ROM,RAMおよびカウンタなどを備えたマイクロコンピュータからなる。ECU34は、上記した各種センサなどの出力に基づいてスロットルバルブ(図1で図示せず)に接続された電動モータ(アクチュエータ。具体的には、ステッピングモータあるいはDCモータ)36を駆動し、スロットルバルブの開度を調整する。
また、ECU34は、上記した各種センサなどの出力に基づいて燃料タンク22の内部に配置された燃料ポンプ40やエンジン20の点火コイル42などの動作を制御すると共に、エンジン20のインジェクタ44の動作、具体的には、インジェクタ44によって噴射されるガソリン燃料量も制御する。即ち、自動二輪車10はFI(Fuel Injection)化した燃料供給装置を備える。
図2は、この実施例に係る状態検出装置を備えた車両の構成を示すブロック図である。
図2に示すように、エンジン20の吸気管50の上流側には、スロットルボディ52が配置される。スロットルボディ52には吸気管50を開閉するスロットルバルブ54が設けられると共に、上記した電動モータ36やスロットルバルブ開度センサ56、減速機(減速ギヤ。図示せず)などが一体的に装着される。電動モータ36の付近に設けられたスロットルバルブ開度センサ56は、スロットルバルブ54の開度θTH(以下「スロットル開度」という)に応じた信号を出力する。
スロットルバルブ54より下流の吸気ポート付近には、前記したインジェクタ44が配置される。インジェクタ44は、燃料タンク(図2で図示せず)22の内部に配置された燃料ポンプ40に接続される。これにより、インジェクタ44は、燃料タンク22に貯留されたガソリン燃料を燃料ポンプ40による圧送を受けて吸気ポートに噴射する。
また、エンジン20は、所定の点火時期においてガソリン燃料と吸入空気の混合気を点火する点火プラグ(図示せず)と、点火プラグに接続される点火コイル42とを備える。即ち、エンジン20の点火プラグは、点火コイル42から供給された高電圧で火花放電し、混合気を燃焼させる。
エシジン20のシリンダブロックの冷却水通路(図示せず)には、水温センサ60が取り付けられ、エンジン冷却水温TWに応じた信号を出力する。また、エンジン20のクランクシャフト(図示せず)の付近には、クランク角センサ62が取り付けられる。クランク角センサ62は所定のクランク角度(例えば30度)ごとに信号を出力する。尚、符号64と66は、それぞれエンジン20に接続された排気管と触媒装置を示す。
また、自動二輪車10は、図1,2に示すように、鉛直軸に対する車両の傾斜状態を示す値、具体的には、鉛直軸に対する車両のX,Y軸からなる水平面の傾斜状態を示す値を出力する傾斜センサ70を備える。傾斜センサ70は、具体的には、角度センサからなり、より具体的には、静電容量型、圧電型、あるいはガス移動式の角度センサなどからなる。
図3は、傾斜センサ70の自動二輪車10における配置を説明するための模式図である。尚、図3において、傾斜センサ70がよく示されるように、傾斜センサ70を拡大して示すと共に、自動二輪車10の構成については、前後輪12,24とハンドルバー14のみ示した。
図3に示すように、傾斜センサ70は、X,Y軸の2軸を検出軸として備えると共に、Y軸が車両の車長方向(前後方向。進行方向)に対して所定の角度αだけ回転させられて車両に取り付けられる。換言すれば、傾斜センサ70は、X軸が車両の車幅方向(左右方向。横転方向)に対して所定の角度αだけ回転させられて車両に取り付けられる。前記した所定の角度αは、具体的には30度から60度の範囲内に設定される。尚、この実施例においては、所定の角度αを45度とした。
次いで、傾斜センサ70から出力される、鉛直軸に対する車両の傾斜状態を示す値、正確には、車両に取り付けられた傾斜センサ70の傾斜状態を示す値(電圧値)について、図4を参照して説明する。
図4は、出力される傾斜センサ70の傾斜状態を示す値のうち、X軸方向の出力の特性を表すセンサ特性グラフである。尚、以下において、X軸方向の出力について説明するが、Y軸方向の出力もX軸方向の出力と略同一であるため、以下の説明はY軸方向の出力にも妥当する。
図4に示す如く、横軸に傾斜センサ70の鉛直軸に対するX軸方向の傾斜角度を、縦軸に傾斜センサ70から出力される電圧値をとって示すと、傾斜センサ70は、傾斜していない状態、即ち、水平状態(傾斜角度=0[°])にあるとき、2.5[V]の電圧を出力する。以下、傾斜センサ70の水平状態を示す電圧値(2.5[V])を「中間電圧値」と呼ぶ。
また、傾斜センサ70は、図示の如く、X軸が鉛直軸に対して90度傾斜するとき、4.3[V]の電圧を出力する一方、X軸が鉛直軸に対して−90度傾斜するとき、0.7[V]の電圧を出力する。尚、前記した鉛直軸に対するX軸方向の傾斜角度は、傾斜センサ70が進行方向に向かって右側に傾斜するときを正値、左側に傾斜するときを負値とした。また、Y軸方向の出力の場合、鉛直軸に対するY軸方向の傾斜角度は、傾斜センサ70が進行方向側(前側)に傾斜するときを正値、進行方向と逆側(後側)に傾斜するときを負値とする。
図2の説明に戻ると、上述した各種センサの出力はECU34に入力される。ECU34は、入力されたセンサ出力のうち、クランク角センサ62が出力する信号をカウンタでカウントしてエンジン回転数Neを検出すると共に、車速センサ26が出力する信号をカウンタでカウントして車速Vを検出する。
また、ECU34は、入力されたアクセル開度θAなどをパラメータとして演算を行い、スロットルバルブ54の開度THd(以下「目標スロットル開度」という)を算出し、算出した目標スロットル開度THdに応じた制御値(通電指令値)を電動モータ36に出力してスロットル開度θTHを調整し、よって吸入空気を調量してエンジン20の出力を制御する。さらに、ECU34は、入力された各値をパラメータとして演算を行い、自動二輪車10の運転状態に応じた制御信号を、燃料ポンプ40、インジェクタ44および点火コイル42などに送る。
さらに、ECU34は、傾斜センサ70から出力された鉛直軸に対する車両の傾斜状態を示す値(電圧値)に基づいて車両の状態、具体的には車両の転倒および衝突などの異常状態を検出する。以下、その車両の状態を検出する状態検出装置の動作について説明する。
図5は、この実施例に係る車両の状態検出装置の動作を示すフローチャートである。図示のプログラムは、ECU34において所定の周期(例えば10[msec])ごとに実行される。
以下説明すると、先ず、S10において、傾斜センサ70の検出軸(X,Y軸)の状態を検出する。
図6は、検出軸の状態検出処理を示すサブルーチン・フローチャートである。以下、図6を参照してその処理について説明すると、先ず、S100で傾斜センサ70のX軸方向の出力値VXGを読み込むと共に、S102に進み、傾斜センサ70のY軸方向の出力値VYGを読み込む。
次いで、S104に進み、S100とS102で読み込んだ出力値VXG,VYGが、傾斜センサ70において通常取り得る範囲内にあるか否か、即ち、正常な値であるか否か判断する。S104で否定されるときはS106,S108に進み、後述するカウンタCNTVXGnとCNTVYGnをリセットすると共に、S110に進んでフラグF_READ1ST(後述)もリセットする。尚、末尾の「n」は、離散系のサンプル時間、具体的には今回プログラムループを意味する。
S104で肯定されるときはS112に進み、フラグF_READ1STのビットが0か否か判断する。フラグF_READ1STは、初期状態(例えば、イグニッションスイッチがオンされたとき)において0に設定されるため、この判断は通例肯定される。
次いで、S114,S116に進み、Xフィルタリング値VXGFLTnおよびYフィルタリング値VYGFLTn(共に後述)を初期化する。具体的には、Xフィルタリング値VXGFLTnにS100で読み込んだ出力値VXGをセットすると共に、Yフィルタリング値VYGFLTnにS102で読み込んだ出力値VYGをセットする。
次いで、S118に進み、フラグF_READ1STのビットを1にセットする。これにより、次回のプログラムループにおいて、S112の判断は否定される。即ち、S114とS116の処理は初回のプログラムループでのみ実行される。
S112で否定されるときはS120に進み、Xフィルタリング値VXGFLTnを算出する。Xフィルタリング値VXGFLTnの算出について、図7を参照して説明する。
図7は、Xフィルタリング値VXGFLTnを説明するためのグラフである。尚、図7においては、横軸にプログラムのループ回数を、縦軸に電圧値をとって示す。
図示の如く、前回のプログラムループで算出されたXフィルタリング値VXGFLTn−1(但し、2回目のプログラムループの場合は、1回目のプログラムループにおいてS114でセットされた値)に今回のプログラムループで読み込んだ(検出された)出力値VXGを加算して2で除した値を今回のXフィルタリング値VXGFLTnとする。このように、Xフィルタリング値VXGFLTnは、傾斜センサ70から出力されるX軸方向の出力値VXGの加重平均値である。尚、図7に示される出力値VXGなどの数値は、Xフィルタリング値VXGFLTnを説明するために示した例である。
図6の説明に戻ると、次いで、S122に進み、今回のプログラムループで算出されたXフィルタリング値VXGFLTnとS100で検出された出力値VXGとの差(換言すれば所定時間ごとに検出される出力値VXGとXフィルタリング値VXGFLTnの最新値の差)を求め、所定値#VGWNDWと求めた差の絶対値を比較し、求めた差の絶対値が所定値#VGWNDW未満か否か判断する。即ち、S122の処理は、傾斜センサ70のX軸方向の出力値VXGが、Xフィルタリング値VXGFLTn(加重平均値)に対してほぼ同一の値であるか否か判断するものである。尚、前記した所定値#VGWNDWは、出力値VXGとXフィルタリング値VXGFLTnがほぼ同一であるか否か判断できる値に設定され、この実施例においては0.3[V]とした。
S122で肯定されるときはS124に進んでカウンタCNTVXGnを前回値CNTVXGn−1に1つインクリメントしてセットする一方、否定されるときはS126に進み、カウンタCNTVXGnをリセットする。
次いで、S128以降に進み、前述したS120からS126までの処理を、傾斜センサ70から出力されるY軸方向の出力値VYGに対して同様に行う。具体的には、S128においてYフィルタリング値VYGFLTnを算出する。Yフィルタリング値VYGFLTnは、前述したXフィルタリング値VXGFLTnと同様、前回のYフィルタリング値VYGFLTn−1に今回検出された出力値VYGを加算して2で除した値を今回のYフィルタリング値VYGFLTnとする。このように、Yフィルタリング値VYGFLTnは、傾斜センサ70から出力されるY軸方向の出力値VYGの加重平均値である。
次いで、S130に進み、今回のプログラムループで算出されたYフィルタリング値VYGFLTnとS102で検出された出力値VYGとの差(換言すれば所定時間ごとに検出される出力値VYGとYフィルタリング値VYGFLTnの最新値の差)を求め、所定値#VGWNDWと求めた差の絶対値を比較し、求めた差の絶対値が所定値#VGWNDW未満か否か判断する。即ち、S130の処理は、傾斜センサ70のY軸方向の出力値VYGが、Yフィルタリング値VYGFLTn(加重平均値)に対してほぼ同一の値であるか否か判断するものである。
S130で肯定されるときはS132に進んでカウンタCNTVYGnを前回値CNTVYGn−1に1つインクリメントしてセットする一方、否定されるときはS134に進み、カウンタCNTVYGnを0にリセットする。
図5フローチャートの説明に戻ると、次いで、S12に進み、鉛直軸に対する車両(正確には、車両に取り付けられた傾斜センサ70)の初期傾斜角度を学習(算出)する。
図8は、初期傾斜角の学習処理を示すサブルーチン・フローチャートである。以下、図8を参照してその処理について説明すると、先ず、S200でフラグF_ANGCREFが1か否か、具体的には、学習許可があるか否か判断する。このフラグF_ANGCREFは、初期状態(例えば、イグニッションスイッチがオンされたとき)において1にセットされるため、S200での判断は通例肯定される。
S200で肯定されると、S202に進んで上記したカウンタCNTVXGnが所定値#CNTVXGより大きいか否か判断する。所定値#CNTVXGは、例えば100に設定される。即ち、S202の処理は、傾斜センサ70のX軸方向の出力値VXGが、所定期間(具体的には、1[sec])ほぼ同一であるか否か判断するものである。
S202で肯定されるときはS204に進み、前記したカウンタCNTVYGnが所定値#CNTVYGより大きいか否か判断する。所定値#CNTVYGは、例えば、所定値#CNTVXGと同様、100に設定される。即ち、S204の処理は、傾斜センサ70のY軸方向の出力値VYGが、所定期間(具体的には、1[sec])ほぼ同一であるか否か判断するものである。
上記したS202,S204で否定されるときは、以降の処理をスキップする一方、S204で肯定されるときはS206に進み、傾斜センサ70からの出力値VXGが所定値#VGMEANより大きいか否か判断する。所定値#VGMEANは、傾斜センサ70の中間電圧(2.5[V])に設定される。
S206で肯定されるときはS208に進み、フラグF_ANGXREF(後述)を0にリセットする一方、否定されるときはS210に進んでフラグF_ANGXREFを1にセットする。
次いで、S212に進み、傾斜センサ70の鉛直軸に対するX軸方向の初期傾斜角ANGXREFを算出する。X軸初期傾斜角ANGXREFは、以下に示す式(1)で算出する。
ここで、#GVRATEは、図4に示した傾斜センサ70のセンサ特性グラフにおける傾きであり、具体的には50に設定される。
尚、この実施例においては、鉛直軸に対する車両の傾斜状態を示す値を出力する傾斜センサとして角度センサを用いたため、X軸初期傾斜角ANGXREFを式(1)によって求めたが、角度センサに代えて加速度センサを用いることもできる。その場合は、下記の式(1)´によってX軸初期傾斜角ANGXREFを算出することができる。
式(1)´において、VXG´は加速度センサから出力される出力値であると共に、#VGMEAN´,#GVRATE´は、加速度センサの特性に応じて適宜に設定される、式(1)と同様な所定値である。
次いで、S214に進み、傾斜センサ70からの出力値VYGが前記した所定値#VGMEANより大きいか否か判断する。S214で肯定されるときはS216に進んでフラグF_ANGYREFを0にリセットする一方、否定されるときはS218に進み、フラグF_ANGYREFを1にセットする。
ここで、上記したフラグF_ANGXREFとフラグF_ANGYREFについて、図9を参照して説明する。
図9は、図8に示すフラグF_ANGXREFとフラグF_ANGYREFを説明するための説明図である。
フラグF_ANGXREFが0のとき、即ち、出力値VXGが所定値#VGMEANより大きく、傾斜センサ70が進行方向に向かって右側(正確には、鉛直軸(Z軸)に対してX軸の正方向)に傾斜すると共に、フラグF_ANGYREFが0のとき、即ち、出力値VYGが所定値#VGMEANより大きく、傾斜センサ70が進行方向側(正確には、鉛直軸(Z軸)に対してY軸の正方向)にも傾斜するときは、傾斜センサ70が、初期状態において図9に示した「第1象限」側に傾斜していることを意味する。
また、フラグF_ANGXREFが1のとき、即ち、出力値VXGが所定値#VGMEAN以下で傾斜センサ70が進行方向に向かって左側(正確には、鉛直軸に対してX軸の負方向)に傾斜すると共に、フラグF_ANGYREFが0で傾斜センサ70が進行方向側(正確には、鉛直軸に対してY軸の正方向)にも傾斜するときは、傾斜センサ70が、初期状態において「第2象限」側に傾斜していることを意味する。
また、フラグF_ANGXREFが1のときで傾斜センサ70が進行方向に向かって左側(正確には、鉛直軸に対してX軸の負方向)に傾斜すると共に、フラグF_ANGYREFが1のとき、即ち、出力値VYGが所定値#VGMEAN以下で傾斜センサ70が進行方向と逆側(後ろ側。正確には、鉛直軸に対してY軸の負方向)にも傾斜するときは、傾斜センサ70が、初期状態において「第3象限」側に傾斜していることを意味する。
同様に、フラグF_ANGXREFが0で傾斜センサ70が進行方向に向かって右側(正確には、鉛直軸に対してX軸の正方向)に傾斜すると共に、フラグF_ANGYREFが1で傾斜センサ70が進行方向と逆側(後ろ側。正確には、鉛直軸に対してY軸の負方向)にも傾斜するときは、傾斜センサ70が、初期状態において「第4象限」側に傾斜していることを意味する。
図8の説明に戻ると、次いで、S220に進んで傾斜センサ70の鉛直軸に対するY軸方向の初期傾斜角ANGYREFを算出する。このY軸初期傾斜角ANGYREFは、以下に示す式(2)で算出する。
尚、Y軸初期傾斜角ANGYREFについても、X軸初期傾斜角ANGXREF同様、傾斜センサとして加速度センサを用いる場合は、下記の式(2)´によって算出することもできる。
次いで、S222に進み、フラグF_ANGCREFをリセットする。これにより、次回のプログラムループにおいてはS200で否定され、上記したS202からS222までの処理をスキップする。即ち、X軸初期傾斜角ANGXREFとY軸初期傾斜角ANGYREFの算出は、イグニッションスイッチがオンされた後、1回のみ実行される。
図5フローチャートの説明に戻ると、次いで、S14に進み、鉛直軸に対する車両(正確には、車両に取り付けられた傾斜センサ70)の傾斜角を算出する。
図10は、車両の傾斜角を算出する処理を示すサブルーチン・フローチャートである。
先ず、S300において、傾斜センサ70からの出力値VXGが所定値#VGMEANより大きいか否か判断する。S300で肯定されるときはS302に進み、フラグF_ANGXDT(後述)を0にリセットする一方、否定されるときはS304に進んでフラグF_ANGXDTを1にセットする。
次いで、S306に進み、傾斜センサ70の鉛直軸に対するX軸方向の傾斜角ANGXDTを算出する。X軸傾斜角ANGXDTは、以下に示す式(3)によって算出する。
尚、この実施例においては傾斜センサを用いたため、X軸傾斜角ANGXDTを式(3)によって求めたが、傾斜センサとして加速度センサを用いる場合は、下記の式(3)´によって算出することができる。
次いで、S308に進み、傾斜センサ70からの出力値VYGが前記した所定値#VGMEANより大きいか否か判断する。S308で肯定されるときはS310に進んでフラグF_ANGYDTを0にリセットする一方、否定されるときはS312に進み、フラグF_ANGYDTを1にセットする。
ここで、フラグF_ANGXDTとフラグF_ANGYDTについて説明する。これらは、前述したフラグF_ANGXREFとフラグF_ANGYREF同様、各フラグのビットが0および1のいずれにセットされているかに基づき、傾斜センサ70が、図9に示した第1から第4象限の内、どちら側に傾斜しているかを判断するフラグである。
具体的には、フラグF_ANGXDTが0、かつフラグF_ANGYDTが0のときは、傾斜センサ70が「第1象限」側に傾斜すると共に、フラグF_ANGXDTが1、かつフラグF_ANGYDTが0のときは、傾斜センサ70は「第2象限」側に傾斜していることを意味する。さらに、フラグF_ANGXDTが1、かつフラグF_ANGYDTが1のときは、傾斜センサ70が「第3象限」側に傾斜すると共に、フラグF_ANGXDTが0、かつフラグF_ANGYDTが1のときは、傾斜センサ70は「第4象限」側に傾斜していることを意味する。
図10の説明を続けると、次いで、S314に進んで傾斜センサ70の鉛直軸に対するY軸方向の傾斜角ANGYDTを算出する。このY軸傾斜角ANGYDTは、以下に示す式(4)によって算出する。
尚、Y軸傾斜角ANGYDTについても、X軸傾斜角ANGXDT同様、傾斜センサとして加速度センサを用いる場合は、下記の式(4)´によって算出することもできる。
次いで、S316に進んでフラグF_ANGXDTのビットが、フラグF_ANGXREFのビットと同一であるか否か、即ち、現在の傾斜センサ70の傾斜している方向と初期状態において傾斜センサ70の傾斜した方向が同一であるか否か判断する。S316で肯定されるときは、X軸傾斜角ANGXDTとX軸初期傾斜角ANGXREFの符号が同一であるため、S318に進み、X軸傾斜補正角ANGXCRを以下の式(5)によって算出する。
一方、S316で否定、即ち、フラグF_ANGXDTのビットとフラグF_ANGXREFのビットが相違すると判断されるときは、X軸傾斜角ANGXDTとX軸初期傾斜角ANGXREFの符号が相違するため、S320に進み、X軸傾斜補正角ANGXCRを以下の式(6)から算出する。
X軸傾斜補正角ANGXCRは、上記したように、今回のプログラムループで算出されたX軸傾斜角ANGXDTとX軸初期傾斜角ANGXREFとの変化量、即ち、傾斜センサ70の鉛直軸に対するX軸方向の変化量を示す値である。また、X軸傾斜補正角ANGXCRは、上記した式(5)あるいは(6)から分かるように、X軸初期傾斜角ANGXREFに基づいてX軸傾斜角ANGXDTを補正して算出される。
次いで、S322に進んでフラグF_ANGYDTのビットが、フラグF_ANGYREFのビットと同一であるか否か、即ち、現在の傾斜センサ70の傾斜している方向と初期状態において傾斜センサ70の傾斜した方向が同一であるか否か判断する。S322で肯定されるときは、Y軸傾斜角ANGYDTとY軸初期傾斜角ANGYREFの符号が同一であるため、S324に進み、Y軸傾斜補正角ANGYCRを以下の式(7)によって算出する。
一方、S322で否定されるときは、Y軸傾斜角ANGYDTとY軸初期傾斜角ANGYREFの符号が相違するため、S326に進み、Y軸傾斜補正角ANGYCRを以下の式(8)から算出する。
Y軸傾斜補正角ANGYCRは、上記したように、今回のプログラムループで算出されたY軸傾斜角ANGYDTとY軸初期傾斜角ANGYREFとの変化量、即ち、傾斜センサ70の鉛直軸に対するY軸方向の変化量を示す値である。また、Y軸傾斜補正角ANGYCRは、上記した式(7)あるいは(8)から分かるように、Y軸初期傾斜角ANGYREFに基づいてY軸傾斜角ANGYDTを補正して算出される。
次いで、S328に進んで上記ステップで算出されたX軸傾斜補正角ANGXCRとY軸傾斜補正角ANGYCRを合成してベクトル合成値ANGVCTRを算出する。具体的に説明すると、ベクトル合成値ANGVCTRは、図11に示すように、傾斜センサ70のX軸方向に作用する加速度のベクトルXVCTRとY軸方向に作用する加速度のベクトルYVCTRを合成して得られる値である。
ベクトルXVCTRは、傾斜センサ70の鉛直下向きに作用する重力加速度gを基準としたとき、X軸傾斜補正角ANGXCRの正弦で算出できる。また、ベクトルYVCTRも、傾斜センサ70の鉛直下向きに作用する重力加速度gを基準としたとき、Y軸傾斜補正角ANGYCRの正弦で算出できる。具体的には、各ベクトルは式(9)によって算出される。
尚、重力加速度gは1[G]で表されるため、以下において省略する。
従って、ベクトル合成値ANGVCTRは、ベクトルXVCTRとベクトルYVCTRに基づき、以下の式(10)によって算出することができる。
次いで、S330に進み、鉛直軸に対する車両(正確には、車両に取り付けられた傾斜センサ70)の傾斜角ANGLTIPを算出する。傾斜角ANGLTIPは、S328で算出されたベクトル合成値ANGVCTRの逆正弦関数(アークサイン)で算出できる。具体的には、式(11)によって算出される。尚、傾斜角ANGLTIPは、初期状態において0に設定される。
尚、この実施例にあっては、S330の処理において、傾斜角ANGLTIPを上記式(11)によって算出するようにしたが、図12に示す如く、ベクトル合成値ANGVCTRに対する傾斜角ANGLTIPの特性を予めマップ化しておき、S330において、得られたベクトル合成値ANGVCTRに基づいて前記マップを検索することで、傾斜角ANGLTIPを算出するようにしてもよい。
図5フローチャートの説明に戻ると、次いで、S16に進み、車両の状態、具体的には、車両の転倒および衝突などの異常状態を検出する。
図13は、車両の状態を検出する処理を示すサブルーチン・フローチャートである。以下、図13を参照してその処理について説明すると、先ず、S400でベクトル合成値ANGVCTRが、衝突しきい値#SMASHJUDより大きいか否か判断する。衝突しきい値#SMASHJUDは、車両が衝突したと判断できる値(例えば、1[G])に設定される。尚、傾斜センサ70は、前述した如く、Y軸が車両の車長方向に対して45度だけ回転させられて車両に取り付けられるため、ベクトル合成値ANGVCTRは、最大で1.4[G]まで算出することが可能である(sin(ANGXCR)=1[G],sin(ANGYCR)=1[G]のとき)。
S400で肯定されるときは車両が衝突したと判断でき、S402に進んでフラグF_SMASHを1にセットする。一方、S400で否定されるときは衝突していないと判断でき、S404に進み、フラグF_SMASHを0にリセットする。
次いで、S406に進み、カウンタCNTVXGnが、前記した所定値#CNTVXGより大きいか否か判断する。即ち、S406の処理は、傾斜センサ70のX軸方向の出力値VXGが、所定期間ほぼ同一であるか否か判断するものである。
S406で否定されるときは、以降の処理をスキップする一方、肯定されるときはS408に進み、前記カウンタCNTVYGnが所定値#CNTVYGより大きいか否か判断する。S408の処理は、S406の処理と同様、傾斜センサ70のY軸方向の出力値VYGが、所定期間ほぼ同一であるか否か判断するものである。
S408で否定されるときは、以降の処理をスキップする一方、肯定されるときはS410に進み、前記算出された傾斜角ANGLTIPが転倒しきい値#ANGLTIPより大きいか否か判断する。尚、転倒しきい値#ANGLTIPは、車両が転倒していると判断できる角度(例えば、55[°])に設定される。
S410で肯定されるときは車両が転倒したと判断でき、S412に進んでフラグF_ANGLTIPを1にセットする一方、否定されるときは不転倒と判断でき、S414に進み、フラグF_ANGLTIPを0にリセットする。
上記のようにして車両の転倒および衝突の少なくともいずれかが検出されたとき、即ち、フラグF_SMASHあるいはフラグF_ANGLTIPが1にセットされているとき、図示しない別のルーチンによってエンジン20を停止させる処理を実行する。具体的には、燃料ポンプ40、インジェクタ44、および点火コイル42の動作を停止させる制御信号を出力する。これによりエンジン20は停止させられる。さらに、車両の転倒および衝突の少なくともいずれかが検出されたとき、図示しない別のルーチンによって車両の転倒を報知するようなランプ(例えば、車両のハザードランプなど)を点灯させる処理も実行する。
このように、この実施例に係る車両の状態検出装置にあっては、鉛直軸に対する車両のX,Y軸からなる水平面の傾斜状態を示すX軸方向の出力値とY軸方向の出力値(出力値VXG,VYG)を出力する傾斜センサ70を備えると共に、X,Y軸方向の出力値に基づいて車両の運転開始時における初期傾斜角(ANGXREF,ANGYREF)と車両の運転中における車両運転中傾斜角(ANGXDT,ANGYDT)を算出し、算出された初期傾斜角および車両運転中傾斜角に基づいて車両の傾斜補正角(ANGXCR,ANGYCR)を算出し、算出された傾斜補正角に基づいて車両のX,Y軸方向に作用する加速度ベクトル(XVCTR,YVCTR)を計算式(9)によって算出すると共に、算出された加速度ベクトルに基づいて車両のX,Y軸からなる水平面の傾斜状態を示す値のベクトル合成値ANGVCTRを計算式(10)によって算出し、算出されたベクトル合成値ANGVCTRに基づいて鉛直軸に対する車両の合成傾斜角ANGLTIPを算出すると共に、算出されたベクトル合成値と合成傾斜角の少なくともいずれか一方に基づいて車両の状態、具体的には、車両の転倒や衝突などの異常状態を検出するように構成、即ち、傾斜センサ70から出力された2つの値のベクトル合成値ANGVCTRから車両の状態を検出するように構成したので、傾斜センサ70を取り付ける際、高い精度を必要とすることなく(換言すれば、傾斜センサが所期の位置に取り付けられていない場合であっても)、車両の状態を正確に検出することができる。
また、算出されたベクトル合成値ANGVCTRから鉛直軸に対する車両の傾斜角ANGLTIPを算出し、その傾斜角ANGLTIPから車両の転倒を判断すると共に、ベクトル合成値ANGVCTRが1[G]より大きいとき、車両の衝突と判断するように構成したので、車両の状態をより正確に検出することができる。
また、前記した車両の状態が、車両の転倒および衝突の少なくともいずれかであるように構成したので、上記した効果を同様に得ることができる。
また、傾斜センサ70は、Y軸が車両の車長方向に対して所定の角度α回転させられて車両に取り付けられるように構成、即ち、傾斜センサ70を、Y軸が車両の車長方向に対して所定の角度αだけ積極的に回転させて車両に取り付けるように構成したので、前記したベクトル合成値ANGVCTRを容易に算出することができる。
また、前記した所定の角度αを30度から60度の範囲内、より正確には、45度とするように構成したので、ベクトル合成値ANGVCTRを最大で1.4Gまで算出することができ、よって車両の状態(具体的には、車両の衝突)をより一層正確に検出することができる。
また、車両の転倒および衝突の少なくともいずれかが検出されたとき、車両に搭載された内燃機関を停止させるように構成したので、車両が転倒あるいは衝突した場合、直ちにエンジン20を停止させることができる。また、傾斜センサ70の出力に基づいて車両が第1から第4象限のうちいずれ側に傾斜しているかを判断するように構成したので、車両の状態をより一層正確に検出することができる。
以上の如く、この発明の実施例にあっては、鉛直軸に対する車両(自動二輪車10)のX,Y軸からなる水平面の傾斜状態を示すX軸方向の出力値とY軸方向の出力値を出力する傾斜センサ70、前記X,Y軸方向の出力値に基づいて前記車両の運転開始時における前記鉛直軸に対する前記車両の初期傾斜角(ANGXREF,ANGYREF)を算出すると共に、前記車両の運転中における前記鉛直軸に対する前記車両の車両運転中傾斜角(ANGXDT,ANGYDT)を算出する傾斜角算出手段(ECU34。図8のS212,S220、図10のS306,S314)、前記算出された初期傾斜角および車両運転中傾斜角に基づいて前記鉛直軸に対する前記車両の傾斜補正角(ANGXCR,ANGYCR)を算出する傾斜補正角算出手段(ECU34。図10のS316〜S326)、前記算出された傾斜補正角に基づいて前記鉛直軸に対する前記車両のX,Y軸方向に作用する加速度ベクトル(XVCTR,YVCTR)を算出すると共に、前記算出された加速度ベクトルに基づいて前記鉛直軸に対する前記車両のX,Y軸からなる水平面の傾斜状態を示す値のベクトル合成値ANGVCTRを算出するベクトル合成値算出手段(ECU34。図10のS328)、前記算出されたベクトル合成値に基づいて前記鉛直軸に対する前記車両の合成傾斜角ANGLTIPを算出する合成傾斜角算出手段(ECU34。図10のS330)、および前記算出されたベクトル合成値と合成傾斜角の少なくともいずれか一方に基づいて前記車両の状態を検出する状態検出手段を備えるように構成した(ECU34。図13のS400〜S414)。
また、前記車両の状態が、前記車両の転倒および衝突の少なくともいずれかであるように構成した。
また、前記傾斜センサ70は、前記Y軸が前記車両の車長方向に対して所定の角度α回転させられて前記車両に取り付けられるように構成した。
また、前記所定の角度を30度から60度の範囲内とするように構成した。
また、前記車両の転倒および衝突の少なくともいずれかが検出されたとき、前記車両に搭載された内燃機関を停止させる停止手段を備えるように構成した(ECU34)。また、前記状態検出手段は、前記傾斜センサ70の出力、即ち、X軸方向の出力値VXGとY軸方向の出力値VYGに基づいて、前記車両が第1から第4象限のうちいずれ側に傾斜しているかを判断するように構成した(ECU34。図8のS206〜S210,S214〜S218、図10のS300〜S304,S308〜S312)。
尚、上記において、自動二輪車を例にとって説明したが、それに限られるものではなく、他の車両であってもよい。