Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Big Project

Project

Project Manager

Post-comp fixed wing

Aileron

Smile Khatri

Task Description

Choose dimensions for aileron, and pick out servo motors.

Linkage stuff:

https://youtu.be/U3AHgk0SUoI

Constraints

Constraints

Written By

Append Date

1 servo per aileron

Smile Khatri

August 13, 2024

Relevant Contacts

Subteam

Contact

Contact Description

Subteam collaborating with

@ of contact

what is the contact responsible for?

Assignees

Assignee

Asana Task

Date

@ assignee

link to asana task assigned

Date assigned

Task Progression/Updates

Author: Smile Khatri Date: 2024/08/13

Sizing the Aileron

Before performing any calculations, some research was conducted into aileron sizing guidelines for RC planes. In “Basics of RC Model Aircraft Design”, the author Andy Lennon recommends the dimensions below:

image-20240802-221940.png

In another research article focused on SAE micro-class RC planes, the following is suggested:

image-20240813-230555.png

The same article informs that if the deflection of the aileron does not exceed 25 degrees (+/-), stall should not occur. However, this would have to be tested in sims. For now, aileron deflection of 20 and 25 degrees are used.

Mathematical equations and derivations for roll control are summarized in Sizing Control Surfaces - Mechanical - WARG (atlassian.net). A MATLAB script is created to simplify the calculations. In the script, only the aileron span and aileron chord ratios were changed, rest of the variables are held as constant. These constants are:

  • Air density = 1.225 kg/m^3

  • wing span (b) = 1.5 m

  • wing chord (C) = 0.23 m

  • Aircraft speed (depends on the flight level) = 25 m/s

  • Taper ratio = 1

  • Moment of inertia about the roll axis (Ixx) = 0.06 kg*m^2 (taken from initial frame design, could change in the future…)

  • Vertical stabilizer area (Sv) = 0.0423 m

  • Horizontal stabilizer area (Sh) = 0.0666 m

  • Lift coefficient slope (linear region) for NACA 4412 = 6.03 per rad

  • average roll drag from wings, fuselage, and tail = 0.9 (educated guess, no sims run yet)

The rest of the constants are minor and are present in the script. The roll requirement is chosen to be 90 degree bank angle in 1.7 seconds. The time required for the aircraft to bank at 90 degrees must be within 10% range of 1.7 seconds. This meets the class IV aircraft (highly maneuverable) requirement (refer to Sizing Control Surfaces for more details).

image-20240810-212717.png

Several combinations of aileron span and chord ratios are tested in the script. The results are summarized in the table below.

image-20240814-000035.png

Thus, a span ratio of 0.4 and a chord ratio of 0.25 meets the design requirement if the aircraft is cruising at 25 m/s and aileron has a max deflection of 25. The actual roll time may vary due to imperfections in manufacturing, or the cruising speed being different than what is calculated. But this aileron dimensions align with recommendations from RC Model Aircraft Design book and other sources, hence, they should be safe to implement.

Aileron design flow:

Force and Stall Analysis [WIP]

For analyzing stall, simulation is performed at maximum aileron deflection and at expected cruising speed. Initially, a steady state simulation was run but the plots of residuals, lift & drag had a lot of noise. A transient simulation is also performed, which led to a less oscillating values.

Mesh details:

  • Face sizing: 0.002 m

  • Surface mesh: enable curvature only, don’t need proximity feature

  • Boundary layers: last_ratio method with 5 layers. First layer height is 0.0001

  • Volume mesh: poly-hexcore method, everything else default.

S

image-20240817-035048.pngimage-20240817-035111.png

There are no large vorticities above the aileron, hence no significant sign of stall.

Roll rate and time calculation script:

%SI (m, kg, m/s, N)

%General
MASS_TOTAL = 5.137;
rho = 1.225;
V = 25;
Ixx = 0.06; %moment of inertia about the roll axis (kg*m^2)
Sv = 0.0423;
Sh = 0.0666;

%Wing geometry
b = 1.5;
fuselage_width = 0.132;
C = 0.23;
Sw = 0.345;
taper = 1;
MAC = 0.23;
NACA = 4412;
Cr = C; %

%Control surface effectiveness param data points
CA_C_ratio = [0.004918032786885199,0.03442622950819667,0.06967213114754095, 0.09918032786885245, 0.12213114754098359, 0.19344262295081968, 0.28196721311475414, 0.4024590163934427, 0.5016393442622952, 0.5434426229508198, 0.6778688524590166
];
TAU = [-0.002272727272726982, 0.10000000000000009, 0.20000000000000007, 0.26363636363636367, 0.3045454545454547, 0.4, 0.5, 0.6068181818181819, 0.6886363636363637, 0.7181818181818183, 0.8136363636363637
];

%Aileron inputs 
span_ratio = 0.4;
chord_ratio = 0.25;
bi = 1.5*0.5-span_ratio*1.5*0.5;
bo = 1.5*0.5;
Ca = chord_ratio*C;
tau = interpolate_tau(CA_C_ratio, TAU, chord_ratio); %Aileron efficiency paramter 
delta_max = [25, 25]; % [UP, DOWN]
CLw_slope = 6.03;%cl per rad

C_DR = 0.9; %avg drag from wing, horizontal tail, vertical tail 
yD = (b-fuselage_width)*0.25;
phi_req = 90;
t_req = 1.7;



%EQUATIONS
eq_Cl_deltaA = @(yi, yo) ((0.5*yo^2 + (2/3)*yo^3*(taper-1)/b)-(0.5*yi^2 + ...
    (2/3)*yi^3*(taper-1)/b))*(2*CLw_slope*tau*Cr)/(Sw*b); %Cl derivative
eq_Cl = @(x) x*delta_max(1,1)*pi/180; %Cl - rolling moment coefficient 

eq_LA = @(Cl) 0.5*rho*V^2*Sw*Cl*b; %Lift contribution from aileron 

eq_Pss = @(LA) sqrt((2*LA)/(rho*(Sw+Sv+Sh)*C_DR*yD^3));

eq_phi1 = @(Pss) (Ixx)*(log(Pss^2))/(rho*yD^3 * (Sw+Sv+Sh)*C_DR);

eq_roll_rate_derivative = @(phi1, Pss) 0.5*Pss^2/phi1;

%Assume that phi1 is going to be larger than phi_req for GA
eq_t2 = @(phi, P_dot) sqrt(2*phi/P_dot);

%Testing the equation 
Cl_deltaA = eq_Cl_deltaA(bi, bo);
Cl = eq_Cl(Cl_deltaA);
LA = eq_LA(Cl);
Pss = eq_Pss(LA);
phi1 = eq_phi1(Pss);
P_dot = eq_roll_rate_derivative(phi1, Pss);
tss = sqrt(2*phi1/P_dot);

if (phi1 > phi_req)
    t2 = eq_t2(phi_req*pi/180, P_dot);
else
    delta_t = (phi_req - phi1)/Pss;
    t2 = tss + delta_t;
end
err = (t2-t_req)/t_req *100;

%Plotting some points
time_v_phi(0.01, 5, tss,P_dot,Pss,phi1);

function graph_t_v_phi = time_v_phi(time_step,max_time,tss,P_dot,Pss,phi1)
        %Time vs phi
    t_nonlinear = 0:time_step:tss;
    phi = 0.5.*t_nonlinear.^2 .* P_dot;
    plot(t_nonlinear, phi);
    title("Time vs. Bank Position");
    xlabel('Time (s)');
    ylabel('Bank angle (deg)');
    hold on
    %Linear region
    t_linear = tss:time_step:max_time;
    b = phi1 - Pss*tss;
    phi_lin = b + Pss.*t_linear;
    plot(t_linear, phi_lin);
    hold off
end

function tau = interpolate_tau(x_points, y_points, x)
    data_x = x_points(:);
    data_y = y_points(:);

    if x < min(data_x) || x > max(data_x)
        error('Outside the range!');
    end

    %Find indices of 2 points, 1st point less than x, 2nd point greater
    indx1 = find(data_x <= x, 1, 'last');
    indx2 = find(data_x >= x, 1, 'first');

    %If x matches a data point, return corresponding y
    if data_x(indx1) == x_points
        tau = data_y(indx1);
    end

    %Linear interpolation 
    x1 = data_x(indx1);
    x2 = data_x(indx2);
    y1 = data_y(indx1);
    y2 = data_y(indx2);

    tau = y1 + (y2 - y1) * (x - x1) / (x2 - x1);
end

  • No labels