newmark法 matlab,newmark法和wilson法求解单自由度体系加速度反应谱

fid=fopen('77(0.01-4172).txt','r'); %以下为newmark法求解单自由度体系反应谱

[Acceleration,count]=fscanf(fid,'%g');

dt=0.01;    %时间间隔

d=0.05;     %阻尼比

a=1/2;      %参数1

b=1/4;      %参数2

for i=1:600

t(i)=0.01*i;

w=6.283185/t(i);  %无阻尼自振圆频率

dw=d*w;           %阻尼比乘圆频率

wt=w*dt;          %圆频率乘时间间隔

D=[1+dw*dt+(w*dt)^2*b]^(-1);  %此处应该存在问题

A=[D*(1+2*a*dw*dt-(1-2*b)/2*wt^2-(a-2*b)*d*wt^3),D*dt*(1-(1-2*a)*d*wt-2*(a-2*b)*d^2*wt^2);D/dt*(-wt^2+(a-2*b)/2*wt^4),D*(1-(1-a)*2*dw*dt-(a-b)*wt^2+(a-2*b)*d*wt^3)];

B=[D*dt^2*(-(1/2-b)-(a-2*b)*dw*dt),-1*b*D*dt^2;D*dt*(-(1-a)+(a-2*b)/2*wt^2),-1*a*D*dt];

C=2*dw*abs(Acceleration(1))*dt;      %体系初始时刻绝对加速度

X=[0;Acceleration(1)*dt];            %体系初始时刻位移和速度

for n=2:length(Acceleration)

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 Newmark β 求解结构速度、位移、加速度的简 Matlab 代码示例: ```matlab function [u, v, a, t] = newmark_beta(m, c, k, f, delta_t, beta, gamma, u0, v0, a0, t_end) % m: 质量矩阵 % c: 阻尼矩阵 % k: 刚度矩阵 % f: 外力向量 % delta_t: 时间步长 % beta: Newmark β 方中的 β 参数 % gamma: Newmark β 方中的 γ 参数 % u0: 初始位移向量 % v0: 初始速度向量 % a0: 初始加速度向量 % t_end: 模拟结束时间 n_steps = round(t_end / delta_t); n_dofs = length(u0); u = zeros(n_dofs, n_steps+1); v = zeros(n_dofs, n_steps+1); a = zeros(n_dofs, n_steps+1); t = zeros(1, n_steps+1); u(:,1) = u0; v(:,1) = v0; a(:,1) = a0; % 计算初始加速度 a(:,1) = (m \ (f(:,1) - c*v(:,1) - k*u(:,1))); for i = 1:n_steps t(i+1) = t(i) + delta_t; % 计算加速度 a(:,i+1) = (m \ (f(:,i+1) - c*v(:,i) - k*u(:,i))); % 计算位移和速度 u(:,i+1) = u(:,i) + delta_t*v(:,i) + (0.5-beta)*delta_t^2*a(:,i) + beta*delta_t^2*a(:,i+1); v(:,i+1) = v(:,i) + (1-gamma)*delta_t*a(:,i) + gamma*delta_t*a(:,i+1); end ``` 在这个示例中,我们将结构的质量、阻尼和刚度矩阵以及外力向量作为输入参数,并使用 Newmark β 方计算结构的位移、速度和加速度。您需要提供初始的位移、速度和加速度向量,以及所需的模拟时间步长和结束时间。函数将返回一个包含所有时间步长的位移、速度和加速度矩阵,以及每个时间步长的时间向量。 请注意,此示例代码仅用于说明,可能需要根据实际情况进行修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值