You are on page 1of 4

Tensegrity Calculations

Planar Tensegrity Cross


Nodes
In[1]:= n1 = {1, 0};
n2 = {0, 1};
n3 = {- 1, 0};
n4 = {0, - 1};

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]

M = Transpose[{m1, m2, m3, m4, m5, m6}];


m = {{m1}, {m2}, {m3}, {m4}, {m5}, {m6}};
Unprotect[N];
N = Transpose[{n1, n2, n3, n4}];
n = {{n1}, {n2}, {n3}, {n4}};

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

In[35]:= Λ = {{λ1 , 0}, {0, λ2 }};


Γ = {{γ1 , 0, 0, 0}, {0, γ2 , 0, 0}, {0, 0, γ3 , 0}, {0, 0, 0, γ4 }};
Σ = ArrayFlatten[{{- Λ, 0}, {0, Γ}}];
F = M.Σ.C;
TraditionalForm[F]
TraditionalForm[Solve[F ⩵ 0, {λ1 , λ2 , γ1 , γ2 , γ3 , γ4 }]]
Out[39]//TraditionalForm=
γ1 + γ4 - 2 λ1 γ2 - γ1 -γ2 - γ3 + 2 λ1 γ3 - γ4
 
γ4 - γ1 γ1 + γ2 - 2 λ2 γ3 - γ2 -γ3 - γ4 + 2 λ2

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=

{0, 0, 0, 2 (kb + γ), -2 (γ - ks ), 2 (γ + ks ), 2 (γ + ks ), 2 (kb + ks )}

You might also like