Are there any resources for figuring out how the Traction Control system in the EMU Pro works and should be tuned? I understand the basics of how to get the necessary wheel speed and gear info into the strategy but I don’t understand how the various variables for Relative and Differential relate to each other or which variables I should be looking to tune via, or even if it is possible to utilize an adjustment channel to change response with 3 tables or some other scaling mechanism. There doesn’t appear to be a tuning desktop dedicated to it apart from the “ALL” desktop and the help file there “This is a variable” is hardly comprehensive.
I don’t see anything mentioned in the software guide and though there is some info out there for the EMU black, my first pass at applying that info to the EMU Pro suggests that it isn’t really apples to apples. How is everyone else getting this setup? Is this just a case of I don’t have some fundamental knowledge I’m expected to have or am I just really bad at locating the documentation?
Thank you for your feedback. You are correct that the Traction Control section is not documented well enough. Creating a How-to guide is an excellent idea. We will focus on adding in-software help for this section in the next build and will prepare a comprehensive document to guide you in setting up the strategy correctly.
I will inform you as soon as we publish the document.
Here is a basic idea behind traction control in EMU PRO:
Measure wheel speeds of the driven and undriven axle.
The difference between the speeds of those axles is the wheel slip.
There is a table with the maximum wheel slip allowed, called the wheel slip target.
The difference between the target and actual wheel slip is called wheel slip target error.
The strategy uses a PID controller to reduce the engine torque when the wheel slip is higher than the target (positive target error).
Strategy outputs a generic torque reduction value from 0-100%.
That torque reduction value is then converted to specific actions like ignition retard, cylinder cut, and throttle control.
You must decide which method to use to reduce the torque. The usual method is to start with ignition retard only for small reductions and add cylinder cut for bigger reductions.
Differential mode operates on absolute values (wheel slip in kph/mph), while the relative mode operates on wheel slip as a percentage. Differential mode is used for low speeds, where the wheel slip target will be much different than for high speeds.
What needs tuning:
focus on relative mode first,
wheel slip target, it can be optimized to achieve best acceleration,
torque reduction - what method and how much to apply depending on the reduction request,
PID - setting gains, so the strategy can keep the wheel slip on target,
after you get good results with relative mode, you can repeat the steps for differential mode at low speeds.
Thank you, that helps a lot. Is there a way to make the tables 3d so I can have different targets and strategies for dry/wet or novice/experienced drivers? At the very least being able to adjust on the fly would cut down on the track time needed to zero in on the ideal.
I suggest set your slip table as 4D and than you can adjust your slip target from potentiometer the same for proportional table than you can have two potentiometers one for slip one for gain where one will adjust slip target ( when traction start intervensions) and gain how harsh response is for given slip error…
I’ve been studying the traction control section with a new eye after your previous info and I just want to confirm I understand a few more things and solicit advice from more experienced minds…
Regarding driver trim controls for slip and gain, is that what the torque and slip “Custom Correction” factors shown at the very bottom of the group are intended to be used for? Convert the Scalar values into 2d tables and use them to tune the overall PID strategies up or down to conditions rather than building out every table above into additional dimensions and having to figure out how to trim them in a coordinated manner based on a SLIP or GAIN trim pot? The units are shown as percent, but are the corrections applied as coefficients or additive? Given the default is 0 and not 100, I assume it is added to the overall torque request and not multiplied; but then scaling to different strategies becomes harder to integrate as setting “5%” would remove 5% from the overall strategy but I don’t know if that is 5% removed from 50% or 3%. The correction would have wildly different implications at different points in the strategy curve. Or is it intended to be a “reduction from 100%” so that the default zero means a coefficient of 100% (have no effect on torque request) and 5% would be a coefficient of 95% multiplied times whatever the PID strategy’s torque request would be? If this is the case, would -5% result in a 105% torque request?
If everything above is not bollocks, would it then be reasonable to have two strategies, a dry and a wet, and build these out as additional dimensions in the Slip and Torque groups (eg, convert the Wheel Slip Target Base table into a 4D with 2 additional Z-axis steps, 0 being the “Dry” slip and 1 being the “Wet” slip? These would cover gross baseline performance across two differing track conditions and then allow the driver to use the slip and gain trim pots to fine tune?
Does the traction control software already have a mechanism to suppress itself (or otherwise absorb momentary wheel slip) as gear changes are being applied or should I consider building in a y-axis on the gear corrections table linked to the “Clutch Depressed” channel with a brief hold-down timer attached?
I see the wheel slip table is by default linked to the throttle position. But it seems (keeping in mind I don’t know anything about this) that your target slip relative to throttle is pretty much always going to be the same since the whole point the traction control is to help the driver find the correct throttle position needed to achieve the ideal slip; if the driver has the throttle at 90% instead of 70% you don’t want a different amount of slip you want a bigger adjustment to the torque produced. However target slip in cornering vs straight would/could/shoud be considerably different, would it make sense to instead map that table against something like Absolute Lateral G?
And finally, the most important and salient question for last, am I correct in assuming that all the slip and PID targets are broadly in a good starting spot for most applications in dry, road-race, asphalt, semi-slick tyre conditions and the best way to develop this would be to leave it all setup as default, enable the two driver trims on the custom correction channels, and then turns some laps, gather some data then will likely only need small adjustments from there to get things dialed in to our particular car? Then once we have a reasonably well dialed-in dry strategy look at how it may suffer in wet conditions and begin working on a second strategy for wet?
Yes. One correction changes the slip target to allow for more or less wheel slip, and the second changes reaction speed by changing the amount of torque reduction applied.
Yes. Put the switch position as the axis.
Most corrections in the software are multiplicative. If they are not, they have “adder” in the name, like “Short pulse adder”.
Zero means no correction for both multiplicative and additive modifiers.
Multiplicative correction of 10% means multiplied by 1.1, and correction of -10% means multiplied by 0.9.
I don’t think that is needed. If you allow enough correction of the slip and torque reduction, you should be able to lower the slip and increase the torque reduction to switch between dry and wet conditions.
There is a blocking mechanism for the gear shifts. You can monitor that on the “State” channel for the traction control strategy. It tells you if the strategy is switched off, armed, active, or blocked for some specific reason. Most strategies in EMU PRO have the “State” channel that can be used to monitor what the strategy is doing.
You can also use a custom activation condition that will block the strategy if the assigned channel’s value is 0. You can make custom logic in the project tree and use that to block the strategy in any situation.
You are correct that the throttle position doesn’t make much sense as the axis for the slip target. If anything, it should be the accelerator position because torque reduction can affect the throttle position, which can lead to control instability. I think we will just remove that axis for future versions.
Optimizing slip for cornering can be beneficial, especially for front wheel drive cars. The axis could be lateral acceleration or steering wheel angle.
The default project has very generic starting values for slip and PID. Torque reduction is something you have to do from scratch. You have to decide which reduction method should be applied at different reduction levels. You also will have to fine-tune the PID for different operating points of the engine.
Thank you, I feel pretty comfortable now that I have a good understanding of how everything is meant to fit together and how assemble the car controls so that I have a tunable platform to hand off to the race engineer and drivers.