How to program node 3. It is a 3element (spring assembly) 4 element

4 views (last 30 days)
P2 = 1000
P4 = 4000
kel1 = 1000*[1 -1;-1 1]
kel2 = 1000*[1 -1;-1 1]
kel3 = 1000*[1 -1;-1 1]
k = [1000,1000,1000];
elem_con = [1 2;2 3;3 4]
elem = size(elem_con,1)
nodes = elem+1
K = zeros(nodes)
%Forces
F = [0;1000;0;4000]
%Assembly
for i=1:elem
ke = k(i)*[1 -1;-1 1]
node1 = elem_con(i,1);
node2 = elem_con(i,2);
node3 = elem_con(i,3);
K(node1,node1) = K(node1,node1) + ke(1,1)
K(node1,node2) = K(node1,node2) + ke(1,2)
K(node2,node1) = K(node2,node1) + ke(2,1)
K(node2,node2) = K(node2,node2) + ke(2,2)
K(node3,node2) = K(node3,node2) + ke(3,2)
K(node3,node3) = K(node3,node3) + ke(3,3)
end
d = zeros(nodes,1)
d1 = 0;
d(2:4) = K(2:4,2:4)\F(2:4)
F = K*d
del1 = d(1:2)
del2 = d(2:3)
del3 = d(3:4)
fel1 = kel1*del1
fel2 = kel2*del2
fel3 = kel3*del3

Answers (1)

Gyan Vaibhav
Gyan Vaibhav on 18 Oct 2023
Hi Karlo,
It seems like you are trying to assemble the global stiffness matrix K for a 3-element spring assembly system and solve for the displacements d and forces F. However, there seems to be a mistake in your code.
You are assuming a 3-node element, but in your element connectivity matrix “elem_con”, you have defined only 2 nodes per element.
Given the provided information, I will assume you have a 1D spring assembly system with 4 nodes and 3 spring elements between them.
You can modify your code as follows:
P2 = 1000;
P4 = 4000;
kel1 = 1000*[1 -1;-1 1];
kel2 = 1000*[1 -1;-1 1];
kel3 = 1000*[1 -1;-1 1];
k = [1000,1000,1000];
elem_con = [1 2;2 3;3 4];
elem = size(elem_con,1);
nodes = elem+1;
K = zeros(nodes);
%Forces
F = [0;P2;0;P4]; % Updated force vector
%Assembly
for i=1:elem
ke = k(i)*[1 -1;-1 1];
node1 = elem_con(i,1);
node2 = elem_con(i,2);
K(node1,node1) = K(node1,node1) + ke(1,1);
K(node1,node2) = K(node1,node2) + ke(1,2);
K(node2,node1) = K(node2,node1) + ke(2,1);
K(node2,node2) = K(node2,node2) + ke(2,2);
end
d = zeros(nodes,1);
d(2:4) = K(2:4,2:4)\F(2:4); % Solve for displacements
F = K*d; % Compute forces
del1 = d(1:2);
del2 = d(2:3);
del3 = d(3:4);
fel1 = kel1*del1; % Compute forces in element 1
fel2 = kel2*del2; % Compute forces in element 2
fel3 = kel3*del3; % Compute forces in element 3
I hope these suggestions help you resolve the issue.
Best regards,
Gyan

Categories

Find more on Programming in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!