Contenu principal

Elevator with Custom Belt Pulley Components

R2026b
Since R2026b

This example shows how to couple custom belt pulley blocks with position-based mechanical translational blocks to build an elevator system. The elevator is a belt drive system with a car and a counterweight. The drive pulley and return pulley are at the top and bottom, respectively, and the car follows the guide rails. The distance between the drive pulley and the return pulley is 20 m, and the radius of each pulley is 0.5 m.

Configure Elevator Model

The model consists of three networks: the drive pulley network, the return pulley network, and the position-based mechanical translational network. The position-based network represents the cables for the elevator. The Mass With Length & Friction (PB) block represents the car, and its friction corresponds to the guide rail friction. Open the model.

open_system('CustomBeltPulleyLibraryElevator');

The custom belt pulley (BP) library has four blocks: Belt (BP), Belt (BP-PB), Belt Pulley Properties (BP), and Pulley (BP). A Belt (BP) block provides the connection between two Pulley (BP) blocks. A Belt (BP-PB) block serves as an interface between a Pulley (BP) block and a position-based (PB) translational network. A Belt Pulley Properties (BP) block specifies the domain parameters of the network.

open_system('belt_pulley_lib');

Connect Custom Pulley with Position-Based Network

The custom Belt (BP-PB) block is an interface block that connects the custom pulley block to a position-based translational network. The block represents a belt segment and models the spring, viscous, and acceleration forces. Specify the Belt angle entering pulley parameter for each Belt (BP-PB) block. Using the right-hand rule, measure the belt angle entering the pulley with respect to the x-axis of the two-dimensional space that the belt pulley domain defines. For example, the Belt (BP-PB) block connecting to the drive pulley uses 90 deg for this parameter.

open_system('CustomBeltPulleyLibraryElevator/Belt (BP-PB)')

Similarly, the angle for the belts connecting to the return pulley is -90 deg. Note that the two custom belt pulley networks in the model have their own two-dimensional spaces because no belt pulley conserving ports connect them. The two networks do not share domain parameters, so the model uses separate Belt Pulley Properties (BP) blocks for each network.

Analyze Results

The height is the distance from the return pulley. The controller regulates the car's height according to the simulation time, t.

  1. t = 0.0 - 6.0 s — The controller maintains the initial height, which is 10 m.

  1. t = 6.0 - 10.0 s — The controller operates the motor to linearly increase the height to 15 m.

  2. t = 10.0 - 15.0 s — The controller keeps the height steady at 15 m.

  3. t = 15.0 - 19.0 s — The controller operates the motor to linearly decrease the height to 10 m.

  4. t = 19.0 - 25.0 s — The controller maintains the height of the car.

The model initializes at static equilibrium. The controller output compensates for gravity so that the motor produces equilibrium torque.

open_system('CustomBeltPulleyLibraryElevator/Controller')

The gravity compensation equals the torque that the weights of the car and counterweight generate. To specify the compensation, enter:

set_param('CustomBeltPulleyLibraryElevator/Controller/Gravity Compensation','constant','m_cart * g * r_pulley - m_counter * g *  r_pulley')

For static equilibrium, the model uses the following high priority initial targets.

Block

Initial Target

Value

Drive Pulley

Initial angular velocity

Initial acceleration torque

0 rad/s

0 N*m

Return Pulley

Initial angular velocity

0 rad/s

Belt (BP-PB)

Initial length

L_init = 10 m

Belt (BP-PB)1

Initial length

L_init = 10 m

Belt (BP-PB)2

Initial length

Belt tension

L_init = 10 m

1e4 N

Belt (BP-PB)3

Initial length

Belt tension

L_init = 10 m

1e4 N

Car

Velocity

Acceleration force

0 m/s

0 N

Counterweight

Velocity

Acceleration force

0 m/s

0 N

Note that the initial acceleration torque for the return pulley automatically becomes 0 N*m because the two belt segments on the pulley have the same initial tension 1e4 N. The solver determines the correct tension in each belt segment connecting to the drive pulley to achieve static equilibrium.

Simulate the model to predict tension variations.

open_system('CustomBeltPulleyLibraryElevator/Results');
sim('CustomBeltPulleyLibraryElevator');

See Also

Topics