diff --git a/Examples/Extrusions/Conveyors/XTS_1/Libraries/rails_lib.slx b/Examples/Extrusions/Conveyors/XTS_1/Libraries/rails_lib.slx index db0d68f..ae630f1 100644 Binary files a/Examples/Extrusions/Conveyors/XTS_1/Libraries/rails_lib.slx and b/Examples/Extrusions/Conveyors/XTS_1/Libraries/rails_lib.slx differ diff --git a/Examples/Extrusions/Conveyors/XTS_1/Libraries/xts_movers_lib.slx b/Examples/Extrusions/Conveyors/XTS_1/Libraries/xts_movers_lib.slx index 42cc1c2..66eda00 100644 Binary files a/Examples/Extrusions/Conveyors/XTS_1/Libraries/xts_movers_lib.slx and b/Examples/Extrusions/Conveyors/XTS_1/Libraries/xts_movers_lib.slx differ diff --git a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_PARAM.m b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_PARAM.m index 31c4474..298954f 100644 --- a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_PARAM.m +++ b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_PARAM.m @@ -1,5 +1,5 @@ % Parameters for XTS conveyor system -% Copyright 2017-2022 The MathWorks, Inc. +% Copyright 2017-2023 The MathWorks, Inc. % Actuation and control xts_ctrl_dead_zone = 0.005; %m diff --git a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_generate_spline.m b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_generate_spline.m index a944680..229817c 100644 --- a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_generate_spline.m +++ b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_generate_spline.m @@ -1,5 +1,5 @@ function [rail_spline, station_data] = xts_generate_spline(track_seg) -% Copyright 2017-2022 The MathWorks, Inc. +% Copyright 2017-2023 The MathWorks, Inc. % Number of stations per segment type (straight, curved) numStStraight = 2; diff --git a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_generate_track.m b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_generate_track.m index f64d05e..47f7865 100644 --- a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_generate_track.m +++ b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_generate_track.m @@ -1,5 +1,5 @@ function [rail_spline, station_data, station_o, station_x, station_y] = xts_generate_track(track_seq) -% Copyright 2017-2022 The MathWorks, Inc. +% Copyright 2017-2023 The MathWorks, Inc. % Generate spline for Point on Curve Constraint [rail_spline, station_data] = xts_generate_spline(track_seq); diff --git a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_mover_extr_data.m b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_mover_extr_data.m index 093e290..2279fb3 100644 --- a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_mover_extr_data.m +++ b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_mover_extr_data.m @@ -1,5 +1,5 @@ % Mover created using Simscape Multibody general extrusion -% Copyright 2017-2022 The MathWorks, Inc. +% Copyright 2017-2023 The MathWorks, Inc. % Sizing parameters xtm_h = 0.0225*2.8; diff --git a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_rail_extr_data.m b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_rail_extr_data.m index a7174dc..a1cc91a 100644 --- a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_rail_extr_data.m +++ b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_rail_extr_data.m @@ -1,5 +1,5 @@ % Rail created using Simscape Multibody general extrusion -% Copyright 2017-2022 The MathWorks, Inc. +% Copyright 2017-2023 The MathWorks, Inc. % General parameters xts_rail_color = [0.0 0.4 0.8]; diff --git a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot1station.m b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot1station.m index 99cabe3..20a5ff6 100644 --- a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot1station.m +++ b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot1station.m @@ -4,7 +4,7 @@ % The plots below show the requested and current station along the track % for each mover. % -% Copyright 2017-2022 The MathWorks, Inc. +% Copyright 2017-2023 The MathWorks, Inc. % Generate simulation results if they don't exist if ~exist('simlog_xts_system', 'var') diff --git a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot2posvel.m b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot2posvel.m index 9b9a432..02d0163 100644 --- a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot2posvel.m +++ b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot2posvel.m @@ -4,7 +4,7 @@ % The plots below show speed and position along the global x-axis for % each mover. % -% Copyright 2017-2022 The MathWorks, Inc. +% Copyright 2017-2023 The MathWorks, Inc. % Generate simulation results if they don't exist if ~exist('simlog_xts_system', 'var') diff --git a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot3trackstations.m b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot3trackstations.m index 9c9502e..d8e0f36 100644 --- a/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot3trackstations.m +++ b/Examples/Extrusions/Conveyors/XTS_1/Scripts_Data/xts_system_plot3trackstations.m @@ -3,7 +3,7 @@ % % The plot shows the track of the transport system and the stations along the track. % -% Copyright 2017-2022 The MathWorks, Inc. +% Copyright 2017-2023 The MathWorks, Inc. % Generate simulation results if they don't exist if ~exist('simlog_xts_system', 'var') diff --git a/Examples/Extrusions/Conveyors/XTS_1/html/html/xts_system.html b/Examples/Extrusions/Conveyors/XTS_1/html/html/xts_system.html index 78dae9e..27acb30 100644 --- a/Examples/Extrusions/Conveyors/XTS_1/html/html/xts_system.html +++ b/Examples/Extrusions/Conveyors/XTS_1/html/html/xts_system.html @@ -6,7 +6,7 @@ Linear Transport System

Linear Transport System

This example shows a linear transport system often used in manufacturing lines. Linear motors drive movers along a track to specified positions. Point-on-Curve Constraints are used to constrain the movement of the mover to the track. The geometry, spline of the track, and specified stopping positions are parameterized using MATLAB, making it easy to reconfigure the system.

Contents

Model

Conveyor 1 Subsystem

The system is composed of one rail and two movers. A mechanical reference and a spline defining the path of the rail connect the components in the system.

Open Subsystem

Mover 1 Subsystem

Each mover is controlled independently. The control system tells the mover to which station it should go. Its x and y position are converted to the nearest station number so that the motion control subsystem can tell the mover when to move and stop.

Open Subsystem

Mover Subsystem

The mover must be constrained to the spline defining the rail such that it follows the rail with a specific orientation. Two Point on Curve constraints ensure that its axis is aligned with the rail, and the Planar Joint ensures that it does not rotate about the rail.

Open Subsystem

Rail Subsystem

The rail is defined by a series of straight and curved extrusions. Their lengths and arcs are parameterized so that the track can be modified using MATLAB variables.

Open Subsystem

Simulation Results from Simscape Logging

The plot shows the track of the transport system and the stations along the track.

The plots below show the requested and current station along the track for each mover.

The plots below show speed and position along the global x-axis for each mover.

This example shows a linear transport system often used in manufacturing lines. Linear motors drive movers along a track to specified positions. Point-on-Curve Constraints are used to constrain the movement of the mover to the track. The geometry, spline of the track, and specified stopping positions are parameterized using MATLAB, making it easy to reconfigure the system.

Contents

Model

Conveyor 1 Subsystem

The system is composed of one rail and two movers. A mechanical reference and a spline defining the path of the rail connect the components in the system.

Open Subsystem

Mover 1 Subsystem

Each mover is controlled independently. The control system tells the mover to which station it should go. Its x and y position are converted to the nearest station number so that the motion control subsystem can tell the mover when to move and stop.

Open Subsystem

Mover Subsystem

The mover must be constrained to the spline defining the rail such that it follows the rail with a specific orientation. Two Point on Curve constraints ensure that its axis is aligned with the rail, and the Planar Joint ensures that it does not rotate about the rail.

Open Subsystem

Rail Subsystem

The rail is defined by a series of straight and curved extrusions. Their lengths and arcs are parameterized so that the track can be modified using MATLAB variables.

Open Subsystem

Simulation Results from Simscape Logging

The plot shows the track of the transport system and the stations along the track.

The plots below show the requested and current station along the track for each mover.

The plots below show speed and position along the global x-axis for each mover.

Open Differential Testrig

Open Differential Testrig

This example models an open differential using multiple bevel gears. This gearset enables the axles to rotate at different speeds even though they are connected to the same input shaft

Contents

Model

Open Differential Subsystem

Open Subsystem

Open Differential Subsystem

The Bevel Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transforms to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the input shaft and axle shaft speeds. A step change to the load on one of the axles causes the two axles to spin at different speeds.

This example models an open differential using multiple bevel gears. This gearset enables the axles to rotate at different speeds even though they are connected to the same input shaft

Contents

Model

Open Differential Subsystem

Open Subsystem

Open Differential Subsystem

The Bevel Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transforms to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the input shaft and axle shaft speeds. A step change to the load on one of the axles causes the two axles to spin at different speeds.

Double Bevel Gear Assembly Testrig

Double Bevel Gear Assembly Testrig

This example models three shafts connected at an arbitrary angle by three gears. The necessary blocks for a bevel gear assembly are contained in a masked subsystem with the key parameters exposed in a dialog box.

Contents

Model

Bevel Gear 2x Assembly Subsystem

Open Subsystem

Bevel Gear 2x Assembly Constraints Subsystem

The Bevel Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the three shafts connected by the double bevel gear assembly.

This example models three shafts connected at an arbitrary angle by three gears. The necessary blocks for a bevel gear assembly are contained in a masked subsystem with the key parameters exposed in a dialog box.

Contents

Model

Bevel Gear 2x Assembly Subsystem

Open Subsystem

Bevel Gear 2x Assembly Constraints Subsystem

The Bevel Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the three shafts connected by the double bevel gear assembly.

Four-Sided Bevel Gear Assembly Testrig

Four-Sided Bevel Gear Assembly Testrig

This example models four bevel gears connected in a closed loop. The necessary blocks for a bevel gear assembly are contained in a masked subsystem with the key parameters exposed in a dialog box.

Contents

Model

Bevel Gear 4x Closed Assembly Subsystem

Open Subsystem

Bevel Gear 4x Closed Assembly Constraints Subsystem

The Bevel Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the four gears connected by the bevel gear assembly.

This example models four bevel gears connected in a closed loop. The necessary blocks for a bevel gear assembly are contained in a masked subsystem with the key parameters exposed in a dialog box.

Contents

Model

Bevel Gear 4x Closed Assembly Subsystem

Open Subsystem

Bevel Gear 4x Closed Assembly Constraints Subsystem

The Bevel Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the four gears connected by the bevel gear assembly.

Bevel Gear Assembly Testrig

Bevel Gear Assembly Testrig

This example models two shafts connected at an arbitrary angle by two gears. The necessary blocks for a bevel gear assembly are contained in a masked subsystem with the key parameters exposed in a dialog box.

Contents

Model

Bevel Gear Assembly Subsystem

Open Subsystem

Bevel Gear Assembly Constraints Subsystem

The Bevel Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the two shafts connected by the bevel gear assembly.

This example models two shafts connected at an arbitrary angle by two gears. The necessary blocks for a bevel gear assembly are contained in a masked subsystem with the key parameters exposed in a dialog box.

Contents

Model

Bevel Gear Assembly Subsystem

Open Subsystem

Bevel Gear Assembly Constraints Subsystem

The Bevel Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the two shafts connected by the bevel gear assembly.

Lead Screw Actuation Torque

Lead Screw Actuation Torque

This example models a lead screw. It is configured to run a kinematic simulation and calculate the actuation force required to achieve the specified motion for the lead screw. A load force acts on the screw, increasing the amount of torque required to drive the lead screw

Contents

Model

Simulation Results from Simscape Logging

The plot below shows the actuation torque of the lead screw.

This example models a lead screw. It is configured to run a kinematic simulation and calculate the actuation force required to achieve the specified motion for the lead screw. A load force acts on the screw, increasing the amount of torque required to drive the lead screw

Contents

Model

Simulation Results from Simscape Logging

The plot below shows the actuation torque of the lead screw.

Lead Screw with Friction

Lead Screw with Friction

This example models a lead screw with friction. The constraint force in the lead screw is measured and used to calculate the friction torque within the lead screw. A continuous stick-slip friction model is used to determine the coefficient of friction based on the relative rotational speed of the two parts connected by the lead screw.

Contents

Model

Lead Screw Friction Subsystem

This subsystem calculates and applies the friction torque to the two parts connected by the lead screw joint. The following free-body diagram shows the relevant parameters and forces acting on the system.

The friction equation is:

$Torque_{friction} = F_{load} \cdot r_{screw} \cdot \mu$

If $\mu > tan(\lambda)$, the lead screw is non-backdriveable. Applying an axial load force will not be sufficient to permit the lead screw to move.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the actuation torque of the lead screw. In this test, the coefficient of friction is low enough that the load force can backdrive the lead screw.

The Lead Screw Joint can be configured such that positive rotation leads to positive translation.

Increasing the coefficient of friction higher than the tangent of the lead angle will make the lead screw non-backdriveable. Applying an axial load force will not be sufficient for the screw to move.

This example models a lead screw with friction. The constraint force in the lead screw is measured and used to calculate the friction torque within the lead screw. A continuous stick-slip friction model is used to determine the coefficient of friction based on the relative rotational speed of the two parts connected by the lead screw.

Contents

Model

Lead Screw Friction Subsystem

This subsystem calculates and applies the friction torque to the two parts connected by the lead screw joint. The following free-body diagram shows the relevant parameters and forces acting on the system.

The friction equation is:

$Torque_{friction} = F_{load} \cdot r_{screw} \cdot \mu$

If $\mu > tan(\lambda)$, the lead screw is non-backdriveable. Applying an axial load force will not be sufficient to permit the lead screw to move.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the actuation torque of the lead screw. In this test, the coefficient of friction is low enough that the load force can backdrive the lead screw.

The Lead Screw Joint can be configured such that positive rotation leads to positive translation.

Increasing the coefficient of friction higher than the tangent of the lead angle will make the lead screw non-backdriveable. Applying an axial load force will not be sufficient for the screw to move.

Planetary Gear Testrig

Planetary Gear Testrig

This example models a planetary gear with three planets. The planetary gear has three mechanical connections: sun gear, carrier, and ring gear. Driving and locking different pairs of shafts will produce different movements.

Contents

Model

Planetary Gear Subsystem

This subsystem shows the parts, joints, and gear constraints used to model the planetary gear.

Open Subsystem

Carrier Gear Subsystem

This subsystem shows the used to model the carrier, which connects the planets.

Open Subsystem

Sun Shaft Input Subsystem

This subsystem models the input to each shaft. Signals control the torque applied to the shaft and the enabling of a brake.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the three shafts attached to the planetary gear as different pairs of shafts are driven and locked.

This example models a planetary gear with three planets. The planetary gear has three mechanical connections: sun gear, carrier, and ring gear. Driving and locking different pairs of shafts will produce different movements.

Contents

Model

Planetary Gear Subsystem

This subsystem shows the parts, joints, and gear constraints used to model the planetary gear.

Open Subsystem

Carrier Gear Subsystem

This subsystem shows the used to model the carrier, which connects the planets.

Open Subsystem

Sun Shaft Input Subsystem

This subsystem models the input to each shaft. Signals control the torque applied to the shaft and the enabling of a brake.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the three shafts attached to the planetary gear as different pairs of shafts are driven and locked.

Rack and Pinion Assembly Testrig

Rack and Pinion Assembly Testrig

This example models a gear and a toothed bar (rack). The necessary blocks for the rack and pinion assembly are contained in a masked subsystem with the key parameters exposed in a dialog box.

Contents

Model

Rack and Pinion Assembly Subsystem

Open Subsystem

Rack and Pinion Assembly Constraints Subsystem

The Rack and Pinion Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the rack and pinion.

This example models a gear and a toothed bar (rack). The necessary blocks for the rack and pinion assembly are contained in a masked subsystem with the key parameters exposed in a dialog box.

Contents

Model

Rack and Pinion Assembly Subsystem

Open Subsystem

Rack and Pinion Assembly Constraints Subsystem

The Rack and Pinion Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the rack and pinion.

Worm Gear Assembly Testrig

Worm Gear Assembly Testrig

This example models a worm gear assembly. The necessary blocks for a worm gear assembly are contained in a masked subsystem with the key parameters exposed in a dialog box.

Contents

Model

Worm Gear Assembly Subsystem

Open Subsystem

Worm Gear Assembly Constraints Subsystem

The Worm Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the two shafts connected by the worm gear assembly with worm direction set to Right-Hand.

The plot below shows the speeds of the two shafts connected by the worm gear assembly with worm direction set to Left-Hand.

This example models a worm gear assembly. The necessary blocks for a worm gear assembly are contained in a masked subsystem with the key parameters exposed in a dialog box.

Contents

Model

Worm Gear Assembly Subsystem

Open Subsystem

Worm Gear Assembly Constraints Subsystem

The Worm Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the two shafts connected by the worm gear assembly with worm direction set to Right-Hand.

The plot below shows the speeds of the two shafts connected by the worm gear assembly with worm direction set to Left-Hand.

Worm Gear Constraints and CAD Parts

Worm Gear Constraints and CAD Parts

This example models a worm gear assembly. The worm and gear are STEP files exported from a CAD system. Two Revolute Joints and a Worm Gear Constraint constrain the parts for the correct kinematic behavior.

Contents

Model

Worm Gear Assembly Constraints Subsystem

The Worm Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the two shafts connected by the worm gear assembly with worm direction set to Right-Hand.

Warning: ['sm_worm_gear_constraints_CAD/Worm'] : Frame F
-[Frame1]: The geometric feature the origin is based on,
-"planar surface 4", does not exist. The geometry may have
-changed. Resolve this issue in order to remove the warning. 
-Warning: ['sm_worm_gear_constraints_CAD/Worm'] : File Solid
-block <a
+  

Worm Gear Constraints and CAD Parts

This example models a worm gear assembly. The worm and gear are STEP files exported from a CAD system. Two Revolute Joints and a Worm Gear Constraint constrain the parts for the correct kinematic behavior.

Contents

Model

Worm Gear Assembly Constraints Subsystem

The Worm Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the two shafts connected by the worm gear assembly with worm direction set to Right-Hand.

Warning: ['sm_worm_gear_constraints_CAD/Worm'] : Frame F [Frame1]: The geometric
+feature the origin is based on, "planar surface 4", does not exist. The geometry
+may have changed. Resolve this issue in order to remove the warning. 
+Warning: ['sm_worm_gear_constraints_CAD/Worm'] : File Solid block <a
 href="matlab:pm.sli.highlightSystem('sm_worm_gear_constraints_CAD/Worm');">sm_worm_gear_constraints_CAD/Worm</a>
-has at least one frame that is based on a geometric
-feature. Due to upgrades in the STEP file reader, the
-geometric features defining the frames may have changed. It
-is recommended that you verify the frames of this File
-Solid block are as expected. Once verified, click <a
+has at least one frame that is based on a geometric feature. Due to upgrades in
+the STEP file reader, the geometric features defining the frames may have
+changed. It is recommended that you verify the frames of this File Solid block
+are as expected. Once verified, click <a
 href="matlab:set_param('sm_worm_gear_constraints_CAD/Worm','StepReaderType','HEX');">here</a>
-to clear the warning. Resolve this issue in order to remove
-the warning. 
-
Water Powered Lift

Water Powered Lift

This example models a water powered mechanical lift. Water flowing from a spout fills a bucket that is on the end of an arm. When the bucket is full, its weight causes it to drop, moving it away from the spout. A hole in the bottom of the bucket allows the water to drain. As the water drains, the bucket becomes lighter and a spring rotates the arm so that the bucket is back under the spout.

The bucket is connected via a one-way clutch and a bevel gear to a lead screw. The lead screw is non-backdriveable. This combination of mechanical elements enables the pouring water to lift a mechanical load.

This example uses a the General Variable Mass block from Simscape Multibody to model the varying mass, inertia, and center of gravity location in each bucket.

Contents

Model

Spout Subsystem

This subsystem models the spout and provides a visual cue that the water is flowing. A pressure source models the hydraulic head. A Simulink signal controls the opening of a valve and the movement of the visual cue in the Simscape Multibody animation.

Arm and Bucket with General Variable Mass

The General Variable Mass block is used to model the varying mass, inertia, and location of the center of gravity within each bucket. These quantities vary as the buckets are filled from the source and drain through the hole in their base. The angle of the bucket is used to determine if the buckets are underneath the spout.

Open Subsystem

Calculate Water Volume Subsystem

This subsystem calculates the volume of water in the bucket. The Interval Test block is used to determine if the bucket is under the spout. If so, it is assumed the bucket gets all the water coming from the spout.

The rate of water leaving the bucket depends on the height of the water in the bucket and the size of the hole in the bucket. They are related by the following equation:

$Q_{out} = Area_{hole} \cdot (2 \cdot gravity \cdot height_{water})^{1 / 2}$

Integrating the net flow rate into the bucket allows us to calculate the volume of water in the bucket. The Integrator is limited to ensure that the volume of the water does not go below zero and does not exceed the size of the bucket.

Because the area of the bucket does not vary with its height, we can simply divide by the area of the bucket to get the height of the water in the bucket. More complex formulas or a lookup table could be used if the bucket had a more complex shape.

Open Subsystem

Calculate Mass and Inertia Subsystem

This subsystem prepares the inputs for the General Variable Mass block. It is important to know the location and orientation of the frame to which this block is attached, for it governs these calculations. The frame is attached at the center of floor of the bucket with the z-axis pointing up.

The mass is simply the volume times the density. Since the bucket is symmetrical, the only non-zero component for the center of gravity is the z-axis which is half of the height of the water. The inertia tensor is calculated for a square beam:

$I_{x} = I_{y} = mass \cdot (width^2+height^2)/12$

$I_{z} = mass \cdot (width^2+length^2)/12$

Open Subsystem

Mechancial Arm Subsystem

This subsystem models one of the arms on the water wheel. It consists of six rigid parts - the spoke, bracket arc, bracket sides, and the pins that attach to the bucket. Though it is modeled using six separate Solid blocks and a number of Rigid Transform blocks, it is treated as a single solid part by Simscape Multibody. A few of the solids, such as Bracket Arc, have multiple ports. Solids with multiple ports have frame definitions within the Solid block itself.

Open Subsystem

One-Way Clutch Subsystem

This subsystem models one-way clutch connecting the arm to the gear. A Revolute Joint provides a degree of freedom, and a torque is applied to the joint so that the relative velocity can only be negative. This is a very simple model of a one-way clutch. Increasing the gain between rotational speed and torque will permit less slip between the shafts but will also make the model more numerically stiff.

Open Subsystem

One-Way Clutch Torque

Bevel Gear Subsystem

This subsystem models the bevel gear that connects the output shaft of the one-way clutch to the lead screw. Two Revolute Joints and Bevel Gear Constraint are required to constrain the two gears in this assembly. The Bevel Gear Constraint and Rigid Transform are parameterized so that the frames are positioned and oriented as required by the Bevel Gear Constraint block.

Open Subsystem

Lead Screw Subsystem

This subsystem models the lead screw. It uses the Lead Screw Joint in Simscape Multibody and has an additional subsystem that models stick-slip friction within the Lead Screw Joint. The default values of the friction model make the lead screw non-backdriveable, as the tangent of the lead angle is less than the coefficient of friction. The one-way clutch ensures that the drive gear spins only in one direction, and the non-backdriveable lead screw ensures that the load will not lower due to its own weight. This combination makes it possible for the arm to raise the load.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the angle of the arm and the height of the lead screw. A one-way clutch causes the lead screw to only advance as the bucket moves downward.

This example models a water powered mechanical lift. Water flowing from a spout fills a bucket that is on the end of an arm. When the bucket is full, its weight causes it to drop, moving it away from the spout. A hole in the bottom of the bucket allows the water to drain. As the water drains, the bucket becomes lighter and a spring rotates the arm so that the bucket is back under the spout.

The bucket is connected via a one-way clutch and a bevel gear to a lead screw. The lead screw is non-backdriveable. This combination of mechanical elements enables the pouring water to lift a mechanical load.

This example uses a the General Variable Mass block from Simscape Multibody to model the varying mass, inertia, and center of gravity location in each bucket.

Contents

Model

Spout Subsystem

This subsystem models the spout and provides a visual cue that the water is flowing. A pressure source models the hydraulic head. A Simulink signal controls the opening of a valve and the movement of the visual cue in the Simscape Multibody animation.

Arm and Bucket with General Variable Mass

The General Variable Mass block is used to model the varying mass, inertia, and location of the center of gravity within each bucket. These quantities vary as the buckets are filled from the source and drain through the hole in their base. The angle of the bucket is used to determine if the buckets are underneath the spout.

Open Subsystem

Calculate Water Volume Subsystem

This subsystem calculates the volume of water in the bucket. The Interval Test block is used to determine if the bucket is under the spout. If so, it is assumed the bucket gets all the water coming from the spout.

The rate of water leaving the bucket depends on the height of the water in the bucket and the size of the hole in the bucket. They are related by the following equation:

$Q_{out} = Area_{hole} \cdot (2 \cdot gravity \cdot height_{water})^{1 / 2}$

Integrating the net flow rate into the bucket allows us to calculate the volume of water in the bucket. The Integrator is limited to ensure that the volume of the water does not go below zero and does not exceed the size of the bucket.

Because the area of the bucket does not vary with its height, we can simply divide by the area of the bucket to get the height of the water in the bucket. More complex formulas or a lookup table could be used if the bucket had a more complex shape.

Open Subsystem

Calculate Mass and Inertia Subsystem

This subsystem prepares the inputs for the General Variable Mass block. It is important to know the location and orientation of the frame to which this block is attached, for it governs these calculations. The frame is attached at the center of floor of the bucket with the z-axis pointing up.

The mass is simply the volume times the density. Since the bucket is symmetrical, the only non-zero component for the center of gravity is the z-axis which is half of the height of the water. The inertia tensor is calculated for a square beam:

$I_{x} = I_{y} = mass \cdot (width^2+height^2)/12$

$I_{z} = mass \cdot (width^2+length^2)/12$

Open Subsystem

Mechancial Arm Subsystem

This subsystem models one of the arms on the water wheel. It consists of six rigid parts - the spoke, bracket arc, bracket sides, and the pins that attach to the bucket. Though it is modeled using six separate Solid blocks and a number of Rigid Transform blocks, it is treated as a single solid part by Simscape Multibody. A few of the solids, such as Bracket Arc, have multiple ports. Solids with multiple ports have frame definitions within the Solid block itself.

Open Subsystem

One-Way Clutch Subsystem

This subsystem models one-way clutch connecting the arm to the gear. A Revolute Joint provides a degree of freedom, and a torque is applied to the joint so that the relative velocity can only be negative. This is a very simple model of a one-way clutch. Increasing the gain between rotational speed and torque will permit less slip between the shafts but will also make the model more numerically stiff.

Open Subsystem

One-Way Clutch Torque

Bevel Gear Subsystem

This subsystem models the bevel gear that connects the output shaft of the one-way clutch to the lead screw. Two Revolute Joints and Bevel Gear Constraint are required to constrain the two gears in this assembly. The Bevel Gear Constraint and Rigid Transform are parameterized so that the frames are positioned and oriented as required by the Bevel Gear Constraint block.

Open Subsystem

Lead Screw Subsystem

This subsystem models the lead screw. It uses the Lead Screw Joint in Simscape Multibody and has an additional subsystem that models stick-slip friction within the Lead Screw Joint. The default values of the friction model make the lead screw non-backdriveable, as the tangent of the lead angle is less than the coefficient of friction. The one-way clutch ensures that the drive gear spins only in one direction, and the non-backdriveable lead screw ensures that the load will not lower due to its own weight. This combination makes it possible for the arm to raise the load.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the angle of the arm and the height of the lead screw. A one-way clutch causes the lead screw to only advance as the bucket moves downward.

Parameterized Four-Bar Linkage

Parameterized Four-Bar Linkage

This example models a four-bar linkage. Hyperlinks in the model let you change the lengths of the links enables it to model a parallelogram, crank-rocker, or drag link linkage.

Contents

Model

Simulation Results from Simscape Logging

Parallelogram Linkage

The plot below shows the mechanism parameterized to be a parallelogram linkage. The moving ends of links 1 and 3 trace two circles with the same diameter.

Crank Rocker Linkage

The plot below shows the mechanism parameterized to be a parallelogram linkage. As link 1 moves in a full circle, link 3 oscillates back and forth.

Drag Link Linkage

The plot below shows the mechanism parameterized to be a drag link linkage. Link 1 and 3 move in full circles of different sizes.

This example models a four-bar linkage. Hyperlinks in the model let you change the lengths of the links enables it to model a parallelogram, crank-rocker, or drag link linkage.

Contents

Model

Simulation Results from Simscape Logging

Parallelogram Linkage

The plot below shows the mechanism parameterized to be a parallelogram linkage. The moving ends of links 1 and 3 trace two circles with the same diameter.

Crank Rocker Linkage

The plot below shows the mechanism parameterized to be a parallelogram linkage. As link 1 moves in a full circle, link 3 oscillates back and forth.

Drag Link Linkage

The plot below shows the mechanism parameterized to be a drag link linkage. Link 1 and 3 move in full circles of different sizes.

Five-Bar Linkage Stamping Mechanism

Five-Bar Linkage Stamping Mechanism

This example models a stamping mechanism using the Simscape Multibody Parts Library. It is a five-bar linkage with a single degree of freedom. Assembling basic, parameterized parts enables quick modeling of a mechanism with a complex movement. Varying the parameter values enables exploration of the motion this mechanism can achieve.

Contents

Model

Link 3 Subsystem

This subsystem models a linkage with a bend and three attachment points. Straight and curved parts are combined to create the linkage. Block Transform Center Pin adds a frame at the correct location for the pin.

Open Subsystem

Link 4 Subsystem

This subsystem models another curved linkage with three attachment points. The stamping pad is attached to the end of the link.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the height of the stamping pad as Link 1 rotates.

This example models a stamping mechanism using the Simscape Multibody Parts Library. It is a five-bar linkage with a single degree of freedom. Assembling basic, parameterized parts enables quick modeling of a mechanism with a complex movement. Varying the parameter values enables exploration of the motion this mechanism can achieve.

Contents

Model

Link 3 Subsystem

This subsystem models a linkage with a bend and three attachment points. Straight and curved parts are combined to create the linkage. Block Transform Center Pin adds a frame at the correct location for the pin.

Open Subsystem

Link 4 Subsystem

This subsystem models another curved linkage with three attachment points. The stamping pad is attached to the end of the link.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the height of the stamping pad as Link 1 rotates.

Slider Crank Linkage

Slider Crank Linkage

This example models a slider-crank mechanism using parts from the Simscape Multibody Parts Library.

Contents

Model

Slider Subsystem

This subsystem combines a few parts to model the slider. Block Transform F creates the interface frame that is properly oriented for the translational degree of freedom.

Open Subsystem

Simulation Results from Simscape Logging

This plot shows the position of the slider in the slider-crank mechanism.

This example models a slider-crank mechanism using parts from the Simscape Multibody Parts Library.

Contents

Model

Slider Subsystem

This subsystem combines a few parts to model the slider. Block Transform F creates the interface frame that is properly oriented for the translational degree of freedom.

Open Subsystem

Simulation Results from Simscape Logging

This plot shows the position of the slider in the slider-crank mechanism.

Three Connected Pulleys

Three Connected Pulleys

This example shows three pulleys connected by a single cable. The pulley constraint blocks ensure that the rotation of the individual pulleys is synchronized, taking into account the pulley radii and wrap direction of the cable.

Contents

Model

Pulleys Subsystem

Open Subsystem

Simulation Results from Simscape Logging

The plots below show the angle of each pulley and the torqure required to produce this motion

This example shows three pulleys connected by a single cable. The pulley constraint blocks ensure that the rotation of the individual pulleys is synchronized, taking into account the pulley radii and wrap direction of the cable.

Contents

Model

Pulleys Subsystem

Open Subsystem

Simulation Results from Simscape Logging

The plots below show the angle of each pulley and the torqure required to produce this motion

Cable-Driven XY Table with Cross Base

Cable-Driven XY Table with Cross Base

This examples models an XY positioning table that uses a cable-driven mechanism. A single cable wraps around 7 different pulleys and converts the rotational angle of the two input pulleys to the x-y position of the table.

Inverse kinematics can be used to map table position to pulley angle. The model allows you to specify the motion of the table in x-y coordinates and determine the required pulley rotation to produce that movement. Inverse dynamics can be used to calculate the torque required to produce that motion.

Contents

Model

Platform Subsystem

This subsystem models the platform that has two degrees of freedom. The slider and the table are constrained by two prismatic joints which permit movement along two perpendicular axes. The mounting points for all seven pulleys are defined in this subsystem.

Open Subsystem

Pulleys Subsystem

This subsystem models the seven pulleys which are connected by a single cable. The pulley constraints and the cable connections ensure that the rotation of the individual pulleys follows the kinematic behavior as specified in the diagram. The cable ends attach to points on the upper part of the platform.

Open Subsystem

Motion Subsystem

This subsystem shows the inputs that can be used to prescribe the motion of the table. The upper set of inputs prescribes the motion of the table in x-y coordinates, and an inverse kinematic simulation can determine the required rotations of pulleys 2 and 6 to achieve that movement. The lower set of inputs prescribe the angles of pulleys 2 and 6. This data was recorded from the inverse kinematic simulation.

Open Subsystem

Simulation Results from Simscape Logging

This plot shows the XY position of the table.

The plots below show the required motion and torques for pulley 2 and pulley 6 to produce the desired motion of the table.

This examples models an XY positioning table that uses a cable-driven mechanism. A single cable wraps around 7 different pulleys and converts the rotational angle of the two input pulleys to the x-y position of the table.

Inverse kinematics can be used to map table position to pulley angle. The model allows you to specify the motion of the table in x-y coordinates and determine the required pulley rotation to produce that movement. Inverse dynamics can be used to calculate the torque required to produce that motion.

Contents

Model

Platform Subsystem

This subsystem models the platform that has two degrees of freedom. The slider and the table are constrained by two prismatic joints which permit movement along two perpendicular axes. The mounting points for all seven pulleys are defined in this subsystem.

Open Subsystem

Pulleys Subsystem

This subsystem models the seven pulleys which are connected by a single cable. The pulley constraints and the cable connections ensure that the rotation of the individual pulleys follows the kinematic behavior as specified in the diagram. The cable ends attach to points on the upper part of the platform.

Open Subsystem

Motion Subsystem

This subsystem shows the inputs that can be used to prescribe the motion of the table. The upper set of inputs prescribes the motion of the table in x-y coordinates, and an inverse kinematic simulation can determine the required rotations of pulleys 2 and 6 to achieve that movement. The lower set of inputs prescribe the angles of pulleys 2 and 6. This data was recorded from the inverse kinematic simulation.

Open Subsystem

Simulation Results from Simscape Logging

This plot shows the XY position of the table.

The plots below show the required motion and torques for pulley 2 and pulley 6 to produce the desired motion of the table.

The gear constraint blocks require that other constraints in the mechanism correctly position and orient the frames associated with the gear constraint. The library blocks group the required blocks together and parameterize them so that frames are always in the right place. There are many ways they can be combined, this library shows you one way to do it.

The gear constraint blocks require that other constraints in the mechanism correctly position and orient the frames associated with the gear constraint. The library blocks group the required blocks together and parameterize them so that frames are always in the right place. There are many ways they can be combined, this library shows you one way to do it.

Contents

Visualization of Parts from Library (partial)

3D view of many of the parts in the Simscape Multibody Parts Library

Extrusion Scripts: Box

MATLAB function Extr_Data_Box.m creates a hollow or solid rectangular cross-section. Parts Box Tube and Box Tube Curve use this function to define straight or curved extrusions that can be chained together.

Open model sm_parts_box_tubes.slx

Extrusion Scripts: Box with Fillets

MATLAB function Extr_Data_BoxFillet.m creates a hollow or solid rectangular cross-section with fillets on the inner and outer corners. Parts Box Fillet Tube and Box Fillet Tube Curve use this function to define straight or curved extrusions that can be chained together.

Open model sm_parts_box_fillet_tubes.slx

Extrusion Scripts: Ellipse

MATLAB function Extr_Data_Ellipse.m creates a hollow or solid elliptical cross-section. Parts Elliptical Tube and Elliptical Tube Curve use this function to define straight or curved extrusions that can be chained together.

Open model sm_parts_ell_tubes.slx

Extrusion Scripts: Ring

MATLAB function Extr_Data_Ring.m creates a hollow or solid circular cross-section. Parts Circular Tube and Circular Tube Curve use this function to define straight or curved extrusions that can be chained together.

Open model sm_parts_circ_tubes.slx

Extrusion Scripts: Custom

MATLAB function Extr_Data_Custm.m plots custom cross-section data. Parts Custom Extrusion and Custom Extrusion Curve use this function to plot a cross-section defined in its UI.

>> Extr_Data_Custom([-1 1;-1 -1;1 -1;0.5 -0.5;-0.5 -0.5;-0.5 0.5]*2e-2);

Open model sm_parts_custom_extrusion.slx

Extrusion Scripts: Mesh

MATLAB function Extr_Data_Mesh.m creates a cross-section for a grid. Part Mesh uses this function to create a rectangular solid with rectangular holes. This is useful for putting a brid n the background of your visualization for the floor or other planes.

Open model sm_parts_mesh.slx

Extrusion Scripts: Link

MATLAB function Extr_Data_LinkHoles.m creates a cross-section for a rectangular solid with rounded ends. An arbitrary number of holes can be put in the part. Part Link uses Extr_Data_LinkHoles.m to create a part. It can have an arbitrary number of holes, but only provides interface ports at the end holes. For links with more interface ports, assemble them from link segments.

The Link part is often combined with the Rod part to create mechanisms such as four-bar linkages. Note the port labels - the Rod ports connect to frames oriented so that they will extend away from the Link part, The port you connect determines the side of the link where the rod will appear.

Open model sm_parts_link.slx

Extrusion Scripts: Triangle Link

MATLAB function Extr_Data_TriangleLink_Holes.m creates a cross-section for a triangular solid with rounded corners and a hole at each corner.

Open model sm_parts_triangle_link.slx

Extrusion Scripts: Link Segment, 2 Holes

MATLAB function Extr_Data_Link2Hole.m creates a cross-section for a segment of a mechanical link between two holes. It is used by the Link Seg 2 Holes part which enables you to construct a mechanical link with an arbitrary number and location of holes and associated interface ports.

The link part is often combined with the other Link Seg 2 Holes parts and Link End parts to create custom mechanical links.

Open model sm_parts_custom_link.slx

Extrusion Scripts: Link Segment, 1 Hole

MATLAB function Extr_Data_Link1Hole.m creates a cross-section for a segment of a mechanical link with a hole at one end. It is used by the Link Seg 1 Hole part which enables you to construct a mechanical link with an arbitrary number and location of holes and associated interface ports. You can select which end of the link has the hole, either at the positive or negative end of the local X-axis.

The link part is often combined with the other Link Seg 2 Holes parts and Link End parts to create custom mechanical links.

Open model sm_parts_custom_link_flatend.slx

Extrusion Scripts: Cam from two Circles

MATLAB function Extr_Data_Cam_Circles.m creates a cross-section formed by connecting two circles via two tangent lines. It is similar to the shape of very simple cams.

Open model sm_parts_cam_circles.slx

Extrusion Scripts: Gear

MATLAB function Extr_Data_Gear.m creates a cross-section for an external or an internal toothed gear.

Open model sm_parts_gears.slx

Extrusion Scripts: Rack

MATLAB function Extr_Data_Rack.m creates a cross-section for a rack.

Open model sm_parts_rack_and_pinion.slx

Extrusion Scripts: Cone

MATLAB function Extr_Data_Frustum.m creates a cross-section that can be revolved to create a conical solid.

Open model sm_parts_cone.slx

Contents

Visualization of Parts from Library (partial)

3D view of many of the parts in the Simscape Multibody Parts Library

Extrusion Scripts: Box

MATLAB function Extr_Data_Box.m creates a hollow or solid rectangular cross-section. Parts Box Tube and Box Tube Curve use this function to define straight or curved extrusions that can be chained together.

Open model sm_parts_box_tubes.slx

Extrusion Scripts: Box with Fillets

MATLAB function Extr_Data_BoxFillet.m creates a hollow or solid rectangular cross-section with fillets on the inner and outer corners. Parts Box Fillet Tube and Box Fillet Tube Curve use this function to define straight or curved extrusions that can be chained together.

Open model sm_parts_box_fillet_tubes.slx

Extrusion Scripts: Ellipse

MATLAB function Extr_Data_Ellipse.m creates a hollow or solid elliptical cross-section. Parts Elliptical Tube and Elliptical Tube Curve use this function to define straight or curved extrusions that can be chained together.

Open model sm_parts_ell_tubes.slx

Extrusion Scripts: Ring

MATLAB function Extr_Data_Ring.m creates a hollow or solid circular cross-section. Parts Circular Tube and Circular Tube Curve use this function to define straight or curved extrusions that can be chained together.

Open model sm_parts_circ_tubes.slx

Extrusion Scripts: Custom

MATLAB function Extr_Data_Custm.m plots custom cross-section data. Parts Custom Extrusion and Custom Extrusion Curve use this function to plot a cross-section defined in its UI.

>> Extr_Data_Custom([-1 1;-1 -1;1 -1;0.5 -0.5;-0.5 -0.5;-0.5 0.5]*2e-2);

Open model sm_parts_custom_extrusion.slx

Extrusion Scripts: Mesh

MATLAB function Extr_Data_Mesh.m creates a cross-section for a grid. Part Mesh uses this function to create a rectangular solid with rectangular holes. This is useful for putting a brid n the background of your visualization for the floor or other planes.

Open model sm_parts_mesh.slx

Extrusion Scripts: Link

MATLAB function Extr_Data_LinkHoles.m creates a cross-section for a rectangular solid with rounded ends. An arbitrary number of holes can be put in the part. Part Link uses Extr_Data_LinkHoles.m to create a part. It can have an arbitrary number of holes, but only provides interface ports at the end holes. For links with more interface ports, assemble them from link segments.

The Link part is often combined with the Rod part to create mechanisms such as four-bar linkages. Note the port labels - the Rod ports connect to frames oriented so that they will extend away from the Link part, The port you connect determines the side of the link where the rod will appear.

Open model sm_parts_link.slx

Extrusion Scripts: Triangle Link

MATLAB function Extr_Data_TriangleLink_Holes.m creates a cross-section for a triangular solid with rounded corners and a hole at each corner.

Open model sm_parts_triangle_link.slx

Extrusion Scripts: Link Segment, 2 Holes

MATLAB function Extr_Data_Link2Hole.m creates a cross-section for a segment of a mechanical link between two holes. It is used by the Link Seg 2 Holes part which enables you to construct a mechanical link with an arbitrary number and location of holes and associated interface ports.

The link part is often combined with the other Link Seg 2 Holes parts and Link End parts to create custom mechanical links.

Open model sm_parts_custom_link.slx

Extrusion Scripts: Link Segment, 1 Hole

MATLAB function Extr_Data_Link1Hole.m creates a cross-section for a segment of a mechanical link with a hole at one end. It is used by the Link Seg 1 Hole part which enables you to construct a mechanical link with an arbitrary number and location of holes and associated interface ports. You can select which end of the link has the hole, either at the positive or negative end of the local X-axis.

The link part is often combined with the other Link Seg 2 Holes parts and Link End parts to create custom mechanical links.

Open model sm_parts_custom_link_flatend.slx

Extrusion Scripts: Cam from two Circles

MATLAB function Extr_Data_Cam_Circles.m creates a cross-section formed by connecting two circles via two tangent lines. It is similar to the shape of very simple cams.

Open model sm_parts_cam_circles.slx

Extrusion Scripts: Gear

MATLAB function Extr_Data_Gear.m creates a cross-section for an external or an internal toothed gear.

Open model sm_parts_gears.slx

Extrusion Scripts: Rack

MATLAB function Extr_Data_Rack.m creates a cross-section for a rack.

Open model sm_parts_rack_and_pinion.slx

Extrusion Scripts: Cone

MATLAB function Extr_Data_Frustum.m creates a cross-section that can be revolved to create a conical solid.

Open model sm_parts_cone.slx

Box Extrusion Assembly

Box Extrusion Assembly

This example shows the use of the Box Tube and Box Tube Curve blocks in the Simscape Multibody Parts Library. The parts can be chained together to form continuous extrusions with straight and curved sections. There are no joints in this model, it is simply to show how parts can be created.

Return to Multibody Parts Library Overview.

Contents

Model

Curves Subsystem

This subsystem includes four curved sections, showing that the extrusion can curve about either axis perpendicular to the extrusion.

Open Subsystem

Chain Subsystem

This subsystem connects a series of straight and curved extrusions to form a complex shape.

Open Subsystem

This example shows the use of the Box Tube and Box Tube Curve blocks in the Simscape Multibody Parts Library. The parts can be chained together to form continuous extrusions with straight and curved sections. There are no joints in this model, it is simply to show how parts can be created.

Return to Multibody Parts Library Overview.

Contents

Model

Curves Subsystem

This subsystem includes four curved sections, showing that the extrusion can curve about either axis perpendicular to the extrusion.

Open Subsystem

Chain Subsystem

This subsystem connects a series of straight and curved extrusions to form a complex shape.

Open Subsystem

Circular Extrusion Assembly

Circular Extrusion Assembly

This example shows the use of the Circle Tube and Circle Tube Curve blocks in the Simscape Multibody Parts Library. The parts can be chained together to form continuous extrusions with straight and curved sections. There are no joints in this model, it is simply to show how parts can be created.

Return to Multibody Parts Library Overview.

Contents

Model

Curves Subsystem

This subsystem includes four curved sections, showing that the extrusion can curve about either axis perpendicular to the extrusion.

Open Subsystem

Chain Subsystem

This subsystem connects a series of straight and curved extrusions to form a complex shape.

Open Subsystem

This example shows the use of the Circle Tube and Circle Tube Curve blocks in the Simscape Multibody Parts Library. The parts can be chained together to form continuous extrusions with straight and curved sections. There are no joints in this model, it is simply to show how parts can be created.

Return to Multibody Parts Library Overview.

Contents

Model

Curves Subsystem

This subsystem includes four curved sections, showing that the extrusion can curve about either axis perpendicular to the extrusion.

Open Subsystem

Chain Subsystem

This subsystem connects a series of straight and curved extrusions to form a complex shape.

Open Subsystem

Elliptical Extrusion Assembly

Elliptical Extrusion Assembly

This example shows the use of the Elliptical Tube and Elliptical Tube Curve blocks in the Simscape Multibody Parts Library. The parts can be chained together to form continuous extrusions with straight and curved sections. There are no joints in this model, it is simply to show how parts can be created.

Return to Multibody Parts Library Overview.

Contents

Model

Curves Subsystem

This subsystem includes four curved sections, showing that the extrusion can curve about either axis perpendicular to the extrusion.

Open Subsystem

Chain Subsystem

This subsystem connects a series of straight and curved extrusions to form a complex shape.

Open Subsystem

This example shows the use of the Elliptical Tube and Elliptical Tube Curve blocks in the Simscape Multibody Parts Library. The parts can be chained together to form continuous extrusions with straight and curved sections. There are no joints in this model, it is simply to show how parts can be created.

Return to Multibody Parts Library Overview.

Contents

Model

Curves Subsystem

This subsystem includes four curved sections, showing that the extrusion can curve about either axis perpendicular to the extrusion.

Open Subsystem

Chain Subsystem

This subsystem connects a series of straight and curved extrusions to form a complex shape.

Open Subsystem

This example models a pair of gears with parallel axes. The assembly contains the two gears and all constraints required for the gear set. The assembly can be configured to model an external or internal gear set by adjusting parameters in the mask.

Contents

Model

Common Gear Assembly Subsystem

Open Subsystem

Common Gear Assembly Constraints Subsystem

The Common Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the two shafts connected by the common gear assembly in an external configuration.

The plot below shows the speeds of the two shafts connected by the common gear assembly in an internal configuration.

This example models a pair of gears with parallel axes. The assembly contains the two gears and all constraints required for the gear set. The assembly can be configured to model an external or internal gear set by adjusting parameters in the mask.

Contents

Model

Common Gear Assembly Subsystem

Open Subsystem

Common Gear Assembly Constraints Subsystem

The Common Gear Constraint requires that the rest of the mechanism hold the two frames to which it is connected in alignment. This subsystem has the necessary constraints and parameterized Rigid Transform to hold the frames in the right position and orientation.

Open Subsystem

Simulation Results from Simscape Logging

The plot below shows the speeds of the two shafts connected by the common gear assembly in an external configuration.

The plot below shows the speeds of the two shafts connected by the common gear assembly in an internal configuration.

\ No newline at end of file diff --git a/Scripts_Data/Multibody_Parts_Library_activeVariantBlock.m b/Scripts_Data/Multibody_Parts_Library_activeVariantBlock.m index 2858bd1..0f13c9f 100644 --- a/Scripts_Data/Multibody_Parts_Library_activeVariantBlock.m +++ b/Scripts_Data/Multibody_Parts_Library_activeVariantBlock.m @@ -1,7 +1,7 @@ function blk = Multibody_Parts_Library_activeVariantBlock(variant_sub_name) % Code to return path to block which is the active variant. -% Copyright 2022 The MathWorks, Inc. +% Copyright 2022-2023 The MathWorks, Inc. vnt_list = get_param(variant_sub_name,'Variants'); vnt_actv = get_param(variant_sub_name,'ActiveVariant'); diff --git a/Scripts_Data/Multibody_Parts_Library_publish_all.m b/Scripts_Data/Multibody_Parts_Library_publish_all.m index 05261bd..9a62cdf 100644 --- a/Scripts_Data/Multibody_Parts_Library_publish_all.m +++ b/Scripts_Data/Multibody_Parts_Library_publish_all.m @@ -1,4 +1,4 @@ -% Copyright 2016-2022 The MathWorks(TM), Inc. +% Copyright 2016-2023 The MathWorks(TM), Inc. cd(fileparts(which('startup_xts_system.m'))) startup_xts_system diff --git a/Scripts_Data/startup_Multibody_Parts_Library.m b/Scripts_Data/startup_Multibody_Parts_Library.m index 717d4f0..5fe26fe 100644 --- a/Scripts_Data/startup_Multibody_Parts_Library.m +++ b/Scripts_Data/startup_Multibody_Parts_Library.m @@ -1,6 +1,6 @@ function startup_Multibody_Parts_Library -% Copyright 2012-2022 The MathWorks, Inc. +% Copyright 2012-2023 The MathWorks, Inc. % Only open overview if this is the top level project % Do not open if this is a Reference Project diff --git a/resources/project/Root.type.References/66bf1eea-9ae6-4380-867f-0208f1d3d51c.type.Reference.xml b/resources/project/Root.type.References/ff0e2fff-aff7-4a96-a6a5-89dea2bd6004.type.Reference.xml similarity index 100% rename from resources/project/Root.type.References/66bf1eea-9ae6-4380-867f-0208f1d3d51c.type.Reference.xml rename to resources/project/Root.type.References/ff0e2fff-aff7-4a96-a6a5-89dea2bd6004.type.Reference.xml