Skip to content

Instantly share code, notes, and snippets.

@pavelskipenes
Created October 24, 2024 13:00
Show Gist options
  • Save pavelskipenes/7a6ed27323009d8ebd380c649030d97e to your computer and use it in GitHub Desktop.
Save pavelskipenes/7a6ed27323009d8ebd380c649030d97e to your computer and use it in GitHub Desktop.
def get_second_area_moment(breadth, depth):
return breadth * depth**3/12
def get_natural_frequency(youngs_modulus, sam, mass, length, eigenvalue):
return eigenvalue * ((youngs_modulus * sam)/(mass * length**4))**(1/2)
def get_light_beam_stiffness(length, youngs, sam):
return (3 * youngs * sam)/(length**3)
def get_natural_frequency_massless_spring(mass, stiffness):
return (stiffness/mass)**(1/2)
def get_natural_frequency_real_beam(youngs, sam, length):
return ((140 * youngs * length)/(11 * length**4))**(1/2)
# INPUT
GRAVITATIONAL_ACCELERATION = 9.81
LENGTH = 350e-3
BREADTH = 25e-3
YOUNGS_MODULUS = 200e9
DEPTH = 3e-3
VOLUME = LENGTH * BREADTH * DEPTH
BEAM_DENCITY = 7850
MASS_NOMINAL = BEAM_DENCITY * VOLUME
MASS_TOTAL = 118e-3
MASS_EXTRA = MASS_TOTAL - MASS_NOMINAL
BEAM_MASS_PER_LENGTH = MASS_NOMINAL / LENGTH
print("volume", VOLUME)
print("beam length", LENGTH)
print("beam mass", MASS_NOMINAL)
print("beam mass per length", BEAM_MASS_PER_LENGTH)
sam = get_second_area_moment(BREADTH, DEPTH)
print("cross sectional area moment", sam)
EIGENVALUE = 3.516
masses = [0.118, 0.418, 0.618]
# TODO: light beam and real beam
for mass in masses:
# natural_frequency = get_natural_frequency(YOUNGS_MODULUS, sam, mass, LENGTH, EIGENVALUE)
# print("mass, natural frequency", mass, natural_frequency)
stiffness = get_light_beam_stiffness(LENGTH, YOUNGS_MODULUS, sam)
# print("mass, stiffness", mass, stiffness)
natural_frequency = get_natural_frequency_massless_spring(mass, stiffness)
natural_period = natural_frequency**(-1)
print("mass, natural frequency, natural period", mass, natural_frequency, natural_period)
real_natural_frequency = get_natural_frequency_real_beam(YOUNGS_MODULUS, sam, LENGTH)
print("real natual period", real_natural_frequency ** (-1))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment