Atlas Copco Tensor ITB-A61-50-10, the commercial reference tool shown in the MF2030 report.

05 / Modelling & control · MF2030 / 2025

Before the torque,
understand the system.

A nutrunner is a powered tool that tightens bolts to a set torque. In a KTH mechatronics course, three of us modelled one in MATLAB and Simulink, from its motor to the bolt it clamps. A simulation study; no tool was built.

Explore the project ↓Cordless nutrunner

THE PROJECT / 05

One tool,
several models.

A nutrunner is a powered tool that tightens threaded fasteners to a controlled torque. The course gave us a commercial reference, the Atlas Copco Tensor ITB-A61-50-10, and a different motor to model, a Faulhaber 3268 036 BX4 at 36 V. So what we built is a way of modelling such a tool, not a digital twin of the Atlas Copco one. We built it in steps: first a motor model we could trust, then its control, then the gearbox and the bolt.

WITH
Lucas Karlsson & Josefine Nyholm
WORK
MATLAB · Simulink · Simscape · control modelling
OUTCOME
Modelled and simulated · no tool built
Our saved Task 2 Simulink traces, replotted unchanged: four models of the same 36 V motor step.
01 / Establish the model

Four models
that agree.

Current in the windings makes torque; back EMF and friction shape how quickly the motor spins up. We wrote the same motor down four ways: as differential equations, a state-space model, a transfer function and a Simscape physical model. All four give the same response to a 36 V step, with a no-load speed of 5,297 rpm and a mechanical time constant of 4.9 ms, both matching the data sheet. That agreement is what made the model worth building on.

The plot above is drawn from our saved simulation signals, each labelled with the model it came from, so the agreement can be checked rather than taken on trust.

  1. ELECTRICAL

    L di/dt = U − Ri − Kₑω

  2. MECHANICAL

    J dω/dt = Kₘi − bω

  3. CHECK

    A 36 V step across four implementations

Reference product versus assigned motor

The commercial nutrunner and the motor we modelled are different hardware: the report contrasts the assigned 62 W motor with the commercial tool’s 1,500 W motor. Our model also treats the motor as brushed, while the real one is brushless, which is why the simulated stall torque comes out slightly low.

Source: MF2030 report, PDF pp. 6–14, 29; motor_specs.m; task2PlotValues.mat.

02 / Add control, then simplify

Keep the dynamics
that matter.

A PI controller holds the motor speed while respecting the voltage and current limits. We tuned it by experiment against those limits and ended at P = 1.927 and I = 1 for a 12 rad/s reference. The proportional term alone removed the steady-state error in simulation, which is why the integral gain could stay at 1; with real measurement noise it would need retuning.

The pole map made the next decision for us. The electrical time constant, inductance over resistance, is about 74 µs; the mechanical one is 4.9 ms. So we dropped the inductance and kept the mechanics, because dropping the mechanical term instead would have moved the model much further from reality. The plot below compares the full and reduced equations.

The full and reduced motor equations from our motor_specs.m, evaluated in Python for this page. It does not re-run the full Simulink tightening model.
What was recomputed for this page

For this page, our saved Task 2 traces were read back from their MATLAB files and checked against the exact state-space solution at the same time stamps, including the 3.6 ms delay before the input step. The reduction plot is a separate Python calculation; the full Simulink tightening model has not been re-run.

Source: Report PDF pp. 12–14, 20–23; motor_specs.m; recovered Task 2–4 data.

03 / The transmission and joint

From motor angle
to clamp force.

A gear ratio alone does not describe tightening. Between the motor and the output sits a two-stage planetary gearbox of about 76.7:1, modelled with a torsional stiffness of 739 N·m/rad and damping, so motor angle and output angle are not simply proportional. Our model then turns output rotation into the stretch of an M8 bolt, and that stretch is the clamp force.

Tightening has two phases. In the rundown, the nut spins down the thread until it seats. In clamping, every further turn stretches the bolt and builds force until the tool stops at a set torque; at 36 V the model reaches the 55 N·m specification after 18.1 rad of turning. Friction in the thread decides how much of that torque becomes clamp force, and that is the subject of the next chapter.

  1. RUNDOWN

    Speed-controlled approach

  2. TRANSMISSION

    Motor and output angles + speeds

  3. CLAMPING

    Elastic M8 screw model

  4. STOP

    Torque threshold ends tightening

Assumptions worth keeping visible

Our model uses lumped stiffness and damping, a simplified bolt and an assumed friction coefficient. It leaves out gearbox losses, thread variation, temperature and the behaviour of a real tool. Its battery estimate, about 1,160 bolts per charge, is a calculation, not an endurance test.

Source: Report PDF pp. 15–19, 23–29; original Task 5–9 model files.

04 / Read the consequence

Same cutoff torque.
A different clamp force.

Stop the tool at the same 25 N·m and the predicted clamp force depends almost entirely on one assumption. Without friction in the thread, the model gives 103.4 kN; with a Coulomb friction coefficient of 0.2, it gives 22.4 kN. That is the result I find most instructive in the project: one modelling decision moves the answer by a factor of more than four.

The coefficient of 0.2 is an assumption, not a measurement, and every force here is simulated. The comparison below shows both cases.

103.4kN

Predicted clamp force
2.35 s to the 25 N·m cutoff

Reported simulation cases · comparison, not a live physical model

Additional reported cases

With μ = 0.2, the model gives 19.1 kN at a 22 N·m cutoff and 17.0 kN at 20 N·m, reached in 0.480 s and 0.431 s. At 25 N·m, tightening takes 2.35 s without Coulomb friction and 0.552 s with it.

Source: Report PDF pp. 26–27, Tables 3–4.