Professional Documents
Culture Documents
m1 = n3 - n1;
m2 = n2 - n4;
m3 = n2 - n1;
m4 = n3 - n2;
m5 = n4 - n3;
m6 = n1 - n4;
ListLinePlot[{{n2, n4, n1, n3}, {n1, n2, n3, n4, n4, n1}},
PlotStyle → {{Black, Thick}, Red}, Axes → False]
Out[11]=
2 Tensegrity-Calculations.nb
Connectivity
Bars
In[18]:= d1 = {0, 0, 1, 0} - {1, 0, 0, 0};
d2 = {0, 0, 0, 1} - {0, 1, 0, 0};
DB = Transpose[{d1, d2}];
CB = Transpose[DB];
TraditionalForm[CB]
Out[22]//TraditionalForm=
-1 0 1 0
0 -1 0 1
Strings
In[23]:= s1 = {0, 1, 0, 0} - {1, 0, 0, 0};
s2 = {0, 0, 1, 0} - {0, 1, 0, 0};
s3 = {0, 0, 0, 1} - {0, 0, 1, 0};
s4 = {1, 0, 0, 0} - {0, 0, 0, 1};
DS = Transpose[{s1, s2, s3, s4}];
CS = Transpose[DS];
TraditionalForm[CS]
Out[29]//TraditionalForm=
-1 1 0 0
0 -1 1 0
0 0 -1 1
1 0 0 -1
Tensegrity Connectivity
In[30]:= Unprotect[C];
C = ArrayFlatten[{{CB}, {CS}}];
TraditionalForm[C]
Out[32]//TraditionalForm=
-1 0 1 0
0 -1 0 1
-1 1 0 0
0 -1 1 0
0 0 -1 1
1 0 0 -1
Members
In[33]:= M = N.Transpose[C];
TraditionalForm[M]
Out[34]//TraditionalForm=
-2 0 -1 -1 1 1
0 -2 1 -1 -1 1
Equilibrium
If the structure is in equilibrium, then, F=MΣC=0
Tensegrity-Calculations.nb 3
Solve: Equations may not give solutions for all "solve" variables.
Out[40]//TraditionalForm=
{{λ2 → λ1 , γ1 → λ1 , γ2 → λ1 , γ3 → λ1 , γ4 → λ1 }}
Stiffness Matrix
Supose that the bars and strings have a linear material behavior, thus, one can prescribe constant
stiffnesses for the bars and strings, as follows:
In[41]:= L1 = - γ * IdentityMatrix[2] - Outer[Times, m1, m1] Norm[m1] ^ 2 +
kb * Outer[Times, m1, m1] Norm[m1] ^ 2;
L2 = - γ * IdentityMatrix[2] - Outer[Times, m2, m2] Norm[m2] ^ 2 +
kb * Outer[Times, m2, m2] Norm[m2] ^ 2;
L3 = γ * IdentityMatrix[2] - Outer[Times, m3, m3] Norm[m3] ^ 2 +
ks * Outer[Times, m3, m3] Norm[m3] ^ 2;
L4 = γ * IdentityMatrix[2] - Outer[Times, m4, m4] Norm[m4] ^ 2 +
ks * Outer[Times, m4, m4] Norm[m4] ^ 2;
L5 = γ * IdentityMatrix[2] - Outer[Times, m5, m5] Norm[m5] ^ 2 +
ks * Outer[Times, m5, m5] Norm[m5] ^ 2;
L6 = γ * IdentityMatrix[2] - Outer[Times, m6, m6] Norm[m6] ^ 2 +
ks * Outer[Times, m6, m6] Norm[m6] ^ 2;
Φ = ArrayFlatten[{{L1, 0, 0, 0, 0, 0}, {0, L2, 0, 0, 0, 0}, {0, 0, L3, 0, 0, 0},
{0, 0, 0, L4, 0, 0}, {0, 0, 0, 0, L5, 0}, {0, 0, 0, 0, 0, L6}}];
K = KroneckerProduct[Transpose[C], IdentityMatrix[2]].Φ.
KroneckerProduct[C, IdentityMatrix[2]];
TraditionalForm[K]
Out[49]//TraditionalForm=
γ ks ks γ γ ks γ ks
γ + k b + ks 0 -2 - 2 2
- 2
-kb 0 -2 - 2 2 2
-
ks γ γ ks γ ks γ k
0 ks 2
- 2
-2 - 2
0 γ 2
- 2
- 2 - 2s
γ ks ks γ γ ks γ ks
-2 - 2 2
- 2
ks 0 -2 - 2 2 2
- γ 0
ks γ γ ks γ ks γ k
2
- 2
-2 - 2
0 γ + k b + ks 2
- 2
- 2 - 2s 0 -kb
γ ks γ k γ ks ks γ
-kb 0 -2 - 2 2
- 2s γ + k b + ks 0 -2 - 2 2
- 2
γ ks γ k ks γ γ ks
0 γ 2
- 2
- 2 - 2s 0 ks 2
- 2
-2 - 2
γ ks γ ks γ ks ks γ
-2 - 2 2 2
- γ 0 -2 - 2 2
- 2
ks 0
γ ks γ k ks γ γ ks
2
- 2
- 2 - 2s 0 -kb 2
- 2
-2 - 2
0 γ + k b + ks
4 Tensegrity-Calculations.nb
Modes
In[50]:=
In[51]:= TraditionalForm[Eigenvalues[K]]
Out[51]//TraditionalForm=