an introductory on matlab and simulink muhamad zahim sujod [email protected] ext : 2312
TRANSCRIPT
![Page 1: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/1.jpg)
An Introductory on An Introductory on MATLAB and SimulinkMATLAB and Simulink
Muhamad Zahim Sujod
Ext : 2312
![Page 2: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/2.jpg)
Introduction to Introduction to MATLAB and SimulinkMATLAB and Simulink
What can you gain from the course ?
Know basics of MATLAB/Simulink– know how to solve simple problems
Know what MATLAB/Simulink is
Know how to get started with MATLAB/Simulink
Be able to explore MATLAB/Simulink on Be able to explore MATLAB/Simulink on your own !your own !
![Page 3: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/3.jpg)
Introduction to Introduction to MATLAB and SimulinkMATLAB and Simulink
Contents
Built in functions
Getting Started Vectors and Matrices
Introduction
SimulinkModeling examples
MATLAB
SIMULINK
M–files : script and functions
![Page 4: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/4.jpg)
IntroductionIntroductionMATLAB – MATrix LABoratory
– Initially developed by a lecturer in 1970’s to help students learn linear algebra.– It was later marketed and further developed under MathWorks Inc. (founded in
1984) – www.mathworks.com– Matlab is a software package which can be used to perform analysis and solve
mathematical and engineering problems.– It has excellent programming features and graphics capability – easy to learn and
flexible. – Available in many operating systems – Windows, Macintosh, Unix, DOS– It has several tooboxes to solve specific problems.
![Page 5: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/5.jpg)
IntroductionIntroductionSimulink
– Used to model, analyze and simulate dynamic systems using block diagrams.
– Fully integrated with MATLAB , easy and fast to learn and flexible.
– It has comprehensive block library which can be used to simulate linear, non–linear or discrete systems – excellent research tools.
– C codes can be generated from Simulink models for embedded applications and rapid prototyping of control systems.
![Page 6: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/6.jpg)
Getting StartedGetting StartedRun MATLAB from Start Programs MATLAB Depending on version used, several windows appear
• For example in Release 13 (Ver 6), there are several windows – command history, command, workspace, etc
• For Matlab Student – only command window
Command window • Main window – where commands are entered
![Page 7: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/7.jpg)
Example of MATLAB Release 13 desktop
![Page 8: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/8.jpg)
Variables Variables – Vectors and Matrices – – Vectors and Matrices –
ALL variables are matrices
Variables
•They are case–sensitive i.e x X
•Their names can contain up to 31 characters
•Must start with a letter
Variables are stored in workspace
e.g. 1 x 1 4 x 1 1 x 4 2 x 4
4239
6512 7123
3
9
2
3 4
![Page 9: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/9.jpg)
Vectors and MatricesVectors and Matrices How do we assign a value to a variable?
>>> v1=3
v1 =
3
>>> i1=4
i1 =
4
>>> R=v1/i1
R =
0.7500
>>>
>>> whos
Name Size Bytes Class
R 1x1 8 double array
i1 1x1 8 double array
v1 1x1 8 double array
Grand total is 3 elements using 24 bytes
>>> who
Your variables are:
R i1 v1
>>>
![Page 10: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/10.jpg)
Vectors and MatricesVectors and Matrices
1816141210
B
How do we assign values to vectors?>>> A = [1 2 3 4 5]A = 1 2 3 4 5 >>>
>>> B = [10;12;14;16;18]
B =
10
12
14
16
18
>>>
A row vector – values are separated by spaces
A column vector – values are separated by semi–colon (;)
54321A
![Page 11: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/11.jpg)
Vectors and MatricesVectors and Matrices
If we want to construct a vector of, say, 100 elements between 0 and 2 – linspace
>>> c1 = linspace(0,(2*pi),100);
>>> whos
Name Size Bytes Class
c1 1x100 800 double array
Grand total is 100 elements using 800 bytes
>>>
How do we assign values to vectors?
![Page 12: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/12.jpg)
Vectors and MatricesVectors and Matrices How do we assign values to vectors?
If we want to construct an array of, say, 100 elements between 0 and 2 – colon notation
>>> c2 = (0:0.0201:2)*pi;
>>> whos
Name Size Bytes Class
c1 1x100 800 double array
c2 1x100 800 double array
Grand total is 200 elements using 1600 bytes
>>>
![Page 13: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/13.jpg)
Vectors and MatricesVectors and Matrices How do we assign values to matrices ?
Columns separated by space or a comma
Rows separated by semi-colon
>>> A=[1 2 3;4 5 6;7 8 9]A = 1 2 3 4 5 6 7 8 9>>>
987
654
321
![Page 14: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/14.jpg)
Vectors and MatricesVectors and Matrices How do we access elements in a matrix or a vector?
Try the followings:
>>> A(2,3)ans = 6
>>> A(:,3)ans = 3 6 9
>>> A(1,:)ans = 1 2 3
>>> A(2,:)ans = 4 5 6
![Page 15: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/15.jpg)
Vectors and MatricesVectors and Matrices Some special variables
beep
pi ()
inf (e.g. 1/0)
i, j ( )1
>>> 1/0
Warning: Divide by zero.
ans =
Inf
>>> pi
ans =
3.1416
>>> i
ans =
0+ 1.0000i
![Page 16: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/16.jpg)
Vectors and MatricesVectors and Matrices Arithmetic operations – Matrices
Performing operations to every entry in a matrix
Add and subtract>>> A=[1 2 3;4 5 6;7 8 9]A = 1 2 3 4 5 6 7 8 9>>>
>>> A+3ans = 4 5 6 7 8 9 10 11 12
>>> A-2ans = -1 0 1 2 3 4 5 6 7
![Page 17: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/17.jpg)
Vectors and MatricesVectors and Matrices Arithmetic operations – Matrices
Performing operations to every entry in a matrix
Multiply and divide>>> A=[1 2 3;4 5 6;7 8 9]A = 1 2 3 4 5 6 7 8 9>>>
>>> A*2ans = 2 4 6 8 10 12 14 16 18
>>> A/3ans = 0.3333 0.6667 1.0000 1.3333 1.6667 2.0000 2.3333 2.6667 3.0000
![Page 18: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/18.jpg)
Vectors and MatricesVectors and Matrices Arithmetic operations – Matrices
Performing operations to every entry in a matrix
Power>>> A=[1 2 3;4 5 6;7 8 9]A = 1 2 3 4 5 6 7 8 9>>>
A^2 = A * A
To square every element in A, use the element–wise operator .^
>>> A.^2ans = 1 4 9 16 25 36 49 64 81
>>> A^2ans = 30 36 42 66 81 96 102 126 150
![Page 19: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/19.jpg)
Vectors and MatricesVectors and Matrices Arithmetic operations – Matrices
Performing operations between matrices>>> A=[1 2 3;4 5 6;7 8 9]A = 1 2 3 4 5 6 7 8 9
>>> B=[1 1 1;2 2 2;3 3 3]B = 1 1 1 2 2 2 3 3 3
A*B
333
222
111
987
654
321
A.*B
3x93x83x7
2x62x52x4
1x31x21x1
272421
12108
321
=
=
505050
323232
141414
![Page 20: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/20.jpg)
Vectors and MatricesVectors and Matrices Arithmetic operations – Matrices
Performing operations between matrices
A/B
A./B
0000.36667.23333.20000.35000.20000.20000.30000.20000.1
=
? (matrices singular)
3/93/83/72/62/52/41/31/21/1
![Page 21: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/21.jpg)
Vectors and MatricesVectors and Matrices Arithmetic operations – Matrices
Performing operations between matrices
A^B
A.^B
729512343
362516
321
=
??? Error using ==> ^At least one operand must be scalar
333
222
111
987
654
321
![Page 22: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/22.jpg)
Vectors and MatricesVectors and Matrices Arithmetic operations – Matrices
Example:
Solve for V1 and V2
10j10
-j5
1.50o2-90o
![Page 23: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/23.jpg)
Example (cont)
(0.1 + j0.2)V1 – j0.2V2 = -j2
- j0.2V1 + j0.1V2 = 1.5
Vectors and MatricesVectors and Matrices Arithmetic operations – Matrices
1.0j2.0j2.0j2.0j1.0
2
1
VV
=
5.12j
A x y=
![Page 24: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/24.jpg)
Example (cont)
Vectors and MatricesVectors and Matrices Arithmetic operations – Matrices
>>> A=[(0.1+0.2j) -0.2j;-0.2j 0.1j]A = 0.1000+ 0.2000i 0- 0.2000i 0- 0.2000i 0+ 0.1000i>>> y=[-2j;1.5]y = 0- 2.0000i 1.5000>>> x=A\yx = 14.0000+ 8.0000i 28.0000+ 1.0000i>>>
* A\B is the matrix division of A into B, which is roughly the same as INV(A)*B *
![Page 25: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/25.jpg)
Example (cont)
Vectors and MatricesVectors and Matrices Arithmetic operations – Matrices
>>> V1= abs(x(1,:))V1 = 16.1245
>>> V1ang= angle(x(1,:))V1ang = 0.5191
V1 = 16.1229.7o V
![Page 26: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/26.jpg)
Built in functions Built in functions (commands)(commands)
Scalar functions – used for scalars and operate element-wise when applied to a matrix or vector
e.g. sin cos tan atan asin log
abs angle sqrt round floor
At any time you can use the command help to get help
e.g. >>>help sin
![Page 27: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/27.jpg)
Built in functions (commands)Built in functions (commands)>>> a=linspace(0,(2*pi),10)
a =
Columns 1 through 7
0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888
Columns 8 through 10
4.8869 5.5851 6.2832
>>> b=sin(a)
b =
Columns 1 through 7
0 0.6428 0.9848 0.8660 0.3420 -0.3420 -0.8660
Columns 8 through 10
-0.9848 -0.6428 0.0000
>>>
![Page 28: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/28.jpg)
Built in functions (commands)Built in functions (commands)
Vector functions – operate on vectors returning scalar valuee.g. max min mean prod sum length
>>> max(b)
ans =
0.9848
>>> max(a)
ans =
6.2832
>>> length(a)
ans =
10
>>>
>>> a=linspace(0,(2*pi),10);
>>> b=sin(a);
![Page 29: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/29.jpg)
Built in functions (commands)Built in functions (commands)
Matrix functions – perform operations on matrices
>>> help elmat
>>> help matfun
e.g. eye size inv det eig
At any time you can use the command help to get help
![Page 30: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/30.jpg)
Built in functions (commands)Built in functions (commands)
Matrix functions – perform operations on matrices>>> x=rand(4,4)
x =
0.9501 0.8913 0.8214 0.9218
0.2311 0.7621 0.4447 0.7382
0.6068 0.4565 0.6154 0.1763
0.4860 0.0185 0.7919 0.4057
>>> xinv=inv(x)
xinv =
2.2631 -2.3495 -0.4696 -0.6631
-0.7620 1.2122 1.7041 -1.2146
-2.0408 1.4228 1.5538 1.3730
1.3075 -0.0183 -2.5483 0.6344
>>> x*xinv
ans =
1.0000 0.0000 0.0000 0.0000
0 1.0000 0 0.0000
0.0000 0 1.0000 0.0000
0 0 0.0000 1.0000
>>>
![Page 31: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/31.jpg)
From our previous example,
1.0j2.0j2.0j2.0j1.0
2
1
VV
=
5.12j
A x y=
Built in functions (commands)Built in functions (commands)
>>> x=inv(A)*y
x =
14.0000+ 8.0000i
28.0000+ 1.0000i
![Page 32: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/32.jpg)
Built in functions (commands)Built in functions (commands)
Data visualisation – plotting graphs
>>> help graph2d
>>> help graph3d
e.g. plot polar loglog mesh
semilog plotyy surf
![Page 33: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/33.jpg)
Built in functions (commands)Built in functions (commands)
Data visualisation – plotting graphsExample on plot – 2 dimensional plot
Example on plot – 2 dimensional plot
>>> x=linspace(0,(2*pi),100);
>>> y1=sin(x);
>>> y2=cos(x);
>>> plot(x,y1,'r-')
>>> hold
Current plot held
>>> plot(x,y2,'g--')
>>>
Add title, labels and legend
title xlabel ylabel legend
Use ‘copy’ and ‘paste’ to add to your window–based document, e.g. MSword
eg1_plt.m
![Page 34: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/34.jpg)
Built in functions (commands)Built in functions (commands)
Data visualisation – plotting graphs
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
angular frequency (rad/s)
y1 a
nd y
2
Example on plot
sin(x)cos(x)
Example on plot – 2 dimensional plot
eg1_plt.m
![Page 35: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/35.jpg)
Built in functions (commands)Built in functions (commands)
Data visualisation – plotting graphs
Example on mesh and surf – 3 dimensional plot
>>> [t,a] = meshgrid(0.1:.01:2, 0.1:0.5:7);
>>> f=2;
>>> Z = 10.*exp(-a.*0.4).*sin(2*pi.*t.*f);
>>> surf(Z);
>>> figure(2);
>>> mesh(Z);
Supposed we want to visualize a function
Z = 10e(–0.4a) sin (2ft) for f = 2
when a and t are varied from 0.1 to 7 and 0.1 to 2, respectively
eg2_srf.m
![Page 36: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/36.jpg)
Built in functions (commands)Built in functions (commands)
Data visualisation – plotting graphs
Example on mesh and surf – 3 dimensional plot
eg2_srf.m
![Page 37: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/37.jpg)
Built in functions (commands)Built in functions (commands)
Data visualisation – plotting graphsExample on mesh and surf – 3 dimensional plot
>>> [x,y] = meshgrid(-3:.1:3,-3:.1:3);>>> z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ...- 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ...- 1/3*exp(-(x+1).^2 - y.^2);
>>> surf(z);
eg3_srf.m
![Page 38: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/38.jpg)
Built in functions (commands)Built in functions (commands)
Data visualisation – plotting graphsExample on mesh and surf – 3 dimensional plot
eg2_srf.m
![Page 39: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/39.jpg)
Solution : use M-files
M-files : M-files : Script and function filesScript and function files
When problems become complicated and require re–evaluation, entering command at MATLAB prompt is not practical
Collections of commands
Executed in sequence when called
Saved with extension “.m”
Script FunctionUser defined commands
Normally has input & output
Saved with extension “.m”
![Page 40: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/40.jpg)
M-files : script and function files (script)M-files : script and function files (script)
At Matlab prompt type in edit to invoke M-file editor
Save this file as test1.m
eg1_plt.m
![Page 41: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/41.jpg)
M-files : script and function files (script)M-files : script and function files (script)
To run the M-file, type in the name of the file at the prompt e.g. >>> test1
Type in matlabpath to check the list of directories listed in the path
Use path editor to add the path: File Set path …
It will be executed provided that the saved file is in the known path
![Page 42: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/42.jpg)
M-files : script and function files (script)M-files : script and function files (script)
Example – RLC circuit
Exercise 1:Write an m–file to plot Z, Xc and XLversus frequency for R =10, C = 100 uF, L = 0.01 H.
+
V
–
R = 10 C
L
eg4.meg5_exercise1.m
![Page 43: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/43.jpg)
M-files : script and function files (script)M-files : script and function files (script)
Example – RLC circuit
Total impedance is given by:
LC XX When
LC1
o
![Page 44: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/44.jpg)
M-files : script and function files (script)M-files : script and function files (script)
Example – RLC circuit
0 200 400 600 800 1000 1200 1400 1600 1800 20000
20
40
60
80
100
120
Z XcXl
eg4.meg5_exercise1.m
![Page 45: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/45.jpg)
M-files : script and function files (script)M-files : script and function files (script)
For a given values of C and L, plot the following versus the frequency
a) the total impedance ,
b) Xc and XL
c) phase angle of the total impedance
for 100 < < 2000
Example – RLC circuit
+
V
–
R = 10 C
L
eg6.m
![Page 46: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/46.jpg)
M-files : script and function files (script)M-files : script and function files (script)
Example – RLC circuit
0 200 400 600 800 1000 1200 1400 1600 1800 2000-100
-50
0
50
100Phase
0 200 400 600 800 1000 1200 1400 1600 1800 20000
20
40
60
80
100Magnitude
Mag impXc Xl
eg6.m
![Page 47: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/47.jpg)
Function is a ‘black box’ that communicates with workspace through input and output variables.
INPUT OUTPUTFUNCTION– Commands
– Functions
– Intermediate variables
M-files : script and function files (function)M-files : script and function files (function)
![Page 48: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/48.jpg)
Every function must begin with a header:
M-files : script and function files (function)M-files : script and function files (function)
function output=function_name(inputs)
Output variableMust match the file name
input variable
![Page 49: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/49.jpg)
Function – a simple examplefunction y=react_C(c,f)
%react_C calculates the reactance of a capacitor.%The inputs are: capacitor value and frequency in hz%The output is 1/(wC) and angular frequency in rad/s
y(1)=2*pi*f;w=y(1);y(2)=1/(w*c);
M-files : script and function files (function)M-files : script and function files (function)
File must be saved to a known path with filename the same as the function name and with an extension ‘.m’
Call function by its name and arguments
help react_C will display comments after the header
![Page 50: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/50.jpg)
Function – a more realistic examplefunction x=impedance(r,c,l,w)
%IMPEDANCE calculates Xc,Xl and Z(magnitude) and %Z(angle) of the RLC connected in series%IMPEDANCE(R,C,L,W) returns Xc, Xl and Z (mag) and %Z(angle) at W rad/s%Used as an example for IEEE student, UTM %introductory course on MATLAB
if nargin <4 error('not enough input arguments') end;x(1) = 1/(w*c);x(2) = w*l;Zt = r + (x(2) - x(1))*i; x(3) = abs(Zt);x(4)= angle(Zt);
M-files : script and function files (function)M-files : script and function files (function) impedance.m
![Page 51: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/51.jpg)
We can now add our function to a script M-file
R=input('Enter R: ');C=input('Enter C: ');L=input('Enter L: ');w=input('Enter w: ');y=impedance(R,C,L,w);fprintf('\n The magnitude of the impedance at %.1f rad/s is %.3f ohm\n', w,y(3));fprintf('\n The angle of the impedance at %.1f rad/s is %.3f degrees\n\n', w,y(4));
M-files : script and function files (function)M-files : script and function files (function) eg7_fun.m
![Page 52: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/52.jpg)
SimulinkSimulink
Used to model, analyze and simulate dynamic systems using block diagrams.
Provides a graphical user interface for constructing block diagram of a system – therefore is easy to use. However modeling a system is not necessarily easy !
![Page 53: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/53.jpg)
SimulinkSimulink
Model – simplified representation of a system – e.g. using mathematical equation
We simulate a model to study the behavior of a system – need to verify that our model is correct – expect results
Knowing how to use Simulink or MATLAB does not mean that you know how to model a system
![Page 54: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/54.jpg)
SimulinkSimulink
Problem: We need to simulate the resonant circuit and display the current waveform as we change the frequency dynamically.
+
v(t) = 5 sin t
–
i 10 100 uF
0.01 H
Varies from 0 to 2000 rad/s
Observe the current. What do we expect ?
The amplitude of the current waveform will become maximum at resonant frequency, i.e. at = 1000 rad/s
![Page 55: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/55.jpg)
SimulinkSimulink
How to model our resonant circuit ?
+
v(t) = 5 sin t
–
i 10 100 uF
0.01 H
idtC1
dtdi
LiRv
Writing KVL around the loop,
![Page 56: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/56.jpg)
SimulinkSimulink
LCi
dtid
LR
dtdi
dtdv
L1
2
2
Differentiate wrt time and re-arrange:
Taking Laplace transform:
LCI
IssILR
LsV 2
LC1
sLR
sIL
sV 2
![Page 57: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/57.jpg)
SimulinkSimulink
Thus the current can be obtained from the voltage:
LC1
sLR
s
)L/1(sVI
2
LC1
sLR
s
)L/1(s2
V I
![Page 58: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/58.jpg)
SimulinkSimulink
Start Simulink by typing simulink at Matlab prompt
Simulink library and untitled windows appear
It is here where we construct our model.
It is where we obtain the blocks to construct our model
![Page 59: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/59.jpg)
SimulinkSimulink
Constructing the model using Simulink:
‘Drag and drop’ block from the Simulink library window to the untitled window
1
s+1
Transfer Fcn
simout
To WorkspaceSine Wave
![Page 60: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/60.jpg)
SimulinkSimulink
Constructing the model using Simulink:
LC1
sLR
s
)L/1(s2 62 101s1000s
)100(s
100s
s +1000s+1e62
Transfer Fcn
v
To Workspace1
i
To WorkspaceSine Wave
![Page 61: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/61.jpg)
SimulinkSimulink
We need to vary the frequency and observe the current
100s
s +1000s+1e62
Transfer Fcn1
v
To Workspace3w
To Workspace2i
To Workspace
Ramp
s
1
Integrator
sin
ElementaryMath
Dot Product3Dot Product2
1000
Constant
5
Amplitude
eg8_sim.mdl
…From initial problem definition, the input is 5sin(ωt).You should be able to decipher why the input works, but you do not need to create your own input subsystems of this form.
![Page 62: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/62.jpg)
SimulinkSimulink
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1
-0.5
0
0.5
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-5
0
5
![Page 63: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/63.jpg)
SimulinkSimulink
The waveform can be displayed using scope – similar to the scope in the lab
100s
s +1000s+1e62
Transfer Fcn
0.802
SliderGain
Scopes
1
Integrator
sin
ElementaryMath
Dot Product2
5
Constant1
2000
Constant
eg9_sim.mdl
![Page 64: An Introductory on MATLAB and Simulink Muhamad Zahim Sujod zahim@kuktem.edu.my Ext : 2312](https://reader035.vdocuments.net/reader035/viewer/2022062619/55163f32550346b2068b5259/html5/thumbnails/64.jpg)
ReferenceReference
Internet – search engineMastering MATLAB 6 (Prentice Hall)
– Duane Hanselman– Bruce Littlefield