In this tutorial, you explore the various forces and torques that you can add to a model. Then, using blocks with motion sensing capability, you analyze the resulting dynamic response of the model. The end result is a set of time-domain and phase plots, one for each combination of forces and torques. You create these plots using MATLAB® commands with Simscape™ Multibody™ motion outputs as arguments.
Your starting point is the simple pendulum model that you built in Model a Simple Pendulum. By adding forces and torques to this model, you incrementally change the pendulum from undamped and free to damped and driven. The forces and torques that you apply include:
Gravitational force (Fg) — Global force, acting on every body in direct proportion to its mass, that you specify in terms of the acceleration vector g. You specify this vector using the Mechanism Configuration block.
Joint damping (Fb) — Internal torque, between the pendulum and the joint fixture, that you parameterize in terms of a linear damping coefficient. You specify this parameter using the Revolute Joint block that connects the pendulum to the joint fixture.
Actuation torque (FA) — Driving torque, between the pendulum and the joint fixture, that you prescribe directly as a Simscape physical signal. You prescribe this signal using the Revolute Joint block that connects the pendulum to the joint fixture.
Open the simple_pendulum model that you created in tutorial Model a Simple Pendulum.
In the Sensing menu of the Revolute Joint block dialog box, select the following variables:
Position
Velocity
The block exposes two additional physical signal ports, labeled q and w, that output the angular position and velocity of the pendulum with respect to the world frame.
Add the following blocks to the model. You use them here to output the joint position and velocity to the MATLAB base workspace.
Library | Block | Quantity |
---|---|---|
Simscape > Utilities | PS-Simulink Converter | 2 |
Simulink > Sinks | To Workspace | 2 |
Change the Variable name parameters in the To
Workspace block dialog boxes to q
and
w
. These variables make it easy to identify the
joint variables that the To Workspace blocks output during
simulation—position, through the Revolute Joint block port q, and
velocity, through the Revolute Joint block port w.
Connect the blocks as shown in the figure. Ensure that the To
Workspace block with variable name q
connects, through the PS-Simulink
Converter block, to the Revolute
Joint block port q, and that the To Workspace block
with variable name w
connects to the
Revolute Joint block port
w
.
Save the model under a different name, e.g.,
simple_pendulum_analysis
, in a convenient
folder.
Run the simulation. Mechanics Explorer opens with a 3-D animation of the simple pendulum model.
Plot the joint position and velocity with respect to time, e.g., by entering the following code at the MATLAB command prompt:
figure; % Open a new figure hold on; plot(q); % Plot the pendulum angle plot(w); % Plot the pendulum angular velocity
Plot the joint angular velocity with respect to the angular position, e.g., by entering the following code at the MATLAB command prompt.
figure; plot(q.data, w.data);
Try simulating the model using different starting angles. You can change the starting angle in the State Targets > Position menu of the Revolute Joint block dialog box. The figure shows a compound phase plot for starting angles of -80, -40, 0, 40, and 80 degrees.
In the Revolute Joint block dialog box, set Internal Mechanics > Damping to 8e-5
(N*m)/(deg/s). The damping
coefficient causes energy dissipation during motion, resulting in a
gradual decay of the pendulum oscillation amplitude.
Ensure that State Targets > Position > Value is set to 0
deg.
Run the simulation.
Plot the joint position and velocity with respect to time. To do this, at the MATLAB command prompt, you can enter this code:
figure; hold on; plot(q); plot(w);
Plot the joint phase plot. To do this, at the MATLAB command prompt, you can enter this code:
figure; plot(q.data, w.data);
Try simulating the model using different starting angles. You can change the starting angle in the State Targets > Position menu of the Revolute Joint block dialog box. The figure shows a compound phase plot for starting angles of -240, -180, -120, -60, 0, and 60 degrees.
In the Revolute Joint block dialog box, set Actuation > Torque to Provided by Input
. The block
exposes a physical signal input port that you can use to prescribe the
joint actuation torque.
Add these blocks to the model.
Library | Block |
---|---|
Simscape > Utilities | Simulink-PS Converter |
Simulink > Sources | Sine Wave |
The Sine Wave block provides a periodic torque input as a Simulink® signal. The Simulink-PS Converter block converts the Simulink signal to a Simscape physical signal compatible with Simscape Multibody blocks.
Connect the blocks as shown in the figure.
In the Sine Wave block dialog box, set Amplitude
to 0.06
. This amplitude corresponds to an actuation
torque oscillating between -0.06 N and 0.06 N.
In the Revolute Joint block dialog box, ensure that State Targets > Position > Value is set to 0
deg.
Run the simulation.
Plot the joint position and velocity with respect to time. To do this, at the MATLAB command prompt, you can enter this code:
figure; hold on; plot(q); plot(w);
Plot the joint phase plot. To do this, at the MATLAB command prompt, you can enter this code:
figure; plot(q.data, w.data);