486--I haven't been able to find fuel maps, so I've been doing all this work blind. Nevertheless, the behavior of the pump on my workbench is repeatable. If we turn off the PID control and set the PWM to certain fixed values, I can manually nudge the IQ shaft under power and then watch it stay in that position anywhere from, say, 65% to 90% IQ. In other words, the PWM (or equivalent DC voltage) isn't deterministic for IQ position in that range. I guess the IQ motor torque increases at about the same rate as the return spring force, and a little bit of friction in the pivot makes up the difference.
Nick--The system only divides the IQ position sensor output voltage by the sensor coil excitation voltage. Since the sensor output voltage is approximately proportional to the excitation voltage, this makes the IQ position sensor less sensitive to the voltage fluctuations. Otherwise, every time we flipped on the fan or high-beams, the electrical load would drop the voltage and it would blip the throttle. My approach isn't perfect but better than nothing.
The command to the IQ servomotor comes from the PID, which actively changes the width of the power pulses to the motor. This drives the difference between the commanded IQ position and the IQ sensor measurement to zero. It's fun to run the system through a series of commanded positions and watch the controller figure out how to make it happen. Last week, I wasn't able to control the IQ position manually above ~50% with a knob on the PWM, but the closed-loop control reacts way faster than I can and it has no trouble getting the position to the commanded value.