Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Signal processing in sumulink, Lecture notes of Digital Signal Processing

tutorial for simulink lab , introduction and building simple models

Typology: Lecture notes

2016/2017

Uploaded on 12/19/2017

dr-charu-pathak
dr-charu-pathak 🇮🇳

1 document

1 / 17

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
© Christopher W. Lum lum@u.washington.edu Page 1/17
Christopher Lum
lum@u.washington.edu
Simulink Tutorial
Introduction
This document is designed to act as a tutorial for an individual who has had no prior
experience with Simulink. It is assumed that the reader has already read through the
Beginner and Intermediate MATLAB Tutorials. For any questions or concerns, please
contact
Christopher Lum
lum@u.washington.edu
Starting the Program
1. Start MATLAB.
2. Simulink is an extra toolbox that runs on top of MATLAB. To start this, type
“simulink” in the Command Window or click on the Simulink icon.
Figure 1: Starting Simulink using icon or Command Window
3. The Simulink interface should now appear as shown below in Figure 2.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download Signal processing in sumulink and more Lecture notes Digital Signal Processing in PDF only on Docsity!

Christopher Lum lum@u.washington.edu

Simulink Tutorial

Introduction

This document is designed to act as a tutorial for an individual who has had no prior experience with Simulink. It is assumed that the reader has already read through the Beginner and Intermediate MATLAB Tutorials. For any questions or concerns, please contact

Christopher Lum lum@u.washington.edu

Starting the Program

  1. Start MATLAB.
  2. Simulink is an extra toolbox that runs on top of MATLAB. To start this, type “simulink” in the Command Window or click on the Simulink icon.

Figure 1: Starting Simulink using icon or Command Window

  1. The Simulink interface should now appear as shown below in Figure 2.

Figure 2: Simulink interface

  1. Start a new Simulink model using File > New > Model

METHOD 1: 2nd^ Order Ordinary Differential Equation

  1. Let’s use Simulink to simulate the response of the Mass/Spring/Damper system described in Intermediate MATLAB Tutorial document. Recall that the second order differential equation which governs the system is given by

( ) zt m

c zt m

k ut m

z && t = − − & Equation 1

Figure 4: Model with two integrators and a step function

  1. We now have the signals (^) u ( t ), (^) z ( t ), and (^) z &( (^) t ), we need to multiply these by the

values 1 / m , k / m , and c / m , respectively. For this problem, let k = 2 , c = 0. 5 , and m = 1. We can multiply the signals using a ‘gain’ block which is found in the ‘Math Operations’ group. Draw three ‘gain’ blocks into your model and connect them appropriately. (Hint: You can flip the orientation of the block by right click

Format > Flip Block).

Figure 5: Model with integrators, step function, and gain blocks.

  1. We can modify the multiplication factor of each ‘Gain’ block by double clicking and modify the parameters. Since this is scalar multiplication, ensure that the ‘Multiplication’ field is set to ‘Element-wise (K.*u)’ as shown in Figure 6.

Figure 6: Parameters for the ‘Gain’ blocks.

  1. The last thing we need to do is to add all the signals together using ‘Sum’ block. Drag one into your model and modify the parameters as shown in Figure 7

Figure 7: Parameters for the 'Sum' block

  1. Connect the signals appropriately.
  1. We can now simulate the system. This can be done many ways as listed below

a. Click on the “Run” button b. Go Simulation > Start c. Using the “sim” command from the Command window.

For now, simply use option a or b, we will visit using option c later.

  1. We would like to look at the response of the system using the scope. Double click on the scope block to open it up. Autoscale the plot so that you can see the response (the autoscale button looks like a pair of binoculars). You should see something similar to Figure 10.

a) u(t) signal (^) b) z(t) signal

Figure 10: Output from scope outputs

METHOD 2: State Space Representation

Recall that in addition to using a second order ODE to model the system, we can use a state space representation of this system of

x &^ = Ax + Bu Equation 2

y = Cx + Du

where (^)  

k m c m

A

m

B

C =( 1 0 ) D = 0

Once again, let k = 2 , c = 0. 5 , and m = 1.

  1. Start a new, blank model. Click on the “State-Space” block and drag this into your blank model. Your model should now look like Figure 11.

Figure 11: Simulink model with just state space block added

  1. We now need to define the parameters of this block. Double click on the block to enter the parameters.

Enter in the A, B, C, and D matrices. Leave the initial conditions as 0. (Note that

this is the initial state vector, x ( 0 )and since there are 2 states, 0 actually implies

x^ (^0 )^ = ( 0 0 ) T )

  1. Now, let’s subject this system to a unit step input which occurs at t = 1 second. Click on “Sources” in the Simulink interface and find the “Step” block. Drag this into the model and connect the output of the step to the input of the state space model (this can be done by clicking on the Step then holding Ctrl and then clicking on the state-space block).
  2. We would like to be able to view to output of the system so Click on “Sinks” in the Simulink interface and find the “Scope” block. Drag this into the model and connect the output of the state-space block to the input of the sink. Your simulink model should now look like
  1. Although this is nice for simple analysis, we would like to interface this with Matlab so we can analyze the data using Matlab functions.

Let’s analyze how the system response changes if we use different damping coefficients of c = 0.5, 1.0 and 1.5.

This would be very tedious if we had to change the A matrix each time by hand and then simulate the system and then look at the plot. Therefore, we will use the m-file to write a script which will do this for us.

  1. Start a new m-file.
  2. Let’s first analyze the system response when c = 0.5. Define the A, B, C, and D matrices in the m-file. A sample code is shown below
  3. We can actually use variables in all the simulink blocks provided that they are defined in the Workspace before the model is run. Now change the parameters of the State-space block to match the matrices that you defined in the m-file. The state space block should like similar to

Figure 14: State space block parameters using variables as parameters

  1. We need to export the data from simulink to Matlab so that we can plot it. Namely, we would like to see both the input and output of the system. To do this, we use the “To Workspace” block which can be found in the Sinks library. Drag 2 of these blocks into your model and connect them to the input and output (Note: to make a branch of a signal, right click on the signal and then drag to the second connection)
  2. We need to modify the parameters of these two blocks slightly. The appropriate parameters are shown below

Variable Name Class Comments sim_u struct array Created by 1st^ “To Workspace” block sim_y struct array Created by 2nd^ “To Workspace” block tout double array Automatically created by Simulink when you run a model

  1. Write code to run the model from the m-file using the “sim” command. Also, write code to extract the data (namely the input and output of the model). A sample code is shown below.

Functions: sim Note: For our purposes, use sim with only 1 argument, the name of the model which you are trying to run

  1. Find the maximum response of the system. That is, find max(y). A sample code is shown below

Functions: max, find, Note: Here is an example of how to use these functions

  1. Plot both the input and output of the system on the same graph. Plot the input as a thick blue line and plot the output as a thick red line. Mark the maximum response of the system with a large, thick, black x. Label the plot appropriately. Add a grid and a legend. In the legend, report what the maximum value of y(t) is. A sample code and the output (after being exported as a .jpg) is shown below

Functions: figure, hold on, plot, grid, xlabel, ylabel,legend, num2str Note: The num2str function is one of the most useful plotting functions. Be sure that you understand how to use it.

The output of this code should appear as

  1. Now let’s see how the response of the system changes with different damping coefficients. Simulate and plot the response of the system with three different damping coefficients of c = 0.5, 1.0, and 1.5. We can use a for loop to make the coding easier. A sample code is shown below.

Functions: for, length, … Note: The “…” symbol mean continue typing on the next line. This allows a very long line of code be broken up into two separate lines.

The output should look like

Version History: 09/28/04: Created: 11/23/05: Updated: made this format match other to-do documents and removed references to AA547. 12/01/05: Updated: changed header to match how-to template 12/09/05: Updated: Made changes to layout and added footer. 10/31/06: Updated: Fixed typo of "Tout" to "tout" 11/01/06: Updated: Touched up some of the graphics. 09/15/09: Updated: Added 2nd^ order ODE method. 09/25/10: Updated: Minor changes