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)
print " D : ", AsUnit(Prop.D, 'in') print " Pitch : ", AsUnit(Prop.Pitch, 'in') Vmax = 50 h = 0 * FT N = npy.linspace(1000, 6800, 6) * RPM Alpha = npy.linspace(-25, 25, 41) * ARCDEG V = npy.linspace(0, Vmax, 30) * FT / SEC Prop.CoefPlot(Alpha, fig=1) Prop.PTPlot(N, V, h, 'V', fig=2) # # N = npy.linspace(0, 13000,31)*RPM # V = npy.linspace(0,Vmax,5)*FT/SEC # # Prop.PTPlot(N,V,h,'N', fig = 3) Prop.PlotTestData(fig=4) N = 2414 * RPM print print "Static Thrust : ", AsUnit(Prop.T(N, 0 * FT / SEC, h), 'lbf') print "Measured Thrust : ", AsUnit(max(npy.array(Prop.ThrustData)[:, 1]), 'lbf') print print "Static Torque : ", AsUnit( Prop.P(N, 0 * FT / SEC, h) / N, 'in*ozf') # print "Measured Torque : ", AsUnit( max(npy.array(Prop.TorqueData)[:,1]), 'in*ozf' ) pyl.show()
print " D : ", AsUnit( Prop.D, 'in') print " Pitch : ", AsUnit( Prop.Pitch, 'in') Vmax = 50 h=0*FT N=npy.linspace(1000, 6800, 5)*RPM Alpha = npy.linspace(-25,25,41)*ARCDEG V = npy.linspace(0,Vmax,30)*FT/SEC Prop.CoefPlot(Alpha,fig = 1) Prop.PTPlot(N,V,h,'V', fig = 2) # # N = npy.linspace(0, 13000,31)*RPM # V = npy.linspace(0,Vmax,5)*FT/SEC # # Prop.PTPlot(N,V,h,'N', fig = 3) Prop.PlotTestData(fig=4) N = 6024*RPM print print "Static Thrust : ", AsUnit( Prop.T(N, 0*FT/SEC, h), 'lbf' ) print "Measured Thrust : ", AsUnit( max(npy.array(Prop.ThrustData)[:,1]), 'lbf' ) N = 6410*RPM print print "Static Torque : ", AsUnit( Prop.P(N, 0*FT/SEC, h)/N, 'in*ozf' ) print "Measured Torque : ", AsUnit( max(npy.array(Prop.TorqueData)[:,1]), 'in*ozf' ) pyl.show()