(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0026】
(音分離問題、伝達関数の推定問題)
まず、
図1を参照し、実施形態に係るノッキング判定装置を説明する前提として、信号分離問題の一例である音分離問題、及び、伝達関数の推定問題について説明する。その後、ノッキング判定装置について説明する。なお、各実施形態において、同一の手段には同一の符号を付し、説明を省略した。
【0027】
内燃機関の一例である車両用のエンジン1の試験では、例えば、点火タイミングの進角量の調整等の試験もしくは調整された点火タイミングの確認試験が行われる。これらの点火タイミングの試験において、ノッキングによってピストンが破損しないように、ノッキングの有無が判定される。このノッキングの有無は、熟練した試験者の主観により判定されており、その判定結果を裏付ける情報を外部に提示できない。そこで、ノッキング有無の判定結果を裏付ける情報を推定したいという要望がある。
【0028】
ここで、ノッキングとは、エンジン1の気筒内において発生した異常燃焼が生じさせる圧力変動(衝撃波)が気筒の固有振動数で増幅されてエンジン1に大きな振動が発生する現象である。つまり、エンジン1には気筒内での異常燃焼の際に発生する圧力変動に基づく振動が生じ、この振動がエンジン1から音として放射される。そこで、エンジン1の近傍で測定した音からノッキング音の性質を学習し、ノッキング音を分離したいが、教師データとして理想的なノッキング音の測定が困難である。このため、エンジン1の燃焼騒音の逆算により、エンジン1の筒内圧を推定する手法を検討する。以後、エンジン1の近傍で測定した音を「近傍音」と記載し、推定したエンジン1の筒内圧を「推定筒内圧」と記載する場合がある。
【0029】
エンジン1の燃焼騒音は、エンジン1の筒内圧の時間周波数成分に構造減衰補正量を乗じたものとなる。構造減衰補正量とは、エンジン燃焼時の筒内圧がエンジン1を通り、音となって音圧センサに到達するまでの伝達特性のことである。ここで、エンジン1の燃焼騒音レベルが音圧であることや、構造減衰補正量を乗算していることに着目する。すなわち、音圧であるエンジン1の近傍音に構造減衰補正量の逆数を乗算すれば、エンジン1の推定筒内圧が求められる。そこで、エンジン1の近傍音からエンジン1の筒内圧を推定する手法を検討する。
【0030】
図1(a)に示すように、ノッキング発生時、エンジン1の近傍音には、エンジン1自体の音であるエンジン音、ノッキング音、及び、ノッキング以外の雑音であるノイズ成分が含まれている。このエンジン1の近傍音にマスクを乗じることで、ノッキング音のみを分離できる。なお、マスクは、雑音を除去し(雑音成分=0)、かつ、ノッキング音を抽出するものである(ノッキング音成分=1)。従って、マスクを正しく推定できれば、エンジン1の近傍音からノッキング音を分離して抽出できるので、ノッキング音を分離する音分離問題として捉えることができる。
【0031】
図1(b)に示すように、ノッキング音に構造減衰補正量の逆数を乗算すれば、ノッキング時におけるエンジン1の筒内圧を推定することができる。この構造減衰補正量の逆数は、ある入力物理量(例えば、音圧)を所望の物理量(例えば、筒内圧)に変換する伝達関数であると言える。従って、伝達関数を正しく推定できれば、ノッキング音からノッキング発生時の筒内圧を求められるので、伝達関数の推定問題として捉えることができる。
なお、
図1では、エンジン1の近傍音や筒内圧は、これらを短時間フーリエ変換した時間−周波数マップを表している。
【0032】
前記した音分離問題及び伝達関数の推定問題は、以下のように計算式で表すことができる。エンジン1の近傍音yのパワースペクトル|Y|
2から、エンジン1の筒内圧xのパワースペクトル|X|
2を求めることとする。この場合、パワースペクトル|Y|
2は、式(1)〜式(4)で表される。
【0033】
【数1】
【数2】
【数3】
【数4】
【0034】
但し、各式では、以下のとおり定義される。
x:エンジンの筒内圧
X:エンジンの筒内圧のフーリエスペクトル
y:エンジンの近傍音
Y:エンジンの近傍音のフーリエスペクトル
h:インパルス応答
H:インパルス応答の伝達関数
e:ノッキング音以外の雑音信号
E:雑音信号のフーリエスペクトル
【0035】
ここで、式(5)〜式(7)のように、スペクトルの加法性が近似的に成立することとする。この場合、エンジン1の筒内圧xのパワースペクトル推定値|X^|
2は、以下の式(8)で表される。なお、αは、パワースペクトルのマスクである(0≦α≦1)。
【0036】
【数5】
【数6】
【数7】
【数8】
【0037】
従って、以下の手順でエンジン1の筒内圧を推定できる。まず、エンジン1の近傍音yと、教師データとして、実測したエンジン1の筒内圧xとを収集する。以後、実測したエンジン1の筒内圧を「実測筒内圧」と記載する場合がある。エンジン1の近傍音y及びエンジン1の実測筒内圧xを用いて、式(8)の未知数であるマスクαを生成するネットワークの重み及び伝達関数Hをニューラルネットワークにより学習する。そして、学習したネットワークが生成したマスクα及び伝達関数Hを用いて、試験時に測定したエンジン1の近傍音yから、エンジン1の筒内圧xを推定する。
【0038】
(第1実施形態)
[ノッキング判定システムの全体構成]
図2を参照し、第1実施形態に係るノッキング判定システム100の全体構成について説明する。
図2に示すように、ノッキング判定システム100は、試験対象となるエンジン1のノッキングの有無を判定するものであり、音圧センサ4と、筒内圧センサ5と、データ収集装置6と、モニタ7と、ノッキング判定装置10とを備える。
【0039】
図2に示すように、試験対象のエンジン1は、車両3に搭載されている。なお、試験対象のエンジン1は、車両3に搭載されない状態、例えば単独の状態で用いられてもよい。エンジン1には、エンジン1の駆動を制御するエンジンECU(Electronic Control Unit)2が接続されている。エンジンECU2は、エンジンコントロールユニットであって、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random access memory)、その他の記憶装置等で構成されている。エンジンECU2は、ROMや記憶装置に記憶されたプログラムをCPUで演算処理することで、エンジン1の駆動制御に必要な各種情報をエンジンECU2の外部から取得しながらエンジン1の駆動を制御する。
【0040】
エンジンECU2は、エンジン1の現在の回転角度を表す角度情報をデータ収集装置6に出力する。角度情報には、例えば回転パルスとクランク角度パルスとが含まれる。回転パルスは、クランク軸の回転角度が原点として定められた角度で出力される信号であって、例えば、クランク軸が1回転するごとに1パルス出力される。クランク角度パルスは、クランク軸の回転角度が単位角度進むごとに出力される信号であって、例えば、1°毎に1パルスが出力される場合、吸入、圧縮、燃焼及び排気の4行程を1サイクルとする4ストロークエンジンにおいて、1サイクルにクランク軸が回転する2回転の間に720パルス出力される。なお、角度情報がデータ収集装置6に入力されるのであれば、エンジンECU2を介さず、クランク軸の回転角度の原点を検出する原点センサや、クランク軸の回転角度を検出する角度センサからの角度情報がデータ収集装置6に入力されてもよい。
【0041】
エンジン1の近くには、音圧センサ4が設置されている。音圧センサ4は、エンジン1から発生する音を検出し、この検出した音に基づく音圧信号をデータ収集装置6に出力する。詳述すると、音圧センサ4は、エンジン1に発生する圧力変動に基づく物理量の一例である音圧を検出し、検出された音圧の大きさを示す音圧信号を生成する。よって、エンジン1にノッキングが発生していないとき、音圧センサ4から出力される音圧信号には、ノッキングに相関のある音は含まれない。一方、エンジン1にノッキングが発生しているとき、音圧センサ4から出力される音圧信号には、ノッキングに相関のある音が含まれている。
【0042】
エンジン1には、エンジン1の筒内圧を検出する筒内圧センサ5を取り付ける。筒内圧センサ5は、筒内の燃焼ガス振動に応じた波形成分を含む筒内圧信号をデータ収集装置6に出力する。ここで、エンジン1にノッキングが発生していないとき、筒内圧センサ5から出力される筒内圧信号には、ノッキングに相関した成分が含まれない。一方、エンジン1にノッキングが発生しているとき、筒内圧センサ5から出力される筒内圧信号には、ノッキングに相関した成分が含まれている。筒内圧センサ5は、点火プラグと一体化したものを用いてもよいし、点火プラグとは別個に構成されたものを用いてもよい。
【0043】
データ収集装置6は、音圧センサ4からの音圧信号を入力してA/D変換する。また、データ収集装置6は、音圧信号を入力するタイミングで、エンジンECU2から現在の角度情報を取得する。そして、データ収集装置6は、角度情報に基づいてエンジン1の1サイクル分の音圧信号を取得する。よって、4ストローク単気筒エンジンを例とすると、データ収集装置6は、単位時間当たりのエンジン1の回転速度に応じた数、例えば、回転速度が3000[r/min]であれば一分間に1500個の音圧信号を生成する。また、データ収集装置6は、一部又は全部の音圧信号に角度情報を関連付ける。そして、データ収集装置6は、角度情報が関連付けられた音圧信号をノッキング判定装置10に出力する。なお、データ収集装置6は、音圧信号を一時的に保持したり、一旦蓄えたりしてからノッキング判定装置10に出力してもよい。また、データ収集装置6は、音圧信号に時刻情報を関連付けてもよい。
【0044】
モニタ7は、ノッキング判定装置10が推定したエンジン1の筒内圧や、ノッキング判定装置10によるノッキング有無の判定結果を表示する。なお、モニタ7の一例として、一般的なフラットパネルディスプレイがある。
【0045】
ノッキング判定装置10は、マスクαを生成するネットワークの重み及び伝達関数Hを学習する。また、ノッキング判定装置10は、学習したネットワークにより生成されたマスクα及び伝達関数Hを用いて、エンジン1の筒内圧を推定し、推定したエンジン1の筒内圧に基づいて、ノッキングの有無を判定する。そして、ノッキング判定装置10は、推定したエンジン1の筒内圧や、ノッキング有無の判定結果をモニタ7に表示する。
【0046】
ここで、ノッキング判定装置10は、CPU、ROM、RAM、その他の記憶装置等で構成されている。ノッキング判定装置10は、ROMや記憶装置に記憶されているプログラムをCPUで演算処理する。なお、ノッキング判定装置10は、以下の処理を実行するプログラムを有するパーソナルコンピュータ(PC)等であってもよい。
【0047】
本実施形態では、ノッキング判定装置10は、学習モード、閾値算出モード、判定モードという3つの動作モードで動作する。1つ目の学習モードは、マスクαを生成するネットワークの重み及び伝達関数Hを学習する動作モードである。2つ目の閾値算出モードは、マスクαを生成するネットワークの重み及び伝達関数Hの学習後、ノッキングの有無を閾値判定するときの閾値を算出する動作モードである。3つ目の判定モードは、学習したネットワークにより生成されたマスクα及び伝達関数Hを用いて、ノッキングの有無を判定する動作モードである。これら3つの動作モードは、任意に切り替えることができる。例えば、図示を省略した管理装置により、CAN(Controller Area Network)を介して、ノッキング判定装置10の動作モードを切り替えることができる。また、図示を省略したマウス、キーボード等の操作手段を用いて、ノッキング判定装置10の動作モードを切り替えてもよい。
【0048】
学習モードの場合、ノッキングが発生する運転条件、及び、ノッキングが発生しない運転条件でそれぞれエンジン1を運転し、データ収集装置6が、教師データとして、筒内圧信号を収集することとする。このとき、データ収集装置6は、筒内圧センサ5からの筒内圧信号を入力してA/D変換し、これを音圧信号に関連付けておく。
閾値算出モードの場合、ノッキングが発生しない運転条件でエンジン1を運転し、データ収集装置6が、音圧信号を収集することとする。
なお、閾値算出モード又は判定モードの場合、データ収集装置6が、筒内圧信号を収集する必要はない。
【0049】
[ノッキング判定装置の構成]
図3を参照し、ノッキング判定装置10の構成について説明する。
図3に示すように、ノッキング判定装置10は、信号切出部11と、スペクトル算出部12と、信号記憶部13と、スイッチ14と、学習処理部(学習装置)20と、判定処理部(推定装置)30とを備える。ここで、ノッキング判定装置10は、データ収集装置6から、音圧信号と、この音圧信号に関連付けられた角度情報とが入力される。さらに、学習モードの場合、ノッキング判定装置10は、データ収集装置6から筒内圧信号が入力される。
【0050】
信号切出部11は、データ収集装置6から入力された角度情報に基づいて、所定の切出角度範囲を音圧信号から切り出す。例えば、切出角度範囲は、点火位置やTDC(Top Dead Center)付近から約90°の角度範囲である。本実施形態では、点火タイミングが変更されても切出角度範囲は固定されたままであるが、点火タイミングの変更に応じて切出角度範囲を変更してもよい。
【0051】
図4に示すように、一般的には、エンジン1が4気筒の場合、1気筒目と2気筒目の燃焼行程が540°ずれる。また、1気筒目と3気筒目の燃焼行程が180°ずれ、1気筒目と4気筒目の燃焼行程が360°ずれる。そこで、信号切出部11は、角度情報から各気筒の燃焼行程タイミングを算出し、算出した燃焼行程タイミングに合わせて、4気筒分の音圧信号を切り出す。このとき、信号切出部11は、切り出した音圧信号に、各気筒を一意に識別する識別情報を関連付けてもよい。
その後、信号切出部11は、切り出した音圧信号をスペクトル算出部12に出力する。
【0052】
スペクトル算出部12は、信号切出部11が切り出した音圧信号に対して時間周波数領域で離散フーリエ変換を行い、音圧信号の時間周波数成分(スペクトル)を算出する。離散フーリエ変換は、例えば、離散フーリエ変換を高速に計算する高速フーリエ変換により行われる。
その後、スペクトル算出部12は、時間周波数領域に変換した音圧信号を信号記憶部13に書き込む。
【0053】
信号記憶部13は、スペクトル算出部12が変換した音圧信号を記憶するメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の記憶装置である。なお、学習モードの場合、信号記憶部13は、データ収集装置6から入力された筒内圧信号を、教師データとして記憶してもよい。
【0054】
スイッチ14は、ノッキング判定装置10の動作モードに応じて、信号記憶部13に記憶されている信号の出力先を選択し、選択した出力先に信号を出力する。学習モードの場合、スイッチ14は、後記する学習部21を出力先として選択し、信号記憶部13に記憶されている音圧信号及び筒内圧信号を学習部21に出力する。閾値算出モードの場合、スイッチ14は、後記する第1推定部23を出力先として選択し、信号記憶部13に記憶されている音圧信号を第1推定部23に出力する。判定モードの場合、スイッチ14は、後記する第2推定部31を出力先として選択し、信号記憶部13に記憶されている音圧信号を第2推定部31に出力する。
【0055】
<学習処理部>
学習処理部20は、学習モードにおいて、マスクαを生成するネットワークの重み及び伝達関数Hを学習する学習処理(
図9)を行い、閾値算出モードにおいて、エンジン1の推定筒内圧の閾値判定に用いる閾値を算出する閾値算出処理(
図10)を行う。
図3に示すように、学習処理部20は、学習部21と、学習済みパラメータ記憶部22と、第1推定部23と、閾値算出部24と、閾値記憶部25とを備える。
【0056】
学習部21は、学習モードにおいて、ニューラルネットワークにより、雑音を除去し、かつ、ノッキング音を抽出するマスクαを生成するネットワークの重みと、学習したネットワークにより生成されたマスクαで抽出したノッキング音をノッキング発生時のエンジン1の筒内圧に変換する伝達関数Hとを学習する。本実施形態では、学習部21は、スイッチ14から入力された音圧信号及び筒内圧信号を用いて、マスクαを生成するネットワークの重み及び伝達関数Hを学習する。
その後、学習部21は、学習したマスクαを生成するネットワークの重み及び伝達関数Hを学習済みパラメータ記憶部22に書き込む。
【0057】
<<マスクαを生成するネットワークの重み及び伝達関数Hの学習>>
図5〜
図7を参照し、マスクαを生成するネットワーク(マスク生成ネットワーク94A)の重み及び伝達関数Hの学習について説明する。
図5に示すように、雑音が含まれるエンジン近傍音90にマスクαを乗じると、その雑音が除去されたエンジン近傍音91を求めることができる。そして、雑音が除去されたエンジン近傍音91に伝達関数Hを乗じると、音圧から筒内圧に物理量が変換され、エンジン1の推定筒内圧92を求めることができる。
【0058】
なお、雑音が含まれるエンジン近傍音90を短時間フーリエ変換した時間−周波数マップの一例を
図6(a)に示し、マスクαの時間−周波数マップの一例を
図6(b)に示した。また、雑音を除去したエンジン近傍音91の時間−周波数マップの一例を
図6(c)に示し、推定筒内圧92の時間−周波数マップの一例を
図6(d)に示した。
【0059】
そこで、学習部21は、教師データである実測筒内圧93と推定筒内圧92との誤差が最小となるように、ニューラルネットワーク94により、マスクαを生成するネットワークの重み及び伝達関数Hを学習すればよい。本実施形態では、学習部21は、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)によりマスクαを生成するネットワークの重みを学習する。さらに、学習部21は、伝達関数Hとして、音圧信号の時間周波数成分に乗じる重みを学習する。
【0060】
図7に示すように、マスクαを生成するネットワークの重みを学習する畳み込みニューラルネットワークの一例として、U−Net95がある。このU−Net95は、Encoder‐Decoderモデルの一種で、画像認識や音の分離に使用されている深層学習の一手法である。音の分離において、U−Net95では、下向きパス96(Encoder)で畳み込み(ストライドは2以上)を行い、階層97が深くなるにつれて音の特徴を抽出する。一方、上向きパス98(Decoder)では、抽出された音の特徴から逆畳み込みとUPサンプリング(膨張)を行うことによりマスクαを生成する。ここまでは、一般的なEncoder‐Decoderモデルの構成である。さらに、U−Net95では、各Encoderの畳み込み層からの出力99をDecoderの畳み込み層にマージする。これにより、U−Net95では、一般的なEncoder‐Decoderモデルよりも高精度なマスクαを生成できる。
【0061】
このように、学習部21がU−Netでマスクαを生成するネットワークの重みを学習するので、学習したネットワークにより生成されたマスクαがエンジン1の近傍音に応じて適切に変化するものとなる。これにより、ノッキング判定装置10は、エンジン1の筒内圧を正確に推定することができる。
【0062】
なお、U−Netは、下記の参考文献に詳細に記載されているため、これ以上の説明を省略する。
参考文献:SINGING VOICE SEPARATION WITH DEEP U-NET CONVOLUTIONAL NETWORKS, Andreas Jansson , Proceedings of the 18th ISMIR Conference, Suzhou, China, October 23-27, 2017
【0063】
また、
図7に示すように、伝達関数Hは、周波数軸方向で時間不変のフィルタとして機能する。本実施形態では、マスクαにより抽出されたノッキング音(雑音を除去したエンジン近傍音91)と同じ時間幅まで伝達関数Hを複製し、マスクαにより抽出されたノッキング音(雑音を除去したエンジン近傍音91)と複製した伝達関数Hとの要素積を求める。
【0064】
図3に戻り、ノッキング判定装置10の構成について説明を続ける。
学習済みパラメータ記憶部22は、学習済みのパラメータ(マスクαを生成するネットワークの重み及び伝達関数H)を記憶するメモリ、HDD、SSD等の記憶装置である。
【0065】
第1推定部23は、閾値算出モードにおいて、ニューラルネットワークにより、学習したネットワークにより生成されたマスクα及び伝達関数Hを用いて、音圧信号からエンジン1の筒内圧を推定する。この第1推定部23が推定した筒内圧は、後記する閾値を算出するときに利用される。具体的には、第1推定部23は、学習済みパラメータ記憶部22のマスクαを生成するネットワークの重み及び伝達関数Hが反映されたニューラルネットワークに、スイッチ14から入力された音圧信号を入力する。すると、学習したネットワークにより生成されたマスクαが、音圧信号に含まれる雑音を除去し、かつ、音圧信号からノッキング音を抽出する。そして、伝達関数Hが、マスクαにより抽出されたノッキング音をノッキング発生時の筒内圧に変換する。
その後、第1推定部23は、推定筒内圧を閾値算出部24に出力する。
【0066】
閾値算出部24は、第1推定部23が推定したエンジン1の筒内圧に基づいて閾値を算出する。具体的には、閾値算出部24は、推定筒内圧の時間周波数成分を所定時間(例えば、エンジン1の1サイクル)毎に総和する。例えば、
図6(d)の推定筒内圧を総和すると、気筒別に1つのスコアが求められる。続いて、閾値算出部24は、所定時間毎に総和した推定筒内圧の中央値を算出する。例えば、閾値算出部24は、全てのサイクルについて、推定筒内圧の総和の中央値を算出する。このとき、閾値算出部24は、任意の値で予め設定したマージンを中央値に加算し、閾値とする。なお、閾値算出部24は、気筒毎に推定筒内圧を総和して中央値を求め、気筒毎の閾値を算出してもよい。一方、閾値算出部24は、各気筒で推定筒内圧を総和し、全気筒で中央値を求め、全気筒で共通の閾値を算出してもよい。
その後、閾値算出部24は、算出した閾値を閾値記憶部25に書き込む。
【0067】
閾値記憶部25は、閾値算出部24が算出した閾値を記憶するメモリ、HDD、SSD等の記憶装置である。
【0068】
判定処理部30は、判定モードにおいて、音圧信号からエンジン1の筒内圧を推定し、ノッキングの有無を判定する判定処理(
図11)を行う。
図3に示すように、判定処理部30は、第2推定部31と、閾値判定部32とを備える。
【0069】
第2推定部31は、判定モードにおいて、ニューラルネットワークにより、学習したネットワークにより生成されたマスクα及び伝達関数Hを用いて、音圧信号から推定筒内圧を推定する。この第2推定部31が推定した筒内圧は、後記する閾値判定に利用される。なお、第2推定部31の処理内容は、第1推定部23と同様のため、説明を省略する。
その後、第2推定部31は、推定筒内圧を閾値判定部32に出力する。
【0070】
閾値判定部32は、判定モードにおいて、閾値記憶部25に記憶されている閾値と、第2推定部31が推定した筒内圧との閾値判定により、ノッキングの有無を判定する。具体的には、閾値判定部32は、閾値算出部24と同様、推定筒内圧の時間周波数成分を所定時間毎に総和する。そして、閾値判定部32は、総和した推定筒内圧と閾値とを比較し、推定筒内圧が閾値を超えている場合にはノッキング有りと判定し、推定筒内圧が閾値未満の場合にはノッキング無しと判定する。
その後、閾値判定部32は、ノッキング有無の判定結果と、第2推定部31から入力された推定筒内圧の時間−周波数マップとをモニタ7(
図2)に出力する。
【0071】
[ノッキング判定装置の動作]
以下、ノッキング判定装置10の動作について説明する。学習モードの場合、ノッキング判定装置10は、
図8のデータ収集処理を行った後、
図9の学習処理を行う。閾値算出モードの場合、ノッキング判定装置10は、
図8のデータ収集処理を行った後、
図10の閾値算出処理を行う。判定モードの場合、ノッキング判定装置10は、
図8のデータ収集処理を行った後、
図11の判定処理を行う。
【0072】
<データ収集処理>
図8を参照し、学習モード、閾値算出モード及び判定モードで実行されるデータ収集処理を説明する。
図8に示すように、ステップS20において、データ収集装置6が、音圧信号、筒内圧力信号(教師データ)、及び、角度情報を信号切出部11に入力する。なお、閾値算出モード又は判定モードの場合、ステップS20では、筒内圧力信号を入力する必要がない。
ステップS21において、信号切出部11は、角度情報から各気筒の燃焼行程タイミングを算出する。
ステップS22において、信号切出部11は、ステップS21で算出した燃焼行程タイミングに合わせて、TDC付近の音圧信号を切り出す。
ステップS23において、スペクトル算出部12は、ステップS22で切り出した音圧信号に対して高速フーリエ変換を行い、時間周波数成分を算出する。
ステップS24において、スペクトル算出部12は、時間周波数領域に変換した音圧信号を信号記憶部13に書き込む。
【0073】
<学習処理>
図9を参照し、学習モードで実行される学習処理を説明する。
図9に示すように、ステップS30において、スイッチ14は、信号記憶部13から音圧信号及び筒内圧信号を読み出して、学習部21に入力する。
ステップS31において、学習部21は、ステップS30で入力された音圧信号及び筒内圧信号を用いて、マスクαを生成するネットワークの重み及び伝達関数Hを学習する。学習部21は、畳み込みニューラルネットワーク(例えば、U−Net)によりマスクαを生成するネットワークの重みを学習し、伝達関数Hとして、音圧信号の時間周波数成分に乗じる重みを学習する。
ステップS32において、学習部21は、学習したマスクαを生成するネットワークの重み及び伝達関数Hを学習済みパラメータ記憶部22に書き込む。
【0074】
<閾値算出処理>
図10を参照し、閾値算出モードで実行される閾値算出処理を説明する。
図10に示すように、ステップS40において、第1推定部23は、ニューラルネットワークにより、信号記憶部13のマスクα及び伝達関数Hを用いて、音圧信号からエンジン1の筒内圧を推定する。
ステップS41において、閾値算出部24は、エンジン1の各サイクルで推定筒内圧の時間周波数成分を総和する。
ステップS42において、閾値算出部24は、全サイクルにおいて、総和した推定筒内圧の中央値を算出する。
ステップS43において、閾値算出部24は、予め設定したマージンを中央値に加算し、閾値とする。
ステップS44において、閾値算出部24は、算出した閾値を閾値記憶部25に書き込む。
【0075】
<判定処理>
図11を参照し、判定モードで実行される判定処理を説明する。
図11に示すように、ステップS50において、第2推定部31は、ニューラルネットワークにより、学習済みパラメータ記憶部22のマスクαを生成するネットワークの重み及び伝達関数Hを用いて、信号記憶部13より入力された音圧信号からエンジン1の筒内圧を推定する。
ステップS51において、閾値判定部32は、エンジン1の各サイクルで推定筒内圧の時間周波数成分を総和する。
ステップS52において、閾値判定部32は、閾値記憶部25に記憶済みの閾値と、総和した推定筒内圧とを比較し、推定筒内圧が閾値を超えているか否かを判定する。
推定筒内圧が閾値を超えている場合(ステップS52でYes)、閾値判定部32は、ノッキング有りと判定する(ステップS53)。
推定筒内圧が閾値未満の場合、(ステップS52でNo)、閾値判定部32は、ノッキング無しと判定する(ステップS54)。
ステップS55において、閾値判定部32は、閾値判定の結果及び推定筒内圧をモニタ7に出力する。
【0076】
[作用・効果]
以上説明したように、本実施形態によれば、以下に記載の効果を奏することができる。
(1)このような構成によれば、学習処理部20は、所望の物理量を推定するためのマスクαを生成するネットワークの重みや伝達関数Hを学習する。これにより、学習したネットワークにより生成されたマスクαを用いて、入力物理量に含まれるノイズ成分を除去し、伝達関数Hを用いて、ノイズ成分が除去された入力物理量から所望の物理量を推定することができる。つまり、前記したマスクαや伝達関数Hを用いて、判定結果を裏付ける所望の物理量を外部に提示することができる。
【0077】
(2)学習処理部20は、エンジン1の筒内圧の推定を音分離問題及び伝達関数の推定問題として捉え、ニューラルネットワークにより、マスクαを生成するネットワークの重みや伝達関数Hを学習する。これにより、学習したネットワークにより生成されたマスクαを用いて、エンジン1の近傍音からノッキング音を抽出し、伝達関数Hを用いて、ノッキング音からノッキング発生時のエンジン1の筒内圧を推定することができる。つまり、前記したマスクαや伝達関数Hを用いて、ノッキング有無の判定結果を裏付ける、ノッキング発生時のエンジン1の筒内圧を外部に提示することができる。これにより、試験者が主観評価しているノッキングの有無を、エンジン1の推定筒内圧により客観評価することができる。さらに、マスクαを適用し、ノッキング音のみを抽出した音源を提示することで、試験者の技能承継に役立てることもできる。
【0078】
(3)学習処理部20は、マスクαを生成するネットワークの重みや伝達関数Hを適切に学習できるので、エンジン1の筒内圧をより正確に推定することができる。
(4)学習処理部20は、閾値を適切に設定できるので、エンジン1の推定筒内圧に対する閾値判定をより正確に行うことが可能となる。
【0079】
(5)判定処理部30は、学習したネットワークにより生成されたマスクαを用いて、入力物理量に含まれるノイズ成分を除去し、伝達関数Hを用いて、ノイズ成分が除去された入力物理量から所望の物理量を推定することができる。つまり、前記したマスクαや伝達関数Hを用いて、判定結果を裏付ける所望の物理量を推定することができる。例えば、マスクαを用いて、エンジン1の近傍音からノッキング音を抽出し、伝達関数Hを用いて、ノッキング音からノッキング発生時のエンジン1の筒内圧を推定することができる。これにより、ノッキング有無の判定結果を裏付ける、ノッキング発生時のエンジン1の推定筒内圧を外部に提示することができる。
【0080】
(6)判定処理部30は、所望の物理量に対する閾値判定をより正確に行うことができる。例えば、推定したエンジン1の推定筒内圧について、ノッキングの有無をより正確に判定できる。
【0081】
(第2実施形態)
前記した第1実施形態は、これを適宜変更した以下の形態にて実施することもできる。
第1実施形態では、マスクα及び伝達関数Hを用いて、雑音が含まれるエンジン近傍音90からエンジン1の推定筒内圧92を求める場合を例示した(
図5)。しかし、
図12に示すように、マスクαを用いて、雑音が含まれるエンジン近傍音90から、雑音が含まれないエンジン近傍音(ノッキング音)91を推定してもよい。これにより、雑音が含まれないエンジン近傍音91の大きさを外部に提示可能となる。
【0082】
[ノッキング判定装置の構成]
図13を参照し、第2実施形態に係るノッキング判定装置10Bの構成について、第1実施形態と異なる点を説明する。
【0083】
図13に示すように、ノッキング判定装置10Bは、信号切出部11と、スペクトル算出部12と、信号記憶部13と、スイッチ14と、学習処理部(学習装置)20Bと、判定処理部(推定装置)30Bとを備える。
なお、学習処理部20B及び判定処理部30B以外は、第1実施形態と同様のため、説明を省略する。
【0084】
学習処理部20Bは、学習モードにおいて、マスクαを生成するネットワークの重み及び伝達関数Hを学習する学習処理を行い、閾値算出モードにおいて、ノッキング音の閾値判定に用いる閾値を算出する閾値算出処理を行う。
図13に示すように、学習処理部20Bは、学習部21と、学習済みパラメータ記憶部22と、第1推定部23Bと、閾値算出部24Bと、閾値記憶部25とを備える。なお、学習モードの処理内容は、第1実施形態と同様のため、説明を省略する。
【0085】
第1推定部23Bは、閾値算出モードにおいて、ニューラルネットワークにより、学習したネットワークにより生成されたマスクαを用いて、音圧信号からノッキング音を推定する。そして、第1推定部23Bは、推定したノッキング音を閾値算出部24Bに出力する。なお、ノッキング音の推定手法は、第1実施形態と同様のため、説明を省略する。
【0086】
閾値算出部24Bは、第1推定部23Bが推定したノッキング音に基づいて閾値を算出する。そして、閾値算出部24Bは、算出した閾値を閾値記憶部25に書き込む。なお、閾値の算出手法は、エンジン1の推定筒内圧の代わりにノッキング音を用いる以外、第1実施形態と同様のため、説明を省略する。
【0087】
判定処理部30Bは、判定モードにおいて、音圧信号からノッキング音を推定し、ノッキングの有無を判定する判定処理を行う。
図13に示すように、判定処理部30Bは、第2推定部31Bと、閾値判定部32Bとを備える。
【0088】
第2推定部31Bは、判定モードにおいて、ニューラルネットワークにより、学習したネットワークにより生成されたマスクαを用いて、音圧信号からノッキング音を推定する。そして、第2推定部31Bは、推定したノッキング音を閾値判定部32Bに出力する。なお、ノッキング音の推定手法は、第1実施形態と同様のため、説明を省略する。
【0089】
閾値判定部32Bは、判定モードにおいて、閾値記憶部25に記憶されている閾値と、第2推定部31Bが推定したノッキング音との閾値判定により、ノッキングの有無を判定する。そして、閾値判定部32Bは、ノッキング有無の判定結果と、第2推定部31Bから入力されたノッキング音の時間−周波数マップとをモニタ7(
図2)に出力する。
【0090】
なお、閾値判定の手法は、エンジン1の推定筒内圧の代わりにノッキング音を用いる以外、第1実施形態と同様のため、説明を省略する。また、
図3の閾値判定部32が、第2実施形態と同様、ノッキング音の時間−周波数マップをモニタ7に出力するように構成してもよい。
【0091】
このように、ノッキング判定装置10Bは、ノッキングの評価に必要となる、ノッキング音の大きさを外部に提示し、ノッキングの有無を判定することができる。
【0092】
(変形例)
以上、本発明の実施形態を詳述してきたが、本発明は前記した実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
前記した実施形態では、入力物理量がエンジンの近傍音(音圧)であり、所望の物理量がエンジン1の推定筒内圧(圧力)であることとして説明したが、物理量の種類はこれらに限定されない。つまり、本発明で推定可能な所望の物理量は、前記した信号分離問題及び伝達関数の推定問題として扱うことが可能なものであればよい。これら所望の物理量の一例として、音圧、圧力、又は振動(変位、速度、加速度)がある。
また、入力物理量及び所望の物理量は、異なる種類の物理量だけでなく、同種の物理量であってもよい。例えば、入力物理量が車外の音であり、所望の物理量が車内空間の音であってもよい。
【0093】
前記した実施形態では、マスクを生成するネットワークの重み及び伝達関数の両方を学習することとして説明したが、マスクを生成するネットワークの重み又は伝達関数の一方のみを学習してもよい。
例えば、ボア径等の関係により、ノッキング音の時間周波数特性が変化しない一方、ボディ構造やマイクの位置及び周波数特性の関係により、伝達関数が変化する場合がある。この場合、マスク生成に必要なネットワークの重みを学習せず、伝達関数を学習すればよい。
また、伝達関数が既知の一方、ノッキング音の時間周波数特性が未知の場合がある。この場合、伝達関数を学習せず、マスク生成に必要なネットワークの重みを学習すればよい。
【0094】
前記した実施形態では、信号切出部が、角度情報に基づいて音圧信号を切り出すこととして説明したが、これに限定されない。例えば、データ収集装置が角度情報を収集せず、信号切出部が音圧信号をランダムに切り出してもよい。
【0095】
前記した実施形態では、ノッキング判定装置が学習処理部及び判定処理部を備えることとして説明したが、これに限定されない。つまり、学習処理部を学習装置とし、判定処理部を推定装置として、それぞれを独立した装置として構成してもよい。
【0096】
前記した実施形態では、エンジンが4気筒であることとして説明したが、その気筒数は特に限定されない。さらに、エンジン以外の試験対象について所望の物理量を推定してもよい。
【0097】
前記した実施形態では、ノッキング判定装置を独立した装置として説明したが、本発明は、これに限定されない。例えば、本発明は、コンピュータが備えるCPU、メモリ、ハードディスク等のハードウェア資源を、前記したノッキング判定装置として協調動作させるプログラムで実現することもできる。これらのプログラムは、通信回線を介して配布してもよく、CD−ROMやフラッシュメモリ等の記録媒体に書き込んで配布してもよい。
【解決手段】ノッキング判定装置10は、入力物理量に含まれるノイズ成分を除去し、前記ノイズ成分が除去された入力物理量から所望の物理量を推定し、ノッキングの有無を判定する。ノッキング判定装置10は、ニューラルネットワークにより、入力物理量に含まれるノイズ成分を除去するマスクを生成するネットワークの重み、及び/又は、マスクによりノイズ成分が除去された入力物理量を所望の物理量に変換する伝達関数を学習する学習部21を備える。