Convergence Error in Matlab Code for Fluid Flow Simulation

Click For Summary

Discussion Overview

The discussion revolves around issues encountered while simulating fluid flow using Matlab, specifically focusing on Lifting Line Theory for estimating lift and drag on a 3D wing. Participants are addressing coding errors, plotting discrepancies, and the behavior of efficiency related to taper ratios.

Discussion Character

  • Homework-related
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant describes a problem with their Matlab code, noting that the lift distribution plot shows unexpected results regarding taper ratios, suggesting that higher taper ratios yield greater lift at the wing tip, contrary to their expectations.
  • Another participant responds by stating that the observed efficiency behavior, which increases and then decreases with taper ratio, aligns with expected outcomes for fixed aspect ratio wings, suggesting a maximum efficiency at a taper ratio around 0.4.
  • A separate participant expresses confusion about how to format their code properly in the forum and seeks clarification on the nature of the error they are experiencing.
  • Another participant shares their own experience using similar code for their thesis, indicating they added functionality for calculating geometric twist but does not provide a reference for the original work.
  • One participant raises a concern about the lack of responses to previous posts, hinting at the potential for the thread to be inactive.
  • A new participant introduces a different Matlab coding issue related to an "index out of bounds" error when accessing an array, seeking assistance.

Areas of Agreement / Disagreement

There is no clear consensus on the interpretation of the lift distribution results or the taper ratio's effect on efficiency. Multiple viewpoints exist regarding the expected outcomes of the simulation, and the discussion includes unresolved coding issues.

Contextual Notes

Participants have not fully resolved the assumptions regarding the relationship between taper ratio and lift distribution, nor have they clarified the specific coding errors encountered. The discussion includes varying levels of familiarity with Matlab and coding practices.

HACRS4
Messages
3
Reaction score
0

Homework Statement



My apologies if the error is an obvious one and many thanks in advance for any help given:

I am trying to create a Matlab code that simulates Lifting Line Theory in order to provide an estimate of the lift and drag of a 3D wing. My hope is to later use this as part of an optimization routine for the wing design.

The plot showing the variation of the lift distribution with taper ratio appears to be the wrong way round. That is, it shows that the lift generated at the wing tip is greater for a smaller taper ratio. I thought that it should be the other way around (more taper, less lift generated at the wing tip).

Homework Equations



Code based on the one presented in the following document:

http://faculty.dwc.edu/sadraey/Chapter 5. Wing Design.pdf


The Attempt at a Solution



% Lifting Line Code

clc;clear all;close all

% Input Wing Geometry

for Lambda = 0.25:0.25:1

% Number of wing segments
N_seg = 30;

% Wing Area [m^2]
S = 65;

% Aspect Ratio
AR = 25;

% Twist [deg]
twist = -6;

% Wing Setting Angle/ AoA [deg]
set_ang = 2;

% Wingspan [m]
b = sqrt(AR*S);


% Input Aerofoil Data

% Lift Curve Slope [1/rad]
slope = 6.9;

% Mean Aerodynamic Chord
MAC = S/b;

% Zero Lift Angle of Attack
zl_AoA = -6.56;

% root chord (m)
Root_Chord = (2*S) / ((1 + Lambda) * b);

% tip chord (m)
Tip_Chord = ((2*S) / ((1 + Lambda) * b)) * (1 - ((2* (1 - Lambda)) / b) * (b/2) );

% MAC
MAC = (2/3) * (Root_Chord + Tip_Chord - (Root_Chord*Tip_Chord) / (Root_Chord +Tip_Chord));

% Lifting Line Algorithm

theta = pi/(2*N_seg):pi/(2*N_seg):pi/2;

% create vector containing each segment's angle of attack
alpha = set_ang + twist: -twist/(N_seg-1):set_ang;

z = (b/2)*cos(theta);

% Mean Aerodynamic Chord at each segment (m)
c = Root_Chord * (1 - (1-Lambda)*cos(theta));

mu = c * slope / (4 * b);

LHS = mu .* (alpha-zl_AoA) * (pi/180);

% Determine Coefficients A(i) by Solving N_seg Equations:

for i=1:N_seg

for j=1:N_seg

B(i,j) = sin((2*j-1) * theta(i)) * (1 + (mu(i) * (2*j-1)) / sin(theta(i)));

end

end

A=B\transpose(LHS);

for i = 1:N_seg

sum1(i) = 0;
sum2(i) = 0;

for j = 1 : N_seg

sum1(i) = sum1(i) + (2*j-1) * A(j)*sin((2*j-1)*theta(i));
sum2(i) = sum2(i) + A(j)*sin((2*j-1)*theta(i));

end
end

% Determine Lift Coefficient For Each Segment

CL = 4*b*sum2 ./ c;

% Plot Lift Distribution

CL1=[0 CL];
y_s=[b/2 z];

if Lambda == 0.25
plot(y_s,CL1,'-o')
elseif Lambda == 0.5
plot(y_s,CL1,'-*')
elseif Lambda == 0.75
plot(y_s,CL1,'-s')
else
plot(y_s,CL1,'-d')
end
hold on

% Output Lift Coefficient for Wing

CL_wing = pi * AR * A(1)

% Output Oswald Efficiency Factor Induced Drag coefficient

for n = 2:30

delta(n) = n * (A(n)/A(1))^2;

end

delta1 = sum(delta);

e = 1 / (1 + delta1)

CD_induced = CL_wing^2 / (pi * e * AR)

end


% Plot Elliptical Lift Distribution For Comparison

y_ellipse = linspace(0,(b/2),100);

for i = 1:length(y_ellipse)

CL_ellipse(i) = CL1(end) * sqrt(1 - ((2*y_ellipse(i)) / b)^2 );

end

plot (y_ellipse, CL_ellipse, 'r-')

grid on
title('Variation of Lift distribution with Taper Ratio')
xlabel('Semi-Span Location [m]')
ylabel ('C_L')
legend('location','best','Lambda = 0.25','Lambda = 0.5','Lambda = 0.75','Lambda = 1','Elliptical Lift Distribution')
 
Physics news on Phys.org
could you please edit your post and bracket your code listing with code tags?

It will look much nicer on the eyes and will preserve indentations.

Also you haven't said what the error is.
 
Apologies, but I'm not sure how to go about doing that. I am a Matlab, and coding in general, novice.

The error is in the plot that is generated - higher taper ratios have a better efficiency (closer to elliptical lift distribution) which I don't think should be the case. Many thanks for any help you can provide.
 
Last edited:
Hi HACRS4,
I'm not sure that i perfectly understand your question. I have tried to use your code, and I noticed that the efficiency goes from a minimum to a maximum and then decreases again while lambda goes from 1 to 0.25. This is exactly what is suppose to happen. In fact for a fixed aspect ratio wing the maximum efficiency should happen at a tapper ratio of approximately 0.4.
Don't know if it was of any help or if it was too late. But I have actually used your code in my master thesis to do some simple calculations, and I also added the functionality to calculate the best linear wash-out geometric twist. Unfortunately I can't make a proper reference to your work. If you are so kind to tell me who to reference to I will.
Thanks you in advance
 
HACRS4 said:
Apologies, but I'm not sure how to go about doing that. I am a Matlab, and coding in general, novice.

It's pretty simple to add
Code:
 tags to your reply.

You can hit the 'Go Advanced' tab at the bottom of the page and select the icon at the top which looks like a sheet of paper with a '#' on it.

To check what you've done, hit the 'Preview Post' button and check the post before hitting the 'Submit Reply' button.
 
Don't hold your breath waiting for a response. Check the dates of the previous posts :smile:
 
Ah, the necropost!
 
hi, i am having some problem with a code in matlab. my code is:

t = 30;
H= 30;
h= 3;
n = H/h;
qqq= 10;
a= 3;
b = .2;
k= 0.04;
Lo= 100;
g= 9.81;

for i = 1:t
q(i) = 0;

for j = 1:n
nl = qqq + (j*h)/(a + b*(j*h));
nlt = nl*(0.0172*log(i) + 1);
q(i) = q(i) + 2*k*(Lo/100)*(nlt/3)*g*exp(-k*(i));

end

plot((1:t), q);

end

this is the code and i keep getting this error- "Attempted to access q(2); index out of bounds because numel(q)=1."

help would be greatly appreciated.
thanks
 
Last edited:

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
4K
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
4
Views
2K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 1 ·
Replies
1
Views
5K
  • · Replies 4 ·
Replies
4
Views
2K
Replies
4
Views
6K