Sign in or create a free account to continue.

ROB-300 · Lesson 3 of 12 · 36 min

Actuator dynamics and joint modeling

The manipulator equation of lesson 2 assumes that each joint torque appears exactly as commanded, at a perfectly rigid, frictionless joint. Real joints are driven by electric motors through gearboxes, belts or harmonic drives; they have friction that changes with speed and direction; they flex under load; and their motors have current, voltage and thermal limits. These effects often dominate what a controller can achieve. A position loop that would be excellent on the ideal model can limit-cycle around a target because of static friction, ring at a structural resonance it never knew existed, or saturate and wind up when the motor runs out of voltage. This lesson builds a practical joint model that adds the actuator, the transmission, friction and flexibility to the rigid-body dynamics, and shows how each affects control and motor sizing. Sensors, motor types and gear types were introduced in ROB-220; here we model their dynamics.

The electric motor as a torque source

A permanent-magnet DC or brushless motor produces torque proportional to current, \( \tau_m = k_t\,i \), and generates a back-EMF proportional to speed, \( e = k_e\,\omega_m \), with \( k_t = k_e \) in SI units. The winding obeys \( L\,di/dt + Ri + k_e\omega_m = v \). The electrical time constant \( L/R \) is typically 0.1 to 5 ms, much faster than the mechanical motion, which is why robot drives almost always run a fast inner current loop, at 10 to 40 kHz, that forces the current to follow a command. From the point of view of the position controller the motor then becomes a torque source, \( \tau_m \approx k_t\,i_{\text{cmd}} \), limited by the maximum current, and the voltage limit appears as a speed-dependent torque ceiling: at speed ω the back-EMF leaves only \( v_{\max} - k_e\omega \) to drive current through the resistance.

\[\tau_{\max}(\omega) = \min\left(k_t\,i_{\max},\; \frac{k_t}{R}\left(v_{\max} - k_e\,\omega\right)\right)\]

This torque–speed envelope is the actuator's fundamental limit. Every trajectory and controller must keep the commanded torque inside it, or the motor saturates and the closed loop no longer behaves as designed.

Worked problem

Torque–speed limit of a joint motor

A motor has \( k_t = k_e = 0.08 \) N·m/A, R = 0.5 Ω, \( i_{\max} \) = 20 A and a 48 V supply. Find the current-limited torque, the no-load speed, and the maximum torque available at 400 rad/s.

Show solution
  1. Current limit: \( k_t i_{\max} = 0.08 \times 20 = 1.6 \) N·m.
  2. No-load speed: \( v/k_e = 48/0.08 = 600 \) rad/s (about 5,730 rpm).
  3. At 400 rad/s the voltage limit gives \( (0.08/0.5)(48 - 0.08 \times 400) = 0.16 \times 16 = 2.56 \) N·m, above the current limit, so the current limit applies: 1.6 N·m.
  4. The two limits cross where \( 0.16(48 - 0.08\omega) = 1.6 \), at \( \omega = 475 \) rad/s; above that, torque falls linearly to zero at 600 rad/s.

Answer: 1.6 N·m up to 475 rad/s, then falling to zero at the 600 rad/s no-load speed. At 400 rad/s the full 1.6 N·m is still available. A trajectory that asks for 1.6 N·m at 550 rad/s will saturate.

Gear reduction and reflected inertia

Motors are fast and weak; joints need to be slow and strong. A transmission with ratio N (motor turns per joint turn) multiplies torque by N, divides speed by N, and changes the inertia each side sees. With joint angle q and motor angle \( \theta_m = Nq \), the motor torque reaching the joint is \( \tau = \eta N\tau_m \), where η is the transmission efficiency. The kinetic energy of the motor rotor, \( \tfrac{1}{2}J_m\dot{\theta}_m^2 = \tfrac{1}{2}N^2J_m\dot{q}^2 \), shows that the rotor inertia appears at the joint multiplied by \( N^2 \). The effective inertia of a joint is therefore

\[J_{\text{eff}} = N^2 J_m + M_{ii}(\mathbf{q})\]

For high gear ratios, the reflected rotor inertia \( N^2J_m \) can dominate the link inertia. This has two important consequences. First, the joint inertia varies much less with configuration, because the constant motor term swamps the changing \( M_{ii}(\mathbf{q}) \). Second, the coupling torques from other links, reduced by N when seen at the motor, become small disturbances. Together these explain why highly geared industrial arms can be controlled well by independent PID loops on each joint, while direct-drive and lightly geared robots need the model-based methods of lessons 9 and 10. The price of a high ratio is friction, backlash or compliance in the gearbox, poor back-drivability and the reflected inertia itself, which makes collisions harder for the robot.

Worked problem

Reflected inertia and the effect of the gear ratio

A shoulder motor with \( J_m = 1.2 \times 10^{-4} \) kg·m² drives the two-link arm of lesson 2, whose \( M_{11} \) varies from 0.30 to 0.78 kg·m². Compare the effective joint inertia variation for N = 100 and N = 10.

Show solution
  1. N = 100: \( N^2J_m = 10^4 \times 1.2 \times 10^{-4} = 1.2 \) kg·m². \( J_{\text{eff}} \) ranges from 1.50 to 1.98, a ratio of 1.32.
  2. N = 10: \( N^2J_m = 0.012 \) kg·m². \( J_{\text{eff}} \) ranges from 0.312 to 0.792, a ratio of 2.54.

Answer: With N = 100 the joint inertia changes by only 32 % across the workspace; with N = 10 it changes by a factor of 2.5. A fixed PID tuning works well in the first case and poorly in the second, which is why lower-ratio robots rely more on the dynamic model.

An inertia-matching argument from ROB-220 suggests choosing \( N = \sqrt{J_L/J_m} \) to maximize the load acceleration for a given motor torque. At that ratio the reflected rotor inertia equals the load inertia. Real designs often depart from it to meet speed, back-drivability or cost targets.

Friction models

Friction is the largest unmodeled effect in most robot joints, and it is strongly nonlinear. The common models build up in layers:

  • Coulomb friction: a constant-magnitude torque opposing motion, \( \tau_f = F_c\,\text{sign}(\dot{q}) \). It does not depend on speed but flips sign at zero velocity.
  • Viscous friction: a torque proportional to speed, \( b\dot{q} \), from lubricant shear and electrical damping. It is linear and easy to compensate.
  • Static friction (stiction): a breakaway torque \( F_s > F_c \) that must be exceeded before the joint starts to move.
  • The Stribeck effect: as speed rises from zero, friction falls smoothly from the static level toward the Coulomb level before viscous friction takes over, because the lubricant film builds up.

A widely used static model combines them:

\[\tau_f(\dot{q}) = \left[F_c + (F_s - F_c)\,e^{-(\dot{q}/v_s)^2}\right]\text{sign}(\dot{q}) + b\,\dot{q}\]

where \( v_s \) is the Stribeck velocity. Dynamic models such as the LuGre model add an internal state representing bristle deflection, which reproduces pre-sliding displacement and hysteresis, but the static model above already explains the main control problems.

A plot of friction torque against joint velocity. A Coulomb curve is a step from minus F c to plus F c at zero velocity. A viscous line passes through the origin with slope b. The combined Stribeck curve starts at F s just above zero velocity, dips to a minimum at low speed, then rises along the viscous slope. The region of falling friction at low speed is shaded and labeled negative slope, stick-slip risk.
Friction models: Coulomb, viscous and the combined Stribeck curve

The falling part of the Stribeck curve has negative slope, which acts like negative damping: at low speeds friction decreases as speed increases, so a small speed rise reduces resistance and encourages further rise. This causes stick-slip, the jerky motion of slowly moving joints, and makes low-speed tracking difficult. Static friction also causes limit cycles under integral control. While the joint is stuck, the integrator winds up until the torque breaks friction; the joint then lurches past the target and sticks again on the other side, and the cycle repeats. Lesson 4 returns to this, and to remedies such as friction compensation and dither.

Worked problem

Friction torque at different speeds

A harmonic-drive joint has \( F_s \) = 3.0 N·m, \( F_c \) = 2.0 N·m, \( v_s \) = 0.05 rad/s and b = 1.5 N·m·s/rad. Find the friction torque at 0.01, 0.05, 0.2 and 1.0 rad/s.

Show solution
  1. 0.01 rad/s: \( e^{-0.04} = 0.961 \); \( \tau_f = 2 + 1 \times 0.961 + 0.015 = 2.98 \) N·m.
  2. 0.05 rad/s: \( e^{-1} = 0.368 \); \( \tau_f = 2.368 + 0.075 = 2.44 \) N·m.
  3. 0.2 rad/s: \( e^{-16} \approx 0 \); \( \tau_f = 2 + 0.3 = 2.30 \) N·m.
  4. 1.0 rad/s: \( \tau_f = 2 + 1.5 = 3.50 \) N·m.

Answer: 2.98, 2.44, 2.30 and 3.50 N·m. Friction falls by about 0.7 N·m between 0.01 and 0.2 rad/s, the negative-slope region where stick-slip appears, then rises with speed. Compensating such a joint with a constant Coulomb value would overcompensate at moderate speed and undercompensate at breakaway.

The complete rigid joint model

Combining the motor, the transmission, friction and the rigid-body dynamics, and writing everything at the joint side, each joint obeys

\[\left(N^2J_m + M_{ii}(\mathbf{q})\right)\ddot{q}_i + \tau_{\text{couple},i} + g_i(\mathbf{q}) + \tau_{f,i}(\dot{q}_i) = \eta N k_t\,i_i\]

where \( \tau_{\text{couple},i} \) gathers the off-diagonal inertia, Coriolis and centrifugal terms from the other joints. For independent joint control (lesson 4) the coupling, the configuration-dependent part of the inertia and gravity are lumped into a disturbance, leaving a simple model: an effective inertia J and damping b driven by motor torque, with transfer function from torque to angle \( 1/(s(Js + b)) \). This is the plant that PID control is designed around.

Joint flexibility and resonance

Gearboxes, especially harmonic drives, belts, cables and torque sensors, are not perfectly stiff. A more accurate joint model has two inertias connected by a spring: the motor side \( J_1 = N^2J_m \) (referred to the joint) and the link side \( J_2 \), joined by a torsional stiffness k and damping c. With motor angle \( \theta_1 \) and link angle \( \theta_2 \), both on the joint side,

\[J_1\ddot{\theta}_1 + c(\dot{\theta}_1 - \dot{\theta}_2) + k(\theta_1 - \theta_2) = \tau, \qquad J_2\ddot{\theta}_2 = c(\dot{\theta}_1 - \dot{\theta}_2) + k(\theta_1 - \theta_2)\]

This two-mass system has a resonance at which the motor and link swing against each other, and an anti-resonance at a lower frequency:

\[\omega_r = \sqrt{k\left(\frac{1}{J_1} + \frac{1}{J_2}\right)}, \qquad \omega_a = \sqrt{\frac{k}{J_2}}\]

The resonance limits the bandwidth of any loop closed through the motor encoder: pushing the loop crossover near \( \omega_r \) excites oscillation of the link that the motor encoder barely sees. A common rule keeps the position-loop bandwidth below about a third of the lowest resonance. When the encoder is on the link side, with a so-called non-collocated sensor, the loop sees the full resonance and the phase loss, and stability is harder still. Notch filters (ROB-230), input shaping and state feedback with link-side sensing (lesson 6) are the standard remedies.

Worked problem

Resonance of a flexible joint

The shoulder of the earlier example uses N = 100, so \( J_1 = 1.2 \) kg·m², and the link-side inertia is \( J_2 = 0.78 \) kg·m² with the arm stretched out. The harmonic drive has stiffness \( k = 3.0 \times 10^4 \) N·m/rad. Find the resonance and anti-resonance frequencies and a sensible position-loop bandwidth.

Show solution
  1. \( \omega_r = \sqrt{3 \times 10^4(1/1.2 + 1/0.78)} = \sqrt{3 \times 10^4 \times 2.115} = \sqrt{63{,}460} = 252 \) rad/s, or 40 Hz.
  2. \( \omega_a = \sqrt{3 \times 10^4/0.78} = 196 \) rad/s, or 31 Hz.
  3. Bandwidth limit about \( \omega_r/3 \approx 84 \) rad/s, or 13 Hz.

Answer: Resonance at about 40 Hz and anti-resonance at about 31 Hz, so the position loop should stay below roughly 13 Hz. With a payload, \( J_2 \) rises and both frequencies fall, so the safe bandwidth must be checked at the heaviest load.

Motor sizing over a duty cycle

Motors are chosen by checking three things: peak torque must lie inside the torque–speed envelope at every point of the motion; peak speed must be below the rated speed; and the RMS torque over a full cycle must not exceed the continuous rating, because winding heat grows with the square of current. The RMS torque of a cycle made of segments of torque \( \tau_k \) lasting \( t_k \) is

\[\tau_{\text{rms}} = \sqrt{\frac{\sum_k \tau_k^2\,t_k}{\sum_k t_k}}\]

The torques used must be motor-side values, \( \tau_m = \tau_{\text{joint}}/(\eta N) + J_m\ddot{\theta}_m \), which include the torque to accelerate the rotor itself.

Worked problem

RMS torque of a pick-and-place cycle

A joint motor sees a repeating cycle: accelerate at 1.4 N·m for 0.2 s, cruise at 0.3 N·m for 0.4 s, decelerate at −0.9 N·m for 0.2 s, then dwell at 0.2 N·m (holding) for 0.6 s. The motor's continuous torque rating is 0.6 N·m and peak rating 1.6 N·m. Is it adequate?

Show solution
  1. Sum of \( \tau^2 t \): \( 1.96 \times 0.2 + 0.09 \times 0.4 + 0.81 \times 0.2 + 0.04 \times 0.6 = 0.392 + 0.036 + 0.162 + 0.024 = 0.614 \).
  2. Cycle time 1.4 s, so \( \tau_{\text{rms}} = \sqrt{0.614/1.4} = \sqrt{0.4386} = 0.662 \) N·m.
  3. Peak 1.4 N·m is within 1.6 N·m, but RMS 0.66 N·m exceeds the 0.6 N·m continuous rating.

Answer: No: peak torque is fine but the RMS of 0.66 N·m exceeds the continuous rating by 10 %, so the motor will overheat over a long shift. Options include a larger motor, a slower acceleration profile (lesson 8 shows the trade-off) or a longer dwell.

Simulating a joint with friction

The code below simulates a single geared joint, modeled as an effective inertia with Stribeck friction, driven first by a slowly rising torque to find the breakaway point and then by a constant torque, so that the speed settles where motor torque balances friction. It uses a smoothed sign function, a common numerical device to avoid chattering at zero velocity.

Breakaway and steady speed of a joint with Stribeck friction
import numpy as np
J, Fs, Fc, vs, b = 1.5, 3.0, 2.0, 0.05, 1.5          # joint side, SI units
def friction(w):
    sgn = np.tanh(w/1e-3)                              # smooth sign near zero
    return (Fc + (Fs - Fc)*np.exp(-(w/vs)**2))*sgn + b*w
h, w, t = 1e-4, 0.0, 0.0
tau = 0.0
while w < 1e-3:                                        # ramp torque at 2 N m/s until motion starts
    tau = 2.0*t
    stuck = abs(tau) <= Fs and abs(w) < 1e-4
    w = 0.0 if stuck else w + h*(tau - friction(w))/J
    t += h
print(f"breakaway at tau = {tau:.2f} N m after {t:.2f} s")
for k in range(int(5/h)):                              # hold 3.2 N m for 5 s
    w += h*(3.2 - friction(w))/J
print(f"steady speed with 3.2 N m: {w:.3f} rad/s (expected (3.2-2.0)/1.5 = {1.2/1.5:.3f})")
Output
breakaway at tau = 3.00 N m after 1.50 s
steady speed with 3.2 N m: 0.794 rad/s (expected (3.2-2.0)/1.5 = 0.800)

The joint stays put until the torque passes the 3.0 N·m static level, and with 3.2 N·m applied it approaches the speed where Coulomb plus viscous friction equals the drive torque, reaching within 1 % of the predicted 0.8 rad/s after five time constants \( J/b \). Simulations like this are useful for checking how a controller will behave near zero speed before trying it on hardware.

Common mistakes

  • MistakeIgnoring reflected rotor inertia

    InsteadAdd \( N^2J_m \) to the link inertia; with high ratios it can dominate.

  • MistakeSizing a motor by peak torque alone

    InsteadAlso check the RMS torque over the duty cycle against the continuous rating.

  • MistakeAssuming full torque is available at any speed

    InsteadBack-EMF reduces available torque above the corner speed; respect the torque–speed envelope.

  • MistakeModeling friction as purely viscous

    InsteadInclude Coulomb and static friction; they cause stick-slip and limit cycles.

  • MistakeSetting loop bandwidth near a structural resonance

    InsteadKeep the position bandwidth well below the lowest joint resonance, about a third as a guide.

Summary and key terms

  • A current-controlled motor acts as a torque source \( k_ti \), limited by current and by the voltage left after back-EMF.
  • A transmission of ratio N multiplies torque by ηN and reflects rotor inertia as \( N^2J_m \).
  • High gear ratios make joint inertia nearly constant and coupling small, favoring independent joint control.
  • Friction combines Coulomb, viscous, static and Stribeck effects; the falling low-speed region causes stick-slip.
  • Each joint can be modeled as an effective inertia with damping, friction, gravity and coupling disturbances.
  • Flexible transmissions create a resonance \( \omega_r = \sqrt{k(1/J_1 + 1/J_2)} \) that limits loop bandwidth.
  • Motor sizing checks peak torque against the torque–speed envelope and RMS torque against the continuous rating.
Torque constant
The ratio \( k_t \) of motor torque to current.
Back-EMF
The voltage \( k_e\omega \) generated by a spinning motor.
Torque–speed envelope
The region of torque and speed a motor and drive can deliver.
Reflected inertia
Rotor inertia seen at the joint, multiplied by the square of the gear ratio.
Coulomb friction
Constant-magnitude friction opposing the direction of motion.
Stiction
Static friction that must be overcome to start motion.
Stribeck effect
The fall of friction from the static to the Coulomb level as speed rises from zero.
Stick-slip
Jerky low-speed motion caused by falling friction with speed.
Two-mass model
A motor inertia and link inertia joined by a spring, modeling joint flexibility.
RMS torque
The root-mean-square torque over a duty cycle, which sets motor heating.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. A motor has \( k_t \) = 0.1 N·m/A. What torque does 12 A give?

    Show answer

    1.2 N·m.

  2. With N = 50 and η = 0.8, what joint torque does 1.2 N·m of motor torque give?

    Show answer

    \( 0.8 \times 50 \times 1.2 = 48 \) N·m.

  3. A rotor with \( J_m = 2 \times 10^{-5} \) kg·m² drives through N = 80. What inertia does it add at the joint?

    Show answer

    \( 6400 \times 2 \times 10^{-5} = 0.128 \) kg·m².

  4. A motor has \( k_e \) = 0.05 V·s/rad and a 24 V supply. What is its no-load speed?

    Show answer

    480 rad/s.

  5. Give the Coulomb-plus-viscous friction at 0.4 rad/s with \( F_c \) = 1 N·m and b = 2 N·m·s/rad.

    Show answer

    1.8 N·m.

  6. Why can integral control limit-cycle in a joint with stiction?

    Show answer

    The integrator winds up while stuck, breaks free with excess torque, overshoots and sticks again.

  7. Find \( \omega_r \) for \( J_1 = J_2 = 0.5 \) kg·m² and k = 2,000 N·m/rad.

    Show answer

    \( \sqrt{2000 \times 4} = 89.4 \) rad/s.

  8. What loop bandwidth would you aim for with that resonance?

    Show answer

    About 30 rad/s or less.

  9. Find the RMS of 2 N·m for 1 s and 0 for 3 s.

    Show answer

    \( \sqrt{4/4} = 1 \) N·m.

  10. State one drawback of a very high gear ratio.

    Show answer

    More friction, backlash or compliance, poor back-drivability or high reflected inertia in collisions.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz