MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB基础] Matlab编写的Newmark-b程序 (https://www.labfans.com/bbs/showthread.php?t=27434)

topmny 2024-10-18 14:04

Matlab编写的Newmark-b程序
 
1 个附件
利用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节
请各位高手指正


所有时间均为北京时间。现在的时间是 13:33

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.