hph final report matthew and john 1

Upload: alexandresidant

Post on 22-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    1/50

    Final Report

    Human PoweredHelicopter Rotor Design

    and AnalysisAAE 415, Design ProjectFall 2001

    Professor John Sullivan

    Design Team

    Matthew WyselJohn Castro

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    2/50

    2

    Table of Contents

    Introduction .....................................................................................................................3

    Design Methodology........................................................................................................ 4

    Momentum and Blade Element Theory ........................................................................... 4CMARC...........................................................................................................................6

    Results and Discussion ...................................................................................................8

    Conclusions and Improvements .................................................................................... 14

    References....................................................................................................................15

    Appendix A HPH Competition Regulations ................................................................ 16

    Appendix B John Jamesons Blade Element Code .................................................... 19

    Appendix C An Example of a CMARC .in File ............................................................ 38

    Appendix D CMARC Post-Processing Code .............................................................. 45

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    3/50

    3

    Introduction

    The goal of this project was to design an improved rotor blade geometry for Big Bird -

    Purdue Universitys Human Powered Helicopter. Big Bird was Purdue Universitys entry

    into the Igor Sikorsky HPH competition.

    The Igor Sikorsky Human Powered Helicopter Competition fosters the development of

    human powered helicopters by providing an incentive of a cash prize of US$20 000 to

    the team that can build a helicopter that can hover for at least 60 seconds, while

    attaining a momentary altitude of 3 meters. Furthermore, the rules of the competition

    specify that at least one crewmember must be non-rotating, and the entire operation of

    the helicopter, from start-up to slowdown must be the sole actions of the flight crew.

    The competition rules are included as Appendix A.

    The design for Big Bird came primarily from California Polytechnical Institutes Da Vinci

    III. In 1989, the Da Vinci III became the first human powered helicopter when it flew for

    approximately 8 seconds. It utilized a 2 bladed, tip driven design that had a bladed

    radius of 50 feet, a root chord of 5.1 feet and a tip chord of 2.3 feet (Ref. 1).

    A few assumptions were made during the semester that affected the design

    specifications of the Big Bird HPH. For simnplicity, and to simulate the Da Vinci IIIs

    design, we assumed a single human power source. This differed from the original

    design, which had two human power sources. In addition to an initial rotor diameter

    estimate of about 102 ft, we also had estimates for the overall weight of the craft and

    the power a human could generate. We assumed that with a 130 pound athlete (most

    likely a cyclist) pedaling, we could construct a craft that would weigh approximately

    another 100 pounds, thus equaling about 230 pounds. The power we assumed wasbased on the maximum power a human could generate cycling which was 1.2-1.4

    horsepower for a two-minute duration. As this is the world record, we conservatively

    guessed our pilot would be able to produce about 0.8 horsepower (1 kilowatt). We

    decided to keep the rate of rotation the same as the original design at 5 revolutions per

    minute. We also decided to keep the DAE11 airfoil section as was used by the original

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    4/50

    4

    Big Bird design. This still leaves us multiple rotor blade parameters to manipulate to

    achieve a greater amount of thrust while still meeting the horsepower constraint.

    Design Methodology

    Initially, we researched the subject of rotor analysis and previous HPH attempts. This

    research introduced us to momentum theory and blade element analysis of as methods

    of analyzing various rotor blade designs. Concurrently, we worked on getting a running

    CMARC rotor blade file. For CMARC, we started with existing propeller files and

    modified those to become familiar with the process of defining various airfoil shapes

    using Digital Wind Tunnel. By trial and error, we generated a running rotor blade

    geometry that gives correct wakes and pressure distributions for various rates of

    rotation, angles of twist and varying amounts of taper. Along the way, we started

    looking at other available methods of analysis. These included a blade element code

    from Professor Crossley, a blade element code from Professor Lyrintzis and a propeller

    analysis code based on Goldsteins method from Prof. Andrisani. We did not look

    closely at the codes from Professor Crossley or Andrisani. Both blade element codes

    were based on Proutys combined momentum and blade element theory with empirical

    corrections. We utilized the blade element code from Prof. Lyrintzis that was written by

    John Jameson in 1996. His code had an easily modifiable input file that ran the code.

    We also made a Matlab script that would take a CMARC output file and integrate the

    Cps to give values of lift and drag for a specific rotor geometry. Using these values,

    power and thrust can be found.

    Momentum and Blade Element Theory

    Momentum theory utilizes the fact that a rotor in hover, an actuator disc, moves still airfar above the rotor to some finite velocity below the rotor. One of momentum theorys

    important output parameters is ideal power. Ideal power is the minimum power required

    to produce thrust by a rotor. Actual power is always greater than ideal power since

    momentum theory does not take into account the drag of the actual blades. Momentum

    theory studies the mass flow flowing thru the rotor and the associated induced

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    5/50

    5

    velocities. Studying the energy dissipated by the rotor and the energy imparted to the

    wake gives the relationship between the induced velocities at the rotor and far below the

    rotor. This leads to:

    12 2vv = (1)

    Which then gives the equation of thrust only in terms of the induced velocity at the rotor:

    AvT = 21

    2 (2)

    Solving for the induced velocity at the rotor gives:

    A

    Tv

    =

    21

    (3)

    Another equation for thrust in terms of a vertical drag component (Dv) and the gross

    weight of the aircraft is:

    ....

    1 WGWG

    DT v

    += (4)

    Equations 3 and 4 combined then give ideal power,

    550

    1vT

    Pi

    = (5)

    where the 550 term converts sftbl to hp . Ideal power is an important parameter

    since it is used as a way to measure the performance of actual rotors. This figure of

    merit is the ratio between ideal power and actual power:

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    6/50

    6

    rActualPowe

    IdealPowerM = (6)

    Blade element theory examines the way lift is developed on individual blade elements of

    a rotor. Each blade element creates an incremental amount of lift and the total lift of all

    the blade elements is the thrust of the rotor. This theory takes into account the local

    properties of the airflow and airfoil at each blade element section. Thus, different

    amounts of twist, chord, airfoil section, and rotational velocity at each element are

    studied. A thorough explanation of the blade element theory used by John Jameson

    and Prof. Crossley can be found in Proutys Helicopter Performance, Stability, and

    Control (Ref. 2). John Jamesons code is attached as Appendix B.

    CMARC

    According to the advice we had been given, we initially imported the geometry for the

    airfoils from AeroCADD. Given our inexperience with both Digital Wind Tunnel and

    Postmarc it took longer than necessary for us to determine that we didnt have enough

    spanwise panels. Eventually we abandoned AeroCADD and resorted to attempting to

    import the coordinates of the airfoils from www.nasg.com. (Given our knowledge and

    understanding of Postmarc at the completion of the assignment, and the wisdom that

    comes from hindsight, it may have been easier to continue to modify the .IN files ie

    the ones exported from AeroCADD nevertheless we learned a great deal about the

    workings of Cmarc by changing our approach).

    As importing airfoil coordinates requires a different approach from modifying an output

    from AeroCADD, after acquiring the coordinates for the DAE11 and FX63-137 we

    searched for an example file to speed up the process. Eventually, WingSC.in was

    used, in conjunction with modifying the Cmarc.dim file so that nbpdim was set to 4000

    (formally 2000). With these modifications, our rotor.IN file compiled (an example file can

    be found in Appendix C).

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    7/50

    7

    Using the behavior of the wake as the primary indicator of sensible parameters, we

    modified the length of the time step and the number of chordwise panels until we

    generated sensible outputs.

    Cmarcs reliance on a finite free stream velocity to calculate the distribution of pressures

    over a body, made calculating the thrust of a hovering rotor very difficult, especially

    given our large radius and very low angular velocity. By rotating the rotor coordinate

    system so that the rotors axis pointed upstream we modeled the scenario where the

    HPH was in a relatively slow climb with an equal loading on both wings throughout the

    rotation.

    However, this still left an error in the analysis due to the Vinf which appeared as an

    initially constant and uniform downwash across the rotor (when the case for a hovering

    rotor was applied). In an effort to reduce this error the angular rotation of the rotor was

    increased (with the intention of compensating for the error at the same time the Cps

    were scaled).

    Each chordwise set of Cps were scaled according to their spanwise position; scaling

    was necessary because the pressure coefficients were originally calculated using the

    local velocity a function of the rotational velocity and distance from the hub and they

    needed to be calculated using Vreference the non-rotational velocity, which has been set

    as the rotor tip velocity.

    MATLAB was used to perform the necessary calculations (code can be found in

    Appendix D); a modified output file was read into MATLAB and the Cp values scaled.

    The Cp values were then integrated across the chord and then along the span1 to

    obtain coefficients of thrust and drag. The option now exists to graph the scaled Cp

    values in MATLAB or to export them to another program.

    1At the completion of the project there was an error in the MATLAB code in the lines that performed the

    final integration of the chordwise Cp distributions along the span of the wing. The code returned scaledvalues of lift. Regrettably, while the sectional lift values were correct, at the completion of this project, thecode still did not return the correct values for the integrated thrust.

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    8/50

    8

    Results and Discussion

    From analysis we determined the best design for the configuration of a rotor for Purdue

    Universitys Human Powered Helicopter Big Bird, was an 18-meter blade with no taper,

    a collective pitch of 10 degrees and 14 degrees twist. This is detailed below.

    Blade Radius R 18 [m]

    Revolutions per minute 2.5 [m]

    Chord (root) Cr 2.5 [m]

    Chord (tip) Ct 2.5 [m]

    Distance from root to beginning

    of non-tapered region as a ratio

    of rotor radius

    X0 0.001

    Distance from root to beginning

    of tapered region as a ratio of

    rotor radius

    X1 1

    Collective Pitch 10 [deg]

    Twist -14 [deg]

    Thrust (produced) T 267.8 [lbs]Power (required) P 0.7363 [hp]

    The CMARC files that we produced all have a rotor radius of 17 m and a root chord of

    2.5 m. When we were using CMARC, we varied the tip taper ratio and the taper start

    point. The following figures show a rotor geometry that has no taper. Figures 1 3

    show the wake produced by our CMARC rotor geometry. It can be seen from these

    figures that the wake does skew near the root of the rotor. However on the outside of

    the wake, produced by the rotor tip, there is a tip vortex generated. This corresponds to

    theory, where the flow from the bottom of the rotor rolls over to the top of the airfoil

    creating a vortex. It is important to note the orientation of the rotor blade geometry.

    Typically CMARC has Vinf originating from some negative X. To simulate a rotor in

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    9/50

    9

    hover, the rotor rotates about the X axis in the Z-Y plane as can be seen below. This is

    discussed further below.

    Figure 1 Rotor, Side View, Negative X is Up, No Taper, = 5 rpm

    Figure 2 Rotor, Bottom View, Negative X is Into Page, No Taper, = 5 rpm

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    10/50

    10

    Figure 3 Rotor, End View, Negative X is Up, No Taper, = 5 rpm

    Figures 4 and 5 show the CPdistribution on the upper and lower surfaces of the rotor

    geometry. It can be seen that the CPdistribution does show increasing low pressures

    on the top and closer to the tips of the rotor. This is valid since rotational velocityincreases as radius increases. On the bottom surface, there are predominately high

    pressures, which is also valid.

    Figure 4 Rotor, Top View of Pressure Distribution

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    11/50

    11

    Figure 5 Rotor, Bottom View of Pressure Distribution

    Figures 6 8 show chord wise CPdistributions near the root, half span, and the rotor tip.

    At the root, Figure 6 shows that the rotor is producing little if any lift, or even creating

    negative lift. Near the half span, Figure 7 shows that the rotor is producing large

    amounts of lift, as would be expected. At the tip, Figure 8, shows a similar CP

    distribution as the half span.

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    12/50

    12

    Figure 6 Pressure Distribution at about 0.10 r/R

    Figure 7 Pressure Distribution at about 0.60 r/R

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    13/50

    13

    Figure 8 Pressure Distribution at about 0.98 r/R

    The orientation of the rotor geometry greatly affected the output from Postmarc. Since

    lift is typically taken as the force perpendicular to the flow velocity, the CLfrom the .out

    file is not valid. However, since drag is typically measured parallel with the flow velocity,

    the CDfrom the .out file would correspond in some way to the CLof the rotor. We were

    not able to find the relationship between these two values. Since, we were not able to

    use the force coefficients from the .out file, we used the individual CPvalues from each

    panel to find valid force coefficients. At this time this code has not output valid results.

    It has output the correct geometry of the rotor, Figure 9, so we know the error lies within

    our calculations of the force coefficients.

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    14/50

    14

    -16

    -14

    -12

    -10

    -8

    -6

    -4

    -2

    -1.5-1

    -0.50

    -0.4-0.2

    00.2

    Figure 9 Rotor Geometry Output from CMARC Post-Processing Code (Appendix D)

    Conclusions and Improvements

    Although the results of the scaled Cps were inconclusive, we were still able to

    qualitatively compare designs as the constant use of blade dimensions meant the

    scaling affected all designs equally. Of all the configurations analyzed, the design as

    outlined in the preceding chapter provided the maximum thrust for the minimum

    required power. This rotor met the design goal of providing enough thrust to allow the

    helicopter to hover given that the human weighed 130lb and the machine 100lbs. It

    was determined that the human was capable of outputting a constant level of 0.8

    horsepower. Therefore, given these constraints, the rotor generated 0.7363 horsepower

    and 267.8 lbs of thrust.

    The MATLAB code that scales the pressures and integrates them to determine the

    thrust and drag of each blade needs further work to fix the error that returns dubious

    results. An analysis program that could model a stationary rotating airfoil, that is a rotorin hover, would also be useful. Cmarc simply wasnt built for this type of analysis.

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    15/50

    15

    References

    1. Cary, Andrew et. al. Systems Design Optimization of a Human Powered Helicopter.

    Submitted to Journal of the AHS, January 25, 1994.

    2. Prouty, Raymond W. Helicopter Performance, Stability, and Control. Krieger

    Publishing Co. Florida, 1995.

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    16/50

    16

    Appendix A HPH Competition RegulationsIgor I. Sikorsky Human Powered Helicopter CompetitionRegulations

    Contents1. 1. General

    2. 2. Prize

    3. 3. Eligibility

    4. 4. Conditions of Entry

    5. 5. Application for Entry

    6. 6. General Conditions

    1. General1.1The prize will be awarded by the AHS to the entrant who first fulfills the conditions.1.2Additionally, an attempt will be registered with the Federation AeronautiqueInternationale (FAI) as a World Record for Human-Powered Helicopter Flight duration.

    2. Prize2.1The AHS prize in U.S. $20,000.

    3. Eligibility3.1The competition is international and is open to individuals or teams from any part ofthe world.3.2Any questions regarding the acceptance of entries, eligibility of entrant, pilot, crew oraircraft under these regulations, or any other matter relating to the AHS prize, thedecision of the AHS is final.3.3All questions regarding the world record attempt will be governed by the sportingcode of the FAI and rest exclusively with the NAC.

    4. Conditions of Entry4.1 Aircraft4.1.1The machine shall be a heavier-than-air machine. The use of lighter-than- air

    gases shall be prohibited.4.1.2The machine shall be a rotary wing configuration capable of vertical takeoff andlanding in still air, and at least one member of the crew shall be non-rotating.4.1.3The machine shall be powered and controlled by the crew during the entire flight,including accelerating the rotor up to takeoff speed.4.1.4No devices for storing energy either for takeoff or for use in flight shall bepermitted. Rotating aerodynamic components, such as rotor blades, used for lift and/orcontrol are exempt from consideration as energy storing devices.,

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    17/50

    17

    4.1.5No part of the machine shall be jettisoned during the flight including the rotor spin-up and takeoff.

    4.2 Crew

    4.2.1The crew shall be those persons in the machine during takeoff and flight, andthere shall be no limit set to their number.4.2.2No member of the crew shall be permitted to leave or enter the aircraft t at anytime during takeoff or flight.4.2.3No drugs or stimulants shall be used by any member of the crew. An assurancemust be given to the official observers at the time of the attempt that this requirementhas been met.4.2.4Up to two handlers or ground crew shall be permitted to assist in stabilizing themachine during takeoff and landing, but in such a manner that they do not assist inaccelerating or decelerating any part of the machine.

    4.3 Ground Conditions

    4.3.1All attempts, which shall include the takeoff, shall be made over approximately

    level ground (i.e., with a slope not exceeding I in 100 in amy direction).4.3.2All attempts shall be made in still air, which shall be defined as a wind notexceeding a mean speed of approximately one meter per second (3-1 kilometers perhour, 2.23T statute miles per hour, 1.5 nautical miles per hour) over the period of theflight.

    4.4 Flight Requirements

    4.4.1The flight requirements shall consist of hovering for one minute while maintainingflight within a 10-meter square. During this time the lowest part of the machine shallexceed momentarily 3 meters above the ground.4.4.2The machine shall be in continuous flight from takeoff to landing, and at no time

    during the flight shall any part of the machine touch the ground.4.4.3A reference point on the non-rotating part of the machine will be established an ameans whereby the observers can judge that the machine stayed within the confines ofthe 10-meter square.4.4.4The one minute hovering time and the momentary achievement of 3 metersaltitude is required to win the AHS prize. (However, the FAI 1980 regulations specifythat only the duration of the flight and a momentary achievement of 3 meters altitude willbe recorded for the FAX world record attempt, making it possible to achieve a worldrecord without satisfying the AHS prize requirements.)

    4.5 Observation

    Every attempt shall be observed by the NAC or by any persons authorized by them toact as observers. It may take place in the competitors own country if it is affiliated to theFAI. In a country not so, it could be advantageous to conduct the flight in a neighboringcountry which is so affiliated.

    5. Applications for Entry5.1Entry forms shall be obtained from and returned to the American Helicopter Society.217 N. Washington St., Alexandria, VA 22314, (703) 684-6777. email: [email protected]

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    18/50

    18

    5.2The entry fee shall be US $15 (made payable to the American Helicopter Society).5.3Each entry form shall contain an application for official observation of thecompetitors attempt.5.4The entrant shall undertake to abide by the conditions for official observation as setout on the entry form and application for official observation and shall undertake to

    defray all expenses incurred in connection with the official observation of the attempt.5.5The following fees and charges are made by the NAAfor record attempts in Class I,Human Powered Aircraft. All attempts shall be for national and international records.5.6Final notice of the proposed time and place of the attempt requiring officialobservation may, if so desired, be sent to the AHS later than the entry form. It must inall cases be received at least thirty days before the proposed date f or the attempt. Thistime is required by the NAC (the NAA in the U.S.A.) to arrange for official observation.Applications will be considered in order of receipt.5.7Membership in the appropriate NAC and an FAI Sporting License in required for allcrew members taking part in this competition. Application forms may be obtained fromthe NACor the AHS. For this competition, a pilot's license is not required.

    6. General Conditions

    6.1 Insurance

    The entrant must take out on behalf of himself, his crew, representatives or employees,liability insurance in such form and mount to be specified by the AHS, to. indemnify theAmerican Helicopter Society, the NAC and the FAI against any claims. Evidence thatsuch insurance has been effected must be submitted with the application for officialobservation.

    6.2 Revision of Regulations

    6.2.1These regulations shall remain in force until such time as the AHS considers it

    necessary to amend them, or the prize has been won.6.2.2The AHS reserves the right to add to, amend or omit any of these regulations andto issue supplementary regulations.

    6.3 Interpretation of Regulations

    The interpretation of these regulations or any of the regulations hereafter issued restentirely with the AHS. The entrant shall be solely responsible to the official observer f ordue observance of these regulations and shall be the person with whom the officialobservers will deal in respect thereof, or any other question arising out of thiscompetition.

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    19/50

    19

    Appendix B John Jamesons Blade Element Code

    %----------------------------------------------------------------------------

    --------------------------------------%

    % BEGIN BDRIVER.M

    %------------------------------------------------------------------------------------------------------------------%

    %

    % BDRIVER.M IS THE DRIVER FILE THAT CALLS BLADE.M TO PERFORM THE BLADE

    ELEMENT CALCULATIONS.

    % BDRIVER.M CONTAINS THE PARAMETERS THAT DESCRIBE THE ROTOR BEING ANALYZED.

    %

    % INPUT: None

    %

    % OUPUT: None

    %

    %----------------------------------------------------------------------------

    --------------------------------------%

    clear all; close all;

    N = 40; % Number of blade elements

    b = 2; % Number of blades

    Airfoil(1,:) = 'dae11.pol'; % Airfoil used from k(1) to k(2)

    Airfoil(2,:) = 'dae11.pol'; % Airfoil used from k(2) to tip

    k = [0.0001 0.25]; % Vector of r values where each airfoil begins [m]

    t_c = [.12 .12]; % Thickness-to-chord ratios

    Elev = 0.5; % Rotor elevation [m]

    R = [16 17 18 19]; % Blade radius [m]

    Cr = 2.5; % Chord at X0 [m]

    Ct = 2.5; % Chord at tip [m]

    X0 = 0.001; % Where non-tapered section begins (pure spare from root

    to X1)

    X1 = 0.9; %[0.7 0.6 0.5 0.4]; % Where tapered section beginsOmega = 5/60*2*pi; % Convert Omega to [rad/s]

    Collective = 16*pi/180; % Collective pitch [rad][10:14]

    Twist = -14/180*pi; % Washout from hub to tip [rad]

    for i = 1:length(R),

    [r(i,:), c(i,:), Pitch(i,:), Alpha(i,:), Re(i,:), dT_dr(i,:), dD_dr(i,:),

    dM_dr(i,:), T(i), HP(i), DL(i), Sigma(i), CT(i), CQ(i), ERROR_FLAG(i)] =

    blade...

    (N, Collective, Twist, b, X0, X1, R(i), Ct, Cr, Omega, Airfoil, k, t_c,

    Elev);

    end

    %%Induced Power Calculation (added by John Castro for AAE415, design project,

    12/9/2001

    projected_area=4; %[m^2] projected area of HPH

    (excluding rotor)

    GW=1023.09; %[N] gross weight of DaVinci

    III HPH (230 lbf)

    disc_area=pi*R.^2; %[m^2] rotor disc area

    drag=0.3*projected_area*GW./disc_area; %[N] drag term from HPH body

    thrust=GW+drag; %[N] thrust

    disc_load=thrust./disc_area; %[N/m^2] disc loading

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    20/50

    20

    rho=1.23; %[kg/m^3] density at SL

    %induced_velocity=(disc_load/2/rho).^(1/2); %[m/s] at disc at S.L.

    min_thrust=thrust/4.4482; %[lbf]

    %power_ideal=thrust.*induced_velocity/1000*1.3405 %[hp] Ideal Power (1.2493

    hp)

    %power_ideal_2=thrust^(3/2)./(2*rho.*disc_area).^(1/2)/1000*1.3405

    %induced_velocity_actual=(HP./disc_area/2/rho).^(1/2); %[m/s] at disc

    at S.L.

    HP'

    Thrust=T*.2248;

    Thrust'

    %M=power_ideal./HP; %[ ] Figure of Merit

    %M'

    %%%%%%%%%%%%%%%%%%%%%%%

    figure(1); grid on; hold on;

    plot(r, dT_dr(1,:)*.2248);

    title('Thrust Distribution');

    xlabel('Radial Position'); ylabel('Thrust [lbf]');

    figure(2); hold on; grid on;

    plot(T*.2248, HP, '*r');

    title('Power vs. Thrust');

    xlabel('Thrust [lbf]'); ylabel('Power [hp]');

    figure(3); hold on; grid on;

    plot(r, Pitch/pi*180, '--');

    plot(r, Alpha/pi*180, ':');

    title('Geometric Pitch and AoA vs. r/R');

    xlabel('r/R'); ylabel('Pitch & AoA [deg]');

    legend('Pitch','AoA',2)

    figure(4); hold on;

    plot(r*R, c/2*R); plot(r*R, -c/2*R);

    plot(r*R, c/2*R-0.001*R); plot(r*R, -c/2*R-0.001*R);

    title('Rotor Geometry');

    xlabel('[m]'); ylabel('[m]'); axis([0 18 -6 6]);

    %----------------------------------------------------------------------------

    --------------------------------------%

    % END BDRIVER.M

    %----------------------------------------------------------------------------

    --------------------------------------%

    %----------------------------------------------------------------------------

    --------------------------------------%

    % BEGIN BLADE.M

    %----------------------------------------------------------------------------

    --------------------------------------%

    %

    % BLADE.M PERFORMS BLADE ELEMENT CALCULATIONS.

    %

    % BLADE.M MAKES CALLS TO THE FOLLOWING M-FILES:

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    21/50

    21

    % PHYSICAL.M (Contains atmospheric data)

    % DYNSIM.M (Computes properties important for dynamic similarity)

    % AIRFOIL.M (Retrieves and manipulates experimental airofil data)

    % GEOMETRY.M (Produces data describing planform of rotor and elements)

    %

    % Written by John Jameson (June, 1996)

    %

    % Based in part on the blade element theory presented in

    % "Helicopter Performance, Stability, and Control" by Raymond W. Prouty

    (p.69-72)

    %

    %----------------------------------------------------------------------------

    --------------------------------------%

    %

    % INPUT: N (Number of blade elements to use)

    % Collective (Collective pitch of rotor) [rad]

    % Twist (Twist of blade from hub to tip) [rad]

    % b (Number of blades on rotor)

    % X0 (Radial starting point of airfoil)

    % X1 (Radial starting point of taper)

    % R (Radius of rotor from hub to tip) [m]% Ct (Chord at tip of rotor) [m]

    % Cr (Chord at X0) [m]

    % Omega (Rotor rate of rotation) [rad/s]

    % Airfoil (Name of file containing airfoil data) (string)

    % k (Vector of r values where each airfoil begins) [m]

    % t_c (Thickness-to-chord ratio of each airfoil)

    % Elev (Rotor elevation) [m]

    %

    % OUPUT: r (Nondimensional radius r/R)

    % c (Nondimensional chord c/R)

    % Pitch (Pitch of blade at each position r) [rad]

    % Alpha (Local AoA) [rad]

    % Re (Local Reynolds number at each r)

    % dT_dr (Running thrust) [N/m]

    % dD_dr (Running drag) [N/m]

    % dM_dr (Running pitching moment) [N*m/m]

    % T (Thrust) [N]

    % HP (Required power) [hp]

    % DL (Disc loading) [N/m^2]

    % Solidity (Solidity ratio)

    % CT (Thrust coefficient)

    % CQ (Torque coefficient)

    % ERROR_FLAG (1 if error has occurred 0 otherwise)

    %

    % NOMENCLATURE:

    % N (Numer of blade elements used)

    % Collective (Collective pitch of rotor) [rad]% Twist (Twist of blade from hub to tip) [rad]

    % b (Number of blades on rotor)

    % X0 (Radial starting point of airfoil)

    % X1 (Radial starting point of taper)

    % R (Radius of rotor from hub to tip) [m]

    % Ct (Chord at tip of rotor) [m]

    % Cr (Chord at X0) [m]

    % Omega (Rotor rate of rotation) [rad/s]

    % Airfoil (Name of file containing airfoil data) (string)

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    22/50

    22

    % t_c (Thickness-to-chord ratio)

    % Rho (Air density) [kg/m^3]

    % Mach (Speed of sound) [m/s]

    % KinVisc (Kinematic viscosity) [m^2/s]

    % AlphaZL (Zero lift AoA) [rad]

    % a (Lift curve slope) [1/rad]

    % c (Nondimensional chord c/R)

    % r (Nondimensional radius r/R)

    % Pitch (Pitch of blade at each position r) [rad]

    % M (Local Mach number at each position r)

    % V (Local velocity at each position r)

    % Re (Local Reynolds number at each r)

    % Phi (Local inflow angle) [rad]

    % Alpha (Local AoA) [rad]

    % cl (Local coefficient of lift)

    % cd (Local coefficient of drag)

    % dCT_dr (Running thrust loading wrt. nondim. r)

    % CT_NoTipLoss (Thrust coefficient without tip loss)

    % B (Tip loss factor)

    % BIndex (Index into r locating B)

    % CT (Thrust coefficient including tip loss)% dCQo_dr (Running profile torque loading wrt. nondim. r)

    % CQo (Profile torque coefficient)

    % dCQi_dr (Running induced torque loading wrt. nondim. r)

    % CQi (Induced torque coefficient)

    % DeltaCQiIndex (Index into r for PiRot_PiThrust integration)

    % PiRot_PiThrust (Induced power due to wake rotation divided by induced

    power due to thrust)

    % DeltaCQi (Loss of CQi due to rotation of wake)

    % DL (Disc loading) [N/m^2]

    % Ablades (Total rotor planform area) [m^2]

    % Adisc (Disc area) [m^2]

    % Solidity (Solidity ratio)

    % PowerCorrection (Empirical power correction due to wake contraction)

    % CQ (Torque coefficient)

    % T (Total thrust produced by rotor) [N]

    % HP (Total power required to drive rotor) [hp]

    % h (Ratio of rotor elevation to rotor diameter)

    % CT_Solidity (Thrust coefficient divided by solidity ratio)

    % CQ_Solidity (Torque coefficient divided by solidity ratio)

    % ERROR_FLAG (Returns 1 if a fatal error occurred; 0 if everything was

    cool)

    %

    % NOTES: ERROR_FLAG is set to 1 in the following situations:

    %

    % 1. AIRFOIL.M returns ERROR_FLAG == 1

    % 2. GEOMETRY.M returns ERROR_FLAG == 1

    % 3. Pitch is too negative for calculation of inflow angle (Step 5)% 4. An unknown problem occurs

    %

    %----------------------------------------------------------------------------

    --------------------------------------%

    function [r, c, Pitch, Alpha, Re, dT_dr, dD_dr, dM_dr, T, HP, DL, Solidity,

    CT, CQ, ERROR_FLAG] = blade(N, Collective, Twist, b, X0, X1, R, Ct, Cr,

    Omega, Airfoil, k, t_c, Elev)

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    23/50

    23

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Steps 1, 2, 3, 4 (The steps roughly follow Prouty's steps)

    %----------------------------------------------------------------------------

    --------------------------------------%

    [Rho, Mach, KinVisc] = physical;

    for i=1:length(Airfoil(:,1)),

    [AlphaZL(i), Temp_a(i), Nothing, ERROR_FLAG] = airfoil(N, 1, 0, 0, 0, 0,

    Airfoil(i,:));

    end

    [c, r, Pitch, a, ERROR_FLAG] = geometry(N, Collective, Twist, X0, X1, R, Ct,

    Cr, AlphaZL, k, Temp_a);

    [M, V, Re] = dynsim(N, Omega, R, Mach, c, r, KinVisc);

    % Add Prandtl-Glauert compressibility correction to lift curve slope

    for i = 1:(N+1),

    for j=1:length(k),

    a(i) = a(i)/sqrt(1 - M(i)^2);

    endend

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Step 5: Caculate inflow angle [rad]

    % Note: Calculation of local inflow angle fails for values

    % of pitch that are too negative.

    %----------------------------------------------------------------------------

    --------------------------------------%

    for i = 1:(N+1),

    num1 = ( 32*pi*Pitch(i)*r(i) ) / ( b*a(i)*c(i) );

    if( num1 >= -1 ),

    num2 = ( b*a(i)*c(i) ) / ( 16*pi*r(i) );

    Phi(i) = num2 * ( -1 + sqrt(1 + num1) );

    else

    outstring = zeros(2,94);

    outstring(1,1:94) = sprintf('ERROR BLADE.M: The pitch of element %3i is

    %6.2f degrees. ', i, Pitch(i)/pi*180);

    outstring(2,1:94) = sprintf('ERROR BLADE.M: This value is too negative

    to use in the calculation of inflow angle (Step 5). ');

    disp(outstring);

    ERROR_FLAG = 1;

    Phi = zeros(1,N+1); % Fill in Phi with garbage so that algorithm can

    continue

    end

    end

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Step 6: Caculate local AoA

    %----------------------------------------------------------------------------

    --------------------------------------%

    for i = 1:(N+1),

    for j=1:(length(k)-1),

    if( (r(i) >= k(j)) & (r(i) < k(j+1)) ),

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    24/50

    24

    Alpha(i) = Pitch(i) - atan( Phi(i) );

    elseif( (r(i) >= k(length(k))) & (r(i) = 0.9 ),

    for j=1:(length(k)-1),

    if( (r(i) >= k(j)) & (r(i) < k(j+1)) ),

    Temp_t_c = t_c(j);

    elseif( (r(i) >= k(length(k))) & (r(i) = k(i)) & (r(j) < k(i+1)) ),

    cl(j) = Temp_cl(j);

    cd(j) = Temp_cd(j);

    cm(j) = Temp_cm(j);

    end

    end

    elseif( i == length(Airfoil(:,1)) ),

    for j=1:(N+1),

    if( (r(j) >= k(length(k))) & (r(j)

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    25/50

    25

    cl(j) = 0;

    cd(j) = 0;

    cm(j) = 0;

    ERROR_FLAG = 1;

    end

    end

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Steps 8, 9: Caculate running thrust loading (and thrust) and integrate

    %----------------------------------------------------------------------------

    --------------------------------------%

    for i = 1:(N+1),

    dCT_dr(i) = b*r(i)^2*c(i)*cl(i) / (2*pi);

    end

    CT_NoTipLoss = trapz( r, dCT_dr );

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Step 10: Calculate tip loss factor%

    % Note: As reported by Donald M. Layton in "Helicopter Performance," Matrix

    Publishers, Inc.,

    % Beaverton, Oregon, the Prandtl-Betz tip loss factor should be replaced

    by the Wald

    % tip loss factor when dealing with linearly tapered blades. The Wald

    tip loss factor

    % adds another term depending on CT to the Prandtl-Betz tip loss factor.

    %

    %----------------------------------------------------------------------------

    --------------------------------------%

    if(X1 == 1),

    B = 1 - sqrt(2*CT_NoTipLoss)/b; % Prandtl-Betz tip loss factor

    for non-tapered blades (Prouty)

    elseif(X1 < 0.5),

    B = 1 - sqrt(2*CT_NoTipLoss)/b - 0.6*CT_NoTipLoss; % Wald tip loss factor

    for linearly tapered blades

    elseif(X1 >= 0.5),

    B = 1 - sqrt(2*CT_NoTipLoss)/b - 0.3*CT_NoTipLoss; % Wald tip loss factor

    for linearly tapered blades

    else

    sprintf('ERROR BLADE.M: Unknown problem calculating tip loss factor')

    ERROR_FLAG = 1;

    end

    %----------------------------------------------------------------------------

    --------------------------------------%% Step 11: Calculate corrected thrust coefficient

    %----------------------------------------------------------------------------

    --------------------------------------%

    BIndex = 0;

    for i = 1:(N+1),

    if ( r(i)

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    26/50

    26

    if( BIndex == 0 ), % Almost entire rotor affected by tip

    loss... a stupid design!

    CT = 0;

    elseif( BIndex == N+1 ), % Tip loss extremely small

    CT = CT_NoTipLoss;

    elseif( BIndex < N+1 ),

    ExtradCT_dr = dCT_dr(BIndex) + (B - r(BIndex))/(r(BIndex+1) -

    r(BIndex))*(dCT_dr(BIndex+1) - dCT_dr(BIndex));

    CT = CT_NoTipLoss - trapz( [B r((BIndex+1):length(r))], [ExtradCT_dr

    dCT_dr((BIndex+1):length(dCT_dr))] );

    else,

    disp('ERROR BLADE.M: Unknown problem calculating corrected thrust

    coefficient');

    ERROR_FLAG = 1;

    end

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Steps 12, 13: Caculate running profile torque loading and integrate

    %------------------------------------------------------------------------------------------------------------------%

    for i = 1:(N+1),

    dCQo_dr(i) = b*r(i)^3*c(i)*cd(i)/(2*pi);

    end

    CQo = trapz(r, dCQo_dr);

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Steps 14, 15: Caculate running induced torque loading and integrate

    %----------------------------------------------------------------------------

    --------------------------------------%

    for i = 1:(N+1),

    dCQi_dr(i) = b*r(i)^3*c(i)*cl(i)*Phi(i)/(2*pi);

    end

    if( BIndex == 0 ), % If no thrust, then no induced torque

    (see Step 11)

    CQi = 0;

    elseif( ~dCQi_dr ), % Get rid of cases where dCQi_dr is all

    zeros, due to Phi being set to all zeros in Step 5

    CQi = 0;

    elseif( BIndex == N+1 ), % Tip loss extremely small

    CQi = trapz(r, dCQi_dr);

    elseif( BIndex < N+1 ),

    ExtradCQi_dr = dCQi_dr(BIndex) + (B - r(BIndex))/(r(BIndex+1) -

    r(BIndex))*(dCQi_dr(BIndex+1) - dCQi_dr(BIndex));

    CQi = trapz( [r(1:(BIndex)) B], [dCQi_dr(1:(BIndex)) ExtradCQi_dr] );else,

    disp('ERROR BLADE.M: Unknown problem integrating induced torque loading');

    ERROR_FLAG = 1;

    end

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Steps 16: Calculate CQi due to rotation of wake

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    27/50

    27

    %----------------------------------------------------------------------------

    --------------------------------------%

    MINE = 1;

    if( MINE ==1),

    DeltaCQiIndex = 0;

    num1 = sqrt(2*CT);

    for i = 1:(N+1),

    if ( r(i)

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    28/50

    28

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Steps 18: Calculate CT divided by solidity ratio

    %----------------------------------------------------------------------------

    --------------------------------------%

    Ablades = b*R^2*trapz(r, c); % Total blade area

    Adisc = pi*R^2; % Disc area

    Solidity = Ablades/Adisc; % Solidity raio

    CT_Solidity = CT/Solidity;

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Steps 19: Find empirical power correction due to contraction of wake

    %

    % Note: The equation for PowerCorrection was taken from Figure 1.34 of

    Prouty (p.58).

    % It was generated in 1992 by Bill Crossley using a fifth-order numerical

    curve

    % fit in Cricket Graph for the PC. Within the range 0 < DL*CT_Solidity 2) ),

    sprintf('BLADE.M: Empirical power correction is invalid for DL = %f and

    Collective = %f!', DL, Collective/pi*180)

    disp('BLADE.M: Setting power correction equal to 1');

    PowerCorrection = 1;

    else

    PowerCorrection = 0.94316 + 0.31453*num - 0.32004*num^2 + 0.18671*num^3 -

    0.05996*num^4 + 0.00836*num^5;

    end

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Steps 19j: Calculate induced power ratio for cases of ground effect

    %

    % Note: The equation for PiIGE_PiOGE is an empirical result based on the

    findings of

    % Zbrozek, J., "Ground Effect on the Lifting Rotor," British R&M 2347,

    July 1947, as

    % reported by Donald M. Layton in "Helicopter Performance," Matrix

    Publishers, Inc.,% Beaverton, Oregon. It is valid only for rotors elevated 0.3 to 2.0

    rotor

    % diameters above ground.

    % (Added 6-22-9 by John Jameson)

    %

    %----------------------------------------------------------------------------

    --------------------------------------%

    %h = Elev/(2*R);

    %if( (h >= 0.3) & (h

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    29/50

    29

    % PiIGE_PiOGE = -0.1276*h^4 + 0.7080*h^3 - 1.4569*h^2 + 1.3432*h + 0.5147;

    %else

    % PiIGE_PiOGE = 1;

    % disp('BLADE.M: The given rotor elevation is not within the range of

    validity for the empirical ground effect calulation');

    % disp('BLADE.M: Ground effect will be ignored');

    %end

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Step 19.1j: Calculate total running torque coefficient (does not include

    tip effects)

    %----------------------------------------------------------------------------

    --------------------------------------%

    %dCQ_dr = ( dCQo_dr + PiIGE_PiOGE*dCQi_dr*(1 + PiRot_PiThrust)

    )*PowerCorrection; % With ground effect

    dCQ_dr = ( dCQo_dr + dCQi_dr*(1 + PiRot_PiThrust) )*PowerCorrection; %

    Without GE

    %------------------------------------------------------------------------------------------------------------------%

    % Steps 19.2j: Caculate running pitching moment, thrust, and drag and

    integrate

    %----------------------------------------------------------------------------

    --------------------------------------%

    for i=1:(N+1),

    dCd_dr(i) = dCQ_dr(i)/r(i);

    dD_dr(i) = dCd_dr(i)*Rho*Adisc*Omega^2*R^2;

    dT_dr(i) = dCT_dr(i)*Rho*Adisc*Omega^2*R^2;

    end

    dM_dr(1) = 0;

    for i = 2:(N+1),

    dM_dr(i) = 0.5*Rho*V(i)^2*c(i)^2*(r(i) - r(i-1))*cm(i);

    end

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Steps 20: Calculate total torque coefficient

    %----------------------------------------------------------------------------

    --------------------------------------%

    %CQ = (CQo + CQi*PiIGE_PiOGE + DeltaCQi)*PowerCorrection; % With ground

    effect

    CQ = (CQo + CQi + DeltaCQi)*PowerCorrection; % Without GE

    CQ_Solidity = CQ/Solidity;

    %----------------------------------------------------------------------------

    --------------------------------------%

    % Steps 21: Calculate rotor thrust and power

    %----------------------------------------------------------------------------

    --------------------------------------%

    T = Rho*Adisc*Omega^2*R^2*CT; % Thrust in [N]

    HP = (Rho*Adisc*Omega^3*R^3*CQ)/1000*1.3405; % Power in [hp]

    Q = (Rho*Adisc*Omega^2*R^3*CQ) % Torque in [N*m]

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    30/50

    30

    %----------------------------------------------------------------------------

    --------------------------------------%

    % END BLADE.M

    %----------------------------------------------------------------------------

    --------------------------------------%

    %----------------------------------------------------------------------------

    --------------------------------------%

    % BEGIN AIRFOIL.M

    %----------------------------------------------------------------------------

    --------------------------------------%

    %

    % AIRFOIL.M IS RESPONSIBLE FOR HANDLING THE FILES OF EXPERIMENTAL AIRFOIL

    DATA.

    % THE INFORMATION IT RETURNS DEPENDS ON THE VALUE OF 'index'.

    %

    % INPUT: N (Number of blade elements to use)

    % index (Controls behavior of AIRFOIL.M)%

    % Alpha (Local AoA) [rad]

    % X0 (Radial starting point of airfoil)

    % r (Nondimensional radius r/R)

    % Re (Local Reynolds number at each r)

    % Airfoil (Name of file containing airfoil data) (string)

    %

    % OUPUT: (Index = 1):

    % x = AlphaZL (Zero lift AoA) [rad]

    % y = a (Lift curve slope) [1/rad]

    % ERROR_FLAG (1 if error has occurredl 0 otherwise)

    % (Index = 2):

    % x = cl (Local coefficient of lift)

    % y = cd (Local coefficient of drag)

    % z = cm (Local coefficient of pitching moment)% ERROR_FLAG (1 if error has occurredl 0 otherwise)

    %

    % NOTES: ERROR_FLAG is set to 1 if any of the following happens:

    %

    % 1. Problem opening airfoil data file

    % 2. A blade element (BE) is stalled

    % 3. A BE is at an AoA above or below the data in the data file

    % 4. An unknown error occurs

    % 5. Airfoil.m is called with index set to an illegal value

    %

    % In cases 2 and 3, values for cl, cd, and cm are returned so that

    blade.m does

    % not crash. These values, however, are pretty bogus.

    %

    %--------------------------------- AIRFOIL DATA FILE FORMAT ("name.pol") ----

    -------------------------------------%

    % numRe

    % Re

    % numData

    % AlphaStall [degrees]

    % AlphaZL [degrees]

    % a [1/rad]

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    31/50

    31

    % AlphaData [degrees] ClData CdData CmData[other junk spit out by Xfoil]

    % .

    % .

    % .

    % .

    % .

    % AlphaData(numRe*numData) .......................................

    %----------------------------------------------------------------------------

    --------------------------------------%

    function [x, y, z, ERROR_FLAG] = airfoil(N, index, Alpha, X0, r, Re, Airfoil)

    ERROR_FLAG = 0;

    ifp = fopen(Airfoil); % Open data file for chosen airfoil

    if ( ifp ~= -1 ),

    numRe = fscanf(ifp, '%f', 1); % Scan in number of Reynolds number

    sets

    ReData = fscanf(ifp, '%f', numRe); % Scan in the Reynolds numbers

    represented in file

    numData = fscanf(ifp, '%f', 1); % Scan in number of data points in(Alpha, Cl, Cd) for each Re

    AlphaStall = fscanf(ifp, '%f', 1);

    AlphaZL = fscanf(ifp, '%f', 1);

    a = fscanf(ifp, '%f', 1);

    for i=1:(numRe*numData),

    TempData = fscanf(ifp, '%f', 7); % Xfoil spits out 7 types of data in

    its polars

    AlphaData(i) = TempData(1);

    ClData(i) = TempData(2);

    CdData(i) = TempData(3);

    CmData(i) = TempData(5);

    end

    fclose(ifp);

    Airfoil = '';

    else

    disp(sprintf('ERROR AIRFOIL.M: Error opening data file %s.pol!',

    Airfoil));

    Airfoil = '';

    ERROR_FLAG = 1;

    end

    AlphaData = AlphaData/180*pi; % Convert experimental AoA data to

    radians

    AlphaStall = AlphaStall/180*pi; % Convert stall AoA to radiansAlphaZL = AlphaZL/180*pi; % Convert zero lift AoA to radians

    TAB(:,1) = AlphaData'; % Form look-up table (1st column is AoA,

    2nd is cl, 3rd is cd)

    TAB(:,2) = ClData'; % Note that the data for the different Re

    runs together

    TAB(:,3) = CdData';

    TAB(:,4) = CmData';

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    32/50

    32

    clear AlphaData; % Free some memory

    clear ClData;

    clear CdData;

    clear CmData;

    if (index == 1), % Check to see what mode airfoil.m is operating

    in

    x = AlphaZL; % Return zero lift AoA [rad]

    y = a; % Return lift curve slope [1/rad]

    z = 0; % Nothing

    elseif (index == 2), % Data look-up for cl and cd

    for i = 1:(N+1), % Begin loop to find local cl and cd for the

    (N+1) nodes

    ReIndex = 1; % Compute ReIndex for moving around in data

    table

    for j = 2:numRe, % ReIndex will identify the first data Re less

    that the local Re

    if( Re(i) >= ReData(j) ),

    ReIndex = ReIndex + 1;

    endend

    num1 = (ReIndex-1)*numData + 1; % Beginning of data for Re

    immediately below the local Re

    num2 = ReIndex*numData; % Ending of data for Re immediately below

    the local Re

    num3 = num2 + 1; % Beginning of data for Re immediately above

    the local Re

    num4 = (ReIndex+1)*numData; % Ending of data for Re immediately

    above the local Re

    if( Re(i)

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    33/50

    33

    minAlpha = LominAlpha;

    end

    if( LomaxAlpha < HimaxAlpha ), % Take the smaller of the two

    maximums to be the overall max

    maxAlpha = LomaxAlpha;

    else,

    maxAlpha = HimaxAlpha;

    end

    if( Alpha(i) > AlphaStall ), % Check to see if element is stalled

    sprintf('AIRFOIL.M: Element %i stalled at AoA = %f!', i, Alpha(i))

    disp('AIRFOIL.M: Using cl=0, cd=1.0, and cm=0.')

    ERROR_FLAG = 1;

    x(i) = 0;

    y(i) = 1.00;

    z(i) = 0;

    elseif( Alpha(i) < minAlpha ),

    sprintf('AIRFOIL.M: Element %i at AoA = %f is below experimentaldata range!', i, Alpha(i))

    sprintf('AIRFOIL.M: Using cl, cd, and cm at the minimum AoA, %f

    degrees', minAlpha/pi*180)

    if( minAlpha == LominAlpha ), % If local AoA is below minAlpha,

    interpolation on Re is impossible, so just use values from the data set of

    minAlpha

    Data = table1( TAB(num1:num2, :), minAlpha );

    else,

    Data = table1( TAB(num3:num4, :), minAlpha );

    end

    ERROR_FLAG = 1;

    x(i) = Data(1); % cl

    y(i) = Data(2); % cd

    z(i) = Data(3); % cm

    elseif( Alpha(i) > maxAlpha ), % If local AoA is above maxAlpha

    (but below AlphaStall), interpolation on Re is impossible, so just use values

    from the data set of maxAlpha

    sprintf('AIRFOIL.M: Element %i at AoA = %f is above experimental

    data range!', i, Alpha(i))

    sprintf('AIRFOIL.M: Using cl and cd at the maximum AoA, %f degrees',

    max(AlphaData)/pi*180)

    if( maxAlpha == LomaxAlpha ),

    Data = table1( TAB(num1:num2, :), maxAlpha );else,

    Data = table1( TAB(num3:num4, :), maxAlpha );

    end

    x(i) = Data(1); % cl

    y(i) = Data(2); % cd

    z(i) = Data(3); % cm

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    34/50

    34

    elseif( (Alpha(i) = minAlpha) ), % If

    local Alpha is within the data ranges, go ahead and interpolate on Re

    LoData = table1(TAB( num1:num2, : ), Alpha(i));

    HiData = table1(TAB( num3:num4, : ), Alpha(i));

    if( (Re(i) = ReData(numRe)) ),

    x(i) = LoData(1); % Note that in either of these

    cases, LoData and HiData point to the same block of data (top or lowest Re

    block)

    y(i) = LoData(2);

    z(i) = LoData(3);

    else,

    Factor = ( Re(i) - ReData(ReIndex) ) / ( ReData(ReIndex+1) -

    ReData(ReIndex) ); % Interpolate between cl and cd values for the

    Reynolds numbers above and below the local Re

    x(i) = LoData(1) + Factor*( HiData(1) - LoData(1) ); % cl

    y(i) = LoData(2) + Factor*( HiData(2) - LoData(2) ); % cd

    z(i) = LoData(3) + Factor*( HiData(3) - LoData(3) ); % cm

    end

    else,

    disp(sprintf('ERROR AIRFOIL.M: Unknown problem with element %i at

    AoA = %f!', i, Alpha(i)));

    ERROR_FLAG = 1;

    end

    end % End loop for the (N+1) nodes

    %figure;plot(Alpha/pi*180, x);hold on;grid on;title('cl vs. Alpha');

    %figure;plot(x, y);hold on;grid on;title('cd vs. cl');

    %figure;plot(x, z);hold on;grid on;title('cm vs. cl');

    else,

    disp(sprintf('ERROR AIRFOIL.M: You called airfoil.m in mode %i. This is

    poo-poo!', index));

    ERROR_FLAG = 1;

    end % End if statement for operational mode

    of airfoil.m

    %----------------------------------------------------------------------------

    --------------------------------------%

    % END AIRFOIL.M

    %----------------------------------------------------------------------------

    --------------------------------------%

    %----------------------------------------------------------------------------

    --------------------------------------%

    % BEGIN GEOMETRY.M

    %----------------------------------------------------------------------------

    --------------------------------------%

    %

    % GEOMETRY.M

    %

    % INPUT: N (Numer of blade elements used)

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    35/50

    35

    % Collective (Collective pitch of rotor) [rad]

    % Twist (Twist of blade from hub to tip) [rad]

    % X0 (Radial starting point of airfoil)

    % X1 (Radial starting point of taper)

    % R (Radius of rotor from hub to tip) [m]

    % Ct (Chord at tip of rotor) [m]

    % Cr (Chord at X0) [m]

    % AlphaZL (Zero lift AoA) [rad]

    % k (Vector of r values where each airfoil begins) [m]

    % Temp_a (Vector of lift curve slopes for each airfoil) [1/rad]

    %

    % OUPUT: c (Nondimensional chord c/R)

    % r (Nondimensional radius r/R)

    % Pitch (Pitch of blade at each position r) [rad]

    % a (Vector of lift curve slopes at each r) [1/rad]

    % ERROR_FLAG (1 if error has occurredl 0 otherwise)

    %

    %----------------------------------------------------------------------------

    --------------------------------------%

    function [c, r, Pitch, a, ERROR_FLAG] = geometry(N, Collective, Twist, X0,

    X1, R, Ct, Cr, AlphaZL, k, Temp_a)

    ERROR_FLAG = 0;

    for i=0:N,

    r(i+1) = ( X0 + (1 - X0)*sin(i*pi/2/N) );

    end

    % Caculate the chord at each element boundary (nondimensionalized by rotor

    radius)

    if( X1 ~= 1 ),

    Slope = (Cr - Ct) / (1 - X1); % "Slope" of the tapered section

    else,

    Slope = 0;

    end

    for i=1:(N+1),

    if ( r(i) X1,

    % Pitch(i) = Collective - AlphaZL(j);

    % a(i) = Temp_a(j);

    % elseif r(i) >= X1,

    % Pitch(i) = Collective + ((r(i)-X1)/(1-X1))*Twist -

    AlphaZL(length(k));

    % a(i) = Temp_a(length(k));

    % else,

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    36/50

    36

    % disp('ERROR GEOMETRY.M: Problem processing range of each airfoil

    section');

    % ERROR_FLAG = 1;

    % r(i)

    % k

    % end

    % end

    %end

    %%%%%%%%%%%%%%%%%%%%% old

    for i=1:(N+1),

    for j=1:(length(k)-1),

    if( (r(i) >= k(j)) & (r(i) < k(j+1)) ),

    Pitch(i) = Collective + r(i)*Twist - AlphaZL(j);

    a(i) = Temp_a(j);

    elseif( (r(i) >= k(length(k))) & (r(i)

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    37/50

    37

    %----------------------------------------------------------------------------

    --------------------------------------%

    function [M, V, Re] = dynsim(N, Omega, R, Mach, c, r, KinVisc)

    i=1:(N+1);

    V = Omega*r(i)*R;

    M = V(i)/Mach;

    Re = V(i).*c(i)*R/KinVisc;

    %----------------------------------------------------------------------------

    --------------------------------------%

    % END DYNSIM.M

    %----------------------------------------------------------------------------

    --------------------------------------%

    function PlotStyle = plotstyl

    PlotColor = ['k' 'k' 'k' 'k' 'k' 'k' 'k'];

    PlotSymbol = ['. '; 'o '; 'x '; '+ '; '- '; '* '; ': '; '-.'; '--'];

    num1 = length(PlotColor);

    num2 = length(PlotSymbol(:,1));

    index = 1;

    for i = 1:num1,

    for j = 1:num2,

    PlotStyle(num1*num2-index+1,:) = sprintf('%s%s', PlotColor(i),

    PlotSymbol(j,:));

    index = index + 1;

    end

    end

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    38/50

    38

    Appendix C An Example of a CMARC .in File

    DAE 11 Rotating about x; Radius=17 m; Chord=2.5m; Two Blades&BINP2 LSTINP=2, LSTOUT=0, LSTFRQ=0, LENRUN=0, LPLTYP=0, &END&BINP3 LSTGEO=0, LSTNAB=0, LSTWAK=0, LSTCPV=0, &END

    &BINP4 MAXIT=200, SOLRES=0.0005, &END&BINP5 NTSTPS=50, DTSTEP=0.1, &END&BINP6 RSYM=1.0, RGPR=0.0, RFF=5.0, RCORES=0.050, RCOREW=0.050, &END&BINP7 VINF=1.0, VSOUND=1116.0, &END&BINP8 ALDEG=0.0, YAWDEG=0.0, PHIDOT=-30.0, THEDOT=0.0, PSIDOT=0.0, &END&BINP8A PHIMAX=0.0, THEMAX=0.0, PSIMAX=0.0,

    WRX=0.0, WRY=0.0, WRZ=0.0, &END&BINP8B DXMAX=0.0, DYMAX=0.0, DZMAX=0.0, WTX=0.0, WTY=0.0, WTZ=0.000, &END&BINP9 CBAR=1.00, SREF=85.0, SSPAN=10.0,

    RMPX=0.25, RMPY=0.00, RMPZ=0.00, &END&BINP10 NORSET=0, NBCHGE=0, NCZONE=0, NCZPCH=0, CZDUB=0.0, VREF=0.0, NNROT=0, &END

    &BINP11 NORPCH=0, NORF=0, NORL=0, NOCF=0, NOCL=0, VNORM=0.0, &END&BINP11A NROTPCH=0, NROTRF=0, NROTRL=0, NROTCF=0 NROTCL=0, ANGLE=0.0, VX=0.0, VY=0.0, VZ=0.0, &END&BINP12 KPAN=0, KSIDE=0, NEWNAB=0, NEWSID=0, &END&BINP13 NBLIT = 0, &END

    &ASEM1 ASEMX=0.00, ASEMY=0.00, ASEMZ=0.00, ASCAL=1.00, ATHET=0.00, NODEA=5, &END

    &COMP1 COMPX=0.0000, COMPY=0.0000, COMPZ= 0.0000, CSCAL= 1.000, CTHET= 0.0, NODEC=5, &END

    &PATCH1 IREV=-1, IDPAT=1, MAKE=0, KCOMP=1, KASS=1, &END WING Right [1]&SECT1 STX=0.000, STY=0.200, STZ=-0.500, SCALE=2.500,

    ALF=-85.0, THETA=0.0, INMODE=4, TNODS=0, TNPS=0, TINTS=0, &END

    1.00000 .00000 .00000 .96610 .00000 .00640 .94530 .00000 .01060 .92430 .00000 .01510 .90310 .00000 .01990 .88190 .00000 .02510 .86060 .00000 .03040 .83920 .00000 .03610 .81770 .00000 .04200 .79620 .00000 .04800 .77470 .00000 .05430

    .75300 .00000 .06060 .73140 .00000 .06700 .70980 .00000 .07350 .68840 .00000 .07990 .66700 .00000 .08610 .64580 .00000 .09210 .62480 .00000 .09780 .60390 .00000 .10310 .58320 .00000 .10790

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    39/50

    39

    .56250 .00000 .11220 .54180 .00000 .11600 .52100 .00000 .11920 .50020 .00000 .12200 .47930 .00000 .12430 .45840 .00000 .12610 .43750 .00000 .12750 .41650 .00000 .12840 .39560 .00000 .12880 .37470 .00000 .12880 .35380 .00000 .12830 .33300 .00000 .12730 .31230 .00000 .12590 .29180 .00000 .12410 .27150 .00000 .12180 .25150 .00000 .11910 .23190 .00000 .11590 .21270 .00000 .11240 .19430 .00000 .10840 .17650 .00000 .10420

    .15970 .00000 .09970 .14390 .00000 .09500 .12920 .00000 .09030 .11580 .00000 .08550 .10350 .00000 .08080 .09240 .00000 .07610 .08240 .00000 .07160 .07340 .00000 .06730 .06530 .00000 .06310 .05800 .00000 .05910 .05140 .00000 .05520 .04550 .00000 .05150 .04020 .00000 .04800

    .03530 .00000 .04460 .03090 .00000 .04130 .02690 .00000 .03810 .02320 .00000 .03500 .01990 .00000 .03200 .01690 .00000 .02910 .01410 .00000 .02620 .01160 .00000 .02340 .00930 .00000 .02070 .00730 .00000 .01800 .00550 .00000 .01540 .00400 .00000 .01270 .00260 .00000 .01010

    .00150 .00000 .00760 .00070 .00000 .00500 .00020 .00000 .00250 .00010 .00000 .00130 .00000 .00000 .00000&BPNODE TNODE=1, TNPC=15, TINTC=0, &END .00020 .00000 -.00240 .00090 .00000 -.00460 .00220 .00000 -.00670 .00410 .00000 -.00850

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    40/50

    40

    .00630 .00000 -.00990 .00890 .00000 -.01100 .01170 .00000 -.01180 .01470 .00000 -.01250 .01790 .00000 -.01300 .02120 .00000 -.01350 .02480 .00000 -.01390 .02860 .00000 -.01420 .03260 .00000 -.01450 .03690 .00000 -.01470 .04150 .00000 -.01490 .04650 .00000 -.01500 .05180 .00000 -.01510 .05750 .00000 -.01510 .06380 .00000 -.01510 .07060 .00000 -.01500 .07810 .00000 -.01490 .08630 .00000 -.01470 .09530 .00000 -.01440 .10530 .00000 -.01400

    .11640 .00000 -.01360 .12870 .00000 -.01300 .14220 .00000 -.01230 .15700 .00000 -.01160 .17310 .00000 -.01070 .19040 .00000 -.00970 .20870 .00000 -.00860 .22800 .00000 -.00740 .24790 .00000 -.00620 .26830 .00000 -.00490 .28920 .00000 -.00360 .31020 .00000 -.00230 .33150 .00000 -.00100

    .35280 .00000 .00020 .37420 .00000 .00150 .39560 .00000 .00270 .41700 .00000 .00380 .43850 .00000 .00490 .45990 .00000 .00600 .48130 .00000 .00700 .50270 .00000 .00790 .52410 .00000 .00880 .54540 .00000 .00950 .56680 .00000 .01020 .58810 .00000 .01070 .60940 .00000 .01120

    .63070 .00000 .01150 .65200 .00000 .01180 .67330 .00000 .01190 .69460 .00000 .01190 .71590 .00000 .01190 .73710 .00000 .01170 .75840 .00000 .01140 .77960 .00000 .01110 .80080 .00000 .01060 .82200 .00000 .01000

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    41/50

    41

    .84310 .00000 .00930 .86420 .00000 .00840 .88510 .00000 .00750 .90600 .00000 .00640 .92670 .00000 .00520 .94720 .00000 .00390 .96740 .00000 .00250 .98710 .00000 .00100 1.00000 .00000 .00000&BPNODE TNODE=3, TNPC=15, TINTC=0, &END&SECT1 STX=0.000, STY=17.000, STZ=-0.500, SCALE=2.500,

    ALF=-80.0, THETA=0.0, INMODE=0, TNODS=3, TNPS=15, TINTS=2, &END

    &PATCH1 IREV=-1, IDPAT=1, MAKE=1, KCOMP=1, KASS=1, &END WING TIP [2]

    &PATCH2 ITYP= 1, TNODS=3, TNPS=3, TINTS=3, NPTTIP=0, &END

    &PATCH1 IREV=-1, IDPAT=1, MAKE=0, KCOMP=1, KASS=1, &END WING Left [3]&SECT1 STX=0.000, STY=-0.200, STZ=0.500, SCALE=2.500,

    ALF=85.0, THETA=0.0, INMODE=4, TNODS=0, TNPS=0, TINTS=0, &END

    1.00000 .00000 .00000 .96610 .00000 -.00640 .94530 .00000 -.01060 .92430 .00000 -.01510 .90310 .00000 -.01990 .88190 .00000 -.02510 .86060 .00000 -.03040 .83920 .00000 -.03610 .81770 .00000 -.04200 .79620 .00000 -.04800 .77470 .00000 -.05430

    .75300 .00000 -.06060 .73140 .00000 -.06700 .70980 .00000 -.07350 .68840 .00000 -.07990 .66700 .00000 -.08610 .64580 .00000 -.09210 .62480 .00000 -.09780 .60390 .00000 -.10310 .58320 .00000 -.10790 .56250 .00000 -.11220 .54180 .00000 -.11600 .52100 .00000 -.11920 .50020 .00000 -.12200

    .47930 .00000 -.12430 .45840 .00000 -.12610 .43750 .00000 -.12750 .41650 .00000 -.12840 .39560 .00000 -.12880 .37470 .00000 -.12880 .35380 .00000 -.12830 .33300 .00000 -.12730 .31230 .00000 -.12590 .29180 .00000 -.12410

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    42/50

    42

    .27150 .00000 -.12180 .25150 .00000 -.11910 .23190 .00000 -.11590 .21270 .00000 -.11240 .19430 .00000 -.10840 .17650 .00000 -.10420 .15970 .00000 -.09970 .14390 .00000 -.09500 .12920 .00000 -.09030 .11580 .00000 -.08550 .10350 .00000 -.08080 .09240 .00000 -.07610 .08240 .00000 -.07160 .07340 .00000 -.06730 .06530 .00000 -.06310 .05800 .00000 -.05910 .05140 .00000 -.05520 .04550 .00000 -.05150 .04020 .00000 -.04800 .03530 .00000 -.04460

    .03090 .00000 -.04130 .02690 .00000 -.03810 .02320 .00000 -.03500 .01990 .00000 -.03200 .01690 .00000 -.02910 .01410 .00000 -.02620 .01160 .00000 -.02340 .00930 .00000 -.02070 .00730 .00000 -.01800 .00550 .00000 -.01540 .00400 .00000 -.01270 .00260 .00000 -.01010 .00150 .00000 -.00760

    .00070 .00000 -.00500 .00020 .00000 -.00250 .00010 .00000 -.00130 .00000 .00000 .00000&BPNODE TNODE=1, TNPC=15, TINTC=0, &END .00020 .00000 .00240 .00090 .00000 .00460 .00220 .00000 .00670 .00410 .00000 .00850 .00630 .00000 .00990 .00890 .00000 .01100 .01170 .00000 .01180 .01470 .00000 .01250

    .01790 .00000 .01300 .02120 .00000 .01350 .02480 .00000 .01390 .02860 .00000 .01420 .03260 .00000 .01450 .03690 .00000 .01470 .04150 .00000 .01490 .04650 .00000 .01500 .05180 .00000 .01510 .05750 .00000 .01510

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    43/50

    43

    .06380 .00000 .01510 .07060 .00000 .01500 .07810 .00000 .01490 .08630 .00000 .01470 .09530 .00000 .01440 .10530 .00000 .01400 .11640 .00000 .01360 .12870 .00000 .01300 .14220 .00000 .01230 .15700 .00000 .01160 .17310 .00000 .01070 .19040 .00000 .00970 .20870 .00000 .00860 .22800 .00000 .00740 .24790 .00000 .00620 .26830 .00000 .00490 .28920 .00000 .00360 .31020 .00000 .00230 .33150 .00000 .00100 .35280 .00000 -.00020

    .37420 .00000 -.00150 .39560 .00000 -.00270 .41700 .00000 -.00380 .43850 .00000 -.00490 .45990 .00000 -.00600 .48130 .00000 -.00700 .50270 .00000 -.00790 .52410 .00000 -.00880 .54540 .00000 -.00950 .56680 .00000 -.01020 .58810 .00000 -.01070 .60940 .00000 -.01120 .63070 .00000 -.01150

    .65200 .00000 -.01180 .67330 .00000 -.01190 .69460 .00000 -.01190 .71590 .00000 -.01190 .73710 .00000 -.01170 .75840 .00000 -.01140 .77960 .00000 -.01110 .80080 .00000 -.01060 .82200 .00000 -.01000 .84310 .00000 -.00930 .86420 .00000 -.00840 .88510 .00000 -.00750 .90600 .00000 -.00640

    .92670 .00000 -.00520 .94720 .00000 -.00390 .96740 .00000 -.00250 .98710 .00000 -.001001.00000 .00000 .00000&BPNODE TNODE=3, TNPC=15, TINTC=0, &END&SECT1 STX=0.000, STY=-17.000, STZ=0.500, SCALE=2.500,

    ALF=80.0, THETA=0.0, INMODE=0, TNODS=3, TNPS=15, TINTS=2, &END

    &PATCH1 IREV=-1, IDPAT=1, MAKE=3, KCOMP=1, KASS=1, &END

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    44/50

    44

    WING TIP [4]&PATCH2 ITYP= 1, TNODS=5, TNPS=3, TINTS=3, NPTTIP=0, &END

    &WAKE1 IDWAK=1, IFLXW=0, &ENDWING WAKE [1]

    &WAKE2 KWPACH=1, KWSIDE=2, KWLINE=0, KWPAN1=0, KWPAN2=0, NODEW=3, INITIAL=0, &END

    &SECT1 STX=10.000, STY=0.000, STZ=0.0000, SCALE=1.000, ALF=0.0, THETA=0.0, INMODE=0, TNODS=3, TNPS=10, TINTS=1, &END

    &WAKE1 IDWAK=1, IFLXW=0, &ENDWING WAKE [3]

    &WAKE2 KWPACH=3, KWSIDE=2, KWLINE=0, KWPAN1=0, KWPAN2=0, NODEW=5, INITIAL=0, &END

    &SECT1 STX=10.000, STY=0.000, STZ=0.0000, SCALE=1.000, ALF=0.0, THETA=0.0, INMODE=0, TNODS=3, TNPS=10, TINTS=1, &END

    &ONSTRM NONSL =0 KPSL = 0, &END

    &VS1 NVOLR= 0, NVOLC= 0, &END&SLIN1 NSTLIN=0, &END

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    45/50

    45

    Appendix D CMARC Post-Processing Code

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %%%%%%%%%%%%%%%%%

    %run_data.m takes specific .out files from CMARC, reads in the Cp's for each

    panel, integrates% over each panel to get lift and drag coefficients

    %

    %Written by Matthew Wysel and John Castro, Fall 2001

    %

    %This code only works for 19 spanwise panels and 15 chordwise panels

    % (ie 15 on top and another 15 on btm)

    %

    %This code does not yet output correct answers. There is most likely an

    error buried within

    % one of the for or if loops used to read in and analyze the data.

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %%%%%%%%%%%%%%%%%

    clear all; close all;

    DAE11 = DLMREAD('DAE11_rot_x_30_rpm_taper_0.8_sweep_0.dat','\t',2,0);

    panel=DAE11(:,1);

    x=DAE11(:,2); % [m] Thickness

    y=DAE11(:,3); % [m] Span

    z=DAE11(:,4); % [m] Chord

    Cp=DAE11(:,5); % Cp

    w=5/60*2*pi; % [rad/s] Omega

    collective = 14*pi/180; % Collective pitch [rad][10:14]

    twist = -10/180*pi; % Washout from hub to tip [rad]

    rho=1.23; %[kg/m^3] density at SL

    % throw down stuff about graphs

    Vr = y*w; % [m/s] Local rotational velocity

    Vt = y(length(y))*w; % [m/s] Tip Velocity

    % Scaling the Cp

    Cp_scl = Cp.*(Vr./Vt).^2;

    %Cp_scl=Cp;

    check=Cp-Cp_scl;

    % Returns the spanwise panel positions

    i=1;

    panel_grp(1)=y(1);

    for j=2:length(y);

    if y(j)~=y(j-1)

    i=i+1;

    panel_grp(i)=y(j);

    end

    end

    %%%%%%%%%

    % Calclates the Cl for each spanwise panel (ie 1-19)

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    46/50

    46

    for i = 1:length(panel_grp)-1

    dCp=0;

    inside=0;

    for k = 1:15;

    k = k+(i-1)*30;

    blah = 31+(i-1)*30;

    if k == 1+(i-1)*30 % ie the panels at the te

    dz_u(k) = z(k)-z(k+1);

    dz_l(k) = z(blah-k)-z(blah-k-1);

    dx_u(k) = x(k)-x(k+1);

    dx_l(k) = x(blah-k)-x(blah-k-1);

    elseif (k>1+(i-1)*30) & (k

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    47/50

    47

    Figure 2 FX63-137, Upper Surface CpDistribution of Rotor

    Figure 3 FX63-137, Detail of Upper Surface CpDistribution

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    48/50

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    49/50

    49

    Figure 6 FX63-137, Upper Surface View of Wake Shed from Rotor

    Figure 7 FX63-137, Side View of Wake Shed from Rotor

  • 7/24/2019 HPH FINAL Report Matthew and John 1

    50/50

    Figure 8 DAE 11, Upper Surface View of Wake Shed from Rotor