- first test
Ok, more experiments with a 20 Nm wheel.
First I tried running my ‘play sine wave’ test, but accidentally selected ‘frequency sweep’ instead. By the time I got it shut off my monitor had vibrated to the back of the desk and several other objects had hit the floor. Did I mention that these are not safe toys to play with!
Anyway I found that at a reasonable amplitude (about 20%) I could detect a smooth change in frequency from 0 to 50 Hz, at a 1000Hz update rate (1 ms delay). However at about 25 Hz the motor started vibrating objects on my desk in such a way that they were singing and that seemed to indicate to me some sort of discord in the oscillation.
Going down to 60 Hz (16ms sleep) I was only able to increase the frequency to 16 Hz before I got a strong interference and the wheel started pulsing. That makes perfect sense, if you know anything about nyquist, but it is good to confirm it. I think running at 8 Hz was a bit clearer, but it is not a huge improvement. I then tried running at 8 and 16 Hz while toggling between 1 and 16 ms delays and you can hear a sharp increase in noise at the slower update rate but the actual feel of the vibration is hardly changed.
So in summary, even with an over the top wheel, you can’t produce frequencies beyond 16 Hz in iRacing.
Next I brought out the ‘Force Spring (PID)’ test. I killed off the damper, because my PID damper never works correctly with this wheel, and just concentrated on the spring effect (Kp). With my spring strength set to be at max force with 45 degrees of rotation (Kp=10) and the update rate set to 60 Hz (16 ms sleep) the wheel began to make a subtle noise as I turned it. Turning it rapidly generated an actual granular feel in the wheel that I can only assume is caused by stair stepping in the output from the PID loop. Going to 1 KHz eliminated the noise and stair stepping. As you probably guessed, turning the wheel faster, and increasing the spring constant (Kp) both caused the noise and roughness to increase.
Going the other way to a 64 ms delay (15 Hz update) always produced a noticeable notchy feel to the spring, even when set to a very low Kp of 1. As we already knew, there is a lower bound as far as update rates are concerned. I then tried variables in between 60 Hz and 1 KHz and found that at around 167 Hz (6 ms sleep) things started to get a lot smoother and the noise was noticably reduced. There was still a small advantage to running at 1 KHz, but it was subtle and hard to detect.
I then tried turning the wheel 10 degrees and letting it go, at various update and spring strength rates. Again as you could guess going faster made the spring more stable, and lowering the spring constant made it more stable as well. However even at 1 KHz I had to go down to a Kp of only 6 in order to ensure that the wheel was truly stable, with a Kp of 10 easily going out of control. This tells us that any spring force with a slope higher than Kp=10 (about 45 degrees to max spring output) is always going to be unstable, with a fast 20 Nm wheel.
I then tried testing against my G27 for reference. I found that it too tapped out at about 16 Hz when playing a sign wave with a 60 Hz update rate, however even at 1 Khz I could not improve on the feel of the sign wave. Again this shows us that the G27 does not benefit at all from a faster update rate (no shock there).
It did not make sense to play with the Kp values on the G27 since my formulas are not calibrated by force, so a Kp of 10 on a G27 is a much more shallow slope than on a 20 Nm wheel.
- second test
It really bothers me that I can’t produce a stable damping effect with this wheel. And the baked in inertia and friction effects go nuts as well. I suspect that something is set wrong inside the firmware, but I have not taken the time to really try to understand how this is all put together. Anyway someday I need to dive into that and find out more about it.
What boggles me is that I appear to get smooth and relatively reasonable position information out of the wheel, and the controller seems more than capable of cycling the force at a very rapid rate without causing issues. Maybe there is some sort of a delay between the wheel turning and the encoder data being sent to the computer? Anyway it has me stumped.
I did notice that the encoder seems to have a strong binning behavior. If I smoothly turn the wheel and then calculate the change in reported position, then the change will always bounce between 2 and 5 or 3 and 6 counts instead of what I would normally expect to be a random error centered around the actual velocity. That suggests to me that someone somewhere is processing the encoder signal, much like the signal is processed in the G27.
- third test
Naid Naydenov wrote:David, it sounds like DD wheels would benefit from higher update rate a lot more than a G27. Is this something that we may see in iRacing soon?
I’m testing that out right now. The AccuForce wheel already has internal compensation to try and smooth out the clunks you feel at 60 Hz and I found little benefit to going to a faster update rate. I’m going to test this wheel out at 180 Hz and see if it improves things at all or not. As always keep in mind that my 180 Hz test involves shutting off large portions of the sim, so it is not like we can just bump up the update rate…
- fourth test
Well that was very interesting. I set the sim up in the usual way, linear, 20 Nm output and drove several laps in the skippy at watkinsglen\cup, trying to make sure I got onto the curbs and even testing the grass out a bit Then I set the sim up to run at 180 Hz and repeated the experiment, finally I cut the force in half (40 Nm on the slider) and tried it again at 180 Hz.
At 60 Hz and 1:1 force levels I was feeling very beat up. The road was rough, the curbs were rough (but oddly pleasing) and the grass (and walls) were way too rough. Going to 180 Hz improved the road quite a bit and eliminated the nasty oscillation you get when dropping into the world. The curbs were slightly smoother but still lively and the grass and walls were still a bit over the top (but better).
Running the OSW at 40 Nm (1/2 force) at 60 Hz helps, but does not eliminate the overly bumpy road surface.
Interestingly dropping the forces down at 180 Hz made this wheel feel almost exactly like my AccuForce wheel on members. SimXperience put in a lot of work to smooth things out without adding in a load of latency and they really nailed it. Running the AccuForce at 180 Hz hardly makes a difference and the road surface is not overly rough even at 60 Hz. They still have the same nasty oscillation when dropping into the world (when Sim Commander is not running with there anti-oscillation tweaks) but the more dynamic forces feel better.