← Mechatronics Studio
Concept Explainer · Mechatronics

Position vs Velocity vs Torque Control

The same servo drive, the same motor, the same PID math — but which variable the innermost loop is told to hold constant changes everything about how the axis behaves.

Every modern servo or BLDC drive can run in at least three control modes, and picking the wrong one is one of the most common reasons a mechatronic axis feels "wrong" even though the tuning gains look fine. Position, velocity, and torque control aren't three different algorithms — they're the same cascaded PID structure with the command target moved to a different rung of the ladder. What the loop is told to hold at the commanded value determines what the system does when it meets a disturbance it didn't expect: a jam, a collision, an external push, a changing load.

One cascade, three places to close the outer loop

Nested Loops
POSITION MODE commands here →Position Loopvelocity cmdVELOCITY MODE commands here →Velocity Looptorque cmdTORQUE MODE commands here →Torque / Current LoopampsMotorevery mode still runs the torque loop underneath — it just decides whether anything commands it from further out
Position mode
Holds an exact angle or coordinate. Fights any push away from that point.
Velocity mode
Holds a constant speed. Drifts wherever load lets it, position untracked.
Torque mode
Holds a constant force/torque. Speed and position are whatever the load allows.

Same external push on the shaft — three different outcomes

Disturbance Response
θbump at t₀Position mode: recovers the exact original angleθVelocity mode: speed recovers, angle is left permanently offsetθTorque mode: doesn't resist at all — the arm just moves
Which variable is regulated?
Only the one you commanded
Position mode holds angle; the other two variables are whatever falls out.
Why this matters for safety
Compliance vs rigidity
Torque mode gives a robot arm compliant, human-safe contact; position mode fights any collision at full authority.
Why this works

The mode determines which error the drive is minimizing

A servo drive's current/torque loop is always running — it's the innermost, fastest loop and it's what actually drives the power stage. Whether that torque command comes from a human setpoint directly (torque mode), from a velocity loop's PI output (velocity mode), or from a position loop's output cascaded through a velocity loop (position mode) is the entire distinction. In position mode the drive treats any deviation from the commanded angle as an error to be driven to zero, which is exactly why a position-controlled axis fights back hard against being pushed — it doesn't know the difference between "someone bumped it" and "the load increased," it just knows there's position error and applies torque to erase it. Torque mode never even measures position error; it only regulates current (and therefore torque) to the commanded value, so an external push simply moves the shaft with no corrective resistance at all.

Common misconception
"Torque control is just position control with looser gains."

No — it's a structurally different loop, not a detuned version of the same one. A position loop with low gains still has position feedback wired into it and will still, eventually, correct any offset back toward the setpoint; it's just slow and mushy about it. A true torque-mode axis has no position feedback in its control law at all — the position loop and velocity loop are bypassed entirely, and the drive is regulating motor current directly against a commanded torque reference. That is exactly why torque mode is what collaborative robot arms use for safe human contact and what force-controlled assembly (e.g., peg-in-hole insertion, screw driving to a torque spec) requires: no amount of gain-tuning on a position loop reproduces the property of applying a bounded force and yielding completely when that force is met, because the position loop's entire job is to resist yielding.

Related Concept Explainers
Servo vs Stepper Motors
Read explainer →
Backdrivable vs Non-Backdrivable Actuation
Read explainer →

Position vs Velocity vs Torque Control — Concept Explainer

Explains the three servo drive control modes — position, velocity, and torque — as three points along the same cascaded control structure, and why the choice of mode (not the tuning) determines how an axis responds to an unexpected external force.

Why This Is Commonly Confused

Because all three modes run on the same drive hardware, using the same underlying PID math, it is tempting to think of them as one control loop with different aggressiveness settings. They are not. Each mode wires the commanded reference into a different point of a cascaded loop structure, and that wiring point — not the gain values — determines what the axis is actually trying to hold constant. A "soft" position loop and a torque loop can look similar on a bench test with no load, but behave completely differently the instant an external force is applied.

The Cascade Structure

A typical servo drive nests three loops, fastest on the inside: the current/torque loop (regulates motor current, and therefore torque, typically at 10–20 kHz), the velocity loop (regulates shaft speed, typically 1–5 kHz, outputting a torque command to the inner loop), and the position loop (regulates shaft angle or linear position, typically 100 Hz–1 kHz, outputting a velocity command to the middle loop).

Position mode commands the outer loop directly — the drive computes position error (commanded − actual, from an encoder) and drives it toward zero through the full cascade. Velocity mode commands the middle loop directly, bypassing the position loop entirely — actual position is never compared to anything, so the axis is free to end up anywhere as long as it is moving at the commanded speed. Torque mode commands the inner loop directly, bypassing both outer loops — the drive regulates current to hold a commanded torque and has no opinion at all about resulting speed or position.

Where This Matters in Mechatronic Design

Mode selection is a design decision, not a tuning decision. Pick-and-place and CNC axes use position mode because the whole point is to arrive at an exact coordinate and hold it against disturbances. Conveyor and spindle drives commonly run velocity mode because holding a constant surface speed matters, but exact rotational position never does. Force-controlled applications — collaborative robot joints, press-fit assembly, torque-controlled fastening, haptic devices — use torque mode because the requirement is a bounded, compliant force output that yields to unexpected contact rather than fighting it. Choosing position mode for a task that actually needs compliance (e.g., a robot gripper closing on a fragile part) is a common design mistake: the position loop will drive full torque trying to reach a commanded closure angle it physically cannot reach, potentially crushing the part, where torque mode would simply stop applying force once the commanded torque limit was reached.

Frequently asked questions

Can a drive switch between modes on the fly?

Yes — most industrial servo drives and modern BLDC controllers support mode switching at runtime (often called "mode of operation" in CANopen/EtherCAT CiA 402 profiles), and it is common practice: for example, running position mode for a rapid approach move, then switching to torque mode for the final compliant contact phase, as in screw-driving or press-fit operations.

Does velocity mode use any position feedback at all?

The tachometer or encoder feedback used to compute actual velocity often comes from differentiating position feedback, so a position sensor is frequently still present in the loop electrically. The distinction is that the velocity loop's error signal is speed error, not position error — there is no position setpoint being compared against, so accumulated position drift is never corrected.

Is torque control the same thing as current control?

For a permanent-magnet brushless or DC motor, torque is directly proportional to current (through the motor's torque constant, Kt), so "torque loop" and "current loop" are frequently used interchangeably and are, in practice, the same regulated quantity. The distinction becomes more meaningful in machines where the torque constant itself varies with position or saturation, requiring compensation to keep the current loop's output an accurate torque command.

Why does position mode feel "stiff" and torque mode feel "soft"?

Position mode actively drives torque output to eliminate any position error, so pushing on a position-controlled axis is met with proportionally increasing resistance — that is mechanical stiffness created entirely by the control loop (virtual stiffness), not the physical structure. Torque mode applies a fixed, bounded torque regardless of resulting motion, so an external push simply moves the shaft with no loop fighting back — that is what "compliant" or "soft" means in a control context.

What happens to position accuracy if you run velocity mode for a long time?

Position error accumulates without bound, because nothing in the loop is ever comparing actual position to a target. Small velocity tracking errors integrate over time into arbitrarily large position drift — which is exactly why applications needing both speed regulation and periodic position correction (like some indexing conveyors) will run velocity mode most of the time but briefly switch to position mode, or add an outer supervisory correction, at defined checkpoints.

🎓

Try our Mechatronics Studio

More calculators, simulators, and guides for this discipline.

📖

Mechatronics Engineering Handbook (Full Access)

Premium Content

A zoomable interactive reader — free preview, then unlock the full set.

Related tools & guides

PID Control Loop Tuning SimulatorPWM Duty-Cycle & H-Bridge SelectorGear Ratio & Torque CalculatorLinear Actuator Sizing Calculator