1
To Visualize 2D and 3D Plots Aim: To visualize 2D and 3D plots using MATLAB with the help of Aerospace related questions and interpreting itโs answers.
Theory: A two-dimensional graph is a set of points in two-dimensional space. If the points are real and if Cartesian coordinates are used, each axis depicts the potential values of a particular real variable. 3D plot are generated from data defined as Z=f(X,Y). As for 2D plots, there are two ways to obtain a 3D plot depending on the way the (X,Y,Z) values are defined. Types of plot: 1. Line Plot: Line plots are a useful way to compare sets of data or track changes over time. 2D or 3D line plot can be drafted on linear or logarithmic scale based on the requirements.
2. Data Distribution Plots: Visualization of the distribution of data using plots such as histograms, pie charts, or word clouds is known as Data Distribution Plots. 3. Discrete Data Plots: Visualizing discrete data using plots such as bar graphs or stem plots. For example, one can create a vertical or horizontal bar graph where the bar lengths are proportional to the values that they represent.
4. Geographical Plots: It is a plot of the movements of one or more craft relative to the surface of the Earth.
5. Polar Plots: The are the data plots which are done in polar Coordinate System.
6. Contour Plots: A contour plot is a geographical technique for representing a 3-D surface by plotting constant z slices, called the contours, on a 2 Dimensional format.
7. Vector Fields: a vector field is an assignment of a vector to each point in a subset of space. A vector field in the plane can be visualised as a collection of arrows with a given magnitude and direction, each attached to a point in the plane.
2
8. Animation Plots: Animations are generated from a list (or other iterable) of graphics objects.
Questions: 1. Consider a gulfstream 4 twin-turbofan executive transport aircraft. Calculate and plot the thrust required curve at an altitude of 13000 ft. Assuming weight of the aircraft is 73000 pounds. The airplane data are S=950 sq ft, AR= 5.92, Cdo=0.015, k=0.08.
First, we select a range of Velocities required for the graph between thrust and velocity. Next we calculate coefficient of lift using the formula: Cl= 2(WEIGHT)/(DESITY)*(VELOCITY)^2*(AREA)
Next we calculate coefficient of drag using the formula: Cd=Cdo+k*Cl^2 Which gives: Cd= 0.015+0.08*Cl^2
Next Thrust is calculated with the formula: Thrust=0.5*(DENSITY)*(VELOCITY)^2*(AREA)*(Cd) And thus graph between thrust and velocity is plotted.
MATLAB Results: We put the following code in matlab: velocity=100:100:1300 density=0.00089068 weight=73000 area=950 Coeff_lift=2*weight./density*velocity.^2*area Coeff_drag=0.015+0.08*Coeff_lift.^2 Thrust=0.5.*density.*velocity.^2.*area.*Coeff_drag drag=0.5.*density.*velocity.^2.*area.*Coeff_lift
3
In command window: plot(velocity,Thrust)
Result in command window: >> velocity =
Columns 1 through 11
100 1000
200
300
1100
Columns 12 through 13
1200
density =
8.9068e-04
weight =
73000
area =
1300
400
500
600
700
800
900
4 950
Coeff_lift =
1.0e+17 *
0.0156 0.0623 0.1402 0.2492 1.5572 1.8843 2.2424 2.6317
0.3893
0.5606
0.7630
0.9966
1.2614
0.1212
0.2514
0.4658
0.7946
1.2728
0.0128
0.0383
0.0966
0.2152
0.4362
Coeff_drag =
1.0e+33 *
0.0002 0.0031 0.0157 0.0497 1.9400 2.8403 4.0228 5.5408
Thrust =
1.0e+39 *
0.0000 0.0001 0.0006 0.0034 0.8208 1.4540 2.4508 3.9616
drag =
5 1.0e+23 *
0.0001 0.0011 0.0053 0.0169 0.6588 0.9646 1.3661 1.8817
Graph Obtained:
0.0412
0.0854
0.1582
0.2699
0.4323
6
2. From the above Values, plot and analyse variation of Cl^(3/2)/Cd, Cl/Cd, Cl^(1/2)/Cd Curves.
velocity=100:100:1300 density=0.00089068 weight=73000 area=950 Coeff_lift=2*weight./density*velocity.^2*area Coeff_drag=0.015+0.08*Coeff_lift.^2 R1=Coeff_lift.^(3/2) Ratio1=R1./Coeff_drag Ratio2=Coeff_lift./Coeff_drag R2=Coeff_lift.^0.5 Ratio3=R2./Coeff_drag
Program Compilation: >> KarthoVampee2
velocity =
Columns 1 through 5
100
200
300
400
500
800
900
1000
Columns 6 through 10
600
700
Columns 11 through 13
1100
density =
1200
1300
7
8.9068e-04
weight =
73000
area =
950
Coeff_lift =
1.0e+17 *
Columns 1 through 6
0.0156
0.0623
0.1402
0.2492
0.3893
0.5606
1.5572
1.8843
2.2424
Columns 7 through 12
0.7630
0.9966
Column 13
2.6317
1.2614
8
Coeff_drag =
1.0e+33 *
Columns 1 through 6
0.0002
0.0031
0.0157
0.0497
0.1212
0.2514
1.9400
2.8403
4.0228
0.0393
0.0768
0.1327
0.6145
0.8179
1.0619
Columns 7 through 12
0.4658
0.7946
1.2728
Column 13
5.5408
R1 =
1.0e+26 *
Columns 1 through 6
0.0006
0.0049
0.0166
Columns 7 through 12
0.2108
0.3146
0.4480
9
Column 13
1.3501
Ratio1 =
1.0e-06 *
Columns 1 through 6
0.3168 0.1584
0.1056
0.0792
0.0634
0.0528
0.0317
0.0288
0.0264
0.0502
0.0321
0.0223
Columns 7 through 12
0.0453
0.0396
0.0352
Column 13
0.0244
Ratio2 =
1.0e-14 *
Columns 1 through 6
0.8027
0.2007
0.0892
10
Columns 7 through 12
0.0164
0.0125
0.0099
0.0080
0.0066
0.0056
1.5785
1.9731
2.3677
3.9462
4.3408
4.7354
Column 13
0.0047
R2 =
1.0e+08 *
Columns 1 through 6
0.3946
0.7892
1.1839
Columns 7 through 12
2.7623
3.1569
Column 13
5.1300
Ratio3 =
1.0e-21 *
3.5516
11
Columns 1 through 6
0.2034
0.0254
0.0075
0.0032
0.0016
0.0009
0.0002
0.0002
0.0001
Columns 7 through 12
0.0006
0.0004
0.0003
Column 13
0.0001
Codes in Command Window: plot(velocity,Ratio1); hold on plot(velocity,Ratio2); hold on plot(velocity,Ratio3)
Graph Obtained:
12
3. By volume, dry air contains 78.09% nitrogen, 20.95% oxygen, 0.93% argon, 0.04% carbon dioxide, and small amounts of other gases. Express this Data in terms of a Pie Chart for better understanding. MATLAB Codes: X = [78.09 0.93 20.95 0.04]; >> labels = {'Nitrogen' 'Argon' 'Oxygen' 'Carbondioxide and Other Gases'}; >> pie(X,labels)
Result:
Interpretation: From the above graphs, we not only get an idea of variation of different parameters with respect to a constantly varying variable but also get to compute the value of required parameters at any given point without mathematical interpolation.
13
4. Various Flight paths have been given along with their magnitudes of ranges it travelled. Interpret the data using visualisation.
MATLAB Code: z = eig(randn(10)); compass(z)
Result:
Interpretation: Thus the Flight Paths of Various Aircrafts taking off an airport have been visualized and interpreted.
14
5. The error occurred in measuring the airspeed by the onboard Pitot-Static tube is calculated for different speeds in terms of Mach Number. Interpret the data in MATLAB.
MATLAB Code: x = 0:0.1:1; errorbar(x,exp(โx), 0.5*rand(1,length(x)),โdโ)
Result:
Interpretation: Hence the error obtained in calculation of Airspeed for different Mach Numbers have been interpreted and analysed.
15
3D Plot Theory: Some types of 3D graphical interpretation and its examples are as follows:
Mesh Plot: The mesh function creates a wireframe mesh. By default, the color of the mesh is proportional to the surface height. z = peaks(25); figure mesh(z) Surface Plot: The surf function is used to create a 3-D surface plot. surf(z) colormap(jet)
Surface Plot (with Shading): The surfl function creates a surface plot with colormap-based lighting. For smoother color transitions, use a colormap with linear intensity variation such as pink. surfl(z) colormap(pink) % change color map shading interp
% interpolate colors across lines and faces
Contour Plot: The contour function is used to create a plot with contour lines of constant value. contour(z,16) colormap default
% change color map
Quiver Plot: The quiver function plots 2-D vectors as arrows. x = -2:.2:2; y = -1:.2:1;
16
[xx,yy] = meshgrid(x,y); zz = xx.*exp(-xx.^2-yy.^2); [px,py] = gradient(zz,.2,.2);
quiver(x,y,px,py) xlim([-2.5 2.5])
Problems:
1. The Variation of Heat of the jet flow coming out of the Nozzle of a turbojet engine is given by the equation: 5 ๐= 1 + ๐ 2 + ๐๐2 Where Q is the heat generated, T is the nozzle exit temperature and Ti is the Nozzle inlet temperature. Plot the variation of Heat with these two parameters.
MATLAB CODES: X = -3 : .1 : 3; [x,y] = meshgrid(X,X); z = 1./(3+x.^2+y.^2); surfl(z) shading interp colormap hot xlabel('x'); ylabel('y');
17
GRAPH:
Interpretation: From this Graph of variation of Heat generated to Temperatures at inlet and outlet, we get to know the locations of Hotspots throughout the flow in nozzle at high speeds of the turbojet aircrafts.
2. Visualise the Earthโs Surface using the 3D graph along with the Latitude and Longitude of Earth in the graph.
MATLAB CODE: sphere(50) axis 'equal'
18
GRAPH:
Interpretation: From this visualisation, we get a rough 3D image of Earth which can be used to plot various points such as the poles, magnetic poles, etc. Also they can be used to track satellite trajectories at the time of launch etc.
3. The variation of Dynamic Viscosity of Ethanol flowing at 25แต inside a tube is given by the relation: ยต = cos 4๐๐ + 2 where ฯ is the density of the ethanol in the flow. Plot the variation of density and Dynamic Viscosity and analyse.
MATLAB Codes: z = 0: .03 : 1; r = cos(4*pi*z)+2; cylinder(r)
19
GRAPH:
Interpretation: As the dynamic viscosity varies with the density with a function of Cosine. We obtain the graph with varies the same way harmonically again and again throughout the flow. It is a point to be notes that density does not remains constant and depends on several factors such as the temperature, pressure etc.
20
4. When air passes through a series of Expansion waves, there is change in temperature along with various parameters related to them. Take random values of Two expansion waves and use a suitable plot to depict the relation between them.
MATLAB CODE: x = [0 2.5; 5 2.5; 5 2.5; 0 2.5]; y = [0 0; 0 -1; 0 -1; 0 0]; z = [0 0; 0 0; 2 2; 2 2]; fill3(x,y,z, rand(4,2)) xlabel('x'); ylabel('y'); zlabel('z'); view(120, 50) grid
GRAPH:
21
5. The Infrared sensors of combat Heli-carriers used advanced algorithms to detect an obstacle such as an elevated mountain, transforms it into an polynomial equations and interprets the height and other parameters for safer cruise. Consider a equation of the mountain depicted by the algorithm to be: 1 ๐ง= log 8 + ๐ฅ 3 + 3๐ฆ 2 Plot the 3D visualisation of this obstacle as done by the On-board Systems.
MATLAB CODE: X = -3:.1:3; [x,y] = meshgrid(X,X); z = 1./(8+x.^2+3*y.^2); contour3(z) xlabel('x'); ylabel('y');
GRAPH:
Interpretation: The Heli-carrierโs on board computers uses this data to find the altitude of the obstacle and find an alternate safe Cruise path for it to fly.
22
Eigen Values and Vectors
Theory: e = eig(A) returns a column vector containing the eigenvalues of square matrix A. [V,D] = eig(A) returns diagonal matrix D of eigenvalues and matrix V whose columns are the corresponding right eigenvectors, so that A*V = V*D. [V,D,W] = eig(A) also returns full matrix W whose columns are the corresponding left eigenvectors, so that W'*A = D*W'. The eigenvalue problem is to determine the solution to the equation Av = ฮปv, where A is an nby-n matrix, v is a column vector of length n, and ฮป is a scalar. The values of ฮป that satisfy the equation are the eigenvalues. The corresponding values of v that satisfy the equation are the right eigenvectors. The left eigenvectors, w, satisfy the equation wโA = ฮปwโ. e = eig(A,B) returns a column vector containing the generalized eigenvalues of square matrices A and B. [V,D] = eig(A,B) returns diagonal matrix D of generalized eigenvalues and full matrix V whose columns are the corresponding right eigenvectors, so that A*V = B*V*D. [V,D,W] = eig(A,B) also returns full matrix W whose columns are the corresponding left eigenvectors, so that W'*A = D*W'*B. The generalized eigenvalue problem is to determine the solution to the equation Av = ฮปBv, where A and B are n-by-n matrices, v is a column vector of length n, and ฮป is a scalar. The values of ฮป that satisfy the equation are the generalized eigenvalues. The corresponding values of v are the generalized right eigenvectors. The left eigenvectors, w, satisfy the equation wโA = ฮปwโB. [___] = eig(A,balanceOption), where balanceOption is 'nobalance', disables the preliminary balancing step in the algorithm. The default for balanceOption is 'balance', which enables balancing. The eig function can return any of the output arguments in previous syntaxes. [___] = eig(A,B,algorithm), where algorithm is 'chol', uses the Cholesky factorization of B to compute the generalized eigenvalues. The default for algorithm depends on the properties of A and B, but is generally 'qz', which uses the QZ algorithm. If A is Hermitian and B is Hermitian positive definite, then the default for algorithm is 'chol'. [___] = eig(___,eigvalOption) returns the eigenvalues in the form specified by eigvalOption using any of the input or output arguments in previous syntaxes. Specify eigvalOption as 'vector' to return the eigenvalues in a column vector or as 'matrix' to return the eigenvalues in a diagonal matrix.
23
Problems: 1. The Stress on X,Y and Z axes of a given material Niantic-75 used in the manufacturing of Combustion Chamber is given by the Eigen Values of this Matrix. Compute using MATLAB.
MATLAB Code: MatrixA=[3 2 4;2 0 2;4 2 3] e=eig(MatrixA)
Result: MatrixA =
3
2
4
2
0
2
4
2
3
e= -1.0000 -0.4721 8.4721
Interpretation: The Stress Values are 1, 0.4721 and 8.4721 N/m2 on the 3-Axis respectively. The Negative Sign denotes the Nature of the stress which is either Compressive or Tensile.
24
2. A single Crystal of Diamond used for cutting Aircraft Parts is loaded as follows on its [100] , [010] and [001] axes. What are the normal stresses on the orthogonal [111], [110], [112] axes?
MATLAB Code: MatrixB=[100 20 0;20 0 20;0 20 100]; >> e=eig(MatrixB)
Result: e= -7.4456 100.0000 107.4456
Interpretation: The Normal Stress along the orthogonal plane of [111], [110], [112] are -7.4456, 100.0, 107.4456 respectively.
25
Polynomial Evaluation: Theory: y = polyval(p,x) evaluates the polynomial p at each point in x. The argument p is a vector of length n+1 whose elements are the coefficients (in descending powers) of an nth-degree
polynomial: p(x)=p1xn+p2xnโ1+...+pnx+pn+1. The polynomial coefficients in p can be calculated for different purposes by functions like polyint, polyder, and polyfit, but you can specify any vector for the coefficients. To evaluate a polynomial in a matrix sense, use polyvalm instead. [y,delta] = polyval(p,x,S) uses the optional output structure S produced by polyfit to generate error estimates. delta is an estimate of the standard error in predicting a future observation at x by p(x).
y = polyval(p,x,[],mu) or [y,delta] = polyval(p,x,S,mu) use the optional output mu produced by polyfit to center and scale the data. mu(1) is mean(x), and mu(2) is std(x). Using these values, polyvalcenters x at zero and scales it to have unit
standard deviation. This centering and scaling transformation improves the numerical properties of the polynomial. We use Polyint function in orde to perform the Integration Functions in MATLAB.
Problems: 1. The weight of an ideal round cut diamond which is used in cutting the Aluminium for Aircraft can be modelled by the equation: w=0.0021d3-0.060d2+0.23d where w is the weight of the diamond in carats and d is the diameter in millimetres. For Cutting a specific Part, diamond of 30 Millimetres is required. Determine the Weight of diamond required.
26
MATLAB Codes: p=[0.0021 -0.060 0.023]; x=[30]; y=polyval(p,x)
Result: y =0.1130
Interpretation: This Result gives is the Value of the Volume of the Diamond at x=30 mm. Hence a diamond with volume of 0.1130 mm3 is required for the specific cutting process.
2. Consider a Symmetric Airfoil whose Mid-section is in the form of the rectangle with sides of magnitude of Z, (Z+8), (Z+2) respectively. The volume is given by the equation: V=4z3+16z2+12z+15 A particular NACA Series Airfoil should have X=12 mm of dimension. Find the Volume of the Rectangle used in the Airfoil.
MATLAB Codes: Volume=[4 16 12 15]; z=[12]; y=polyval(Volume,z)
Result: y = 9375
Interpretation: Hence, The Volume of the rectangular section of the required airfoil is 9375 mm3.
27
CURVE FITTING: Theory: To interactively fit a curve, follow the steps in this simple example: 1. Load some data at the MATLABยฎ command line. load hahn1 2. Open the Curve Fitting app. Enter: cftool 3. In the Curve Fitting app, select X Data and Y Data. Curve Fitting app creates a default interpolation fit to the data. 4. Choose a different model type using the fit category drop-down list, e.g., select Polynomial. 5. Try different fit options for your chosen model type. 6. Select File > Generate Code. Curve Fitting app creates a file in the Editor containing MATLAB code to recreate all fits and plots in your interactive session. Alternatively, Polynomial curve fitting Syntax p = polyfit(x,y,n) [p,S] = polyfit(x,y,n) [p,S,mu] = polyfit(x,y,n) Description: p = polyfit(x,y,n)
returns the coefficients for a polynomial p(x) of degree n that is a best fit (in a least-squares sense) for the data in y. The coefficients in p are in descending powers, and the length of p is n+1 p(x)=p1xn+p2xnโ1+...+pnx+pn+1. [p,S] = polyfit(x,y,n) also returns a structure S that can be used as an input to polyval to obtain error estimates. [p,S,mu] = polyfit(x,y,n) also returns mu, which is a two-element vector with and scaling values. mu(1) is mean(x), and mu(2) is std(x). Using these values, polyfit centers x at zero and scales it to have unit standard deviation,
หx= โพx xโ. xโ ฯ
centering
28
This centring and scaling transformation improves the numerical properties of both the polynomial and the fitting algorithm.
Questions: 1. The Coordinates of a part of the Horizontal Stabilizer of an Aircraft is given as follows: X Y 1
14
2
27
3
40
4
55
5
68
6
75
7
84
8
91
9
104
10
125
11
136
Plot the Graph using Curve Fitting Tool.
MATLAB Codes: X_coordinates = [1 2 3 4 5 6 7 8 9 10 11]; >> Y_coordinates = [14 27 40 55 68 75 84 91 104 125 136]; >> polyfit(X_coordinates,Y_coordinates,1)
29
Result: ans =
11.6545
4.5273
Interpretation: From the graph, We come to know that the plot of the given coordinates is of the Horizontal Stabilizer of the given aircraft.
2. The Variation between the Degree Shift of the Flaps mounted on the Wings of the aircraft which is used to increase the camber of the Aircraft wing with the Percentage increase in Coefficient of Lift varies with each other in a Parabolic form. With the given Data, prove it graphically. X Y 0
1.8
1
1.98
2
1.9926
3
2.07
4
2.67
30
5
2.88
6
3.00
MATLAB Codes: X_coordinates = [0 1 2 3 4 5 6]; >> Y_coordinates = [1.8 1.98 1.9926 2.07 2.67 2.88 3.00]; polyfit(X_coordinates,Y_coordinates,1)
Result: ans = 0.0206
0.0933
1.7938
31
Solving Algebraic and Transcendental Equations: Theory: If eqn is an equation, solve(eqn, x) solves eqn for the symbolic variable x. Use the == operator to specify the familiar quadratic equation and solve it using solve. syms a b c x eqn = a*x^2 + b*x + c == 0; solx = solve(eqn, x) solx = -(b + (b^2 - 4*a*c)^(1/2))/(2*a) -(b - (b^2 - 4*a*c)^(1/2))/(2*a) solx is a symbolic vector containing the two solutions of the quadratic equation. If the input eqn is an expression and not an equation, solve solves the equation eqn == 0.
Questions: 1. The Error in Calculating the Pressure at a Given Altitude is given by the equation: 8x3+12x2+5x+2=0 Find the value of X. As 3 different values are obtained, the highest possible error Magnitude is considered.
MATLAB Code: Polynomial=[8 12 5 2]; >> root=roots(Polynomial)
Result: root = -1.1448 + 0.0000i -0.1776 + 0.4322i -0.1776 - 0.4322i
Interpretation: Hence, the three required roots of the given polynomial are obtained.
32
2. The Given quadratic equation is the equation obtained while solving for a constant that determines the Oswaldโs Efficiency value which is used in the calculation of various parameters in Flight Dynamics. Solve it using MATLAB. 12x2+4x+16=0
MATLAB Code: Polynomial=[12 4 16]; >> root=roots(Polynomial)
Result: root = -0.1667 + 1.1426i -0.1667 - 1.1426i
Interpretation: We get the 2 different values of Oswaldโs Constant from the MATLAB.
Questions on Transcendental Equations: 1. The Resonance occurring on a Aircraft Wing on Flight is given by the equation: ๐(๐ฝ) = cosh ๐ฝ โ cos ๐ฝ + 1 = 0 Where ๐ฝ๐4 = (2๐๐๐ )2 (
๐๐ฟ3 ) ๐ธ๐ผ
Where ๐๐ = ith natural frequency m= mass of the beam L= Length of the beam E= Modulus of Elasticity I=Moment of inertia of the Cross-section Find the Angles at which resonance occurs at the wing of this Airplane.
33
MATLAB Code: >> syms x >> Eqn2 = cosh(x)*cos(x)+1 == 0; >> solx = solve(Eqn2,x)
Result: solx = -212.05750411731104359622842837137
Interpretation: The given value is close to 1.177 Radians at which there can be observed radians on the wing of this Aircraft.
2. The Specific Fuel input to the Engine for an Commercial Aircraft is given by the Lambertโs Equation: ๐๐ฅ + ๐ log ๐ฅ + ๐ โ๐ฅ + ๐ = 0 For a particular Aircraft Flying at 30,000 ft, the Specific Fuel Input is given by the equation: 3๐ฅ + 5 log ๐ฅ + 9โ๐ฅ + 10 = 0 Solve the equation using MATLAB.
MATLAB Code: Eqn = 3*y+5*log(y)+9*sqrt(y)+10 ==0; >> solx=solve(Eqn,y)
Result: solx =0.078092206567782850204281665495309
Interpretation: Hence, The Specific Fuel Input for this Aircraft at 30,000 ft is 0.078092.
34
System of Linear Equations Theory:
Questions: 1. The Three-Moment Equation for determining the Stress across a Beam is given by: 6๐1 ๐ฅฬ
1 6๐2 ๐ฅฬ
2 ๐๐ ๐ฟ1 + 2๐๐ต (๐ฟ1 + ๐ฟ2 ) + ๐๐ถ ๐ฟ2 = + ๐ฟ1 ๐ฟ2
The equations obtained after substituting the values are: 1. 22MA + 5MB=172.36 2. 5MA + 18MB=95.32 Solve for both the Moments.
35
MATLAB CODE: MAtA=[22 5;5 18]; MatB=[172036;95.32] X=linsolve(MatA,MatB)
Solution: X= 7.0778 3.3295
Interpretation: Hence we obtain the Values of MA and MB to be 7.0778 and 3.3295 respectively.
2. The Three-Moment Equation for determining the Stress across a Beam is given by: 6๐1 ๐ฅฬ
1 6๐2 ๐ฅฬ
2 ๐๐ ๐ฟ1 + 2๐๐ต (๐ฟ1 + ๐ฟ2 ) + ๐๐ถ ๐ฟ2 = + ๐ฟ1 ๐ฟ2 The equations obtained after substituting the values are: 1. 24MA + 16MB + 3MC= 62.5 2. 5MA + 7MB + 12MC= 158.63 3. 8MA + 2MB + 9Mc= 52.32
MATLAB Codes: MAtA=[24 16 3;5 7 12;8 2 9]; MatB=[62.5;158.83;52.32] X=linsolve(MatA,MatB)
36
Result: X= -6.5268 12.0195 8.9440
Interpretation: Hence we obtain the Values of MA, MB and MC to be 6.5268, 12.0944 and 8.944 respectively.
3. The mass flow rate of air be 2 kg/s and 5 kg/s and mass flow rate of fuel be 0.001kg/s and 0.002kg/s and the thrust produced be 12,487N and 14,698N. Calculate the mass flow rate of air and fuel for maximum thrust generated by the Aircraft.
MATLAB Code: a=[ 2 5;0.001 0.002]; b=[12,487; 14,698]; linsolve(a,b)
Results: ans = 3.56212 0.01245
Interpretation: Hence the Mass flow rate and fuel required for generating maximum thrust has been calculated.
37
Numerical Integration of Single/Double/Triple Integral Theory: Single Integration: Syntax q = integral(fun,xmin,xmax) q = integral(fun,xmin,xmax,Name,Value)
Description q = integral(fun,xmin,xmax) numerically integrates function fun from xmin to xmax using global adaptive quadrature and default error tolerances. q = integral(fun,xmin,xmax,Name,Value) specifies additional options with one or more Name,Value pair arguments. For example, specify 'WayPoints' followed by a vector of real or complex numbers to indicate specific points for the integrator to use.
Double Integration: Syntax q = integral2(fun,xmin,xmax,ymin,ymax) q = integral2(fun,xmin,xmax,ymin,ymax,Name,Value)
Description q = integral2(fun,xmin,xmax,ymin,ymax) approximates the integral of the function z = fun(x,y) over the planar region xmin โค x โค xmax and ymin(x) โค y โค ymax(x). q = integral2(fun,xmin,xmax,ymin,ymax,Name,Value) specifies additional options with one or more Name,Value pair arguments.
Triple Integration: Syntax q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax) q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,Name,Value)
38
Description q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax) approximates the integral of the function z = fun(x,y,z) over the region xmin โค x โค xmax, ymin(x) โค y โค ymax(x) and zmin(x,y) โค z โค zmax(x,y). q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,Name,Value) specifies additional options with one or more Name,Value pair arguments.
Questions: 1. The Spar Extension of the Airfoil NACA 2414 in a section middle of the Airfoil is evaluated by integrating the Equation of the Curvature by keeping the limits as distances of both the ends from the Root Chord Locations respectively. Get the Spar Extension value of a section whose endpoints are at a distances of 4 and 9 meters respectively from the Root Chord respectively.
MATLAB CODES: >> fun = @(x) (1+x)./(x+2.*sqrt(x)-3); >> q=integral(fun,4,9)
Result: q=
4.4280
Interpretation: From the Integration, we get to know that a spar of length 4.428m is required to be placed at that area of the airfoil.
39
2. A satellite is launched and is in a circular orbit at an altitude of 36000 kms in a geostationary orbit. The satellite has to transferred to a elliptical orbit using Hoffmannโs Transfer process. For this, the onboard impulse Thrusters2*cos(x) have to generate impulse thrust to rotate the satellite at a particular angle. In Hoffmannโs transfer, the satellite has to rotated to an angle of 90 degrees. The amount of thrust required is obtained by integrating the equation with the desired limits.
MATLAB Codes: >> fun = @(x) sin(x).*4.*cos(x).*exp(2*cos(x)+1); >> r=integral(fun,0,pi/2)
Result: r= 22.8038
Interpretation: Hence an Impulse force of 22.80 Newtons has to be propelled by the onboard thrusters in order to switch to the desired orbit. 3. When an Aircraft flies in supersonic speeds, there is heat generation on the outer surfaces of the aircraft. Considering the surface to be a 2 dimensional object, The heat generation is taken in 2 components which is in X and Y direction. On a particular areal section of an aircraft flying at Mach 2.8, The heat generation in Kilojoules is given by integrating the given equation with the area magnitudes as limits. Obtain the heat generated on this Particular aircraft.
MATLAB Code: >> func = @(x,y) 1+8.*x.*y; >> s=integral2(func,0,3,1,2)
Result: s = 57
40
Interpretation: The Heat generated on that particular part of the surface is obtained to be 57 Kilojoules by the method of double Integration. 4. Consider a SR-71, a supersonic Aircraft flying at an altitude of 50000 ft above sea level at a speed of Mach 3.9. A shock wave is formed in the form of a 3 dimensional cone. The volume inside that Shock Cone is known as the zone of Action where there is disturbance of the air molecules in it. Integrating the below equation gives the Volume of the Mach Cone which is termed as the zone of action in this case of supersonic flight. Integrate and obtain the Volume of zone of action for this case.
MATLAB Code: >> funct = @(x,y,z) x.*y.*z; >> xmin=0 >> xmax=1; >> ymin=0; >> ymax=1; >> zmin=@(x,y) sqrt(x.^2+y.^2); >> zmax= 2; >> q = integral3(funct,xmin,xmax,ymin,ymax,zmin,zmax)
Result: q= 0.375
Interpretation: The Volume of the Mach cone or the zone of action is determined to be 0.375 Cubic kilometres.
41
Integration of Numeric Data Theory: Trapz: Syntax Q = trapz(Y) Q = trapz(X,Y) Q = trapz(___,dim)
Description Q = trapz(Y) computes the approximate integral of Y via the trapezoidal method with unit spacing. The size of Y determines the dimension to integrate along: โข โข โข
โข โข
If Y is a vector, then trapz(Y) is the approximate integral of Y. If Y is a matrix, then trapz(Y) integrates over each column and returns a row vector of integration values. If Y is a multidimensional array, then trapz(Y) integrates over the first dimension whose size does not equal 1. The size of this dimension becomes 1, and the sizes of other dimensions remain unchanged. Q = trapz(X,Y) integrates Y with respect to the coordinates or scalar spacing specified by X. If X is a vector of coordinates, then length(X) must be equal to the size of the first dimension of Y whose size does not equal 1. If X is a scalar spacing, then trapz(X,Y) is equivalent to X*trapz(Y). Q = trapz(___,dim) integrates along the dimension dim using any of the previous syntaxes. You must specify Y, and optionally can specify X. If you specify X, then it can be a scalar or a vector with length equal to size(Y,dim). For example, if Y is a matrix, then trapz(X,Y,2) integrates each row of Y.
Cumtrapz: Syntax Q = cumtrapz(Y) Q = cumtrapz(X,Y)
42
Q = cumtrapz(___,dim)
Description
โข โข โข
โข โข
Q = cumtrapz(Y) computes the approximate cumulative integral of Y via the trapezoidal method with unit spacing. The size of Y determines the dimension to integrate along: If Y is a vector, then cumtrapz(Y) is the cumulative integral of Y. If Y is a matrix, then cumtrapz(Y) is the cumulative integral over each column. If Y is a multidimensional array, then cumtrapz(Y) integrates over the first dimension whose size does not equal 1. Q = cumtrapz(X,Y) integrates Y with respect to the coordinates or scalar spacing specified by X. If X is a vector of coordinates, then length(X) must be equal to the size of the first dimension of Y whose size does not equal 1. If X is a scalar spacing, then cumtrapz(X,Y) is equivalent to X*cumtrapz(Y). Q = cumtrapz(___,dim) integrates along the dimension dim using any of the previous syntaxes. You must specify Y, and optionally can specify X. If you specify X, then it can be a scalar or a vector with length equal to size(Y,dim). For example, if Y is a matrix, then cumtrapz(X,Y,2) cumulatively integrates each row of Y.
SQuestions: 1. In the experimentation process of measure surface pressure distribution across a wing surface placed in a supersonic wind tunnel, the Net Lift generated is obtained by integrating the a depending pressure factor with respect to the distance or the position of the sensor with respect to the leading edge tip with the help on integration with unit spacing. The data of the dependent factor and the sensor position is given as follows: Location of probes 0 0.1 0.2 0.4 0.8 1.5 2.7 3.9 5.2 6.5 7.8 9
Depending Pressure Factor 1 0.6111 0.3889 0.222 0.556 0.333 0.7222 0.555 0.3889 0.6578 0.5642 0.1203
43
10
0.892
Find the value of lift generated using the given data with the help of Unit Spacing Integration.
MATLAB Code: >> location = [0 0.1 0.2 0.4 0.8 1.5 2.7 3.9 5.2 6.5 7.8 9 10] >> Factor = [1 0.6111 0.3889 0.222 0.556 0.333 0.7222 0.555 0.3889 0.6578 0.5642 0.1203 0.892] >> y=trapz(location,Factor)
Result: y=
5.0629
Interpretation: Hence a net Lift of 5 Newtons is generated on the scaled-down wing model which is being tested in the supersonic Wind Tunnel.
2. The braking system of the landing Wheels of a Long haul Boeing 787 is being tested. The Static Braking Distance of the wheels is dependent on the Coefficient of Static Friction between the disk brakes used in the flight. The Total braking distance is obtained by integrating the Coefficient of Static Friction values per unit time in minutes. Gives the values of Coefficient of Static friction of a trial. Compute the Static Braking Distance of the flight.
Time(in minutes)
Coeff. Of Static Friction
1
1.13
2
1.68
3
1.86
4
2.032
5
2.521
6
3.12
44
7
4.213
8
5.658
9
7.1453
10
9.546
MATLAB Code: >> Friction_factor = [1.13 1.68 1.86 2.032 2.521 3.12 4.213 5.658 7.1453 9.546]; >> x=cumtrapz(Friction_factor)
Result: x=
Columns 1 through 6
0
1.4050
3.1750
5.1210
7.3975 10.2180
Columns 7 through 10
13.8845 18.8200 25.2217 33.5673
Interpretation: The Static Braking Distances for each time Interval in minutes have been computed for this Flight.
45
Solving Ordinary (Linear) Differential Equations Theory: [t,y] = ode45(odefun,tspan,y0), where tspan = [t0 tf], integrates the system of differential equations y'=f(t,y) from t0 to tf with initial conditions y0. Each row in the solution array y corresponds to a value returned in column vector t. All MATLABยฎ ODE solvers can solve systems of equations of the form y'=f(t,y), or problems that involve a mass matrix, M(t,y)y'=f(t,y). The solvers all use similar syntaxes. The ode23s solver only can solve problems with a mass matrix if the mass matrix is constant. ode15s and ode23t can solve problems with a mass matrix that is singular, known as differential-algebraic equations (DAEs). Specify the mass matrix using the Mass option of odeset. ode45 is a versatile ODE solver and is the first solver you should try for most problems. However, if the problem is stiff or requires high accuracy, then there are other ODE solvers that might be better suited to the problem. See Choose an ODE Solver for more information. [t,y] = ode45(odefun,tspan,y0,options) also uses the integration settings defined by options, which is an argument created using the odeset function. For example, use the AbsTol and RelTol options to specify absolute and relative error tolerances, or the Mass option to provide a mass matrix. [t,y,te,ye,ie] = ode45(odefun,tspan,y0,options) additionally finds where functions of (t,y), called event functions, are zero. In the output, te is the time of the event, ye is the solution at the time of the event, and ie is the index of the triggered event. For each event function, specify whether the integration is to terminate at a zero and whether the direction of the zero crossing matters. Do this by setting the 'Events'property to a function, such as myEventFcn or @myEventFcn, and creating a corresponding function: [value,isterminal,direction] = myEventFcn(t,y). For more information, see ODE Event Location. sol = ode45(___) returns a structure that you can use with deval to evaluate the solution at any point on the interval [t0 tf]. You can use any of the input argument combinations in previous syntaxes. [t,y] = ode23(odefun,tspan,y0), where tspan = [t0 tf], integrates the system of differential equations y'=f(t,y) from t0 to tf with initial conditions y0. Each row in the solution array y corresponds to a value returned in column vector t. All MATLABยฎ ODE solvers can solve systems of equations of the form y'=f(t,y), or problems that involve a mass matrix, M(t,y)y'=f(t,y). The solvers all use similar syntaxes. The ode23s solver only can solve problems with a mass matrix if the mass matrix is constant. ode15s and ode23t can solve problems with a mass matrix that is singular, known as differential-algebraic equations (DAEs). Specify the mass matrix using the Mass option of odeset.
46
[t,y] = ode23(odefun,tspan,y0,options) also uses the integration settings defined by options, which is an argument created using the odeset function. For example, use the AbsTol and RelTol options to specify absolute and relative error tolerances, or the Mass option to provide a mass matrix. [t,y,te,ye,ie] = ode23(odefun,tspan,y0,options) additionally finds where functions of (t,y), called event functions, are zero. In the output, te is the time of the event, ye is the solution at the time of the event, and ie is the index of the triggered event. For each event function, specify whether the integration is to terminate at a zero and whether the direction of the zero crossing matters. Do this by setting the 'Events'property to a function, such as myEventFcn or @myEventFcn, and creating a corresponding function: [value,isterminal,direction] = myEventFcn(t,y). For more information, see ODE Event Location. sol = ode23(___) returns a structure that you can use with deval to evaluate the solution at any point on the interval [t0 tf]. You can use any of the input argument combinations in previous syntaxes.
Questions: 1. Calculate the rate of temperature change with respect to time in the conduction heat transfer of rod of length 10 metre. The material has thermal conductivity of 100W/m2 K and the area of the rod be 12*10-2 metre2.
MATLAB Code: Q=(10:1:100) k=100 A=12*10^-2 t=(Q./-k*A) tspan=[0 400] y0=0 [Q,t] = ode45(@(Q,t)Q./-k*A, tspan, y0) [Q,t]=meshgrid(-10:1:10) R=Q./t surf(Q,t,R) xlabel('Heat flux') ylabel('Temperature change') zlabel('resistance') title('Variation of heat transfer by conduction wrt heat flux, temperature,resistance along the rod')
47
Results:
2. There is spherical tank for storing water. The tank is filled through a hole in the top and drained through a hole in the bottom. If the tankโs radius is r, you can use integration to show that the volume of water in the tank as a function of its height h is given by ๐(โ) = ๐โ2 ๐ โ ๐
โ3 3
Find the Draining rate from the tank.
Solution: Torricelliโs principle states that the liquid ow rate through the hole is proportional to the square root of the height h. Further studies in fluid mechanics have identified the relation more precisely, and the result is that the volume ow rate through the hole is given by ๐ = ๐ถ๐ ๐ดโ2๐โ where A is the area of the hole, g is the acceleration due to gravity, and Cd is an experimentally determined value that depends partly on the type of liquid. For water, Cd=0.6 is a common value. We can use the principle of conservation of mass to obtain a
48
differential equation for the height h. Applied to this tank, the principle says that the rate of change of liquid volume in the tank must equal the ow rate out of the tank; that is,
Draining of a spherical tank
๐โ 0.0334โโ =โ ๐๐ก 10โ โ โ2
MATLAB Code: t=(0:1:247); h=(0:1:10); [t, h]= ode45 (@(t,h) (sqrt(h))/(10*h+h^2),[0,2475], 10) plot(t,h) ,xlabel('Time (sec)'), ylabel('Height (ft)') [t, y] = ode45(@(t,y) 2*exp(-10*t) ,tspan, 2);
Results:
49
Interpretation: The resulting plot is shown in Figure. Note how the height changes more rapidly when the tank is nearly full or nearly empty. This is to be expected because of the effects of the tankโs curvature. The tank empties in 2475 sec, or 41 min. This value is not grossly different from our rough estimate of 52 min, so we should feel comfortable accepting the numerical results. The value of the nominal time of 2475 sec was found by increasing the nominal time until the plot showed that the height became 0.
3. The pendulum shown in Figure 9.4โ1 consists of a concentrated mass m attached to a rod whose mass is small compared to m. The rodโs length is L. The equation of motion for this pendulum is which is linear and has the solution
๐ ๐(๐ก) = ๐(0) cos โ ๐ก ๐ฟ
MATLAB Code: function xdot = pendulum(t,x) g = 9.81; L = 1; xdot = [x(2); -(g/L)*sin(x(1))]; [ta, xa] = ode45(@pendulum, [0,5], [0.5, 0]); [tb, xb] = ode45(@pendulum, [0,5], [0.8*pi, 0]); plot(ta, xa(:,1), tb,xb(:,1)), xlabel ('Time (s)') ylabel('Angle (rad)'), gtext('Case 1'), gtext('Case 2')
Results:
50
Solving Ordinary (Nonlinear) Differential Equations Theory: In mathematics and science, a nonlinear system is a system in which the change of the output is not proportional to the change of the input. Nonlinear problems are of interest to engineers, biologists, physicists, mathematicians, and many other scientists because most systems are inherently nonlinear in nature. Nonlinear dynamical systems, describing changes in variables over time, may appear chaotic, unpredictable, or counterintuitive, contrasting with much simpler linear systems. Typically, the behaviour of a nonlinear system is described in mathematics by a nonlinear system of equations, which is a set of simultaneous equations in which the unknowns (or the unknown functions in the case of differential equations) appear as variables of a polynomial of degree higher than one or in the argument of a function which is not a polynomial of degree one. In other words, in a nonlinear system of equations, the equation(s) to be solved cannot be written as a linear combination of the unknown variables or functions that appear in them. Systems can be defined as nonlinear, regardless of whether known linear functions appear in the equations. In particular, a differential equation is linear if it is linear in terms of the unknown function and its derivatives, even if nonlinear in terms of the other variables appearing in it. As nonlinear dynamical equations are difficult to solve, nonlinear systems are commonly approximated by linear equations (linearization). This works well up to some accuracy and some range for the input values, but some interesting phenomena such as solitons, chaos, and singularities are hidden by linearization. It follows that some aspects of the dynamic behaviour of a nonlinear system can appear to be counterintuitive, unpredictable or even chaotic. Although such chaotic behaviour may resemble random behaviour, it is in fact not random. For example, some aspects of the weather are seen to be chaotic, where simple changes in one part of the system produce complex effects throughout. This nonlinearity is one of the reasons why accurate long-term forecasts are impossible with current technology. NONSTIFF ODES This page contains two examples of solving non-stiff ordinary differential equations using ode45. MATLAB has three solvers for non-stiff ODEs. โข
ode45
โข
ode23
โข
ode113
For most non-stiff problems, ode45 performs best. However, ode23 is recommended for problems that permit a slightly cruder error tolerance or in the presence of moderate stiffness. Likewise, ode113 can be more efficient than ode45 for problems with stringent error tolerances.
51
If the non-stiff solvers take a long time to solve the problem or consistently fail the integration, then the problem might be stiff. See for more information. STIFF ODES This page contains two examples of solving stiff ordinary differential equations using ode15s. MATLABยฎ has four solvers designed for stiff ODEs. โข
ode15s
โข
ode23s
โข
ode23t
โข
ode23tb
For most stiff problems, ode15s performs best. However, ode23s, ode23t, and ode23tb can be more efficient if the problem permits a crude error tolerance.
Questions: 1. The rate of fuel consumption of a turbojet engine varies constantly with respect to amount of thrust generated by the Engine. The Fuel inlet valve has to constantly controlled to control the fuel input. The Fuel consumption varies with the thrust differentially with the equation: ๐ฆ = ๐ฅโฒ2 โ 3๐ฅ + 27
Solve the equation for data of Thrust and Fuel input Values.
52
MATLAB Code: Fun=@(x,y) y=x1^2-3*x+27 A= [0 12]; B = 27; [x,y] = ode45(@(x,y) (fun,A, B) plot(x,y,'-o')
Result: A=
0.121 1.3721 1.7443 1.1164 1.4885 3.3492 5.2098 7.0705 8.9312 12.1312 15.3312
53
18.5312 21.7312 24.9312 28.1312 31.3312 34.5312 37.7312 40.9312 44.1312 47.3312 50.5312 53.7312 56.9312 60.1312 63.3312 66.5312 69.7312 72.9312 76.1312 79.3312 82.5312 85.7312
54
88.9312 92.1312 95.3312 98.5312 101.7312 104.9312 108.1312 111.3312 114.5312 117.7312 120.9312 124.1312 125.0984 126.0656 127.0328 128.0000
B=
1.0+06 *
55
0.0200 0.0211 0.0223 0.0237 0.0252 0.0353 0.0491 0.0668 0.0884 0.1344 0.1918 0.2606 0.3408 0.4323 0.5352 0.6494 0.7750 0.9120 1.0603 1.2200 1.3911 1.5736
56
1.7674 1.9726 2.1891 2.4170 2.6563 2.9069 3.1689 3.4423 3.7270 4.0232 4.3306 4.6495 4.9797 5.3212 5.6742 6.0385 6.4142 6.8012 7.1996 7.6094 8.0305 8.4630
57
8.9069 9.0433 9.1807 9.3192 9.4587
Graph:
Interpretation: Thus different values of Fuel input factor for different thrusts generated by the engines are being computed and plotted for observations.
58
2. The Icing is a common phenomenon occurring on aircraft body flying at high altitudes of at cold temperatures. Ina scenario, where Gulfstream 4 is flying at higher altitudes, the ice formation on its wings is dependent on the second differential of the Ambient temperature around which it is flying. The relation is given by the differential equation: ๐
๐โฒโฒ โ ๐โฒ = ๐๐ ๐๐
Interpret this differential Equation using MATLAB.
MATLAB Code: fun=@(y,t) y2-y1^2=t.^2*exp(t) A= [0 1.41]; B = 5.65; [a,b] = ode23(@(a,b) fun,A, B) plot(a,b,'-o')
Result: a=
1.343 1.2310 1.2230 1.5630
59
0.7800 0.7050 0.8460 0.9870 1.1280 1.2690 1.4100 b= 5.6500 5.6898 5.8090 6.0079 6.2862 6.6441 7.0814 7.5983 8.1948 8.8707 9.6262
60
Graph:
Interpretation: Thus the Deposition of ice gradients for a given range of temperatures are being computed.
3. The visibility of the Aircraftโs Wing mounted lights varies with the change in humidity. The expresssion that gives a relation between the intensity from the light with the humidity is given by: ๐ฆโฒโฒ2 + 3๐ฆ = ๐ก 3 โ 1 Where y denotes the Visibility in meters and t represents he humidity present in that place. Solve this differential equation using MATLAB.
61
MATLAB Code: fun=@(y,t) y2.^2+3*y=t.^3-1 A= [5 1]; B = 2; [m,n] = ode113(@(x,y) fun,A, B) plot(x,y,'-o')
Result: m= 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 -2.9999 -2.9998 -2.9997 -2.9993
62
-2.9987 -1.9973 -1.9946 -1.9892 -1.9784 -1.9568 -1.9136 -1.8273 -1.6546 -1.3546 -1.0546 -0.7546 -0.4546 -0.1546 0.1454 0.4454 0.7454 1.0000
63
n=
0 -0.0000 -0.0000 -0.0001 -0.0001 -0.0002 -0.0005 -0.0010 -0.0020 -0.0040 -0.0081 -0.0162 -0.0323 -0.0646 -0.1287 -0.2558 -0.5052 -0.9853 -1.8737 -3.3886
64
-5.3233 -6.5786 -7.3495 -7.7827 -7.9760 -7.9787 -7.7918 -7.3672 -6.7500
Interpretation: Hence the variation between these two factors are being computed.
65
Solving Parabolic Partial Differential Equations Theory: A parabolic partial differential equation is a type of partial differential equation (PDE). Parabolic PDEs are used to describe a wide variety of time-dependent phenomena, including heat conduction, particle diffusion, and pricing of derivative investment instruments. To define the simplest kind of parabolic PDE, consider a real-valued function u(x,y) of two independent real variables, x and y. A second-order, linear, constant-coefficient PDE for takes the form
and this PDE is classified as being parabolic if the coefficients satisfy the condition.
Usually x represents one-dimensional position and y represents time, and the PDE is solved subject to prescribed initial and boundary conditions. The name "parabolic" is used because the assumption on the coefficients is the same as the condition for the analytic geometry equation
to define a planar parabola. The basic example of a parabolic PDE is the one-dimensional heat equation,
where u(x,t) is the temperature at time t and at position x along a thin rod, and ฮฑ is a positive constant (the thermal diffusivity). The symbol Ut signifies the partial derivative of u with respect to the time variable t, and similarly Uxx is the second partial derivative with respect to x. For this example, t plays the role of y in the general second-order linear PDE: A=๐ผ, E=1, and the other coefficients are zero.
66
Functions: 1. pdepe : pdepe Solve initial-boundary value problems for systems of parabolic and elliptic PDEs in one space variable and time. In the form of: ๐ (๐ฅ, ๐ก, ๐ข,
๐๐ข ๐๐ข ๐ ๐ ๐๐ข ๐๐ข ) = ๐ฅ โ๐ (๐ฅ ๐(๐ฅ, ๐ก, ๐ข, )) + ๐ (๐ฅ, ๐ก, ๐ข, ) ๐๐ฅ ๐๐ก ๐๐ฅ ๐๐ฅ ๐๐ฅ
The PDEs hold for t0 โค t โค tf and a โค x โค b. The interval [a,b] must be finite. m can be 0, 1, or 2, corresponding to slab, cylindrical, or spherical symmetry, respectively. If m > 0, then a must be โฅ 0. In the Equation, f (x,t,u,โu/โx) is a flux term and s (x,t,u,โu/โx) is a source term. The coupling of the partial derivatives with respect to time is restricted to multiplication by a diagonal matrix c (x,t,u,โu/โx). The diagonal elements of this matrix are either identically zero or positive. An element that is identically zero corresponds to an elliptic equation and otherwise to a parabolic equation. There must be at least one parabolic equation. An element of c that corresponds to a parabolic equation can vanish at isolated values of x if those values of x are mesh points. Discontinuities in c and/or s due to material interfaces are permitted provided that a mesh point is placed at each interface.
And pdepe syntax are: sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan) sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan,options) [sol,tsol,sole,te,ie] = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan,options) Where, m: A parameter corresponding to the symmetry of the problem. m can be slab = 0, cylindrical = 1, or spherical = 2. pdefun: A handle to a function that defines the components of the PDE.
67
icfun : A handle to a function that defines the initial conditions. bcfun: A handle to a function that defines the boundary conditions. xmesh: A vector [x0, x1, ..., xn] specifying the points at which a numerical solution is requested for every value in tspan. The elements of xmesh must satisfy x0 < x1 < ... < xn. The length of xmesh must be >= 3. tspan: A vector [t0, t1, ..., tf] specifying the points at which a solution is requested for every value in xmesh. The elements of tspan must satisfy t0 < t1 < ... < tf. The length of tspan must be >= 3. options: Some options of the underlying ODE solver are available in pdepe: RelTol, AbsTol, NormControl, InitialStep, MaxStep, and Events. In most cases, default values for these options provide satisfactory solutions. See odeset for details. 2. pdeval : pdeval Evaluates numerical solution of PDE using output of pdepe and its syntax is: [uout,duoutdx] = pdeval(m,x,ui,xout) Where , m: Symmetry of the problem: slab = 0, cylindrical = 1, spherical = 2. This is the first input argument used in the call to pdepe. x: A vector [x0, x1, ..., xn] specifying the points at which the elements of ui were computed. This is the same vector with which pdepe was called.
68
ui: A vector sol(j,:,i) that approximates component i of the solution at time tf and mesh points xmesh, where sol is the solution returned by pdepe. xout: A vector of points from the interval [x0,xn] at which the interpolated solution is requested.
Questions: 1. Solve the Heat Equation using MATLAB.
MATLAB Code: mu = 1.0; Umax = 5.0; my = 100; ymax = 10.0; mt = 40; tmax = 100.0; A = tmax/((nt+1)^2); y = linspace(0,ymax,my); t = A*((1:mt)+1).^2; u = pdepe(0,@pdfslpde,@pdfslic,@pdfslbc,y,t,[],mu,Umax);
69
2. Solve the 1-Dimensional Diffusion Equation of Helium gas in Air using MATLAB.
MATLAB Code: qv = 1.0; vmax = 5.0; qy = 100; nmax = 10.0; qt = 40; tmax = 100.0; A = tmax/((qt+1)^2); n = linspace(0,nmax,qn); t = A*((1:qt)+1).^2; v = pdepe(0,@pdfslpde,@pdfslic,@pdfslbc,n,t,[],qu,vmax);