Building a truss with matlab -- Need help

Click For Summary
SUMMARY

The discussion centers on troubleshooting a MATLAB code for building a truss structure, specifically addressing the issue of receiving "NaN" (Not a Number) results for deflections. The user has defined joint coordinates, member assembly, and load matrices but lacks initial displacement conditions for the nodes. It is concluded that specifying at least one initial displacement at the support points is essential for solving the stiffness matrix equations, which prevents singular results during calculations.

PREREQUISITES
  • Understanding of MATLAB programming and syntax
  • Knowledge of structural analysis concepts, specifically truss analysis
  • Familiarity with stiffness matrix methods in finite element analysis (FEA)
  • Basic principles of mechanics of materials, including load and displacement relationships
NEXT STEPS
  • Learn how to implement initial displacement conditions in MATLAB for structural analysis
  • Study the stiffness matrix formulation in finite element analysis
  • Explore MATLAB functions for matrix operations and their applications in structural engineering
  • Review resources on truss analysis and common pitfalls in MATLAB coding
USEFUL FOR

Structural engineers, mechanical engineers, students in engineering disciplines, and anyone involved in computational structural analysis using MATLAB.

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