27 lines
1.1 KiB
Mathematica
27 lines
1.1 KiB
Mathematica
|
|
function [Kt,Elem] = tangStiffMtxUL(Model,Anl,Elem,U)
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½ڵ<EFBFBD>λ<EFBFBD>ú<EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD>ĵ<EFBFBD>Ԫ<EFBFBD>նȾ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Kt = zeros(Model.neq,Model.neq);
|
|||
|
|
for i = 1:Model.nel
|
|||
|
|
% Elastic, geometric and tangent stiffness matrices
|
|||
|
|
ke = elasticStiffMtxUL(Elem(i),U);%UӰ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD>쵥Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
kg = geometricStiffMtxUL(Anl,Elem(i),U);
|
|||
|
|
kt = ke + kg;
|
|||
|
|
% Store elastic stiffness matrix to be used in computation of internal forces
|
|||
|
|
Elem(i).ke = ke;
|
|||
|
|
% Rotation matrix from local to global coordinate system
|
|||
|
|
angle = elemAngle(Elem(i),U);%%UӰ<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 ];
|
|||
|
|
% Tangent stiffness matrix in global system
|
|||
|
|
k = rot * kt * rot';
|
|||
|
|
% Assemble element matrix to global matrix
|
|||
|
|
gle = Elem(i).gle;
|
|||
|
|
Kt(gle,gle) = Kt(gle,gle) + k;
|
|||
|
|
end
|
|||
|
|
end
|