wings = [] sbeams = [] displArr = [] # Apply the case load def f(x): vx = 1e3 vy = 1e3 pz = -1e3 tz = 1e3 return np.array([vx,vy,pz,tz]) for noe in noe_dens: # Create Wing tmpWing = Wing(b_s,croot,ctip,x1,x2,Y_rib,n_ply,m_i,matLib,\ name='box',noe_per_unit_length=noe) wings+=[tmpWing] # Save Super Beam tmpSBeam = tmpWing.wingSects[0].SuperBeams[0] sbeams+=[tmpSBeam] # Fix End of Wing tmpWing.addConstraint(0,'fix') # Load Wing tmpWing.applyLoads(f=f,eid=range(0,int(L*noe))) # Run Analysis tmpWing.staticAnalysis(resetPointLoads=True) # Recover displacements and rotations: displArr+=[tmpSBeam.writeDisplacements(Return=True)] # Establish analytical answers: def u(z):
matLib = MaterialLib() matLib.addMat(1, 'AL', 'iso', [71.7e9, .33, 2810], .005) matLib.addMat(2, 'Weak_mat', 'iso', [100, .33, 10], .005) matLib.addMat(3, 'AS43501-6*', 'trans_iso', [142e9, 9.8e9, .34, .42, 6e9, 2000], 0.005) n_ply = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] m_ply = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] # For tension bending coupling #m_ply = [3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3] #th_ply = [0,0,0,0,-30,-30,-30,-30,0,0,0,0,30,30,30,30] noe_dens = 4 chordVec = np.array([1., 0., 0.]) wing1 = Wing(1,p1,p2,croot,ctip,x1,x2,Y_rib,n_ply,m_ply,matLib,name='box',\ noe=noe_dens,chordVec=chordVec,ref_ax='origin')#,th_ply=th_ply) sbeam1 = wing1.wingSects[0].SuperBeams[0] x1 = np.array([-0.8990566037735849 * 2, 0., 0.]) x2 = np.array([0.8990566037735849 * 2, 0., 0.]) x3 = np.array([0.8990566037735849 * 2, 20., 0.]) x4 = np.array([-0.8990566037735849 * 2, 20., 0.]) nspan = 8 * 5 nchord = 2 * 5 #wing1.addLiftingSurface(1,x1,x2,x3,x4,nspan,nchord) # Make a FEM model model = Model() model.addAircraftParts([wing1])
Y_rib = np.linspace(0., 20., 2) b_s = np.linalg.norm((Y_rib[0], Y_rib[-1])) matLib = MaterialLib() matLib.addMat(1, 'AL', 'iso', [71.7e9, .33, 2810], .005) matLib.addMat(2, 'Weak_mat', 'iso', [100, .33, 10], .005) n_ply = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] m_i = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] wing1 = Wing(b_s, croot, ctip, x1, x2, Y_rib, n_ply, m_i, matLib, name='box', noe_per_unit_length=5) sbeam1 = wing1.wingSects[0].SuperBeams[0] #wing1.plotRigidWing() # Apply the constraint for the model wing1.addConstraint(0, 'fix') # CASE 4: # Apply the case load tipLoad = np.array([-10000., 100000., -300000., 35000., 60000., 10000.]) F = {100: tipLoad}
sbeams = [] displArr = [] # Apply the case load def f(x): vx = 1e3 vy = 1e3 pz = -1e3 tz = 1e3 return np.array([vx, vy, pz, tz]) for noe in noe_dens: # Create Wing tmpWing = Wing(b_s,croot,ctip,x1,x2,Y_rib,n_ply,m_i,matLib,\ name='box',noe_per_unit_length=noe) wings += [tmpWing] # Save Super Beam tmpSBeam = tmpWing.wingSects[0].SuperBeams[0] sbeams += [tmpSBeam] # Fix End of Wing tmpWing.addConstraint(0, 'fix') # Load Wing tmpWing.applyLoads(f=f, eid=range(0, int(L * noe))) # Run Analysis tmpWing.staticAnalysis(resetPointLoads=True) # Recover displacements and rotations: displArr += [tmpSBeam.writeDisplacements(Return=True)] # Establish analytical answers:
x1 = -0.8990566037735849 x2 = 0.8990566037735849 c = 1. ctip = c croot = c Y_rib = np.linspace(0.,20.,2) b_s = np.linalg.norm((Y_rib[0],Y_rib[-1])) matLib = MaterialLib() matLib.addMat(1,'AL','iso',[71.7e9,.33,2810],.005) matLib.addMat(2,'Weak_mat','iso',[100,.33,10],.005) n_ply = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] m_i = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] wing1 = Wing(b_s,croot,ctip,x1,x2,Y_rib,n_ply,m_i,matLib,name='box',noe_per_unit_length=5) sbeam1 = wing1.wingSects[0].SuperBeams[0] #wing1.plotRigidWing() # Apply the constraint for the model wing1.addConstraint(0,'fix') # CASE 4: # Apply the case load tipLoad = np.array([-10000.,100000.,-300000.,35000.,60000.,10000.]) F = {100:tipLoad} wing1.applyLoads(F=F) # Run the analysis wing1.staticAnalysis() #wing1.plotDeformedWing(figName='V8 Case 4',numXSects=10,contLim=[0.,5.0e8],\
matLib = MaterialLib() matLib.addMat(1,'AL','iso',[71.7e9,.33,2810],.005) matLib.addMat(2,'Weak_mat','iso',[100,.33,10],.005) matLib.addMat(3,'AS43501-6*','trans_iso',[142e9,9.8e9,.34,.42,6e9,2000],0.005) n_ply = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] m_ply = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] # For tension bending coupling #m_ply = [3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3] #th_ply = [0,0,0,0,-30,-30,-30,-30,0,0,0,0,30,30,30,30] noe_dens = 4 chordVec=np.array([1.,0.,0.]) wing1 = Wing(1,p1,p2,croot,ctip,x1,x2,Y_rib,n_ply,m_ply,matLib,name='box',\ noe=noe_dens,chordVec=chordVec,ref_ax='origin')#,th_ply=th_ply) sbeam1 = wing1.wingSects[0].SuperBeams[0] x1 = np.array([-0.8990566037735849*2,0.,0.]) x2 = np.array([0.8990566037735849*2,0.,0.]) x3 = np.array([0.8990566037735849*2,20.,0.]) x4 = np.array([-0.8990566037735849*2,20.,0.]) nspan = 8*5 nchord = 2*5 #wing1.addLiftingSurface(1,x1,x2,x3,x4,nspan,nchord) # Make a FEM model model = Model()