采用Newmark-β法求解振动方程——MATLAB

声明:该博文仅用于matlab学习!
以四层刚架为例进行计算分析。某四层框架结构在顶部受一个简谐荷载的作用:

力的作用时间t1=5.0s,F0=100N。试计算响应的时间为20s(计算分2000步完成)。阻尼矩阵由Rayleigh阻尼构造。

MATLAB程序编写如下:
m=[1,2,3,4];
m=diag(m);
k= [800 -800 0 0; -800 2400 -1600 0; 0 -1600 4800 -3200; 0 0 -3200 8000];
c=0.05m+0.02k;
f0=100;
t1=5;
nt=2000;
dt=0.01;
gama=0.5;
beta=0.25;
a0=1/ beta/dt/dt;
a1=gama/ beta /dt;
a2=1/beta/dt;
a3=1/2/ beta -1;
a4=gama/beta-1;
a5=dt/2*(gama/ beta-2);
a6=dt*(1-gama);
a7=dt*gama;

d=zeros(4,nt+1);
v=zeros(4,nt+1);
a=zeros(4,nt+1);
tt=zeros(1,nt+1);

for i=2:(nt+1)
tt(1,1)=1dt;
tt(1,i)=i
dt;
t=(i-1)dt;
if (t<t1),
f=[f0
sin(4pit/t1);0;0;0];
else
f=[0;0;0;0];
end

ke=k+a0m+a1c;
fe=f+m*(a0d(:,i-1)+a2v(:,i-1)+a3a(:,i-1))+c(a1d(:,i-1)+a4v(:,i-1)+a5a(:,i-1));
d(:,i)=inv(ke)fe;
a(:,i)=a0
(d(:,i)-d(:,i-1))-a2
v(:,i-1)-a3a(:,i-1);
v(:,i)=v(:,i-1)+a6
a(:,i-1)+a7*a(:,i);
end
figure;
plot(tt(1,:),d(1,:))
ylabel(‘位移/[m]’,‘fontsize’,20);
grid on;
xlabel(‘时间/[s]’,‘fontsize’,20);
title(‘顶层楼板位移响应时程’,‘fontsize’,25);

  • 20
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
以下是使用Newmark编写的MATLAB程序: ```matlab clc clear % 定义质量矩阵 M = \[1, 2, 3, 4\]; m = diag(M); % 定义刚度矩阵 K = \[800, -800, 0, 0; -800, 2400, -1600, 0; 0, -1600, 4800, -3200; 0, 0, -3200, 8000\]; % 计算阻尼矩阵 C = 0.05 * m + 0.02 * K; % 定义力的作用时间和大小 F0 = 100; t1 = 5; % 定义时间步长和总步数 dt = 0.01; nt = 2000; % 定义Newmark参数 gamma = 0.5; beta = 0.25; % 初始化加速度、速度和位移向量 a = zeros(length(M), nt); v = zeros(length(M), nt); d = zeros(length(M), nt); % 计算Newmark系数 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 = dt * gamma; % 初始化时间向量 t = linspace(0, nt * dt, nt); % 计算力的时间函数 F = zeros(length(M), nt); for i = 1:nt if t(i) <= t1 F(:, i) = F0; end end % 进行Newmark计算 for i = 2:nt a(:, i) = inv(m + a0 * C + a0 * K) * (F(:, i) - C * (a1 * v(:, i-1) + a2 * a(:, i-1)) - K * d(:, i-1)); v(:, i) = v(:, i-1) + a1 * a(:, i) + a2 * a(:, i-1); d(:, i) = d(:, i-1) + a3 * a(:, i) + a4 * a(:, i-1) + a5 * v(:, i-1) + a6 * v(:, i) + a7 * a(:, i); end % 绘制位移函数图像 figure plot(t, d(1, :)) title('各质点位移总图') xlabel('s') ylabel('m') grid ``` 这个程序使用Newmark来计算四层框架结构在顶部受到简谐荷载作用时的响应。程序首先定义了质量矩阵、刚度矩阵和阻尼矩阵。然后根据给定的力的作用时间和大小,计算力的时间函数。接下来,程序使用Newmark进行计算,得到加速度、速度和位移的时间历程。最后,程序绘制了位移函数的图像。 #### 引用[.reference_title] - *1* [采用Newmark求解振动方程——MATLAB](https://blog.csdn.net/weixin_44563389/article/details/86596159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Newmark数值分析matlab程序](https://blog.csdn.net/qq_41621140/article/details/113865719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值