Upload
nathan
View
36
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Engr/Math/Physics 25. Chp9: ODE Solns By MATLAB. Bruce Mayer, PE Licensed Electrical & Mechanical Engineer [email protected]. Learning Goals. Use MATLAB’s ODE Solvers to find Solutions to Ordinary Differential Eqns - PowerPoint PPT Presentation
Citation preview
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt1
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Bruce Mayer, PELicensed Electrical & Mechanical Engineer
Engr/Math/Physics 25
Chp9: ODE Solns
By MATLAB
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt2
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Learning Goals Use MATLAB’s ODE Solvers to find
Solutions to Ordinary Differential Eqns When Possible use Analytical ODE
Solutions to Check the ACCURACY of the MATLAB Numerical Soln
Make Approximations to perform a REALITY CHECK on MATLAB Solutions to NONLinear ODEs
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt3
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
MATLAB ODE Solvers MATLAB has several 1st Order ODE
Solver Commands: • ode23• ode45 (Best OverAll)• ode113
These Solvers are based on the Runge-Kutta method, which is usually the best technique to apply as a “first try” for most problems.
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt4
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Solver Summary Solver Problem Type Order of Accuracy When to Useode45 Nonstiff Medium Most of the time. This should be the first
solver you try.ode23 Nonstiff Low For problems with crude error tolerances or
for solving moderately stiff problems.
ode113 Nonstiff Low to high For problems with stringent error tolerances or for solving computationally intensive problems.
ode15s Stiff Low to medium If ode45 is slow because the problem is stiff.
ode23s Stiff Low If using crude error tolerances to solve stiff systems and the mass matrix is constant.
ode23t Moderately Stiff Low For moderately stiff problems if you need a solution without numerical damping.
ode23tb Stiff Low If using crude error tolerances to solve stiff systems.
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt5
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
MATLAB ODE Format - 1 MATLAB ODE Solver Form for Multiple
Dependent Variables (MultiVar Probs)
,,,,,,
,,,,,,
,,,,,,
021
2022122
1012111
mmmmm
m
m
btyyyytfdtdy
btyyyytfdtdy
btyyyytfdtdy
m-Eqns (1st order ODEs) in m-Unknowns
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt6
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
1st order ODE System Example
3342 wtzxywedtdw t
88483737
56
xtywxtdt
dx
2243ln6611
3 7.1
yztxy
dtdy
554
9lnsincos 273
y
tyetz
dtdz tw
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt7
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
MATLAB Solution To solve this MultiODE system using MATLAB
the functions f1, f2, …, fm must be provided to the computer, along with the initial values of the variables; i.e., t0 and b1,b2, …, bm
The functions f1, f2, …, fm are input using a function which we have to name, say fcn_vec. Then stored in an m-file called in this case fcn_vec.m
The initial values of the y’s are stored in a one dimensional COLUMN vector, say y0
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt8
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
MATLAB Syntax Obtain the Solution by typing in the
command window:
[t,y]=ode45(@fcn_vec,Trng,y0)
Where Trng is a vector containing the initial and final values for t. • Example: Trng = [T0 Tf]
–Where T0 is set to be t0 and Tf is set to be the final time at the end of the interval of interest.
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt9
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Plotting the Solution MATLAB can also be used to plot the
ODE Solution results. For example: plot(t,y) gives a plot
of ALL components of the solution y1, y2, …, ym , as a function of t
Alternatively plot(t,y(:,1))gives a plot of y1 as a function of t
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt10
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Comments on ode45 Note that in its simplest form ode45 chooses
its OWN time step, Δt, and VARIES the time step according to how fast the solution is changing (the steepness of the slope) .
Thus ode45 generates solution values at a sequence of times t1, t2, t3, … given by tk+1= tk+Δtk, with Δtk selected by ode45. • Thus EACH component of the solution y1, y2, …, yn
is ITSELF a vector containing values such as y1(t1), y1(t2), y1(t3), …, then y2(t1), y2(t2), y2(t3), …, then y3(t1), y3(t2), y3(t3), etc.
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt11
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Example ode45 (1) Solve 2nd
ORDER ODE Note that to solve a 2nd
order eqn we need to know the SLOPE (dy/dt) at t = 0
To use the 1st Order Solver, cast this 2nd Order eqn into 1st order (state Var) formLET:
tyyy sin52
20
680
0
ydtdyy
t
yx
yx
2
1
With ICs
• i.e.,
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt12
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Example ode45 (2) With the Xform Subbing in the x1 & x2
221 xyyxyx Find that
21
1 xydtdy
dtdxx
ReArranging the ODE to isolate Highest order term
212 25sin xxtx
yyty 25sin
Thus the 1st Order Eqn System in 2 Vars
212
2
21
1
25sin xxtdtdxx
xdtdxx
200
6800
2
1
xy
xy
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt13
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Example ode45 (3) Note that applying
this Xform And also dx2/dt
yxyx 21
Converted the SINGLE 2nd Order ODE to a LINEAR System of TWO 1st Order ODEs
Sub into ODE
2
2 xyydtd
dtdx
21 xy
dtdy
dtdx
tyyy sin52
txxdtdx sin52 12
2
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt14
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Example ode45 (4) Now Isolate dx1/dt Next Isolate dx2/dt
21 xy
dtdy
dtdx
txxdtdx sin52 12
2
21 xdtdx
212 25sin xxtdtdx
Recall the IC’s
2006800 21
xyxy
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt15
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Example ode45 (5) Thus the Transformation to State-Var
Form of Two 1st Order ODEs
tyyy sin52
&
20
680
0
ydtdyy
t
2025sin
680
2212
121
txxxtdtdx
txxdtdx
The final xForm
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt16
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Example ode45 (6) Compare xForm to Slide-4
2025sin
680
2212
121
txxxtdtdx
txxdtdx
,)(),,,(
,)(),,,(
2022122
1012111
btyyytfdtdy
btyyytfdtdy
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt17
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Example ode45 (7) The
Function File =
xdot_lec24.m
function xd = xdot_lec24(t_val,y_vals);% Bruce Mayer, PE * 05Nov11% ENGR25 * Lec24 on MATLAB ODE solvers% %This is the function that makes up the system %of differential equations solved by ode45%% the Vector y_vals contains yk & [dy/dt]k% % DEBUG Section%Ttest = t_val; y_vals_test = y_vals; xd% xd(1)=y_vals(2); % at t=0, xdot(1) = dy(0)/dt xd(2)= sin(t_val) -5*y_vals(1) - 2*y_vals(2); % at t=0, xdot(2) = d2y(0)/dt2%% Must return a COLUMN Vectorxd = [xd(1); xd(2)];%% DEBUG Sectiondisp('xd(1) = dy/dt ='), disp(xd(1))disp('xd(2) = d2y/dt2 = '), disp(xd(2))
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt18
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Example ode45 (8)% Bruce Mayer, PE * 05Nov11% ENGR25 * Lec24 on MATLAB ODE solvers% file = Demo_ODE_Lec24.m% Revised to include a set of non-zero ICs % %This script file calls FUNCTION xdot_lec24%clear % clear memory%% CASE-I => set the IC's y(0) & dy(0)/dt as COL Vector % y0=[0; 0]; % comment-out if Not Used% CASE-II => set the IC's y(0) & dy(0)/dt as COL Vector Y0 = [-0.19; -0.73]; % Comment-Out if Not Used%% Default Time Interval of 20 Time-Units; user can change thistmax = input('input tmax = ')trng = [0, tmax]; %% %Call the ode45 routine with the above data inputs[t,y]=ode45('xdot_lec24', trng, y0);% %Plot the first column of the solution “matrix” %giving x1 or y.plot(t,y, 'LineWidth', 2), xlabel('t'), ylabel('ODE Solution y(t) & dy/dt'),... title('ODE Example - Lecture24'), grid, legend('y(t)','dy/dt')
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt19
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
ODE Example Result (0 for ICs)
0 2 4 6 8 10 12 14 16 18 20
-0.25
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
0.25
Time, t
OD
E So
lutio
n, y
(t)ODE Example - Lecture23
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt20
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
ODE Result NONzero ICs
0 2 4 6 8 10 12 14 16 18 20-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
t
OD
E S
olut
ion
y(t)
ODE Example - Lecture23
tyyy sin52
73.000
ydtdy
t
19.00 y
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt21
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
ODE Result Both y & dy/dt
0 1 2 3 4 5 6-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
t
OD
E S
olut
ion
y(t)
& d
y/dt
ODE Example - Lecture24
y(t)dy/dt
tyyy sin52
73.000
ydtdy
t
19.00 y
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt22
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
3rd1st Reduction of Order (1)
5ln731973
OR 5ln731973 2
2
3
3
tyyyy
tydtdy
dtyd
dtyd
27
37
47
:sIC' and
72
27
ydtyd
ydtdy
y
t
t
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt23
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
3rd1st Reduction of Order (2)
ydtydxy
dtdyxyx 2
2
321
dtdxyx
xdtdxyx
xdtdxyx
33
32
2
21
1
5ln731973
OR 5ln731973
1233
txxxx
tyyyy
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt24
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
3rd1st Reduction of Order (3) Thus the 3-Eqn, 1st Order, ODE System
319735ln73
2
1
12333
322
211
xxxtxdtdx
xxdtdx
xxdtdx
3-IC277
2-IC377
1-IC477
3
2
1
xy
xy
xy
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt25
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
ODE: LittleOnes out of BigOne(Reduction of Order)
V =
S =
C =
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt26
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
ODE: LittleOnes out of BigOne
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt27
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
ODE: LittleOnes out of BigOne
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt28
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
ODE: LittleOnes out of BigOne
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt29
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
One more: Anonymous z(t)
The Transformation
3100140
22
2
zdt
dzzzdtdzz
dtzd
dtdyy
dtdzzyyzy 1
2211
dtdyyyyy
dtdy
dtzd 2
12212
22
2
14
3010 21 yy
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt30
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Anonymous Example z(t)>> zAnon = @(t,y) [y(2); 4*(1-y(1)^2)*y(2)-y(1)]zAnon = @(t,y)[y(2);4*(1-y(1)^2)*y(2)-y(1)]>> [tz,yz] = ode45(zAnon, [0, 50], [1, -3]);>> plot(tz,yz(:,1), 'LineWidth',2), xlabel('t'), ylabel('z'), grid
0 5 10 15 20 25 30 35 40 45 50-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5
t
z
dtdz 22 dtzd
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt31
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Anonymous NonLinear Consider 7.20
9.0ln
2
tyty
dtdy
0 10 20 30 40 50-40
-30
-20
-10
0
10
20
t
y
% Bruce Mayer, PE * 29Apr14% ENGR25 * Lec24 on MATLAB ODE solvers% Use Anonymous fcn to pass ode45%clear; clc, clf % clear out: memory, workspace, plot%%dydt = @(t,y) log((y/(t+0.9))^2)% note that zAnon has a place-holder for t%% Call ode45 into action using zAnon[tz,yz] = ode45(dydt, [0, 50], 2.7);axes; set(gca,'FontSize',12);whitebg([0.8 1 1]); % Chg Plot BackGround to Blue-Greenplot(tz,yz(:,1), 'LineWidth',3), xlabel('t'), ylabel('y'), grid
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt32
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Anonymous NonLinear SimuLink 7.20
9.0ln
2
tyty
dtdy
B. Mayer * 29Apr14
dy/dt = ln([y/(t+0.9)]^2 * y(0) = 2.7
Clock1s
Integrator Scope0.9
Constant
Divide
ln
MathFunction
Addu2
MathFunction1
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt33
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Anonymous NonLinear Consider 7.20
3ln
tyyt
dtdy
% Bruce Mayer, PE * 29Apr14% ENGR25 * Lec24 on MATLAB ODE solvers% Use Anonymous fcn to pass ode45% file = Anon_ODE_Example_1304.m%clear; clc, clf % clear out: memory, workspace, plot%%dydt = @(t,y) cos(t/(y+3))% note that zAnon has a place-holder for t%% Call ode45 into action using zAnon[tz,yz] = ode45(dydt, [0, 100], 2.7);axes; set(gca,'FontSize',12);whitebg([0.8 1 1]); % Chg Plot BackGround to Blue-Greenplot(tz,yz, 'LineWidth',3), xlabel('t'), ylabel('y'), grid
0 20 40 60 80 1000
5
10
15
20
25
30
t
y
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt34
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Anonymous NonLinear SimuLink 7.20
3cos
tyyt
dtdy
B. Mayer * 29Apr14
dy/dt = cos(t/(y+3) * y(0) = 2.7
Colors:R = 204G = 255B = 255
Clock1s
Integrator Scope
Add
3
Constant
Divide
cos
TrigonometricFunction
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt35
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
B. Mayer * 29Apr14
dy/dt = cos(t/(y+3) * y(0) = 2.7
Clock
1s
Integrator Scope
Add
3
Constant
Divide
cos
TrigonometricFunction
B. Mayer * 29Apr14
dy/dt = ln([y/(t+0.9)]^2 * y(0) = 2.7
Clock1s
Integrator Scope0.9
Constant
Divide
ln
MathFunction
Addu2
MathFunction1
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt36
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Anonymous NonLinear Consider 7.20
9.0ln
2
tyty
dtdy
0 10 20 30 40 50-40
-30
-20
-10
0
10
20
t
y
% Bruce Mayer, PE * 29Apr14% ENGR25 * Lec24 on MATLAB ODE solvers% Use Anonymous fcn to pass ode45%clear; clc, clf % clear out: memory, workspace, plot%%dydt = @(t,y) log((y/(t+0.9))^2)% note that zAnon has a place-holder for t%% Call ode45 into action using zAnon[tz,yz] = ode45(dydt, [0, 50], 2.7);axes; set(gca,'FontSize',12);whitebg([0.8 1 1]); % Chg Plot BackGround to Blue-Greenplot(tz,yz(:,1), 'LineWidth',3), xlabel('t'), ylabel('y'), grid
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt37
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
All Done for Today
FoucaultPendulum
While our clocks are set by an average 24 hour day for the passage of the Sun from noon to noon, the Earth rotates on its axis in 23 hours 56 minutes and 4.1 seconds with respect to the rest of the universe. From our perspective here on Earth, it appears that the entire universe circles us in this time. It is possible to do some rather simple experiments that demonstrate that it is really the rotation of the Earth that makes this daily motion occur.
In 1851 Leon Foucault (1819-1868) was made famous when he devised an experiment with a pendulum that demonstrated the rotation of the Earth.. Inside the dome of the Pantheon of Paris he suspended an iron ball about 1 foot in diameter from a wire more than 200 feet long. The ball could easily swing back and forth more than 12 feet. Just under it he built a circular ring on which he placed a ridge of sand. A pin attached to the ball would scrape sand away each time the ball passed by. The ball was drawn to the side and held in place by a cord until it was absolutely still. The cord was burned to start the pendulum swinging in a perfect plane. Swing after swing the plane of the pendulum turned slowly because the floor of the Pantheon was moving under the pendulum.
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt38
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Bruce Mayer, PELicensed Electrical & Mechanical Engineer
Engr/Math/Physics 25
Appendix 6972 23 xxxxf
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt39
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Demo – Problem 9.34 Accelerating
Pendulum For an Arbitrary Lateral-Acceleration Function, a(t), the ANGULAR Position, θ, is described by the (nastily) NONlinear 2nd Order, Homogeneous ODE
0cossin
tagL• See next Slide for Eqn Derivation
Solve for θ(t)
L
m W = mg
ta
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt40
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Prob 9.34: ΣF = Σma
N-T CoORD Sys
n
T
LdtdLs
dtsd
LdtdL
dtdsLdds
2
2
2
2
Use Normal-Tangential CoOrds; θ+ → CCW
cos
sin
,, taaLa
WF
TbaseTS
T
cossin taLmmg
L
mW = mg
ta
L
mW = mg
ta
sinW
costa
Ldds
Use ΣFT = ΣmaT
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt41
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Prob 9.34: Simplify ODE Cancel m:
Collect All θ terms on L.H.S.
Next make Two Little Ones out of the Big One• That is, convert the
ODE to State Variable FormL
mW = mg
ta
L
mW = mg
ta
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt42
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Convert to State Variable Form Let: Thus:
Then the 2nd derivative
Have Created Two 1st Order Eqns
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt43
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
SimuLink Solution The ODE using y in place of θ
Isolate Highest Order Derivative
Double Integrate to find y(t)
0cossin2
2
ytaygdtydL
L
ygytadtyd sincos2
2
dtdtL
ygytay
sincos
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt44
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
SimuLink Diagram
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt45
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Prob 9.34 Results for Case-a
0 1 2 3 4 5 6 7 8 9 100.44
0.45
0.46
0.47
0.48
0.49
0.5
t (sec)
thet
a (r
ads)
P8.30 - Accelerating Pendulum - Case (a)
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt46
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Prob 9.34 Results for Case-b
0 1 2 3 4 5 6 7 8 9 10-3
-2
-1
0
1
2
3
4P8.30 - Accelerating Pendulum - Case (b)
t (sec)
thet
a (ra
ds)
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt47
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Prob 9.34 Results for Case-c
0 1 2 3 4 5 6 7 8 9 10-3
-2
-1
0
1
2
3
4
t (sec)
thet
a (ra
ds)
P8.30 - Accelerating Pendulum - Case (c)
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt48
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Prob 9.34 Script File
% Bruce Mayer, PE * 05Nov11% ENGR25 * problem 9.34% file = Demo_Prob9_34.m% %This script file calls FUNCTION pendacc%clear % clears memoryglobal m b; % globalize accel calc constants% Acceleration, a(t) = m*t + b% ask user for max time; suggest starting at 25tmax = input('tmax = '); %%set the case consts, and IC's y(0) & dy(0)/dt%=> remove the leading "%" to toggle between casesm = 0, b = 5, y0 = [0.5 0]; % case-a%m = 0, b = 5, y0 = [3 0]; % case-b%m = 0.5, b = 0, y0 = [3 0]; % case-c% m = 0.4, b = -4, y0 = [1.7 2.3]; % case-d => EXTRA%%Call the ode45 routine with the above data inputs[t,x]=ode45('pendacc', [0, tmax], y0);%%PLot theta(t)subplot(1,1,1)plot(t,x(:,1)), xlabel('t (sec)'), ylabel('theta (rads)'),...
title('P9.34 - Accelerating Pendulum'), grid;disp('Plotting ONLY theta - Hit Any Key to continue')pause%Plot the FIRST column of the solution “matrix” %giving x1 or y.subplot(2,1,1)plot(t,x(:,1)), xlabel('t (sec)'), ylabel('theta (rads)'),...
title('P9.34 - Accelerating Pendulum'), grid;%Plot the SECOND column of the solution “matrix” %giving x2 or dy/dt.subplot(2,1,2)plot(t,x(:,2)), xlabel('t (sec)'), ylabel('dtheta/dt (r/s)'), grid;disp('Plotting Both theta and dtheta/dt; hit any key to continue')
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt49
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Prob 9.34 Function Filefunction dxdt = pendacc(t_val,z);% Bruce Mayer, PE * 05Nov05% ENGR25 * Prob 8-30% %This is the function that makes up the system %of differential equations solved by ode45%% the Vector z contains yk & [dy/dt]k%%Globalize the Constants used to calc the Accelglobal m b% set the physical constantsL = 1; % in mg = 9.81; % in m/sq-Sec%%DEBUG § => remove semicolons to reveal t_val & zt_val; z;%% Calc the Cauchy (State) valuesdxdt(1)= z(2); % at t=0, dxdt(1) = dy(0)/dtdxdt(2)= ((m*t_val + b)*cos(z(1)) - g*sin(z(1)))/L;% at t = 0, dxdt(2) =((m*t_val + b)*cos(y(0)) - g*sin(y(0)))/L; %% make the dxdt into a COLUMN vectordxdt = [dxdt(1); dxdt(2)];
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt50
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Θ with Torsional Damping The Angular Position, θ, of a linearly
accelerating pendulum with a Journal Bearing mount that produces torsional friction-damping can be described by this second-order, non-linear Ordinary Differential Equation (ODE) and Initial Conditions (IC’s) for θ(t):
L
m W = mg
taD
0cossin btngDL
rads 8.20 secrads 9.100
tdt
d
L = 1.6 meters D = 0.07 meters/sec g = 9.8 meters/sec2
n = 0.40 meters/sec3 b = −3.0 meters/sec2
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt51
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Θ with Torsional Damping
E25_FE_Damped_Pendulum_1104.mdl
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt52
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Θ with Torsional Damping
0 10 20 30 40 50 60 70 80 90 100-3
-2
-1
0
1
2
3
t (sec)
(ra
ds)
Accelerating Pendulum Angular Position
plot(tout,Q, 'k', 'LineWidth', 2), grid, xlabel('t (sec)'), ylabel('\theta (rads)'), title('Accelerating Pendulum Angular Position')
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt53
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
MATLAB ODE Format - 2 In Vector Form (saves Writing time;
does NOT make Solution Easier)
byyfy
)(),,( 0tt If we have written
ROW vectors for the y & b quantities can Transpose to Column-Vectors
myyy ;;; 21 Ty
mbbb ;;;b 21 T
[email protected] • ENGR-25_Lec-22_ODE_MATLAB.ppt54
Bruce Mayer, PE Engineering/Math/Physics 25: Computational Methods
Solver Summary Solver Problem Type Order of Accuracy When to Useode45 Nonstiff Medium Most of the time. This should be the first
solver you try.ode23 Nonstiff Low For problems with crude error tolerances or
for solving moderately stiff problems.
ode113 Nonstiff Low to high For problems with stringent error tolerances or for solving computationally intensive problems.
ode15s Stiff Low to medium If ode45 is slow because the problem is stiff.
ode23s Stiff Low If using crude error tolerances to solve stiff systems and the mass matrix is constant.
ode23t Moderately Stiff Low For moderately stiff problems if you need a solution without numerical damping.
ode23tb Stiff Low If using crude error tolerances to solve stiff systems.