55 lines
1.7 KiB
Mathematica
55 lines
1.7 KiB
Mathematica
|
|
function [F,Elem] = intForcesUL(Model,Elem,U,D_U,update_angle)
|
|||
|
|
% Initialize global vector of internal forces
|
|||
|
|
F = zeros(Model.neq,1);
|
|||
|
|
|
|||
|
|
for i = 1:Model.nel
|
|||
|
|
% Lengths: Beginning of step, current, and step increment
|
|||
|
|
L_1 = Elem(i).L_1;%ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼʱ<EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
L_c = elemLength(Elem(i),U);
|
|||
|
|
D_L = L_c - L_1;
|
|||
|
|
|
|||
|
|
% <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ƽǶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ״̬<EFBFBD><EFBFBD>
|
|||
|
|
rbr = elemAngleIncr(Elem(i),U,D_U);%rbr<EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD>ֵ
|
|||
|
|
%rbrΪ<EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD>ʼת<EFBFBD>ǵĵ<EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>ǣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD>ʼʱ<EFBFBD>Ĺ<EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Dz<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕȣ<EFBFBD>
|
|||
|
|
angle = Elem(i).angle_1 + rbr;
|
|||
|
|
|
|||
|
|
% <EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
|
|||
|
|
if (update_angle)
|
|||
|
|
Elem(i).angle = angle;
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
% <EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ-ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
c = cos(angle);
|
|||
|
|
s = sin(angle);
|
|||
|
|
|
|||
|
|
rot = [ c -s 0 0 0 0;
|
|||
|
|
s c 0 0 0 0;
|
|||
|
|
0 0 1 0 0 0;
|
|||
|
|
0 0 0 c -s 0;
|
|||
|
|
0 0 0 s c 0;
|
|||
|
|
0 0 0 0 0 1 ];
|
|||
|
|
|
|||
|
|
% <EFBFBD>α<EFBFBD>ת<EFBFBD>ǣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
r1 = D_U(Elem(i).n1.dof(3)) - rbr;
|
|||
|
|
r2 = D_U(Elem(i).n2.dof(3)) - rbr;
|
|||
|
|
|
|||
|
|
% <EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
dl = [0; 0 ; r1; D_L; 0; r2];%û<EFBFBD><EFBFBD>y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊy<EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>ת<EFBFBD>ǣ<EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>²<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
% <EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
D_fl = Elem(i).ke * dl;
|
|||
|
|
|
|||
|
|
% <EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
fl = Elem(i).fi_1 + D_fl;
|
|||
|
|
|
|||
|
|
% <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Elem<EFBFBD>оֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Elem(i).fi = fl;
|
|||
|
|
|
|||
|
|
% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӿֲ<EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ֵ<EFBFBD>ת<EFBFBD><EFBFBD>
|
|||
|
|
fg = rot * fl;
|
|||
|
|
|
|||
|
|
% <EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
gle = Elem(i).gle;
|
|||
|
|
F(gle) = F(gle) + fg;
|
|||
|
|
end
|
|||
|
|
end
|