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):
예제 #2
0
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])
예제 #3
0
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],\
예제 #6
0
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()