(57)【要約】【課題】正確なサンプリング値を取得すること。【解決手段】実施形態に係る制御装置は、取得部と、変換部と、選択部とを備える。取得部は、内燃機関のクランク角を検出するクランク角センサからクランク角信号を取得する。変換部は、所定の入力データをクランク角信号の間隔よりも短い一定周期でサンプリング値へ変換する。選択部は、取得部によって取得されたクランク角信号に対応する入力データがサンプリング値へ変換されるまでの遅延時間に基づいて当該クランク角信号に対応するサンプリング値を選択する。【選択図】図１
2019157842.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関のクランク角を検出するクランク角センサからクランク角信号を取得する取得部と、
所定の入力データを前記クランク角信号の間隔よりも短い一定周期でサンプリング値へ変換する変換部と、
前記取得部によって取得された前記クランク角信号に対応する前記入力データが前記サンプリング値へ変換されるまでの遅延時間に基づいて当該クランク角信号に対応する前記サンプリング値を選択する選択部と
を備えることを特徴とする制御装置。
【請求項２】
前記選択部は、
前記クランク角センサが前記クランク角を検出する際に生じる検出遅延時間と、前記取得部が前記クランク角センサから前記クランク角信号を取得する際に生じる取得遅延時間と、前記変換部が前記サンプリング値へ変換する際に生じる変換遅延時間とに基づいて当該クランク角信号に対応する前記サンプリング値を選択すること
を特徴とする請求項１に記載の制御装置。
【請求項３】
前記サンプリング値を格納する複数のバッファと、
前記クランク角信号に基づき、当該クランク角信号に対応する前記サンプリング値が前記バッファに格納される前に前記バッファを切り替える切替部と
を備えること
を特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記クランク角信号に基づき、前記クランク角信号に対応する前記サンプリング値が前記バッファへ格納される前の不要な前記サンプリング値が格納される格納タイミングを算出し、前記格納タイミングで前記切替部が前記バッファを切り替えるように割込み予約を行う算出部
を備えることを特徴とする請求項３に記載の制御装置。
【請求項５】
内燃機関のクランク角を検出するクランク角センサからクランク角信号を取得する取得工程と、
所定の入力データを前記クランク角信号の間隔よりも短い一定周期でサンプリング値へ変換する変換工程と、
前記取得工程によって取得された前記クランク角信号に対応する前記入力データが前記サンプリング値へ変換されるまでの遅延時間に基づいて当該クランク角信号に対応する前記サンプリング値を選択する選択工程と
を含むことを特徴とするデータ同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置およびデータ同期方法に関する。
【背景技術】
【０００２】
従来、センサ出力をクランク角に同期してセンサ出力をＡＤ変換して取得するエンジン制御装置がある。かかるエンジン制御装置は、例えば、気筒内の燃焼圧をクランク角に同期させて取得し、クランク角と燃焼圧とに基づき、気筒内の熱発生量を算出する（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１８５１１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、クランク角は、エンジン回転数に依存するのでＡＤ変換のサンプリング間隔が一定とならない。このため、従来技術では、ＡＤ変換後のサンプリング値についてノイズを除去するデジタルフィルタ処理を行うことができなかった。このため、従来技術では、サンプリング値にノイズが重畳するおそれがあり、正確なサンプリング値を取得することができない。
【０００５】
本発明は、上記に鑑みてなされたものであって、正確なサンプリング値を取得することができる制御装置およびデータ同期方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、実施形態に係る制御装置は、取得部と、変換部と、選択部とを備える。前記取得部は、内燃機関のクランク角を検出するクランク角センサからクランク角信号を取得する。前記変換部は、所定の入力データを前記クランク角信号の間隔よりも短い一定周期でサンプリング値へ変換する。前記選択部は、前記取得部によって取得された前記クランク角信号に対応する前記入力データが前記サンプリング値へ変換されるまでの遅延時間に基づいて当該クランク角信号に対応する前記サンプリング値を選択する。
【発明の効果】
【０００７】
本発明によれば、正確なサンプリング値を取得することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、データ同期方法の概要を示す図である。
【図２】図２は、制御装置のブロック図である。
【図３】図３は、選択部による処理の具体例を示す図である。
【図４】図４は、算出部による処理の具体例を示す図である。
【図５】図５は、制御装置の動作を説明するタイミングチャートである。
【図６】図６は、制御装置が実行する処理手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、実施形態に係る制御装置およびデータ同期方法について説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。
【００１０】
また、以下では、内燃機関(エンジン)の各気筒にそれぞれ設けられ、エンジンの気筒内の燃焼圧を検出する燃焼圧センサ６１から入力される所定のデータをクランク角に同期して取得する場合を例に挙げて説明する。ただし、所定のデータを出力するセンサは、燃焼圧センサ６１に限られず、その他のセンサや機器であってもよい。
【００１１】
まず、図１を用いて実施形態に係るデータ同期方法の概要について説明する。図１は、データ同期方法の概要を示す図である。かかるデータ同期方法は、制御装置１によって実行される。
【００１２】
図１に示すように、制御装置１は、燃焼圧センサ６１およびクランク角センサ６２に接続される。燃焼圧センサ６１は、内燃機関の各気筒内の燃焼圧を検出するセンサであり、ＣＰＳ(Cylinder  Pressure  Sensor)とも称される。
【００１３】
クランク角センサ６２は、エンジンのクランク軸の回転角度を検出するセンサであり、クランク角の回転に伴い所定の角度間隔でクランク角信号を制御装置１へ出力する。
【００１４】
ところで、エンジン制御装置は、クランク角と燃焼圧とに基づいて各気筒内の熱発生量を算出し、かかる熱発生量に基づいてエンジンの制御を行う。
【００１５】
このため、従来技術では、クランク角信号に同期させたタイミングで燃焼圧についてＡＤ変換を行うことで、クランク角信号に対応する燃焼圧を取得していた。言い換えれば、従来技術では、クランク角信号をトリガとしてＡＤ変換を行っていた。
【００１６】
しかしながら、クランク角信号は、エンジンの回転数に依存するので、クランク角信号が入力される間隔もエンジン回転数に依存する。このため、クランク角信号に同期させてＡＤ変換を行うと、ＡＤ変換を行う間隔も一定にならない。
【００１７】
したがって、従来技術では、ＡＤ変換後のサンプリング値に対してノイズを除去するデジタルフィルタ処理を行うことができず、正確なサンプリング値を得ることが困難であった。
【００１８】
そこで、実施形態に係るデータ同期方法では、一定の間隔でＡＤ変換を行うこととし、クランク角信号に対してＡＤ変換後のサンプリング値を対応付けることとした。
【００１９】
なお、図１では、クランク角信号、入力データおよびサンプリング値の時系列的変化を示す。クランク角信号は、制御装置１が取得するクランク角信号を示し、入力データは、燃焼圧センサ６１から制御装置１へ入力されるアナログのデータである。また、サンプリング値は、入力値に対してＡＤ変換後のデジタルのデータである。実施形態に係るデータ同期方法では、クランク角信号の有無にかかわらず、極めて短い一定周期（μｍｓｅｃオーダ）でＡＤ変換を行う。
【００２０】
ここで、図１に示すように、制御装置１は、ＡＤ変換を行う分だけ、入力データから遅れてサンプリング値を取得することとなる。すなわち、クランク角信号がｈｉｇｈになる時刻ｔ１に対応するサンプリング値は、時刻ｔ１から遅延時間Ｔｃだけ遅れた時刻ｔ２のサンプリング値となる。
【００２１】
つまり、実施形態に係るデータ同期方法では、クランク角信号に対応する入力データがサンプリング値へ変換されるまでの遅延時間Ｔｃに基づいて当該クランク角信号に対応するサンプリング値を選択する。
【００２２】
これにより、クランク角信号に対して本来のサンプリング値を対応付けることが可能となる。また、実施形態に係るデータ同期方法では、一定周期でＡＤ変換を行うため、サンプリング値に対してデジタルフィルタ処理を行うことが可能となる。したがって、実施形態に係るデータ同期方法によれば、正確なサンプリング値を取得することが可能となる。
【００２３】
なお、実施形態に係るデータ同期方法では、クランク角センサ６２がクランク角信号を取得する際に生じる遅延時間および制御装置１がクランク角センサ６２からクランク角信号を取得する際に生じる遅延時間に基づき、クランク角信号に対応するサンプリング値を対応付けることも可能であるが、この点の詳細については図３を用いて後述する。
【００２４】
ところで、実施形態に係るデータ同期方法では、極めて短い周期でＡＤ変換を行うため、サンプリング値が膨大なデータ量となる。このため、いずれかのタイミングで、サンプリング値を格納するバッファを切り替える必要が生じる。
【００２５】
このため、実施形態に係るデータ同期方法では、不要なサンプリング値がバッファに格納されるタイミングで、バッファの切り替えを行うことも可能であるが、この点の詳細については図４を用いて後述する。
【００２６】
次に、図２を用いて実施形態に係る制御装置１の構成例について説明する。図２は、制御装置１のブロック図である。なお、図１では、上記の燃焼圧センサ６１、クランク角センサ６２をあわせて示す。
【００２７】
制御装置１は、変換部２と、転送部３と、制御部４と、記憶部５とを備える。変換部２は、燃焼圧センサ６１から入力されるアナログの入力データをデジタルのサンプリング値へＡＤ変換を行う。
【００２８】
変換部２は、極めて短い一定周期でＡＤ変換を行い、ＡＤ変換後のサンプリング値を転送部３へ順次出力する。なお、一定周期とは、クランク角信号の間隔よりも短いことが好ましい。また、例えば、クランク角センサ６２および変換部２は、例えば、エンジンの気筒毎に設けられる。
【００２９】
転送部３は、いわゆるＤＭＡ(Direct  Memory  Access)コントローラであり、変換部２から入力されるサンプリング値を記憶部５へ転送し、記憶部５が有するバッファ(第１バッファ５１ａ、第２バッファ５１ｂのうちいずれか)へ順次書き込みを行う。また、転送部３は、後述するように制御部４によって転送のオン／オフが制御される。
【００３０】
制御部４は、取得部４１と、選択部４２と、切替部４３と、算出部４４と、エンジン制御部４５とを備える。制御部４は、例えば、ＣＰＵ（Central  Processing  Unit）、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＨＤＤ（Hard  Disk  Drive）、入出力ポートなどを有するコンピュータや各種の回路を含む。
【００３１】
コンピュータのＣＰＵは、例えば、ＲＯＭに記憶されたプログラムを読み出して実行することによって、制御部４の取得部４１、選択部４２、切替部４３、算出部４４およびエンジン制御部４５として機能する。
【００３２】
また、制御部４の取得部４１、選択部４２、切替部４３、算出部４４およびエンジン制御部４５の少なくともいずれか一部または全部をＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等のハードウェアで構成することもできる。
【００３３】
また、記憶部５は、第１バッファ５１ａと、第２バッファ５１ｂとを備える。例えば、第１バッファ５１ａおよび第２バッファ５１ｂは、それぞれＲＡＭで構成される。
【００３４】
第１バッファ５１ａおよび第２バッファ５１ｂには、転送部３から転送されるサンプリング値が書き込まれ、各サンプリング値に対して後述する選択部４２によってクランク角が対応付けられる。以下では、第１バッファ５１ａおよび第２バッファ５１ｂを総称してバッファ５１とも記載する。
【００３５】
また、第１バッファ５１ａおよび第２バッファ５１ｂのメモリ容量は、それぞれ有限である。このため、後述する切替部４３によってサンプリング値が転送されるバッファ５１が切り替えられるが、この点の詳細については、図５を用いて後述する。
【００３６】
なお、ここでは、記憶部５が２つのバッファ５１（第１バッファ５１ａ、第２バッファ５１ｂ）を備える場合について示したが、バッファ５１は、１つであってもよく、３つ以上であってもよい。
【００３７】
制御部４の取得部４１は、内燃機関のクランク角を検出するクランク角センサ６２からクランク角信号を取得する。取得部４１は、クランク角の回転に伴い所定の角度間隔でクランク角信号を取得することとなる。
【００３８】
このため、取得部４１が前回のクランク角信号を取得してから今回のクランク角信号を取得するまでの期間が長いほど、エンジンの回転数が遅いことを意味し、かかる期間が短いほど、エンジンの回転数が早いことを意味する。また、取得部４１は、クランク角信号を取得毎に、選択部４２へ通知する。
【００３９】
選択部４２は、取得部４１によって取得されたクランク角信号に対応する入力データがサンプリング値へ変換されるまでの遅延時間Ｔｃに基づいて当該クランク角信号に対応するサンプリング値を選択する。
【００４０】
ここで、遅延時間Ｔｃは、変換遅延時間Ｔｃ１と、検出遅延時間Ｔｃ２と、取得遅延時間Ｔｃ３とを含む。図３は、選択部４２による処理の具体例を示す図である。
【００４１】
なお、図３のＡに示す本来のクランク角は、実際のクランク角を示し、図３のＢに示す検出クランク角信号は、クランク角センサ６２が検出したクランク角信号を示す。また、図３のＣに示す取得タイミングは、取得部４１がクランク角信号を取得するタイミングを示し、図３のＤに示す入力データは、燃焼圧センサ６１から入力されるアナログのデータを示す。
【００４２】
そして、図３のＥに示すサンプリング値は、入力データをＡＤ変換した後の値を示す。また、以下の説明では、クランク角信号が３０ＣＡ(Crank  Angle)毎に入力される場合について説明する。
【００４３】
図３のＡに示すように、本来のクランク角が時刻ｔ１１に３０ＣＡになったものとする。このとき、図３のＢに示すように、クランク角センサ６２が検出する検出クランク角信号は、時刻ｔ１１よりも遅く時刻ｔ１２で３０ＣＡとなる。
【００４４】
つまり、クランク角センサ６２によるクランク角の検出遅れが生じ、クランク角センサ６２は、３０ＣＡに対応する本来のクランク角から検出遅延時間Ｔｃ２だけ遅れて検出することとなる。
【００４５】
すなわち、検出遅延時間Ｔｃ２は、クランク角センサ６２がクランク角を検出する際に生じる電気的遅延に基づく時間である。一般的にエンジン回転数が早くなるほど、検出遅延時間Ｔｃ２が長くなることが知られている。選択部４２は、例えば、エンジン回転数と検出遅延時間Ｔｃ２との相関を示すマップを参照し、検出遅延時間Ｔｃ２を求めることができる。
【００４６】
すなわち、選択部４２は、クランク角信号の間隔からエンジン回転数を算出し、かかるエンジン回転数に基づいて検出遅延時間Ｔｃ２を算出することが可能である。また、上記のマップは、例えば、実験やシミュレーション等によって予め作成することができる。
【００４７】
その後、図３のＣに示すように、取得部４１がクランク角センサ６２から検出クランク角信号を取得する取得タイミングは、時刻ｔ１２から取得遅延時間Ｔｃ３だけ遅れた時刻ｔ１３となる。
【００４８】
これは、制御部４が検出クランク角信号を取得する際に、制御部４（ＣＰＵ）に対する割込み処理を行ったうえで検出クランク角信号を取得するためである。すなわち、取得遅延時間Ｔｃ３は、検出クランク角信号を取得する際の割込み処理に基づく遅延時間である。本実施形態では、取得遅延時間Ｔｃ３が一定の値であるものとして説明する。
【００４９】
このため、制御部４は、時刻ｔ１１から検出遅延時間Ｔｃ２および取得遅延時間Ｔｃ３を加算した時刻ｔ１３においてクランク角が３０ＣＡとなったことを認識することとなる。
【００５０】
したがって、選択部４２は、検出クランク角信号を取得した時刻ｔ１３から検出遅延時間Ｔｃ２および取得遅延時間Ｔｃ３を差し引くことで、実際にクランク角が３０ＣＡになる時刻ｔ１１を算出することが可能となる。
【００５１】
また、図３のＤに示すように、３０ＣＡとなる時刻ｔ１１に対応する入力データのサンプリング値は、時刻ｔ１１から変換遅延時間Ｔｃ１だけ遅れた時刻ｔ１４に対応する。変換遅延時間Ｔｃ１は、ＡＤ変換の処理速度に依存するので、制御装置１の性能等に基づき、予め算出することが可能である。
【００５２】
このため、選択部４２は、時刻ｔ１１から変換遅延時間Ｔｃ１を加算した時刻ｔ１４のサンプリング値を３０ＣＡのサンプリング値として選択することが可能となる。
【００５３】
つまり、選択部４２は、まず、取得部４１が検出クランク角信号を取得する時刻ｔ１３から検出遅延時間Ｔｃ２および取得遅延時間Ｔｃ３に基づき、本来の３０ＣＡの時刻ｔ１１を算出する。その後、選択部４２は、時刻ｔ１１から変換遅延時間Ｔｃ１を加算した時刻ｔ１４におけるサンプリング値を３０ＣＡのサンプリング値として選択する。
【００５４】
このように、選択部４２は、変換遅延時間Ｔｃ１に加えて検出遅延時間Ｔｃ２および取得遅延時間Ｔｃ３に基づいてクランク角信号に対応するサンプリング値を選択する。これにより、クランク角信号に対応するサンプリング値を正確に選択することが可能となる。
【００５５】
なお、選択部４２は、転送部３がサンプリング値をバッファ５１へ転送する際に、遅延時間が生じる場合、かかる遅延時間に基づいてバッファ５１からクランク角信号に対応するサンプリング値を選択することも可能である。
【００５６】
また、ここでは、選択部４２が、クランク角信号に対応するサンプリング値を選択する場合について説明したが、各クランク角に対応するサンプリング値を選択することも可能である。言い換えれば、各サンプリング値に対してクランク角を対応付けることも可能である。
【００５７】
例えば、選択部４２は、後述する算出部４４により算出されるＣＡ時間Ｔ６(図４参照)に基づき、各クランク角に対応するサンプリング値を選択する。そして、選択部４２は、バッファ５１に格納されたサンプリング値に対して各クランク角の対応付けを行う。
【００５８】
なお、上記のように、変換遅延時間Ｔｃ１および取得遅延時間Ｔｃ３は、一定の値であり、検出遅延時間Ｔｃ２のみがエンジン回転数に応じて変動する。ただし、エンジン回転数による検出遅延時間Ｔｃ２の差異が無視できるほど短い場合、検出遅延時間Ｔｃ２は、一定の値であってもよい。
【００５９】
かかる場合に、遅延時間Ｔｃは、エンジンの回転数によらず、一定の値となる。このため、かかる場合に、選択部４２は、クランク角信号の取得タイミング(時刻ｔ１３)から入力データがサンプリング値へ変換(時刻ｔ１４)されるまでの時間Ｔ４を一定の値としてクランク角信号に対応するサンプリング値を選択することにしてもよい。
【００６０】
図２の説明に戻り、切替部４３について説明する。切替部４３は、クランク角信号に基づき、当該クランク角信号に対応するサンプリング値がバッファ５１に格納されるよりも前にバッファ５１を切り替える。また、切替部４３は、後述する算出部４４によって算出された格納タイミングでバッファ５１を切り替える。この点の詳細については、図５を用いて後述する。
【００６１】
算出部４４は、クランク角信号に基づき、クランク角信号に対応するサンプリング値がバッファ５１に格納されるよりも前の不要なサンプリング値が格納される格納タイミングを算出し、当該格納タイミングで切替部４３がバッファ５１を切り替えるように割込み予約を行う。
【００６２】
ここで、図４を用いて算出部４４による処理の具体例について説明する。図４は、算出部４４による処理の具体例を示す図である。なお、ここでは、３０ＣＡを含む２ＣＡ置きのサンプリング値が必要であり、２９ＣＡを含む２ＣＡ置きのサンプリング値が不要である場合について説明する。
【００６３】
また、図４のＤには、図３のＤに示した入力データに代えて、２９ＣＡタイミングを示す。図４のＣに示すように、取得部４１が、時刻ｔ２１において０ＣＡに対応する検出クランク角信号を取得し、その後、時刻ｔ２５において３０ＣＡに対応する検出クランク角信号を取得したものとする。
【００６４】
かかる場合に、算出部４４は、前回の検出クランク角信号を取得（時刻ｔ２１）してから今回の検出クランク角信号を取得（時刻ｔ２５）するまでの間隔時間Ｔ５から不要なサンプリング値がバッファ５１に格納される格納タイミングを算出する。
【００６５】
上述したように、本実施形態では、３０ＣＡ毎にクランク角が入力されるので、算出部４４は、例えば、間隔時間Ｔ５に対して３０ＣＡで除算することで、１ＣＡ分の間隔時間を示すＣＡ時間Ｔ６を算出する。
【００６６】
３０ＣＡのサンプリング値が格納される時刻ｔ２７からＣＡ時間Ｔ６を差し引いた時刻ｔ２６において、２９ＣＡのサンプリング値がバッファ５１に格納される格納タイミングとなる。
【００６７】
つまり、算出部４４は、３０ＣＡのサンプリング値がバッファ５１に格納される直前の不要なサンプリング値がバッファ５１に格納されるタイミングを算出する。
【００６８】
なお、算出部４４は、本来のクランク角が２９ＣＡとなる時刻を算出し、かかる時刻から変換遅延時間Ｔｃ１に基づき、２９ＣＡのサンプリング値がバッファ５１に格納される格納タイミングを算出することにしてもよい。
【００６９】
次に、図５を用いて制御部４による一連の動作について説明する。図５は、制御装置１の動作を説明するタイミングチャートである。図５のＡに示す取得タイミングは、上記の検出クランク角信号を取得したタイミングを示す。
【００７０】
図５のＢに示すＣＰＵは、制御部４による処理動作を示し、図５のＣに示すバッファ５１は、サンプリング値が格納されるバッファ５１を示す。また、図５のＥに示す転送部３は、転送部３の動作を示し、図５のＤに示す変換部２は、変換部２による動作を示す。
【００７１】
図５のＡに示すように、例えば、時刻ｔ３１で上記の検出クランク角信号を取得すると、図５のＢに示すように、ＣＰＵは、時刻ｔ３１から格納タイミングの算出を行う。ここでの格納タイミングは、不要なサンプリング値がバッファ５１へ格納されるタイミングと、検出クランク角信号に対応するサンプリング値が格納されるタイミングを含む。
【００７２】
その後、ＣＰＵは、不要なサンプリング値がバッファ５１へ格納される格納タイミングでバッファ５１が切り替わるように、割込み予約を行う。図５のＢに示す例では、時刻ｔ３３からｔ３５の期間にバッファ５１を切り替える場合について示している。
【００７３】
同図に示す例では、時刻ｔ３３から時刻ｔ３５の期間は、不要なサンプリング値（２９ＣＡに相当）がバッファ５１に格納される期間であり、時刻ｔ３５以降に検出クランク角信号に対応する必要なサンプリング値（３０ＣＡに相当）がバッファ５１に格納される場合を示す。
【００７４】
また、このとき、ＣＰＵは、バッファ５１を切り替える期間(時刻ｔ３３〜ｔ３５)に、転送部３に対してバッファ５１へのサンプリング値の転送中止についても予約を行う。
【００７５】
その後、ＣＰＵは、時刻ｔ３２から他処理を行い、時刻ｔ３３より上記の割り込み予約に従ってバッファ５１の切り替えを行う。ＣＰＵは、一旦、サンプリング値の取得を停止した後に、バッファ５１の切り替えを行う。
【００７６】
図５のＣに示す例では、第１バッファ５１ａから第２バッファ５１ｂへバッファ５１が切り替わる場合について示している。その後、図５のＢに示すように、ＣＰＵは、時刻ｔ３５においてサンプリング値の取得を再開し、図５のＤに示すように、転送部３は、サンプリング値の転送を再開する。これにより、転送部３によって第２バッファ５１ｂにサンプリング値が書き込まれることとなる。
【００７７】
このように、ＣＰＵは、不要なサンプリング値がバッファ５１へ格納される格納タイミングでバッファ５１が切り替わるように割込み予約を行う。
【００７８】
これにより、クランク角信号に対応する必要なサンプリング値を欠落させることなく、バッファ５１に格納することが可能となる。なお、クランク角信号に対応するサンプリング値のみが必要である場合、ＣＰＵ(切替部４３)は、取得タイミング(時刻ｔ３１)でバッファ５１を切り替えることにしてもよい。かかる場合、クランク角信号に対応するサンプリング値がバッファ５１に格納される前にバッファ５１を切り替えることができるので、クランク角信号に対応するサンプリング値を確実にバッファ５１に格納することが可能となる。
【００７９】
図２の説明に戻り、エンジン制御部４５について説明する。エンジン制御部４５は、バッファ５１に格納されたサンプリング値に基づいてエンジンの内部状態を推定し、内部状態に応じてエンジンを制御する。
【００８０】
例えば、エンジン制御部４５は、図示しないエンジンのＥＧＲ（Exhaust  Gas  Recirculation）バルブを制御し、エンジンの内部状態に応じて排ガスを各気筒へ循環させる制御を行う。
【００８１】
本実施形態では、入力データに対して一定の間隔でＡＤ変換を行うので、一定の間隔でサンプリング値が得られる。このため、エンジン制御部４５は、サンプリング値に対しデジタルデジタルフィルタ処理を行うことで、ノイズが除去されたサンプリング値を得ることが可能となる。
【００８２】
言い換えれば、エンジン制御部４５は、正確なサンプリング値を取得することが可能となる。このため、エンジン制御部４５は、正確なサンプリング値に基づいてエンジンの内部状態(例えば、各気筒内の燃焼状態やノック発生角度)を精度よく推定することが可能となる。
【００８３】
また、本実施形態では、極めて短い時間間隔でＡＤ変換が行われる。したがって、バッファ５１には、極めて短い時間間隔のサンプリング値が格納されることとなる。このため、エンジン制御部４５は、多くのサンプリング値を用いてエンジンの内部状態を精度よく推定することが可能となる。
【００８４】
したがって、エンジン制御部４５は、精度よく推定したエンジンの内部状態に基づいてエンジンを制御することが可能となるので、エンジンの制御を精度よく行うことが可能となる。
【００８５】
特に、エンジン制御部４５が、ＥＧＲ（Exhaust  Gas  Recirculation）バルブを制御する場合、排気ガスの排出量を低減するとともに、車両の燃費を向上させることが可能である。
【００８６】
次に、図６を用いて実施形態に係る制御装置１が実行する処理手順について説明する。図６は、制御装置１が実行する処理手順を示すフローチャートであり、制御部４によって繰り返し実行される。
【００８７】
図６に示すように、まず、取得部４１は、クランク角信号を取得すると（ステップＳ１０１）、算出部４４は、遅延時間Ｔｃに基づいてクランク角信号に対応するサンプリング値の格納タイミングを算出する（ステップＳ１０２）。
【００８８】
続いて、算出部４４は、不要となるサンプリング値の格納タイミングを算出し（ステップＳ１０３）、かかるタイミングでバッファ５１が切り替わるように割込み予約を行う（ステップＳ１０４）。
【００８９】
続いて、切替部４３は、格納タイミングか否かを判定し（ステップＳ１０５）、格納タイミングである場合（ステップＳ１０５，Ｙｅｓ）、バッファ５１を切り替える（ステップＳ１０６）。そして、選択部４２は、バッファ５１に格納されたサンプリング値からクランク角信号に対応するサンプリング値を選択して（ステップＳ１０７）、処理を終了する。なお、上述のように、選択部４２は、クランク角信号に対応するクランク角以外の各クランク角について、対応するサンプリング値を選択することも可能である。
【００９０】
一方、切替部４３は、格納タイミングでない場合（ステップＳ１０５，Ｎｏ）、格納タイミングとなるまでステップＳ１０５の処理を継続して行う。
【００９１】
上述したように、実施形態に係る制御装置１は、取得部４１と、変換部２と、選択部４２とを備える。取得部４１は、内燃機関のクランク角を検出するクランク角センサ６２からクランク角信号を取得する。変換部２は、所定の入力データをクランク角信号の間隔よりも短い一定周期でサンプリング値へ変換する。
【００９２】
選択部４２は、取得部４１によって取得されたクランク角信号に対応する入力データがサンプリング値へ変換されるまでの遅延時間Ｔｃに基づいて当該クランク角信号に対応するサンプリング値を選択する。したがって、実施形態に係る制御装置１は、正確なサンプリング値を取得することが可能となる。
【００９３】
ところで、上述した実施形態では、複数のバッファ５１を備える場合について説明したが、これに限定されるものではない。すなわち、バッファ５１は、古いデータから順次上書きされるリングバッファ方式のバッファであってもよい。
【００９４】
また、上述した実施形態では、クランク角信号の取得毎に、バッファ５１を切り替える場合について説明したが、これに限定されるものではない。すなわち、例えば、バッファ５１に格納可能な残りのメモリ容量に基づいてバッファ５１の切り替えを行うか否かを判定することにしてもよい。
【００９５】
すなわち、かかるメモリ容量が少ない場合に、バッファ５１の切り替えを行い、かかるメモリ容量が多い場合には、バッファ５１の切り替えを行わないようにしてもよい。
【００９６】
また、クランク角毎にバッファ５１に格納されるサンプリング値のデータ数は、エンジンの回転数によって変動する。このため、メモリ容量に加えて、エンジン回転数に基づいてバッファ５１の切り替えを行うか否かを判定することにしてもよい。
【００９７】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【００９８】
１    制御装置
２    変換部
３    転送部
４１    取得部
４２    選択部
４３    切替部
４４    算出部
４５    エンジン制御部
５１    バッファ
５１ａ  第１バッファ
５１ｂ  第２バッファ
６１    燃焼圧センサ(検出機器の一例)
６２    クランク角センサ
Ｔｃ    遅延時間
Ｔｃ１    変換遅延時間(遅延時間の一例)
Ｔｃ２    検出遅延時間(遅延時間の一例)
Ｔｃ３    取得遅延時間(遅延時間の一例)
【図１】
2019157842.tif 000003
【図２】
2019157842.tif 000004
【図３】
2019157842.tif 000005
【図４】
2019157842.tif 000006
【図５】
2019157842.tif 000007
【図６】
2019157842.tif 000008