Hi,
with RR 1.0.0 I implemented something I called Dataflow Simulations. It allows you to define how tables interact with each other, mostly for documentation purposes and understanding the maps. However if the simulation is accurate, it could maybe also be used to do something I would call "virtual live tuning". But I mostly just built it for fun

I am not very deep in MS41.0, its just the only car I could test this on. Here is a short video:
https://www.youtube.com/watch?v=rgrHedIF7zgIn this video I tried to simulate the IPW with the following definition (also attached). This part is added in the BASE part of the XML:
Code:
<Simulation name="FUEL">
<inputs>
<input name="ECTEngineStart"/>
<input name="ECT" logparam="P2"/>
<input name="RPM" logparam="P8"/>
<input name="VOLTAGE" logparam="P17"/>
<input name="LOAD" logparam="E2"/>
<input name="VANOS_ANGLE" logparam="E11"/>
<input name="LOGGED_IPW" logparam="P21"/>
<input name="STFT" logparam="E13"/>
<input name="LTFT" logparam="E21"/>
</inputs>
<dataflow>
<table reference="Fuel Injection - Base" input_y="RPM" input_x="LOAD" output="IPW_BASE"/>
<table reference="Fuel Injection - Base - VANOS Correction" input_x="LOAD" input_y="RPM" output="IPW_VANOS_MULT"/>
<table reference="Fuel Injection - Warmup Enrichment" input_x="LOAD" input_y="RPM" output="IPW_WARM_ENRICH"/>
<table reference="Fuel Injection - Warmup Enrichment (ECT Compensation)" input_x="ECTEngineStart" input_y="ECT" output="IPW_WARM_ECT"/>
<table reference="Fuel Injector - Dead Time / Latency" input_x="VOLTAGE" output="IPW_DEADTIME"/>
<action output="IPW_VANOS_OFFSET" expression="IPW_VANOS_MULT * VANOS_ANGLE"/>
<action output="IPW_ENRICH_COMB" expression="1 + ((IPW_WARM_ENRICH * IPW_WARM_ECT) / 100)"/>
<action output="IPW_FINAL" expression="(IPW_BASE * IPW_ENRICH_COMB * (1.0 + (LTFT/100.0)) * (1.0 + (STFT/100.0))) + IPW_VANOS_OFFSET + IPW_DEADTIME"/>
<action output="IPW_SIM_ERROR" expression="LOGGED_IPW - IPW_FINAL"/>
</dataflow>
</Simulation>
What I learned later for example, is that the deadtime is not logged. So this definition should just be seen as an example. You can query the output value from a table and then save it into a variable. With an action you can do math operations on these variables .
On older RR versions than 1.0.0 this feature will simply be ignored. On 1.0.0 you should see the tab under tools. You can enter the values manually and also sync them with the logger. I tried to make this as flexible as possible, so it could hopefully be used for a lot of things.