Introduction: Thermal Drift Below the Protection Limit
Consider a robot whose standing posture sags or whose jumps become lower as it warms up, even with the same policy and torque commands. These are illustrative symptoms to investigate, not a new experiment reported here. A temperature log can reveal a correlation, but confirming the cause requires checking torque response and the driver’s current limits. Torque can change before thermal protection limits the current.
If heat is only a protection problem, the explanation stops here. Too hot and the current is cut, touch it and you get burned, run it long enough and the insulation degrades; so if the limit was never crossed, nothing should have happened. But even below the limit, winding resistance rises and magnet flux falls, so the same current produces a different torque and the same torque produces more heat. The actuator’s parameters can change even while the policy and controller settings remain fixed.
Commanding torque with current, and reading torque and external force from current, all rest on one line.
03 covered and , and 05 covered the ripple and electrical angle error mixed into . This post looks at the one left, the torque constant , because it is the value temperature changes most directly. A datasheet lists as a single number, but in practice it differs from motor to motor, with current, and with temperature, and temperature changes in the middle of an experiment. Here I expand on the heat that 02 introduced in one paragraph, examine the thermal cost of low gear ratios in QDD, and then wrap up the actuator part.
Definition and Units of the Torque Constant
is the torque produced by 1 A of q-axis current. In an ideal surface-mounted permanent magnet motor (SPMSM) it is set by the magnet flux linkage and the number of pole pairs , and the flux linkage includes the number of turns and layout of the winding along with the magnet strength. So is determined by the magnets and the winding together, and when the magnet flux changes, changes with it.
The torque constant and the back-EMF constant are a pair that come from the same flux. If the current and voltage conventions are chosen so that power is conserved, the two are equal in SI units. Real datasheets and drivers, however, each use their own convention, so the numbers written for the same motor differ by factors such as , , or , depending on whether phase current is given as peak or RMS, and whether quantities are per phase or line-to-line. If the definition of reported by the driver differs from the datasheet’s, the torque estimate is off by tens of percent even with no other error at all. This definition is the first thing to align in system identification.
Math: torque constant, back-EMF constant, and current definitions
With the amplitude-invariant dq transform, the q-axis back-EMF is , and and have the same magnitude as the peak phase current and phase voltage. Three-phase power is , so from the mechanical output ,
That is, in this convention , and with the power-invariant transform the two become equal. Written in terms of RMS phase current, the same torque gives , and a back-EMF constant given in line-to-line voltage is times larger than one given in phase voltage. Copper loss must follow the same definition: in amplitude-invariant dq, and in RMS phase current. The examples and demo below fold these factors into a single equivalent and write .
What Changes the Torque Constant
As the table in 02 showed, even motors of the same model have a that differs from the nominal value because of manufacturing variation in the magnets and air gap. This difference is fixed for each joint, so it can be corrected after one measurement. The rest changes with operating conditions.
Current. At high current the iron core saturates, and each added amp produces less added torque. The onset and size of this saturation depend on the motor. A measured current–torque curve is needed to determine where a constant ceases to be an adequate approximation.
Electrical angle. If the encoder zero is off by , only of the current the controller believes is on the q-axis produces torque (05). In a measurement it looks as if has shrunk, but the cause is the angle, not the motor.
Temperature. The flux of NdFeB magnets drops by about 0.1% for every 1 K rise. Manufacturer material gives an example in which falls by about 5% when the motor is 50 °C hotter 1. Within the normal operating temperature range this change is reversible and recovers when the motor cools. Beyond the allowed temperature, or with a strong reverse field applied at the same time, irreversible demagnetization occurs, and then does not return to its original value even after cooling.
This distinction shows the point of view of this post. Irreversible demagnetization is exactly the case where the protection view is right: crossing the limit damages the motor, so the limit must not be crossed. Reversible temperature change, on the other hand, happens continuously far below the limit, and it is not something to prevent but a state to track with a model. Irreversible demagnetization means the motor is broken; a reversible change means the motor has temporarily become a different motor.
Same Current, Different Torque: What Temperature Changes
Temperature does not change only . The resistance of a copper winding rises by about 0.39% per 1 K 1. Following the series example, if the winding and magnets go from 25 °C to 75 °C, resistance rises by about 19.5% and falls by about 5%. The same current produces 5% less torque, and the same torque costs more heat.
The two changes push in the same direction. Producing the same torque takes times the current, and that current passes through a larger resistance, so copper loss rises by about 32%. Higher loss means more heat, which forms a feedback loop, but with enough cooling the temperature settles at a higher equilibrium. This feedback does not by itself mean thermal runaway; it raises the equilibrium temperature.
At first, the current controller hides the rise in resistance. As long as there is voltage headroom, it applies more voltage and keeps the current the same. As speed rises, back-EMF also consumes voltage headroom. Once the total required voltage reaches the inverter limit, current can no longer follow the command and torque drops. Rising resistance shows up first as loss and lost voltage headroom; falling torque constant shows up directly as less torque for the same current.
Math: resistance, torque constant, and copper loss versus temperature
For copper , and for NdFeB flux . The copper loss needed to hold the same torque is , so
The steady-state q-axis voltage with is , and when this exceeds the inverter’s voltage limit, the current loop saturates. Rising resistance increases the first term, while falling magnet flux reduces the back-EMF term at a given speed. The net voltage margin depends on both changes and on the requested current.
The demo below computes the winding temperature of a joint holding a load at zero speed. The example motor is much larger than the series example joint from 02–04; it is the size used in QDD joints, with , , a thermal resistance of 0.42 K/W, and a heat capacity of 105 J/K. The current limit starts at 60 A, decreases linearly from 80 °C, and reaches zero at 115 °C (example values). Commanding 11 N·m at the motor shaft with the nominal fixes the current at 34 A, and the winding settles at about 79 °C, but the actual torque there is 10.4 N·m, about 5% short. Commanding with a corrected for temperature keeps 11 N·m, but the current rises to 37 A, the winding climbs to about 89 °C, and it enters the derating range, cutting the usable current limit to 45 A. Match the torque and the heat goes up; save on heat and the torque falls short. In both cases the temperature stays far below the 115 °C protection limit. The compensated case has entered derating, although its requested current remains below the reduced limit. Thermal drift and protection are already affecting different parts of the actuator model.
How the motor heats up while holding the same load
Motor parameters (example values)
Thermal time constant RthCth = 44 s
First-order lumped thermal model of a joint holding a load at zero speed. Only copper loss R(T)·iq² is modeled; the current limit starts at 60 A and falls from 80 °C to zero at 115 °C. Default parameters are the example values used in the post, not measurements.
Heat per Unit Torque and the Gear Ratio
Rewriting copper loss in terms of torque gives . is the motor constant, the torque that can be produced per 1 W of copper loss. The heat it takes to hold a given torque is set not by alone but by the ratio of to resistance, and as temperature rises falls while rises, so gets worse from both sides. The example motor has at 25 °C and needs about 106 W to hold 11 N·m.
At the joint, the reducer multiplies the motor constant by . Copper loss for a given joint torque is proportional to , so lowering the gear ratio by 10 times makes the copper loss 100 times larger with the same motor. This is the heat that 04 listed as a cost QDD pays, and it is also why QDD uses outrunner motors with a large air-gap radius: to raise for the same volume 2. Copper loss stays even when the joint does not move, so holding a squat, holding an arm out horizontally, and pushing against the ground for a long time are the most expensive motions thermally. Mechanical output is zero, and all the power becomes heat. That for QDD this cost does not end with heat is something we come back to later.
Losses other than copper loss grow with speed. Iron loss, eddy current loss, bearing and reducer friction, and inverter switching loss all increase with motor speed, so a higher gear ratio raises these losses at the same joint speed. That is why the motor’s most efficient operating point lies inside the torque–speed plane, and the best gear ratio from a thermal standpoint differs for each duty cycle. Regenerative braking during deceleration can return part of the mechanical energy, but the loss already dissipated in the winding does not come back.
What Changes Before It Stops: Continuous Torque and Thermal Time Constant
How long an actuator can keep producing force is decided by heat, not by peak torque. Heat capacity lets it ride through short peaks, and thermal resistance sets the loss it can sustain. The example motor has a thermal time constant of about 44 seconds, so a short peak produces less temperature rise than the same loss sustained to equilibrium. Its acceptability still depends on loss magnitude, initial temperature, and current limits; longer loads require the equilibrium temperature as well. Two actuators with the same peak torque can have very different continuous torque depending on the contact between winding and stator, potting, housing area, and airflow inside the joint.
The datasheet’s continuous torque and the driver’s derating answer the question of when to stop. The question this post asks is what changes before it stops. Even running below continuous torque, the winding rises to its equilibrium temperature, and and resistance at that temperature differ from their cold values. Continuous torque is the range in which the motor is not damaged, not the range in which the motor does not change.
A single thermal node cannot represent the different time constants of the winding and the housing. Right after a large current is applied, the winding heats up first and the housing and magnets follow later, so even at the same housing temperature, the winding and magnet temperatures differ depending on the recent operating history.
Math: one-node and two-node thermal models
The equilibrium temperature is , and with the example values . Splitting into winding and housing ,
and since usually , the winding’s time constant is much shorter. A sensor on the housing sees only , so many values of correspond to the same .
The Rotor Temperature That Cannot Be Measured Directly
What changes is the magnet temperature, and the magnets are attached to the rotor and spin with it. A thermistor is easy to attach to the winding and stator, but measuring rotor temperature requires a slip ring or wireless telemetry, which adds mass to the rotating part, wiring, and failure points. So most robot actuators measure only a single stator temperature. Whether this is adequate for protection depends on how the sensor and thermal model bound the winding and magnet temperatures. For tracking , though, it means not seeing the temperature that actually matters.
Magnet temperature is estimated indirectly from electrical signals. Measuring back-EMF at a known speed gives the flux linkage, and since flux varies with magnet temperature, the magnet temperature can be back-calculated 3. Winding temperature is estimated from the change in resistance. Both estimates depend on the accuracy of current measurement, electrical angle, and motor parameters, so they are often combined into an observer together with the stator sensor and a thermal model.
Measuring and Calibrating the Torque Constant
is obtained by mounting a load cell or F/T sensor on the output shaft and measuring torque while stepping the current. Measuring at standstill mixes in friction, so measure in both directions and average, and measuring up to large currents gives the saturation curve as well. Repeating this cold and fully warmed up gives the temperature coefficient. The result is a lookup table indexed by current and stator temperature.
This table has two limitations. First, its temperature axis is stator temperature, while is set by magnet temperature, so with a different operating history the actual differs even within the same cell. Second, thermal resistance and heat capacity are not intrinsic to the actuator but depend on how it is mounted. A large aluminum jig on the bench acts as a heat sink, while on the robot the actuator may be enclosed under a plastic cover or, conversely, the whole link may become a heat sink. Use the thermal model from single-unit tests as a starting point, and refit it with operating logs after the actuator is mounted on the robot.
Reading Torque and External Force from Current
A robot without joint torque sensors reads joint torque from current and subtracts its own dynamics to estimate external force 4. The error in this approach comes from two parts. One is the path from current to actuator torque, which includes this post’s , the efficiency and friction from 03, and the ripple and backlash from 05. The other is the path from actuator torque to external force, where errors in the link inertia, gravity, and friction models go straight into the external force estimate. During fast acceleration or under large gravity loads, the terms to subtract are larger than the external force, and small external forces get buried in model error.
QDD can control contact force from current alone because it reduces friction and reflected inertia, two of these error sources, in hardware. The low gear ratio makes the internal torques to be subtracted small, and Proprioceptive Actuation in the MIT Cheetah demonstrated this structure 5. Reducing those errors can make calibration more consequential, but current sensing, electrical-angle error, and robot-model error still remain. In a high-reduction joint, friction and efficiency uncertainty can also limit current-based estimation; an output torque sensor bypasses part of that transmission uncertainty.
A fast current loop does not mean fast torque either. Current loop bandwidth only means the measured current follows the command quickly. It does not guarantee that the measured current equals the actual current, that the electrical angle is correct, that is constant, or that the reducer and structure transmit that torque as is.
Math: current-based external force estimation
Since is noisy, in practice this is implemented in a form that does not use acceleration directly, such as a momentum observer. For a square, nonsingular Jacobian and an external wrench at the modeled end-effector, . A redundant robot or contacts at other locations require a corresponding estimation formulation. A relative error in multiplies the entire actuator torque, not the external force, so in a joint holding a gravity load it creates a bias of in the external force estimate.
Current-Based Force Estimation in QDD
QDD designs that estimate contact force from current rely on the current–torque relationship. With the same motor and efficiency, a lower gear ratio requires more current for a given joint torque. Sustained current increases copper loss and temperature; high current can also introduce magnetic saturation.
The example motor from the demo makes the difference clear. 11 N·m at the motor shaft is 66 N·m at a 6:1 QDD joint. Holding the same 66 N·m with a 50:1 joint takes 1.3 N·m of motor torque, about 4 A of current, and about 1.5 W of copper loss, so the temperature rises by less than 1 K. At 6:1 it takes 34 A and about 106 W, the winding rises to about 79 °C, and falls by about 5% (example values, ignoring efficiency). Just standing with bent knees is enough to create this difference.
Large current pulls away from its nominal value along two paths. During momentary high torque, as in landing or jumping, core saturation lowers ; under sustained loads, copper loss turns into heat, lowering and raising resistance. The example uses 34 A against a 60 A current limit, but that fraction does not establish where magnetic saturation begins. That needs a measured current–torque curve. Likewise, whether error dominates requires comparing it with sensing, friction, and model errors under the intended operating conditions.
This error shows up directly in the robot’s posture and force. A knee joint whose has dropped 5% holds 5% weaker than the torque commanded with the nominal , and the robot sags until the position controller makes up the difference. Seen from the external force estimation side, the same error reads about 5% of the gravity load as external force. This is one possible mechanism behind the posture drift described in the introduction.
That does not mean QDD is the wrong choice. QDD designs reduce this cost by raising with outrunner motors that have a large air-gap radius and by designing a heat path out through the housing 2. And this error is not random; it is tied to current and temperature, so it can be measured and corrected. The required compensation accuracy follows from the force-estimation error allowed by the task. For a QDD design relying on current-based force estimates, that error budget must include thermal drift in as well as the remaining sensing and transmission errors.
The Slow State That Simulators and Policies Do Not See
What the simulator models and the policy learns is a cold actuator. In a simulator, an actuator usually has the same , the same resistance, and the same torque limit at the start and end of an episode. On a real robot, earlier motions change the actuator for later ones. A policy that cannot observe temperature has no way to know why the same state and action produce a different acceleration, and once derating begins, the torque limit shrinks in a way it never saw in training. If some joints heat up before others, left–right symmetry breaks too.
The policy does not need to see every internal temperature. If the low-level driver computes the torque currently available from temperature and voltage and passes it up, the policy can act based on the torque range it can actually use instead of the temperature of a single sensor. This amounts to moving the temperature sensor from an input of the protection circuit to an input of the policy. On the training side, per-joint randomization of and resistance, including slow drift within an episode, is one way to expose a policy to these changes. Its benefit must be evaluated over the intended thermal range. Using springs, counterbalances, brakes, and posture so that static loads are not held by current alone is the hardware-side answer to the same problem.
Actuator Part Summary
Every error covered from 02 through this post comes down to the same question: where does the real actuator differ from the simulator’s ideal torque source, and should that difference be measured and modeled, covered with randomization, or shown to the policy?
| Error | Identification | How to put it in the simulator | Details |
|---|---|---|---|
| Current loop bandwidth and delay | Current step response, time delay between commanded and measured torque | Actuator delay, first-order filter | 02, 04 |
| Speed-dependent torque limit | Datasheet , resistance, bus voltage | Torque–speed limit, bus voltage randomization | 02 |
| reflected inertia | Acceleration in response to a torque step | Joint armature | 03 |
| Friction and backdrivability | Mean current in constant-speed sweeps, backdrive breakaway torque | Coulomb and viscous friction, per-joint randomization | 03 |
| Reducer stiffness and resonance | Torque–twist curve with output locked, chirp response | Two-inertia model or observation delay | 03 |
| Contact impedance | Low-frequency torque–displacement slope, frequency response | Fit kp·kd together with armature and friction | 04 |
| Torque ripple and electrical angle error | Torque versus position at low constant speed | Periodic disturbance tied to electrical angle | 05 |
| Reducer transmission error | Input-angle analysis of input–output encoder difference at low constant speed | Periodic position error tied to input rotation | 05, reducer subposts |
| Backlash and lost motion | Bidirectional torque–deflection loop | Dead zone and direction hysteresis, observation of recent motion direction | 05 |
| Momentary load limit | Momentary peak torque and shock limit per reducer (datasheet) | Impact torque monitoring, penalty or episode termination when exceeded | 03, reducer subposts |
| Torque constant unit variation, saturation, temperature | Current–torque with a load cell, up to large currents, repeated cold and warm | Per-joint and randomization, slow drift, available-torque observation | This post |
Not every item needs to be included. In tasks such as fast walking, where the ripple frequency is far above the mechanical bandwidth, omitting ripple may have little effect on link motion, and in position-control-oriented tasks the torque constant error is masked by the position loop. Include an item when its error falls inside the task’s bandwidth, as in contact, force control, slow precise motion, and sustained loads. What the errors in this table have in common is that they are tied to state, not random. Knowing whether that state is position, direction, speed, or temperature tells you which errors to measure and what to show the policy.
This concludes the actuators that move a single joint. The next part looks at the sensors a robot uses to read its own state and forces.
References
[1] maxon motor ag, “maxon Motor Data and Operating Ranges.” Manufacturer PDF
[2] S. Seok et al., “Design Principles for Energy-Efficient Legged Locomotion and Implementation on the MIT Cheetah Robot,” IEEE/ASME Transactions on Mechatronics, vol. 20, no. 3, pp. 1117–1129, 2015. Paper
[3] Y. Xiao and A. Griffo, “PWM-Based Flux Linkage and Rotor Temperature Estimations for Permanent Magnet Synchronous Machines,” IEEE Transactions on Power Electronics, vol. 35, no. 6, pp. 6061–6069, 2020. Paper
[4] A. Wahrburg, J. Bös, K. D. Listmann, F. Dai, B. Matthias, and H. Ding, “Motor-Current-Based Estimation of Cartesian Contact Forces and Torques for Robotic Manipulators and Its Application to Force Control,” IEEE Transactions on Automation Science and Engineering, vol. 15, no. 2, pp. 879–886, 2018. Paper
[5] P. M. Wensing, A. Wang, S. Seok, D. Otten, J. Lang, and S. Kim, “Proprioceptive Actuator Design in the MIT Cheetah: Impact Mitigation and High-Bandwidth Physical Interaction for Dynamic Legged Robots,” IEEE Transactions on Robotics, vol. 33, no. 3, pp. 509–522, 2017. Paper