calfem工具箱MATLAB - 位移未显示在图表上

时间:2016-05-02 13:32:12

标签: matlab

你必须让calfem工具箱能够运行这段代码,所以我希望有人这样做!

我已经编写了一些代码来尝试显示位移,来自应用udls,我已经使用过了     uu = extract(Edof,UU);

但他们没有在我的身影上显示,有人能弄明白为什么吗?

addpath ([cd, '/fem']);

% Constants
E  = 180e9; 
AB = 39.7e2; IB = 4413e4; 
AC = 110e2;  IC = 9449e4;
q1 = -15e3;  w1 = -10e3; w2 = 5e3;

LX1 = 5; LX2 = 10; LX3 = 15; LX4 = 20; 
LY1 = 5; LY2 = 8;  LY3 = 9;

% Specify Node Coordinates
nodes = [  0,   0;
           0, LY1;
         LX1, LY2;
         LX2, LY1;
         LX2, LY3;
         LX3, LY2;
         LX4, LY1;
         LX4, 0];

% Specify Elements Nodes
conn = [1,2;
        2,3;
        2,4;
        3,4;
        3,5;
        4,5;
        4,6;
        4,7;
        5,6;
        6,7;
        7,8];

Nelem = length(conn);

% Initialise Structural Force/Stiffness Matrices
KK = zeros(8*3);
FF = zeros(8*3,1);

% Define Column and Beam Properties
Cprop = [E, AC, IC];
Bprop = [E, AB, IB];

% Initialise system properties
Edof  = zeros(Nelem, 1+6);
Ex    = zeros(Nelem, 2);
Ey    = zeros(Nelem, 2);
Eq    = zeros(Nelem, 2);
Eprop = zeros(Nelem,3);

for ii = 1:Nelem
    % Look up nodes of element
    node1 = conn(ii,1); node2 = conn(ii,2);

    % Work out dof based on node number
    dof1 = node1*3 + [-2,-1,0];
    dof2 = node2*3 + [-2,-1,0];

    % Assign to Edof
    Edof(ii,:) = [ii, dof1, dof2];

    % Look up coordinate based on node
    x1 = nodes(node1,1); y1=nodes(node1,2);
    x2 = nodes(node2,1); y2=nodes(node2,2);

    % Assign to Ex and Ey
    Ex(ii,:) = [x1,x2];
    Ey(ii,:) = [y1,y2];

    % Decide if the element is column or not
    if ii==1||11;
        Eprop(ii,:) = Cprop;
    elseif ii==2;
        Eprop(ii,:) = Bprop;
        Eq(ii,:) = [0.515*w1, 0.857*w1];
    elseif ii==5;
        Eprop(ii,:) = Bprop;
        Eq(ii,:) = [0.196*w1, 0.98*w1];  
    elseif ii==3||8;
        Eprop(ii,:) = Bprop;
        Eq(ii,:) = [0, q1];   
    elseif ii==9;
        Eprop(ii,:) = Bprop;
        Eq(ii,:) = [0.196*w2, 0.98*w2];
    elseif ii==10;
        Eprop(ii,:) = Bprop;
        Eq(ii,:) = [0.515*w1, 0.857*w1]; 
    else
        Eprop(ii,:) = Bprop;
    end

    % assemble system
    [KE,FE] = beam2e(Ex(ii,:), Ey(ii,:), Eprop(ii,:), Eq(ii,:));
    % Combine structural Stiffness forces
    [KK,FF] = assem(Edof(ii,:), KK, KE, FF,FE);
end

% Apply Boundary Conditions
bc = [1,0; 2,0; 3,0; 22,0; 23,0; 24,0];

% Solve System
[UU,RR] = solveq(KK,FF,bc);

figure(1)
% Undisplaced Shape
eldraw2(Ex,Ey,[1,1,1])
% Extract Local Displacements
uu = extract(Edof,UU);

% Plot Displaced Shape
scale = 1e2;
eldisp2(Ex,Ey, uu, [1,2,1], scale);

% Add Scale Bar for 10mm
pltscalb2(scale,[1e-2,6,6],[2]);

% Tidy up Graph
axis([-2,22,0,10])
axis equal
xlabel('X, m'); ylabel('Y, m')
title('Simple Portal Frame - Displacement')

0 个答案:

没有答案