Joined
·
67 Posts
Optimizing the ignition map
This is the final part of the project.
The first task is to optimize the ignition map for wide open throttle operation. For this, the vacuum advance stays disabled.
I did 4 runs in quick succession in about 20 minutes total. For each run I returned to the same starting point, quickly shifted into 3rd gear and kept it running at about 1500rpm for a moment. Then activated the data acquisition, floored the throttle and stayed on it until about 6300rpm. For each run the static ignition was set with the potentiometer inside the car. First run without timing bias (0 degrees), 2nd run at -10 degrees, 3rd run at +10 degrees, and finally a control run at 0 degrees again. The degree values are not absolute timing settings. What it means is that for each value in the ignition map 10 degrees get added or subtracted for all rpms, or in the case of 0 degrees the map is being used as is.
The two 0 degree runs were very similar and the difference between them was much smaller than the difference to any of the 10 degree runs. That means the change in torque curves is truly due to the timing settings and not due to random run-to-run variations.
The graph in the first attached picture shows the torque curves for the three bias timings. The baseline for these runs was the result of some initial optimization. However, neither the Arduino program nor the data acquisition had been fully developed, yet. The zero degree curve shows the highest torque for all rpms, meaning that the baseline map in this run was already close to the optimum. However, the torque does not decrease equally at all rpms for the -10 degree and +10 degree settings. Sometimes the -10 curve is closer to the optimum, sometimes the +10 curve is. Therefore, there is some room for improvement for the baseline. For some rpms it needs to be more advanced, for some rpms more retarded.
About calculating the correction values: For every rpm we have now a torque value for each of the three timing settings. One can fit a parabola through these 3 points and find the optimum timing setting at the peak of the parabola. Sounds a bit complicated, but it is rather simple and quick in Excel. These new timing settings are correction factors that need to be added to the ignition map to create a new map. The correction factors for all rpms are plotted in the same graph as an orange line. It spans from -0.5 to +3.5 degrees and is defined in a way that positive values mean more timing advance.
The graph in the next picture shows the timing map before the test and the map after applying the calculated corrections. The measurements were pushing me towards a weird double-hump curve with an extreme (30 deg.) angle at 2000rpm. Even though this is what provided best acceleration, I made a conscious decision not to follow the data for fear of knocking. I never heard knocking during the tests, but that may be due to my ageing ears.
Below 3000rpm, I changed the curve to something that "looks right" resulting in the red curve. This isn't really a performance issue. If I want to go fast I never let the rpms drop that low, but rather shift into a lower gear.
The curve looks unusual above 4000rpm, too, but again, that's what the data tells me and I am not worried about knocking at the highest rpms. We are used to seeing factory ignition maps with one or two straight lines and flatlines above and below certain rpms. This is clearly not what the engine needs, but it is dictated by what is possible by using two springs. An unusual looking ignition curve shouldn't be too alarming. An electronic ignition simply has much greater flexibility.
The starter cranks the engine at about 250rpm. The initial map had some timing advance even at 250rpm, which resulted in occasional kick-back during starting. That's why I changed the map to stay at zero advance up until 300rpm.
The last step is optimizing the vacuum advance. This is a much more difficult task, since I cannot reliably do partial-throttle acceleration runs and compare one run to the next. Maybe one could limit the throttle opening to one third of full throttle, but I didn't try that.
The only test I came up with is to set the idle screw to speeds between 1000rpm and 3000rpm in steps of 500rpm and then vary the timing bias to obtain the fastest idle speed and best manifold vacuum. After optimizing the advance the idle screw often had to be tweaked to get back to the target rpm.
For all tested idle speeds the timing had to be advanced by about 10-15 degrees relative to the WOT setting. The vacuum readings ranged from 400mbar (12"Hg) at 1000rpm to 580mbar (17"Hg) at 3000rpm. This trend of constant advance may be tainted by the way how I somewhat arbitrarily set the WOT timing below 3000rpm, but it is what it is.
Another decision point is what formula to use to convert a vacuum reading to advance angle. The factory advance remains inactive up to a certain vacuum pressure, then increases linearly, and finally stays constant beyond another pressure limit. I have to believe that this curve is due to mechanical constraints of the hardware and does not reflect best performance of the engine. It is more reasonable to believe that the flame speed varies in a more gradual way with combustion chamber pressure. Therefore, I made the timing advance proportional to vacuum pressure. Based on the idle measurements, the advance for 1000mbar (30"Hg) was set to 25 degrees, giving a 10 degree advance at 1000rpm.
One can make a theoretical argument, that the flame speed doesn't care about rpms and therefore the vacuum advance should be proportionally smaller at lower rpms. That's usually what Motronic timing maps do. But then the same timing maps keep the vacuum advance constant beyond a certain rpm, usually near 3000rpm. Since the optimum vacuum advance in my own tests (with my particular timing map) stayed constant between 1000 and 3000rpm, I didn't implement any rpm dependence. In a way that is also saying that I don't have any better testing capability to justify a multi-dimensional map.
Thomas
This is the final part of the project.
The first task is to optimize the ignition map for wide open throttle operation. For this, the vacuum advance stays disabled.
I did 4 runs in quick succession in about 20 minutes total. For each run I returned to the same starting point, quickly shifted into 3rd gear and kept it running at about 1500rpm for a moment. Then activated the data acquisition, floored the throttle and stayed on it until about 6300rpm. For each run the static ignition was set with the potentiometer inside the car. First run without timing bias (0 degrees), 2nd run at -10 degrees, 3rd run at +10 degrees, and finally a control run at 0 degrees again. The degree values are not absolute timing settings. What it means is that for each value in the ignition map 10 degrees get added or subtracted for all rpms, or in the case of 0 degrees the map is being used as is.
The two 0 degree runs were very similar and the difference between them was much smaller than the difference to any of the 10 degree runs. That means the change in torque curves is truly due to the timing settings and not due to random run-to-run variations.
The graph in the first attached picture shows the torque curves for the three bias timings. The baseline for these runs was the result of some initial optimization. However, neither the Arduino program nor the data acquisition had been fully developed, yet. The zero degree curve shows the highest torque for all rpms, meaning that the baseline map in this run was already close to the optimum. However, the torque does not decrease equally at all rpms for the -10 degree and +10 degree settings. Sometimes the -10 curve is closer to the optimum, sometimes the +10 curve is. Therefore, there is some room for improvement for the baseline. For some rpms it needs to be more advanced, for some rpms more retarded.
About calculating the correction values: For every rpm we have now a torque value for each of the three timing settings. One can fit a parabola through these 3 points and find the optimum timing setting at the peak of the parabola. Sounds a bit complicated, but it is rather simple and quick in Excel. These new timing settings are correction factors that need to be added to the ignition map to create a new map. The correction factors for all rpms are plotted in the same graph as an orange line. It spans from -0.5 to +3.5 degrees and is defined in a way that positive values mean more timing advance.
The graph in the next picture shows the timing map before the test and the map after applying the calculated corrections. The measurements were pushing me towards a weird double-hump curve with an extreme (30 deg.) angle at 2000rpm. Even though this is what provided best acceleration, I made a conscious decision not to follow the data for fear of knocking. I never heard knocking during the tests, but that may be due to my ageing ears.
Below 3000rpm, I changed the curve to something that "looks right" resulting in the red curve. This isn't really a performance issue. If I want to go fast I never let the rpms drop that low, but rather shift into a lower gear.
The curve looks unusual above 4000rpm, too, but again, that's what the data tells me and I am not worried about knocking at the highest rpms. We are used to seeing factory ignition maps with one or two straight lines and flatlines above and below certain rpms. This is clearly not what the engine needs, but it is dictated by what is possible by using two springs. An unusual looking ignition curve shouldn't be too alarming. An electronic ignition simply has much greater flexibility.
The starter cranks the engine at about 250rpm. The initial map had some timing advance even at 250rpm, which resulted in occasional kick-back during starting. That's why I changed the map to stay at zero advance up until 300rpm.
The last step is optimizing the vacuum advance. This is a much more difficult task, since I cannot reliably do partial-throttle acceleration runs and compare one run to the next. Maybe one could limit the throttle opening to one third of full throttle, but I didn't try that.
The only test I came up with is to set the idle screw to speeds between 1000rpm and 3000rpm in steps of 500rpm and then vary the timing bias to obtain the fastest idle speed and best manifold vacuum. After optimizing the advance the idle screw often had to be tweaked to get back to the target rpm.
For all tested idle speeds the timing had to be advanced by about 10-15 degrees relative to the WOT setting. The vacuum readings ranged from 400mbar (12"Hg) at 1000rpm to 580mbar (17"Hg) at 3000rpm. This trend of constant advance may be tainted by the way how I somewhat arbitrarily set the WOT timing below 3000rpm, but it is what it is.
Another decision point is what formula to use to convert a vacuum reading to advance angle. The factory advance remains inactive up to a certain vacuum pressure, then increases linearly, and finally stays constant beyond another pressure limit. I have to believe that this curve is due to mechanical constraints of the hardware and does not reflect best performance of the engine. It is more reasonable to believe that the flame speed varies in a more gradual way with combustion chamber pressure. Therefore, I made the timing advance proportional to vacuum pressure. Based on the idle measurements, the advance for 1000mbar (30"Hg) was set to 25 degrees, giving a 10 degree advance at 1000rpm.
One can make a theoretical argument, that the flame speed doesn't care about rpms and therefore the vacuum advance should be proportionally smaller at lower rpms. That's usually what Motronic timing maps do. But then the same timing maps keep the vacuum advance constant beyond a certain rpm, usually near 3000rpm. Since the optimum vacuum advance in my own tests (with my particular timing map) stayed constant between 1000 and 3000rpm, I didn't implement any rpm dependence. In a way that is also saying that I don't have any better testing capability to justify a multi-dimensional map.
Thomas
Attachments
-
62.5 KB Views: 362
-
53.3 KB Views: 370