Table based idle control

Official FreeEMS vanilla firmware development, the heart and soul of the system!
User avatar
ruzki
QFP80 - Contributor
Posts: 86
Joined: Thu Jun 20, 2013 4:24 pm

Table based idle control

Post by ruzki »

i´m wondering why there is no idle control in the FreeEms code.
i guess it should be not that much work for Fred.
i know that Fred has a strict philosophy of developing the firmware but why not adding a table based idle control ?
One table maybe 6x6 with iat vs clt and duty for the idle valve and one with idle spark correction also with iat vs clt.
I mean every prospective code could use these tables as reference or starting point for its controller algorithm.
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Table based idle control

Post by Fred »

I have it on a branch, and for some really really weird reason, it was causing issues. I also have DBW idle control on another branch, and that worked 100% fine. I need some idle control for my car as I'm driving it every day, and cold start == stuck in the car with foot on gas until it gets warm enough to survive (under a minute).

Why would you use IAT to map idle air flow?
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
ruzki
QFP80 - Contributor
Posts: 86
Joined: Thu Jun 20, 2013 4:24 pm

Re: Table based idle control

Post by ruzki »

My car has a 2 wire solenoid so DBW would not work for me.
Why would you use IAT to map idle air flow?
because in my case IAT has a great impact on the idle of my car.
I believe that it has even a greater influence than CLT.

For example when i stop at a traffic light and CLT is 90°C the duty cycle for the idle valve rises 5% within a minute, while CLT nearly remains the same.
(idle valve fully open =60% and closed= 35%) (IAT rises round about 10°C)

My Engine has no MAF but a MAP sensor ... i tried to adjust the idle (M$2) with "idle VE" but this is impossible.
I think that there are two reasons for this issue
1. is that the MAP signal is very unstable at idle.
2. it seems that density drops fast so there has to be a correlation with IAT

In my opinion the idle valve PID should not have the RPM as target but the vacuum as target for a certain CLT.
Then there should be a PID for Spark advance with RPM as target.
And then finally a PID for Lambda correction.

The Idle valve has the greatest impact on RPM, changes in duty should be very slow.
Spark advance has a lower impact on RPM than idle valve duty, spark advance should therefor act faster.
It seems like that for the region Lambda 0.9-1.1 there is nearly no change in the rpm, that´s why this should be the fastest controller.

Fot today these tables could be a compromise solution, but later they could be integrated as starting point for the different PID controller
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Table based idle control

Post by Fred »

I wasn't suggesting you use DBW, just saying that some work has been done in this area.

Can't say I agree with the IAT vs CHT comparison. CHT is an air mass requirement due to low efficiency when cold. IAT affects density and to a lesser extent flame propagation speed, but in opposing directions. Once warmed up your CHT is within its normal range and has almost no effect on the engine's efficiency and can be considered constant if your thermostat and fan system are working effectively.

At which point the IAT value comes into things. Higher IAT = less dense air, and it's quite likely that the same opening on the valve represents lower air *mass* flow. Fair enough. I'd like to see your results without IAT coming into the mix, though. The first step is a curve of CHT vs PWM duty. From this alone you can get a pretty good idle situation. This is also absolutely required for PID idle control. Another thing that's absolutely required is a matching RPM target curve. All of this assumes fixed timing. I know you can control idle with timing, and I know timing has an instantaneous effect, unlike airflow changes, but it's more "advanced" than what we need to start with.

In the case of any PID operation the original base-tune must be in good shape. Only a few people have ever gotten their FreeEMS tunes into such good shape. Not even me :-D

In any case I have two things to say:

1) You'll make a great tester for this stuff.
2) You have a bigger problem, which I'll solve first for you. (60-2 efficiency and start-up etiquette)

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Hentai
LQFP144 - On Top Of The Game
Posts: 302
Joined: Sun Jul 18, 2010 2:35 pm

Re: Table based idle control

Post by Hentai »

What size injectors?
Also have you verified that with IAT vs fueling zeroed out, after idling for a little bit that the fueling does or doesn't change even if the IAT starts going up? A lot of people don't notice that the IAT vs fuel correction table is pretty terrible as setup from msextra orginally
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Table based idle control

Post by Fred »

IAT vs fuel correction is a fucking stupid idea in the first place and can *NEVER* be right. Good call, though. I had assumed he meant OEM control. But perhaps he meant on M$2 for all of it, not just the bit he mentioned M$2 next to.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
ruzki
QFP80 - Contributor
Posts: 86
Joined: Thu Jun 20, 2013 4:24 pm

Re: Table based idle control

Post by ruzki »

Can't say I agree with the IAT vs CHT comparison. CHT is an air mass requirement due to low efficiency when cold. IAT affects density and to a lesser extent flame propagation speed, but in opposing directions.
Flame propagation is a difficult topic and can not be generalized that easy. There some more physical effects that have impact on flame propagation e.g, air-gas mixing in the combustion chamber, wall wetting, speed of the gas that passes the intake valve, valve overlap.
IAT reaches 60°C when the engine is idling for 30min at 10°C ambient temperature.
Once warmed up your CHT is within its normal range and has almost no effect on the engine's efficiency and can be considered constant if your thermostat and fan system are working effectively.
Talking about efficiency related to idle makes no sense !!
We better should talk about friction during idle and how to reach equilibrium with the power that the engine produces for a certain idle speed.
Because you won´t reach a steady state condition for engine friction while idle in the first 30 minutes.
If the engine reaches 90°C other things are still continuously warming up e.g. oil, pistons, valve train, all kind of bearings...
And also there are things that have indirect impact on the idle friction of the engine what´s about hydraulic steering, what´s about a cold and a warm alternator ...
And if you drove for a while some things will cool down again...
Higher Temperature could mean some things have a higher friction and some less.

And what about the things that have an even more indirect impact on the idle speed, i mean does the idle valve has the same gap at 10°C and 40% duty and 60°C and 40% .. apparently not..
At which point the IAT value comes into things. Higher IAT = less dense air, and it's quite likely that the same opening on the valve represents lower air *mass* flow. Fair enough. I'd like to see your results without IAT coming into the mix, though. The first step is a curve of CHT vs PWM duty.
In my opinion at test for this should be obsolete regarding to the things i explained earlier.
The first step is a curve of CHT vs PWM duty.
agree !
From this alone you can get a pretty good idle situation.
No, not for every engine !
This is also absolutely required for PID idle control. Another thing that's absolutely required is a matching RPM target curve.
agree !
All of this assumes fixed timing. I know you can control idle with timing, and I know timing has an instantaneous effect, unlike airflow changes, but it's more "advanced" than what we need to start with.
agree !
But i want to point out that every OEM is using spark advance or Idle !
For example my OEM ECU (Siemens FENIX5) spark advance at idle for (-10°C IAT and -10°C CLT is 22°) and (20°C IAT and 90°C is 4°) at sudden a engine load change Spark goes up
from 4° to 12°.
In any case I have two things to say:

1) You'll make a great tester for this stuff.
2) You have a bigger problem, which I'll solve first for you. (60-2 efficiency and start-up etiquette)
:mrgreen: cool ! can't wait to test it !!

@ hentai
What size injectors?
221 cc/min
Also have you verified that with IAT vs fueling zeroed out, after idling for a little bit that the fueling does or doesn't change even if the IAT starts going up? A lot of people don't notice that the IAT vs fuel correction table is pretty terrible as setup from msextra orginally
IAT vs fuel correction is a fucking stupid idea in the first place and can *NEVER* be right. Good call, though. I had assumed he meant OEM control. But perhaps he meant on M$2 for all of it, not just the bit he mentioned M$2 next to
We have to stay focused ! arguing about physical impacts won't help us to produce a stable idle control.
The best proof that theoretical thermodynamics is not working as it planned is this "MAT Air Density table " in the M$
OEM´s have realized this decades ago i saw a SAGEM S3000 correcting the fuel from 0 to 20% in 30 seconds like nothing ... based only on small band Lambda
MAT vs CLT correction *facepalm*
I think we should concentrate our efforts on the tools we have to determine correlations with idle speed and this on an empiric way !
The physics in engines differs from each other so there is no way we can keep up with this in a scientific way
User avatar
ruzki
QFP80 - Contributor
Posts: 86
Joined: Thu Jun 20, 2013 4:24 pm

Re: Table based idle control

Post by ruzki »

For example when i stop at a traffic light and CLT is 90°C the duty cycle for the idle valve rises 5% within a minute, while CLT nearly remains the same.
(idle valve fully open =60% and closed= 35%) (IAT rises round about 10°C)
It is for OEM (Siemens Fenix5) .. but i adjusted my M$2 to act in the same manner with "Closed-Loop Idle Initials Values"
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Table based idle control

Post by Fred »

ruzki wrote:Talking about efficiency related to idle makes no sense !!
I don't have time to respond to the rest of this, though there's plenty of good stuff in here, but I have to respond to this.

It absolutely DOES make sense to discuss efficiency! You put a mixture of fuel and air into a device and get some energy out of that device. Your device itself requires some amount of rotational force to keep turning, this changes with temperature too, no doubt. The rate of heat propagation is proportional to the difference in temperatures. The engine warms up by sucking heat out of the chamber, thus reducing efficiency. As the chamber wall temperatures grow the surface temperature to chamber temperature difference drops as does the heat flow rate and energy loss. Once warmed up heat is still being lost from combustion, but much less, so more gets to push on things, like the piston tops. Yes, flame speed is changing too, no doubt at all.

You need to separate the control of speed and AFR from each other, because, as you pointed out, they're pretty much independent. If AFR can't be held within your specified range of 0.9-1.1 with a solid setup and open-loop tune, something is severely fucked. Given this solid tune base, we can start talking about how/when to ignite it and how much air to provide to mix fuel with.

The rest, another day.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
Impregacy
QFP80 - Contributor
Posts: 67
Joined: Fri Feb 26, 2010 12:15 am

Re: Table based idle control

Post by Impregacy »

I'm just curious, what is the need (software or hardware) of having a lookup table CHT vs PWM? Couldn't the intitial PWM for the idle valve just be ballparked by using a multiplier or divisor on the temperature reading? As long as you are in the right ballpark it is the PID loop's job to get you to the target RPM/MAP correct?
Post Reply