Motion Driver for SimMechanics

A block to generate velocity and acceleration from a position signal.

You are now following this Submission

One way to actuate a SimMechanics model is by providing its Actuator blocks with 'Motion' signals. The input to a 'Motion' actuator is a three-element vector containing position, velocity and acceleration signals.
In many applications, the only data that is available is the position. This raises an interesting question: how can we calculate consistent velocity and position signals? One way to actuate a SimMechanics model is by providing its Actuator blocks with 'Motion' signals. The input to a 'Motion' actuator is a three-element vector containing position, velocity and acceleration signals.

In many applications, the only data that is available is the position. This raises an interesting question: how can we calculate consistent velocity and position signals? Differentiating the position signal sometimes works, but the velocity and acceleration signals tend to become very noisy. A better - though less intuitive approach - is to create a second-order tracking filter and use its position, velocity and acceleration signals to drive the actuator.

This file contains a small Simulink library, motdrv_lib and an example file, mech_motdrv. To use these, copy the files to your computer, add the directory to the MATLAB search path (see addpath for help) and type mech_motdrv in the MATLAB Command Window.

Cite As

Daniel (2026). Motion Driver for SimMechanics (https://www.mathworks.com/matlabcentral/fileexchange/27589-motion-driver-for-simmechanics), MATLAB Central File Exchange. Retrieved .

Acknowledgements

Inspired: Quarter of Vehicle Simulation with Simscape

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.3.0.0

Fixed typographical error in description and updated MATLAB release number to match latest code.

1.2.0.1

Updated license

1.2.0.0

Enhanced to support inherited initial conditions. Velocity-driven version of block introducted.

1.0.0.0