motion control
Simulation Public dataMotion 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
- Concept
- Simulation
- Bench Tested
- Machine Tested
- Production
Engineering Questions
The framework exists to answer six questions with numbers instead of intuition:
- Does the motor have enough force margin for the requested move, including friction and process forces?
- What peak power does the move demand, and can the drive deliver it?
- Will the axis overheat under the duty cycle — is the RMS load within the continuous rating?
- Is the encoder fine enough that the error budget is not consumed by quantization?
- How much phase does the loop delay burn at the intended bandwidth?
- 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?
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
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
| 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
| 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
| 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
| 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
| 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 | 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?
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 , valid for :
- 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?
- 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]
- 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 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?
- P_pk
- Peak mechanical power [W]
- I
- Motor current [A]
- K_f
- Force constant [N/A]
- R
- Phase resistance [Ω]
- 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?
- 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:
- τ_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 (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?
- 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 , 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?
| 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
| 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 |
| 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
- S-curve profile with jerk limit and its effect on peak force and settling.
- RMS force / thermal duty check over a move-and-dwell cycle (closes question 3).
- Ball-screw mapping implemented in the calculator (reflected inertia, critical speed).
- Measured-FRF import to replace the β-ratio resonance heuristic with data.
- Exportable sizing report (copyable text exists; file export planned).
Related Tool
Related Tool
Revision History
-
2026-05-20
Initial methodology write-up (profile, force, margin chain).
-
2026-07-21
Online calculator published, backed by the tested motionSizing.ts module.
-
2026-07-22
Case-study restructure: system boundary, parameter groups, architecture map, delay/phase model with interactive estimator, disturbance catalog, data-provenance labels.