以下に、本発明の車両重量推定装置及び車両重量推定方法の実施形態について説明する。
図1〜図3に例示する第一実施形態の車両重量推定装置30は、車両10に搭載されて、その車両10の走行中に変化するパラメータに基づいて車両10の重量を推定する装置である。以下、符号にx、yが付随するものは変数であり、センサなどの検出値や推定値を示し、符号にkが付随するものは時系列を示し、このkはサンプリング周期tsごとに「1」ずつ増加する。
図1に例示するように、車両重量推定装置30が搭載される車両10は、シャーシ11の前方側に運転室(キャブ)12が配置され、シャーシ11の後方側にボディ13が配置されている。
シャーシ11には、エンジン14、クラッチ15、トランスミッション16、プロペラシャフト17、及びディファレンシャルギア18が設置されている。エンジン14の回転動力は、クラッチ15を介してトランスミッション16に伝達される。トランスミッション16で変速された回転動力は、プロペラシャフト17を通じてディファレンシャルギア18に伝達され、後輪である一対の駆動輪19にそれぞれ駆動力として分配される。エンジン14とクラッチ15との間にトルクコンバータを介在させてもよい。
制御装置20は、エンジン14、クラッチ15、トランスミッション16、及び各種センサに一点鎖線で示す信号線を介して電気的に接続されている。各種センサとして、運転室12には、アクセルペダル21の踏み込み量からアクセル開度Axを検出するアクセル開度センサ22、シフトレバー23のレバーポジションPxを検出するポジションセンサ24が設置されている。シャーシ11には、エンジン14の図示しないクランクシャフトの回転速度Nxを検出する回転速度センサ25、車速センサ26、及び、加速度センサ27が設置されている。
制御装置20は、各種情報処理を行うCPU、その各種情報処理を行うために用いられ
るプログラムや情報処理結果を読み書き可能な内部記憶装置、及び各種インターフェースなどから構成されるハードウェアである。
図2に例示するように、制御装置20は、エンジン14、クラッチ15、及びトランスミッション16を制御する制御部28と、車両10の重量を演算する車両重量演算部31と、を各機能要素として有している。この実施形態で、各機能要素は、プログラムとして内部記憶装置に記憶されているが、各機能要素が個別のハードウェアで構成されてもよい。
本発明の車両重量推定装置30は、ポジションセンサ24、回転速度センサ25、車速センサ26、加速度センサ27、制御部28、及び車両重量演算部31から構成されている。そして、車両重量演算部31は、パラメータ取得手段、推定手段、及び維持手段として機能して、それらのセンサの検出値や演算部の演算結果が入力され、各検出値や演算結果に基づいて演算した結果を出力値mxとして出力する。
制御部28は、パラメータ取得手段の一部として機能する機能要素であり、この実施形態では、サンプリング周期tsごとにエンジン14における燃料噴射量Qxを取得する。燃料噴射量Qxは、エンジン14の図示しないインジェクタの噴射時間(駆動パルス)に比例することから噴射時間の合計値から求められる。
制御部28は、アクセル開度センサ22により検出したアクセル開度Axが入力されて、そのアクセル開度Axに基づいて、基準噴射時間を算出する。次いで、制御部28は、車両10に搭載されてエンジン14により駆動する車載装置の駆動の有無、エンジン14から排出された排気ガスを浄化する排気ガス浄化装置の再生の有無などに基づいて、追加噴射時間を算出する。この追加噴射時間に基づいた燃料噴射量が噴射されると、車載装置の駆動力を補ったり、排気ガス浄化装置を再生したりする。次いで、制御部28は、サンプリング周期tsごとに基準噴射時間及び追加噴射時間の合計値に基づいて燃料噴射量Qxを算出する。
制御部28としては、エンジン14における実際に噴射された燃料噴射量Qxを取得できればよく、この構成に限定されない。制御部28としては、図示しないインテークマニホールドの内圧、体積効率、及び要求空燃比から、あるいは、吸入空気量及びエンジン回転速度Nxから基準噴射時間を算出してもよい。車載装置としては、エアコンプレッサやモータジェネレータなどが例示できる。排気ガス浄化装置としては、排気ガス中の粒子状物質を捕集する捕集フィルタが例示できる。
ポジションセンサ24は、パラメータ取得手段の一部として機能する装置であり、車両10の運転者によって操作されるシフトレバー23の位置を電気的に検出することによって運転者が要求するレバーポジションPxを検出する。ポジションセンサ24は、サンプリング周期tsごとにレバーポジションPxに応じたトランスミッション16のギア比ixを検出する。レバーポジションPxとしては、駐車ポジション(Pポジション)、後進ポジション(Rポジション)、ニュートラルポジション(Nポジション)、前進ポジション(Dレンジ)などが例示できる。前進ポジションは、例えば、1速〜6速の複数段が設定されている。各前進ポジションには、1速から段数が上がるごとに小さくなるギア比ixが設定されている。トランスミッション16がAMTで構成されている場合は、ポジションセンサ24の代わりに、制御部28で制御されたトランスミッション16の変速段を読み取る機能を有したものを用いてもよい。また、制御部28の制御信号からトランスミッション16のギア比ixを取得する場合に、そのギア比ixは、車速vxとエンジン回転速度Nxとに基づいて求めることもできる。
車速センサ26は、パラメータ取得手段の一部として機能する装置であり、プロペラシャフト17の回転速度に比例したパルス信号を読み取り、制御装置20の図示しない車速演算処理によりサンプリング周期tsごとに車速vxを取得するセンサである。車速センサ26が回転速度に比例したパルス信号に基づいて車速vxを取得することから、取得された車速vxは、負ではなくゼロ以上の値になる。車速センサ26としては、トランスミッション16の図示しないアウトプットシャフト、駆動輪19、従動輪などの回転速度から車速vxを取得するセンサを用いてもよい。なお、駆動輪19、従動輪などの回転速度から車速vxを取得するセンサを用いる場合には、左右一対の車輪のそれぞれの回転速度を取得して、その平均値を車速vxとするとよい。
加速度センサ27は、パラメータ取得手段の一部として機能する装置であり、車両10の前後方向での速度変化に伴う加速度成分と車両10の姿勢変化に伴う重力加速度成分とによって動作する。加速度センサ27は、サンプリング周期tsごとに、それらを合成した路面に平行な加速度成分、すなわち車両10の前後方向の加速度Gxを取得するセンサである。加速度センサ27としては、機械的変位測定方式、光学的方式、半導体方式などが例示できる。
図3に例示するように、この実施形態で、車両重量演算部31は、各機能要素として、パラメータ取得部32、推定部33、及び維持部34を有している。車両重量演算部31の各機能要素は、プログラムとして内部記憶装置に記憶されているが、各機能要素が個別のハードウェアで構成されてもよい。
パラメータ取得部32は、パラメータ取得手段として機能しており、制御部28及び各センサの検出値が入力される。パラメータ取得部32は、サンプリング周期tsごとに車両10が走行中に変化するパラメータとして第一パラメータΦxと第二パラメータΦyとを推定部33に出力し、駆動トルクTwを維持部34に出力する機能要素である。パラメータ取得部32は、第一パラメータ算出ブロック32a、第二パラメータ算出ブロック32b、及びエンジントルク算出ブロック32cを有している。
第一パラメータ算出ブロック32aは、加速度Gxが入力されて、第一パラメータΦxを算出する機能要素である。第二パラメータ算出ブロック32bは、車速vx、トランスミッション16のギア比ix、及びエンジントルクTeが入力されて、第二パラメータΦyを算出する機能要素である。エンジントルク算出ブロック32cは、エンジン回転速度Nx及び燃料噴射量Qxが入力されて、エンジン14から出力されるエンジントルクTeを算出する機能要素である。
エンジントルクTeは、エンジン回転速度Nx及び燃料噴射量Qxから推定される推定トルクであり、エンジン14から出力されて、実際に駆動輪19に伝達される実トルクTWよりも大きくなる場合がある。このような場合としては、エンジン14により駆動する図示しないエアコンプレッサが作動する時や、エンジン14から排出された排気ガスのPMを捕集する図示しない捕集フィルタを強制的に再生する時などの過渡状態や高負荷状態のときが例示される。
つまり、エンジン14から出力されて駆動輪19に伝達される駆動トルクTwを、エンジントルクTeに基づいて推定すると、上記の場合に、推定した駆動トルクTwと実トルクTWとは乖離することになる。つまり、過渡状態のエンジントルクTeをエンジン回転速度Nx及び燃料噴射量Qxに基づいたマップから推定する場合に、実トルクWと推定した駆動トルクTwとは一致しない。
推定部33は、推定手段として機能しており、第一パラメータΦx、第二パラメータΦ
yが入力されて、それらとサンプリング周期tsにおける一つ前に推定した前回値mx(k−1)とに基づいて、平滑化処理を用いて推定した推定値mx(k)を出力する機能要素である。推定部33は、RLS推定ブロックから構成されている。RLS推定ブロックは、推定演算における変数をサンプリング周期tsごとに更新している。つまり、RLS推定ブロックは、新たなパラメータが入力される時に、前回値mx(k−1)、共分散行列P(k−1)、RLSアルゴリズムで計算されるゲインK(k−1)が記憶された状態になっている。
維持部34は、維持手段として機能しており、パラメータ取得部32と推定部33との間に介在している。維持部34は、サンプリング周期tsごとに判定結果に基づいてパラメータ取得部32で取得したパラメータを推定部33に入力する機能要素であり、換言すると判定結果に基づいて、推定部33における推定を許可及び禁止する機能要素である。具体的に、維持部34は、各パラメータが入力されて、エンジントルクTeに基づいて、第一パラメータΦxと第二パラメータΦyとを推定部33に出力するか否かを選択する。維持部34は、チェックブロック34a、及びアサーションブロック34bを有している。
チェックブロック34aは、サンプリング周期tsごとにエンジントルク算出ブロック32cから出力されたエンジントルクTeが入力されて、エンジントルクTeに基づいた駆動トルクTwが実トルクTWから乖離しているか否かを判定する機能要素である。具体的に、チェックブロック34aは、エンジントルクTeが予め設定した第一閾値Ta以下に収まっているか否かによって、駆動トルクTwが実トルクTWから乖離しているか否かを判定する。チェックブロック34aは、駆動トルクTwが実トルクTWに等しい場合は、二値信号として「1」(真を示す信号)を出力する。一方で、チェックブロック34aは、駆動トルクTwが実トルクTWから乖離した場合は、二値信号として「0」(偽を示す信号)を出力する。
なお、ここでいう「等しい」とは数値が完全に一致していることに加えて、一致すると見做せる場合も含む。つまり、推定した駆動トルクTwと実トルクTWとの差分が所定の範囲内に収まっていればよい。また、推定した駆動トルクTwが実トルクTWよりも下回る場合は、例えば、ハイブリッド車両においてモータジェネレータが駆動して、駆動力を補っている場合が例示できる。この場合は、エンジン14から駆動輪19に伝達される駆動トルクTwとモータジェネレータから駆動輪19に伝達されるトルクの総和が実トルクTWに等しくなると見做せる。
アサーションブロック34bは、各パラメータとチェックブロック34aから出力された二値信号とが入力されて、サンプリング周期tsごとにその二値信号に基づいて各パラメータを推定部33に出力するか否かを判定する機能要素である。具体的に、アサーションブロック34bは、二値信号が「1」の場合は、推定部33への第一パラメータΦx及び第二パラメータΦyの入力を許可する。一方、二値信号が「0」の場合は、推定部33への第一パラメータΦx及び第二パラメータΦyの入力を禁止する。
次に、この実施形態の推定部33による推定値mx(k)の推定演算について説明する。推定部33は、各パラメータ及び前回値mx(k−1)に基づいて、車両10の前後方向の運動方程式を伝達関数として見做して、平滑化処理として適応アルゴリズムを用いて推定値mx(k−1)を推定する。適応アルゴリズムとしては、RLSアルゴリズム(逐次最小二乗法アルゴリズム)を用いている。
車両10の前後方向の運動方程式は、下記の数式(1)で表される。数式(1)において、vx’は車速vxを時間微分した微分値を、Twは駆動輪19に伝達される駆動トル
クを、rwは駆動輪19の車輪径を、Δmxは後述する回転部分相当質量を、Bは定数を、gは重力加速度を、μは転がり抵抗係数をそれぞれ示している。定数Bは、「0.5」、空気密度ρ、車両10の前面投影面積Af、及び空気抵抗係数Cdを乗算した定数である。車輪径rw、定数B、転がり抵抗係数μは、車両10に固有の値として求められる。
上記の数式(1)を変形すると、車両10の重量mxは、下記の数式(2)に表される。
上記の数式(2)は、第一パラメータΦxを入力値、第二パラメータΦyを出力値、推定値mxを変数とした伝達関数として見做せる。そこで、その伝達関数(Φy(k)=Φx(k)・mx(k))を、RLSアルゴリズムに従って自己適応させて、推定値mx(k)を推定する。推定値mx(k)は以下の数式(3)〜(5)で表される。以下の数式で、mx(k−1)はサンプリング周期tsにおける一つ前に推定した推定値である前回値を、K(k)はRLSアルゴリズムで計算されるゲインを、P(k)は共分散行列を、Iは単位行列を、「T」は転置行列をそれぞれ示している。
共分散行列P(k)の初期値P(0)を定めれば、第一パラメータΦxにより、上記の数式(5)に基づいて共分散行列P(k)を、及び数式(4)に基づいてゲインK(k)をそれぞれ算出できる。つまり、新しく第一パラメータΦx及び第二パラメータΦyが得られる度に、共分散行列P(k)とゲインK(k)を新たに更新する。そして、それらと数式(3)に基づいて、直前に推定した前回値mx(k−1)を修正していく方式で推定値mx(k)を算出できる。
初期値P(0)は、定数αと単位行列Iとの積で表される。定数αとしては、通常1000程度の値が用いられるが、ノイズが大きい場合には定数αを小さく設定するとよい。定数αは、ノイズの大きさにより決定される。初期値m(0)としては、例えば、運転者や荷を除いた空車時の車両重量、最大積載時の車両総重量、あるいは推定値mx(k)の平均値を用いるとよい。
共分散行列P(k)が大きくなると、推定値mx(k)は真値から遠ざかり、共分散行列P(k)が小さく収束すると、推定値mx(k)は真値に近づく。
このように、上記の数式(2)を伝達関数として見做して、推定値mx(k)を適応アルゴリズムにより推定することで、推定値mx(k)を逐次、平滑化処理できる。これにより、真値への収束の高速化と、雑音、外乱、あるいは各センサの検出値の統計的性質の変化などに対するロバスト性の向上には有利になり、推定誤差を低減できる。これに伴い、車両10の重量を高精度に推定できる。
この実施形態では、適応アルゴリズムのうちのRLSアルゴリズムを用いることで、上記の数式(3)〜数式(5)により推定値mx(k)を求めることができる。これにより、オンライン推定には有利になり、リアルタイムで推定値mx(k)を算出できる。また、各センサで取得した検出値に対してローパスフィルタによりノイズを除去する方式と比して、車両10の重量の推定の応答性の確保には有利になる。
加えて、サンプリング周期tsごとに前回値mx(k−1)、共分散行列P(k−1)、RLSアルゴリズムで計算されるゲインK(k−1)を更新するだけでよく、制御装置20の内部記憶装置に記憶させる数値を最小限にできる。それ故、制御装置20の内部記憶装置に車両10の不確定な走行期間に対して無限の記憶領域を確保しなければならないオフライン推定(バッチ処理推定)による方式に比して、推定に要する記憶容量の削減には有利になる。なお、ここでいうオフライン推定とは、一括処理最小二乗法や、全ての推定値mx(0)〜mx(k)の平均値を算出する方法などが例示できる。
さらに、RLSアルゴリズムを用いることで、サンプリング周期tsごとに推定値mx(k)を算出できる。これにより車両10の状態(例えば、ギア比ixや駆動トルクTw)が変化したときや所定の距離を走行したときに推定する方式に比して、リアルタイムでの推定には有利になる。
次に、本発明の車両重量推定方法について、図4のフロー図を参照しながら、車両重量演算部31の各機能として説明する。以下の車両重量推定方法は、車両10の制御装置20が通電すると開始されて、サンプリング周期tsごとに繰り返し行われてリアルタイムに車両10の重量を推定する。つまり、スタートからリターンまでを一つのサンプリング周期tsで処理する。そして、制御装置20が停電すると終了する。
スタートすると、車両重量演算部31は、パラメータ取得部32の機能により、車両1
0の走行中に変化するパラメータを取得する(S110)。パラメータは、第一パラメータΦx、第二パラメータΦy、及びエンジントルクTeである。
具体的に、パラメータ取得部32は、制御部28及び各センサにより検出した検出値からそれらのパラメータを取得する。まず、制御部28により燃料噴射量Qxを、ポジションセンサ24によりトランスミッション16のギア比ixを、回転速度センサ25によりエンジン回転速度Nxを、車速センサ26により車速vxを、加速度センサ27により加速度Gxをそれぞれ取得する。
次いで、第一パラメータ算出ブロック32aは、各ブロックにより下記の数式(6)に示す第一パラメータΦxを算出する。
加速度Gxは、上述したとおり車両10の前後方向での速度変化に伴う加速度成分と車両10の姿勢変化に伴う重力加速度成分とを合成した路面に平行な加速度成分である。つまり、加速度Gxは、微分値vx’と重力加速度成分g・sinβとを加算した値になる。したがって、数式(6)は、上記の数式(2)の分子と同義である。
第一パラメータΦxの変数としては、上記の数式(2)に示すように、加速度Gxの代わりに、車速vxの微分値vx’と、車両10の走行している路面勾配に基づいた重力加速度成分g・sinβとを用いてもよい。この場合は、加速度センサ27の代わりに、車速センサ26と車両10が走行している路面勾配を取得する勾配センサや路面勾配を演算する機能要素を用いるとよい。
次いで、エンジントルク算出ブロック32cは、燃料噴射量Qxとエンジン回転速度Nxとに基づいて、エンジン14から出力される実際のエンジントルクTeを算出する(S120)。
図5に例示するように、エンジン14から出力されるエンジントルクTeは、エンジン回転速度Nx及び燃料噴射量Qxのそれぞれに対して正の関係にあり、エンジン回転速度Nxが速く且つ燃料噴射量Qxが大きいほど、大きくなる。このマップデータは予め実験や試験により求めておき、データブロックであるエンジントルク算出ブロック32cに記憶させておく。
次いで、第二パラメータ算出ブロック32bは、下記の数式(7)を用いて、駆動輪19に伝達される駆動トルクTwを算出する。数式(7)において、ifはディファレンシャルギア18のギア比を、ηはギア比で異なる伝達効率をそれぞれ示している。
次いで、第二パラメータ算出ブロック32bは、ルックアップテーブルブロック32dにより回転部分相当質量Δmxを算出する。
回転部分相当質量Δmxは、変数であるギア比ixに応じて決まる値である。ルックアップテーブルブロック32dは、ギア比ixごとの複数の回転部分相当質量Δmxが設定されており、ギア比ixに応じたものを選択する。回転部分相当質量Δmxは、空車時の車両重量、ギア比ix、及び所定の係数との関係から算出してもよい。
次いで、第二パラメータ算出ブロック32bは、各ブロックにより下記の数式(8)に示す第二パラメータΦyを算出する。
この実施形態では、第二パラメータΦyを上記の数式(8)で示したが、エンジン14、クラッチ15、トランスミッション16、ディファレンシャルギア18などに働く摩擦トルクTfを考慮してもよい。この場合は、駆動トルクTwから摩擦トルクTfを減算した値を駆動輪19の車輪径rwで除算するとよい。摩擦トルクTfを考慮すると、推定精度の向上には有利になる。
以上のように各パラメータを取得すると、次いで、車両重量演算部31は、維持部34のチェックブロック34aの機能により、エンジントルクTeが第一閾値Ta以下に収まっているか否かを判定する(S130)。
第一閾値Taは、エンジントルクTeに基づいて算出した駆動トルクTwと、実際に駆動輪19に伝達されて車両10の走行に使用される実トルクTWとの差が大きく乖離したことを判定可能な値に設定されている。換言すると、第一閾値Taは、エンジン14により駆動するエアコンプレッサが作動する時や、エンジン14から排出された排気ガスのPMを捕集する捕集フィルタを強制的に再生する時などのエンジン14が高負荷になる状態を判定可能な値に設定されている。より具体的に、第一閾値Taは、実トルクTWの最大値TW(max)に比例した値に設定されている。つまり、第一閾値Taは、上記の数式(7)の駆動トルクTwに最大値TW(max)を、エンジントルクTeに第一閾値Taをそれぞれ代入して算出される値に設定されている。
制御部28によりインジェクタから追加噴射が行われると燃料噴射量Qxは増加する。この燃料噴射量Qxの増加に伴って、エンジントルクTeは大きくなるが、その増加分のトルクの全てが駆動輪19に伝達されない。上述したとおり、追加噴射により増加したトルクは、エアコンプレッサやモータジェネレータなどの車載装置を駆動したり、捕集フィルタなどの排気ガス浄化装置を強制再生したりすることに利用される。
実トルクTWの最大値TW(max)は、アクセル開度Axが全開(100%)の場合の値である。なお、実トルクTWは、車両10の走行に寄与するトルクのみを示している。つまり、実トルクTWは、エアコンプレッサやモータジェネレータの駆動の有無、捕集フィルタの強制再生の有無などに基づいた追加噴射によるトルクは含まない。但し、エンジン14により恒常的に駆動する装置に関しては、実トルクTWに含むこともできる。このエンジン14により恒常的に駆動する装置としては、冷却ファンや油圧ポンプなどが例示できる。
このステップでエンジントルクTeが第一閾値Ta以下に収まっていると判定すると、
車両重量演算部31は、維持部34のアサーションブロック34bの機能により、第一パラメータΦx及び第二パラメータΦyを推定部33に入力する。具体的に、アサーションブロック34bでは、エンジントルクTeが第一閾値Ta以下に収まっている場合に、チェックブロック34aから出力された二値信号である「1」が入力されて、第一パラメータΦx及び第二パラメータΦyを推定部33に出力する。
次いで、車両重量演算部31は、推定部33の上述した推定方法により、推定値mx(k)を推定する(S140)。次いで、車両重量演算部31は、入力された推定値mx(k)を出力値mxとして出力する(S150)。次いで、スタートへ戻る。
一方、エアコンプレッサやモータジェネレータを駆動する、あるいは捕集フィルタを強制再生することで、エンジントルクTeが増加する。そこで、上記のステップでエンジントルクTeが第一閾値Taを超えたと判定すると、車両重量演算部31は、維持部34のアサーションブロック34bの機能により、第一パラメータΦx及び第二パラメータΦyの出力を禁止する。具体的に、アサーションブロック34bでは、エンジントルクTeが第一閾値Taを超えた場合に、チェックブロック34aから発信された二値信号である「0」が入力されて、第一パラメータΦx及び第二パラメータΦyの出力を禁止する。
つまり、車両重量演算部31は、推定部33に第一パラメータΦx及び第二パラメータΦyの入力が禁止されるので、サンプリング周期tsを一つだけ遅延させておいた範囲内推定値として前回値mx(k−1)を出力値mxとして出力する(S160)。そして、スタートへ戻る。
上記の推定方法によると、駆動トルクTwが実トルクTWから乖離した場合は、車両10の重量として乖離する前に取得したパラメータに基づいて推定した乖離前推定値として前回値mx(k−1)を維持する。
図6に例示するように、時刻t(0)までは、サンプリング周期tsごとに推定値mx(k)を車両10の重量として出力する。時刻t(0)で、エアコンプレッサやモータジェネレータを駆動する、あるいは捕集フィルタを強制再生することで、エンジントルクTeが増加する。このとき、エンジントルクTeが第一閾値Taを超えると、駆動トルクTwが実トルクTWから乖離したと見做す。次いで、時刻t(n)で、エアコンプレッサやモータジェネレータの駆動が停止する、あるいは捕集フィルタの強制再生が停止することで、エンジントルクTeが減少する。このとき、エンジントルクTeが第一閾値Ta以下になると、駆動トルクTwが実トルクTWと同等になったと見做す。この時刻t(0)から時刻t(n)までの間は、維持部34により乖離前推定値である前回値mx(k−1)を保持して、車両10の重量として出力する。時刻t(n)以降は、サンプリング周期tsごとに推定値mx(k)を車両10の重量として出力する。
このように、実際にエンジン14から出力されるエンジントルクTeが第一閾値Taを超えた場合は、駆動トルクTwが実トルクTWから乖離したと見做して、乖離する前に推定した乖離前推定値として前回値mx(k−1)を車両10の重量として出力する。それ故、エンジン14で発生するエンジントルクTeに基づいて算出した駆動トルクTwと実トルクTWとの差が少なくなるまでは、前回値mx(k−1)を出力するので車両10の重量として一定値を保持できる。これにより、駆動トルクTwと実トルクTWとの乖離が生じた場合の推定誤差の低減には有利になり、車両10の重量を高精度に推定することができる。
特に、過渡状態のエンジントルクを定常マップを使用した場合には,
実トルクと推定トルクが一致しない。
また、エンジントルクTeと第一閾値Taとを比較する方式にすることで、車両重量演算部31の計算負荷を低く抑えることができる。さらに、車両10の種類や走行状態により様々に変化するパラメータにローパスフィルタなどのノイズ除去処理を施す方式に比して、応答性の確保にも有利になる。
特に、この実施形態では、維持部34のチェックブロック34a及びアサーションブロック34bが、推定値mx(k)の推定演算処理に対するアサーションチェックとして機能する。つまり、エンジントルクTeが第一閾値Taを超えた場合は、第一パラメータΦx及び第二パラメータΦyをネゲートと見做して推定部33に入力しない。一方、エンジントルクTeが第一閾値Ta以下に収まった場合は、第一パラメータΦx及び第二パラメータΦyをアサートと見做して推定部33に入力する。その結果として、各パラメータが有効な場合は、推定部33で推定値mx(k)を推定し、各パラメータが無効な場合は、推定部33での推定を禁止できる。
このように、第一パラメータΦx及び第二パラメータΦyと前回値mx(k−1)とに基づいてRLSアルゴリズムを用いて平滑化処理する際に、アサーションチェックを行うことで、推定値mx(k)を平滑化処理する際の推定誤差の低減には有利になり、車両10の重量を高精度に推定することができる。また、推定値mx(k)を平滑化処理する際の真値mへの収束速度の高速化にも有利になり、推定値mx(k)を速やかに真値mに収束することができる。
また、駆動輪19に伝達される駆動トルクTwを直接的に検出するトルクセンサを用いずに、車両10の重量の推定誤差を低減できるので、車両重量推定装置30に掛かるコストの低減には有利になる。
この実施形態では、維持部34がエンジントルクTeと第一閾値Taとを比較して、駆動トルクTwが実トルクTWから乖離したか否かを判定する。それ故、実トルクTWを用いることなく、エンジントルクTeから算出した駆動トルクTwと実トルクTWとを比較する工程を省略できる。これにより、判定に要するパラメータを少なくでき、車両10の重量を推定する工程も少なくできる。
この実施形態では、第一閾値Taを実トルクTWの最大値TW(max)に比例した値に設定したことで、駆動トルクTwが実トルクTWから確実に乖離した場合にのみ、乖離前推定値として前回値mx(k−1)を車両10の重量として出力する。これにより、推定部33における推定頻度の大幅な低下の抑制には有利になる。
このように、この実施形態では、第一閾値Taを実トルクTWの最大値TW(max)に比例した値に設定したが、第一閾値Taはこれに限定されない。第一閾値Taの最大値TW(max)よりも低い値に設定してもよい。この場合は、推定部33における推定頻度は低下する一方で、駆動トルクTwが実トルクTWから乖離するおそれがある場合に、離前推定値として前回値mx(k−1)を車両10の重量として出力するので、推定誤差の低減には有利になる。
図7、図8に例示する第二実施形態の車両重量推定装置30は、第一実施形態に対して、維持部34によりエンジントルクTeの変化率として差分ΔTeを第二閾値Tbと比較する点が異なっている。また、閾値判定だけでなく、マップにより判定してもよい。
図7に例示するように、パラメータ取得部32は、ディレイブロック32eと加算ブロック32fとを有している。加算ブロック32fは、今回推定したエンジントルクTeと前回推定したエンジントルクTe(k−1)とが入力されて、それらの差分ΔTeを維持部34に出力する機能要素である。なお、ディレイブロック32eと加算ブロック32fとに代えて、エンジントルクTeの時間微分値を維持部34に出力する機能要素を有してもよい。
維持部34のチェックブロック34aは、差分ΔTeと第二閾値Tbとを比較して、駆動トルクTwが実トルクTWから乖離しているか否かを判定する機能要素である。
図8に例示するように、差分ΔTeは、エンジントルクTeの変化率を示していて、具体的には、追加噴射によるエンジントルクTeの増加分を示している。第二閾値Tbは、第一閾値Taと同様に、駆動トルクTwが実トルクTWから回避していることを判定可能な値に設定されている。第二閾値Tbとしては、「ゼロ」より大きく、且つ、エンジン14の過渡状態を判別可能な値であればよい。
時刻t(m−1)と時刻t(m)との間と、時刻t(l−1)と時刻t(l)との間は、エアコンプレッサやモータジェネレータを駆動する、あるいは捕集フィルタを強制再生することで、エンジントルクTeが急激に増減する。このとき、エンジントルクTeの変化率である差分ΔTeが第二閾値Tbを超えるので、駆動トルクTwが実トルクTWから乖離したと見做す。維持部34により乖離前推定値である前回値mx(k−1)を保持して、車両10の重量として出力する。一方、それ以外では、サンプリング周期tsごとに推定値mx(k)を車両10の重量として出力する。
このように、この実施形態では、推定したエンジントルクTeの変化率である差分ΔTeと第二閾値Tbとを比較して、駆動トルクTwが実トルクTWから乖離していることを判定する。これにより、第一実施形態に比してエンジントルクTeが低い場合でも、エンジン14が過渡状態になることで生じる駆動トルクTwが実トルクTWから乖離することを判定するには有利になり、乖離による推定誤差をより低減できる。
また、乖離による推定誤差が大きくなる前に、推定部33の推定を禁止できる。これにより、第一実施形態に比して、乖離による推定誤差の低減には有利になり、車両10の重量をより高精度に推定することができる。
このように、この実施形態では、推定したエンジントルクTeとの差分ΔTeを用いたが、エンジントルクTeに基づいて算出した駆動トルクTwの差分または微分値を用いてもよい。
図9に例示するように、第三実施形態の車両重量推定装置30は、既述した第一実施形態と第二実施形態とを組み合わせて、エンジントルクTeと、エンジントルクTeの変化率との両方を用いて、駆動トルクTwが実トルクTWから乖離していることを判定する。
このように、エンジントルクTeが第一閾値Taより大きい場合は、エンジン14が高負荷状態で運転していることを判定でき、エンジントルクTeの変化率が第二閾値Tbより大きい場合は、エンジン14が過渡状態で運転していることを判定できる。これにより、過渡状態の場合や高負荷状態の場合に生じる駆動トルクTwと実トルクTWとの乖離を判定するには有利になり、推定精度を向上することができる。
なお、第三実施形態において、エンジントルクTeを用いずに、エンジン14が過渡状態や高負荷状態になる状態を取得する構成にしてもよい。つまり、車両重量演算部31に、制御部28から、エアコンプレッサの作動状況、捕集フィルタの再生状況を取得可能な機能要素を設ける構成にしてもよい。このように、エンジン14が過渡状態や高負荷状態になる状態を直接取得する構成にしても、駆動トルクTwと実トルクTWとの乖離を判定するには有利になり、推定精度を向上することができる。
既述した実施形態では、車両10がトラックなどの大型車両を例に説明したが、本発明の車両重量推定装置30は、バス、普通車両、牽引車(トラクタ)にも適用でき、車両10の種類には限定されない。つまり、車両10の駆動源としては、エンジン14の他に、モータジェネレータを例示できる。
既述した実施形態では、推定部33が推定値mx(k)を推定するための条件を定めていないが、以下のような条件が成立したときに、推定値mx(k)を推定するとよい。条件としては、ブレーキが作動していない状態で、クラッチ15が完接した場合に、車速vxの微分値vx’が予め設定した閾値以上、且つ駆動トルクTwが閾値以上になったときが例示できる。エンジントルクTe以外に、このような条件が成立した時にのみにRLSアルゴリズムにより推定値mx(k)を推定するようにすることで、推定精度を向上することができる。
既述した実施形態では、推定値mx(k)の推定演算としてRLSアルゴリズムを用いた例を説明したが、推定部33としては、車両10の重量を推定できればよく、推定演算はこれに限定されない。例えば、RLSアルゴリズムの代わりに、適応アルゴリズムとしてLMSアルゴリズムやNLMSアルゴリズムなどを用いてもよい。また、適応アルゴリズムを用いずに、第二パラメータΦyを第一パラメータΦxで除算した値を推定値mx(k)として出力してもよい。また、推定した全ての推定値mx(0)〜推定値mx(k)の平均値を出力してもよい。また、車両の走行中に変化するパラメータとして変速の前後のトランスミッションに入力されるトルクとそのトランスミッションから出力される回転数の変化量とに基づいて、車両の重量を推定するものを用いてもよい。また、車両10がエアサスペンションを搭載している場合は、車両10の上下方向の変化に基づく方式を用いてもよい。また、積載量の変化に伴うボディ13の重量をロードセルなどの重量センサで取得した値に空車時の車両重量を加算した値を仮推定値Mxとしてもよい。いずれの場合でも、この実施形態と同様に、プロペラシャフト17に捻じれによる振動が生じている間は、推定誤差が大きいと見做して、推定を禁止することが望ましい。
なお、図6及び図8に示すように、追加噴射が無い場合に、駆動トルクTwと実トルクTWとが必ずしも一致する必要はない。
維持部34は、推定部33における推定を禁止する他に、推定部33により推定した推定値mx(k)の出力を禁止するように構成してもよい。例えば、チェックブロック34aからの二値信号が「1」の場合は、推定値mx(k)を出力する一方で、二値信号が「0」の場合は、前回値mx(k−1)を出力するように構成してもよい。但し、このように構成すると、上述した実施形態と比して推定部33における推定が禁止されない。