以下、添付図面を参照しながら各実施例について詳細に説明する。
[実施例1]
図1は、エンジン状態パラメータ算出システム(以下、「状態パラメータ算出システム」とも称する)の一例を示す構成図である。
状態パラメータ算出システム1は、エンジン(図示せず)を備える車両に搭載されてよい。車両は、エンジンのみを駆動源とする車両であってもよいし、電気モータとエンジンの双方を駆動源とするハイブリッド車であってもよい。エンジンの種類は任意であり、例えば、ガソリンエンジンであってもよいし、ディーゼルエンジンであってもよい。但し、変形例では、状態パラメータ算出システム1の一部(例えば後述の状態パラメータ算出装置)は、車両と通信可能なサーバにより実現されてもよい。
状態パラメータ算出システム1は、クランクセンサ4と、エンジン状態パラメータ算出装置(以下、「状態パラメータ算出装置」とも称する)10とを含む。
クランクセンサ4は、エンジンに取り付けられる。クランクセンサ4は、エンジンのクランクシャフト(図示せず)の回転角であるクランク角度に応じたクランク角信号を出力する。例えば、クランクセンサ4は、クランクシャフト(シグナルロータ)の回転角に応じたクランク角信号を生成する。クランク角信号は、所定クランク角ピッチ(例えば10CAピッチ)毎にパルスを発生させる信号であってよい。クランクセンサ4の検出方式は任意であり、電磁誘導方式やホールセンサ方式であってよい。また、シグナルロータの外周は、所定クランク角ピッチに対応したピッチで突起(歯)を有しつつ、上死点検出用に欠歯部を有してもよい。
図2は、状態パラメータ算出装置10のハードウェア構成の一例を示す図である。状態パラメータ算出装置10のハードウェアは、例えば、マイクロコンピューター、FPGA(Field Programmable Gate Array)、PLC(Programmable Logic Controller)等を含んでよい。
図2に示す例では、状態パラメータ算出装置10は、制御部101、主記憶部102、補助記憶部103、及び、ハードウェアI/F部106を含む。
制御部101は、主記憶部102や補助記憶部103に記憶されたプログラムを実行する演算装置であり、記憶装置からデータを受け取り、演算、加工した上で、記憶装置などに出力する。制御部101は、例えばCPU(Central Processing Unit)やタイマカウンタ等を含んでよい。
主記憶部102は、ROM(Read Only Memory)やRAM(Random Access Memory)などであり、制御部101が実行するアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
補助記憶部103は、EEPROM(Electric-Erasable Programmable Read-Only Memory)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
ハードウェアI/F部106は、有線及び/又は無線回線などで接続された車両ネットワーク(例えば、CAN(controller area network)等)やエンジンの周辺機器(例えば、クランクセンサ4等)と状態パラメータ算出装置10とのインターフェースである。
尚、図2に示す例において、以下で説明する各種処理は、プログラムを制御部101に実行させることで実現することができる。
図3は、実施例1による状態パラメータ算出装置10の機能ブロック図である。
状態パラメータ算出装置10は、クランク角度測定値取得部14(クランク角度取得部の一例)と、クランク角速度計算部15(第1クランク角速度計算部の一例)と、状態パラメータ導出部16と、誤差モデル記憶部20とを含む。クランク角度測定値取得部14、クランク角速度計算部15、及び状態パラメータ導出部16は、例えば、図2に示す制御部101が主記憶部102内のプログラムを実行することにより実現できる。誤差モデル記憶部20は、例えば、図2に示す主記憶部102や補助記憶部103により実現できる。
クランク角度測定値取得部14は、クランクセンサ4からのクランク角信号に基づいて、クランク角度の測定値を取得する。
クランク角速度計算部15は、クランク角度の測定値に基づいて、クランク角速度の算出値(第1算出値の一例)を導出する。例えば、クランク角速度は、クランク角度の測定値の前回値と今回値との差分を、サンプリング周期で除算することで算出できる。尚、クランク角速度計算部15は、平滑化処理を行ってもよい。例えば、クランク角速度計算部15は、クランク角速度の算出値のデータ(時系列)に対して、各サンプル点前後で平滑化処理を行ってもよい。平滑化処理では、移動平均法などが用いられてよい。例えば、クランク角速度計算部15は、サンプル点前後の窓幅30点で移動平均法によって平滑化を行う。このような平滑化処理によりノイズ等の影響を低減できる。
状態パラメータ導出部16は、クランク角度測定値取得部14から得るクランク角度の測定値と、クランク角速度計算部15から得るクランク角速度の算出値と、誤差モデル記憶部20内の誤差モデルとに基づいて、エンジン状態パラメータの算出値を導出する。実施例1では、エンジン状態パラメータは、一例として、クランク角速度である。状態パラメータ導出部16は、クランク角速度計算部15から得るクランク角速度の算出値に対して、誤差モデルに基づく補正がなされたクランク角速度の算出値を導出する。以下、区別のため、状態パラメータ導出部16が導出するクランク角速度の算出値を、「クランク角速度の補正値」と称する。誤差モデルに基づく補正とは、誤差モデルが出力する誤差を低減する補正であり、具体例は以下で詳説する。
誤差モデル記憶部20は、誤差モデルを記憶する。
図4は、誤差モデルの説明図である。
誤差モデルは、図4に模式的に示すように、クランク角度を入力として、クランク角速度の誤差を出力するモデルである。尚、変形例では、等価的に、クランク角度に代えて、クランク角度に相関する入力が使用されてもよいし、クランク角速度の誤差に代えて、クランク角速度に相関するパラメータ(例えばエンジンの図示トルクや、クランク角加速度等)の誤差が出力されてもよい。即ち、誤差モデルは、クランク角度に係る入力(クランク角度自体を含む)に応じて、クランク角速度の誤差又はクランク角速度に相関するパラメータの誤差を出力するものであってよい。
図5は、誤差モデルの具体例の説明図である。図5には、誤差モデルの好ましい例として、誤差モデル50が示される。誤差モデル50は、図5に模式的に示すように、線形関数502と非線形関数501、503との組み合わせを含むハマーシュタイン・ウィナーモデルである。誤差モデル50は、クランク角度を入力uとして、クランク角速度の誤差y3を出力する。
非線形関数501は、例えば区分線形関数である。図5に示す例では、非線形関数501は、クランク角度を入力uとして、y1を出力する。即ち、y1=f1(u)である。ここで、f1は、非線形関数501である。
線形関数502は、例えば伝達関数であり、Z変換で表現されてよい。図5に示す例では、線形関数502は、y1を入力として、y2を出力する。例えば、線形関数502は、以下の通りであってよい。
非線形関数503は、例えば区分線形関数である。図5に示す例では、非線形関数503は、y2を入力として、y3を出力する。即ち、y3=f2(y2)である。ここで、f2は、非線形関数503である。
実施例1では、一例として、状態パラメータ導出部16は、クランク角速度計算部15から得るクランク角速度の算出値に、誤差モデル50の出力y3を加算することで、クランク角速度の補正値を得る。
尚、図5では、誤差モデル50は、線形関数502と非線形関数501、503との組み合わせを含むが、これに限られない。例えば、非線形関数503は省略されてもよい。この場合、y2がクランク角速度の誤差となるように誤差モデルが構築される。
誤差モデルは、予め同定されてから記憶されてもよいし、稼働時に学習により構築又は更新されてもよい。即ち、誤差モデルは、事前にオフラインで構築することもできるし、あるいは、オンラインで構築することもできる。誤差モデルは、エンジンの筒内圧の実測値を用いて同定(構築)できる。エンジンの筒内圧の実測値は、筒内圧センサを介して取得できる。
同定方法は、例えば次の通りであってよい。尚、以下の説明において、記号の上に付く表記「・」(以下、「ドット」と称する)は、微分を表す。以下、「データ」とは、特に言及しない限り、時系列データであり、各データ間は、同一の時系列に係る(即ちクランク角度のサンプリング周期で同期している)ものとする。
先ず、クランク角度の測定データに基づいて、クランク角速度の算出値データを得る。尚、クランク角度の測定値に基づくクランク角速度の算出値の導出方法は、上述のとおりである。クランク角速度の算出値データは、上述した平滑化処理を経て得られてもよい。以下、このようにしてクランク角度の測定データに基づいて導出されるクランク角速度の算出値データを、「クランク角速度の実測値データ」と称する。
次いで、筒内圧PCYCに基づいてエンジンの図示トルクτを導出する。図示トルクは、各気筒における筒内圧によるトルクや慣性トルク等の和として算出できる。例えば、筒内圧PCYCと、クランク角度θと、図示トルクτとは、次の関係式で表せる。
ここで、kは、サンプリング周期であり、jは、気筒番号であり、τ(k、j)は、サンプリング周期kでの気筒番号jの気筒でのトルクであり、τ
total(k)は、サンプリング周期kでのトルクの合計値である。θ(k)は、サンプリング周期kでのクランク角度である。また、rは、クランク径(ストローク長の半分の長さ)であり、Lは、コンロッド長であり、Dは、ボア径であり、m
cycは、総気筒数である。
数2の関係式を用いて、複数の同期したサンプリング周期で得た筒内圧PCYCの実測値データとクランク角度θの測定データとに基づいて、トルクτtotalの算出値データ(以下、区別のため、「トルクτtotalの真値データ」と称する)が得られる。
クランク角速度とトルクτtotalとは、次の関係を有する。
ここで、Jは、クランクシャフトの慣性モーメントである。従って、トルクτ
totalの真値データから、クランク角速度(θドット)の測定データが得られる。以下、このようにして得られるクランク角速度の測定データは、クランク角速度の実測値データとの区別のため、「クランク角速度の真値データ」と称される。
次いで、誤差モデルは、クランク角度θの測定データと、クランク角速度の測定データとクランク角速度の真値データとの差との関係を表すように同定される。例えば、クランク角速度の実測値データに基づくサンプリング周期kでのクランク角速度の実測値をθドット実測(k)とし、クランク角速度の真値データに基づくサンプリング周期kでのクランク角速度の真値をθドット真(k)とする。このとき、サンプリング周期kでのクランク角速度の誤差e(k)は、次のとおりである。
従って、図5に示す誤差モデルでは、サンプリング周期kでのクランク角度の測定値θ(k)を入力uとして、そのときの出力y
3(k)とe(k)と差を最小化する態様で、線形関数502と非線形関数501、503の係数等が同定される。例えば、線形関数502が伝達関数である場合は、線形関数502に係る同定は、関数形を同定することや、数1の各種係数a
1〜a
n、b
1〜b
mの各値を同定する等により実現できる。
誤差モデルは、好ましくは、エンジンの複数の運転条件のそれぞれごとに同定される。即ち、誤差モデルは、エンジンの複数の運転条件のそれぞれごとに用意される。これは、運転条件が異なると、クランク角度の測定データと、クランク角速度の測定データとクランク角速度の真値データとの差との関係が異なってくるためである(図6を用いて後述)。運転条件は、例えばエンジンでの燃料の噴射量や、エンジンの回転数である。その他、運転条件は、燃料噴射圧、酸素濃度、吸気圧等を含んでもよい。誤差モデルの構築に係る運転条件の分解能やパラメータ数が増加するほど同定精度が高くなるが、同定時の計算負荷が高くなる。従って、誤差モデルの構築に係る運転条件の分解能等は、かかる観点から任意に設定されてよい。
図6は、横軸に時間を取り、クランク角速度の誤差データと、クランク角度θの測定データの各例を示す図である。図6では、上側には、縦軸にクランク角速度の誤差を取り、クランク角速度の誤差データが示され、下側には、縦軸にクランク角度を取り、クランク角度θの測定データが示される。クランク角速度の誤差データは、クランク角速度の真値データとクランク角速度の実測値データとの差分(上述のクランク角速度の誤差e(k)参照)のデータである。
図6では、燃料の噴射量を20mm3/stとしたときと、80mm3/stとしたときの2種類の各データが示される。クランク角速度の誤差データは、波形601が噴射量=20mm3/stのデータであり、波形602が噴射量=80mm3/stのデータである。また、クランク角度θの測定データは、波形603が噴射量=20mm3/stのデータであり、波形604が噴射量=80mm3/stのデータであるが、両者は略重なっている。
図6に示すように、噴射量が変化すると、噴射量ごとのクランク角度θの測定データが略同じであるときでも、噴射量ごとのクランク角速度の誤差データは有意に異なっている。このことから、運転条件(この場合、燃料の噴射量)のそれぞれごとに誤差モデルを生成することが有用なことが分かる。換言すると、クランク角速度の誤差データは、運転条件ごとに有意に異なるので、運転条件ごとの誤差モデルを構築することで、クランク角速度の誤差を精度良くモデル化できる。
また、図6から分かるように、クランク角速度の誤差データに係る波形601、602は、規則性を有し、かつ、周期的に変化する特性を有する。本願発明者は、かかる特性を知見して、クランク角速度の誤差データを同定するには、線形関数502と非線形関数501、503との組み合わせを含む誤差モデル50が好適であることを見出している。尚、本願発明者は、クランク角速度の誤差データは、例えば線形関数502だけで同定すると、同定精度が良好でないことを確認している。
図7は、状態パラメータ算出装置10により実行される処理の一例を示すフローチャートである。図7の処理は、例えば、所定周期毎(例えば20ミリ秒毎)に繰り返し実行される。所定周期は、クランク角度の測定値のサンプリング周期と同期されてよい。
ステップS700では、クランク角度測定値取得部14は、クランクセンサ4を介してクランク角度の測定値を取得する。
ステップS702では、クランク角速度計算部15は、ステップS700で得たクランク角度の測定値に基づいて、クランク角速度の算出値を導出する。クランク角速度の算出値の導出方法は、上述のとおりである。
ステップS703では、状態パラメータ導出部16は、エンジンの現在の運転条件(図7では、一例として、エンジン回転数と噴射量)を判断し、現在の運転条件に応じた誤差モデルを、誤差モデル記憶部20から抽出(取得)する。
ステップS704では、状態パラメータ導出部16は、ステップS700で得たクランク角度の測定値と、ステップS703で得た誤差モデルとに基づいて、誤差モデルの出力として、クランク角速度の誤差を得る。即ち、状態パラメータ導出部16は、誤差モデルに、ステップS700で得たクランク角度の測定値を入力として与えることで、誤差モデルの出力として、クランク角速度の誤差を得る。
ステップS706では、状態パラメータ導出部16は、ステップS702で得たクランク角速度の算出値と、ステップS704で得たクランク角速度の誤差とに基づいて、クランク角速度の補正値を得る。実施例1では、一例として、上述のように、状態パラメータ導出部16は、ステップS702で得たクランク角速度の算出値に、ステップS704で得たクランク角速度の誤差を加算することで、クランク角速度の補正値を得る。
図7に示す処理によれば、所定周期毎に、クランク角度の測定値に基づいて、クランク角速度の補正値を得ることができる。また、エンジンの運転条件に応じた誤差モデルが使用されるので、多様な運転条件下においても、精度の高いクランク角速度の補正値を得ることができる。
尚、図7に示す処理において、処理順序は適宜変更可能である。例えば、ステップS702とステップS703の処理順序は逆であってもよく、或いは、ステップS702は、ステップS704とステップS706の間に実行されてもよい。
次に、図8を参照して、実施例1の効果について説明する。
図8は、実施例1によるクランク角速度の算出結果を示す図である。図8には、クランク角速度の真値データに係る波形701と、実施例1によるクランク角速度の補正値の時系列データに係る波形702と、クランク角速度の測定データに係る波形703とが示されている。
クランク角速度の補正値の時系列データ(以下、単に「クランク角速度の補正値データ」と称する)は、クランク角速度の測定データに対して上述の補正を行うことで得られるデータである。即ち、クランク角速度の実測値データに基づくサンプリング周期kでのクランク角速度の実測値をθドット実測(k)とし、サンプリング周期kでのクランク角速度の補正値をθドット補正(k)としたとき、補正値θドット補正(k)は、以下のとおりである。ただし、y3(k)は、誤差モデルにサンプリング周期kでのクランク角度の測定値θ(k)を入力uとして与えたときの出力である。即ち、y3(k)は、サンプリング周期kでの誤差モデルの出力である。
ところで、クランク角度の測定値は、クランクセンサ4のパルス波形から抽出されるため、パルス幅以上の測定分解能を得ることが難しく、その影響がクランク角速度の測定データの精度に影響する。図8に示すように、クランク角速度の測定データは、クランク角速度の真値データに対して有意な誤差を有していることが分かる。また、かかる有意な誤差の要因として、エンジンの振動(例えば燃焼行程の爆発による振動)等に起因したノイズの影響が、クランク角度の測定データを介してクランク角速度の測定データに現れ易いことが挙げられる。即ち、エンジンの振動等が信号雑音比の悪化を招く。
この点、図8に示すように、実施例1によるクランク角速度の補正値データは、クランク角速度の真値データに対する誤差が大幅に低減されている。即ち、実施例1によるクランク角速度の補正値データの精度が大幅に向上している。このようにして、実施例1によれば、誤差モデルを用いることで、クランク角度の測定値から算出されるクランク角速度の算出値の精度を高めることができる。
特に実施例1によれば、誤差モデルは、上述のように、伝達関数のような線形関数に加えて、区分線形関数のような非線形関数を含むので、図6に示したような規則性を有するクランク角速度の誤差を精度良く同定できる。したがって、誤差モデルを用いて、クランク角速度の算出値の精度を高めることができる。
[実施例2]
実施例2は、上述した実施例1に対して、状態パラメータ算出装置10が状態パラメータ算出装置10Aで置換された点が異なる。以下では、上述した実施例1と同一であってよい構成要素については、同一の参照符号を付して説明を省略する場合がある。
状態パラメータ算出装置10Aは、上述した実施例1による状態パラメータ算出装置10に対して、クランク角速度の補正値に基づいて、エンジンの図示トルクを算出する機能を更に備える点が異なる。実施例2では、エンジン状態パラメータは、クランク角速度及び図示トルクである。
図9は、実施例2による状態パラメータ算出装置10Aの機能ブロック図である。
状態パラメータ算出装置10Aは、クランク角度測定値取得部14と、クランク角速度計算部15と、状態パラメータ導出部16Aと、誤差モデル記憶部20とを含む。クランク角度測定値取得部14、クランク角速度計算部15、及び状態パラメータ導出部16Aは、例えば、図2に示す制御部101が主記憶部102内のプログラムを実行することにより実現できる。
状態パラメータ導出部16Aは、クランク角速度補正値導出部161と、図示トルク算出部162とを含む。
クランク角速度補正値導出部161は、上述した実施例1による状態パラメータ導出部16と同様の態様で、クランク角速度の補正値を導出する。
図示トルク算出部162は、クランク角速度の補正値に基づいて、図示トルクの算出値を導出する。クランク角速度の補正値に基づく図示トルクの算出値の導出方法は、任意であるが、例えば次の2つの方法のいずれかが使用されてもよい。
第1の方法(以下、「慣性モーメントに基づく手法」とも称する)では、図示トルク算出部162は、以下の関係式を用いて、クランク角速度の補正値に基づく図示トルクの算出値を導出する。
ここで、Jは、クランクシャフトの慣性モーメントであり、τ(k)は、サンプリング周期kでの図示トルクであり、θツードット(k)は、サンプリング周期kでのクランク角加速度である(ツードットは2回微分を表す)。クランク角加速度は、クランク角速度の補正値の前回値と今回値との差分を、サンプリング周期で除算することで算出できる。即ち、θツードット(k)は、次の通り算出されてもよい。
ここで、θドット
補正(k)は、サンプリング周期kでのクランク角速度の補正値であり、θドット
補正(k−1)は、サンプリング周期k−1でのクランク角速度の補正値であり、ΔTは、サンプリング周期である。なお、θツードット(k)の算出は、クランク角速度と同様、平滑化処理を伴ってもよい。
第2の方法(以下、「状態推定器に基づく手法」とも称する)では、図示トルク算出部162は、非線形カルマンフィルタによる状態推定器を用いて、図示トルクの算出値を導出する。状態推定器に基づく手法の説明において、記号の右上に付く表記「−」は、事前値であることを表し、記号の上に付く表記「∧」(以下、「ハット」と称する)は、推定値であることを表す。例えば、図示トルクの事前状態推定値を、
とし、クランク角度の事前状態推定値を
とすると、数式モデルは、以下の通りである。
この数式モデルを用いて、クランク角度の観測値y(k)から図示トルクの推定値xハット(k)を導出する非線形カルマンフィルタによる状態推定器を設計する。この方法では、数9で示すように、数式モデルによって計算したクランク角度の推定値とクランク角度の観測値y(k)との誤差に、非線形カルマンフィルタから計算したカルマンゲインg(k)を乗算する。これにより、図示トルクの事前状態推定値を補正して図示トルクの推定値xハット(k)が得られる。
数9において、クランク角度の観測値y(k)としては、クランク角度の測定値θ(k)に代えて、クランク角速度の補正値から導出したクランク角度の算出値(以下、区別のため、「クランク角度の補正値」と称する)が用いられる。クランク角度の補正値は、クランク角速度の補正値を積分することで導出される。
図10は、状態パラメータ算出装置10Aにより実行される処理の一例を示すフローチャートである。図10の処理は、例えば、所定周期毎(例えば20ミリ秒毎)に繰り返し実行される。所定周期は、クランク角度の測定値のサンプリング周期と同期されてよい。
図10の処理は、図7に示した処理に対して、実質的にステップS1000が追加された点が異なる。
ステップS1000では、図示トルク算出部162は、ステップS706で得たクランク角速度の補正値に基づいて、図示トルクの算出値を導出する。クランク角速度の補正値に基づく図示トルクの算出値の導出方法は、上述のとおりであり、慣性モーメントに基づく手法及び状態推定器に基づく手法のいずれが用いられてよい。
図10に示す処理によれば、所定周期毎に、クランク角度の測定値に基づいて、クランク角速度の補正値を得るとともに、クランク角速度の補正値に基づいて、図示トルクの算出値を得ることができる。また、エンジンの現在の運転条件に応じた誤差モデルが使用されるので、多様な運転条件下においても、図示トルクの算出値の精度を高めることができる。
次に、図11及び図12を参照して、実施例2の効果について説明する。
図11は、実施例2による図示トルクの算出結果を示す図である。図11には、図示トルクの真値データに係る波形1100と、実施例2による図示トルクの算出値の時系列データに係る波形1101、1102とが示されている。波形1101は、慣性モーメントに基づく手法を用いた場合の波形であり、波形1102は、状態推定器に基づく手法を用いた場合の波形である。図11では、運転条件は、エンジン回転数が2000rpmであり、噴射量が80mm3/stである。図示トルクの真値データは、筒内圧の実測値データに基づく。
図12は、比較例による図示トルクの算出結果を示す図である。図12には、図示トルクの真値データに係る波形1200と、比較例による図示トルクの算出値の時系列データに係る波形1201、1202とが示されている。波形1201は、図11の波形1101と同じである。波形1201は、比較例による慣性モーメントに基づく手法を用いた場合の波形であり、波形1202は、比較例による状態推定器に基づく手法を用いた場合の波形である。比較例による慣性モーメントに基づく手法とは、数6において、θツードット(k)として、クランク角度の測定値θ(k)の2回微分で得た値を用いる方法である。比較例による状態推定器に基づく手法とは、数9において、クランク角度の観測値y(k)として、クランク角度の測定値θ(k)を用いる方法である。図12では、運転条件は、同様に、エンジン回転数が2000rpmであり、噴射量が80mm3/stである。
比較例では、図12に示すように、図示トルクの算出値と実測値の誤差が大きく生じる。誤差の大きさを根平均二乗誤差(RMSE)で評価すると、比較例による慣性モーメントに基づく手法を用いた場合は326.98であり、比較例による状態推定器に基づく手法を用いた場合は406.10である。
これに対して、実施例2によれば、慣性モーメントに基づく手法を用いた場合は、RMSEが114.06となり、比較例に比べて、大幅に精度が向上していることがわかる。また、実施例2によれば、状態推定器に基づく手法を用いた場合は、RMSEが207.06となり、同様に、比較例に比べて、大幅に精度が向上していることがわかる。
このように実施例2によれば、クランク角速度の誤差とクランク角度の関係を表現する誤差モデルを構築することによって、クランク角速度を精度良く補正でき、その結果、図示トルクの算出値の精度を高めることができる。
尚、実施例2では、クランク角度の観測値y(k)から図示トルクの推定値xハット(k)を導出する非線形カルマンフィルタによる状態推定器を用いているが、これに限られない。例えば、特開2017-82662号公報に開示されるように、クランク角速度の算出値とクランク角速度の推定値との差分である推定誤差を用いる非線形カルマンフィルタによる状態推定器が用いられてもよい。この場合、クランク角速度の算出値として、クランク角速度の補正値が利用されてよい。
ところで、エンジンのトルクベース制御では、一般的にドライバーのアクセル操作などから必要な正味トルクが決まり、その正味トルクを満たすような図示トルクを推定することが行われる。このとき、実車では、筒内圧センサを用いて現在の図示トルクを測定することが考えられるが、筒内圧センサの設置は、コスト、耐久性、及び保守性の問題を引き起こすことから現状困難となっている。従って、新たにセンサを設置することなく、実車に搭載されているクランクセンサ4のセンサデータを用いて図示トルクを高精度に算出できれば、エンジン制御システムの高性能化に有効に利用できる。
この点、実施例2によれば、上述のように、クランクセンサ4のセンサデータを用いて図示トルクの算出値を高精度に導出できるので、状態パラメータ算出装置10Aをエンジン制御システムの高性能化に有効に利用できる。
次に、状態パラメータ算出装置10Aを含むエンジン制御システムの具体例について説明する。
図13は、状態パラメータ算出装置10Aを含むエンジン制御システムの一例を示す図である。
エンジン制御システム13は、車両に搭載される。車両は、上述のように、エンジンのみを駆動源とする車両であってもよいし、ハイブリッド車であってもよい。エンジン制御システム13は、センサ群8と、エンジン制御装置30と、エンジン40と、クランクセンサ4と、状態パラメータ算出装置10Aとを含む。
センサ群8は、クランクセンサ4以外の各種車載センサとして、例えば、アクセルセンサ、車速センサ、レーダセンサ、画像センサ等を含む。
エンジン制御装置30は、エンジン40を電気的に制御する。尚、エンジン40の電気的な制御は、例えば、図示しないが、エンジン40の吸気マニホールド内に配置されるスロットルバルブの開度(即ち、スロットル開度)を電気的に制御することで実現することが可能である。その他、エンジン40の電気的な制御は、例えば、エンジン40の燃焼室に噴射される燃料の量や点火時期を電気的に制御することや、バルブ開閉タイミングを調整するインテークカムシャフトの位相を電気的に制御することで実現することが可能である。
エンジン制御装置30は、図2に示したようなハードウェア構成を有してよい。エンジン制御装置30は、図13に示すように、運転者要求駆動力算出部31と、運転者支援駆動力算出部32と、目標駆動力調停部33と、フィードバック制御部34とを含む。運転者要求駆動力算出部31、運転者支援駆動力算出部32、目標駆動力調停部33、及びフィードバック制御部34は、例えば、エンジン制御装置30の制御部が主記憶部内のプログラムを実行することにより実現できる。
運転者要求駆動力算出部31は、車速センサ及びアクセルセンサからの情報に基づいて、車速及びアクセル開度に応じた運転者要求駆動力(以下、「第1要求駆動力」と称する)を算出する。
運転者支援駆動力算出部32は、レーダセンサ等からの情報に基づいて、運転者による車両の運転を支援するための要求駆動力(以下、「第2要求駆動力」と称する)を算出する。第2要求駆動力は、例えば所定車速で走行するために必要な駆動力、先行車に追従するために必要な駆動力、制限車速を超えないように車速を制限するための駆動力等であってよい。
目標駆動力調停部33は、所定の規則に従って、第1要求駆動力及び第2要求駆動力のいずれかを選択する。例えば、ACC(Adaptive Cruse Control)の実行中は、目標駆動力調停部33は、第1要求駆動力が0である間、第2要求駆動力を選択し、第1要求駆動力が所定値より大きくなると、第1要求駆動力を選択する。目標駆動力調停部33は、選択した要求駆動力を、トルク表現[N・m]に変換し、要求駆動トルクとしてフィードバック制御部34に与える。
フィードバック制御部34は、例えば、目標駆動力調停部33から与えられる要求駆動トルクと、状態パラメータ算出装置10Aから与えられる図示トルクの算出値との差分に基づいて、要求駆動トルクが実現されるようにエンジン40の制御目標値を決定してもよい。エンジンの制御目標値は、例えばスロットル開度の目標値や燃料の噴射量の目標値等であってよい。尚、等価的に、図示トルクの算出値に代えて、該図示トルクの算出値に基づき算出される正味トルクの算出値が用いられてもよい。例えば、正味トルクは、図示トルクの算出値からエンジンのフリクショントルクを減算することで算出できる。また、エンジンのフリクショントルクは、例えば、エンジンの回転数および負荷に基づいて算出できる。また、フィードバック制御部34は、状態パラメータ算出装置10Aから与えられる図示トルクの算出値に基づいて、エンジンの制御目標値として点火時期の目標値を決定してもよい。フィードバック制御部34は、決定した制御目標値が実現されるように、エンジン40を制御する。
図13に示すエンジン制御システム13によれば、状態パラメータ算出装置10Aを備え、要求駆動力と図示トルクの算出値との差分に基づいてエンジン40をフィードバック制御できる。上述のように状態パラメータ算出装置10Aからの図示トルクの算出値の精度が高いため、エンジン40の駆動トルクを精度良く制御できる。これにより、例えば過剰に筒内に燃料を噴射する必要がなくなり、エンジン性能が向上し、燃費やドライバビリティが改善される。このようにして、状態パラメータ算出装置10Aをエンジン制御システムの高性能化に有効に利用できる。
尚、図13では、目標駆動力調停部33を備えるが、第1要求駆動力及び第2要求駆動力のうちの一方のみを常に用いる構成又はユーザからの入力に応じて切り替えて用いる構成では、目標駆動力調停部33は省略されてもよい。
[実施例3]
実施例3は、上述した実施例1に対して、状態パラメータ算出装置10が状態パラメータ算出装置10Bで置換された点が異なる。以下では、上述した実施例1と同一であってよい構成要素については、同一の参照符号を付して説明を省略する場合がある。
図14は、実施例3によるエンジン状態パラメータ算出システム(状態パラメータ算出システム)の一例を示す構成図である。
状態パラメータ算出システム1Bは、図1に示した実施例1に係る状態パラメータ算出システム1に対して、状態パラメータ算出装置10が状態パラメータ算出装置10Bで置換され、かつ、筒内圧センサ5が追加された点が異なる。具体的には、状態パラメータ算出システム1Bは、クランクセンサ4と、筒内圧センサ5と、状態パラメータ算出装置10Bとを含む。筒内圧センサ5は、全ての気筒に設けられてもよいし、一部の気筒のみに設けられてもよい。
状態パラメータ算出装置10Bは、上述した実施例1による状態パラメータ算出装置10に対して、誤差モデルを構築又は更新する機能を更に備える点が異なる。尚、本明細書において、“構築”とは、無からの作成を意味し、“更新”は、新たに構築したもので、古いものを置換することを意味する。従って、“更新”は、“構築”を伴う。
図15は、実施例3による状態パラメータ算出装置10Bの機能ブロック図である。
状態パラメータ算出装置10Bは、クランク角度測定値取得部14と、クランク角速度計算部15と、状態パラメータ導出部16と、誤差モデル記憶部20とを含む。更に、状態パラメータ算出装置10Bは、筒内圧測定値取得部22(筒内圧取得部の一例)と、トルク真値導出部23と、クランク角速度真値導出部24(第2クランク角速度計算部の一例)と、誤差モデル学習部26(学習部の一例)と、学習用データ記憶部28とを含む。筒内圧測定値取得部22、トルク真値導出部23、クランク角速度真値導出部24、及び誤差モデル学習部26は、例えば、図2に示す制御部101が主記憶部102内のプログラムを実行することにより実現できる。誤差モデル記憶部20及び学習用データ記憶部28は、図2に示す補助記憶部103により実現できる。
筒内圧測定値取得部22は、筒内圧センサ5からの筒内圧信号に基づいて、筒内圧の測定値を取得する。筒内圧測定値取得部22は、取得した筒内圧の測定値を学習用データ記憶部28に記憶し、筒内圧の測定データを蓄積する。尚、筒内圧センサ5は、上述のように、全気筒に設けられる必要はなく、一部の気筒のみに設けられてもよい。この場合、筒内圧測定値取得部22は、筒内圧センサ5が設けられない気筒に係る筒内圧の測定値については、筒内圧センサ5が設けられた気筒に係る筒内圧の測定値に基づいて導出(推定)してよい。
トルク真値導出部23は、筒内圧の測定値と、クランク角度の測定値とに基づいて、図示トルクの算出値(以下、区別のため、「図示トルクの真値」と称する)を導出する。図示トルクの真値は、例えば前出の数2の関係式を用いて導出できる。
クランク角速度真値導出部24は、図示トルクの真値に基づいて、クランク角速度の算出値(以下、区別のため、「クランク角速度の真値」と称する)(第2算出値の一例)を導出する。クランク角速度の真値は、例えば前出の数3の関係式を用いて導出できる。クランク角速度真値導出部24は、導出したクランク角速度の真値を学習用データ記憶部28に記憶し、クランク角速度の真値データを蓄積する。
誤差モデル学習部26は、クランク角速度の真値と、クランク角度測定値取得部14により取得されるクランク角度の測定値と、クランク角速度計算部15により導出されるクランク角速度の算出値とに基づいて、誤差モデルを構築又は更新する。この際、誤差モデル学習部26は、複数のサンプリング周期に係る各値(クランク角速度の真値、クランク角度の測定値、及びクランク角速度の算出値)に基づいて、誤差モデルを構築又は更新する。複数のサンプリング周期に係る各値は、学習用データ記憶部28から取得される。誤差モデルの構築方法自体は、上述した通りである。誤差モデル学習部26は、好ましくは、上述した通り、エンジンの運転条件ごとに、誤差モデルを構築又は更新する。
学習用データ記憶部28には、誤差モデル学習部26による誤差モデルの構築又は更新に用いる学習用データが記憶される。学習用データは、複数の同一のサンプリング周期に係る各値(クランク角速度の真値、クランク角度の測定値、及びクランク角速度の算出値)を含む。
図16は、学習用データ記憶部28内の学習用データの一例の説明図である。
図16に示す例では、クランク角度の測定データ、クランク角速度の実測値データ、及びクランク角速度の真値データは、データID(Identification)毎に、データIDに紐付けられる形態で記憶される。データIDには、運転条件として、図16ではエンジン回転数と噴射量とが対応付けられる。クランク角度の測定データ、クランク角速度の実測値データ、及びクランク角速度の真値データは、複数の同一のサンプリング周期に係る各値である。例えば、ある1つのデータIDについて、クランク角度の測定データが、サンプリング周期k1〜kNまでのクランク角度の測定値を含むとき、クランク角速度の実測値データは、サンプリング周期k1〜kNのクランク角速度の算出値を含む。また、クランク角速度の真値データは、サンプリング周期k1〜kNのクランク角速度の真値を含む。サンプリング周期k1〜kNは、運転条件が変化するまでの連続したサンプリング周期であってよく、Nは、データIDごとに変化しうる。尚、クランク角速度の真値データに代えて、該クランク角速度の真値データを導出可能な筒内圧の測定データが記憶されてもよい。
図17は、状態パラメータ算出装置10Bにより実行される処理の一例を示すフローチャートである。図17の処理は、例えば、所定周期毎(例えば20ミリ秒毎)に繰り返し実行される。所定周期は、筒内圧の測定値のサンプリング周期と同期されてよい。
ステップS1700〜ステップS1704は、図7に示したステップS700〜ステップS704とそれぞれ同様である。
ステップS1706では、筒内圧測定値取得部22は、筒内圧センサ5を介して筒内圧の測定値を取得する。
ステップS1708では、トルク真値導出部23は、ステップS1706で得た筒内圧の測定値と、ステップS1700で得たクランク角度の測定値とに基づいて、図示トルクの真値を導出する。筒内圧の測定値とクランク角度の測定値とに基づく図示トルクの真値の導出方法は、上述のとおりであり、例えば前出の数2の関係式を用いて導出できる。
ステップS1710では、クランク角速度真値導出部24は、ステップS1708で得た図示トルクの真値に基づいて、クランク角速度の真値を導出する。図示トルクの真値に基づくクランク角速度の真値の導出方法は、上述した通りであり、例えば前出の数3の関係式を用いて導出できる。
ステップS1712では、誤差モデル学習部26は、ステップS1700で得たクランク角度の測定値と、ステップS1702で得たクランク角速度の算出値と、ステップS1710で得たクランク角速度の真値とを、学習用データ記憶部28に記憶する。この際、誤差モデル学習部26は、エンジンの現在の運転条件(図17では、一例として、エンジン回転数と噴射量)を判断し、運転条件が変化すると、新たなデータIDを付与して、データID毎に各データを記憶する(図16参照)。
ステップS1714では、誤差モデル学習部26は、誤差モデル学習条件が成立したか否かを判定する。誤差モデル学習条件は、例えば定期的に成立してもよいし、所定の走行距離ごとに成立してもよいし、学習用データ記憶部28内の学習用データの蓄積状況に応じて成立してもよい。誤差モデル学習条件が成立した場合は、ステップS1716に進み、それ以外の場合は、今回周期の処理はそのまま終了する。
ステップS1716では、誤差モデル学習部26は、学習用データ記憶部28内の学習用データに基づいて、誤差モデルを構築又は更新する。誤差モデルの構築又は更新方法は、上述のとおりである。
図17に示す処理によれば、所定周期毎に、クランク角度の測定値に基づいて、クランク角速度の補正値を得ることができる。また、エンジンの運転条件に応じた誤差モデルが使用されるので、多様な運転条件下においても、精度の高いクランク角速度の補正値を得ることができる。また、図17に示す処理によれば、誤差モデル学習条件が成立した場合に、誤差モデルを構築又は更新できる。
実施例3によれば、状態パラメータ算出システム1Bが筒内圧センサ5を含むので、車両実装状態(即ち車両の出荷後の状態)においても、誤差モデルを構築又は更新できる。例えば、実施例3によれば、車両実装状態において、定期的に又は不定期的に、誤差モデル記憶部20内の誤差モデルを更新できる。これにより、エンジンの特性に個体差がある場合でも、該個体差に応じて誤差モデルを修正できる。また、エンジンの特性に経時変化が生じた場合でも、誤差モデルを更新できる。
尚、実施例3は、上述した実施例2と組み合わせることもできる。即ち、実施例3において、状態パラメータ算出装置10Bの状態パラメータ導出部16が状態パラメータ導出部16Aで置換されてもよい。この場合、同様に、状態パラメータ算出装置10Bを含むエンジン制御システムを実現できる。
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
例えば、上述した実施例2では、エンジン状態パラメータは、図示トルクを含むが、図示トルクに代えて、他のパラメータ(例えば、正味トルクや、図示トルクから外部負荷トルクを差し引いたトルク)が用いられてもよい。
また、上述した実施例では、一例としてエンジンを備える車両を対象としたが、エンジンを備える限り、対象は、任意である。例えば、対象は、エンジンを備える鉄道車両、エンジンを備える船舶、エンジンを備える建設機械、エンジンを備えるバイク(車両の一種)、エンジンを備える航空機、エンジンを備えるヘリコプター等であってもよい。
なお、以上の実施例に関し、さらに以下の付記を開示する。
[付記1]
エンジンのクランクシャフトの回転角であるクランク角度の測定値を取得するクランク角度取得部と、
クランク角度の前記測定値に基づいて、クランク角速度の第1算出値を導出する第1クランク角速度計算部と、
クランク角度に係る入力に応じて、クランク角速度の誤差又はクランク角速度に相関するパラメータの誤差を出力する誤差モデルを記憶する誤差モデル記憶部と、
クランク角度の前記測定値と、クランク角速度の前記第1算出値と、前記誤差モデルとに基づいて、エンジン状態を表すエンジン状態パラメータの算出値を導出する状態パラメータ導出部とを含む、エンジン状態パラメータ算出装置。
[付記2]
前記状態パラメータ導出部は、クランク角度の前記測定値に基づいて、前記誤差モデルが出力する前記誤差を得、該誤差と、クランク角速度の前記第1算出値とに基づいて、エンジン状態パラメータの前記算出値を導出する、付記1に記載のエンジン状態パラメータ算出装置。
[付記3]
前記誤差モデルは、クランク角度に係る入力に応じてクランク角速度の誤差を出力するモデルであり、
前記状態パラメータ導出部は、クランク角度の前記測定値に係る入力に応じて前記誤差モデルが出力する前記誤差に基づいて、クランク角速度の前記第1算出値を補正し、補正した前記第1算出値に基づいて、エンジン状態パラメータの前記算出値を導出する、付記2に記載のエンジン状態パラメータ算出装置。
[付記4]
前記誤差モデルは、線形関数と非線形関数との組み合わせを含む、付記2又は3に記載のエンジン状態パラメータ算出装置。
[付記5]
前記線形関数は、区分線形関数である、付記4に記載のエンジン状態パラメータ算出装置。
[付記6]
前記誤差モデルは、ハマーシュタイン・ウィナーモデルである、付記5に記載のエンジン状態パラメータ算出装置。
[付記7]
前記誤差モデル記憶部には、エンジンの複数の運転条件のそれぞれに対応付けれらた前記誤差モデルが記憶され、
前記状態パラメータ導出部は、クランク角度の前記測定値が得られた際のエンジンの運転条件に基づいて、該運転条件に対応付けられた前記誤差モデルを用いる、付記1〜6のうちのいずれか1項に記載のエンジン状態パラメータ算出装置。
[付記8]
前記エンジン状態パラメータは、エンジンの図示トルクである、付記1〜7のうちのいずれか1項に記載のエンジン状態パラメータ算出装置。
[付記9]
エンジンの筒内圧の実測値を取得する筒内圧取得部と、
筒内圧の前記実測値に基づいて、クランク角速度の第2算出値を導出する第2クランク角速度計算部と、
クランク角度の前記測定値と、クランク角速度の前記第1算出値と、クランク角速度の前記第2算出値とに基づいて、前記第1算出値と前記第2算出値との差を前記誤差とする前記誤差モデルを構築する学習部とを含む、付記1〜8のうちのいずれか1項に記載のエンジン状態パラメータ算出装置。
[付記10]
エンジンと、
エンジンのクランクシャフトに対して設けられるクランクセンサと、
前記クランクセンサを介してクランク角度の測定値を取得するクランク角度取得部と、
クランク角度の前記測定値に基づいて、クランク角速度の算出値を導出するクランク角速度計算部と、
クランク角度に係る入力に応じて、クランク角速度に係る誤差又はクランク角速度に相関するパラメータに係る誤差を出力する誤差モデルを記憶する誤差モデル記憶部と、
クランク角度の前記測定値と、クランク角速度の前記算出値と、前記誤差モデルとに基づいて、エンジン状態を表すエンジン状態パラメータの算出値を導出する状態パラメータ導出部と、
エンジン状態パラメータの前記算出値に基づいて、エンジンを制御する制御部とを含む、エンジン制御システム。
[付記11]
エンジンのクランクシャフトの回転角であるクランク角度の測定値を取得し、
クランク角度の前記測定値に基づいて、クランク角速度の第1算出値を導出し、
クランク角度に係る入力に応じて誤差を出力する誤差モデルであって、クランク角速度の誤差又はクランク角速度に相関するパラメータの誤差を出力する誤差モデルを、取得し、
クランク角度の前記測定値と、クランク角速度の前記第1算出値と、前記誤差モデルとに基づいて、エンジン状態を表すエンジン状態パラメータの算出値を導出することを含む、コンピュータにより実行されるエンジン状態パラメータ算出方法。
[付記12]
エンジンのクランクシャフトの回転角であるクランク角度の測定値を取得し、
クランク角度の前記測定値に基づいて、クランク角速度の第1算出値を導出し、
クランク角度に係る入力に応じて誤差を出力する誤差モデルであって、クランク角速度の誤差又はクランク角速度に相関するパラメータの誤差を出力する誤差モデルを、取得し、
クランク角度の前記測定値と、クランク角速度の前記第1算出値と、前記誤差モデルとに基づいて、エンジン状態を表すエンジン状態パラメータの算出値を導出する、
処理をコンピュータに実行させるエンジン状態パラメータ算出プログラム。
[付記13]
エンジンのクランクシャフトの回転角であるクランク角度の測定値を取得し、
クランク角度の前記測定値に基づいて、クランク角速度の第1算出値を導出し、
エンジンの筒内圧の実測値を取得し、
筒内圧の前記実測値に基づいて、クランク角速度の第2算出値を導出し、
クランク角度の前記測定値と、クランク角速度の前記第1算出値及び前記第2算出値間の差とに基づいて、クランク角度に係る入力に応じて該差に係る誤差を出力する誤差モデルを構築することを含む、コンピュータにより実行される誤差モデル構築方法。