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

4 ビュー (過去 30 日間)
Karlo
Karlo 2022 年 11 月 22 日
回答済み: Gyan Vaibhav 2023 年 10 月 18 日
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
  1 件のコメント
Venkat Siddarth
Venkat Siddarth 2023 年 9 月 7 日
Hi @Karlo,
In order to better assist you.Please elaborate your query.
Regards
Venkat Siddarth V

サインインしてコメントする。

回答 (1 件)

Gyan Vaibhav
Gyan Vaibhav 2023 年 10 月 18 日
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

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by