Harmonic Drive

High-ratio speed reducer based on elastic deformation of an elliptical gear




This block represents a compact, high-ratio, speed reduction mechanism that contains three key components:

  • Strain wave generator

  • Elliptical gear

  • Circular ring gear

The strain wave generator comprises an elliptical plug mated to a raced ball bearing. It sits inside an elastic metal gear, deforming it into a slight elliptical pattern. Rotation of the elliptical pattern in the body of the gear constitutes a strain wave.

The elliptically deformed gear engages the internal teeth of a fixed circular ring gear of only slightly larger diameter. Meshing occurs concurrently at the two elongated ends of the elliptical gear. This design doubles the teeth in mesh, boosting the torque capacity of the drive system.

During normal operation, the base shaft drives the strain wave generator. The elliptical plug spins freely inside the elastic metal gear, propagating the strain wave about the gear rotation axis. This strain wave causes the elliptical gear teeth to engage the internal teeth of the circular ring gear progressively.

The internal meshing between the two gears causes the elliptical gear axis to spin counter to the elliptical strain wave. For every clockwise rotation that the strain wave generator completes, the elliptical gear axis rotates counterclockwise by a small amount.

Large reduction ratios arise from the near-equal gear tooth numbers. The effective gear reduction ratio is:



  • r is the gear reduction ratio.

  • nC is the tooth number of the circular ring gear.

  • nE is the tooth number of the deformable elliptical gear.

Optional parameters account for power losses due to gear meshing and viscous friction. The Simple Gear block provides the foundation for this block. For more information, see Simple Gear.

Thermal Modeling

You can model the effects of heat flow and temperature change through an optional thermal conserving port. By default, the thermal port is hidden. To expose the thermal port, right-click the block in your model and, from the context menu, select Simscape > Block choices. Select a variant that includes a thermal port. Specify the associated thermal parameters for the component.


BConserving rotational port representing the base shaft
FConserving rotational port representing the follower shaft



Number of teeth on elliptical gear

Total number of teeth protruding outward from the elliptical gear perimeter. This number should be slightly smaller than the number of teeth on the circular ring gear. The ratio of the two gear tooth numbers defines the relative angular velocities of the base and follower shafts. The default value is 100.

Number of teeth on circular gear

Number of teeth protruding inward from the circular ring gear perimeter. This number should be slightly larger than the number of teeth on the elliptical gear. The ratio of the two gear tooth numbers defines the relative angular velocities of the base and follower shafts. The default value is 102.

Meshing Losses

Parameters for meshing losses vary with the block variant chosen—one with a thermal port for thermal modeling and one without it.

 Without Thermal Port

 With Thermal Port

Viscous Losses

Viscous friction coefficients at base (B) and follower (F)

Two-element array with the viscous friction coefficients in effect at the base and follower shafts. The default array, [0 0] N*m/(rad/s), corresponds to zero viscous losses.

Thermal Port

Thermal mass

Thermal energy required to change the component temperature by a single degree. The greater the thermal mass, the more resistant the component is to temperature change. The default value is 50 J/K.

Initial temperature

Component temperature at the start of simulation. The initial temperature alters the component efficiency according to an efficiency vector that you specify, affecting the starting meshing or friction losses. The default value is 300 K.

Real-Time Simulation

Hardware-in-the-Loop Simulation

For optimal simulation performance, use the Meshing Losses > Friction model parameter default setting, No meshing losses - Suitable for HIL simulation.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Introduced in R2014a