← All examples
36

Canonical Grid model

Aerospace starter - Beam and modal mechanics

Uniform cantilever under tip load plus a separate two-mass vibration surrogate. SI numerical units.

Scale
Small
Source
aerospace-structures.grid
Length
52 lines
Collection
Advanced language
Level
Intermediate
Runtime
Portable
Version
1.0.0
aerospace-structures.grid
Get Grid
MODEL "Aerospace starter - Beam and modal mechanics"
DESCRIPTION "Uniform cantilever under tip load plus a separate two-mass vibration surrogate. SI numerical units."
VERSION "1.0.0"
AUTHOR "Aerospace evaluation"
TAGS "aerospace", "starter", "structures"

strict

# Euler-Bernoulli beam assumptions: uniform section, small elastic deflection.
input YoungModulus_Pa = 70e9
  VALIDATE BETWEEN 1e9 AND 500e9 MESSAGE "Use positive Young modulus from 1 to 500 GPa, entered in Pa."
input Density_kg_m3 = 2700
  VALIDATE BETWEEN 500 AND 20000 MESSAGE "Use density from 500 to 20000 kg/m^3."
input Length_m = 2
  VALIDATE BETWEEN 1 AND 4 MESSAGE "Use length from 1 to 4 m with this fixed 0.05 by 0.1 m section."
Width_m = 0.05
Height_m = 0.1
input TipLoad_N = 1000
  VALIDATE BETWEEN 0 AND 2000 MESSAGE "Use 0 to 2000 N and check the small-deflection indicator."
SecondMoment_m4 = Width_m * Height_m^3 / 12
SectionArea_m2 = Width_m * Height_m
Deflection_m = TipLoad_N * Length_m^3 / (3 * YoungModulus_Pa * SecondMoment_m4)
RootStress_MPa = TipLoad_N * Length_m * Height_m / (2 * SecondMoment_m4) / 1e6
Beta = FINDROOT((beta) => COSH(beta) * COS(beta) + 1, 1, 2, 1e-12, 200)
BeamFrequency_Hz = Beta^2 / (2 * PI()) * SQRT(YoungModulus_Pa * SecondMoment_m4 / (Density_kg_m3 * SectionArea_m2 * Length_m^4))

# Two unit masses, two 1000 N/m springs; mass-normalized stiffness in s^-2.
ModeEigenvalues = EIGEN.VALUES([[2000, -1000], [-1000, 1000]])
A1 = "Second moment (m^4)"
output SectionSecondMoment_m4 = SecondMoment_m4
A2 = "Tip deflection (m)"
output TipDeflection_m = Deflection_m
A3 = "Root bending stress (MPa)"
output RootBendingStress_MPa = RootStress_MPa
A4 = "First cantilever beta"
output CantileverBeta = Beta
A5 = "Beam first frequency (Hz)"
output FirstBeamFrequency_Hz = BeamFrequency_Hz
A6 = "Higher modal eigenvalue"
output HigherEigenvalue_s2 = MAX(ModeEigenvalues)
A7 = "Lower modal eigenvalue"
output LowerEigenvalue_s2 = MIN(ModeEigenvalues)
A8 = "Higher mode (Hz)"
output HigherMode_Hz = SQRT(HigherEigenvalue_s2) / (2 * PI())
A9 = "Lower mode (Hz)"
output LowerMode_Hz = SQRT(LowerEigenvalue_s2) / (2 * PI())
output DeflectionLengthRatio = ABS(TipDeflection_m / Length_m)
output SmallDeflectionIndicator = DeflectionLengthRatio < 0.01
output Assumptions = "Uniform Euler-Bernoulli cantilever, fixed rectangular section, linear elastic small deflection; no shear deformation, rotary inertia, plasticity, fatigue, or safety factor. The separate two-mass example is not a discretization or validation of this beam. SI numerical working units."
output ScenarioGuide = "Save Baseline at 2 m: deflection 0.009142857143 m and first beam frequency 20.56304414 Hz. Set Length_m to 3; deflection scales by 3.375 and frequency by 4/9. Inspect the small-deflection flag, then restore Baseline. Modes use MIN/MAX explicitly: lower about 3.110516371 Hz, higher 8.143437583 Hz. Save and reopen .gridoc."

END MODEL