Sie sind auf Seite 1von 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
martin.brown@manchester.ac.uk
EEE Intranet
EE-M110 EFIS,

1/14

Background and Aims


Matlab and Simulink have become a defacto standard for system
modelling, simulation and control
It is assumed that you know how to use these tools and develop
Matlab and Simulink programs on this MSc.
Over the next two weeks, were 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 were 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

EE-M110 EFIS,

2/14

Resources

Mathworks 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 Matlab
Matlab 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.matlab
Matlab/Simulink student version (program and book ~50)
http://www.mathworks.com/academia/student_center
Other 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.

EE-M110 EFIS,

3/14

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

Variable
browser

Command
window

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
Command history

EE-M110 EFIS,

4/14

Matlab Programming Environment


Matlab (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
EE-M110 EFIS,

5/14

Basic Matlab Operations


>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>

% This is a comment,
y = 5*3 + 2^2;
x = [1 2 4 5 6];
x1 = x.^2;
E = sum(abs(x).^2);
P = E/length(x);
x2 = x(1:3);
z = 1+i;
a = real(z);
b = imag(z);
plot(x);
t = 0:0.1:100;
x3=exp(-t).*cos(t);
plot(t, x3, x);

EE-M110 EFIS,

it starts with a %
% simple arithmetic
% create the vector x
% square each element in x
% Calculate signal energy
% Calculate av signal power
% Select first 3 elements in x
% Create a complex number
% Pick off real part
% Pick off imaginary part
% Plot the vector as a signal
% Generate sampled time
% Generate a discrete signal
% Plot points

6/14

Introduction to Simulink
Simulink 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)

vs, vc

Signals and systems are simulated over a particular time.

EE-M110 EFIS,

7/14

Starting and Running Simulink


Type the following at the Matlab
command prompt
>> simulink
The 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

EE-M110 EFIS,

8/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

EE-M110 EFIS,

9/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
EE-M110 EFIS,

10/14

Day 1: Matrix Programming in Matlab


Full 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

EE-M110 EFIS,

11/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

EE-M110 EFIS,

12/14

Day 1: Laboratory
Remember

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 reference
Questions
1. 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-3
3. 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 = 0
5. Evaluate, using a for loop, the first twenty numbers of the Fibonacci series
xn = xn-1 + xn-2,
x0 = 1, x1 = 1
6. Create the two vectors [1 2 3], [4 5 6] and calculate their inner product
7. 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

EE-M110 EFIS,

13/14

Day 2: Laboratory
1.
2.
3.
4.

5.
6.
7.
8.
9.
10.
11.
12.
13.

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 line
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.
Write a function that reverses the order of letters in a string, and returns the new string.
Use the eval() Matlab function to evaluate strings such as:
exp1 = 5*6 + 7;
Note this, and feval(), is very useful for dynamic programming
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.
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
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.
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.
Create a GUI that prompts the user for a number and then displays double that number next to the
entered value.
Start Simulink and using a sin() source and a scope sink, view the signal over 10 seconds.
Change the frequency of the sin() source and again compare the results. Next change the
simulation length.
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.
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).

EE-M110 EFIS,

14/14

Das könnte Ihnen auch gefallen