xuefei01 发表于 2006-11-6 09:27

多自由度 自由振动 MATLAB 仿真

刚刚做的振动初步研究

多自由度无阻尼 系统自由振动分析

M1=1kgM2=10kgk1=10N/mk2=100N/m
初始条件:x(0)=0.05mx’(0)=0 m/sy(0)=0 my’(0)=0m/s;

clear
M=             %质量矩阵
K=       % 刚度矩阵
KM=inv(M)*K         %动力矩阵
=eig(KM);         %求解特征值 和特征向量
P1=P(1,:);
P2=P(2,:);
Mo=;   %模态
f=sqrt(W2)/(2*pi)   %固有频率
A=;
B=;
C=;
D=0;
sys=ss(A,B,C,D);   %状态方程
t=0:0.01:12;
=initial(sys,,t); %初始条件仿真
subplot(211)
plot(t,y);
Y1=*y';
N=1024;
w=fft(Y1,N);         %对输出信号 频谱分析         
subplot(212)
plot(abs(w));
经计算结果如下:


固有频率W^2 =
      7.2984       0
         0      13.7016

振型 Mod=
1.0000    1.0000
    0.2702    -0.3702


M1=1kgM2=2Kgk1=10N/mk2=40N/m
初始条件:(1) X(0)=0.028078   X’(0)=0Y(0)=0.1Y’(0)=0
         (2)   X(0)=0.17808   X’(0)=0Y(0)=-0.1Y’(0)=0

固有频率W^2 =
      7.1922         0
         0      27.8078

振型Mo =
    1.0000    1.0000
    0.2808   -1.7808



[ 本帖最后由 yejet 于 2006-11-7 15:52 编辑 ]

xuefei01 发表于 2006-11-6 09:32

第二个系统的程序

clear
M=          %质量矩阵
K=   % 刚度矩阵
KM=inv(M)*K         %动力矩阵
=eig(KM);       %求解特征值 和特征向量
P1=P(1,:);
P2=P(2,:);
Mo=;   %模态
f=sqrt(W2)/(2*pi)   %固有频率
A=;
B=;
C=;
D=0;
sys=ss(A,B,C,D);   %状态方程
t=0:0.01:10;
=initial(sys,,t); %初始条件仿真 (只有一阶模态)
=initial(sys,[-0.1 0 0.17808 0],t);% 只有二阶模态的初始条件
=initial(sys,,t);    % 一般条件
subplot(311);
plot(t1,y1);
subplot(312);
plot(t2,y2);
subplot(313);
plot(t3,y3);

[ 本帖最后由 yejet 于 2006-11-7 15:52 编辑 ]

luckromeo 发表于 2006-11-9 00:06

楼主,有个问题呀.什么是动力矩阵,这种求固有频率的方法能详细说说吗>?谢谢!

linqus 发表于 2006-11-9 11:37

原帖由 luckromeo 于 2006-11-9 00:06 发表
楼主,有个问题呀.什么是动力矩阵,这种求固有频率的方法能详细说说吗>?谢谢!

动力矩阵:
inv(M)*K

clough的书上有说。

junstin 发表于 2006-11-22 10:46

原帖由 linqus 于 2006-11-9 11:37 发表


动力矩阵:
inv(M)*K

clough的书上有说。


其实这两行:
KM=inv(M)*K         %动力矩阵
=eig(KM);       %求解特征值 和特征向量

可以通过一个行来搞定:
=eig(K,M) ;          %也可以直接求广义特征值 和特征向量

[ 本帖最后由 junstin 于 2006-11-22 10:47 编辑 ]

dazhi9956 发表于 2006-11-29 15:12

给出的程序是两个自由度吧
要是多个自由度呢
振型应该怎么求啊????????

yindijiang 发表于 2006-11-30 21:31

上面楼主我发现你的一个错误,系统矩阵和动力矩阵之间存在互逆
KM=inv(M)*K %系统矩阵
inv(K)*M   %动力矩阵
你正好掉了个头,摘自师汉民 机械振动系统

yindijiang 发表于 2006-11-30 21:59

能给出具体算式嘛,程序不是很看的懂

vib 发表于 2006-12-1 15:54

A=;
B=;
C=;
D=0;
sys=ss(A,B,C,D);   %状态方程

状态方程我不能理解啊,另外initial的命令能不能详细介绍一下,另外楼主能不能介绍一下有关振动在应用matlab的方法获推荐一些资料,我才疏学浅,以前学matlab都是结合信号处理学的,而振动的很多概念也很难理解,没想到这两个结合了起来,开了眼界,希望楼主能在程序中多一些注释,或者在程序前后多一些说明,照顾一下这些后进者,谢谢!

power_2006 发表于 2006-12-2 15:03

用你的程序仿真后,怎么结果和你的结果不一致啊?

呵呵,我仿真后的结果和你楼主的不一样,不知道为何?

第一个算例的频率是

f =

    0.4300         0
         0    0.5891


第二个算例的频率是
f =

    0.4268         0
         0    0.8393

xuefei01 发表于 2006-12-29 20:42

答 13# 感谢大家支持

由刚度矩阵 所求的 特征值为 Wn^2 (固有频率为 叫频率 单位为 弧度/秒)
进行 开方 得到为Wn (固有频率)除以 2PI即 单位为 HZ所以 会出现 上述值进行频谱分析时 间隔频率为 采样频率/采样点数

xuefei01 发表于 2006-12-29 20:43

答 13#

由刚度矩阵 所求的 特征值为 Wn^2 (固有频率为 叫频率 单位为 弧度/秒)
进行 开方 得到为Wn (固有频率)除以 2PI即 单位为 HZ所以 会出现 上述值进行频谱分析时 间隔频率为 采样频率/采样点数

wendyrong 发表于 2007-3-8 16:02

如果是四自由度的系统一下部分要怎么设置呢?我看了帮助,感觉不是很懂,能不能具体讲一下ss?
A=;
B=;
C=;
D=0;
sys=ss(A,B,C,D);   %状态方程

xuefei01 发表于 2007-3-13 09:29

回复 #14 wendyrong 的帖子

对于任何 一个多自由度 振动系统 首先 就是要得出 系统的动力学 方程]
即 得到 质量矩阵M 刚度矩阵 K
关于 求相应仿真部分 A,B,C,D 的求得看一下现代控制论部分

晴天 发表于 2007-3-22 20:21

楼主分析的很好,值得学习
页: [1] 2 3 4 5
查看完整版本: 多自由度 自由振动 MATLAB 仿真