image thumbnail
trussrun.m
% Example: trussrun
% ~~~~~~~~~~~~~~~~~
% This program performs static analysis of 
% plane truss structures using the stiffness 
% method.  The truss elements are used to form
% the global stiffness matrix of a structure.
% Displacements, member forces and reaction 
% forces are obtained by solving the equations 
% which satisfy the prescribed boundary 
% conditions and applied nodal forces.
% Data is defined in the declaration statements
% below, where:
%
% For each element:
%   Emod  - Modulus of elasticity
%   Area  - cross-sectional area
%   inode - nodal number of i-end
%   jnode - nodal number of j-end
% For each node:
%   x     - x coordinate
%   y     - y coordinate
% The specified D.O.F. and applied nodal loads:
%   idu   - nodal number of specified 
%           x-displacement
%   u     - specified x-displacement
%   idv   - nodal number of specified 
%           y-displacement
%   v     - specified y-displacement
%   idfx  - nodal number of applied load in 
%           x-direction
%   fx    - applied load in x-direction
%   idfy  - nodal number of applied load in 
%           y-direction
%   fy    - applied load in y-direction
%
% User m functions required:
%    asmstf, elmstf, memfor, solve
%----------------------------------------------

clear;
Problem=1;
if Problem == 1
  %...Simply supported 7-bar, 5-node plane truss
  Emod  =[3.e7 3.e7 3.e7 3.e7 3.e7 3.e7 3.e7];
  Area  =[  10   10   10   10   10   10   10];
  inode =[   1    2    1    4    2    3    4];
  jnode =[   2    3    4    2    5    5    5];
  x     =[   0  144  288   72  216];
  y     =[   0    0    0   96   96];
  idu   =[1];   idfx=[4];
  u     =[0];   fx  =[3000];
  idv   =[1 3]; idfy=[2 5];
  v     =[0 0]; fy  =[-4000 -1000];
end

%...Assemble the global stiffness matrix
Stiff=asmstf(x,y,Area,Emod,inode,jnode);

%...Displacement and reaction solutions
[Disp,Reactions]= ...
  solve(Stiff,idu,u,idv,v,idfx,fx,idfy,fy);

%...Member force solutions
Mforces=memfor(Disp,x,y,Area,Emod,inode,jnode);

fprintf( ...
  '\n\nAnalysis of Pin-Connected Truss');
fprintf( ...
    '\n-------------------------------');
fprintf('\n\nMember Information:');
fprintf('\n      #       E            A     ');
fprintf('    i    j'); 
fprintf('\n    --- ------------ ------------');
fprintf(' ---- ----');
for i=1:length(Emod)
  fprintf('\n   %4.0f %12.4e %12.5e', ...
    i,Emod(i),Area(i));
  fprintf(' %4.0f %4.0f',inode(i),jnode(i));
end
fprintf('\n\nNode list:');
fprintf('\n      #       x            y');
fprintf('\n    --- ------------ ------------');
for i=1:length(x)
  fprintf('\n   %4.0f %12.5e %12.5e', ...
    i,x(i),y(i));
end

fprintf('\n\nBoundary conditions:');
fprintf('\n      #   Condition      Value');
fprintf('\n    --- ------------ ------------');
for i=1:length(idu)
  fprintf('\n   %4.0f       u      %12.5e', ...
    idu(i),u(i));
end
for i=1:length(idv)
  fprintf('\n   %4.0f       v      %12.5e', ...
    idv(i),v(i));
end
for i=1:length(idfx)
  fprintf('\n   %4.0f      Fx      %12.5e', ...
    idfx(i),fx(i));
end
for i=1:length(idfy)
  fprintf('\n   %4.0f      Fy      %12.5e', ...
    idfy(i),fy(i));
end
fprintf('\n\nNodal Displacements:');
fprintf('\n      #       u            v');
fprintf('\n    --- ------------ ------------');
for i=1:2:length(Disp)-1
  fprintf('\n   %4.0f %12.5e %12.5e', ...
    fix(i/2)+1,Disp(i),Disp(i+1));
end
fprintf('\n\nNodal Reactions:');
fprintf('\n      #      Fx           Fy');
fprintf('\n    --- ------------ ------------');
for i=1:2:length(Reactions)-1
  fprintf('\n   %4.0f %12.5e %12.5e', ...
    fix(i/2)+1,Reactions(i),Reactions(i+1));
end
fprintf('\n');

Contact us at files@mathworks.com