Building a truss with matlab -- Need help

Click For Summary
The discussion centers on troubleshooting MATLAB code for building a truss structure, where the user encounters "NaN" results for deflections. The problem likely arises from the absence of specified initial displacements at support nodes, which are necessary for solving stiffness matrix equations. Without these initial conditions, the equations may yield singular results, leading to undefined deflections. The user is advised to ensure that at least one node has a defined displacement to resolve the issue. Properly setting these conditions is crucial for accurate calculations in structural analysis.
nate9519
Messages
47
Reaction score
0

Homework Statement


I am suppose to build a truss using a MATLAB code given to me. I have to identify the joint coordinates, member assembly, and load matrix. The code is suppose to calculate the deflections like fea. I have put everything in but when the code runs my deflections are "NaN" which means not a number. I have no idea what to do since this is my first time using matlab. What could be the reason for this result?

Homework Equations



% class design project example%

% all of the members are quenched steel

% k = 2000 k-lb, Pmax = 1500 k-lb (A = 100 sq-inch)

%

clear

n = 24; m = 60; LOADZ = -20000/2; LOADY = 1000/2; A = 100;

joint = [0,0,0;0,0,-10;0,0,-20;12,0,0;12,0,-10;12,0,-20;...

0,10,0;0,10,-10;12,10,0;12,10,-10;0,20,0;0,20,-10;...

12,20,0;12,20,-10;0,30,0;0,30,-10;12,30,0;12,30,-10;...

0,40,0;0,40,-10;0,40,-20;12,40,0;12,40,-10;12,40,-20];

assembly = [1,2;1,4;1,7;2,3;2,4;2,5;2,6;2,7;2,8;3,6;3,8;...

4,5;4,9;5,6;5,9;5,10;6,10;7,8;7,9;7,11;8,9;8,10;8,11;...

8,12;9,10;9,13;10,13;10,14;11,12;11,13;11,14;11,15;11,16;...

12,14;12,16;13,14;13,17;13,18;14,18;15,16;15,17;15,19;15,20;...

16,17;16,18;16,20;16,21;17,18;17,22;17,23;18,23;18,24;19,20;...

19,22;20,22;20,23;20,24;21,24;22,23;23,24];

forceJ = [3,1,1,1;3,1,1,1;3,1,1,1;3,1,1,1;3,1,1,1;...

3,1,1,1;-1,0,0,0;-1,0,0,0;...

-1,0,0,0; -1,0,0,0;-1,0,LOADY,LOADZ;-1,0,0,0;...

-1,0,LOADY,LOADZ;-1,0,0,0;-1,0,0,0;-1,0,0,0;-1,0,0,0;-1,0,0,0;...

3,1,1,1;3,1,1,1;3,1,1,1;3,1,1,1;3,1,1,1;3,1,1,1];

for i = 1:m; stretch(i) = 2000*1000; end; stretch(1);

%

index = 1;

[Jforce,Mforce,Jdispl,Mdispl] = ...

truss3(n,m,joint,assembly,forceJ,stretch,index);

%

peak_klb = 18*A

maxMforce_klb = max(abs(Mforce/1000))

maxJdispl = max(abs(Jdispl*12));

maxDX_in = maxJdispl(2),maxDY_in = maxJdispl(3),maxDZ_in = maxJdispl(4)

The Attempt at a Solution


truss.jpg
 
Physics news on Phys.org
nate9519 said:

Homework Statement


I am suppose to build a truss using a MATLAB code given to me. I have to identify the joint coordinates, member assembly, and load matrix. The code is suppose to calculate the deflections like fea. I have put everything in but when the code runs my deflections are "NaN" which means not a number. I have no idea what to do since this is my first time using matlab. What could be the reason for this result?

Homework Equations



% class design project example%

% all of the members are quenched steel

% k = 2000 k-lb, Pmax = 1500 k-lb (A = 100 sq-inch)

%

clear

n = 24; m = 60; LOADZ = -20000/2; LOADY = 1000/2; A = 100;

joint = [0,0,0;0,0,-10;0,0,-20;12,0,0;12,0,-10;12,0,-20;...

0,10,0;0,10,-10;12,10,0;12,10,-10;0,20,0;0,20,-10;...

12,20,0;12,20,-10;0,30,0;0,30,-10;12,30,0;12,30,-10;...

0,40,0;0,40,-10;0,40,-20;12,40,0;12,40,-10;12,40,-20];

assembly = [1,2;1,4;1,7;2,3;2,4;2,5;2,6;2,7;2,8;3,6;3,8;...

4,5;4,9;5,6;5,9;5,10;6,10;7,8;7,9;7,11;8,9;8,10;8,11;...

8,12;9,10;9,13;10,13;10,14;11,12;11,13;11,14;11,15;11,16;...

12,14;12,16;13,14;13,17;13,18;14,18;15,16;15,17;15,19;15,20;...

16,17;16,18;16,20;16,21;17,18;17,22;17,23;18,23;18,24;19,20;...

19,22;20,22;20,23;20,24;21,24;22,23;23,24];

forceJ = [3,1,1,1;3,1,1,1;3,1,1,1;3,1,1,1;3,1,1,1;...

3,1,1,1;-1,0,0,0;-1,0,0,0;...

-1,0,0,0; -1,0,0,0;-1,0,LOADY,LOADZ;-1,0,0,0;...

-1,0,LOADY,LOADZ;-1,0,0,0;-1,0,0,0;-1,0,0,0;-1,0,0,0;-1,0,0,0;...

3,1,1,1;3,1,1,1;3,1,1,1;3,1,1,1;3,1,1,1;3,1,1,1];

for i = 1:m; stretch(i) = 2000*1000; end; stretch(1);

%

index = 1;

[Jforce,Mforce,Jdispl,Mdispl] = ...

truss3(n,m,joint,assembly,forceJ,stretch,index);

%

peak_klb = 18*A

maxMforce_klb = max(abs(Mforce/1000))

maxJdispl = max(abs(Jdispl*12));

maxDX_in = maxJdispl(2),maxDY_in = maxJdispl(3),maxDZ_in = maxJdispl(4)

The Attempt at a Solution


View attachment 92235
In order for the stiffness matrix equations to have a solution, at least one or more nodes need to have an initial displacement specified. Thus usually is accomplished by specifying a zero displacement at the support points of the structure.

It's not clear from your code where such initial conditions are specified by the user. Without being able to specify an initial displacement for at least one node, the stiffness matrix equations are probably giving a singular result when the deflections are being solved for.

See p. 11 of the following article:

http://www.engr.sjsu.edu/ragarwal/ME273/pdf/Chapter 4 - Beam Element.pdf
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K