gemellocattivo.com
http://gemellocattivo.com/forum/

Injector control
http://gemellocattivo.com/forum/viewtopic.php?f=19&t=152
Page 3 of 5

Author:  mk e [ Mon Oct 19, 2015 4:36 pm ]
Post subject:  Re: Injector control

It will now shut the injector right off and stip fuel from the port walls so accel and decel can happen at the same rates. A few more things I want to play with but this function is pretty close to ready to try I think.

Attachments:
x_tau 3 2015_10_19.JPG
x_tau 3 2015_10_19.JPG [ 176.3 KiB | Viewed 15649 times ]

Author:  mk e [ Mon Oct 19, 2015 4:40 pm ]
Post subject:  Re: Injector control

I'll note this....that screen shot is a tuner screen so you get real time logs to view or play back on the same screen your tuning which is really nice.

Author:  apalrd [ Mon Oct 19, 2015 4:47 pm ]
Post subject:  Re: Injector control

I'm not quite sure what's going on, but the result looks right.

There isn't usually a target for the puddle mass. There is a model of what goes in (X) and what comes out (Tau) and steady-state the two balance so no fuel change is needed. Is target for your visualization or is it actually used in the algorithm?

The first graph does show the correct behavior, with fuel required going up and tapering off after a transient. Theoretically the same X and Tau values should work equally well for accel and decel without other changes. If you turn up X high enough, it will oscillate, that will always happen with this algorithm but a careful calibrator can use it.

Author:  mk e [ Mon Oct 19, 2015 7:07 pm ]
Post subject:  Re: Injector control

It works similar to x-tau but not actually x-tau......it's stored-stored_delta. It's a variation of something I played with some years back and a bit like what motec is doing in their M1 stuff but I think mine should be easier to tune.

It uses 2 tables. One is Stored_Target [mg] which is the fuel that is stored in a single runner under steady state operate at the current conditions.

The second table is Fuel_Stored_Correction [%] which is the amount of correction to apply as a % of the difference between what is in the manifold ( Fuel_Stored_Current [g] ) and what should be their ( Stored_Target [mg] )

There are 2 other corrections available, 1 for coolant temp and 1 for air temp.

I think it has everything it needs. To tune it i think you start with a guess and adjust with the correction laid over the lambda trace.....but with 2 factors its a back and forth game I guess. I might be able to make it easier by doing an integration of both the lambda error and the correction, but that might just add confusion. I'll need to play with and see.

Attachments:
x_tau 4 2015_10_19.JPG
x_tau 4 2015_10_19.JPG [ 189.57 KiB | Viewed 15655 times ]

Author:  mk e [ Tue Oct 20, 2015 8:27 am ]
Post subject:  Re: Injector control

I realized last night I didn't have wall-wetting( x-tau) tied to lambda....I need to add that. Also the way I wrote it the numbers in the correction table are negative which is a bother when tuning or I need to make them positive. Also not present are enable/disable for the air and coolant temp corrections

Last up I didn't tie it to injection angle in any way other than assuming the user would tune that first. I think I should add something for this.

I have a list of clean-up things I want to do through-out the model that shouldn't change anyhting about the way it works (if I do them right)

Then I'll go in to closed loop, DBW (ETC), Idle control and such.

Author:  mk e [ Tue Oct 20, 2015 12:03 pm ]
Post subject:  Re: Injector control

One more shot of the wall-wetting with the fuel in grams added

Blue is the steady state fuel required for the current conditions
Purple is the fuel delivered be the injector, extra when load increase quickly, less when load decrease quickly.

Now back to cleanup

Attachments:
x_tau 5 2015_10_19.JPG
x_tau 5 2015_10_19.JPG [ 183.1 KiB | Viewed 15653 times ]

Author:  mk e [ Tue Oct 20, 2015 1:12 pm ]
Post subject:  Re: Injector control

I fixed the sign on the correction table so you just use positive numbers now and gave it a test by moving MAP around pretty aggressively.....seems to work just as it should

Attachments:
x_tau 6 2015_10_19.JPG
x_tau 6 2015_10_19.JPG [ 190.79 KiB | Viewed 15652 times ]

Author:  mk e [ Tue Nov 03, 2015 9:36 am ]
Post subject:  Re: Injector control

I added cylinder fuel trim tables and an enable for it.

Attachments:
Cylinder trim.JPG
Cylinder trim.JPG [ 257.58 KiB | Viewed 15635 times ]

Author:  mk e [ Tue Nov 24, 2015 8:10 am ]
Post subject:  Re: Injector control

apalrd wrote:

There isn't usually a target for the puddle mass. There is a model of what goes in (X) and what comes out (Tau) and steady-state the two balance so no fuel change is needed.


Do you have this modeled somewhere? can you share the model?

I was speaking to Jim (from enginelab) last night he's trying to build a "plant" or engine simulation to go along with the upcoming generic engine control model.....but this is not a trivial simulation.

Author:  apalrd [ Mon Mar 14, 2016 11:37 pm ]
Post subject:  Re: Injector control

mk e wrote:
apalrd wrote:

There isn't usually a target for the puddle mass. There is a model of what goes in (X) and what comes out (Tau) and steady-state the two balance so no fuel change is needed.


Do you have this modeled somewhere? can you share the model?

I was speaking to Jim (from enginelab) last night he's trying to build a "plant" or engine simulation to go along with the upcoming generic engine control model.....but this is not a trivial simulation.



Getting back to all of the forums I ignored in the last few months.....


Basically x-tau models fuel puddles with two tuned parameters (X and Tau).

X is the amount of fuel that doesn't evaporate into the airstream, but instead puddles. So, Fuel_Charge = (1-X) * Fuel_Injected. The puddle then accumulates the rest of the fuel, so puddle = puddle + X*Fuel_Injected.

Tau is the time constant of the fuel evaporation. Fuel that evaporates goes into the engine. Fuel_Evaporated = puddle * (tau/dt) where dt is the time between cycles

So puddle = puddle + X*Fuel_Injected - puddle*(tau/dt) and Fuel_Charge = (1-X)*Fuel_Injected+puddle*(tau/dt)

Then you just have to solve backwards for fuel injected from desired fuel charge.


X is only dependent on temperature (usually coolant temp is used because the port area is close to coolant temp). Tau is dependent on only coolant temp and RPM. Neither needs many tunable points. The model I saw (an example engine model for my controller) used a 5-cell X table and a 5x5 Tau surface.

I'm currently working on a stacked x-tau system. The outer loop models the puddle in the runner from the upstream injector and the inner loop models the puddle at the port. From that, I should be able to calculate the downstream fuel quantity precisely, even as the upstream injection split is changed or split injection is turned on/off. I'll let you know how well it works when I test it, it should be running on the dyno in the next two months.

Page 3 of 5 All times are UTC - 5 hours [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/