声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3579|回复: 9

[结构振动] 关于用matlab画bode图的问题

[复制链接]
发表于 2009-12-9 19:24 | 显示全部楼层 |阅读模式

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

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

x
已知一个系统K=[3 -1 0 0;-1 3 -2 0;0 -2 4 -1;0 0 -1 2];M=[2 0 0 0;0 3 0 0;0 0 5 0;0 0 0 3];C=[0 0 0 0;0 2 0 0;0 0 3 0;0 0 0 0];
可以用bode命令画出频响函数图,但是是分开的。
A=[zeros(4,4) ones(4,4);-inv(M)*K -inv(M)*C];
B=[zeros(4,4);inv(M)];
C=[1 zeros(1,7)];
D=zeros(1,4);
sys=ss(A,B,C,D);
bode(sys)


有没有什么方法让这4个频率对应的尖峰画到一个图里,变成一条曲线。并标注横向坐标值。
类似这种:

                               
登录/注册后可看大图
回复
分享到:

使用道具 举报

发表于 2009-12-9 23:33 | 显示全部楼层
[mag,phase,w] = bode(sys) or [mag,phase] = bode(sys,w)
然后各自画+hold on
 楼主| 发表于 2009-12-10 14:12 | 显示全部楼层
画完了是这样的
untitled.jpg
发表于 2009-12-10 18:45 | 显示全部楼层
LZ怎么画! 代码?
 楼主| 发表于 2009-12-10 21:42 | 显示全部楼层
[mag,phase,w] = bode(sys);
for i=1:4
     for k=1:43
          y(i,k)=mag(1,i,k);
     end
end
magdb1= 20*log10(y(1,:));
magdb2= 20*log10(y(2,:));
magdb3= 20*log10(y(3,:));
magdb4= 20*log10(y(4,:));
hold on;
plot(w,20*log10(magdb1))
hold on;
plot(w,20*log10(magdb2))
hold on;
plot(w,20*log10(magdb3))
hold on;
plot(w,20*log10(magdb4))
发表于 2009-12-20 23:55 | 显示全部楼层
刚才发现这个忘了回应~!
LZ给的代码好像根本有问题!? 无法画出3F的图!
头像被屏蔽
发表于 2014-7-26 22:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-6 03:05 , Processed in 0.086240 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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