I am trying to wrap my head around the working of electronic throttle bodies. So they usually have a brushed Permanent Magnet DC Motor which actuates the throttle plate (butterfly valve) via a gear train. There's also a return torsion spring which keeps the plate closed or almost closed by default when the motor is not energized. There exists closed loop control for the throttle - the TPS (throttle position sensor) senses the current throttle angular position and sends it as feedback to the controller.
Here are some of my doubts that I can't answers for on the internet:
Say we want to hold the throttle the plate at a particular angle - an example that I can think of is a cruising condition of a gasoline engine powered automobile. So to counteract the torsion spring's torque the motor will have to continuously provide torque to hold the plate at any particular position. If there were no spring then when could have simply turned off the motor to hold the plate at that position. But motor is continuously providing torque, and since the plate isn't moving so I believe the motor would be stalling. And I have read that usually operating motors at stall conditions leads to overheating. So why don't the throttle actuator motors get overheated? Is there any particular overheating protection measure provided? So is it that PMDC motors can comfortably handle stalling conditions?
Will there be a linear relationship between the PWM duty cycle % provided as input to the brushed PMDC motor and the output throttle angular position? Let me explain my reasoning. The torque provided by a brushed PMDC motor is given as \$T_m = aV_m - b \omega\$, where \$a\$ and \$b\$ are constants, \$V_m\$ is the motor's supply voltage and \$\omega\$ is the rotational speed of the motor shaft. At the a particular throttle angle the motor is stalling so \$\omega = 0\$ and hence the torque provided by the motor follows \$T_m \alpha V_m\$. Also, this torque will be equal to the return spring's torque \$T_s = k_s \delta \theta\$, where \$k_s\$ is spring's torsional rigidity and \$\delta \theta\$ is the angle turned by the spring. So finally \$T_s = T_m\$, which gives \$V_m \alpha \delta \theta\$. But the motor voltage (average) will be proportional to the duty cycle % it is being provided with. So finally \$\delta \theta \alpha V_m \alpha Duty Cycle\$
Say I want to hold the plate at 55 degrees position. How do I decide what duty cycle % is to be given to the motor? Lets assume for the sake of the question that all physical parameters like motor inductance, armature resistance, spring's torsional stiffness, etc. are known. Will I need to create an experimental look-up by varying the duty cycle and plotting the resultant throttle position data (which I can get from the TPS) vs the duty cycle % ?
Qualitatively speaking, I saw that throttle plate was not opening in proportion to the duty cycle that I was supplying. I controlled the duty cycle by an Arduino UNO which is capable of 8 bit PWM output (0 to 255). I saw that changing duty cycle from 35(out of 255) to 45 had a much weaker effect (much less change in throttle angular position) than changing it from 45 to 55. Is this normal behavior? To what can I attricute this non-linear behavior - spring or friction. Friction is definitely non-linear but I am expecting that spring is linear in nature.
- Right now I have two new and unused throttle bodies . One problem that I am currently encountering with both of them is that of repeatability. For a given throttle body, I am getting different TPS output voltages (TPS output is 0 to 5V which can be linearly converted to throttle plate's angular position) for a given duty cycle % every time I run my code. Is the friction to be blamed here which is causing this uncertainity. I am assuming that this does not happen in a real engine's throttle, since it should respond to the same input in the same manner every time.