DCL

motion control

Simulation Public data

Motion System Sizing Framework

A structured sizing methodology for motion axes: from motion requirement through profile kinematics, force/torque, power and thermal margin, encoder quantization, delay budget and resonance target — to predicted motion performance. Implemented as a tested TypeScript module and an interactive calculator.

Role
Methodology · Software implementation
Stack
TypeScript · React · MATLAB
Published
May 20, 2026
Updated
Jul 22, 2026

Key Metrics

Profile model
Trapezoid (v1)
Delay model
5 components
Architectures
8 defined
Tool
Online calculator

Executive Summary

Axis sizing usually happens in fragments: the motor is picked from the move profile, the encoder arrives from a catalog, and bandwidth targets appear after the mechanics are frozen. This framework chains the decisions into one auditable pass — every requirement constrains the next, and violations surface before hardware is ordered.

The chain is implemented as a dependency-free, unit-tested TypeScript module and exposed as the online Motion Sizing Calculator. Version 1 covers a symmetric trapezoidal profile on a linear direct-drive axis; the parameter model and architecture mappings below define the full scope the framework is built toward.

Validation level

  1. Concept
  2. Simulation
  3. Bench Tested
  4. Machine Tested
  5. Production

Engineering Questions

The framework exists to answer six questions with numbers instead of intuition:

  1. Does the motor have enough force margin for the requested move, including friction and process forces?
  2. What peak power does the move demand, and can the drive deliver it?
  3. Will the axis overheat under the duty cycle — is the RMS load within the continuous rating?
  4. Is the encoder fine enough that the error budget is not consumed by quantization?
  5. How much phase does the loop delay burn at the intended bandwidth?
  6. Is the desired bandwidth compatible with the first mechanical resonance?

System Boundary

Question — what does the framework model, and what does it deliberately leave out?

FRAMEWORK BOUNDARY Requirement Sizing chain Margins Predicted performance

In scope

  • Rigid-body profile kinematics (position, velocity, acceleration, jerk)
  • Force / torque chain with lumped friction, gravity and process forces
  • First-order motor electrical limits: force constant, current, voltage, I²R loss
  • Encoder quantization of the position error budget
  • Lumped loop-delay budget and its phase cost
  • Mechanical resonance target as a bandwidth-ratio heuristic

Out of scope

  • Flexible-body / FEA structural simulation
  • Thermal FEA (only I²R and RMS-vs-continuous checks)
  • Servo loop tuning and stability proof
  • Trajectory optimization and path planning
  • Drive firmware internals beyond a lumped delay and bandwidth
methodology diagram

Interpretation — everything inside the boundary is first-order and analytic on purpose: the framework is a decision filter for early design, not a replacement for detailed simulation of the shortlisted concept.

Input Parameter Groups

Question — what is the minimum parameter set that makes a sizing decision auditable?

Six groups. Symbols below are used in all equations on this page.

Motion requirements

Group 1 — motion requirements
Parameter Value Unit Notes
Move distance D mm
Move time T ms
Settling time t_s ms To error band, after profile end
Error band e µm In-position window
Duty cycle δ % Move time / cycle time
Motion profile v1: symmetric trapezoid; S-curve planned

Mechanical parameters

Group 2 — mechanical parameters
Parameter Value Unit Notes
Moving mass m kg
Inertia (rotary members) J kg·m²
Center of gravity height r_cg mm Drives moment loads
Load offset from drive axis d_off mm Drives yaw moment
Transmission ratio N 1 for direct drive
Transmission efficiency η
Drive-train stiffness k N/µm
First structural resonance f_res Hz Measured or estimated

Electrical parameters

Group 3 — electrical parameters
Parameter Value Unit
Force / torque constant K_f, K_t N/A, N·m/A
Peak current I_p A
Continuous current I_c A
Phase resistance R Ω
Phase inductance L mH
Bus voltage V_bus V
Driver current-loop bandwidth f_drv Hz

Feedback and control

Group 4 — feedback and control
Parameter Value Unit
Encoder resolution r µm/count
Sampling frequency f_s kHz
Driver-box delay τ_drv µs
Control-box delay τ_ctl µs
Communication delay τ_com µs
Desired control bandwidth f_bw Hz

Disturbances

Group 5 — disturbance inputs
Parameter Value Unit Notes
Cable / hose drag force F_cab N Position-dependent
Coulomb friction F_c N
Viscous friction b N·s/m
Cogging force F_cog N Periodic in position
Current noise (drive) i_n A rms
Transmission ripple Screw / belt periodic error
Gravity component F_g N Non-horizontal axes
Cross-axis coupling e.g. gantry yaw ↔ linear

Group 6 is the mechanical architecture selection itself — next section.

Supported Mechanical Architectures

Question — how does the same sizing chain apply across different drive concepts?

Every architecture reduces to the same chain once load force/torque and reflected inertia are expressed at the motor. The mapping differs per concept:

Architecture map — support status is stated honestly per concept
Architecture Motion conversion Key sizing parameters Dominant sizing constraint Framework support
Linear direct drive None — direct force m, K_f, cable drag Force margin and I²R heat at high acceleration Implemented (v1)
Rotary motor + ball screw Rotary → linear, pitch p Pitch, η, screw inertia, critical speed Reflected inertia ratio and screw whip Mapping defined
Rotary motor + lead screw Rotary → linear, pitch p Pitch, low η, self-locking behavior Efficiency loss and thermal limit Mapping defined
Rotary motor + belt Rotary → linear, pulley radius Belt stiffness, inertia ratio, preload Belt compliance and first belt resonance Mapping defined
VCM + spring Direct force + preload spring K_f, spring rate, stroke, offset current Continuous current at holding force Mapping defined
Direct-drive rotary motor None — direct torque J, K_t, cogging torque Torque margin and cogging ripple Mapping defined
Rotary motor + cam Rotary → profiled linear Cam law, follower stiffness, contact force Contact force at profile acceleration peaks Planned
Gantry (dual drive) Two coupled linear drives Mass distribution, yaw inertia, coupling Mode separation and drive matching Planned

Interpretation — “mapping defined” means the reflection formulas are specified in this framework but not yet implemented in the calculator; “planned” means the concept needs additional model structure (contact, MIMO coupling) before it fits the chain.

Analysis Workflow

Question — in what order do the calculations constrain each other?

01 Motion requirement 02 Profile generation 03 v(t) · a(t) · j(t) 04 Load force / torque 05 Current · voltage · power 06 Power & thermal margin 07 Encoder quantization 08 Delay & bandwidth limit 09 Resonance requirement 10 Predicted performance
methodology diagram

Each step consumes the previous step’s output: a change in move time propagates through kinematics, force, current, heat, and finally shifts the resonance requirement. Running the chain in this order makes the first violated constraint visible, which is the design signal that matters.

Motion Profile Model

Question — what velocity and acceleration does the requirement imply?

Method — v1 supports the symmetric trapezoidal velocity profile with acceleration time tat_a, valid for 0<ta<T/20 < t_a < T/2:

Trapezoid kinematics calculated
vpk=DTta,apk=vpktav_{pk} = \frac{D}{T - t_a}, \qquad a_{pk} = \frac{v_{pk}}{t_a}
D
Move distance [m]
T
Total move time [s]
t_a
Acceleration time [s]
v_pk
Peak velocity [m/s]
a_pk
Peak acceleration [m/s²]

Interpretation — shorter acceleration time lowers peak velocity but raises peak acceleration; the product chain below converts that trade directly into force and heat.

Force / Torque Calculation

Question — what force must the motor produce at the worst point of the move?

Linear axis force balance calculated
Ftot=mapk+Fext+Ffric+FgF_{tot} = m \, a_{pk} + F_{ext} + F_{fric} + F_g
F_tot
Peak force demand [N]
m
Moving mass [kg]
F_ext
External / process force [N]
F_fric
Lumped friction force [N]
F_g
Gravity component along axis [N]
Reflection to the motor through a transmission calculated
Tm=FtotNη+Jrefαm,Jref=Jmotor+Jtrans+mN2T_m = \frac{F_{tot} \cdot N}{\eta} + J_{ref}\,\alpha_m, \qquad J_{ref} = J_{motor} + J_{trans} + m N^2
T_m
Motor torque demand [N·m]
N
Transmission ratio (motion out / motor in) [—]
η
Transmission efficiency [—]
J_ref
Reflected inertia at the motor [kg·m²]

For direct drive, N = 1 and η ≈ 1 and the two equations coincide.

Interpretation — with a transmission, the mN2mN^2 term makes the inertia ratio the real design variable: gearing down trades force margin against reflected-inertia mismatch.

Power and Thermal Margin

Question — can the motor deliver the peak, and survive the average?

Peak mechanical power and copper loss calculated
Ppk=Ftotvpk,I=FtotKf,Ploss=I2RP_{pk} = F_{tot}\, v_{pk}, \qquad I = \frac{F_{tot}}{K_f}, \qquad P_{loss} = I^2 R
P_pk
Peak mechanical power [W]
I
Motor current [A]
K_f
Force constant [N/A]
R
Phase resistance [Ω]
RMS force over the duty cycle calculated
Frms=1tcyc0tcycF2(t)dtF_{rms} = \sqrt{\frac{1}{t_{cyc}} \int_0^{t_{cyc}} F^2(t)\, dt}
F_rms
RMS force over one cycle [N]
t_cyc
Cycle time incl. dwell [s]

The thermal verdict compares F_rms/K_f against the continuous current rating, and F_tot/K_f against the peak rating.

Interpretation — peak margin decides whether the move is possible; RMS margin decides whether it is repeatable. Aggressive duty cycles fail thermally long before they fail on peak force.

Encoder Resolution Analysis

Question — is the error budget spent on servo performance or on the sensor?

Error band in encoder counts and velocity quantization calculated
Nerr=er,Δvq=rfsN_{err} = \frac{e}{r}, \qquad \Delta v_q = r \cdot f_s
N_err
Error band expressed in counts [counts]
e
Target position error [µm]
r
Encoder resolution [µm/count]
Δv_q
Velocity-estimate quantization step [µm/s]

Interpretation — below roughly 2 counts the loop dithers between adjacent counts and no tuning recovers it. The second expression shows why finite-difference velocity from a coarse encoder is noisy: the quantization step scales with sampling rate.

System Delay and Bandwidth

Question — how much phase does the control loop lose to pure delay at the intended crossover?

Method — all loop delays are lumped into one budget:

Delay budget calculated
τtot=τdrv+τcom+τcmp+τzoh+τsen\tau_{tot} = \tau_{drv} + \tau_{com} + \tau_{cmp} + \tau_{zoh} + \tau_{sen}
τ_tot
Total lumped loop delay [s]
τ_drv
Driver delay [s]
τ_com
Communication delay [s]
τ_cmp
Computation delay (control box) [s]
τ_zoh
Sampling / ZOH delay ≈ T_s / 2 [s]
τ_sen
Sensing and filtering delay [s]
Phase lag of a pure delay calculated
φ(f)=360fτtot\varphi(f) = -360 \cdot f \cdot \tau_{tot}
φ
Phase lag (negative) [deg]
f
Frequency of interest [Hz]

Try it — the calculation runs in src/lib/engineering/phaseLag.ts (unit-tested):

Interactive · phase lag from delay

Phase lag

-4.50°

phaseLag = −360 · f · T. Runs locally in your browser; nothing is uploaded.

Interpretation — a 250 µs budget costs 4.5° at 50 Hz but 18° at 200 Hz: delay is what makes “just raise the bandwidth” stop working. If the lag at the intended crossover exceeds roughly 10–15° of the phase margin budget, reduce delay before retuning gains — that allocation is an engineering heuristic, not a universal design rule.

Mechanical Resonance Requirement

Question — what must the mechanics provide so the servo target is even possible?

Resonance target from bandwidth calculated
fresβfbwf_{res} \ge \beta \cdot f_{bw}
f_res
First structural resonance [Hz]
f_bw
Desired control bandwidth [Hz]
β
Resonance ratio [—]

β default 4; the ratio is an engineering heuristic, not a universal design rule — required separation depends on damping and disturbance spectrum.

Interpretation — this closes the loop back to mechanics: if the structure cannot reach βfbw\beta \cdot f_{bw}, the honest options are lowering the bandwidth target or redesigning the structure — not notching and hoping.

Disturbance Model

Question — which disturbances must the force budget and the error budget absorb?

Disturbance catalog — model forms are illustrative structures, not fitted data schematic
Parameter Value Unit Notes
Cable / hose drag F_cab(x) N Slowly varying with position
Coulomb friction F_c · sgn(v) N Direction-dependent constant
Viscous friction b · v N Speed-proportional
Cogging F_cog(x) N Periodic in magnet pitch
Current noise K_f · i_n N rms Sets a force-noise floor
Transmission ripple periodic(x) Screw lead / belt tooth error
Gravity m·g·sin(θ) N Constant for fixed inclination
Cross-axis coupling G_c(s) Needs MIMO treatment (gantry)

Interpretation — constant terms (gravity, drag, Coulomb) consume force margin; periodic and random terms (cogging, ripple, current noise) consume the error budget at frequencies the servo may not reject. The split decides whether a problem is a bigger-motor problem or a better-control problem.

Calculation Example

Example inputs schematic
Parameter Value Unit Notes
Move distance 100 mm
Move time / accel time 200 / 50 ms
Moving mass 5 kg
External / friction force 0 / 5 N
Motor peak force 200 N
Encoder resolution 0.5 µm/count
Target position error 2 µm
Desired bandwidth / ratio β 50 / 4 Hz / —
Delay budget (50+62.5+60+62.5+15) 250 µs ZOH term = Ts/2 at 8 kHz
Chain outputs calculated
Parameter Value Unit Notes
Peak velocity 0.667 m/s D / (T − t_a)
Peak acceleration 13.33 (1.36 g) m/s² v_pk / t_a
Force requirement 71.7 N m·a + F_ext + F_fric
Force margin 64.2 % vs 200 N peak
Peak power estimate 47.8 W F_tot · v_pk
Error band 4 counts 2 µm / 0.5 µm — above the 2-count heuristic
Phase lag at 50 Hz −4.5 deg −360 · 50 · 250 µs
Min. suggested resonance ≥ 200 Hz β · f_bw

Reproduce every number live in the Motion Sizing Calculator — it ships with exactly this example as its reset state.

Engineering Decisions

Limitations

  • Symmetric trapezoid only; no S-curve, asymmetric or jerk-limited profiles yet.
  • Rigid-body force model — no resonant load amplification inside the force estimate.
  • Thermal check is peak-only in the v1 tool; RMS duty-cycle margin is defined but not implemented (TBD).
  • Architecture mappings beyond linear direct drive are specified, not implemented.
  • Disturbance catalog is qualitative in v1; no predicted error spectrum.
  • The framework has not yet been benchmarked end-to-end against a sized physical axis (validation level: Simulation).

Roadmap

  1. S-curve profile with jerk limit and its effect on peak force and settling.
  2. RMS force / thermal duty check over a move-and-dwell cycle (closes question 3).
  3. Ball-screw mapping implemented in the calculator (reflected inertia, critical speed).
  4. Measured-FRF import to replace the β-ratio resonance heuristic with data.
  5. Exportable sizing report (copyable text exists; file export planned).

Related Tool

Revision History

  1. 2026-05-20

    Initial methodology write-up (profile, force, margin chain).

  2. 2026-07-21

    Online calculator published, backed by the tested motionSizing.ts module.

  3. 2026-07-22

    Case-study restructure: system boundary, parameter groups, architecture map, delay/phase model with interactive estimator, disturbance catalog, data-provenance labels.

Related Notes

Type to search.