0% found this document useful (0 votes)
17 views21 pages

M&SM Lab4

modeling and simulation lab 4 report

Uploaded by

msohaib0088
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views21 pages

M&SM Lab4

modeling and simulation lab 4 report

Uploaded by

msohaib0088
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Modeling and Simulation in Mechatronics (MT-373)

Lab Manual

STUDENT NAME: Muhammad Sohaib

SESSION: Fall-23

ROLL NO: LAB NO


212002 4

DATE OF REPORT GRADE/POINTS:


SUBMITTED:
4-03-2024

Department of Mechatronics Engineering


AIR UNIVERSITY
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

Lab # 04
Introduction to Simulink
Objective
i. Blocks familiarization
ii. Transfer function response to various input types (step, ramp, pulse, and impulse)

Introduction:

Simulink is a time-based software package that is included in MATLAB and its main task is to
solve Ordinary Differential Equations (ODE) numerically. The need for the numerical solution
comes from the fact that there is not an analytical solution for all DE, especially for those that
are nonlinear.

The whole idea is to break the ODE into small time segments and to calculate the solution
numerically for only a small segment. The length of each segment is called “step size”. Since the
method is numerical and not analytical there will be an error in the solution. The error depends on
the specific method and on the step size (usually denoted by h).

There are various formulas that can solve these equations numerically. Simulink uses
DormandPrince (ODE5), fourth order Runge-Kutta (ODE4), Bogacki-Shampine (ODE3),
improved Euler (ODE2) and Euler (ODE1). A rule of thumb states that the error in ODE5 is
proportional to h5, in ODE4 to h4 and so on. Hence the higher the method the smaller the error.

Unfortunately, the high order methods (like ODE5) are very slow. To overcome this problem
variable step size solvers are used. When the system’s states change very slowly then the step size
can increase and hence the simulation is faster. On the other hand, if the states change rapidly then
the step size must be sufficiently small.

The variable step size methods that Simulink uses are:


• An explicit Runge-Kutta (4,5) formula, the Dormand-Prince pair (ODE45).
• An explicit Runge-Kutta (2,3) pair of Bogacki and Shampine (ODE23).
• A variable-order Adams-Bashforth-Moulton PECE solver (ODE113).
• A variable order solver based on the numerical differentiation formulas (NDFs) (ODE15s).
• A modified Rosenbrock formula of order 2 (ODE23s).
• An implementation of the trapezoidal rule using a "free" interpolant (ODE23t).
• An implementation of TR-BDF2, an implicit Runge-Kutta formula with a first stage that is a
trapezoidal rule step and a second stage that is a backward differentiation formula of order
two (ODE23tb).
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

To start Simulink, click on the appropriate push button from the command window:

You will see the Simulink window.


Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

Open a new Simulink window by clicking on the New button.

Basic Elements of SIMULINK:


There are two major classes of items in Simulink: blocks and lines. Blocks are used to
generate, modify, combine, output, and display signals. Lines are used to transfer signals
from one block to another.

(i) Blocks
(ii) Lines

Blocks:

There are several general classes of blocks:


• Sources: Used to generate various signals
• Sinks: Used to output or display signals
• Discrete: Linear, discrete-time system elements (transfer functions, state-space models,
etc.)
• Linear: Linear, continuous-time system elements and connections (summing
junctions, gains, etc.)
• Nonlinear: Nonlinear operators (arbitrary functions, saturation, delay,
etc.) Connections: Multiplex, De multiplex, System Macros, etc.

Blocks have zero to several input terminals and zero to several output terminals. Unused input
terminals are indicated by a small open triangle. Unused output terminals are indicated by a small
triangular point. The block shown below has an unused input terminal on the left and an unused
output terminal on the right.
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

Lines:
Lines transmit signals in the direction indicated by the arrow. Lines must always transmit signals
from the output terminal of one block to the input terminal of another block. On exception to this
is a line can tap off of another line, splitting the signal to each of two destination blocks, as shown
below.

Lines can never inject a signal into another line; lines must be combined through the use of a block
such as a summing junction.

A signal can be either a scalar signal or a vector signal. For Single-Input, Single-Output systems,
scalar signals are generally used. For Multi-Input, Multi-Output systems, vector signals are often
used, consisting of two or more scalar signals. The lines used to transmit scalar and vector signals
are identical. The type of signal carried by a line is determined by the blocks on either end of the
line.
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual
Model File:

In Simulink, a model is a collection of blocks which, in general, represents a system. In addition,


to drawing a model into a blank model window, previously saved model files can be loaded either
from the File menu or from the MATLAB command prompt.

Example:

The simple model consists of three blocks: Step, Transfer Fcn, and Scope. The Step is a source
block from which a step input signal originates. This signal is transfered through the line in the
direction indicated by the arrow to the Transfer Function linear block. The Transfer Function
modifies its input signal and outputs a new signal on a line to the Scope. The Scope is a sink block
used to display a signal much like an oscilloscope.

There are many more types of blocks available in Simulink, some of which will be discussed later.
Right now, we will examine just the three we have used in the simple model.

Modifying Blocks
A block can be modified by double-clicking on it. For example, if you double-click on the
"Transfer Fcn" block in the simple model, you will see the following dialog box.
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

This dialog box contains fields for the numerator and the denominator of the block's transfer
function. By entering a vector containing the coefficients of the desired numerator or denominator
polynomial, the desired transfer function can be entered. For example, to change the denominator
to s^2+2s+1, enter the following into the denominator field:
[1 2 1]
and hit the close button, the model window will change to the following,

which reflects the change in the denominator of the transfer function.

The "step" block can also be double-clicked, bringing up the following dialog box.

The default parameters in this dialog box generate a step function occurring at time=1 sec, from an
initial level of zero to a level of 1. (In other words, a unit step at t=1). Each of these parameters
can be changed. Close this dialog before continuing.
The most complicated of these three blocks is the "Scope" block. Double clicking on this brings
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual
Building Systems:

In this section, you will learn how to build systems in Simulink using the building blocks in
Simulink's Block Libraries. You will build the following system.

First you will gather all the necessary blocks from the block libraries. Then you will modify the
blocks, so they correspond to the blocks in the desired model. Finally, you will connect the blocks
with lines to form the complete system. After this, you will simulate the complete system to verify
that it works.
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual
Gathering Blocks:
Follow the steps below to collect the necessary blocks:

• Create a new model (New from the File menu or Ctrl-N). You will get a blank model
window.

• Double-click on the Sources icon in the main Simulink window.


This opens the Sources window which contains the Sources Block Library. Sources are used to
generate signals.
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

• Drag the Step block from the sources window into the left side of your model window.

Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

• Double-click on the Linear icon in the main Simulink window to open the Linear
Block Library window.
• Drag the Sum, Gain, and two instances of the Transfer Fcn (drag it two times) into your
model window arranged approximately as shown below. The exact alignment is not
important since it can be changed later. Just try to get the correct relative positions.
Notice that the second Transfer Function block has a 1 after its name. Since no two
blocks may have the same name, Simulink automatically appends numbers following the
names of blocks to differentiate between them.

• Double-click on the Sinks icon in the main Simulink window to open the Sinks window.
• Drag the Scope block into the right side of your model window.

Modify Blocks:

Follow these steps to properly modify the blocks in your model.


• Double-click your Sum block. Since you will want the second input to be subtracted, enter.
+- into the list of signs field. Close the dialog box.
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

• Double-click your Gain block. Change the gain to 2.5 and close the dialog box.
• Double-click the leftmost Transfer Function block. Change the numerator to [1 2] and
the denominator to [1 0]. Close the dialog box.
• Double-click the rightmost Transfer Function block. Leave the numerator [1] but change
the denominator to [1 2 4]. Close the dialog box. Your model should appear as:

• Change the name of the first Transfer Function block by clicking on the words "Transfer
Fcn". A box and an editing cursor will appear on the block's name as shown below. Use
the keyboard (the mouse is also useful) to delete the existing name and type in the new
name, "PI Controller". Click anywhere outside the name box to finish editing.

• Similarly, change the name of the second Transfer Function block from "Transfer Fcn1"
to "Plant". Now, all the blocks are entered properly. Your model should appear as:
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

Connecting Blocks with Lines:


Now that the blocks are properly laid out, you will now connect them together. Follow these steps.

• Drag the mouse from the output terminal of the Step block to the upper (positive) input of
the Sum block. Let go of the mouse button only when the mouse is right on the input
terminal. Do not worry about the path you follow while dragging, the line will route itself.
You should see the following.

The resulting line should have a filled arrowhead. If the arrowhead is open, as shown below, it
means it is not connected to anything.
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

You can continue the partial line you just drew by treating the open arrowhead as an output
terminal and drawing just as before. Alternatively, if you want to redraw the line, or if the line
connected to the wrong terminal, you should delete the line and redraw it. To delete a line (or
any other object), simply click on it to select it, and hit the delete key.

• Draw a line connecting the Sum block output to the Gain input. Also draw a line from the
Gain to the PI Controller, a line from the PI Controller to the Plant, and a line from the
Plant to the Scope. You should now have the following.

• The line remaining to be drawn is the feedback signal connecting the output of the Plant to
the negative input of the Sum block. This line is different in two ways. First, since this line
loops around and does not simply follow the shortest (right-angled) route so it needs to be
drawn in several stages. Second, there is no output terminal to start from, so the line must
tap off of an existing line.
To tap off the output line, hold the Ctrl key while dragging the mouse from the point
on the existing line where you want to tap off. In this case, start just to the right of the
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

Plant. Drag until you get to the lower left corner of the desired feedback signal line as
shown below.

Now, the open arrowhead of this partial line can be treated as an output terminal. Draw a
line from it to the negative terminal of the Sum block in the usual manner.

• Now, you will align the blocks with each other for a neater appearance. Once connected,
the actual positions of the blocks do not matter, but it is easier to read if they are aligned.
To move each block, drag it with the mouse. The lines will stay connected and re-route
themselves. The middles and corners of lines can also be dragged to different locations.
Starting at the left, drag each block so that the lines connecting them are purely horizontal.
Also, adjust the spacing between blocks to leave room for signal labels. You should have
something like:
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

• Finally, you will place labels in your model to identify the signals. To place a label
anywhere in your model, double click at the point you want the label to be. Start by double
clicking above the line leading from the Step block. You will get a blank text box with an
editing cursor as shown below.

Type an r in this box, labeling the reference signal and click outside it to end editing. Label the
error (e) signal, the control (u) signal, and the output (y) signal in the same manner. Your final
model should appear as:
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

• To save your model, select Save As in the File menu and type in any desired model name.

Simulation
Now that the model is complete, you can simulate the model. Select Start from the Simulation
menu to run the simulation. Double-click on the Scope block to view its output. Hit the autoscale
button (binoculars) and you should see the following.

Taking Variables from MATLAB


In some cases, parameters, such as gain, may be calculated in M ATLAB to be used in a Simulink
model. If this is the case, it is not necessary to enter the result of the M ATLAB calculation directly
into Simulink. For example, suppose we calculated the gain in MATLAB in the variable K. Emulate
this by entering the following command at the MATLAB command prompt.
K=2.5
This variable can now be used in the Simulink Gain block. In your Simulink model, double-click
on the Gain block and enter the following in the Gain field. K
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

Close this dialog box. Notice now that the Gain block in the Simulink model shows the variable K
rather than a number.

Now, you can re-run the simulation and view the output on the Scope. The result should be the
same as before.
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual

Now, if any calculations are done in MATLAB to change any of the variable used in the Simulink
model, the simulation will use the new values the next time it is run. To try this, in M ATLAB,
change the gain, K, by entering the following at the command prompt.
K=5
Start the Simulink simulation again, bring up the Scope window, and hit the autoscale button. You
will see the following output which reflects the new, higher gain.

Besides variable, signals, and even entire systems can be exchanged between MATLAB and
Simulink.
Modeling and Simulation in Mechatronics (MT-373)
Lab Manual
Task 1:
Feedback summation graph with ++:

Graph with +-:


Modeling and Simulation in Mechatronics (MT-373)
Lab Manual
Task 2:
Block Diagram & Graph:

Conclusion:
In this laboratory session, we acquaint ourselves with Simulink, a potent tool designed for modeling,
simulating, and analyzing dynamic systems. We explore the fundamental components of Simulink,
such as blocks and connections, and gain proficiency in constructing systems by assembling and
adjusting blocks, and linking them with connections. Additionally, we engage in simulations and
discover methods to incorporate MATLAB variables into Simulink models. Through this lab, we
establish a fundamental comprehension of Simulink and its potential for modeling and simulating
systems.

You might also like