U_vec = np.linspace(1,342,100) # In addition, a vector of trial reduced frequencies must be initialized. Keep # in mind that the because the non-looping pk method is used, a wide range of # reduced frequencies may need to be used. kr_vec = np.array([0.,1e-06,1e-04,.001,.01,.05,.1,.5,1.,5.,10.,50])*10 # A vector of mach numbers must also be used. These should be kept close to # The suspected flutter mach number. If mach numbers greater than 0.7 are used, # is is likely doublet lattice method is no-longer valid. M_vec = [0.]*len(kr_vec) # Initialize the sea level density rho_0 = 1.225 # Determine the number of modes to be used nmodes = 6 # Run the flutter analysis. Depending on how many reduced frequencies and # velocities sampled, this could take anywhere from a 30 seconds to 2 minutes. model.flutterAnalysis(U_vec,kr_vec,M_vec,c,rho_0,nmodes,symxz=True,g=0.0) # POST-PROCESS THE FLUTTER RESULTS # ================================ # Note that in these figures, the dashed lines are the NASTRAN results, whereas # the solid lines are the AeroComBAT results. cvec = ['b','g','r','c','m','y'] plt.figure(1) plt.hold(True) for PID, point in model.flutterPoints.iteritems(): plt.plot(U_vec,point.gamma,color=cvec[PID],label='Mode '+str(PID+1)) plt.legend(loc=2) plt.ylim([-1,1]) plt.plot(UNAST,Damp1,str(cvec[0])+'--',label='NASTRAN Mode 1') plt.plot(UNAST,Damp2,str(cvec[1])+'--',label='NASTRAN Mode 2') plt.plot(UNAST,Damp3,str(cvec[2])+'--',label='NASTRAN Mode 3')
#cProfile.run('model.calcAIC(M,kr,b,symxz=True)') #cProfile.run('calcAIC(M,kr,b,delta_x_vec,sweep_vec,l_vec,dihedral_vec,\ # Xr_vec,Xi_vec,Xc_vec,Xo_vec,symxz=True)',sort='tottime') ''' # CASE 1: # Apply the case load model.resetPointLoads() tipLoad = np.array([10000.,0.,0.,0.,0.,0.]) F = {80:tipLoad} model.applyLoads(1,F=F) # Run the analysis model.staticAnalysis(1) model.plotDeformedModel(figName='V8 Case 1',numXSects=8,contLim=[-4.0e6,4.0e6],\ warpScale=100,displScale=10,contour='sig_33') ''' ''' U_vec = np.linspace(1,30,30) kr_vec = np.array([.001,.01,.1,.5,2.5,15.,35.])*10 M_vec = [0.,0.,0.,0.,0.,0.,0.] rho_0 = 1.225 nmodes = 8 model.flutterAnalysis(U_vec,kr_vec,M_vec,c/2,rho_0,nmodes,symxz=True) # flutter plots import matplotlib.pyplot as plt plt.figure(1) plt.hold(True) for PID, point in model.flutterPoints.iteritems(): plt.plot(U_vec,point.gamma,label='mode'+str(PID)) plt.legend()
''' # Flutter Analysis # Note units are inches, seconds, and pounds U_vec = np.linspace(1, 100, 100) kr_vec = np.array( [.001, .005, .01, .05, .1, .5, 1., 5., 10., 50., 100., 500., 1000., 5000.]) M_vec = [0.] * len(kr_vec) # In slinch rho_0 = 1.225 nmodes = 6 model.flutterAnalysis(U_vec, kr_vec, M_vec, croot * 4, rho_0, nmodes, symxz=True, g=.01) # flutter plots import matplotlib.pyplot as plt plt.figure(1) plt.hold(True) for PID, point in model.flutterPoints.iteritems(): plt.plot(U_vec, point.gamma, label='mode' + str(PID)) plt.legend(loc=3) #plt.ylim([-.001,150]) plt.grid(True) plt.hold(False)
model.plotDeformedModel(figName='normalMode 4',numXSects=10,contLim=[0,293000],\ warpScale=25,displScale=10,contour='none',mode=4) model.plotDeformedModel(figName='normalMode 5',numXSects=10,contLim=[0,293000],\ warpScale=25,displScale=10,contour='none',mode=5) ''' # Flutter Analysis # Note units are inches, seconds, and pounds U_vec = np.linspace(1,100,100) kr_vec = np.array([.001,.005,.01,.05,.1,.5,1.,5.,10.,50.,100.,500.,1000.,5000.]) M_vec = [0.]*len(kr_vec) # In slinch rho_0 = 1.225 nmodes = 6 model.flutterAnalysis(U_vec,kr_vec,M_vec,croot*4,rho_0,nmodes,symxz=True,g=.01) # flutter plots import matplotlib.pyplot as plt plt.figure(1) plt.hold(True) for PID, point in model.flutterPoints.iteritems(): plt.plot(U_vec,point.gamma,label='mode'+str(PID)) plt.legend(loc=3) #plt.ylim([-.001,150]) plt.grid(True) plt.hold(False) plt.figure(2) plt.hold(True) for PID, point in model.flutterPoints.iteritems():