2-D Truss Analysis

조회 수: 11(최근 30일)
Jillian Franke
Jillian Franke 2020년 10월 21일
댓글: Long Hoang Van 2020년 11월 20일
I have got my for loop to work which was my main issue but now when I try to display the unit vectors into command window using the fprintf my unit vectors all come out as zero. When I run my for loop they are not zero. I can't seem to figure out what is causing them to be zero in the fprintf
%.... Input problem data
nNodesP = 12;
nMembersP = 21;
NodeP = zeros(nNodesP, 3); %Initialize memory storage
MemberP = zeros(nMembersP, 2);
%.... Input node coordinates
NodeP(1,:) = [0,0,0];
NodeP(2,:) = [2,0,0];
NodeP(3,:) = [4,0,0];
NodeP(4,:) = [6,0,0];
NodeP(5,:) = [8,0,0];
NodeP(6,:) = [10,0,0];
NodeP(7,:) = [12,0,0];
NodeP(8,:) = [10,1.5,0];
NodeP(9,:) = [8,3,0];
NodeP(10,:) = [6,3,0];
NodeP(11,:) = [4,3,0];
NodeP(12,:) = [2,1.5,0];
%.... Input member connections
MemberP(1,:) = [1,2];
MemberP(2,:) = [2,3];
MemberP(3,:) = [3,4];
MemberP(4,:) = [4,5];
MemberP(5,:) = [5,6];
MemberP(6,:) = [6,7];
MemberP(7,:) = [7,8];
MemberP(8,:) = [8,9];
MemberP(9,:) = [9,10];
MemberP(10,:) = [10,11];
MemberP(11,:) = [11,12];
MemberP(12,:) = [1,12];
MemberP(13,:) = [2,12];
MemberP(14,:) = [2,11];
MemberP(15,:) = [3,11];
MemberP(16,:) = [3,10];
MemberP(17,:) = [4,10];
MemberP(18,:) = [5,10];
MemberP(19,:) = [5,9];
MemberP(20,:) = [6,9];
MemberP(21,:) = [6,8];
%% .. Use a for loop to compute the position vector between connected
%nodes, the distance between connected nodes, and to compute the unit
%vectors for the direction of every member. You can use the variable name
%"UnitVecP" for the unit vectors in the planar truss.
PosVecP = zeros(nMembersP, 3); %Initialize memory storage
UnitVecP = zeros(nMembersP, 3);
OppPosVecP = zeros(nMembersP, 3);
for j = 1 : nMembersP
SN = MemberP(j,1); %SN = start node
EN = MemberP(j,2); %EN = end node
PosVecP(j,:) = NodeP(EN,:)- NodeP(SN,:);
Length(j,:) = norm(PosVecP(j,:));
UniVecP(j,:) = PosVecP(j,:)/Length(j,:)
negUniVecP(j,:) = -UniVecP(j,:);
%Finish this section to compute the position vector, length, unit vector,
%and negative unit vector for each member in the truss.
end % for j (members)
%% .Create output for command window
fprintf('%s\n' , '----------------------------------------')
fprintf('%s\n' , '-------------Planar Truss---------------')
fprintf('%s\n' , '----------------------------------------')
for j = 1 : nNodesP
fprintf('%s%8i%8.3f%8.3f%8.3f\n',' Node: ',j, NodeP(j,:)')
end
fprintf('\n')
for j = 1 : nMembersP
fprintf('%s%8i%8.3f%8.3f%8.3f\n',' Unit Vector: ',j, UnitVecP(j,:)')
end
fprintf('\n\n\n')
  댓글 수: 3
Long Hoang Van
Long Hoang Van 2020년 11월 20일
boolean matrix?

댓글을 달려면 로그인하십시오.

답변(1개)

Asad (Mehrzad)  Khoddam
Asad (Mehrzad) Khoddam 2020년 10월 21일
One t was missing in UniVctor:
%.... Input problem data
nNodesP = 12;
nMembersP = 21;
NodeP = zeros(nNodesP, 3); %Initialize memory storage
MemberP = zeros(nMembersP, 2);
%.... Input node coordinates
NodeP(1,:) = [0,0,0];
NodeP(2,:) = [2,0,0];
NodeP(3,:) = [4,0,0];
NodeP(4,:) = [6,0,0];
NodeP(5,:) = [8,0,0];
NodeP(6,:) = [10,0,0];
NodeP(7,:) = [12,0,0];
NodeP(8,:) = [10,1.5,0];
NodeP(9,:) = [8,3,0];
NodeP(10,:) = [6,3,0];
NodeP(11,:) = [4,3,0];
NodeP(12,:) = [2,1.5,0];
%.... Input member connections
MemberP(1,:) = [1,2];
MemberP(2,:) = [2,3];
MemberP(3,:) = [3,4];
MemberP(4,:) = [4,5];
MemberP(5,:) = [5,6];
MemberP(6,:) = [6,7];
MemberP(7,:) = [7,8];
MemberP(8,:) = [8,9];
MemberP(9,:) = [9,10];
MemberP(10,:) = [10,11];
MemberP(11,:) = [11,12];
MemberP(12,:) = [1,12];
MemberP(13,:) = [2,12];
MemberP(14,:) = [2,11];
MemberP(15,:) = [3,11];
MemberP(16,:) = [3,10];
MemberP(17,:) = [4,10];
MemberP(18,:) = [5,10];
MemberP(19,:) = [5,9];
MemberP(20,:) = [6,9];
MemberP(21,:) = [6,8];
%% .. Use a for loop to compute the position vector between connected
%nodes, the distance between connected nodes, and to compute the unit
%vectors for the direction of every member. You can use the variable name
%"UnitVecP" for the unit vectors in the planar truss.
PosVecP = zeros(nMembersP, 3); %Initialize memory storage
UnitVecP = zeros(nMembersP, 3);
OppPosVecP = zeros(nMembersP, 3);
for j = 1 : nMembersP
SN = MemberP(j,1); %SN = start node
EN = MemberP(j,2); %EN = end node
PosVecP(j,:) = NodeP(EN,:)- NodeP(SN,:);
Length(j,:) = norm(PosVecP(j,:));
UnitVecP(j,:) = PosVecP(j,:)/Length(j,:);
negUniVecP(j,:) = -UniVecP(j,:);
%Finish this section to compute the position vector, length, unit vector,
%and negative unit vector for each member in the truss.
end % for j (members)
%% .Create output for command window
fprintf('%s\n' , '----------------------------------------')
fprintf('%s\n' , '-------------Planar Truss---------------')
fprintf('%s\n' , '----------------------------------------')
for j = 1 : nNodesP
fprintf('%s%8i%8.3f%8.3f%8.3f\n',' Node: ',j, NodeP(j,:)')
end
fprintf('\n')
for j = 1 : nMembersP
fprintf('%s%8i%8.3f%8.3f%8.3f\n',' Unit Vector: ',j, UnitVecP(j,:)')
end
fprintf('\n\n\n')
  댓글 수: 1
Jillian Franke
Jillian Franke 2020년 10월 21일
Thank you!!

댓글을 달려면 로그인하십시오.

태그

Community Treasure Hunt

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

Start Hunting!

Translated by