⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 truss2d_results.m

📁 matlab实例
💻 M
字号:
%***********************************************************************
% function truss2d_results
%
% calculates and prints 2D truss element results
%***********************************************************************
function [energy] = truss2d_results(ElemData, ElemType, Prop, Nodes, solution_vector)

% determine elemental displacement values from solution vector

elemType   = ElemData.elemType;
nnodes     = ElemType(elemType).nnodes;
ndofs_node = ElemType(elemType).ndofs_node;

count = 0;
for node = 1:nnodes
    dof_pos_0 = (ElemData.connect(node) - 1) * ndofs_node; % assuming all nodes with same num dofs
    for dof = 1:ndofs_node
        count = count + 1;
        dof_pos = dof_pos_0 + dof;
        disp_vector(count) = solution_vector(dof_pos);
    end
end

% determine stiffness matrix
ke = truss2d_elem(ElemData, Prop, Nodes);
force = ke * disp_vector';                   % form matrix-vector product

% strain energy
energy = 0.5 * disp_vector * force;

magnitude = sqrt(force(1)^2 + force(2)^2);

% The only stress in a truss is the axial stress. 
% Get its absolute value
stress = magnitude/ Prop( ElemData.propID ).properties(2);

% Fix the sign of stress
d =  Nodes(ElemData.connect(2)).coord - Nodes(ElemData.connect(1)).coord;
f = force(1:2);
stress = - sign(d * f) * stress;

fprintf(['  ID     f1_x          f1_y          f2_x          f2_y',...
        '      magnitude      stress   strain energy\n'])
fprintf('%4i %12.5g %12.5g %12.5g %12.5g %12.5g %12.5g %12.5g\n',...
    ElemData.elemID, force, magnitude, stress, energy)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -