예제 #1
0
def Calc_skin_inertia_Ixx(Spar1, Spar2):
    n = 100  # number of sections
    dx = ((Spar2 - Spar1) / n)
    x = Spar1
    Ixx = 0
    for i in range(n):
        x = x + dx
        dxlength = dx * Wing.Chordlength
        y = ((Wing.airfoilordinate(x - dx) + Wing.airfoilordinate(x)) /
             2) * Wing.Chordlength
        dy = abs(Wing.airfoilordinate(x - dx) -
                 Wing.airfoilordinate(x)) * Wing.Chordlength
        length = np.sqrt(dxlength**2 + dy**2)
        dIxx = length * Wing.ThSkin * (y**2)
        Ixx = Ixx + dIxx
    Ixx = Ixx * 2
    return Ixx
예제 #2
0
def Calc_skin_inertia_Iyy(Spar1, Spar2):
    n = 100  # number of sections
    dx = ((Spar2 - Spar1) / n)
    x = Spar1
    Iyy = 0
    for i in range(n):
        x = x + dx
        xlength = x * Wing.Chordlength
        dxlength = dx * Wing.Chordlength
        y = ((Wing.airfoilordinate(x - dx) + Wing.airfoilordinate(x)) /
             2) * Wing.Chordlength
        dy = abs(Wing.airfoilordinate(x - dx) -
                 Wing.airfoilordinate(x)) * Wing.Chordlength
        length = np.sqrt(dxlength**2 + dy**2)
        dIyy = length * Wing.ThSkin * (
            (abs(xlength - (Wing.centroid * Wing.Chordlength)))**2)
        Iyy = Iyy + dIyy
    Iyy = Iyy * 2
    return Iyy
예제 #3
0
        I_XX_TOT += loc_I_xx + stringer_area * (y_coords[i])**2
        I_YY_TOT += loc_I_yy + stringer_area * (
            x_coords[i] - Wing.centroid * Wing.Chordlength)**2
        I_XY_TOT += loc_I_xy + stringer_area * (
            x_coords[i] - Wing.centroid * Wing.Chordlength) * (y_coords[i] -
                                                               Y_CEN)

    return I_XX_TOT, I_YY_TOT, I_XY_TOT


# returns stiffener x,y locations and rotation
# return z_y_angle_coords  # [(stringer0 z,y,rot),(stringer1 x,y,rot)] m,m,rad

#Ixx and Iyy of the clamps
ClampsIxx = ((Wing.AreaClamps / 2) *
             ((Wing.airfoilordinate(Wing.ChSpar1) * Wing.Chordlength)**2)) * 2
ClampsIyy = ((Wing.AreaClamps / 2) *
             ((abs(Wing.ChSpar1 - Wing.centroid) * Wing.Chordlength)**2)) * 2

I_XX_TOT_str, I_YY_TOT_str, I_XY_TOT_str = calc_total_stringer_inertia(
    Wing.get_coord_from_perim(Wing.N_stringers / 2, Wing.ChSpar1, Wing.ChSpar2,
                              Wing.Chordlength)[0],
    calc_stringer_inertia(Wing.h_str, Wing.w_str, Wing.t_str))
I_XX_Spar1, I_YY_Spar1 = Calc_spar_inertia(Wing.HSpar1, Wing.ThSpar1,
                                           Wing.ChSpar1, Wing.z)
I_XX_Spar2, I_YY_Spar2 = Calc_spar_inertia(Wing.HSpar2, Wing.ThSpar2,
                                           Wing.ChSpar2, Wing.z)

I_XX_Skin = Calc_skin_inertia_Ixx(Wing.ChSpar1, Wing.ChSpar2)
I_YY_Skin = Calc_skin_inertia_Iyy(Wing.ChSpar1, Wing.ChSpar2)
예제 #4
0
# plt.plot(zlist, L_momentlist)
# plt.show()


def Normal_stress_due_to_bending(x, y):  # Normal stress due to bending
    denominator_inertia_term = Inertia.Ixx_wb * Inertia.Iyy_wb - Inertia.Ixy_wb**2
    inertia_term_1 = (Inertia.Iyy_wb * y * Wing.Chordlength - Inertia.Ixy_wb *
                      x * Wing.Chordlength) / denominator_inertia_term
    inertia_term_2 = (Inertia.Ixx_wb * x * Wing.Chordlength - Inertia.Ixy_wb *
                      y * Wing.Chordlength) / denominator_inertia_term
    sigma_zs = D_moment * inertia_term_1 + L_moment * inertia_term_2
    strain = sigma_zs / youngs_modulus
    return sigma_zs, strain  #Gives the normal stress function for a given span zs, and x- and y- coordinate


NS = Normal_stress_due_to_bending(0.18, Wing.airfoilordinate(0.18))[0]

# print('sigma_zs', Normal_stress_due_to_bending(0.15, Wing.airfoilordinate(Wing.c)))

# def Shear_wb(zs, dL, dD, dM):
#     #section 01
#     qtorque = dM/(2*Wing.Area_cell())
#     n = 100
#     ds = Wing.HSpar1/n
#     qs1 = np.array([])
#     s1 = np.array([])
#     qs1 = np.append(qs1, 0)
#     s1 = np.append(s1, 0)
#     y = Q_("0 m")
#     s = Q_("0 m")
#     for i in range(n):