Jump to content

DIY Fuel injection thread.


yoeddynz

Recommended Posts

Other problem is a stinking hot exhaust manifold right under/next to the intake manifold. Without a heat shield. I don't have enough room by the chassis rail to space the exhaust out any further from the head - do phenolic gaskets even cope with exhaust at all?

Heat soak with the engine off is almost a problem with my setup, I aim for idle to be 13.5ish:1 under normal conditions as if the engine is sitting for like 15 minutes and then turned back on it will idle at like 15:1 (it idles reasonably well up to about 15.5:1) for a few minutes or you drive a hundred metres or so to pull the heat back out of the manifold. This is even with the CLT correction factors, so it's probably a mixture of injector/fuel heat soak and the possibility that the hot exhaust causes the intake to be hotter than CLT.

 

 

  • Like 2
Link to comment
Share on other sites

  • Replies 2.4k
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

I've spent some time digging through the source code, looks like they are actually including VE in the flow calculation, it's just that TunerStudio misrepresents it.

 

Another issue I noticed is that the EGO control routine seems to have some sort of a bug, where under certain conditions it does not actually aim at the correct AFR. Ie at 1200 rpm and 30 kPa, it is set to 14.7, but the EGO routine is trying to pull it to like 13.5. I have no idea why and can't figure it out.

  • Like 2
Link to comment
Share on other sites

	 /* This math is the derivative of the ideal PID equation:
     * output = bias + ((P*error) + (I*errorsum) - (D*derivative)), but with
     * P and D only using PV and not the error (or setpoint) to help avoid
     * overshoot once properly tuned
     */
	    deriv = PV - (PVarray[0]<<1) + PVarray[1];
	    Kp = ((long)(PV - PVarray[0]) * flash4.egoKP);
    Ki = ((egoerr * (long)flash4.egoKI * (long)looptime) / 7812L);
    Kd = ((deriv * (long)flash4.egoKD*781) / (long)looptime);
	    PVarray[1] = PVarray[0];
    PVarray[0] = PV;
	    *egostep = (long)((Kp - Ki + Kd)) / (PID_scale_factor);
	

Turns out that MS doesn't use Kp to correct the AFR based on error, just based on how much the value is changing?

Recommended routine is to tune integral term and then adjust the proportional and derivative terms later.

 

Supposedly a "Type C" PID control algorithm and more stable than the basic "Type A"..

 

I'm gonna have to do some learning.

 

Link to comment
Share on other sites

You need quite a fast wideband for EGO to work at idle, orrrr have some filtering/smoothing on the ECU side.

As the gas speed/volume past the sensor is quite low it can be laggy.

Otherwise it gets into a bit of a loop of under/over correcting something that's already happened too long ago 



 

Link to comment
Share on other sites

The proportional term on megasquirt doesn't actually work like in that video though. Instead of being P = Kp*Error, it is P = Kp*(currentError -lastError)

 

Basically, with megasquirt, Kp doesn't really do anything on its own and requires one of the other terms to act on the system and initiate the changes.

 

I've gotten it to respond well enough again by setting integral, then adding proportional to speed up response and then going back and forth between the two to balance it out. I have stayed away from derivative gain for now.

Kp=30,Ki=10 are the values that give a reasonable response on my setup. Probably around the same as the values I would have had in it before I decided that historic me was stupid and current me could do a better job of turning knobs.

 

In all the other PID systems I have set up/made in the past I used the traditional algorithm that allows setting of proportional first and then fine tuning the offset out with integral and then damping it all with derivative.

  • Like 2
Link to comment
Share on other sites

  • 2 months later...
  • 3 weeks later...

To avoid cluttering @Roman yaris thread, here are the graphs that @kpr asked for regarding heat transfer into air in runners

 

Runner length is defined as distance between intake valve and plenum/open air in this situation

 

Runner temperature is assumed to vary along the length of the runner, split into three equal length sections being 35 deg at inlet, 70 deg in the mid section and coolant temperature at the head end. If you give me measurements at points along your runner I can feed that data into the model to give you a prediction.

Airbox temperature is assumed to be 20 deg.

Here is temperature gain along runner for mass flow rate through that runner, with varying runner length. Runner diameter is 28 mm:

image.png.eb1e44740a18c82d8034ec8ee75e29a0.png

 

 

Here is changing diameter, holding runner length constant at 650 mm:

image.png.792d4e17173a6736f93c313dc57dec2e.png

 

For reference, the maximum flow rate on this graph corresponds to about 15 hp per cylinder, so you're probably only getting a 10 degree gain at most with your 4AGE at full power

 

 

 

 

 

Link to comment
Share on other sites

I'm using heat capacity of the air as 1008 J/(kgK)

 

A bit of maths for my 4K with 650 mm long runners

Assuming temperature gain of 48 K at mass flow rate of 0.0018 kg/s (basically idling)

-> 48K*1008J/(kgK)*0.0018kg/s =88 W per cylinder

 

Assuming 36 K gain at mass flow rate of 0.019 kg/s (full tilt for a 4K)

-> 690 W per cylinder

 

That's a lot of heat input, I guess the runners would cool down under sustained load. But then again, the amount of heat being fired off the exhaust headers right next to the intake would probably offset the cooling.

 

Link to comment
Share on other sites

Nice, I assume your calculations take into account, there is only airflow in the runner part of the time, rather than constant flow? 

Possible to punch some numbers, showing  temp gains vs a range runner temperatures.  for following:

50mm runner diameter
400mm length
50hp per cylinder
20 deg ambient

 

Also 70 deg runner temp is some sweet bbq

 

Link to comment
Share on other sites

Have you ever put your hands on EFI 4K runners? You could easily cook a steak. Even with the carb manifold I have successfully cooked garlic bread

 

 

Here is for 50 mm diameter, 400 mm length and 20 deg ambient, coolant 90 deg

Runner temp distribution is IAT+1/3(temp), temp, max(CLT, CLT-1/3(temp)) along length, equally split.

image.png.60cfde81d1d86393ddf7417a566ea686.png

 

Quote

runnerT =

   30   30   90

runnerT =

   33.333   40.000   90.000

runnerT =

   36.667   50.000   90.000

runnerT =

   40   60   90

runnerT =

   43.333   70.000   90.000

runnerT =

   46.667   80.000   90.000

runnerT =

   50   90   90

runnerT =

    53.333   100.000    90.000

 

Link to comment
Share on other sites

And yep, only accounting for flow on 1/4 of cycle

 

edit:

 

Looking through my model and trying to produce a temp gain vs runner temp for given hp could be a bit difficult as the mass flow calculation it uses takes into account changes in density as function of temperature but I just provide VE, MAP and RPM. If I fix VE and MAP and use RPM to try get a mass flow rate that relates to a power output, the power output is a function of runner temperature and pushes stuff all around. Easier if you just cut a vertical line on the graph above at your desired power output.

 

Link to comment
Share on other sites

if looking at the 30 deg line, assuming 10deg gain is from the port temp?    so ignoring the port temp.  going from  30deg pipe to  100deg pipe would be about 10 deg gain in temp.

going by some crappy calculator i found,  that 10deg change in temp would  be about 2.8kw  if engine was making about 150kw.   so yeah cooling the pipe from 100degrees to 30degrees  2.8kw.   well actually would be less because some of that 400mm runner is the port cant do anything about.  so call it 2kw at a guess.

so in my case i may have made the intake 30deg colder but not the whole length of it.  so maybe .5kw gain at most.   i'll take it...

if i could be assed i would test it on the dyno.  but dont have an intake i want to heat up with a gas torch right now

Link to comment
Share on other sites

In reference to the start of this discussion, which was my car heat soaking (or at least, the IAT sensor heat soaking) at the drags. 
It's a very simple thing to replicate.
Because I can just go for a drive with lots of airflow, do a full throttle run. 
Then leave the car to sit idling for a significant period until the IAT gets high again (with IAT sensor set to observational only, not changing tune) 
Then do another full throttle run straight away. 
Then monitor the percentage of difference in Lambda value of the two runs, and the two idle speed conditions. This will show what the "Real" heat soak value is at each end of the spectrum.

Thinking about things a little more though.
Since my motor has very high compression, I think it's likely that the heat of compression is probably considerable. So the IAT being 20 or 35 deg probably doesnt make too much difference. 
From a knock perspective, perhaps IAT isnt that relevant. 

If that is the case, then it's just adjusting the fuel trim by a % that's needed, based on observational result. 
Calculations are good for giving a starting point, but observation gives you the sum of all variables, some of which you cant calculate for. 

From my drag runs, with goal AFR of 12.8:1. 
In the third gear runs I was just slightly richer of this target. 

In the first gear runs with heat soaked IAT sensor, I was sitting around 13.2:1 
So a definite indicator that the air coming in was cooler than IAT was reporting, so skewing the airmass result. 

TL;DR: Unplug IAT next time hahaha

  • Like 3
Link to comment
Share on other sites

Yeah so basically insignificant. I stand by my half track burnout making your car faster statement.   

After many years of playing with stuff. If you need big compensation  your setup sucks mechanically, your car is on fire or you have a efi 4k 

  • Like 1
  • Haha 2
Link to comment
Share on other sites

  • 1 month later...

Injector placement question, with my turbo Holden/buick l67 build I still have l67 heads which have a injector boss milled into them right above the inlet valve. I will be running a standard Ecotec inlet manifold which also has Injector bosses in the intake about 70mm further back up the port so one set needs to be blocked off (probably with Welch plugs).

Would there be any advantages one over the other? 

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...