introduction to matlab and simulink

14
EE-M110 EFIS, W1 06- 07 1/14 Introduction to Matlab and Simulink Dr Martin Brown E1k, Control Systems Centre School of Electrical and Electronic Engineering University of Manchester Tel: 0161 306 4672 [email protected] EEE Intranet

Upload: marvin-salas

Post on 04-Jan-2016

272 views

Category:

Documents


23 download

DESCRIPTION

Introduction to Matlab and Simulink. Dr Martin Brown E1k, Control Systems Centre School of Electrical and Electronic Engineering University of Manchester Tel: 0161 306 4672 [email protected] EEE Intranet. Background and Aims. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 1/14

Introduction to Matlab and Simulink

Dr Martin Brown

E1k, Control Systems Centre

School of Electrical and Electronic Engineering

University of Manchester

Tel: 0161 306 4672

[email protected]

EEE Intranet

Page 2: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 2/14

Background and AimsMatlab and Simulink have become a defacto standard for system

modelling, simulation and controlIt is assumed that you know how to use these tools and develop

Matlab and Simulink programs on this MSc.

Over the next two weeks, we’re going to have a rapid introduction to Matlab and Simulink covering:

• Introduction to Matlab and help!• Matrix programming using Matlab• Structured programming using Matlab• System (and signal) simulation using Simulink• Modelling and control toolboxes in Matlab

Note that we’re not covering everything to do with Matlab and Simulink in these 4*2 hour lectures

Also, after every lecture block in this module, there is a 1 hour lab scheduled – programming is a practical activity

Page 3: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 3/14

ResourcesMathworks Information• Mathworks: http://www.mathworks.com• Mathworks Central: http://www.mathworks.com/matlabcentral • http://www.mathworks.com/applications/controldesign/• http://www.mathworks.com/academia/student_center/tutorials/launchpad.html Matlab Demonstrations• Matlab Overview: A demonstration of the Capabilities of Matlab

http://www.mathworks.com/cmspro/online/4843/req.html?13616• Numerical Computing with Matlab http://www.mathworks.com/cmspro/online/7589/req.html?

16880• Select Help-Demos in MatlabMatlab Help• Select “Help” in Matlab. Extensive help about Matlab, Simulink and toolboxes• Matlab Homework Helper http://www.mathworks.com/academia/student_center/homework/• Newsgroup: comp.soft-sys.matlabMatlab/Simulink student version (program and book ~£50)

http://www.mathworks.com/academia/student_centerOther Matlab and Simulink Books• Mastering Matlab 6, Hanselman & Littlefield, Prentice Hall• Mastering Simulink 4, Dabney & Harman, Prentice Hall• Matlab and Simulink Student Version Release 14• lots more on mathworks, amazon, …. It is important to have one reference book.

Page 4: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 4/14

Introduction to Matlab

Click on the Matlab icon/start menu initialises the Matlab environment:

The main window is the dynamic command interpreter which allows the user to issue Matlab commands

The variable browser shows which variables currently exist in the workspace

Variable browser

Commandwindow

Command history

Page 5: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 5/14

Matlab Programming EnvironmentMatlab (Matrix Laboratory) is a

dynamic, interpreted, environment for matrix/vector analysis

Variables are created at run-time, matrices are dynamically re-sized, …

User can build programs (in .m files or at command line) using a C/Java-like syntax

Ideal environment for model building, system identification and control (both discrete and continuous time

Wide variety of libraries (toolboxes) available

Page 6: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 6/14

Basic Matlab Operations

>> % This is a comment, it starts with a “%”

>> y = 5*3 + 2^2; % simple arithmetic

>> x = [1 2 4 5 6]; % create the vector “x”

>> x1 = x.^2; % square each element in x

>> E = sum(abs(x).^2); % Calculate signal energy

>> P = E/length(x); % Calculate av signal power

>> x2 = x(1:3); % Select first 3 elements in x

>> z = 1+i; % Create a complex number

>> a = real(z); % Pick off real part

>> b = imag(z); % Pick off imaginary part

>> plot(x); % Plot the vector as a signal

>> t = 0:0.1:100; % Generate sampled time

>> x3=exp(-t).*cos(t); % Generate a discrete signal

>> plot(t, x3, ‘x’); % Plot points

Page 7: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 7/14

Introduction to SimulinkSimulink is a graphical, “drag and drop” environment for building

simple and complex signal and system dynamic simulations.

It allows users to concentrate on the structure of the problem, rather than having to worry (too much) about a programming language.

The parameters of each signal and system block is configured by the user (right click on block)

Signals and systems are simulated over a particular time.

v s,

v c

t

Page 8: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 8/14

Starting and Running Simulink

Type the following at the Matlab command prompt

>> simulinkThe Simulink library should appear

Click File-New to create a new workspace, and drag and drop objects from the library onto the workspace.

Selecting Simulation-Start from the pull down menu will run the dynamic simulation. Click on the blocks to view the data or alter the run-time parameters

Page 9: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 9/14

Signals and Systems in Simulink

Two main sets of libraries for building simple simulations in Simulink:

• Signals: Sources and Sinks• Systems: Continuous and Discrete

Page 10: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 10/14

Basic Simulink Example

Copy “sine wave” source and “scope” sink onto a new Simulink work space and connect.

Set sine wave parameters modify to 2 rad/sec

Run the simulation:Simulation - Start

Open the scope and leave open while you change parameters (sin or simulation parameters) and re-run

Many other Simulink demos …

Page 11: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 11/14

Day 1: Matrix Programming in MatlabFull notes/syntax will be recorded in the diary• Setting directory and diary• Simple maths• Matlab workspace, and help• Variables, comments, complex numbers and functions• Matlab desktop and management• Script m-files• Arrays

– Creating and assigning arrays, standard arrays– Array indexing and orientation– Array operators– Array manipulation– Array sorting, sub-array searching and manipulation functions– Array size and memory utilization

• Control structures– for and while loops– if else and switch decisions

Page 12: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 12/14

Day 2: Structured Matlab Programming

Full notes/syntax will be recorded in the diary• Functions

– Input and output arguments– File structure, search path– Exception handling– Debugging and profiling

• Strings• Dynamic function and expression evaluation• Cell arrays • Data structures• Data plotting (2D/3D), figures • GUIDE• Simulink

Page 13: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 13/14

Day 1: LaboratoryRemember• Change directory to your local filespace so that your work is saved• Turn on the diary on to save the commands and results from the lab session to

a file for future referenceQuestions1. Use the help and lookfor commands and look at the normal Matlab help

section in the pull down menu (F1). How does the sin() function work? 2. Evaluate expressions such as 7*8/9, 8^2, 6+5-33. Using the in-built Matlab functions, evaluate sin(0), sin(pi/2), abs(-3)4. Using the editor, write a Matlab script to solve the quadratic equation

2x2 -10x + 12 = 05. Evaluate, using a for loop, the first twenty numbers of the Fibonacci series

xn = xn-1 + xn-2, x0 = 1, x1 = 16. Create the two vectors [1 2 3], [4 5 6] and calculate their inner product7. Create the 3*3 matrix A = [1 2 3; 4 5 6; 7 8 9] and the column vector

b = [1 2 3], and multiply the two together A*b.8. Solve the equation A*x = b, where A and b are given in (6)9. Modify (8), so that you neglect the 3rd row & column of information.10. … http://www.facstaff.bucknell.edu/maneval/help211/exercises.html

Page 14: Introduction to  Matlab and Simulink

EE-M110 EFIS, W1 06-07 14/14

Day 2: Laboratory1. Write a function that returns the two roots of a quadratic equation, given the three arguments a, b and

c. Test the function from the command line2. Write a function that returns the mean and standard deviation of a vector of numbers (input vector).

While Matlab supplies the mean() and std() functions, try just using the sum() and length() functions.

3. Write a function that reverses the order of letters in a string, and returns the new string.4. Use the eval() Matlab function to evaluate strings such as:

exp1 = ‘5*6 + 7’;Note this, and feval(), is very useful for dynamic programming

5. Use a cell array to store a list of expressions, stored as strings. Then use eval() and a for loop to iterate over the expressions and evaluate them.

6. Create two simple data structures to modify your solution to (1). Use one data structure to pack the parameters of the quadratic equation into a single variable, and use another to return the roots inside a single data structure

7. Create the vector 0:pi/20:2*pi and use it to sample the sin() function. Plot the results and edit the figure window to put labels on the figure. Save the figure (.fig) and export a .jpg file.

8. Use the meshgrid() function to sample a 2 dimensional input space between 0 and 2, then use the data to sample the function sin(x1)*cos(x2). Plot the results using the mesh() function.

9. Create a GUI that prompts the user for a number and then displays double that number next to the entered value.

10. Start Simulink and using a sin() source and a scope sink, view the signal over 10 seconds.11. Change the frequency of the sin() source and again compare the results. Next change the

simulation length.12. Build the first order system H(s) = 1/(1+3s) in the model and pass a sin() signal through the

system. Make sure you run the simulation for a long enough time for the transients to die down and the system to settle.

13. Replace the first order system in (6) with the second order system, what is the difference when the system settles down H(s) = 1/(1+2s+s^2).