DC & BLDC Motor — Physics & Math Summary

Pure theory for brushed DC and brushless (BLDC/PMSM) motor modeling: core laws, datasheet fitting, static characteristics, dynamics, friction, gearing, PWM/encoders, thermal limits, and ESC (inbuilt speed‑controller) behavior. No code, just equations.

Symbols & Units

SymbolMeaningUnit
$V$Applied voltage (bus)V
$I$Armature currentA
$R$Winding resistance$\Omega$
$L$Winding inductance (optional)H
$\omega$Angular speedrad/s (=$2\pi\,\text{rpm}/60$)
$\tau$Torque (load or shaft)N·m
$K_e$Back‑EMF constantV·s/rad
$K_t$Torque constantN·m/A
SymbolMeaningUnit
$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 powerW
$P_\mathrm{mech}$Mechanical powerW

Core Relationships

Electrical

$$V = L\,\tfrac{dI}{dt} + R I + K_e\,\omega$$ Neglecting $L$ at low bandwidth: $I = \dfrac{V - K_e\,\omega}{R}.$

Electromechanical

$$\tau_e = K_t\,I$$ For brushed DC motors, $K_t$ and $K_e$ are equal in SI (numerically) for consistent units.

Mechanical balance

$$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
    Ke 60 2πKv (Kv in rpm/V, typical RC spec is line‑to‑line no‑load)
  • Torque constant
    KtKe (in SI units N·m/A)
  • Effective resistance
    Reff= Vbus Istall (calibrate from measured stall current at your bus voltage)
  • Sanity checks:
    ωnl VbusKe , Istall VbusReff

ESC Averaging & Commands

PWM mode: Vcmd=dVbus with duty d in [−1,1].

Speed mode (simple like the sim): feed‑forward plus proportional correction, clipped to the DC bus: use a small Kspeed (≈ V/ωnl).

Vcmd = clip( Keωref + InlReff + Kspeed(ωrefω) ,[Vbus,Vbus])

Use the Same DC Equations

I= VcmdKeω Reff , τ= Kt (IInlsgn(ω))

Then integrate the same mechanics already on the page: Jω˙=τbωτload.

Effective time constant (small‑signal about forward speed): τmech= J b+ KtKe Reff

Worked Example (Kv→Kt→τmax)

Kv = 200 rpm/V, Vbus = 24 V, Imax = 30 A.

Ke 602π200 =0.0955 V·s/rad Kt0.0955 N·m/A

Torque limit (ESC/inverter): τmax KtImax =2.86 N·m .

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

PWM & Averaging

Encoders & Quantization

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