Importing "UIUC propeller Geometry" error

72 views
Skip to first unread message

Aya Khaled

unread,
Nov 15, 2022, 1:04:43 PM11/15/22
to SUAVE FORUM
Hi Emilio, 

I'm trying to import propeller data instead of using the propeller design of SUAVE. I've used the radius, chord, and twist distribution data from the UIUC database, but I keep getting the same error:
 AttributeError: 'Propeller' object has no attribute 'mid_chord_alignment'
it seems that it's used in that line
 Sweep      = np.arctan(prop.mid_chord_alignment/prop.radius_distribution)

That's the code I used:
  
    #------------------------------------------------------------------
    # Network
    #------------------------------------------------------------------
    net                              = SUAVE.Components.Energy.Networks.Battery_Propeller()
    net.number_of_propeller_engines  = 1
    net.identical_propellers         = True
   
   
    #------------------------------------------------------------------
    # Propellers Geometry
    #------------------------------------------------------------------    
   
    # The tractor propeller
    propeller                        = SUAVE.Components.Energy.Converters.Propeller()
    propeller.origin                 = [[0,0,0.]]
    propeller.number_of_blades       = 2
    propeller.tip_radius             = 11/2 * Units.inch
    propeller.twist_distribution     = np.array([36.414,39.25,40.053,38.239,35.366,32.531,30.047,27.912,25.975,24.217,22.591,21.273,20.146,19.223,18.367,17.943,18.192,14.53])* Units.degrees
    propeller.chord_distribution     = np.array([0.1685,0.1637,0.1619,0.1614,0.1617,0.1634,0.166,0.1684,0.17,0.1702,0.1681,0.163,0.1544,0.1416,0.1237,0.1004,0.0699,0.0086])
    propeller.radius_distribution    = np.array([0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.951,1])
    # pairfoil                       = SUAVE.Components.Airfoils.Airfoil()
    # pairfoil.coordinate_file       = 'C:/Users/Ayakh/Downloads/sec_trial/Airfoils/E221.dat'
    # propeller.airfoil_geometry(pairfoil)
    net.propellers.append(propeller)
    vehicle.append_component(net)
  

I've seen a conversation here in the forum regarding the same topic, and I tried following the same steps suggested. It seemed very basic, but I'm not sure if I messed something up.  


Also, I'm still new to SUAVE and I'm struggling with knowing how to go about implementing certain stuff. One of which is defining a specific airfoil for the propeller. I tried using the same approach I did to define the airfoil for the main wing, but it doesn't work the same way (as in the 3 commented lines), but I still have an error anyways so I can't tell whether that's how it's done or not. I'd be grateful if you can guide me with how I can approach cases that are not actually implemented in the tutorials.

Id' really appreciate any help on the matter!

Thanks in advance,
Aya

Emilio

unread,
Nov 18, 2022, 2:59:41 PM11/18/22
to SUAVE FORUM
Hi Aya,
The line you're referring has to do with writing an OpenVSP model of the propeller. OpenVSP uses the sweep of the propeller. We however, require the Mid Chord Alignment. It's basically the half chord sweep, but it's not in degrees its a dimensional shift.

If you create a prop in SUAVE it defaults this automatically. If you input the rotor from a UIUC file then you need to also include this information to export the prop. SUAVE doesn't care about the MCA for analysis purposes. If UIUC provides sweep you can work out the MCA. Otherwise, if you're at a total loss, you can make this same assumption.

-Emilio
Reply all
Reply to author
Forward
0 new messages