2.1K views

Uploaded by Asterix

How to use Matlab?

save

- Matlab Tutorial6
- Downey (2011) - Physical Modelling With Matlab
- Matlab Tutorial2
- Matlab Basic
- Matlab Tutorial5
- MATLAB Fundamentals
- matlab
- Matlab for Engineeing & Life Science
- Matlab Tutorial1
- Matlab Tutorial3
- matlab
- matlab
- MATLAB
- matlab
- MATLAB Succinctly
- RelativeResourceManager
- Matlab programming
- matlab
- Practica 1 Datos
- matlab
- Matlab Intro 1
- Matlab Tutorial
- Interactive Computing With MATLAB
- Lecture 03
- Advanced Control using MATLAB
- Matlab
- Matlab Guide
- MatlabTutorial2.pdf
- Pract 1
- Matlab _ Course.pdf
- Introduction to Matlab Version 2.3
- A Beginners Handbook to GNU/Linux
- Partial Differential Equations in MATLAB
- Introduction to Matlab
- Matlab Tutorial1
- Matlab Tutorial3

You are on page 1of 59

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

Basic MATLAB

optional windows

workspace

current directory

type commands here

command window

**screen shot of the Matlab window
**

Matlab’s help features

**type “help” at the command prompt
**

and Matlab returns a list of help topics

Matlab’s help features

>> help lang

**Matlab’s language constructs
**

Matlab’s help features

>> help for

**how to use Matlab’s “for” statement
**

Matlab’s help features

you can also access “on-line” help by clicking the

question mark in the toolbar

separate window

MATLAB Variables

all variables are stored in 32bit floating point format

no distinction between real and integer

>>a = 3;

same assignment for “a”

>>a = 3.0;

**Matlab is case sensitive
**

>>A=3;

A≠a

>>a=2;

MATLAB Variables

**can use numbers and underscore in variable names
**

>>case34=6.45;

OK

>>case_34=6.45;

names must start with a letter

>>34case=23.45; results in a syntax error

**string (text) variables enclosed in single quotes.
**

The variable is stored as array of characters

>>title=‘This is the title’;

MATLAB Variables

**if a variable is defined,
**

typing the variable name returns its value

>>a=45.57;

>>a

a=

45.57 Matlab returns the value

**to clear a variable from memory
**

>>a=4

>>clear a

MATLAB Variables

Matlab will “echo” commands unless a semi-colon is used

>>a=23.2;

>>

>>a=23.2

a=

23.2 Matlab echoes the command

>>

MATLAB Variables

Vectors

column vectors row vectors

⎧1 ⎫

⎪ ⎪

a = ⎨2 ⎬ a = {1 2 3}

⎪3 ⎪

⎩ ⎭

>>a=[1;2;3]; >>a=[1,2,3];

>>a >>a

a= a=

1 1 2 3

2

3

use semi-colon use comma

to separate rows to separate columns

MATLAB Variables

Matrices

⎡1 2 3⎤

2-dimensional matrices a=⎢ ⎥

⎣ 4 5 6 ⎦

>>a=[1,2,3;4,5,6];

>>a

a=

1 2 3

4 5 6

**again, separate columns with commas and rows with semi-colons
**

MATLAB 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

>>a=[1,2,3];

>>a(2) could also reference by a(1,2)

ans =

2 note, a(2,1) would produce an error

because “a” only has one row

MATLAB Variables

Indexing Matrix elements

more examples

⎡1 2 3⎤

a=⎢ ⎥ >>a=[1,2,3;4,5,6];

⎣ 4 5 6 ⎦

assigning

addressing

>>a(2,2)=9;

>>a(2,3) >>a

ans = a=

6 1 2 3

4 9 6

MATLAB Variables

complex-valued numbers

**Typically, the variable “i” or “j” is used to represent the
**

complex variable; e.g.

i = −1

Then, a complex number is represented as

z = a + ib Re(z) = a

Im(z) = b

MATLAB 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)
**

>>z=23+i*56; >>z=23+j*56;

>>z >>z

z= z=

23.00 + 56.00i 23.00 + 56.00i

**Matlab always uses the symbol “i” to represent a complex number
**

MATLAB Variables

complex-valued numbers

**What happens in this case? What happens in this case?
**

>>i=3; >>a=sqrt(-1);

>> z=23+i*56; >>z=23+a*56;

>>z >>z

z= z=

MATLAB 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

>>a=[1,2]; >>a(1)=1+i*5;

>>a >>a

a= a=

1 2 1.00+5.00i 2.00+0.00i

MATLAB Variables

**Advanced data types
**

n-dimensional arrays

structures

cell arrays

MATLAB Operations

Basic operations

addition +

subtraction -

multiplication *

division

right division /

?

left division \

>>a=3;b=4;

>>c1=a/b; c1=0.75

so, be careful!

>>c2=a\b; c2=1.3333….

MATLAB 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

MATLAB Operations

Other (Scalar) Operations

Math representation Matlab interpretation

z = yx >>z=y^x;

y = ex >>y=exp(x);

y = ln(x) >>y=log(x);

y = log(x) >>y=log10(x)

**y = sin(x) y = sin −1 (x) >>y=sin(x); >>y=asin(x);
**

y = cos(x) y = cos −1 (x) >>y=cos(x); >>y=acos(x);

y = tan(x) y = tan −1 (x) >>y=tan(x); >>y=atan(x);

MATLAB Operations

Examples

>>y=x^0.5;

y= x >>y=x^(1/2);

>>y=sqrt(x);

**All variables in the preceding operations can be
**

real or complex, negative or positive

**for x < 0, y is complex. Matlab assumes you allow complex
**

valued numbers. If y is not to be complex, you must

provide error checking.

MATLAB Operations

Matrices

Only matrices of the same dimension can be added and subtracted

For multiplication, the inner dimensions must be the same

⎡4 5⎤

⎡1 2 3⎤ ⎡2 3 4⎤

A=⎢ ⎥ B=⎢ ⎥ C = ⎢6 7 ⎥

⎣ 4 5 6 ⎦ ⎢ ⎥

⎣ 5 6 7 ⎦ ⎢⎣8 9 ⎥⎦

No error Error

>>D=A+B; >>D=A+C;

>>D=A-B; >>D=A*B;

>>D=A*C; Matrix multiplication

>>D=B*A;

>>D=C*A; not commutative

MATLAB Operations

Left(\) and Right(/) Matrix “division”

Math representation Matlab interpretation

C = A −1B >>C=A\B;

C = BA −1 >>C=B/A;

**Remember, A must be square and full rank
**

(linearly independent rows/columns)

MATLAB Operations

Matrix Transpose

**Math representation Matlab interpretation
**

C = AT >>C=A’;

For complex-valued matrices, complex conjugate transpose

⎡1 2 3⎤

A=⎢ ⎥ a = [1 + j2 3 + j4]

⎣ 4 5 6 ⎦

>>B=A’; >>b=a’;

⎡1 4⎤

B = ⎢2 5⎥ ⎡1 − j2 ⎤

⎢ ⎥ b=⎢ ⎥

⎣ 3 − j4 ⎦

⎢⎣ 3 6 ⎥⎦

MATLAB 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
**

MATLAB m-files

To create an m-file, open the Matlab text editor

Click on the “page” icon

**The Matlab text editor window will open
**

MATLAB m-files

Script Files

**On the command line In the script file named test.m
**

>>x=3.0;

>>y=x^2;

>>y

y =

9.0

>>

On the command line

>>test

y =

9.0

>>

MATLAB m-files

Script Files

script files share the workspace memory

**>>x=5.0; test.m script
**

>>test

>>y

y =

25.0

>>

MATLAB m-files

Script Files

**script files can call other script files
**

inner.m script

>>outter

y =

outter.m script

36.0

>>

MATLAB 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

MATLAB m-files

Function Files

The function file x2.m

>>r=3; >>h=x2(4.2);

>>d=x2(r); >>h

>>d h =

d = 17.64

9.0 >>

>>

MATLAB m-files

Function Files

Multiple Inputs and Outputs

**outputs in square brackets, [ ] inputs in parentheses ( )
**

MATLAB 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.

MATLAB Flow Control

The “while” and “if” statements

**while expression if expression if expression
**

statements statements statements1

end end else

statements2

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
**

MATLAB Flow Control

evaluating expression

**any valid equation conditional operators
**

a=4; == equal to

b=5; < less than

c=5; > greater than

if a+b “True” <= less than or equal to

if b-c “False” >= greater than or equal to

~= not equal to

watch out for round-off

and word length error logical operators

if sin(0) “False” & and

if sin(pi) “True” | or

sin(pi) = 1.22e-16

while(3<=a)&(a<=5)

MATLAB 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 > 0) or
**

negative (increment < 0)

**loop stops when index > end (or index < end)
**

MATLAB Flow Control

example

script file to cycle through x values

**function file to generate the y values
**

MATLAB 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])

MATLAB Plotting

example y = sin(t)

**the “plot” function alone
**

MATLAB Plotting

example y = sin(t)

**script file to generate
**

a graph of y = sin(t)

MATLAB Plotting

example y = sin(t)

**function file to generate
**

a graph of y = sin(t)

>>graphsin

>>

MATLAB Plotting

Adding a Legend for multiple graphs

“legend” remembers

the order the graphs

were plotted

Simulink Basics

click the Simulink button

**the Simulink window
**

Simulink Basics

**create a new model or
**

click the “new” button open an existing one

**the simulink model window
**

Simulink Example

Best thing to do is to go through an example

2nd order, constant coefficient, linear differential equation

y + c1y& + c0 y = b0f (t)

&&

**Response to a “step” command
**

Simulink 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
**

Simulink Example

**add gain and summer blocks
**

Simulink Example

**add the step input block
**

Simulink Example

**add the output block
**

Simulink Example

Now, double click the blocks to open and set the block’s parameters

set gain value

set initial condition

**set variable name
**

set output format to “array”

Simulink Example

To set the simulation parameters….

select Simulation -> Simulation Parameters

**set Start and Stop time (in seconds)
**

set numerical integration type

Simulink Example

Time to run the simulation

click the “run” button to begin the simulation

**when the simulation is complete, “Ready” appears at the bottom
**

Simulink 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
**

Simulink Example

>>plot(tout,yoft)

**graph of the step response
**

Simulink Example

Another approach to solving the 2nd order single DOF

problem, is to cast it as a 1st order 2 DOF problem

x1 = y x& 1 = x 2

x 2 = y& x& 2 = bo f − c1x 2 − co x1

**In Matrix (or State Space) form…. x& = Ax + Bu
**

y = Cx

⎧ x1 ⎫ ⎡ 0 1 ⎤ ⎡0⎤

x=⎨ ⎬ A=⎢ B=⎢ ⎥

⎩x 2 ⎭ ⎣ −co −c1 ⎥⎦ ⎣ bo ⎦

u=f C = [1 0]

Simulink Example

1st Order State-Space Models

Simulink Example

Multi Input Multi Output Systems

use Mux and Demux blocks to combine and extract vector signals

specify number of signals

- Matlab Tutorial6Uploaded byAsterix
- Downey (2011) - Physical Modelling With MatlabUploaded byGeorges Kouroussis
- Matlab Tutorial2Uploaded byAsterix
- Matlab BasicUploaded byAsterix
- Matlab Tutorial5Uploaded byAsterix
- MATLAB FundamentalsUploaded byVincent ISOZ
- matlabUploaded byतरुण भारत
- Matlab for Engineeing & Life ScienceUploaded bylagnajit_lucky_30602
- Matlab Tutorial1Uploaded byAsterix
- Matlab Tutorial3Uploaded byAsterix
- matlabUploaded bySajidh M Shamsudeen
- matlabUploaded bysvio
- MATLABUploaded byJhonattan Pardo
- matlabUploaded byEduardo Cudia
- MATLAB SuccinctlyUploaded byHim24
- RelativeResourceManagerUploaded byYipeng Chamberlain Chu
- Matlab programmingUploaded bywkpfckgw
- matlabUploaded byMahesh Makwana
- Practica 1 DatosUploaded byRicardo Palafox
- matlabUploaded byPujara Manish
- Matlab Intro 1Uploaded byshervinsh
- Matlab TutorialUploaded bynityanandsharma
- Interactive Computing With MATLABUploaded byMelike Erdoğan
- Lecture 03Uploaded bysofianina05
- Advanced Control using MATLABUploaded byStuff84
- MatlabUploaded byAndrew
- Matlab GuideUploaded byOluwafisayo Olajide Isimijola
- MatlabTutorial2.pdfUploaded byIloaie Maria Georgeta
- Pract 1Uploaded byRanjit Sinh Rathod
- Matlab _ Course.pdfUploaded byMohamed Elfeky