Symbols & Units
| Symbol | Meaning | Unit |
|---|---|---|
| $V$ | Applied voltage (bus) | V |
| $I$ | Armature current | A |
| $R$ | Winding resistance | $\Omega$ |
| $L$ | Winding inductance (optional) | H |
| $\omega$ | Angular speed | rad/s (=$2\pi\,\text{rpm}/60$) |
| $\tau$ | Torque (load or shaft) | N·m |
| $K_e$ | Back‑EMF constant | V·s/rad |
| $K_t$ | Torque constant | N·m/A |
| Symbol | Meaning | Unit |
|---|---|---|
| $J$ | Total inertia (ref. to motor) | kg·m$^2$ |
| $b$ | Viscous friction coeff. | N·m·s/rad |
| $\tau_c$ | Coulomb friction (breakaway) | N·m |
| $N$ | Gear ratio (motor:output) | – |
| $\eta$ | Efficiency (= $P_\mathrm{mech}/P_\mathrm{el}$) | % |
| $P_\mathrm{el}$ | Electrical power | W |
| $P_\mathrm{mech}$ | Mechanical power | W |
Core Relationships
$$V = L\,\tfrac{dI}{dt} + R I + K_e\,\omega$$ Neglecting $L$ at low bandwidth: $I = \dfrac{V - K_e\,\omega}{R}.$
$$\tau_e = K_t\,I$$ For brushed DC motors, $K_t$ and $K_e$ are equal in SI (numerically) for consistent units.
$$J\,\dot{\omega} = \tau_e - \tau_\mathrm{load} - b\,\omega - \tau_c\,\mathrm{sign}(\omega)$$ (Set $\tau_c\!=\!0$ if modeling friction only as viscous.)
Fitting a Model from Datasheet Points
Given supply $V$, no‑load point $(\omega_{\mathrm{nl}}, I_{\mathrm{nl}})$ and stall point $(\omega=0, I_{\mathrm{stall}}, \tau_{\mathrm{stall}})$:
Electrical constants
$$R = \dfrac{V}{I_{\mathrm{stall}}},\quad K_e = \dfrac{V - I_{\mathrm{nl}} R}{\omega_{\mathrm{nl}}}$$
Torque constant
Using friction‑as‑current offset (simple, common): $$K_t = \dfrac{\tau_{\mathrm{stall}}}{I_{\mathrm{stall}}-I_{\mathrm{nl}}}$$ Using explicit friction (more physical): set $K_t=\dfrac{\tau_{\mathrm{stall}}}{I_{\mathrm{stall}}}$ and identify $\tau_c$ and $b$ from off‑rating points.
Consistency checks: predicted $\omega_{\mathrm{nl}}\approx V/K_e$; predicted $\tau_{\mathrm{stall}}\approx (K_t/R)\,V$ when $I_{\mathrm{nl}}\to 0$.
Static Characteristics (at fixed $V$)
Speed–Torque line
Combine $I=(V-K_e\omega)/R$ and $\tau_e=K_t I$: $$\tau_e = \tfrac{K_t}{R}(V - K_e\,\omega) \;\Rightarrow\; \omega = \underbrace{\tfrac{V}{K_e}}_{\omega_{\mathrm{nl}}} - \underbrace{\tfrac{R}{K_e K_t}}_{\omega/\tau\;\text{slope}}\,\tau_e$$ With load torque $\tau$ and friction: $\tau_e=\tau + b\,\omega + \tau_c\,\mathrm{sign}(\omega)$.
Power & efficiency
$$P_{\mathrm{el}} = V I = \tfrac{V}{R}(V-K_e\omega),\qquad P_{\mathrm{mech}} = \tau\,\omega$$ Ignoring $I_{\mathrm{nl}}$ and $\tau_c$, peak mechanical power occurs near $\omega\approx\tfrac12\,\omega_{\mathrm{nl}}$ (i.e., $\tau\approx\tfrac12\,\tau_{\mathrm{stall}}$). With nonzero $I_{\mathrm{nl}}$ and $b$, the peak shifts slightly toward lower torque.
Efficiency $\eta=100\,P_{\mathrm{mech}}/P_{\mathrm{el}}$ typically peaks around $\tau\approx0.25\ldots0.35\,\tau_{\mathrm{stall}}$ depending on losses.
Dynamic Response
No inductance (algebraic current)
Substitute $I=(V-K_e\omega)/R$ into the mechanical equation: $$J\,\dot{\omega} = \tfrac{K_t}{R}(V-K_e\omega) - b\,\omega - \tau_c\,\mathrm{sign}(\omega) - \tau_{\mathrm{load}}$$ For small signals about a positive speed (ignore $\tau_c$): $$\dot{\omega} + \underbrace{\tfrac{b + K_tK_e/R}{J}}_{\color{#007acc}{1/\tau_{\mathrm{mech}}}}\omega = \tfrac{K_t}{JR}V - \tfrac{1}{J}\tau_{\mathrm{load}}$$ Time constant: $$\boxed{\tau_{\mathrm{mech}} = \dfrac{J}{\;b + K_tK_e/R\;}}$$
Including inductance (2nd order)
$$\begin{cases} L\,\dot I + R I + K_e\omega = V\\ J\,\dot{\omega} + b\,\omega = K_t I - \tau_{\mathrm{load}} \end{cases}$$ Natural electrical time constant $\tau_e=L/R$. If PWM frequency $\gg 1/\tau_e$, the averaged (no‑$L$) model is typically adequate.
BLDC (PMSM) with Inbuilt Speed Controller (ESC) — DC‑equivalent
DC‑Equivalent Constants (from Kv & stall)
Use a single‑input single‑output model identical to brushed DC by mapping BLDC specs to effective constants:
-
Back‑EMF constant
(Kv in rpm/V, typical RC spec is line‑to‑line no‑load)
-
Torque constant
(in SI units N·m/A)
-
Effective resistance
(calibrate from measured stall current at your bus voltage)
-
Sanity checks:
,
ESC Averaging & Commands
PWM mode: with duty in [−1,1].
Speed mode (simple like the sim): feed‑forward plus proportional correction, clipped to the DC bus: use a small (≈ V/ωnl).
Use the Same DC Equations
Then integrate the same mechanics already on the page: .
Effective time constant (small‑signal about forward speed):
Worked Example (Kv→Kt→τmax)
Kv = 200 rpm/V, Vbus = 24 V, Imax = 30 A.
Torque limit (ESC/inverter): .
If you know measured Istall, set Reff = Vbus / Istall and you can reuse the DC stall/no‑load checks.
Gearing & Reflected Inertia
Kinematics
$$\omega_m = N\,\omega_{out},\qquad \tau_{out} = \eta_g\,N\,\tau_m$$
Reflected inertia
Load inertia reflected to motor: $$J_{\mathrm{eq}} = J_m + N^2 J_{\mathrm{load}}$$ (Friction reflected similarly; $\eta_g$ mainly affects torque/power, not the $N^2$ inertia scaling.)
Friction Models
- Viscous: $\tau_v=b\,\omega$ (dominant at higher speed).
- Coulomb: $\tau_c\,\mathrm{sign}(\omega)$ (dominant near zero speed; contributes to no‑load current).
- Stribeck (optional): $\tau(\omega)=\tau_c + (\tau_s-\tau_c)\,e^{-(|\omega|/\omega_s)^2} + b\,\omega$ capturing breakaway/creep.
PWM & Averaging
- With duty $d\in[0,1]$ and bus $V_{bus}$, averaged model uses $V\approx d\,V_{bus}$ if $f_{PWM}\gg 1/\tau_e$ and ripple is acceptable.
- Including $L$, approximate ripple (triangle) magnitude: $\Delta I\approx \dfrac{(V_{bus}/L)\,d(1-d)}{f_{PWM}}$ at low speed.
- Dead‑time and commutation drops effectively reduce $V$ by a small offset; incorporate as $V_{\mathrm{eff}}=d\,V_{bus}-V_{drop}$.
Encoders & Quantization
- PPR pulses/rev gives angle quantum $\Delta\theta=2\pi/\mathrm{PPR}$.
- “Count‑in‑window” estimate: $\hat\omega=\dfrac{2\pi\,\Delta k}{\mathrm{PPR}\,\Delta t}$ — coarse at low speed.
- “Time‑per‑pulse” method improves low‑speed resolution: measure $\Delta t$ between edges and invert.
- Use filtering or moving averages to reduce quantization noise; beware delay vs. control bandwidth.
Thermal Considerations (simple RC)
$$C_{th}\,\dot T = P_{loss} - \dfrac{T-T_{amb}}{R_{th}},\qquad P_{loss}\approx I^2R + P_{iron}(\omega)+P_{fric}(\omega)$$ Stall or near‑stall: $P_{loss}\approx I^2R$ dominates; allowable stall time follows from $\Delta T_{max}$ and $(R_{th},C_{th})$.
Normalized (dimensionless) form
With $\tilde\omega=\omega/\omega_{\mathrm{nl}}$ and $\tilde\tau=\tau/\tau_{\mathrm{stall}}$ (no friction), the static relation is simply $$\boxed{\tilde\omega = 1 - \tilde\tau}$$ a straight line from $(0,1)$ to $(1,0)$. Losses ($I_{\mathrm{nl}},b,\tau_c$) bend this curve.
Quick Conversions
- $\omega\,[\mathrm{rad/s}] = 2\pi\,\mathrm{rpm}/60$; $\mathrm{rpm} = 60\,\omega/(2\pi)$
- $K_v\,[\mathrm{rpm/V}] = \dfrac{60}{2\pi K_e}$; $K_t\,[\mathrm{N\,m/A}] \approx K_e\,[\mathrm{V\,s/rad}]$
- $P\,[\mathrm{W}] = \tau\,[\mathrm{N\,m}]\,\omega\,[\mathrm{rad/s}]$