Exemplo n.º 1
0
def calc_rot_stiff(wheel):
    'Calculate rotational (wind-up) stiffness.'

    # Create a ModeMatrix model with 24 modes
    mm = ModeMatrix(wheel, N=24)

    # Calculate stiffness matrix
    K = mm.K_rim(tension=True) + mm.K_spk(smeared_spokes=False, tension=True)

    # Create a unit tangential load at theta=0
    F_ext = mm.F_ext(0., np.array([0., 0., 1., 0.]))

    # Solve for the mode coefficients
    dm = np.linalg.solve(K, F_ext)

    return 1e-3*np.pi/180*wheel.rim.radius / mm.rim_def_tan(0., dm)[0]
    # Create hub and spokes for each flange diameter
    wheel.hub = Hub(width=0.025, diameter=d)
    wheel.lace_cross(n_spokes=36, n_cross=3, diameter=2.0e-3, young_mod=210e9)

    # Create a ModeMatrix model with 24 modes
    mm = ModeMatrix(wheel, N=24)

    # Create a unit tangential force
    F_ext = mm.F_ext(0., np.array([0., 0., 1., 0.]))

    # Calculate stiffness matrix
    K = mm.K_rim(tension=False) + mm.K_spk(smeared_spokes=True, tension=False)

    # Solve for the mode coefficients
    dm = np.linalg.solve(K, F_ext)

    # Calculate the rotational stiffness
    rot_stiff.append(np.pi/180*wheel.rim.radius/mm.rim_def_tan(0., dm)[0])

plt.plot(diam_flange * 100, rot_stiff, 'ro')
plt.xlabel('Flange diameter [cm]')
plt.ylabel('Rotationoal stiffness [N / degree]')

print('Flange diam [cm] | Rot. stiffness [N/degree]')
print('----------------------------------------------------')
for d, r in zip(diam_flange, rot_stiff):
    print('{0:11.1f}      | {1:4.3e}'.format(d*100, r))

plt.tight_layout()
plt.show()