Title: MATLAB/Simulink
1MATLAB/Simulink
Basic MATLAB -
matrices operators script and function files flow
control plotting
Basics of Simulink -
state-space models (1st order ordinary diff
eqns) setting integration properties setting
initial conditions input types getting data to
the workspace
2Basic MATLAB
optional windows
workspace current directory
type commands here
command window
screen shot of the Matlab window
3Matlabs help features
type help at the command prompt and Matlab
returns a list of help topics
4Matlabs help features
gtgt help lang
Matlabs language constructs
5Matlabs help features
gtgt help for
how to use Matlabs for statement
6Matlabs help features
you can also access on-line help by clicking
the question mark in the toolbar
separate window
7MATLAB Variables
all variables are stored in 32bit floating point
format
no distinction between real and integer
gtgta 3
same assignment for a
gtgta 3.0
Matlab is case sensitive
gtgtA3
A?a
gtgta2
8MATLAB Variables
can use numbers and underscore in variable names
gtgtcase346.45
OK
gtgtcase_346.45
names must start with a letter
results in a syntax error
gtgt34case23.45
string (text) variables enclosed in single
quotes. The variable is stored as array of
characters
gtgttitleThis is the title
9MATLAB Variables
if a variable is defined, typing the variable
name returns its value
gtgta45.57
gtgta
a 45.57
Matlab returns the value
to clear a variable from memory
gtgta4
gtgtclear a
10MATLAB Variables
Matlab will echo commands unless a semi-colon
is used
gtgta23.2 gtgt
gtgta23.2 a 23.2 gtgt
Matlab echoes the command
11MATLAB Variables
Vectors
column vectors
row vectors
gtgta123 gtgta a 1 2 3
gtgta1,2,3 gtgta a 1 2 3
use semi-colon to separate rows
use comma to separate columns
12MATLAB Variables
Matrices
2-dimensional matrices
gtgta1,2,34,5,6 gtgta a 1 2 3
4 5 6
again, separate columns with commas and rows with
semi-colons
13MATLAB Variables
Indexing Matrix elements
A vector is a special type of matrix
row vector is a 1 x n matrix, 1 row n columns
column vector is a n x 1 matrix, n rows 1 column
gtgta1,2,3 gtgta(2) ans 2
could also reference by a(1,2)
note, a(2,1) would produce an error because a
only has one row
14MATLAB Variables
Indexing Matrix elements
more examples
gtgta1,2,34,5,6
assigning
addressing
gtgta(2,2)9 gtgta a 1 2 3 4 9
6
gtgta(2,3) ans 6
15MATLAB Variables
complex-valued numbers
Typically, the variable i or j is used to
represent the complex variable e.g.
Then, a complex number is represented as
z a ib
Re(z) a
Im(z) b
16MATLAB Variables
complex-valued numbers
Unless i or j has been previously defined, Matlab
assigns i and j the complex variable value
In Matlab, a complex variable is represented in
the following format
(assuming all variables are cleared)
gtgtz23i56 gtgtz z 23.00 56.00i
gtgtz23j56 gtgtz z 23.00 56.00i
Matlab always uses the symbol i to represent a
complex number
17MATLAB Variables
complex-valued numbers
What happens in this case?
What happens in this case?
gtgti3 gtgt z23i56 gtgtz z
gtgtasqrt(-1) gtgtz23a56 gtgtz z
18MATLAB Variables
complex-valued numbers
Note, a real-valued number is a special case of a
complex-valued number
assigning any element of a matrix as
complex-valued makes the entire matrix
complex-valued
gtgta1,2 gtgta a 1 2
gtgta(1)1i5 gtgta a 1.005.00i
2.000.00i
19MATLAB Variables
Advanced data types
n-dimensional arrays structures cell arrays
20MATLAB Operations
Basic operations
addition subtraction
- multiplication division right
division / left division \
?
gtgta3b4 gtgtc1a/b gtgtc2a\b
c10.75
so, be careful!
c21.3333.
21MATLAB Operations
Mixed Real and Complex valued Variables
if both variables are real-valued, a real-valued
result is obtained
if one variable is complex-valued, Matlab recasts
the real variable as complex and then performs
the operation. The result is complex-valued
however, the type casting is done internally, the
real-valued variable remains real after the
operation
22MATLAB Operations
Other (Scalar) Operations
Math representation
Matlab interpretation
gtgtzyx
gtgtyexp(x)
gtgtylog(x)
gtgtylog10(x)
gtgtyasin(x) gtgtyacos(x) gtgtyatan(x)
gtgtysin(x) gtgtycos(x) gtgtytan(x)
23MATLAB Operations
Examples
gtgtyx0.5 gtgtyx(1/2) gtgtysqrt(x)
All variables in the preceding operations can be
real or complex, negative or positive
for x lt 0, y is complex. Matlab assumes you
allow complex valued numbers. If y is not to be
complex, you must provide error checking.
24MATLAB Operations
Matrices
Only matrices of the same dimension can be added
and subtracted
For multiplication, the inner dimensions must be
the same
No error
Error
gtgtDAC gtgtDAB gtgtDBA
gtgtDAB gtgtDA-B gtgtDAC gtgtDCA
Matrix multiplication not commutative
25MATLAB Operations
Left(\) and Right(/) Matrix division
Math representation
Matlab interpretation
gtgtCA\B
gtgtCB/A
Remember, A must be square and full rank
(linearly independent rows/columns)
26MATLAB Operations
Matrix Transpose
Math representation
Matlab interpretation
gtgtCA
For complex-valued matrices, complex conjugate
transpose
gtgtba
gtgtBA
27MATLAB m-files
Two types of m-files
script files collection of commands that Matlab
executes when the script is run
function files collection of commands which
together represent a function, a procedure or a
method
Both types are separate files with a .m
extension
28MATLAB m-files
To create an m-file, open the Matlab text editor
Click on the page icon
The Matlab text editor window will open
29MATLAB m-files
Script Files
On the command line
In the script file named test.m
gtgtx3.0 gtgtyx2 gtgty y 9.0 gtgt
On the command line
gtgttest y 9.0 gtgt
30MATLAB m-files
Script Files
script files share the workspace memory
test.m script
gtgtx5.0 gtgttest gtgty y 25.0 gtgt
31MATLAB m-files
Script Files
script files can call other script files
inner.m script
gtgtoutter y 36.0 gtgt
outter.m script
32MATLAB m-files
Function Files
Matlab identifies function files from script
files by using the function and return
keywords
the name of the function file must be the same
name as the function
33MATLAB m-files
Function Files
The function file x2.m
gtgtr3 gtgtdx2(r) gtgtd d 9.0 gtgt
gtgthx2(4.2) gtgth h 17.64 gtgt
34MATLAB m-files
Function Files
Multiple Inputs and Outputs
outputs in square brackets,
inputs in parentheses ( )
35MATLAB m-files
Function Files
variables created in the function are not
retained in the workspace, except for the output
variables
the function does not have access to workspace
variables, except for the inputs
variables passed to the function are copies of
the workspace variables. Changing their value
inside the function has no effect on their value
in the workspace.
36MATLAB Flow Control
The while and if statements
if expression statements end
if expression statements1 else statements2 end
while expression statements end
Matlab evaluates expression as logical true or
false
false equivalent to zero true equivalent to
any non-zero number
statements, any valid Matlab command
37MATLAB Flow Control
evaluating expression
conditional operators
any valid equation
equal to lt less than gt greater than lt
less than or equal to gt greater than or equal
to not equal to
a4 b5 c5 if ab if b-c
True
False
watch out for round-off and word length error
logical operators
and or
if sin(0) if sin(pi) sin(pi) 1.22e-16
False
True
while(3lta)(alt5)
38MATLAB Flow Control
The for statement
for index start increment
end statements end
index, start, increment, and end do not need to
be integer valued
increment is optional, if increment is not
specified increment defaults to 1
index can be incremented positive (increment gt 0)
or negative (increment lt 0)
loop stops when index gt end (or index lt end)
39MATLAB Flow Control
example
script file to cycle through x values
function file to generate the y values
40MATLAB Plotting
Basic 2D plotting functions
plot(x1,y1,x2,y2,x3,y3.....) xlabel(x axis
name) ylabel(y axis name) title(graph name)
Additional functions
grid on grid off axis(xmin,xmax,ymin,ymax)
41MATLAB Plotting
example y sin(t)
the plot function alone
42MATLAB Plotting
example y sin(t)
script file to generate a graph of y sin(t)
43MATLAB Plotting
example y sin(t)
function file to generate a graph of y sin(t)
gtgtgraphsin gtgt
44MATLAB Plotting
Adding a Legend for multiple graphs
legend remembers the order the graphs were
plotted
45Simulink Basics
click the Simulink button
the Simulink window
46Simulink Basics
create a new model or open an existing one
click the new button
the simulink model window
47Simulink Example
Best thing to do is to go through an example
2nd order, constant coefficient, linear
differential equation
Response to a step command
48Simulink Example
Get an equivalent block diagram for the system
use mouse to drag blocks into the model window
and to connect blocks with arrows
use integrators to get dy/dt and y
49Simulink Example
add gain and summer blocks
50Simulink Example
add the step input block
51Simulink Example
add the output block
52Simulink Example
Now, double click the blocks to open and set the
blocks parameters
set gain value
set initial condition
set variable name
set output format to array
53Simulink Example
To set the simulation parameters.
select Simulation -gt Simulation Parameters
set Start and Stop time (in seconds)
set numerical integration type
54Simulink Example
Time to run the simulation
click the run button to begin the simulation
when the simulation is complete, Ready appears
at the bottom
55Simulink Example
Simulink will automatically save a variable named
tout to the workspace.
This variable contains the time values used in
the simulation, important for variable time
integration types
Simulink also will create the output variable(s)
you specified
56Simulink Example
gtgtplot(tout,yoft)
graph of the step response
57Simulink Example
Another approach to solving the 2nd order single
DOF problem, is to cast it as a 1st order 2 DOF
problem
In Matrix (or State Space) form.
58Simulink Example
1st Order State-Space Models
59Simulink Example
Multi Input Multi Output Systems
use Mux and Demux blocks to combine and extract
vector signals
specify number of signals