以下、添付図面を参照しながら各実施例について詳細に説明する。
図1は、実施例1によるエンジントルク算出システム1の一例を示す構成図である。
エンジントルク算出システム1は、エンジン(図示せず)を備える車両に搭載される。車両は、エンジンのみを駆動源とする車両であってもよいし、電気モータとエンジンの双方を駆動源とするハイブリッド車であってもよい。エンジンの種類は任意であり、例えば、ガソリンエンジンであってもよいし、ディーゼルエンジンであってもよい。
エンジントルク算出システム1は、クランク角度センサ4と、エンジントルク算出装置10を含む。
クランク角度センサ4は、エンジンに取り付けられる。クランク角度センサ4は、エンジンのクランクシャフト6(図2参照)の回転角度であるクランク角度を表すセンサ出力を生成する。例えば、クランク角度センサ4は、クランクシャフトに固定されるクランクロータ(シグナルロータ)5と協動して、センサ出力を生成する。クランクロータ5は、図2及び図3に示すように、外周に、所定クランク角ピッチ角Δθ(例えば6CAピッチ)(以下、「ピッチ角Δθ」と称する)に対応したピッチで突起(歯)5bを有しつつ、上死点検出用に欠歯部5aを有してもよい。尚、"CA"とはクランク角を表す。
実施例1では、一例として、クランク角度センサ4は、磁気抵抗素子を含むMRE(magneto resistive effect)センサである。図4は、クランクロータ5の外周の形状特徴とクランク角度センサ4のセンサ出力との関係の説明図である。図4には、上側には、クランクロータ5の外周を直線状に展開した状態が示され、下側には、上側に図示するクランクロータ5の外周の形状特徴に対応したクランク角度センサ4のセンサ出力が示されている。図5は、クランク角度センサ4のセンサ出力と所定基準値(判定基準電圧)との関係を示す図である。
クランクロータ5が回転すると、クランクロータ5の歯5bがクランク角度センサ4に近づいたり離れたりすることを繰り返す。クランク角度センサ4は、クランクロータ5の歯5bによる磁界変化を検知することで、クランクロータ5の歯5bの有無に応じて、パルス状の信号を出力する。このとき、パルス状の信号のピッチθ2がクランクロータ5のピッチ角Δθに相当する。
クランク角度センサ4がクランクロータ5の欠歯部5aに対向する区間では、磁界変化が起こらないため、センサ出力も変化しない。即ち、クランク角度センサ4は、クランクロータ5の欠歯部5aに対向する間は、クランクロータ5が角度θ1だけ回転する時間分、新たな立ち上がりパルスを出力しない。角度θ1は、(欠歯本数+1)×Δθに相当する。以下、センサ出力における欠歯部5aに起因した区間(角度θ1分の区間)を、「欠歯区間」と称する。
センサ出力は、クランク角度センサ4がクランクロータ5の欠歯部5a以外に対向する区間では、図5に示すように、クランクシャフトの回転に伴い周期的に所定基準値Vrefをクロスする。具体的には、センサ出力は、クランクシャフトの回転に伴いピッチ角Δθ毎に所定基準値を上下に計2回クロスする。このように、センサ出力は、クランク角度0〜720CAの区間において、クランクシャフトの回転に伴いピッチ角Δθ毎に所定基準値を上下に計2回クロスする区間と、上死点検出用の欠歯区間とを含む。以下、クランクシャフトの回転に伴いピッチ角Δθ毎に所定基準値Vrefを上下に計2回クロスする区間を、「非欠歯区間」とも称する。尚、非欠歯区間においては、センサ出力が0Vを負から正の方向(上り)にクロスする毎に(図5の○印参照)、クランク角度がピッチ角Δθ分だけ進角することになる。実施例1では、一例として、センサ出力は、所定基準値Vrefを基準とした振幅が一定であるものとする。即ち、図5に示すように、センサ出力は、固定の最大電圧VMAXと固定の最少電圧VMINとの間を周期的に上下し、所定基準値Vref=(VMAX+VMIN)/2である。
図6は、エンジントルク算出装置10のハードウェア構成の一例を示す図である。エンジントルク算出装置10のハードウェアは、例えば、マイクロコンピューターや、FPGA(Field Programmable Gate Array)、PLC(Programmable Logic Controller)等を含んでよい。
図6に示す例では、エンジントルク算出装置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等)とのインターフェースである。
図7は、実施例1によるエンジントルク算出装置10の機能ブロック図である。エンジントルク算出装置10は、A/Dコンバータ(Analog-to-Digital)110と、サンプル値取得部111(取得部の一例)と、サンプル値記憶部114とを含む。また、エンジントルク算出装置10は、クロス時点算出部120(基準時点算出部の一例)と、クランク角度算出部121と、クロス時点記憶部122とを含む。また、エンジントルク算出装置10は、クランク角速度算出部123と、クランク角速度記憶部124と、クランク角加速度算出部130と、エンジントルク算出部160(パラメータ算出部の一例)とを含む。各部111、120、121、123、130、及び160は、制御部101が主記憶部102内のプログラムを実行することにより実現できる。また、サンプル値記憶部114、クロス時点記憶部122、及びクランク角速度記憶部124は、例えば主記憶部102のRAMにより実現できる。
A/Dコンバータ110は、クランク角度センサ4のセンサ出力に係るアナログ入力を量子化出力に変換する。
サンプル値取得部111は、A/Dコンバータ110を介して、クランク角度センサ4のセンサ出力の複数時点でのサンプリング値を取得する。例えば、サンプル値取得部111は、A/Dコンバータ110を介して、所定のサンプリングレートでセンサ出力をサンプリングする。所定のサンプリングレートは、後述の上り区間内で少なくとも2時点以上でのサンプリング値が取得できるように設定される。所定のサンプリングレートは、一定であってもよいし、例えばエンジン回転数等に応じて可変であってもよい。サンプル値取得部111は、取得したサンプリング値をサンプル値記憶部114に記憶する。
サンプル値記憶部114は、サンプル値取得部111により取得されたサンプリング値を記憶する記憶領域を有する。記憶領域は、例えば最新の所定数以上のサンプリング値を記憶する容量を備える。サンプル値記憶部114は、例えばリングバッファであり、最新の所定数以上のサンプリング値を、FIFO(first-in, first-out)形式で保持する。所定数は、クロス時点算出部120で用いられるサンプリング値の数以上であり、例えば2である。
クロス時点算出部120は、センサ出力が上昇する区間(以下、「上り区間」とも称する」内の2時点でのサンプリング値に基づいて、センサ出力が所定基準値Vrefとなる時点を算出する。上り区間とは、センサ出力が、最少電圧VMINから立ち上がり始めた以後であって最大電圧VMAXに至る以前の区間を指す。
実施例1では、一例として、クロス時点算出部120は、センサ出力の上り区間内の、所定基準値Vrefを挟む2時点でのサンプリング値に基づいて、センサ出力が所定基準値Vrefをクロスする時点(以下、「クロス時点」とも称する)を算出する。例えば、クロス時点算出部120は、サンプル値記憶部114に直近に記憶されるサンプリング値が、所定基準値Vref未満である状態から所定基準値Vrefを超えたときに、サンプル値記憶部114内の直近の2時点のサンプリング値を取り出す。そして、クロス時点算出部120は、取り出した2時点のサンプリング値に基づいて、クロス時点を算出する。クロス時点算出部120は、算出したクロス時点をクロス時点記憶部122に記憶する。
図8は、クロス時点算出部120によるクロス時点の算出方法の説明図である。図8には、横軸に時間を取り、縦軸に電圧を取り、センサ出力の波形70が示されている。図8には、サンプリング周期i(=n−3〜n+2)で得られたサンプリング点s(n−3)〜s(n+2)が○印で示される。尚、サンプリング点(及び後述のクロス点)とは、電圧情報と時間情報とで2次元位置(図8に示すような2軸の座標系内での位置)が定まる点に対応する。
図8に示す例では、所定基準値Vrefを挟む2時点でのサンプリング値は、サンプリング点s(n−1)での電圧値v(n−1)及びサンプリング点s(n)での電圧値v(n)である。また、2時点は、時点t(n−1)及び時点t(n)であり、時点tcがクロス時点である。尚、時点とは、時間軸上の1点であり、時間とは、時間軸上の長さを表す。以下では、一例として、時点t(n−1)、時点t(n)、及びクロス時点tcは、共通の開始時点(例えば図8の時間軸の原点に相当するタイミング)からの時間でそれぞれで表される。
具体的には、クロス時点算出部120は、2時点でのサンプリング値間の差分ΔVと、2時点間の時間dtとに基づいて、2時点間でのセンサ出力の時間変化率βを算出する。図8では、2時点でのサンプリング値間の差分は、ΔVであり、ΔV=v(n)−v(n−1)である。2時点間の時間dtは、サンプリングレートに対応する。従って、2時点間でのセンサ出力の時間変化率βは、β=ΔV/dt=(v(n)−v(n−1))/dtである。そして、クロス時点算出部120は、算出した時間変化率βに基づいて、クロス時点tcを算出する。例えば、クロス時点tcは、時点t(n−1)を基準として、以下の通り算出できる。
tc=(Vref−v(n−1))/β+t(n−1)
或いは、クロス時点tcは、時点t(n)を基準として、以下の通り算出できる。
tc=t(n)−(v(n)−Vref)/β
この算出方法は、センサ出力が、図8に示すように、最大電圧VMAX及び最少電圧VMIN間で線形的に変化する場合に好適である。換言すると、この算出方法は、センサ出力が最大電圧VMAX及び最少電圧VMIN間で一定の時間変化率で変化すると仮定して、センサ出力が所定基準値Vrefとなるクロス点Pc(図8参照)を求めるものである。従って、クロス時点tcに係るクロス点Pcは、サンプリング点s(n−1)とサンプリング点s(n)とを結んだ直線(傾きはβ)と、所定基準値Vrefを表す直線(傾きは0)との交点である。
クランク角度算出部121は、クロス時点算出部120により算出されたクロス時点に基づいて、クロス時点でのクランク角度を算出する。実施例1では、一例として、クロス時点は、図9に示すように、クランク角度がピッチ角Δθ分だけ進角するタイミングとされる。従って、今回のクロス時点でのクランク角度は、前回のクロス時点でのクランク角度に対してピッチ角Δθ分を加算することで算出できる。図9には、3つの連続した算出周期(k−1、k、k+1)で算出される各クランク角度CA(k−1)、CA(k)、及びCA(k+1)が示される。tc(k−1)、tc(k)、及びtc(k+1)は、それぞれ、各算出周期(k−1、k、k+1)に係るクロス時点tcである。尚、時間軸上で隣接する2つのクロス時点間の時間は、クランク角速度に応じて異なる。例えば、算出周期k−1に係るクロス時点tc(k−1)と算出周期kに係るクロス時点tc(k)との間の時間Δt(k−1)は、算出周期kに係るクロス時点tc(k)と算出周期k+1に係るクロス時点tc(k+1)との間の時間Δt(k)とは異なり得る。尚、欠歯区間においては、クランク角度算出部121は、ピッチ角Δθに代えて、角度θ1(図4参照)だけ進角させることで、クランク角度を算出してよい。
クロス時点記憶部122は、クロス時点算出部120により算出されたクロス時点を記憶する記憶領域を有する。記憶領域は、例えば最新の所定数以上のクロス時点を記憶する容量を備える。クロス時点記憶部122は、例えばリングバッファであり、最新の所定数以上のクロス時点を、FIFO形式で保持する。所定数は、クランク角速度算出部123やクランク角加速度算出部130での算出方法に依存するが、例えば2である。
クランク角速度算出部123は、クロス時点算出部120により算出されたクロス時点に基づいて、クランク角速度を算出する。具体的には、クランク角速度算出部123は、非欠歯区間において、時間軸上で隣接する2つのクロス時点間の時間と、ピッチ角Δθとに基づいて、クランク角速度を算出する。即ち、算出周期kにおけるクランク角速度ω(k)は、例えば以下のとおりである。
ここで、tc(k)は、算出周期kに係るクロス時点tcであり(図5及び図9参照)、算出周期kの直近に算出されたクロス時点tcである。尚、欠歯区間においては、クランク角速度算出部123は、ピッチ角Δθに代えて、角度θ1(図4参照)を用いて、クランク角速度を算出してよい。以下では、特に言及しない限り、非欠歯区間における算出方法について説明していく。
クランク角速度算出部123は、例えばクロス時点算出部120により新たなクロス時点が算出される毎に、クロス時点記憶部122から直近の2つのクロス時点(今回新たに算出されたクロス時点を含む)を取り出す。そして、クランク角速度算出部123は、取り出した直近の2つのクロス時点と、ピッチ角Δθ(既知)とに基づいて、クランク角速度を算出し、算出したクランク角速度をクランク角速度記憶部124に記憶する。
クランク角速度記憶部124は、クランク角速度算出部123により算出されたクランク角速度を記憶する記憶領域を有する。記憶領域は、例えば最新の所定数以上の算出周期分のクランク角速度を記憶する容量を備える。クランク角速度記憶部124は、例えばリングバッファであり、最新の所定数以上の算出周期分のクランク角速度を、FIFO形式で保持する。所定数は、クランク角加速度算出部130のクランク角加速度算出処理に必要な算出周期分の数以上であり、クランク角加速度算出方法に依存する。例えば、クランク角加速度算出部130が直近の2時点のクランク角速度に基づいてクランク角加速度を算出する場合は、所定数は、例えば2である。
クランク角加速度算出部130は、クランク角速度算出部123より算出されたクランク角速度に基づいて、クランク角加速度を算出する。例えば、クランク角加速度算出部130は、クランク角速度算出部123により新たなクランク角速度が算出される毎に、クランク角速度記憶部124から直近の2算出周期分のクランク角速度と、クロス時点記憶部122から直近の2つのクロス時点とを取り出す。そして、クランク角加速度算出部130は、取り出した直近の2算出周期分のクランク角速度と、直近の2つのクロス時点とに基づいて、クランク角加速度を算出する(図10参照)。算出周期kにおけるクランク角加速度α(k)は、例えば以下の通り算出できる。
或いは、算出周期kにおけるクランク角加速度α(k)は、例えば以下の通り算出されてもよい。
尚、この場合は、算出周期kにおけるクランク角加速度α(k)は、次の算出周期k+1のクランク角速度ω(k+1)等を利用して算出されることになる。
エンジントルク算出部160は、クランク角加速度算出部130により算出されたクランク角加速度に基づいて、エンジントルクを算出する。実施例1では、一例として、エンジントルク算出部160は、図示トルクを算出する。算出周期kにおける図示トルクτ(k)は、例えば以下の通り算出できる。
次に、図11乃至図13を参照して、比較例と対比しつつ、上述した実施例1による効果を説明する。
図11は、2算出周期でそれぞれ算出されるクロス時点の例を示す図である。図11には、算出周期k−1に係るクロス時点tc(k−1)と、算出周期kに係るクロス時点tc(k)とが示される。
算出周期k−1では、図11の左側に示すように、所定基準値Vrefを挟む2時点でのサンプリング値は、サンプリング点s(m−1)での電圧値v(m−1)及びサンプリング点s(m)での電圧値v(m)である。また、2時点は、時点t(m−1)及び時点t(m)である。従って、算出周期k−1に係るクロス時点tc(k−1)は、上述のように次のとおりである。
tc(k−1)=(Vref−v(m−1))/β(k−1)+t(m−1)
但し、β(k−1)=(v(m)−v(m−1))/dt
算出周期kでは、図11の右側に示すように、所定基準値Vrefを挟む2時点でのサンプリング値は、サンプリング点s(n−1)での電圧値v(n−1)及びサンプリング点s(n)での電圧値v(n)である。また、2時点は、時点t(n−1)及び時点t(n)である。従って、算出周期kに係るクロス時点tc(k)は、上述のように次のとおりである。
tc(k)=(Vref−v(n−1))/β(k)+t(n−1)
但し、β(k)=(v(n)−v(n−1))/dt
ここで、次の比較例を想定する。比較例では、所定基準値Vrefよりも大きいサンプリング値がサンプリングされた時点が、「クロス時点」として扱われる。従って、比較例では、算出周期kにおけるクランク角速度ω(k)は、以下のとおりである。
ところで、センサ出力をサンプリングする際のサンプリングレートの限界等に起因して、クランク角度をピッチ角Δθ分だけ進角させるタイミングを、センサ出力が所定基準値Vrefをちょうどクロスする時点に正確に同期させることは難しい。換言すると、センサ出力が所定基準値Vrefとなる実際の時点を「真値」とすると、算出周期間で、真値に対するクロス時点のずれを一定にすることは難しい。例えば、真値は、実施例1によるクロス時点算出部120により算出されるクロス時点と一致するものとすると、比較例では、図11に模式的に示すように、真値に対するクロス時点のずれが、算出周期間で比較的に大きく変動しうる。具体的には、算出周期k−1での、真値に対するクロス時点のずれΔtr(k−1)と、算出周期kでの、真値に対するクロス時点のずれΔtr(k)とが有意に異なる。真値に対するクロス時点のずれが算出周期間で比較的に大きく変動するということは、実質的に、クランク角速度の算出に用いるセンサ出力の判定基準電圧が算出周期間で比較的に大きく変動していることと等価である。クランク角速度の算出に用いるセンサ出力の判定基準電圧が算出周期間で変動すると、当然ながら、クランク角速度の精度の悪化を招く。従って、比較例では、クランク角速度の算出精度を高めることが難しい。
これに対して、実施例1によれば、真値に対するクロス時点(クロス時点算出部120により算出されるクロス時点)のずれが、算出周期間で比較的に大きく変動することを抑制できる。具体的には、実施例1によれば、上述のように、算出周期毎に、上り区間内の2時点でのサンプリング値に基づいて、クロス時点が算出される。クロス時点は、上述のように上り区間内の2時点間でのセンサ出力の時間変化率βに基づいて算出されるので、算出周期毎に、真値に高い精度で一致する。この結果、真値に対するクロス時点のずれが、算出周期間で比較的に大きく変動することを抑制できる。よって、実施例1によれば、比較例に比べて、クランク角速度の算出精度を高めることができる。
図12は、比較例による図示トルクの算出精度の説明図である。図12には、上から、センサ出力から計算されるクランク角度の時系列、クランク角速度から計算されるクランク角加速度の時系列、及びクランク角加速度から計算される図示トルクの時系列L1が示される。計算による図示トルクの時系列L1には、実測値による図示トルクの時系列L2が併せて示される。尚、実測値による図示トルクは、筒内圧センサから得られるシリンダ内の圧力変化とクランク角度変化から得られるシリンダ容積の変化を基に算出されている。図13は、実施例1による図示トルクの算出精度の説明図である。図13には、図12と同様の各時系列が示される。尚、本試験に用いたクランクロータ5の仕様は、歯の本数が60本(ピッチ角Δθ=6CA)であり、欠歯本数が4本である。エンジンの仕様は、気筒数が4個であり、クランクシャフト2回転(720CA)で全気筒が1回燃焼する。
比較例では、図12に示すように、実測値による図示トルクに対する算出誤差が大きい(波形が乱れている)。比較例の算出結果の根平均二乗誤差(RMSE:Root Mean Squared Error)は143.77であった。これに対して、実施例1によれば、図13に示すように、実測値による図示トルクに対する算出誤差が小さい(波形の乱れが小さくなっている)。実施例1によれば、RMSEは117.42であり、比較例に比べてRMSEを約28%低減できている。
次に、図14を参照して、エンジントルク算出装置10の動作例について説明する。
図14は、エンジントルク算出装置10により実行されるエンジントルク算出処理の一例を示すフローチャートである。図14に示す処理は、例えばサンプル値取得部111のサンプリングレート毎に実行されてよい。尚、図14に示す処理中は、エンジントルク算出装置10にはクランク角度センサ4のセンサ出力が入力され続ける。
ステップS100では、サンプル値取得部111は、センサ出力に対する今回のサンプリング周期のサンプリング値を取得し、サンプル値記憶部114に記憶する。
ステップS102では、クロス時点算出部120は、ステップS100でサンプル値取得部111が取得したサンプリング値が所定基準値Vrefを正の方向にクロスしたか否かを判定する。例えば、クロス時点算出部120は、前回のサンプリング値が所定基準値Vref未満であるが、今回のサンプリング値が所定基準値Vrefよりも大きい場合は、サンプリング値が所定基準値Vrefを正の方向にクロスしたと判定する。判定結果が"YES"の場合は、ステップS104に進み、判定結果が"NO"の場合は、今回周期の処理はそのまま終了する。
ステップS104では、クロス時点算出部120は、サンプル値記憶部114内の直近の2時点のサンプリング値を取り出し、取り出した2時点のサンプリング値に基づいて、クロス時点を算出する。クロス時点の算出方法は、上述のとおりである。クロス時点算出部120は、算出したクロス時点をクロス時点記憶部122に記憶する。
ステップS106では、クランク角速度算出部123は、クロス時点記憶部122から直近の2つのクロス時点を取り出し、取り出した直近の2つのクロス時点と、ピッチ角Δθ(既知)とに基づいて、クランク角速度を算出する。クランク角速度の算出方法は、上述のとおりである。クランク角速度算出部123は、算出したクランク角速度をクランク角速度記憶部124に記憶する。
ステップS108では、クランク角加速度算出部130は、クランク角速度記憶部124内の直近の2算出周期分のクランク角速度と、クロス時点記憶部122内の直近の2つのクロス時点とに基づいて、クランク角加速度を算出する。クランク角加速度の算出方法は、上述のとおりである。
ステップS110では、エンジントルク算出部160は、ステップS108で算出されたクランク角加速度に基づいて、図示トルクを算出する。図示トルクの算出方法は、上述のとおりである。
このようにして図14に示す処理によれば、センサ出力が所定基準値Vrefを超える毎に(即ちクロス時点が発生する毎に)、現在の図示トルクを精度良く算出できる。このようなエンジントルク算出装置10は、リアルタイムで図示トルクを精度良く算出できるので、エンジン制御システムの高性能化に有効に利用できる。
ところで、トルクベース制御のエンジン制御システムでは、一般的にドライバーのアクセル操作などから必要な正味トルクが決まり、その正味トルクをもたらす図示トルクの目標値が設定される。このとき、実車では、車両の駆動トルクを目標値通りにフィードバック制御するために、筒内圧センサを用いて現在の図示トルクを測定することが考えられる。しかしながら、筒内圧センサの設置は、コスト、耐久性、及び保守性の問題を引き起こすことから現状困難となっている。
この点、実施例1によれば、筒内圧センサを設置することなく、エンジントルク算出装置10により図示トルクを高精度に算出できるので、エンジントルク算出装置10をエンジン制御システムの高性能化に有効に利用できる。
尚、実施例1では、上述したように、クロス時点算出部120は、所定基準値Vrefを挟む2時点でのサンプリング値に基づいて、クロス時点を算出するが、これに限られない。例えば、クロス時点算出部120は、所定基準値Vrefを挟む2時点でのサンプリング値に、他のサンプリング値を加えた3時点以上でのサンプリング値に基づいて、クロス時点を算出してもよい。この場合、クロス時点算出部120は、例えば最小二乗法等により、3時点以上でのサンプリング点に対する近似直線を求め、該近似直線と所定基準値Vrefを表す直線(傾き0)との交点に基づいて、クロス時点を算出してもよい。この場合、近似直線の算出に用いられる3時点以上でのサンプリング点としては、好ましくは、上り区間内のサンプリング点である。これは、最少電圧VMINから立ち上がる前のセンサ出力のサンプリング値や最大電圧VMAXに至った後のセンサ出力のサンプリング値は、センサ出力が実質的に変化していないときのサンプリング値であり、時間変化率βの算出精度を悪化させるためである。
また、実施例1では、上述したように、クロス時点算出部120は、所定基準値Vrefを挟む2時点でのサンプリング値として、所定基準値Vrefを超える直前と直後の各サンプリング値を用いるが、これに限られない。例えば、クロス時点の算出に用いられる2時点でのサンプリング値は、上り区間内の2時点でのサンプリング値である限り、任意である。従って、例えば、クロス時点の算出に用いられる2時点でのサンプリング値は、センサ出力が最少電圧VMINから立ち上がった後であって所定基準値Vrefを超える前における任意の2時点でのサンプリング値であってもよい。同様に、クロス時点の算出に用いられる2時点でのサンプリング値は、センサ出力が所定基準値Vrefを超えた後であって最大電圧VMAXに至る前における任意の2時点でのサンプリング値であってもよい。
また、実施例1では、上述したように、クロス時点算出部120は、上り区間内の2時点でのサンプリング値に基づいて、クロス時点を算出するが、これに限られない。即ち、クロス時点算出部120は、センサ出力が下降する区間(以下、「下り区間」とも称する)内の2時点でのサンプリング値に基づいて、クロス時点を算出してもよい。下り区間内とは、センサ出力が、最大電圧VMAXから立ち下がり始めた以後であって最少電圧VMINに至る以前の区間を指す。例えば、クロス時点算出部120は、下り区間内の2時点でのサンプリング値であって、所定基準値Vrefを挟む2時点でのサンプリング値に基づいて、クロス時点を算出してもよい。
また、実施例1では、上述したように、所定基準値Vref=(VMAX+VMIN)/2であるが、これに限られない。例えば、所定基準値Vrefは、VMIN<Vref<VMAXの関係を満たす限り、任意である。尚、所定基準値Vref=VMAX(又はVref=VMIN)であってもよく、かかる実施例について、後述の実施例2として説明する。
また、実施例1では、上述したように、クロス時点と、クランク角度がピッチ角Δθ分だけ進角するタイミングとが同じであるが、これらが同期している限り、これに限られない。例えば、クロス時点に対して固定の所定時間前又は後の時点と、クランク角度がピッチ角Δθ分だけ進角するタイミングとが同じであってもよい。
図15は、エンジントルク算出装置10を含むエンジン制御システムの一例を示す図である。
エンジン制御システム2は、車両に搭載される。車両は、上述のように、エンジンのみを駆動源とする車両であってもよいし、ハイブリッド車であってもよい。エンジン制御システム2は、センサ群8と、エンジン制御装置30(エンジン制御部の一例)と、エンジン80と、クランク角度センサ4と、エンジントルク算出装置10とを含む。
センサ群8は、クランク角度センサ4以外の各種車載センサとして、例えば、アクセル開度センサ、車速センサ、レーダセンサ、画像センサ等を含む。
エンジン制御装置30は、エンジン80を電子制御する。尚、エンジン80の電子制御は、例えば、図示しないが、エンジン80の吸気マニホールド内に配置されるスロットルバルブの開度(即ち、スロットル開度)を電子制御することを含んでよい。その他、エンジン80の電子制御は、例えば、エンジン80の燃焼室に噴射される燃料の量や点火時期を電子制御することや、バルブ開閉タイミングを調整するインテークカムシャフトの位相を電子制御することを含んでよい。
エンジン制御装置30は、電子制御ユニット(ECU:Electronic Control Unit)により形成され、例えば図2に示したようなハードウェア構成を有してよい。エンジン制御装置30は、図15に示すように、運転者要求駆動力算出部31と、運転者支援駆動力算出部32と、目標駆動力調停部33と、フィードバック制御部34とを含む。運転者要求駆動力算出部31、運転者支援駆動力算出部32、目標駆動力調停部33、及びフィードバック制御部34は、電子制御ユニットのCPUがプログラムを実行することで実現できる。
運転者要求駆動力算出部31は、車速センサ及びアクセル開度センサからの情報に基づいて、車速及びアクセル開度に応じた運転者要求駆動力(以下、「第1要求駆動力」と称する)を算出する。
運転者支援駆動力算出部32は、レーダセンサ等からの情報に基づいて、運転者による車両の運転を支援するための要求駆動力(以下、「第2要求駆動力」と称する)を算出する。第2要求駆動力は、例えば所定車速で走行するために必要な駆動力、先行車に追従するために必要な駆動力、制限車速を超えないように車速を制限するための駆動力等であってよい。
目標駆動力調停部33は、所定の規則に従って、第1要求駆動力及び第2要求駆動力のいずれかを選択する。例えば、ACC(Adaptive Cruse Control)の実行中は、目標駆動力調停部33は、第1要求駆動力が0である間、第2要求駆動力を選択し、第1要求駆動力が所定閾値より大きくなると、第1要求駆動力を選択する。目標駆動力調停部33は、選択した要求駆動力を、トルク表現[N・m]に変換し、要求駆動トルクとしてフィードバック制御部34に与える。
フィードバック制御部34は、例えば、目標駆動力調停部33から与えられる要求駆動トルクと、エンジントルク算出装置10から与えられる図示トルクの算出値との差分に基づいて、要求駆動トルクが実現されるようにエンジン80の制御目標値を決定してもよい。エンジンの制御目標値は、例えばスロットル開度の目標値や燃料の噴射量の目標値等であってよい。尚、等価的に、図示トルクの算出値に代えて、該図示トルクの算出値に基づく正味トルクの算出値が用いられてもよい。例えば、正味トルクは、図示トルクの算出値からエンジンのフリクショントルクを減算することで算出できる。また、エンジンのフリクショントルクは、例えば、エンジンの回転数および負荷に基づいて算出できる。また、フィードバック制御部34は、エンジントルク算出装置10から与えられる図示トルクの算出値に基づいて、エンジンの制御目標値として点火時期の目標値を決定してもよい。フィードバック制御部34は、決定した制御目標値が実現されるように、エンジン80を制御する。
図15に示すエンジン制御システム2によれば、エンジントルク算出装置10を備え、要求駆動力と図示トルクの算出値との差分に基づいてエンジン80をフィードバック制御できる。上述のようにエンジントルク算出装置10からの図示トルクの算出値の算出精度が高いため、エンジン80の駆動トルクを精度良く制御できる。これにより、例えば過剰に筒内に燃料を噴射する必要がなくなり、エンジン性能が向上し、燃費やドライバビリティが改善される。このようにして、エンジントルク算出装置10をエンジン制御システムの高性能化に有効に利用できる。
尚、図15に示す例では、エンジントルク算出装置10は、エンジン制御装置30とは別に設けられるが、これに限られない。エンジントルク算出装置10の機能の一部又は全部は、エンジン制御装置30により実現されてもよい。
また、図15に示す例では、エンジン制御システム2は、エンジントルク算出装置10による算出結果を用いて制御する対象は、エンジン80であるが、これに限られない。例えば、エンジントルク算出装置10による算出結果は、エンジン80以外の車両駆動装置(例えば、トランスミッション、電気モータ、クラッチ等)の制御にも用いることができる。エンジン80以外の車両駆動装置の制御目標値(例えばトランスミッションの目標ギア段)は、エンジン80の制御目標値に関連する場合があるためである。
また、図15に示す例では、エンジン制御システム2は、運転者支援駆動力算出部32を備えるが、運転者支援駆動力算出部32は省略されてもよい。この場合、目標駆動力調停部33も不要となり、フィードバック制御部34は、運転者要求駆動力算出部31からの第1要求駆動力を常時用いてよい。
[実施例2]
実施例2は、所定基準値Vrefが最大電圧VMAXである点が、上述した実施例1と異なる。実施例2によるエンジントルク算出装置10Aは、上述した実施例1によるエンジントルク算出装置10に対して、ハードウェア構成自体は同じであってよいが、機能が、以下の通り異なる。
図16は、エンジントルク算出装置10Aの機能ブロック図である。実施例2によるエンジントルク算出装置10Aは、上述した実施例1によるエンジントルク算出装置10に対して、以下の点が主に異なる。クロス時点算出部120及びクロス時点記憶部122がそれぞれ最大到達時点算出部140(基準時点算出部の一例)及び最大到達時点記憶部141で置換される。また、クランク角度算出部121、クランク角速度算出部123、及びクランク角加速度算出部130が、それぞれ、クランク角度算出部121A、クランク角速度算出部123A、及びクランク角加速度算出部130Aで置換される。他の構成要素は、上述した実施例1によるエンジントルク算出装置10と実質的に同様であってよく、図16において、同一の参照符号を付して説明を省略する。最大到達時点算出部140、クランク角度算出部121A、クランク角速度算出部123A、及びクランク角加速度算出部130Aは、制御部101が主記憶部102内のプログラムを実行することにより実現できる。また、最大到達時点記憶部141は、例えば主記憶部102のRAMにより実現できる。
最大到達時点算出部140は、上り区間内の2時点でのサンプリング値に基づいて、センサ出力が所定基準値Vref(=最大電圧VMAX)となる時点である最大到達時点(立ち上がりエッジの時点)を算出する。最大到達時点算出部140は、算出した最大到達時点を最大到達時点記憶部141に記憶する。
実施例2では、一例として、最大到達時点算出部140は、上り区間内の2時点でのサンプリング値であって、中間値(=(VMAX+VMIN)/2)を挟む2時点でのサンプリング値に基づいて、最大到達時点を算出する。例えば、最大到達時点算出部140は、サンプル値記憶部114に直近に記憶されるサンプリング値が、中間値未満である状態から中間値を超えたときに、サンプル値記憶部114内の直近の2時点のサンプリング値を取り出す。そして、最大到達時点算出部140は、取り出した2時点のサンプリング値に基づいて、最大到達時点を算出する。
図17は、最大到達時点算出部140による最大到達時点の算出方法の説明図である。図17には、横軸に時間を取り、縦軸に電圧を取り、センサ出力の波形70が示されている。図17には、周期i(=n−3〜n+2)で得られたサンプリング点s(n−3)〜s(n+2)が○印で示される。
具体的には、最大到達時点算出部140は、2時点でのサンプリング値間の差分ΔVと、2時点間の時間dtとに基づいて、2時点間でのセンサ出力の時間変化率βを算出する。図17では、2時点でのサンプリング値間の差分は、ΔVであり、ΔV=v(n)−v(n−1)である。2時点間の時間dtは、サンプリングレートに対応する。従って、2時点間でのセンサ出力の時間変化率βは、β=ΔV/dt=(v(n)−v(n−1))/dtである。そして、最大到達時点算出部140は、算出した時間変化率βに基づいて、最大到達時点tpを算出する。例えば、最大到達時点tpは、時点t(n−1)を基準として、以下の通り算出できる。
tp=(Vref−v(n−1))/β+t(n−1)
或いは、最大到達時点tpは、時点t(n)を基準として、以下の通り算出できる。
tp=(Vref−v(n))/β+t(n)
この算出方法は、センサ出力が、図17に示すように、最大電圧VMAX及び最少電圧VMIN間で線形的に変化する場合に好適である。換言すると、この算出方法は、センサ出力が最大電圧VMAX及び最少電圧VMIN間で一定の時間変化率で変化すると仮定して、センサ出力が所定基準値Vrefとなる立ち上がりエッジ点P2(図17参照)を求めるものである。従って、最大到達時点tpに係る立ち上がりエッジ点P2は、サンプリング点s(n−1)とサンプリング点s(n)とを結んだ直線(傾きはβ)と、所定基準値Vref(=最大電圧VMAX)を表す直線(傾きは0)との交点である。
尚、最大到達時点は、上述した実施例1におけるクロス時点と同様、クランク角度がピッチ角Δθ分だけ進角するタイミングと同期される。
最大到達時点記憶部141は、最大到達時点算出部140により算出された最大到達時点を記憶する記憶領域を有する。記憶領域は、例えば最新の所定数以上の最大到達時点を記憶する容量を備える。最大到達時点記憶部141は、例えばリングバッファであり、最新の所定数以上の最大到達時点を、FIFO形式で保持する。所定数は、クランク角速度算出部123やクランク角加速度算出部130での算出方法に依存するが、例えば2である。
クランク角度算出部121Aは、最大到達時点算出部140により算出された最大到達時点に基づいて、最大到達時点でのクランク角度を算出する。実施例2では、一例として、最大到達時点は、クランク角度がピッチ角Δθ分だけ進角するタイミングとされる。従って、今回の最大到達時点でのクランク角度は、前回の最大到達時点でのクランク角度に対してピッチ角Δθ分を加算することで算出できる。
クランク角速度算出部123Aは、最大到達時点算出部140により算出された最大到達時点に基づいて、クランク角速度を算出する。尚、クランク角速度の算出方法は、「クロス時点」を「最大到達時点」で置換した以外は、実質的に上述した実施例1によるクランク角速度算出部123による同算出方法と同じであり、更なる説明を省略する。
クランク角加速度算出部130Aは、最大到達時点算出部140により算出された最大到達時点と、クランク角速度算出部123Aにより算出されたクランク角速度とに基づいて、クランク角加速度を算出する。尚、クランク角加速度の算出方法は、「クロス時点」を「最大到達時点」で置換した以外は、実質的に上述した実施例1によるクランク角加速度算出部130による同算出方法と同じであり、更なる説明を省略する。
実施例2によっても、上述した実施例1と同様の効果が得られる。即ち、センサ出力が所定基準値Vrefとなる実際の時点を「真値」とすると、実施例2によれば、真値に対する最大到達時点(最大到達時点算出部140により算出される最大到達時点)のずれが、算出周期間で比較的に大きく変動することを抑制できる。具体的には、実施例2によれば、上述のように、算出周期毎に、上り区間内の2時点でのサンプリング値に基づいて、最大到達時点が算出される。最大到達時点は、上述のように上り区間内の2時点間でのセンサ出力の時間変化率βに基づいて算出されるので、算出周期毎に、真値に高い精度で一致する。この結果、真値に対する最大到達時点のずれが、算出周期間で比較的に大きく変動することを抑制できる。よって、実施例2によれば、クランク角速度の算出精度を高めることができる。
次に、図18を参照して、エンジントルク算出装置10Aの動作例について説明する。
図18は、エンジントルク算出装置10Aにより実行されるエンジントルク算出処理の一例を示すフローチャートである。図18に示す処理は、例えばサンプル値取得部111のサンプリングレート毎に実行されてよい。尚、図18に示す処理中は、エンジントルク算出装置10Aにはクランク角度センサ4のセンサ出力が入力され続ける。
ステップS200及びステップS210は、上述の図14のステップS100及びステップS110とそれぞれ同様であってよく、説明を省略する。
ステップS202では、最大到達時点算出部140は、ステップS200でサンプル値取得部111が取得したサンプリング値が中間値(=(VMAX+VMIN)/2)を超えたか否かを判定する。判定結果が"YES"の場合は、ステップS204に進み、判定結果が"NO"の場合は、今回周期の処理はそのまま終了する。
ステップS204では、最大到達時点算出部140は、サンプル値記憶部114内の直近の2時点のサンプリング値を取り出し、取り出した2時点のサンプリング値に基づいて、最大到達時点を算出する。最大到達時点の算出方法は、上述のとおりである。最大到達時点算出部140は、算出した最大到達時点を最大到達時点記憶部141に記憶する。
ステップS206では、クランク角速度算出部123Aは、最大到達時点記憶部141から直近の2つの最大到達時点を取り出し、取り出した直近の2つの最大到達時点と、ピッチ角Δθ(既知)とに基づいて、クランク角速度を算出する。クランク角速度の算出方法は、上述のとおりである。クランク角速度算出部123Aは、算出したクランク角速度をクランク角速度記憶部124に記憶する。
ステップS208では、クランク角加速度算出部130Aは、クランク角速度記憶部124内の直近の2算出周期分のクランク角速度と、最大到達時点記憶部141内の直近の2つの最大到達時点とに基づいて、クランク角加速度を算出する。クランク角加速度の算出方法は、上述のとおりである。
このようにして図18に示す処理によれば、センサ出力が中間値を超える毎に(即ち上り区間が発生する毎に)、現在の図示トルクを精度良く算出できる。このようなエンジントルク算出装置10Aは、リアルタイムで図示トルクを精度良く算出できるので、エンジン制御システムの高性能化に有効に利用できる。例えば、実施例2によるエンジントルク算出装置10Aは、図15に示したエンジン制御システム2のエンジントルク算出装置10(実施例1によるエンジントルク算出装置10)に代えて同様に機能できる。
尚、実施例2では、上述したように、最大到達時点算出部140は、中間値を挟む2時点でのサンプリング値に基づいて、最大到達時点を算出するが、これに限られない。例えば、最大到達時点算出部140は、中間値を挟む2時点でのサンプリング値に、他のサンプリング値を加えた3時点以上でのサンプリング値に基づいて、最大到達時点を算出してもよい。この場合、最大到達時点算出部140は、例えば最小二乗法等により、3時点以上でのサンプリング点に対する近似直線を求め、該近似直線と所定基準値Vref(=最大電圧VMAX)を表す直線(傾き0)との交点に基づいて、最大到達時点を算出してもよい。この場合、近似直線の算出に用いられる3時点以上でのサンプリング点としては、好ましくは、上り区間内のサンプリング点である。
また、実施例2では、上述したように、最大到達時点算出部140は、中間値を挟む2時点でのサンプリング値として、中間値を超える直前と直後の各サンプリング値を用いるが、これに限られない。例えば、最大到達時点の算出に用いられる2時点でのサンプリング値は、上り区間内の2時点でのサンプリング値である限り、任意である。従って、例えば、最大到達時点の算出に用いられる2時点でのサンプリング値は、センサ出力が最少電圧VMINから立ち上がった後であって中間値を超える前における任意の2時点でのサンプリング値であってもよい。同様に、最大到達時点の算出に用いられる2時点でのサンプリング値は、センサ出力が中間値を超えた後であって最大電圧VMAXに至る前における任意の2時点でのサンプリング値であってもよい。
また、実施例2では、上述したように、所定基準値Vrefが最大電圧VMAXであるが、これに限られない。即ち、所定基準値Vrefが最小電圧VMINであってもよい。この場合、最大到達時点算出部140は、最大到達時点に代えて、下り区間内の2時点でのサンプリング値に基づいて、センサ出力が所定基準値Vref(=最小電圧VMIN)となる時点である最小到達時点を算出してよい。例えば、最大到達時点算出部140は、下り区間内の2時点でのサンプリング値であって、中間値を挟む2時点でのサンプリング値に基づいて、最小到達時点を算出してもよい。
また、実施例2では、上述したように、中間値=(VMAX+VMIN)/2が用いられるが、これに限られない。例えば、中間値に代えて、VMIN<Vth<VMAXの関係を満たす他の所定値が使用されてもよい。
また、実施例2では、上述したように、最大到達時点と、クランク角度がピッチ角Δθ分だけ進角するタイミングとが同じであるが、これらが同期している限り、これに限られない。例えば、最大到達時点に対して固定の所定時間前又は後の時点と、クランク角度がピッチ角Δθ分だけ進角するタイミングとが同じであってもよい。
[実施例3]
実施例3は、上り区間と下り区間の双方で算出したクロス時点に基づいてクランク角速度を算出する点が、上述した実施例1と異なる。実施例3によるエンジントルク算出装置10Bは、上述した実施例1によるエンジントルク算出装置10に対して、ハードウェア構成自体は同じであってよいが、機能が、以下の通り異なる。
図19は、エンジントルク算出装置10Bの機能ブロック図である。実施例3によるエンジントルク算出装置10Bは、上述した実施例1によるエンジントルク算出装置10に対して、以下の点が主に異なる。第2クロス時点算出部142が追加される。また、クランク角速度算出部123、クランク角加速度算出部130、及びエンジントルク算出部160が、それぞれクランク角速度算出部123B、クランク角加速度算出部130B、及びエンジントルク算出部160Bで置換される。他の構成要素は、上述した実施例1によるエンジントルク算出装置10と実質的に同様であってよく、図19において、同一の参照符号を付して説明を省略する。第2クロス時点算出部142、クロス時点記憶部122B、クランク角速度算出部123B、及びクランク角加速度算出部130Bは、制御部101が主記憶部102内のプログラムを実行することにより実現できる。尚、実施例3においては、クロス時点算出部120及び第2クロス時点算出部142が、基準時点算出部の一例を形成する。
第2クロス時点算出部142は、下り区間内の2時点でのサンプリング値に基づいて、センサ出力が所定基準値Vrefとなる時点を算出する。
実施例3では、一例として、第2クロス時点算出部142は、下り区間内の2時点でのサンプリング値であって、所定基準値Vrefを挟む2時点でのサンプリング値に基づいて、センサ出力が所定基準値Vrefをクロスする時点であるクロス時点を算出する。以下、区別するときには、クロス時点算出部120により上述のように算出されるクロス時点を、「上りクロス時点」と称し、第2クロス時点算出部142により算出されるクロス時点を、「下りクロス時点」と称する。尚、実施例3では、一例として、所定基準値Vrefは、上述した実施例1と同様、所定基準値Vref=(VMAX+VMIN)/2である。
例えば、第2クロス時点算出部142は、サンプル値記憶部114に直近に記憶されるサンプリング値が、所定基準値Vrefよりも大きい状態から所定基準値Vrefを下回るときに、サンプル値記憶部114内の直近の2時点のサンプリング値を取り出す。そして、第2クロス時点算出部142は、取り出した2時点のサンプリング値に基づいて、下りクロス時点を算出する。第2クロス時点算出部142は、算出した下りクロス時点をクロス時点記憶部122に記憶する。
クランク角速度算出部123Bは、クロス時点算出部120により算出された上りクロス時点に基づいて、クランク角速度を算出すると共に、第2クロス時点算出部142により算出された下りクロス時点に基づいて、クランク角速度を算出する。上りクロス時点に基づいてクランク角速度を算出する方法は、上述のとおりである。また、下りクロス時点に基づいてクランク角速度を算出する方法は、上りクロス時点に基づいてクランク角速度を算出する方法と実質的に同様であるので、説明を簡略化する。具体的には、クランク角速度算出部123Bは、非欠歯区間において、時間軸上で隣接する2つの下りクロス時点間の時間と、ピッチ角Δθとに基づいて、クランク角速度を算出する。以下、区別するときには、上りクロス時点に基づき算出されるクランク角速度を、「第1クランク角速度」と称し、下りクロス時点に基づき算出されるクランク角速度を、「第2クランク角速度」と称する。
図20及び図21は、クランク角速度算出部123Bによる算出される第1クランク角速度及び第2クランク角速度の説明図である。図20では、上りクロス時点tu1〜tu5と、それぞれに対応して算出される第1クランク角速度ωu1〜ωu5とが、センサ出力70の上側に示される。また、図20では、下りクロス時点td1〜td5と、それぞれに対応して算出される第2クランク角速度ωd1〜ωd5とが、センサ出力70の下側に示される。図21には、横軸に時間を取り、縦軸にクランク角速度を取り、第1クランク角速度及び第2クランク角速度の各算出結果の時系列が示される。具体的には、上りクロス時点tu2〜tu8と、それぞれに対応して算出される第1クランク角速度ωu2〜ωu8と、下りクロス時点td2〜td8と、それぞれに対応して算出される第2クランク角速度ωd2〜ωd8とが示される。
クランク角加速度算出部130Bは、クランク角速度算出部123Bより算出されたクランク角速度に基づいて、クランク角加速度を算出する。クランク角加速度算出部130Bは、クランク角速度記憶部124から直近の2算出周期分の第1クランク角速度と、クロス時点記憶部122から直近の2つの上りクロス時点とに基づいて、クランク角加速度を算出する。また、クランク角加速度算出部130Bは、クランク角速度記憶部124から直近の2算出周期分の第2クランク角速度と、クロス時点記憶部122から直近の2つの下りクロス時点とに基づいて、クランク角加速度を算出する。クランク角加速度を算出する方法は、上述のとおりである。以下、区別するときには、上りクロス時点に基づき算出されるクランク角加速度を、「第1クランク角加速度」と称し、下りクロス時点に基づき算出されるクランク角加速度を、「第2クランク角加速度」と称する。
エンジントルク算出部160Bは、クランク角加速度算出部130Bにより算出されたクランク角加速度に基づいて、エンジントルクを算出する。具体的には、エンジントルク算出部160Bは、クランク角速度算出部123Bより第1クランク角加速度が算出されると、該第1クランク角加速度に基づいて、図示トルクを算出する。また、エンジントルク算出部160Bは、クランク角速度算出部123Bより第2クランク角加速度が算出されると、該第2クランク角加速度に基づいて、図示トルクを算出する。クランク角加速度から図示トルクを算出する方法は、上述のとおりである。
図22は、エンジントルク算出装置10Bにより実行されるエンジントルク算出処理の一例を示すフローチャートである。図22に示す処理は、例えばサンプル値取得部111のサンプリングレート毎に実行されてよい。尚、図22に示す処理中は、エンジントルク算出装置10Bにはクランク角度センサ4のセンサ出力が入力され続ける。
ステップS100〜ステップS110の処理は、図14で説明した通りである。但し、ステップS102において、判定結果が"YES"の場合は、ステップS104に進み、判定結果が"NO"の場合は、ステップS302に進む。
ステップS302では、第2クロス時点算出部142は、ステップS100でサンプル値取得部111が取得したサンプリング値が所定基準値Vrefを負の方向にクロスしたか否かを判定する。例えば、第2クロス時点算出部142は、前回のサンプリング値が所定基準値Vrefよりも大きいが、今回のサンプリング値が所定基準値Vref未満である場合は、サンプリング値が所定基準値Vrefを負の方向にクロスしたと判定する。判定結果が"YES"の場合は、ステップS304に進み、判定結果が"NO"の場合は、今回周期の処理はそのまま終了する。
ステップS304では、第2クロス時点算出部142は、サンプル値記憶部114内の直近の2時点のサンプリング値を取り出し、取り出した2時点のサンプリング値に基づいて、下りクロス時点を算出する。下りクロス時点の算出方法は、上述のとおりである。第2クロス時点算出部142は、算出した下りクロス時点をクロス時点記憶部122に記憶する。
ステップS306では、クランク角速度算出部123Bは、クロス時点記憶部122から直近の2つの下りクロス時点を取り出し、取り出した直近の2つの下りクロス時点と、ピッチ角Δθ(既知)とに基づいて、第2クランク角速度を算出する。第2クランク角速度の算出方法は、上述のとおりである。クランク角速度算出部123Bは、算出した第2クランク角速度をクランク角速度記憶部124に記憶する。
ステップS308では、クランク角加速度算出部130Bは、クランク角速度記憶部124内の直近の2算出周期分の第2クランク角速度と、クロス時点記憶部122内の直近の2つの下りクロス時点とに基づいて、第2クランク角加速度を算出する。第2クランク角加速度の算出方法は、上述のとおりである。
ステップS310では、エンジントルク算出部160Bは、ステップS308で算出された第2クランク角加速度に基づいて、図示トルクを算出する。図示トルクの算出方法は、上述のとおりである。
このようにして図22に示す処理によれば、センサ出力が所定基準値Vrefを超える毎に(即ち上りクロス時点が発生する毎に)、及び、センサ出力が所定基準値Vrefを下回る毎に(即ち下りクロス時点が発生する毎に)、現在の図示トルクを精度良く算出できる。これにより、例えばサンプリングレートを必要以上に高めることなく、リアルタイムに短い周期で図示トルクを精度良く算出できる。このようなエンジントルク算出装置10は、リアルタイムで図示トルクを精度良く算出できるので、エンジン制御システムの高性能化に有効に利用できる。例えば、実施例3によるエンジントルク算出装置10Bは、図15に示したエンジン制御システム2のエンジントルク算出装置10(実施例1によるエンジントルク算出装置10)に代えて同様に機能できる。
尚、実施例3では、上述したように、第2クロス時点算出部142は、所定基準値Vrefを挟む2時点でのサンプリング値に基づいて、下りクロス時点を算出するが、これに限られない。例えば、第2クロス時点算出部142は、所定基準値Vrefを挟む2時点でのサンプリング値に、他のサンプリング値を加えた3時点以上でのサンプリング値に基づいて、下りクロス時点を算出してもよい。この場合、下りクロス時点の算出に用いられる3時点以上でのサンプリング点としては、好ましくは、下り区間内のサンプリング点である。
また、実施例3では、上述したように、第2クロス時点算出部142は、所定基準値Vrefを挟む2時点でのサンプリング値として、所定基準値Vrefを超える直前と直後の各サンプリング値を用いるが、これに限られない。例えば、下りクロス時点の算出に用いられる2時点でのサンプリング値は、下り区間内の2時点でのサンプリング値である限り、任意である。従って、例えば、下りクロス時点の算出に用いられる2時点でのサンプリング値は、センサ出力が最大電圧VMAXから下降し始めた後であって所定基準値Vrefを下回る前における任意の2時点でのサンプリング値であってもよい。同様に、下りクロス時点の算出に用いられる2時点でのサンプリング値は、センサ出力が所定基準値Vrefを下回った後であって最少電圧VMINに至る前における任意の2時点でのサンプリング値であってもよい。
また、実施例3では、上述したように、クランク角加速度算出部130Bは、上りクロス時点と下りクロス時点とを独立的に(別々に)用いて、第1クランク角加速度及び第2クランク角加速度をそれぞれ算出するが、これに限られない。例えば、クランク角加速度算出部130Bは、直近の第1及び第2クランク角速度の組み合わせと、直近の上りクロス時点及び下りクロス時点の組み合わせとに基づいて、クランク角加速度を算出することとしてもよい。
[実施例4]
実施例4は、振幅がエンジン回転数等に応じて変化しうるクランク角度センサ4Cのセンサ出力に基づいて、クランク角速度を算出する点が、上述した実施例1と異なる。具体的には、上述した実施例1では、センサ出力は、固定の最大電圧VMAXと固定の最少電圧VMINとの間を周期的に上下するが、実施例4では、センサ出力は、最大電圧及び最少電圧が変化しうる。このようなセンサ出力の特性を持つクランク角度センサ4Cは、例えば電磁ピックアップ(MPU:Magnetic Pickup)式である。
図23は、電磁ピックアップ式のクランク角度センサ4Cの説明図である。図23には、クランク角度センサ4Cが概略的な断面図で示されると共に、クランク角度センサ4Cに関連してクランクロータ5が図示されている。クランク角度センサ4Cは、検出コイル41と、マグネット42と、ポールピース43とを含む。図23に示す例では、クランクロータ5は、磁性体のインボリュート歯車である。クランクロータ5が回転すると、磁性体であるクランクロータ5の歯の部分がポールピース43に近づいたり離れたりすることを繰り返す。これに伴い、マグネット42とポールピース43とにより形成される磁路の状態が変化し、検出コイル41を貫通する磁束が変化する。具体的には、クランクロータ5の回転に伴い、クランクロータ5の歯がポールピース43に接近すると検出コイル41を貫通する磁束が増え、クランクロータ5の歯がポールピース43から遠ざかると検出コイル41を貫通する磁束が減るという状態を繰り返す。検出コイル41に発生する誘導起電力Vは、以下のとおりである。
ここで、Nはコイルの巻き数であり、φ
mは検出コイル41を貫通する磁束である。誘導起電力Vは、クランクロータ5の回転に伴い、図24に示すように変化する。図24に示すような誘導起電力Vの波形は、クランク角度センサ4のセンサ出力として取り出される。尚、図24において、Y1部は、クランクロータ5の欠歯部に起因した波形特徴を示す。センサ出力は、図24に示すように、クランク角度0〜720CAの区間において、クランクシャフトの回転に伴い周期的に0を跨いで(即ち0Vをクロスして)振幅の最大点及び最小点が発生する区間と、上死点検出用の欠歯区間とを含む。尚、非欠歯区間においては、センサ出力が0Vを負から正の方向(上り)にクロスする毎に、クランク角度がピッチ角Δθだけ進角することになる。
実施例4によるエンジントルク算出装置10Cは、上述した実施例1によるエンジントルク算出装置10に対して、ハードウェア構成自体は同じであってよいが、機能が、以下の通り異なる。
図25は、エンジントルク算出装置10Cの機能ブロック図である。実施例4によるエンジントルク算出装置10Cは、上述した実施例1によるエンジントルク算出装置10に対して、クロス時点算出部120がクロス時点算出部120Cで置換された点が主に異なる。他の構成要素は、上述した実施例1によるエンジントルク算出装置10と実質的に同様であってよく、図25において、同一の参照符号を付して説明を省略する。クロス時点算出部120Cは、制御部101が主記憶部102内のプログラムを実行することにより実現できる。
クロス時点算出部120Cは、センサ出力の上り区間内の2時点でのサンプリング値に基づいて、センサ出力が所定基準値Vrefとなる時点を算出する。所定基準値Vrefは、任意であるが、実施例4では、一例として、0[V]である。実施例4では、一例として、クロス時点算出部120Cは、センサ出力の上り区間内の、0を挟む2時点でのサンプリング値に基づいて、センサ出力が0をクロスする時点であるクロス時点を算出する。
図26は、クロス時点算出部120Cによるクロス時点の算出方法の説明図である。図26には、横軸に時間を取り、縦軸に電圧を取り、センサ出力の波形70が示されている。図26には、サンプリング周期i(=n−3〜n+2)で得られたサンプリング点s(n−3)〜s(n+2)が○印で示される。図26に示す例では、所定基準値Vrefを挟む2時点でのサンプリング値は、サンプリング点s(n−1)での電圧値v(n−1)及びサンプリング点s(n)での電圧値v(n)である。
クロス時点算出部120Cは、上述した実施例1と同様、2時点でのサンプリング値間の差分ΔVと、2時点間の時間dtとに基づいて、2時点間でのセンサ出力の時間変化率βを算出できる。図26では、2時点でのサンプリング値間の差分ΔVは、ΔV=v(n)−v(n−1)である。従って、2時点間でのセンサ出力の時間変化率βは、β=ΔV/dt=(v(n)−v(n−1))/dtである。そして、クロス時点算出部120Cは、算出した時間変化率βに基づいて、クロス時点tcを、以下の通り算出できる。
tc=(Vref−v(n−1))/β+t(n−1)
変形例では、クロス時点算出部120Cは、センサ出力の上り区間内の3時点以上でのサンプリング値に基づいて、センサ出力が0をクロスする時点であるクロス時点を算出してもよい。例えば、図26に示す例では、センサ出力の上り区間内の3時点以上でのサンプリング値は、サンプリング点s(n−1)での電圧値v(n−1)、サンプリング点s(n)での電圧値v(n)、及びサンプリング点s(n+1)での電圧値v(n+1)である。この場合、クロス時点算出部120Cは、センサ出力の上り区間内の3時点以上でのサンプリング点に対して近似曲線又は近似直線を導出し、導出した近似曲線又は近似直線に基づいて、クロス時点を算出できる。近似曲線の導出には、例えば、ラグランジュ補間、スプライン補間、sinc関数による補間などが用いられてもよい。変形例によれば、上述した時間変化率βを用いる場合よりも、真値に対する精度の高いクロス時点を導出できる。
実施例4によっても、上述した実施例1と同様の効果が得られる。尚、実施例4では、電磁ピックアップ式のクランク角度センサ4Cが用いられるが、例えばホール素子を用いたクランク角度センサ(ホール効果を利用した磁気センサ)が用いられてもよい。
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
例えば、上述した実施例1(実施例2〜4においても同様)では、A/Dコンバータ110はエンジントルク算出装置10内に設けられるが、A/Dコンバータ110は、クランク角度センサ4を含むセンサユニット内に組み込まれてもよい。
また、上述した実施例1(実施例2〜4においても同様)では、エンジントルク算出装置10が、エンジン状態パラメータ算出装置の一例であり、算出対象のエンジン状態パラメータは、図示トルクであった。しかしながら、算出対象のエンジン状態パラメータは、図示トルク以外のエンジントルク(例えば、正味トルクや、図示トルクから外部負荷トルクを差し引いたトルク等)であってもよい。或いは、算出対象のエンジン状態パラメータは、エンジントルクに関連する他のパラメータ(例えば、クランク角度、クランク角速度、クランク角加速度等)であってもよい。例えば、上述した実施例1(実施例2〜4においても同様)において、エンジントルク算出装置10の一部(例えば、図7のX1部)は、クランク角度算出装置として具現化できる。この場合、クランク角度算出装置は、クロス時点算出部120で算出したクロス時点で立ち上がりエッジとなるクランク角信号(Hi/Loの2値のデジタル信号)を発生させてもよい。また、この場合、クランク角度算出装置は、クランク角度センサ4を含むセンサユニット内に組み込まれてもよい。同様に、上述した実施例1(実施例2〜4においても同様)において、エンジントルク算出装置10の一部(例えば、図7のX1部+X2部)は、クランク角速度算出装置として具現化できる。また、同様に、上述した実施例1(実施例2〜4においても同様)において、エンジントルク算出装置10の一部(例えば、図7のX1部+X2部+X3部)は、クランク角加速度算出装置として具現化できる。
また、上述した実施例1(実施例2〜4においても同様)では、一例としてエンジンを備える車両を対象としたが、エンジンを備える限り、対象は、任意である。例えば、対象は、エンジンを備える鉄道車両、エンジンを備える船舶、エンジンを備える建設機械、エンジンを備えるバイク(車両の一種)、エンジンを備える航空機、エンジンを備えるヘリコプター等であってもよい。
なお、以上の実施例に関し、さらに以下の付記を開示する。
(付記1)
エンジンのクランクシャフトに対して設けられるクランク角度センサのセンサ出力の複数時点でのサンプリング値を取得する取得部と、
前記センサ出力が上昇又は下降する区間内の2時点での前記サンプリング値に基づいて、前記センサ出力が所定基準値となる時点である基準時点を算出する基準時点算出部と、
前記基準時点算出部により算出される基準時点に基づいて、エンジンの状態を表すパラメータを算出するパラメータ算出部とを含む、エンジン状態パラメータ算出装置。
(付記2)
前記パラメータは、クランク角度、クランク角速度、クランク角加速度、及びエンジントルクのうちの少なくともいずれか1つを含む、付記1に記載のエンジン状態パラメータ算出装置。
(付記3)
前記基準時点算出部は、前記2時点での前記サンプリング値間の差分と、前記2時点間の時間とに基づいて、前記2時点間での前記センサ出力の時間変化率を算出し、前記時間変化率に基づいて、前記基準時点を算出する、付記1又は2に記載のエンジン状態パラメータ算出装置。
(付記4)
前記基準時点算出部は、前記2時点のうちの一方の時点での前記サンプリング値と前記所定基準値との差分を前記時間変化率で割ることで得られる時間が、前記一方の時点及び前記基準時点間の時間に一致するように、前記基準時点を算出する、付記3に記載のエンジン状態パラメータ算出装置。
(付記5)
前記2時点での前記サンプリング値は、所定値を挟み、前記所定値は、前記センサ出力の最大値未満且つ前記センサ出力の最小値よりも大きい、付記1〜4のうちのいずれか1項に記載のエンジン状態パラメータ算出装置。
(付記6)
前記所定値は、前記所定基準値と等しい、付記5に記載のエンジン状態パラメータ算出装置。
(付記7)
前記基準時点算出部は、前記2時点を含む前記区間内の3時点以上での前記サンプリング値に基づいて、前記基準時点を算出する、付記1又は2に記載のエンジン状態パラメータ算出装置。
(付記8)
前記基準時点算出部は、前記3時点以上の前記サンプリング値に基づいて、前記区間内の前記センサ出力の近似曲線又は近似直線を導出し、前記近似曲線又は近似直線に基づいて、前記基準時点を算出する、付記7に記載のエンジン状態パラメータ算出装置。
(付記9)
前記センサ出力は、クランクシャフトの回転に伴い所定のピッチ角毎に上昇及び下降する第1区間と、上死点検出用の第2区間とを含み、
前記パラメータ算出部は、前記第1区間において、時間軸上で隣接する2つの前記基準時点間の時間と、前記所定のピッチ角とに基づいて、前記パラメータを算出する、付記1〜8のうちのいずれか1項に記載のエンジン状態パラメータ算出装置。
(付記10)
前記基準時点算出部により算出される前記基準時点は、前記センサ出力が上昇する上り区間における第1基準時点、及び、前記センサ出力が下降する下り区間における第2基準時点のうちの少なくともいずれか一方である、付記1〜9のうちのいずれか1項に記載のエンジン状態パラメータ算出装置。
(付記11)
前記基準時点算出部により算出される前記基準時点は、前記第1基準時点及び前記第2基準時点を含み、
前記パラメータは、前記第1基準時点に基づく第1クランク角速度と、前記第2基準時点に基づく第2クランク角速度とを含む、付記10に記載のエンジン状態パラメータ算出装置。
(付記12)
前記取得部は、A/Dコンバータを介して、所定のサンプリングレートで前記センサ出力をサンプリングすることで複数時点での前記サンプリング値を取得する、付記1〜11のうちのいずれか1項に記載のエンジン状態パラメータ算出装置。
(付記13)
前記センサ出力は、固定の最大値と固定の最小値との間で変動し、
前記基準時点の算出に用いられる前記サンプリング値は、前記最大値よりも小さく且つ前記最小値よりも大きい、付記1〜12のうちのいずれか1項に記載のエンジン状態パラメータ算出装置。
(付記14)
前記基準時点算出部は、時間と前記センサ出力とを2軸とする2次元座標系において、前記2時点のうちの一方の時点と、該一方の時点での前記サンプリング値とで定まる点を通り、前記時間変化率を傾きとする直線が、前記所定基準値を表す直線と交わる交点の座標に基づいて、前記基準時点を算出する、付記3に記載のエンジン状態パラメータ算出装置。
(付記15)
前記センサ出力は、固定の最大値と固定の最小値との間で変動し、
前記所定基準値は、前記最大値未満且つ前記最小値よりも大きく、
前記2時点での前記サンプリング値は、前記所定基準値を挟む、付記1〜4のうちのいずれか1項に記載のエンジン状態パラメータ算出装置。
(付記16)
エンジンのクランクシャフトに対して設けられるクランク角度センサのセンサ出力の複数時点でのサンプリング値を取得し、
前記センサ出力が上昇又は下降する区間内の2時点での前記サンプリング値に基づいて、前記センサ出力が所定基準値となる時点である基準時点を算出し、
前記基準時点に基づいて、エンジンの状態を表すパラメータを算出することを含む、コンピュータにより実行されるエンジン状態パラメータ算出方法。
(付記17)
エンジンと、
エンジンのクランクシャフトに対して設けられるクランク角度センサと、
前記クランク角度センサのセンサ出力の複数時点でのサンプリング値を取得する取得部と、
前記センサ出力が上昇又は下降する区間内の2時点での前記サンプリング値に基づいて、前記センサ出力が所定基準値となる時点である基準時点を算出する基準時点算出部と、
前記基準時点算出部により算出される基準時点に基づいて、エンジンを制御するエンジン制御部とを含む、エンジン制御システム。