slides 16.06 16.07 matlab simulink
TRANSCRIPT
![Page 1: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/1.jpg)
MATLAB & Simulink Tutorial16.06 Principles of Automatic Control & 16.07 Dynamics
Violeta Ivanova, Ph.D.Educational Technology ConsultantMIT Academic Computing
![Page 2: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/2.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
This Tutorial
Class materialsweb.mit.edu/acmath/matlab/course16/Topics
MATLAB ReviewExercise 1: Matrices & ODEsIntroduction to SimulinkExercise 2: Simulink Model
![Page 3: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/3.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Other References
Mathematical Tools at MITweb.mit.edu/ist/topics/math
MATLAB Mastery I (beginners’ tutorial)Introduction to MATLAB (IAP series)
MATLAB Tutorial for Unifiedweb.mit.edu/acmath/matlab/unified
![Page 4: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/4.jpg)
MATLAB Review
InterfaceMatrices & VectorsBuilt-In FunctionsScript & Function M-filesDifferential Equations
![Page 5: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/5.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
What is MATLAB?
Computational SoftwareFrom The MathWorks: www.mathworks.com
Algorithm Development EnvironmentMATrix LABoratory
![Page 6: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/6.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
MATLAB @ MIT
On Athena250 floating licenses (free)
For student-owned computers300 floating licenses (free)
![Page 7: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/7.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Starting MATLAB
On Athenaathena% add matlabathena% matlab &>> desktop
On laptopsDesktop interface starts by default.
You must be running MATLAB now …
![Page 8: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/8.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Help in MATLAB
Command line help>> help <command>
e.g. help polyval>> lookfor <keyword>
e.g. lookfor polynomial
Help BrowserHelp->Help MATLAB
![Page 9: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/9.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
VariablesBegin with an alphabetic character: aCase sensitive: a, AData type detection: a=5; a=‘ok’; a=1.3Default output variable: ansBuilt-in constants: pi i j Infclear removes variableswho lists variablesSpecial characters
[] () {} ; % : = . … @
![Page 10: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/10.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
OperatorsArithmetic operators
+ - / \ ^ .\ ./ .* .^
Relational operators< > <= >= == ~=
Logical operators| & || && true false
Operator precedence() {} [] -> Arithmetic -> Relational -> LogicalDo not use special characters, operators, or keywords in variable names.
![Page 11: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/11.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Numeric Data TypesNotation>> x = 5; >> y = 5.34; >> z = 0.23e+3;
Numeric manipulation>> y = 5.3456; x = round(y);>> format long>> format compact
Complex numbers>> x = 5 + 6i
![Page 12: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/12.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Vectors
Row vector>> R1 = [1 6 3 8 5]>> R2 = [1 : 5]>> R3 = [-pi : pi/3 : pi]
Column vector>> C1 = [1; 2; 3; 4; 5]>> C2 = R2'
![Page 13: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/13.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Matrices
Creating a matrix>> A = [1 2.5 5 0; 1 1.3 pi 4]>> A = [R1; R2]
Accessing elements>> A(1,1); A(1:2, 2:4); A(:,2)
![Page 14: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/14.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Input / Output
Import Wizard for data importFile->Import Data …
File input with loadB = load(‘datain.txt’)
File output with savesave(‘dataout’, ‘A’, ‘-ascii’)
![Page 15: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/15.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Matrix Operations
Operators *, /, and ^>> Ainv = A^-1 Matrix math is default!
Operators + and ->> X = [x1 x2 x3]; >> Y = [y1 y2 y3]; >> A = X + Y
A = x1+y1 x2+y2 x3+y3
![Page 16: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/16.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Element-Wise Operations
Operators .*, ./, and .^>> Z = [z1 z2 z3]’>> B = [Z.^2 Z ones(3,1)] B =
z12 z1 1z22 z2 1z32 z3 1
![Page 17: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/17.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Built-In FunctionsMatrices & vectors>> [n, m]= size(A) >> n = length(X)>> M1 = ones(n, m) >> M0 = zeros(n, m)>> En = eye(n); N1 = diag(En)>> [evals, evecs] = eig(A)>> det(A); rank(A); trace(A)
And many others …>> y = exp(sin(x)+cos(t))
![Page 18: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/18.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Polynomials
Evaluating polynomials
>> p = [p1 p2 … ]
>> t = [-3 : 0.1 : 3]
>> z = polyval(p, t)
Curve fitting>> X = [x1 x2 … xn]; Y = [y1 y2 … yn]
>> Pm = polyfit(X, Y, m)
y = p1xn + p2xn−1...+ pnx + pn+1
![Page 19: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/19.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Integration & Differentiation Polynomial integration
>> P = polyint(p); assumes C = 0
Area under a curve from a to b>> area = polyval(P,b) - polyval(P,a)
Polynomial differentiation>> P = [P1 P2 … Pn C]
>> p = polyder(P)
p1∫ xn + ...+ pnx + pn+1dx = P1xn+1 + ...+ Pn+1x + C
![Page 20: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/20.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
2D Linear Plots
Command plot>> plot (X, Y, ‘ro’)>> plot (X, Y, ‘Color’, [0.5 0 0], …
‘Marker’, ‘o’, …‘LineStyle’, ‘none’)
Colors: b, r, g, y, m, c, k, wMarkers: o, *, ., +, x, d Line styles: -, --, -., :
![Page 21: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/21.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Multiple Graphs on One Plot
Built-in function hold>> p1 = plot(t, z, ‘r-’)>> hold on>> p2 = plot(t, -z, ‘b--’)>> hold on>> p3 = plot(T, Z, ‘go’)
>> hold off
![Page 22: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/22.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Subplots on One Figure
Built-in function subplot>> s1 = subplot(1, 3, 1)>> p1 = plot(t, z, ‘r-’)>> s2 = subplot(1, 3, 2)>> p2 = plot(t, -z, ‘b--’)>> s3 = subplot(1, 3, 3)>> p3 = plot(T, Z, ‘go’)
![Page 23: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/23.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Customizing GraphsAnnotating graphs
>> plot (t, z, ‘r-’)>> legend (‘z=f(t)’)>> title (‘Position vs. Time’)>> xlabel (‘Time’)>> ylabel (‘Position’)
Plot Edit mode: icon in Figure editorProperty Editor: View->Property EditorSaving figures: File->Save As
![Page 24: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/24.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
M-File Programming
Script M-FilesAutomate a series of steps.Share workspace with other scripts and the command line interface.
Function M-FilesExtend the MATLAB language.Can accept input arguments and return output arguments.Store variables in internal workspace.
![Page 25: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/25.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
A MATLAB Program
Always has one script M-FileUses built-in functions as well as new functions defined in function M-filesSaved as <filename>.mTo run: filename only (no .m extension)>> <filename>Created in Editor / Debugger
![Page 26: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/26.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
M-File Editor / DebuggerCreate or open M-file in editor>> edit <filename>.m
Type or copy commandsUse % for commentsUse ; to suppress output at runtimeDebugging modek >>
![Page 27: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/27.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Variable TypesLocal (default)
Every function has its own local variables.Scripts share local variables with functions they call and with the base workspace.
Globalglobal speedoflight
Shared by functions, scripts, and base workspace.
Persistentpersistent R, C
Can be declared and used only in functions.
![Page 28: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/28.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Program Flow Controlif, elseif and elseExample:
if planet == 1, G = 9.814;elseif planet == 2, G = 3.688;else G = input(‘Gravity: ’);end
switch and caseforwhile
![Page 29: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/29.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Function M-File ExampleSee file: odeLanderVelocity.m
function DV = odeLanderVelocity(t, V)% ODELANDERVELOCITY defines dV/dt for a Mars lander.% This is help text for “help odeLanderVelocity”.
% The function’s body is below.
Gm = 3.688;global K MDV = Gm - K/M * V^2;return
![Page 30: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/30.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Differential EquationsOrdinary Differential Equations
Differential-Algebraic Expressions
Solvers for ODEs and DAEs>> ode45; ode23; ode113 …
y ' = f (t, y)
M (t, y)y ' = f (t, y)
![Page 31: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/31.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
ODE and DAE Solvers>> [T, Y] = solver(odefun, tspan, Y0)
Syntax:solver: ode45, ode23, etc.odefun: function handletspan: interval of integration vector>> tspan = [t0 : tstep : tfinal]Y0: vector of initial conditions[T, Y]: numerical solution in two vectors
![Page 32: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/32.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
ODE Example
Problem:Solution:global K MK = 1.2; % drag coefficient M = 150; % mass (kg)V0 = 67.056; % velocity at t0 (m/s)
tspan = [0 : 0.05 : 6];
[t, V] = ode45(@odeLanderVelocity, …tspan, V0)
dv t( )dt
= g −km
v2
![Page 33: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/33.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Symbolic Math ToolboxIncorporates symbolic computations into MATLAB’s numerical environment
Functions access the Maple kernel Constructs for symbolic values & expressions>> x = sym(‘x’) >> f = sym(‘cos(t)’)>> syms a b c
![Page 34: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/34.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Laplace TransformsDefinition:Examples:
Laplace transform of>> f = sym(‘sin(t)’)>> F = laplace(f)
Inverse Laplace transform of>> G = sym(‘0.1/(0.1*s+1)’)>> g = ilaplace(G)
F s( )= L f{ t( )}= e− st
0
∞
∫ f t( )dt
f t( )= s in t( )
G s( )= 0 .10 .1s +1
![Page 35: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/35.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Transfer FunctionsSystem of linear differential equationsState Space model
X, u & Y: state, input & output vectorsA, B & C: state, input & output matricesD: usually zero (feedthrough) matrix
Transfer function
>> [Num, Den] = ss2tf(A, B, C, D)
X•
= AX + BuY = CX + Du
H s( )= Num s( )
Den s( ) = C sI − A( )−1B = D
![Page 36: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/36.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Exercise 1: Matrices & ODEs1-A: Mars Lander Velocity
Function file: odeLanderVelocity.mScript file: MarsLander.m
1-B: F-8 Longitudinal Time ResponseFunction file: LongTimeResponse.mScript file: f8long.m
Follow instructions in exercise handout …
![Page 37: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/37.jpg)
Introduction to Simulink
InterfaceModelsBlocksSimulations
![Page 38: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/38.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
What is Simulink?
Software for modeling, simulating, and analyzing dynamic systemsTool for model-based designMATLAB Toolbox -> access to all MATLAB functions
![Page 39: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/39.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Simulink @ MIT
Comes with MATLABOn Athena
50 floating licenses (free)For student-owned computers
50 floating licenses (free)Student MATLAB Lite includes MATLAB, Simulink, Control System, Optimization, Signal Processing, Symbolic Math, Statistics
![Page 40: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/40.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Starting Simulink
Run MATLAB first …Type in the Control Line Window>> simulink
or …Click on the Simulink icon in the MATLAB toolbar
You must be running Simulink now …
![Page 41: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/41.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Simulink Libraries
![Page 42: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/42.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Model EditorCreating a model: File->New->ModelSaving a model: File->Save As<modelname>.mdl
Canvas for editing model block diagrams
![Page 43: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/43.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Model Blocks: SourcesExample: Step Function
![Page 44: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/44.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Model Blocks: SinksExample: Scope
![Page 45: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/45.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Model Blocks: Math OperationsExample: Sum
![Page 46: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/46.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Model Blocks: User-DefinedExample: MATLAB function
![Page 47: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/47.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Model Blocks: Continuous StateExample: Transfer Function
![Page 48: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/48.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Modeling: Block Diagram
Example: Continuous System
![Page 49: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/49.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Modeling: Block Parameters
x s( )u s( )=
1s + 2
![Page 50: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/50.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Running Simulations
Configuration parametersSimulation -> Set …
Run Simulation Simulation -> Start
![Page 51: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/51.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Exercise 2: Simulink Model
F-8 Controller DesignSimulink file: f8.mdl
Follow instructions in exercise handout …
![Page 52: Slides 16.06 16.07 Matlab Simulink](https://reader033.vdocuments.site/reader033/viewer/2022050805/55cf98cc550346d03399bc2d/html5/thumbnails/52.jpg)
16.06 & 16.07 MATLAB & Simulink Tutorials
Resources
web.mit.edu/ist/topics/mathweb.mit.edu/acmath/matlab/course1616.06 TA: Tom Gray16.07 TA: Shannon Cheng
Questions?