def test_Power(self): """ Tests that the engine class is working properly """ # Create the propeller defined in the mathcad pdf documents Prop = ACPropeller() Prop.D = 14.2*IN Prop.PitchAngle = 12*ARCDEG # Prop.Pitch = 7.1117*IN Prop.dAlpha = 0*ARCDEG Prop.Solidity = 0.0136 Prop.RD = 3/8 Prop.AlphaStall = 14*ARCDEG N = 11400 * RPM self.assertAlmostEqual(Prop.P(N, 0*FT/SEC, 0*FT) / HP, 1.2950, 4)
import numpy as npy import pylab as pyl from scalar.units import IN, LBF, SEC, ARCDEG, FT, RPM, OZF, GRAM, gacc, W, K, degR, inHg, MM from scalar.units import AsUnit # Set Propeller properties Prop = ACPropeller() Prop.name = 'APC 22x10E' Prop.D = 22 * IN Prop.Thickness = 0.5 * IN Prop.Pitch = 10 * IN Prop.dAlpha = 11 * ARCDEG Prop.Solidity = 0.0126 Prop.AlphaStall = 20 * ARCDEG Prop.AlphaZeroCL = 0 * ARCDEG Prop.CLSlope = .22 / ARCDEG #- 2D airfoil lift slope Prop.CDCurve = 2.2 #- 2D curvature of the airfoil drag bucket Prop.CDp = .02 #- Parasitic drag Prop.Weight = 240.9 * GRAM * gacc Prop.ThrustUnit = LBF Prop.ThrustUnitName = 'lbf' Prop.PowerUnit = W Prop.PowerUnitName = 'watt' Prop.MaxTipSpeed = None # # These are corrected for standard day #
import numpy as npy import pylab as pyl from scalar.units import IN, LBF, SEC, ARCDEG, FT, RPM, OZF, GRAM, gacc, Pa, degR, W, inHg, K from scalar.units import AsUnit # Set Propeller properties Prop = ACPropeller() Prop.name = 'APC 13x4' Prop.D = 13 * IN Prop.Thickness = 5 / 8 * IN Prop.Pitch = 3.5 * IN Prop.dAlpha = 4.9 * ARCDEG Prop.Solidity = 0.015 Prop.AlphaStall = 15 * ARCDEG Prop.CLSlope = 0.065 / ARCDEG Prop.CDCurve = 2.2 Prop.CDp = 0.01 Prop.Weight = 1.80 * OZF STD = STDCorrection(30.16 * inHg, (1.667 + 273.15) * K) # RPM, Thrust ThrustData1 = [(12080 * RPM, (10 * LBF + 4 * OZF) * STD), (11650 * RPM, (9 * LBF + 6 * OZF) * STD), (10980 * RPM, (8 * LBF + 13 * OZF) * STD), (10280 * RPM, (8 * LBF + 0 * OZF) * STD), (9630 * RPM, (6 * LBF + 12 * OZF) * STD), (8400 * RPM, (5 * LBF + 3 * OZF) * STD), (7215 * RPM, (3 * LBF + 14 * OZF) * STD),
import numpy as npy import pylab as pyl from scalar.units import IN, LBF, SEC, ARCDEG, FT, RPM, OZF from scalar.units import AsUnit # Set Propeller properties Prop = ACPropeller() Prop.name = 'Prop 13.5x4' Prop.D = 13.5*IN Prop.Thickness = 5/8*IN #Prop.PitchAngle = 12*ARCDEG Prop.Pitch = 4*IN Prop.dAlpha = 0.8*ARCDEG Prop.Solidity = 0.013 #0.0125 seems to match the old data better... Prop.RD = 3/8 Prop.AlphaStall = 13*ARCDEG Prop.Weight = 3/32*LBF # # These are corrected for standard day # # RPM, Thrust #Prop.ThrustData = [(8100 *RPM, 4 *LBF + 8*OZF), # (9200 *RPM, 5 *LBF + 13*OZF), # (11200 *RPM, 9 *LBF + 3*OZF)] # # RPM, Torque #Prop.TorqueData = [(11000 *RPM, 114.768*IN*OZF)] ################################################################################ if __name__ == '__main__':
import numpy as npy import pylab as pyl from scalar.units import IN, LBF, SEC, ARCDEG, FT, RPM, OZF, GRAM, gacc, Pa, degR, W, inHg, K from scalar.units import AsUnit # Set Propeller properties Prop = ACPropeller() Prop.name = 'Prop 13.5x6' Prop.D = 13.5 * IN Prop.Thickness = 5 / 8 * IN #Prop.PitchAngle = 12*ARCDEG Prop.Pitch = 5. * IN Prop.dAlpha = 4. * ARCDEG Prop.Solidity = 0.014 Prop.RD = 3 / 8 Prop.AlphaStall = 14 * ARCDEG Prop.CLSlope = 0.07 / ARCDEG Prop.Weight = 1.25 * OZF # # These are corrected for standard day STD = STDCorrection(30.03 * inHg, (19 + 273.15) * K) # RPM, Thrust Prop.ThrustData = [(3200 * RPM, (1 * LBF + 6 * OZF) * STD), (5610 * RPM, (3 * LBF + 2 * OZF) * STD), (7380 * RPM, (3 * LBF + 13 * OZF) * STD), (8640 * RPM, (5 * LBF + 7 * OZF) * STD), (9250 * RPM, (6 * LBF + 11 * OZF) * STD), (10320 * RPM, (7 * LBF + 3 * OZF) * STD),
import numpy as npy import pylab as pyl from scalar.units import IN, LBF, SEC, ARCDEG, FT, RPM, OZF, GRAM, gacc, Pa, degR, inHg from scalar.units import AsUnit # Set Propeller properties Prop = ACPropeller() Prop.name = 'Prop 14x12' Prop.D = 14 * IN Prop.Thickness = 5 / 8 * IN #Prop.PitchAngle = 12*ARCDEG Prop.Pitch = 6 * IN Prop.dAlpha = 0.8 * ARCDEG Prop.Solidity = 0.021 #0.0125 seems to match the old data better... Prop.RD = 3 / 8 Prop.AlphaStall = 16 * ARCDEG Prop.Weight = 100 * LBF #Standard correction for 2:00 pm for the test day STD = STDCorrection(30.03 * inHg, (19 + 273.15) * K) # # These are corrected for standard day # # RPM, Thrust Prop.ThrustData = [(2370 * RPM, (0 * LBF + 10 * OZF) * STD), (4140 * RPM, (3 * LBF + 2 * OZF) * STD), (5160 * RPM, (4 * LBF + 14 * OZF) * STD), (5880 * RPM, (6 * LBF + 0 * OZF) * STD), (5970 * RPM, (5 * LBF + 10 * OZF) * STD)]
import numpy as npy import pylab as pyl from scalar.units import IN, LBF, SEC, ARCDEG, FT, RPM, OZF, GRAM, gacc, hPa, K, W, inHg from scalar.units import AsUnit # Set Propeller properties Prop = ACPropeller() Prop.name = 'APC 12.25x3.75 ADV' Prop.D = 12.25 * IN Prop.Thickness = 5 / 8 * IN Prop.Pitch = 3.75 * IN Prop.dAlpha = 6.25 * ARCDEG # for correlating Prop.Solidity = 0.013 # for correlating Prop.AlphaStall = 18 * ARCDEG # for correlating Prop.AlphaZeroCL = 0 * ARCDEG #- 2D curvature of the airfoil drag bucket Prop.CLSlope = 0.095 / ARCDEG #- 2D airfoil lift slope (default 0.068/deg) Prop.CDCurve = 2.5 #- 2D curvature of the airfoil drag bucket Prop.CDp = 0.01 #- 2D parasite drag Prop.Weight = 1.80 * OZF Prop.WeightGroup = 'Propulsion' # # These are corrected for standard day #Standard correction for 2:00 pm for the test day #STD = STDCorrection(30.16*inHg, (1.6667 + 273.15)*K) # # RPM, Thrust #Prop.ThrustData = [(13440 *RPM, (10 *LBF + 8*OZF)*STD),
from Aerothon.ACPropeller import ACPropeller from Aerothon.ACEngine import ACEngine from Aerothon.ACPropulsion import ACPropulsion import numpy as npy from Aerothon.scalar.units import IN, LBF, PSFC, SEC, ARCDEG, FT, OZF, RPM, HP from Aerothon.scalar.units import AsUnit # Set Propeller properties Prop = ACPropeller() Prop.D = 13.5 * IN # Diameter Prop.Thickness = .5 * IN # Thickness at the hub... just for drawing purposes Prop.PitchAngle = 14 * ARCDEG # Pitch angle.. aka \Beta Prop.dAlpha = 0 * ARCDEG # Difference between measured alpha and zero lift alpha Prop.Solidity = 0.0136 # Proportional to the blade disk area, similar to the activity factor (AreaBlades/(2*D**2)) Prop.RD = 3 / 8 # The location on the profile chord where the PitchAngle is defined (default 3/8) Von Mises 306 Prop.AlphaStall = 12 * ARCDEG # Stall angle of attack Prop.Weight = 3 / 32 * LBF # Weight # Use these parameters to match test data if need be. # Prop.CLSlope = .078/ARCDEG #- 2D airfoil lift slope # Prop.CDCurve = 2.2 #- 2D curvature of the airfoil drag bucket # Prop.CDp = .02 #- Parasitic drag # Set Engine properties - glow engine... see 2015 files for setting up electric motor Engine = ACEngine() Engine.Rbs = 1.1 Engine.Rla = 3.5 Engine.NumCyl = 1 Engine.NumRev = 1 Engine.CompRatio = 9 Engine.Vd = 0.607 * IN**3
import numpy as npy import pylab as pyl from scalar.units import IN, LBF, SEC, ARCDEG, FT, RPM, OZF, GRAM, gacc, hPa, K, W, inHg from scalar.units import AsUnit # Set Propeller properties Prop = ACPropeller() Prop.name = 'APC 12.25x3.75' Prop.D = 12.25 * IN Prop.Thickness = 5 / 8 * IN Prop.Pitch = 3.75 * IN Prop.dAlpha = 6.25 * ARCDEG Prop.Solidity = 0.012 Prop.AlphaStall = 18 * ARCDEG Prop.AlphaZeroCL = 0 * ARCDEG #- 2D curvature of the airfoil drag bucket Prop.CLSlope = 0.09 / ARCDEG #- 2D airfoil lift slope (default 0.068/deg) Prop.CDCurve = 2.5 #- 2D curvature of the airfoil drag bucket Prop.CDp = 0.01 #- 2D parasite drag Prop.Weight = 1.80 * OZF Prop.WeightGroup = 'Propulsion' # # These are corrected for standard day #Standard correction for 2:00 pm for the test day STD = STDCorrection(30.03 * inHg, (19 + 273.15) * K) # # RPM, Thrust Prop.ThrustData = [(4110 * RPM, (1 * LBF + 0 * OZF) * STD),