Skip to content

Instantly share code, notes, and snippets.

@machinaut
Created February 28, 2019 03:14
Show Gist options
  • Save machinaut/6483a0eb17012d8a89c9f5321def77c6 to your computer and use it in GitHub Desktop.
Save machinaut/6483a0eb17012d8a89c9f5321def77c6 to your computer and use it in GitHub Desktop.
Tensegrity Material Analysis
#!/usr/bin/env python
import numpy as np
'''
Notes:
- Tensile strength of 7x19 1/4" galvanized steel wire rope ~ 7000 lbs
'''
# TUNABLE PARAMETERS
# Length
L = 20 * 12 # Length in inches
K = 1.0 # Column effective length factor -- taken to be 1.0 for pinned at both ends
def buckling(D, W, E):
'''
Calculate the euler critical buckling load of a round tube column
- D - outer diameter (in)
- W - wall thickness (in)
- E - Modulus of elasticity (ksi)
'''
# Inner diameter (in)
d = D - 2 * W
# Moment of Inertia (in^4)
inertia = np.pi * ((D ** 4) - (d ** 4)) / 64
# Euler Critical Buckling Load (lbf)
return 1000 * (np.pi ** 2) * E * inertia / ((K * L) ** 2)
for E in (10000, 30000): # Modulus of elasticity for [aluminum, steel]
for D in [3, 3.5, 4, 5]: # Outer diameter
for W in [.063, .083, .095, 0.1, 0.12, .125, .18, .187, .25]: # Wall thickness
buckle = buckling(D, W, E)
if buckle >= 4000:
mat = {10000: '6061', 30000: 'A500'}[E]
print(f'D {D:0.2f} W {W:0.3f} mat {mat} buckling {buckle:.0f}')
break
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment