Knock detection

Testing and development of Megasquirt 3

Moderators: jsmcortina, muythaibxr

savagerocco
Master MS/Extra'er
Posts: 756
Joined: Thu Oct 20, 2005 11:09 am
Location: Ogden UT USA
Contact:

Re: Knock detection

Post by savagerocco »

I have a j&s knock box somewhere around here.... guess I should break that out....
Brent Savage
life behind the zion curtain
90 audi RS2 20VTQ 6sp MS3, MSX COP and Sequential and now MAF
87 Scirocco 2.0 ABA 16v EIP tubular cast MSII COP
86 Audi 4K20VTQ MSII
90 Audi 90 sedan 3.6l DOHC V8TT (project car)
89 VW cabbie (bitch basket) 2.0 ABA Turbo MSII
VolvoGuy50
Master MS/Extra'er
Posts: 686
Joined: Sat Jan 01, 2011 4:42 pm
Location: Burlington, CT USA

Re: Knock detection

Post by VolvoGuy50 »

gurov wrote:one will have to pry my j&s boxes from my cold dead hands.

duplication of THAT would save a boatload of money per install.
I was gonna say...anyone who's got a J&S box should be happy, but the only reason most people buy the J&S controller in the first place is because MS knock has never been up to snuff.

The last time I checked into it, the Interceptor for COP was about $600, so if true knock control that worked like a J&S box did was implemented on MS3, I'd deff. be happy with that.

Someone mentioned per-cylinder knock retard. The J&S Interceptor does this, so it's not unheard of. Again, if that was in MS3, it'd be epic.
1992 Volvo 740 Wagon - Beater Car...CAI, 16T, catback, MS3/MS3X, & HID's
1996 Eagle Talon TSi AWD - Daily Driver...RAI, Big 16g, 3" TBE, HID's, etc.
zmanco
Experienced MS/Extra'er
Posts: 329
Joined: Mon May 28, 2007 2:16 pm

Re: Knock detection

Post by zmanco »

I'm running MS2/Extra so not sure if this is relevant to MS3. I can confirm that a knock event does not pull all the timing at once. If it's helpful, I can post MLV screenshots.
Daniel
'73 240Z
Castle Rock, CO USA
VolvoGuy50
Master MS/Extra'er
Posts: 686
Joined: Sat Jan 01, 2011 4:42 pm
Location: Burlington, CT USA

Re: Knock detection

Post by VolvoGuy50 »

zmanco wrote:I'm running MS2/Extra so not sure if this is relevant to MS3. I can confirm that a knock event does not pull all the timing at once. If it's helpful, I can post MLV screenshots.
From what I remember, MS3 is an extension of MS2/Extra, so your info is almost certainly relevant.
1992 Volvo 740 Wagon - Beater Car...CAI, 16T, catback, MS3/MS3X, & HID's
1996 Eagle Talon TSi AWD - Daily Driver...RAI, Big 16g, 3" TBE, HID's, etc.
OliverH
Helpful MS/Extra'er
Posts: 47
Joined: Mon Oct 11, 2010 10:24 am

Re: Knock detection

Post by OliverH »

Why dealing with knock sensors and not in combustion detection? I offered a Saab DI Trionic 7 on a rent base, but didn't get an answer. Only ion sensing gives good values.
MS V3.00 DIY, MS3, MS3X, JimStim & StimX.
jsmcortina
Site Admin
Posts: 39611
Joined: Mon May 03, 2004 1:34 am
Location: Birmingham, UK
Contact:

Re: Knock detection

Post by jsmcortina »

Mainly because the hardware for knock detection is more widely available than ion sense.

James
I can repair or upgrade Megasquirts in UK. http://www.jamesmurrayengineering.co.uk

My Success story: http://www.msextra.com/forums/viewtopic ... 04&t=34277
MSEXTRA documentation at: http://www.msextra.com/doc/index.html
New users, please read the "Forum Help Page".
gurov
Super MS/Extra'er
Posts: 1059
Joined: Sun Jun 01, 2008 11:54 pm

Re: Knock detection

Post by gurov »

savagerocco wrote:I have a j&s knock box somewhere around here.... guess I should break that out....
that does all the retard on its own.

the j&s boxes are expensive, but it's so well worth it.

i am very curious if knocksense MS would work with the new windowing option. that ought to cut down on extra noise.

is there a way to distinguish pre-ignition and spark knock ? such that different actions can be taken in pre-igniton and spark knock situations, or is that a bit too granular of a time interval ?
2020 BMW X3M - bm3 - stage1
1994 Supra - ms3pnp pro - j&s
jsmcortina
Site Admin
Posts: 39611
Joined: Mon May 03, 2004 1:34 am
Location: Birmingham, UK
Contact:

Re: Knock detection

Post by jsmcortina »

gurov wrote:is there a way to distinguish pre-ignition and spark knock ? such that different actions can be taken in pre-igniton and spark knock situations, or is that a bit too granular of a time interval ?
I do not consider myself an expert in this field, so I refer to Heywood.

"Knock is the name given to the noise which is transmitted through the engine structure when essentially spontaneous ignition of a portion of the end-gas - the fuel, air, residual gas, mixture ahead of the propagating flame - occurs."

"Surface ignition is ignition of the fuel-air mixture by a hot spot......It can occur before the occurence of spark (pre-ignition) or after (postignition)."
and "Knock which has been preceeded by surface ignition..is not controllable by spark advance."

James
I can repair or upgrade Megasquirts in UK. http://www.jamesmurrayengineering.co.uk

My Success story: http://www.msextra.com/forums/viewtopic ... 04&t=34277
MSEXTRA documentation at: http://www.msextra.com/doc/index.html
New users, please read the "Forum Help Page".
gurov
Super MS/Extra'er
Posts: 1059
Joined: Sun Jun 01, 2008 11:54 pm

Re: Knock detection

Post by gurov »

jsmcortina wrote:
gurov wrote:is there a way to distinguish pre-ignition and spark knock ? such that different actions can be taken in pre-igniton and spark knock situations, or is that a bit too granular of a time interval ?
I do not consider myself an expert in this field, so I refer to Heywood.

"Knock is the name given to the noise which is transmitted through the engine structure when essentially spontaneous ignition of a portion of the end-gas - the fuel, air, residual gas, mixture ahead of the propagating flame - occurs."

"Surface ignition is ignition of the fuel-air mixture by a hot spot......It can occur before the occurence of spark (pre-ignition) or after (postignition)."
and "Knock which has been preceeded by surface ignition..is not controllable by spark advance."

James
i meant code-wise.

if the "knock" signal is generated via all the filtering, and is strong enough and falls in the space before spark is given => pre-ignition => increment pre-ignition counter
if knock signal is received after spark has fired, but before certain other angle, (i.e. pressure wave is violent and arrives too early) => increment knock counter
2020 BMW X3M - bm3 - stage1
1994 Supra - ms3pnp pro - j&s
jsmcortina
Site Admin
Posts: 39611
Joined: Mon May 03, 2004 1:34 am
Location: Birmingham, UK
Contact:

Re: Knock detection

Post by jsmcortina »

The code doesn't do that. It is possible I guess and would need two timed windows as it only looks for a signal during the window.

Are you finding pre-ignition to be a common occurence?
Heywood also describes "knocking surface ignition" and "non-knocking surface ignition"

James
I can repair or upgrade Megasquirts in UK. http://www.jamesmurrayengineering.co.uk

My Success story: http://www.msextra.com/forums/viewtopic ... 04&t=34277
MSEXTRA documentation at: http://www.msextra.com/doc/index.html
New users, please read the "Forum Help Page".
gurov
Super MS/Extra'er
Posts: 1059
Joined: Sun Jun 01, 2008 11:54 pm

Re: Knock detection

Post by gurov »

jsmcortina wrote:The code doesn't do that. It is possible I guess and would need two timed windows as it only looks for a signal during the window.

Are you finding pre-ignition to be a common occurence?
Heywood also describes "knocking surface ignition" and "non-knocking surface ignition"

James
nah, not finding any knock right now, driving the supra with ms3 that doesn't control timing yet. working out a few other kinks where my injectors start leaking past a certain engine bay temperature so i can be at idle at 1ms pw, and 10:1 afr (opening time on the injectors set to 1.3 ms and normally it would idle at 1.5-ish ms in that same spot when things are working right)
ego gets down to 1%, and it's still way rich
2020 BMW X3M - bm3 - stage1
1994 Supra - ms3pnp pro - j&s
JasonC SBB
Helpful MS/Extra'er
Posts: 120
Joined: Wed Oct 26, 2011 7:36 pm

Re: Knock detection

Post by JasonC SBB »

Hello all, my name is Jason and I'm a frequent poster over at miataturbo.net. I've been turbo'ing miatas since about 1998.
My day job is analog electronics designer. I've thought about the knock detection problem over the years.

Here are some of my observations and some of the "common wisdom" about the output of a knock sensor during knocking.

1) Knock occurs within a narrow-ish crank angle range
2) Outside of that window is background noise, and said background noise level rises with RPM
3) The above 2, means knock has a "periodicity" to it.
4) The knock event is a "ringing" waveform within a narrow frequency range dependent on cylinder geometry.
5) If you listen to a knock recording slowed down 20x, it sounds like a *bell with a descending pitch*. It is very distinct. The pitch descends presumably because the chamber volume is increasing as the piston goes down the bore.
6) For the miata, the knock tone descends from 6.8 khz down to around 6.3 khz IIRC.

Given the above, the best system to detect knock would be a DSP that recognizes the "descending bell" tone within a range of crank angle. I wrote DSP code nearly 2 decades ago, but I don't know how to design a correlation filter for this. :)

In the absence of DSP I suggest:

- a bandpass filter centered around 6.5 kHz (adjustable). The 'Q' must not be so high that its impulse response rings significantly past the knock window. (reason for this will be obvious later)
- the algorithm *compares* the bandpass filter output *outside* vs. *inside* the window. This takes advantage of the periodicity of knock. This is as opposed to the common scheme of merely comparing the in-window bandpassed signal to an arbitrary assumed background noise threshold vs. RPM curve (that the user sets). With my suggestion, if for some reason the background noise rises, the algorithm will automatically take this into account.

The most straightforward way to implement this is to have a digital signal from the MS3 that means "hi means in-window, low means outside". An analog circuit (my expertise), would have 2 outputs - an "in-window" signal output, and an "out of window" output. The "in window" signal will be a "quasi-peak" (which is sort of a slow peak detector with a faster attack than decay), and the "out-of-window" could be an average. The MS3 could then compare the 2 outputs and then decide "knock" or "no knock". The *difference* between them, which signifies knock, could be a threshold that varies with RPM (set by the user).

Thoughts?
jsmcortina
Site Admin
Posts: 39611
Joined: Mon May 03, 2004 1:34 am
Location: Birmingham, UK
Contact:

Re: Knock detection

Post by jsmcortina »

That's an interesting idea to potentially filter out the "out of window" background noise. Have you actually tried it to confirm effectiveness? How to determine the optimum knock window?

James
I can repair or upgrade Megasquirts in UK. http://www.jamesmurrayengineering.co.uk

My Success story: http://www.msextra.com/forums/viewtopic ... 04&t=34277
MSEXTRA documentation at: http://www.msextra.com/doc/index.html
New users, please read the "Forum Help Page".
pit_celica
Master MS/Extra'er
Posts: 682
Joined: Tue Jul 18, 2006 3:12 pm

Re: Knock detection

Post by pit_celica »

Hi,

I was browsing on the Delphi's website and I came accros a nice SAE paper about knock signal conditioning using variable-windowing and Fourier Transform.

I though it would be nice to share it with everyone here :

http://delphi.com/pdf/techpapers/2007-01-1509.pdf

Have a good read!

Sam
JasonC SBB
Helpful MS/Extra'er
Posts: 120
Joined: Wed Oct 26, 2011 7:36 pm

Re: Knock detection

Post by JasonC SBB »

jsmcortina wrote:That's an interesting idea to potentially filter out the "out of window" background noise. Have you actually tried it to confirm effectiveness? How to determine the optimum knock window?

James
All I've done is examine knock recordings by looking at the waveforms, loading it into spectogram software, and listening to it 20x slowed. The only thing I've tested is a simple 2nd order bandpass filter into an AEM ECU which simply has a knock threshold vs RPM curve.

The algorithm I described can be simulated using Matlab/Scilab or Mathcad and loading actual knock recordings.

The crank angle window I suspect is something that is pretty well known. Maybe the PDF linked above would have it.

Next step is to record a knock sensor output along with a crank sensor output so we can look at knock and crank angle at the same time. I don't have such a a recording.
JasonC SBB
Helpful MS/Extra'er
Posts: 120
Joined: Wed Oct 26, 2011 7:36 pm

Re: Knock detection

Post by JasonC SBB »

Thanks for linking. The paper describes a technique for using DFT for processing knock.
Have you seen a paper discussing the proper knock windowing and knock signal characteristics?

P.S. the paper describes using DFT, which can replace the bandpass filter / quasi-peak detector analog circuitry I described.
pit_celica
Master MS/Extra'er
Posts: 682
Joined: Tue Jul 18, 2006 3:12 pm

Re: Knock detection

Post by pit_celica »

Some nice info here :

http://www.miataturbo.net/showthread.ph ... 7f&t=60243

Look at the post #17

Sam
Mr Gadgets
Experienced MS/Extra'er
Posts: 187
Joined: Tue Sep 21, 2004 10:15 am
Location: Michigan

Re: Knock detection

Post by Mr Gadgets »

Jason,
I have been following this and other threads with great interest. I have been reading up on this subject and found this manual from Motec that describes the knock window as 10-50 ATDC. The link is to all their manuals. The one labeled, Knock User Manual SKM and OKM. Verying interesting reading. I am anxious for a knock solution to get incorporated into the MS3.
Hope this helps.

Dick

http://www.motec.com/downloads/downloadmanuals/
Post Reply