Main Content

Belt Drive

R2026b

Power transmission system with taut belt connecting two pulleys

  • Belt Drive block

Libraries:
Simscape / Driveline / Couplings & Drives

Description

The Belt Drive block represents a pair of pulleys connected with a flexible ideal, flat, or V-shaped belt. When you set Belt type to Ideal - No slip, the belt does not slip relative to the pulley surfaces.

The block accounts for friction between the flexible belt and the pulley periphery. If the friction force is not sufficient to drive the load, the block allows slip. The relationship between the tensions in the driving and driven branches conforms to the capstan equation, also known as the Euler-Eytelwein equation. The block accounts for centrifugal loading in the flexible belt, pulley inertia, and bearing friction.

The Belt Drive block is a structural component based on the Simscape™ Driveline™ Belt Pulley block and Simscape Translational Spring and Translational Damper blocks.

The Translational Spring and Translational Damper blocks simulate the compliance of the belt. For the equations governing the contact dynamics between the belt and the pulley, see the Belt Pulley block. The figure shows the functional block diagram for the Belt Drive block.

To learn more about the construction of the block, see About Composite Components and the reference pages for the individual component blocks.

Equations

The diagrams show the open and crossed belt drive configurations. When you set Drive type to Open belt, both pulleys tend to rotate in the same direction and the larger pulley has a larger belt wrap angle. When you set Drive type to Crossed belt, the pulleys tend to rotate in opposite directions and have the same wrap angle.

Belt Drive Diagrams

The figures and equations refer to these quantities:

  • θA is the wrap angle of pulley A.

  • θB is the wrap angle of pulley B.

  • RA is the effective radius of pulley A.

  • RB is the effective radius of pulley B.

  • C is the distance between the centers of pulleys A and B.

Open Belt

When you set Drive type to Open belt, the block calculates the wrap angle of the belt around each pulley as:

θA=π+2∗sin−1RA−RBC,θB=π−2∗sin−1RA−RBC

The diagram shows the wrap angles and parameters.

Crossed Belt

When you set Drive type to Crossed belt, the two wrap angles are equal and the wrap angle of the belt around each pulley:

θA=θB=π+2∗sin−1RA+RBC.

The diagram shows the wrap angles and parameters.

Assumptions and Limitations

  • The pulleys do not translate.

  • The friction coefficient and friction velocity threshold between the belt and each of the pulleys is the same. To parameterize separate friction interactions, use two Belt Pulley blocks.

Ports

Conserving

expand all

Mechanical rotational conserving port associated with the shaft of pulley A.

Programmatic Use

Port: A

Mechanical rotational conserving port associated with the shaft of pulley B.

Programmatic Use

Port: B

Parameters

expand all

Belt

Belt drive configuration. For more information, see Belt Drive Diagrams.

Programmatic Use

Parameter: drive_type
Values: "sdl.enum.wrap_configuration.open" | "sdl.enum.wrap_configuration.crossed"

Belt type selection. The belt type affects slip conditions

  • Ideal - No slip — Parameterize an ideal belt, which does not slip relative to the pulley.

  • Flat belt — Parameterize a belt with a rectangular cross-section.

  • V-belt— Parameterize a belt with a V-shaped cross-section.

Programmatic Use

Parameter: belt_type
Values: "sdl.enum.belt_type.ideal" | "sdl.enum.belt_type.flat" | "sdl.enum.belt_type.v_belt"

Option to simulate compliance.

  • No compliance - Suitable for HIL simulation — Simulates a noncompliant belt that does not yield elastically when subjected to a force. To prioritize performance, select this option.

  • Specify stiffness and damping — Simulates a compliant belt that does yield elastically when subjected to a force. To prioritize fidelity, select this option.

Dependencies

To enable this parameter, set Belt type to Ideal - No slip.

Programmatic Use

Parameter: model_compliance
Values: "sdl.enum.compliance.off" | "sdl.enum.compliance.on"

Sheave angle of the V-belt.

Dependencies

To enable this parameter, set Belt type to V-belt.

Programmatic Use

Parameter: sheave_ang

Number of V-belts.

The block rounds noninteger values to the nearest integer. Increasing the number of belts increases the friction force, effective mass per unit length, and maximum allowable tension.

Dependencies

To enable this parameter, set Belt type to V-belt.

Programmatic Use

Parameter: num_belts

Option to include the effects of centrifugal force. If you set this parameter to Model centrifugal force, centrifugal force saturates to approximately 90% of the value of the force on each belt end.

Dependencies

To enable this parameter, set Belt type to Flat belt or V-belt.

Programmatic Use

Parameter: model_f_c
Values: "sdl.enum.model_centrifugal.off" | "sdl.enum.model_centrifugal.on"

Centrifugal force contribution in terms of linear density.

Dependencies

To enable this parameter, set Belt type to Flat belt or V-belt and Centrifugal force to Model centrifugal force.

Programmatic Use

Parameter: linear_density

Effective stiffness of the belt.

Dependencies

To enable this parameter, set Belt type to Ideal - No slip and Compliance to Specify stiffness and damping or set Belt type to Flat belt or V-belt.

Programmatic Use

Parameter: stiffness

Effective damping of the belt.

To enable this parameter, either set

  • Belt type to Ideal - No slip and Compliance to Specify stiffness and damping, or

  • Belt type to Flat belt or V-belt

Programmatic Use

Parameter: damping

Tension in the belt when the belt and pulleys are at rest. The value must be positive.

To enable this parameter, either set

  • Belt type to Ideal - No slip and Compliance to Specify stiffness and damping, or

  • Belt type to Flat belt or V-belt

Programmatic Use

Parameter: tension

Option to specify a maximum tension. If you select this parameter and the belt tension on either end of the belt meets or exceeds the value that you specify for the Belt maximum tension parameter, the simulation stops and generates an assertion error.

Dependencies

To enable this parameter, either set

  • Belt type to Ideal - No slip and Compliance to Specify stiffness and damping, or

  • Belt type to Flat belt or V-belt

Programmatic Use

Parameter: breakable
Values: "true" | "false"

Maximum allowable tension for each belt. When the tension on either end of the belt meets or exceeds this value, the simulation stops and generates an assertion error.

To enable this parameter, either set

  • Belt type to Ideal - No slip, Compliance to Specify stiffness and damping, and select Error if belt exceeds maximum tension, or

  • Belt type to Flat belt or V-belt and select Error if belt exceeds maximum tension.

Programmatic Use

Parameter: F_max

Pulley A

Radius of the pulley.

Programmatic Use

Parameter: r_pulley_A

Viscous friction associated with the bearings that hold the axis of the pulley.

Programmatic Use

Parameter: b_pulley_A

Option to parameterize rotational inertia with an initial velocity.

Programmatic Use

Parameter: model_inertia_A
Values: "sdl.enum.model_inertia.off" | "sdl.enum.model_inertia.on"

Rotational inertia of the pulley.

Dependencies

To enable this parameter, set Inertia to Specify inertia and initial velocity.

Programmatic Use

Parameter: pulley_inertia_A

Initial rotational velocity of the pulley.

Dependencies

To enable this parameter, set Inertia to Specify inertia and initial velocity.

Programmatic Use

Parameter: initial_velocity_A

Pulley B

Radius of the pulley.

Programmatic Use

Parameter: r_pulley_B

Viscous friction associated with the bearings that hold the axis of the pulley.

Programmatic Use

Parameter: b_pulley_B

Option to parameterize rotational inertia with an initial velocity.

Programmatic Use

Parameter: model_inertia_B
Values: "sdl.enum.model_inertia.off" | "sdl.enum.model_inertia.on"

Rotational inertia of the pulley.

Dependencies

To enable this parameter, set Inertia to Specify inertia and initial velocity.

Programmatic Use

Parameter: pulley_inertia_B

Initial rotational velocity of the pulley.

Dependencies

To enable this parameter, set Inertia to Specify inertia and initial velocity.

Programmatic Use

Parameter: initial_velocity_B

Contact

To enable these settings, set Belt type to Flat belt or V-belt.

Option to parameterize continuous or modal friction.

Option to initialize the simulation with pulley A locked or unlocked.

Dependencies

To enable this parameter, set Friction model to Modal.

Programmatic Use

Parameter: initial_state_locked_A
Values: "sdl.enum.initial_lock.unlocked" | "sdl.enum.initial_lock.locked"

Option to initialize the simulation with pulley B locked or unlocked.

Dependencies

To enable this parameter, set Friction model to Modal.

Programmatic Use

Parameter: initial_state_locked_B
Values: "sdl.enum.initial_lock.unlocked" | "sdl.enum.initial_lock.locked"

Belt friction while maintaining static contact.

Dependencies

To enable this parameter, set Friction model to Modal.

Programmatic Use

Parameter: mu_static

Belt friction while slipping.

Dependencies

To enable this parameter, set Friction model to Modal.

Programmatic Use

Parameter: mu_kinetic

Coulomb friction coefficient between the belt and the pulley surface.

Dependencies

To enable this parameter, set Friction model to Continuous.

Programmatic Use

Parameter: mu

Option to calculate the wrap angle by the pulley center separation or to specify those values directly.

  • Specify pulley center separation — The block calculates the wrap angle of the belt on the pulleys by using the pulley radii, center separation, and drive type.

  • Specify wrap angles — The block uses the wrap angles that you specify.

Programmatic Use

Parameter: wrap_parameterization
Values: "sdl.enum.wrap_parameterization.centers" | "sdl.enum.wrap_parameterization.angles"

Distance between the centers of the pulleys.

Dependencies

To enable this parameter, set Wrap angle calculation to Specify pulley center separation.

Programmatic Use

Parameter: d_centers

Angle of contact between the belt and pulley attached to port A.

Dependencies

To enable this parameter, set Wrap angle calculation to Specify wrap angles.

Programmatic Use

Parameter: phi_wrap_A

Angle of contact between the belt and pulley attached to port B.

Dependencies

To enable this parameter, set Wrap angle calculation to Specify wrap angles.

Programmatic Use

Parameter: phi_wrap_B

Relative velocity required for peak kinetic friction in the contact. The friction velocity threshold improves the numerical stability of the simulation by ensuring that the force is continuous when the direction of the velocity changes.

Programmatic Use

Parameter: v_thr

Relative force required for peak kinetic friction in the contact.

Dependencies

To enable this parameter, set Belt type to Flat belt or V-belt.

Programmatic Use

Parameter: f_thr

More About

expand all

References

[1] Johnson, Kenneth L. Contact Mechanics. Cambridge: Cambridge Univ. Press, 2003.

Extended Capabilities

expand all

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

Version History

Introduced in R2012a

expand all