Building a truss with matlab -- Need help

In summary, the conversation discusses building a truss using a MATLAB code and identifying joint coordinates, member assembly, and load matrix. However, when the code runs, the deflections are "NaN" due to the stiffness matrix equations giving a singular result. To solve this issue, the user may need to specify an initial displacement for at least one node, as explained in an article provided.
  • #1
nate9519
47
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
  • #2
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
 

Related to Building a truss with matlab -- Need help

1. How do I create a truss using Matlab?

To create a truss using Matlab, you can use the truss analysis functions provided in the Structural Analysis toolbox. These functions allow you to specify the geometry, material properties, and boundary conditions of the truss, and then solve for the forces and displacements in the truss members.

2. What is the benefit of building a truss with Matlab?

Building a truss with Matlab allows you to take advantage of powerful computational tools and algorithms to analyze and optimize the truss design. It also allows for easy visualization and manipulation of the truss geometry and results.

3. How do I define the properties of the truss members in Matlab?

You can define the properties of the truss members using the "truss" function in Matlab. This function takes in inputs such as the node locations, member connectivity, cross-sectional area, and material properties to define the truss geometry and properties.

4. Can I import external data into Matlab to build a truss?

Yes, you can import external data such as node coordinates, member connectivity, and load conditions into Matlab to build a truss. This can be done using the "importdata" function or by importing a spreadsheet or text file.

5. How do I interpret the results from a truss analysis in Matlab?

The results from a truss analysis in Matlab typically include the member forces and displacements. These can be visualized using plots or tables, and can help you understand the overall behavior and stability of the truss. You can also use the results to make design decisions and optimize the truss design.

Similar threads

  • Engineering and Comp Sci Homework Help
Replies
2
Views
1K
Back
Top