声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3670|回复: 17

[动力学和稳定性] 求教:怎么求解瞬时动力学响应问题?

  [复制链接]
发表于 2011-3-26 12:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我刚开始学结构动力学的计算问题。请问一下,瞬时动力学的响应是否就是用时间积分方法求解二阶常微分方程 [M] d^2 U(x)/dx^2 + [C] dU(x)/dx + [K] = [F(x)] ?

瞬时动力学问题是否考虑到了结构在运动中的变形问题?是否对于小变形问题中,每个时间步体积积分是不变的?

有没有这方没的书,请大牛推荐一下!万分感激!!!

点评

[K]{U(x)}?F(t)?  发表于 2011-3-26 20:26
回复
分享到:

使用道具 举报

发表于 2011-3-26 20:28 | 显示全部楼层
除了时间积分法,还有一大类方法是振型叠加法,在算系统在较短时间内的响应时,时间积分法比较有效率,在考虑系统在较长时间内的响应时,振型叠加法更快。

“运动中的变形”指的是什么?“体积积分”指的又是什么?

书的话,张雄、王天舒的《计算动力学》还行。
 楼主| 发表于 2011-3-27 09:07 | 显示全部楼层
回复 2 # Rainyboy 的帖子

谢谢你得回复!你推荐得那本书我已经买了,大概看了一遍,但是还是有些地方不懂。你提到的变形和积分是关键,我想问的就是在计算这个微分方程的时候,质量矩阵、阻尼矩阵、刚度矩阵是时间的常数还是函数,因为如果是时间的函数则在解这个方程的时候,这几个矩阵就要随着时间变化,反应在瞬时分析中就应该表现为物体的变形——从而导致了计算质量矩阵、阻尼矩阵、刚度矩阵时的体积积分改变。如果不是时间的函数,那么就是一个直接求解常微分方程的问题了,就要简单的多了。
发表于 2011-3-27 09:48 | 显示全部楼层
回复 3 # martin_eden 的帖子

在线性振动理论中,是常微分方程组
 楼主| 发表于 2011-3-27 10:14 | 显示全部楼层
回复 4 # Rainyboy 的帖子

多谢!正在看你在计算版里面发的用python写的程序

点评

赞成: 5.0
赞成: 5
恩,那个程序就是对二阶线性常微分方程组的求解  发表于 2011-3-27 10:20
发表于 2011-3-27 13:02 | 显示全部楼层
关注,共同学习
发表于 2012-12-19 15:50 | 显示全部楼层

如果我的质量矩阵和刚度矩阵为非对角阵,求解微分方程很困难,怎么办
发表于 2012-12-20 22:18 | 显示全部楼层
ME! 发表于 2012-12-19 15:50
如果我的质量矩阵和刚度矩阵为非对角阵,求解微分方程很困难,怎么办

不管是对角还是非对角,用像NEWMARK方法这样的数值积分方法流程是一样的吧?
发表于 2012-12-22 09:43 | 显示全部楼层
可是我用newmark法求出来的响应图片怎么是这样的啊
K=sysK;% K ----- 调用刚度矩阵
M=sysM; % M ----- 调用质量矩阵
%C=0.03*M+0.02*K;% C ----- 阻尼矩阵
   C=0;
dt=0.01;% dt ----- 时间步长
tend=20;% tend --- 结束时间
w=600;
[n,n] = size( K ) ;
%Newmark算法
gama = 0.5 ;
beta = 0.25 ;
[n,n] = size( K ) ;
Nalpha0 = 1/beta/dt^2 ;
Nalpha1 = gama/beta/dt ;
Nalpha2 = 1/beta/dt ;
Nalpha3 = 1/2/beta - 1 ;
Nalpha4 = gama/beta - 1 ;
Nalpha5 = dt/2*(gama/beta-2) ;
Nalpha6 = dt*(1-gama) ;
Nalpha7 = gama*dt ;
NK1 = K + Nalpha0*M + Nalpha1*C ;
Nd = zeros( n, floor(tend/dt) + 1 ) ;
Nv = zeros( n, floor(tend/dt) + 1 ) ;
Na = zeros( n, floor(tend/dt) + 1 ) ;
Nd(:,1) = 0.01 ;   %%%%%%%%%%%%%%%%%%%%%%%%初始位移
Nv(:,1) = 0 ;  %%%%%%%%%%%%%%%%%%%%%%%%初始速度
f(:,1) =0 ;%初始载荷
Na(:,1) = M\(f(:,1)-K*Nd(:,1)-C*Nv(:,1));  %初始加速度
t=0:dt:tend;
for i=2:1:length(t)
f(:,i)=0*100*sin(w*t(i));
f2 = f(:,i) + M*(Nalpha0*Nd(:,i-1)+Nalpha2*Nv(:,i-1)+Nalpha3*Na(:,i-1))+ C*(Nalpha1*Nd(:,i-1)+Nalpha4*Nv(:,i-1)+Nalpha5*Na(:,i-1)) ;
Nd(:,i) = inv(NK1)*f2 ;
Na(:,i) = Nalpha0*(Nd(:,i)-Nd(:,i-1)) - Nalpha2*Nv(:,i-1) - Nalpha3*Na(:,i-1) ;
Nv(:,i) = Nv(:,i-1) + Nalpha6*Na(:,i-1) + Nalpha7*Na(:,i) ;
end
figure ;
plot(t,Nd(1,:),'g')
xlabel('t');
ylabel('u(t)');
title('Newmark-beta位移与时间的关系');
newmark.jpg
发表于 2012-12-22 17:03 | 显示全部楼层
新人必须露脸
发表于 2012-12-27 09:29 | 显示全部楼层
ME! 发表于 2012-12-22 09:43
可是我用newmark法求出来的响应图片怎么是这样的啊
K=sysK;% K ----- 调用刚度矩阵
M=sysM; % M ----- 调 ...

你算的方程是什么?把矩阵写出来,我用我的程序跑一跑
发表于 2012-12-28 13:26 | 显示全部楼层
我就是调用这里面的刚度矩阵K和质量矩阵M,然后用newmark法解

unitM.txt

699 Bytes, 下载次数: 1

单元质量矩阵

unitK.txt

499 Bytes, 下载次数: 1

单元刚度矩阵

sysM.txt

606 Bytes, 下载次数: 2

系统质量矩阵

sysK.txt

576 Bytes, 下载次数: 2

系统刚度矩阵

发表于 2013-1-8 16:44 | 显示全部楼层
ME! 发表于 2012-12-28 13:26
我就是调用这里面的刚度矩阵K和质量矩阵M,然后用newmark法解

我今天刚看到哈……你回复的是楼主……没有回复我……
我今晚有空算算
发表于 2013-1-8 17:52 | 显示全部楼层
Rainyboy 发表于 2013-1-8 16:44
我今天刚看到哈……你回复的是楼主……没有回复我……
我今晚有空算算

好的,谢谢!
发表于 2013-1-9 09:59 | 显示全部楼层

报错了,少了全局变量a的定义。

QQ截图20130109095820.png


您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 19:34 , Processed in 0.071847 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表