Nonlinear Rotational Spring

Torsional spring based on polynomial or lookup table parameterizations


Couplings & Drives/Springs & Dampers


The block represents a torsional spring with nonlinear torque-displacement curve. The spring torque magnitude is a general function of displacement. It need not satisfy Hooke's law. Polynomial and lookup-table parameterizations provide two ways to specify the torque-displacement relationship. The spring torque can be symmetric or asymmetric with respect to zero deformation.

The symmetric polynomial parameterization defines spring torque according to the expression:



  • T — Spring force

  • k1, k2, ...,k5 — Spring coefficients

  • θ — Relative displacement between ports R and C, θ=θinit+θRθC

  • θinit — Initial spring deformation

  • θR — Absolute angular position of port R

  • θC — Absolute angular position of port C

At simulation start (t=0), θR and θC are zero, making θ equal to θinit.

Specifying an odd polynomial (b2,b4 = 0) eliminates the sign function from the polynomial expression. This avoids zero-crossings that slow down simulation.

The two-sided polynomial parameterization defines spring torque according to the expression:



  • k1t, k2t, ..., k5t — Spring tension coefficients

  • k1c, k2c, ..., k5c — Spring compression coefficients

Both polynomial parameterizations use a fifth-order polynomial expression. To use a lower-order polynomial, set the unneeded higher-order coefficients to zero. To use a higher-order polynomial, fit to a lower order polynomial or use the lookup table parameterization.

The lookup table parameterization defines spring torque based on a set of torque and angular velocity vectors. If not specified, the block automatically adds a data point at the origin (zero angular velocity and zero torque).

Dialog Box and Parameters


Select spring parameterization. Options are By polynomial and By lookup table.

 By Polynomial

 By lookup table


CRotational conserving port
RRotational conserving port

Introduced in R2013a

Was this topic helpful?