声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4876|回复: 29

[线性振动] 求助多自由度线性阻尼系统的频响函数

[复制链接]
发表于 2008-10-14 09:23 | 显示全部楼层 |阅读模式

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

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

x
比如一个四自由度线性阻尼系统,m1=0.4,m2=0.8,m3=1.2,m4=1.6,c1=c2=c3=c4=12,k1=k2=k3=k4=36000,如何用matlab求出它的频响函数理论值,画出它的频响函数幅值曲线。有类似的程序吗,谢谢了!!!
回复
分享到:

使用道具 举报

发表于 2008-10-14 20:14 | 显示全部楼层
要用matlab实现的话
先用ode程序求解得到响应
然后fft
 楼主| 发表于 2008-10-15 08:53 | 显示全部楼层
好的,我试试。
发表于 2008-10-15 09:47 | 显示全部楼层
线性系统啊,线性系统的话是比较简单的,可以正则化为单自由度系统之后按照单自由度的方法来画频域曲线,这个matlab里面有现成命令
发表于 2008-10-18 01:20 | 显示全部楼层

回复 楼主 amloved 的帖子

总感觉楼主给的条件不足
给了m1..m4/c1../c4/k1..k4, 但未给连接状况是列不出唯一运动方程的
 楼主| 发表于 2008-10-19 11:17 | 显示全部楼层
MDOF约束系统力学模型
发表于 2008-10-19 13:21 | 显示全部楼层
你的结构图为什莫都没有给出呢?你的c,k都在哪些质量块之间?没有这些信息怎末确定你这个系统呢?怎末确定频响函数呢?
 楼主| 发表于 2008-10-19 15:20 | 显示全部楼层
[k]=[k1 -k1 0 0; -k1 k1+k2 -k2 0 0; 0 -k2 k2+k3 -k3 0; 0 0 -k3 k3+k4]

[m]=[m1 0 0 0; 0 m2 0 0; 0 0 m3 0; 0 0 0 m4]

[c]=[c1 -c1 0 0; -c1 c1+c2 -c2 0; 0 -c2 c2+c3 -c3; 0 0 -c3 c3+c4]

这是它的刚度矩阵,质量矩阵,阻尼矩阵,求它的原点导纳H11的理论值,并画出它的伯德图

[ 本帖最后由 amloved 于 2008-10-19 15:28 编辑 ]
 楼主| 发表于 2008-10-20 12:18 | 显示全部楼层
大家帮帮忙吧,谢谢了。
发表于 2008-10-20 14:28 | 显示全部楼层
已经有m, c, k 矩阵, 就可以得出状态方程(state space), 再以bode求解
Help ss; Help bode ...很多, 查查找你需要的
发表于 2008-10-20 14:33 | 显示全部楼层
是的,有了质量、刚度、阻尼矩阵就可以计算频响函数了,用bode命令可以
对于一些知识点还是自己掌握的好,找一下书看看,编出程序来这样以后就不会出现问题了
假如编程序过程中出现错误可以上来讨论

[ 本帖最后由 咕噜噜 于 2008-10-20 14:35 编辑 ]
 楼主| 发表于 2008-10-21 22:38 | 显示全部楼层
m1=[0.4 0 0 0;0 0.8 0 0;0 0 1.2 0;0 0 0 1.6];
c=[12 -12 0 0;-12 24 -12 0;0 -12 24 -12;0 0 -12 24];
k=[36000 -36000 0 0;-36000 72000 -36000 0;0 -36000 72000 -36000;0 0 -36000 72000];
num=1;
den=[m c k];
sys=tf(num,den);
bode(sys(1,1));
grid on
不对,分子分母应该指定为非空的列向量,什么意思?
发表于 2008-10-22 08:56 | 显示全部楼层
运动方程Mx"+Cx'+Kx=f, 设q1=x, q2=x' => [q1; q2]'=A*[q1;q2]+B*f
其中A即为特徵矩阵 A=[zeros(n,n) ones(n,n); -inv(M)*K, -inv(M)*C]; B=inv(M)
y=C*x+D*f;  sys = ss(a,b,c,d); Bode(sys)
细节我没试, 自己试试看吧
 楼主| 发表于 2008-10-23 13:23 | 显示全部楼层
现在很晕
M=[0.4 0 0 0;0 0.8 0 0;0 0 1.2 0;0 0 0 1.6];
C=[12 -12 0 0;-12 24 -12 0;0 -12 24 -12;0 0 -12 24];
K=[36000 -36000 0 0;-36000 72000 -36000 0;0 -36000 72000 -36000;0 0 -36000 72000];
A=[zeros(4,4) ones(4,4);-inv(M)*K -inv(M)*C];
B=[zeros(4,4) inv(M)];
C=[1 0];
D=0;
sys=ss(A,B,C,D);
bode(sys)
应该怎么改?:@L

[ 本帖最后由 amloved 于 2008-10-23 14:16 编辑 ]
发表于 2008-10-23 14:43 | 显示全部楼层
bode命令不是这样简单用的,给你推荐一本书看看吧
自己灵活运用一下
MATLAB原理与工程应用  一个美国人写的
高会生等人翻译   电子工业出版社
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-4 22:35 , Processed in 0.054713 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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