Idle and warm up tuning

Guys how properly tune the warm up / idle in V3?

It seems to me that many parameters are taken into consideration and I’m not sure if I follow.

In V2, or Classic I’d just use a table that added more air in relationship to the CLT (Cylinder Head Temp in my case, as it’s air cooled) and added more fuel when engine was cold.

I was not using the PID controller at all (not needed for me and I got better results with fine tuning IGN table and the IAV parameters to be honest with very hot cams).

Zrzut ekranu 2024-08-11 o 08.48.24

Now with PID and all those things that should happen automagically it seems I need to learn how this should be set up (with all those mighty corrections / tables / parameters) to achieve a smooth idle when warming up (and later as well).

Can someone please guide me how to achieve such simple (stable) thing with V3?

First I need to get rid of the ZIG-ZAGs at IAV and IGN corrections (I think I already learned how to change their amplitude, but how to keep them at stable level?)

Ib V2/Classic for the amplitude I just used this:

Zrzut ekranu 2024-08-11 o 08.54.16

When I “lock” IAV and IGN I have very smooth idle.

Thank you.

So I’m getting used to the PID slowly. Disabled the IAV PID (P=0, I=0, D=0).

Interestingly I have observed that IDLE Target gets increased by a reason not understood by me.

See attached screenshot.

After a while with ECU connected and engine not running it dropped to the value from the table.

Powew Cycle of the ECU does not lower the IDLE Target to the value from the table.

Attaching log.

20240811_1126-Idle_Target_RPM_Change.emublog3 (146.9 KB)

UPDATE: I think the “drop back” is somehow related to CLT getting lower (engine cools down).

Maybe a bug related to CLT with high temps I see in CHT in air-cooled engine where CLT is connected to?

Ur min/max/target ignition is messed up…also all PID gains seem random…sure it doenst worke with that.

First u should set all PID gains to 0 and bring ur engine to temp.
Then choose ur target ignition angle. Depending on the engine but roughly at around 5° in idle.
Then u set up the airflow table where target rpms are reached with engine in operation temp.
Then u should look to the PIDs.
First set min and max trq tables. Those are depending on the engine, but roughly -8° for min and 16° for max.
Then u can start PID tuning…u start with ignition P portion. Set a random value and give a small throttle pulse…use steering pump or activate AC (do something wich pressures the engine). Observe the bahviour…if u see too much osciallation in rpm u are at the limit of this gain and should lower it.
Then go on with D portion. For ignition i would not use a I portion cause thats job of the airflow PID imo.
It should not be the target that ur ignition is stable…if it is wabbelinga round it is completly okay…stable rpm is ur creteria.
Then go on with airflow PID. First P and then I portion. I would not use D here.
If u happy with ur PID u can set up the base airflow for other engine temps. Target here is that airflow PID correction is close to 0.

1 Like

Thanks, I will follow your guidance.
I seems for Ign P=1, I=0.5, D=0 worked OK’ish (IAV P=0, I=0, D=0).

I will need to sort that out obviously and play around to understand fully.

Warmed up engine runs smooth idle at 1000 RPM (hot cams) IAV = 0 (same with plug detached from IAV), Ign Angle=0 and Lambda 0.88-0.9 - that’s something I need to achieve with PID’s as well for starters :slight_smile:

Playing around and a base understand of the different PID gains is important. I dont know ur knowledge about that but u should internet read a bit about PID.
But playing around alone without a base setting with so many parameters just will create confusion. I think with the steps written u should get a good base setting.
If u feel u dont need much PID power…make the portions weak.
Here are my seetings which i achieved good results with:


I tried to make them as strong as possible.

Luckily I don’t have an AC :wink:

I have an understanding of how PID should work, but have no practice yet with it and I don’t have an option as I had in V2 to substitute PID with tables it seems.

So before I play with some load on the engine I need to sort out startup and warm up.

While for the cranking part I can set up IAV to open at a certain level to allow start, when Idle Active kicks in it goes straight to the active state air flow table, causing a big drop in RPM.

I need to get that smoothed out, like have granual drop in IAV DC% during 2-3 seconds to target, is it possible?

As I understand the Armed state air flow, this will help with transition from driving to idle (correcting the target RPM?), but from cranking to idle?

One thing I need to ask to be double sure.

IAV PID is relative to the IGN PID, so change in deg of ignition (PID calculated) will issue change in IAV opening as defined int IAV PID definition, right? Therefore we have either IGN PID only or IGN PID & IAV PID corrections active. There is no way to steer IAV independently from IGN PID?

Then the IGN PID is driven by the target RPM as defined in the table (with modifiers).

For ur afterstart problem i would in first place lower the idle valve DC during cranking. U can also try an afterstart rpm increase.
Armed state is more for transition from normal driving conditions into idle.
What i don’t understand…why ur idle airflow table is 0 starting from 100 rpm?

But i would tune PID first…then u can do finetune in startup and warmup.

And yes…the airflow PID ist connected to Ignition PID…u can say with airflow u always bring ignition back to target ignition angle.
So yes…ignition only…or air&ignition. If u set air PID only…nothing will happen. At first i was confused by that, but that concept is actually smart and the right way.

So I’m moving forward a bit, at least on a warmed up engine.
I’ve compensated the lack of transition after cranking from the Cranking IAV value to zero in Active Idle with a bump of ignition advance.

It took me a moment to realise that when Idle Active, the IGN Table is not taken into consideration but this small Target Ign. Table instead, and the Min/Max Torque tables limit how far low or high PID could go with Ign Angle correction.

Still I need to play with IGN PID (I’ve zeroed the IAV PID currently), as after entering Idle Active it needs about a minute to stabilise (0.5 deg change every few seconds, which seems acceptable as a “stable”).

I expect by playing with “I” I should be able to get the stabilisation sooner?

Thx!

For ignition control PID you should always use I.

Why?
As i understand the logic the air PID is doing or lets say can do the better job of the I portion.
E.g.:
U have rpm error of 100rpm → x° correction → rpm increases → end up with an constant error due to no ignition I, but also a constant Ignition correction → air PID starts to work and brings ignition to 0°correction, which means 0 rpm error…I portion of air PID holds a constant correction, which eleminates the rpm error.
So with this strat Ignition is just used for fast respons to events…and air is used as slower reacting thing to eleminate the left rpm error
But probably this is depending on the system…i set it up like that on two engines which worked fine.

P for ignition can lead to non stable rpm as the rpm doesnt change fast enought due to flywheel.
Of course sometimes it can be usefull.

The air control is slower as you wrote so the ignition control is the main controller and then air PID try to cancel ignition correction.
The PIDs do not fight against each other.

If they work in parallel like in V2 they can “figh” against each other.

So it seems I need some IAV addon when the engine is cold. Ign Adv bump is not enough when cold.

Would it be possible to have the custom correction table for IAV active for a period of time?

There are timers implemented (but not for general purpose it seems), if I could use a timer triggered by engine start event and have that custom table active for a period of time…

Or this should be handled by IAV PID and I should not look for workaround at all???

Altering the active state airflow table seems to be helpful. When cold I brought the values up to be close to the cranking IAV DC and the engine starts. There is still the bump down visible, but the engine continues to run and warm up.

For sure I need to adjust the IGN PID and the values for IAV in the active state airflow table to match the desired RPM (target) so the PID would not introduce to much change on either direction.