topmny
2024-10-18, 14:04
利用Matlab程序编写的Newmark-b程序,可用于结构动力学方程逐步积分法求解
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Newmark_Beta Solution
%
% Input
% F : load vector at next time step;
% M : mass matrix at next time step;
% C : damping matrix at next time step;
% K : stiffness matrix at next time step;
% U : displacement at this time step;
% V : velocity at this time step;
% A : acceleration at this time step;
% dt : time step
%
% Output
% UU : displacement at next time step;
% VV : velocity at next time step;
% AA : acceleration at next time step;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [UU,VV,AA]=Newmark(F,M,C,K,U,V,A,dt)
beta=0.25;
gamma=0.5;
a0=1/(beta*dt^2);
a1=gamma/(beta*dt);
a2=1/(beta*dt);
a3=1/(2*beta)-1;
a4=gamma/beta-1;
a5=dt/2*(gamma/beta-2);
a6=dt*(1-gamma);
a7=gamma*dt;
Kd=K+a0*M+a1*C;
Fd=F+M*(a0*U+a2*V+a3*A)+C*(a1*U+a4*V+a5*A);
UU=Kd\Fd; % inv(Kd)
AA=a0*(UU-U)-a2*V-a3*A;
VV=V+a6*A+a7*AA;
具体内容参见《轨道交通系统动力学与Matlab程序设计》4.2节
请各位高手指正
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Newmark_Beta Solution
%
% Input
% F : load vector at next time step;
% M : mass matrix at next time step;
% C : damping matrix at next time step;
% K : stiffness matrix at next time step;
% U : displacement at this time step;
% V : velocity at this time step;
% A : acceleration at this time step;
% dt : time step
%
% Output
% UU : displacement at next time step;
% VV : velocity at next time step;
% AA : acceleration at next time step;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [UU,VV,AA]=Newmark(F,M,C,K,U,V,A,dt)
beta=0.25;
gamma=0.5;
a0=1/(beta*dt^2);
a1=gamma/(beta*dt);
a2=1/(beta*dt);
a3=1/(2*beta)-1;
a4=gamma/beta-1;
a5=dt/2*(gamma/beta-2);
a6=dt*(1-gamma);
a7=gamma*dt;
Kd=K+a0*M+a1*C;
Fd=F+M*(a0*U+a2*V+a3*A)+C*(a1*U+a4*V+a5*A);
UU=Kd\Fd; % inv(Kd)
AA=a0*(UU-U)-a2*V-a3*A;
VV=V+a6*A+a7*AA;
具体内容参见《轨道交通系统动力学与Matlab程序设计》4.2节
请各位高手指正