Jump to content

Second knock sensing mode / logic


Davidv

Recommended Posts

Hey,

At the moment knock sensing works based on the amplitude of the signal over and above the set threshold.
As in, if the knock signal spikes to 50% above the set threshold then (for example) it will instantly pull timing by 100% of the maximum timing retard.

Which is great for instances where you want to instantly react to a knock issue to minimise damage to the engine. (full throttle)

But the downside of this is that the knock trim maps never stabilize, the values go up and down over time like a sawtooth pattern.
For example, let say 3500rpm and 30% throttle with 25 deg ignition timing and 23 degrees is what the engine can run to without knocking.

With current system:

Reported knock value is 50% higher than threshold, so it pulls 5 deg timing instantly, now at 20deg.
Now no knock is detected, so it slowly reintroduces timing. When it gets to 23.5 degrees, it knocks again, and instantly pulls timing back to 20 degrees.
At full throttle areas I'm happy with this system and how it works, I would rather pull 5 deg timing instantly than have my pistons hammer themselves into oblivion.
However at part throttle/cruise conditions, knock does little to no damage, and it seems pointless to be stuck in this loop where the knock values never stabilize.
The ratio of knock noise vs background noise changes through the rpm and load range too, so I cant just set the threshold to 20% over background noise values and have it work consistently across the whole range of cells.

So I think it would be nice to have an alternative system for low load areas which works like this:

Same situation, 3500rpm and 30% throttle with 25 deg ignition timing and 23 degrees is what the engine can run to without knocking.

The engine runs at 25 deg and notices knock, (irrespective of how much its over the threshold) so it subtracts 0.25deg timing. (or 0.1 deg or whatever)
The engine is running at 24.75deg timing and checks again, still knocking so subtracts another 0.25 deg timing.
And so on, until it reaches 23 degrees.
Then its happily under the knock threshold at 23 degrees, so it advances to 23.25 and it knocks.
So it pulls back to 23 and it's fine again.

Then maybe, it could have a maximum number of attempts to advance beyond the "safe" 23 degrees, at which point it will stop trying and hold it there. (If this is possible)

If you pull and reintroduce timing over a longer timespan in smaller increments using this method, (Basically mirroring the timing reintroduction logic for timing pulling as well) then at the end of a drive you can look at the knock tables and get some results that likely reflect how you need to update your main ignition table.
Currently you might look at the cylinder knock retard tables and see that half of it is at -5 degrees, but it doesnt mean anything because it might be that the engine hasnt run in that cell since the last timing retard.
Another cell might show -3 deg timing pulled, but realistically it could run at -1deg but it just hasnt had time to get there yet.

Edited by Davidv
Link to comment
Share on other sites

Hi David,

The system you're describing for low load areas reminds me of how our Closed Loop Lambda auto mode works. In it there is a 'Gain' table and a 'Rate' table. The gain table controls the sensitivity of the system based upon the difference between the target and actual lambda difference. The rate table controls how often the system evaluates the difference. Maybe something like these two tables, but in 3D, could be useful for the Knock control system. Is this along the lines of what you're thinking?

Scott.

Link to comment
Share on other sites

Yes something like that I think!

It just needs to know "If engine is knocking, pull 0.1 deg per 10 milliseconds" or something like that.

So to use the o2 sensor as an analogy,it would be nice if kncok sensing worked more like a narrowband o2 sensor.
It doesnt know how much it is knocking, just that it is. If the knock level is any amount above the threshold, it just slowly pulls timing until it isnt anymore.

This would make it more resilient to going over ripple strips / bumps in the road etc. Currently if you hit a big bump it will pull timing back by the maximum amount for a one off event, instantly.

Here's a diagram of how knock sensing works currently (top diagram) vs how I think it would be more useful (bottom diagram)

d5gqh4lg.4dd.jpg


Theoretically, if you had the knock threshold set perfectly for every cell, and the knock settings perfectly then I think it could work pretty close to the 2nd example for genuine knock.
But this seems impossible to do without inducing knock multiple times to set the threshold up or down in each cell. So most of the time, in my experience it works much more like the top example.
 

Edited by Davidv
Link to comment
Share on other sites

David,

Before I give my views on the proposed strategy, can I first ask, is this for your 3S engine?  Are you sure it is knock limited?  I would have expected your MBT ignition angle to be well away from the knock limit in an engine like this under most conditions? 

Link to comment
Share on other sites

Doesn't work it for you when you reduce the amount of retard per percent (don't have the right name in my mind yet)?  

In generall I found it quite difficult to disginguish between light knock and just higher Background noise. I also noticed that most time timing is pulled, it jumps straight to the max retard. Exactly what Adamw is descripting. 

Besides

I would be very useful if knock can be logged with a few different filter settings at the same time. This way you can analyse  the same knock event at different frequenties and choise very easy the setting which distinguish background and knock noise best. Have a look how this works on M1 Ecu's. 

Link to comment
Share on other sites

David,

Before I give my views on the proposed strategy, can I first ask, is this for your 3S engine?  Are you sure it is knock limited?  I would have expected your MBT ignition angle to be well away from the knock limit in an engine like this under most conditions? 


Yes this is for 3SGE engine. When it starts knocking at low load, even if I pull the timing back by something like 15 degrees it still happens. Then other times it runs fine with way more timing.

I am currently suspecting that my spark plugs are a range or two too hot - When it starts knocking spark plug temp gets way too high and then it keeps preigniting under some conditions.

But I still think this other method for knock sensing has some merit.

 

Doesn't work it for you when you reduce the amount of retard per percent (don't have the right name in my mind yet)?  

In generall I found it quite difficult to disginguish between light knock and just higher Background noise. I also noticed that most time timing is pulled, it jumps straight to the max retard. Exactly what Adamw is descripting.


Yeah so for example you can have 0.1deg timing retard per % over the threshold that the knock value is.
But this means setting you knock threshold correctly is super important, and needs to vary through the rev range, like it cant just be 20% above. Because the signal to noise ratio changes hugely through the rpm range.
For example at 2500rpm I might have a background noise value of 10 or 20. Then when knock happens it spikes to 60.
But at 5000rpm I might have a background noise value of
550 and when it knocks the value jumps to 600.
So the % above either the value or knock threshold changes hugely, you cant set it to do both so normally this means to be on the safe side it will pull timing back to the minimum mount you've specified.
 

Link to comment
Share on other sites

Yes this is for 3SGE engine. When it starts knocking at low load, even if I pull the timing back by something like 15 degrees it still happens. Then other times it runs fine with way more timing.

I am very suspicious that this is not knock that you are experiencing.  Either that or there is some other factor that is making your engine more prone to it - burning oil, intake temps, cam timing, or something like a burr or carbon deposit glowing in the chamber etc.  I guess hot spark plugs could do it but for a basic engine like yours that's not working at WOT all day I wouldn't expect you need to move too far from a stock heat range.  I haven't done a lot of NA road engines but based on the few I have played with I would expect with an engine like this on NZ 95 pump gas at say less than 30% throttle your MBT should be somewhere around 32-40°, and that would still be a fair margin away from where knock would initiate. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...