回复 #17 21172485 的帖子
谢谢!麻烦给修改一下哈.我折腾了一个下午都不成.谢谢!请教!多自由度方程组的幅频响应怎么求??
请教高手指点?非常感谢!
回复 #19 fineshang 的帖子
我正在学习,有进展的话一定交流,互相提高!那摸上面我说的问题有无遇到,你怎摸解决的?回复 #17 21172485 的帖子
运行时是显示维数不相等.只能画出前半部分.可我怎摸该都不行.可能我的书上讲的太简略. 我这样改了一下,看起来维数应该相等呀.可还是只画出一半图.u1=0.3;
u2=0.25;
w0=1;
gv=0.3;
a1=4;a2=0.5;a3=0.2;
b1=1;
t1=5*gv./8;
t2=(3*a1-3*a2+a3)./8;
q1=b1./2;
a=0.1:0.001:1.53;
p=u1+u2*a-t1*a.^4;
m=q1./a;
k=sqrt(m.^2-p.^2);
f1=(t2*a.^2-k);
f2=(t2*a.^2+k);
plot(f1,a,'.');
hold on
a=0.1:0.001:0.17;
plot(f2,a,':');
hold on
a=0.171:0.001:1.53;
plot(f2,a,'-.')
为啥呀?大侠指教!! 你对MATLAB还不是很熟悉
不相等说明其他的参数都不符合要求
所以应重新运行一下上面的程序就好了
clc
clear
u1=0.3;
u2=0.25;
w0=1;
gv=0.3;
a1=4;a2=0.5;a3=0.2;
b1=1;
t1=5*gv./8;
t2=(3*a1-3*a2+a3)./8;
q1=b1./2;
a=0.1:0.01:1.53;
p=u1+u2*a-t1*a.^4;
m=q1./a;
k=sqrt(m.^2-p.^2);
f1=(t2*a.^2-k);
f2=(t2*a.^2+k);
plot(f1,a);
hold on
a=0.1:0.001:0.17;
u1=0.3;
u2=0.25;
w0=1;
gv=0.3;
a1=4;a2=0.5;a3=0.2;
b1=1;
t1=5*gv./8;
t2=(3*a1-3*a2+a3)./8;
q1=b1./2;
a=0.17:0.01:1.53;
p=u1+u2*a-t1*a.^4;
m=q1./a;
k=sqrt(m.^2-p.^2);
f1=(t2*a.^2-k);
f2=(t2*a.^2+k);
plot(f2,a); 谢谢前辈关注!!:@)
可能你没明白我的意思,我希望画出的图能随意分段用不同的图型线来表示.不过这个问题已经解决.我觉得就是方法有些笨.现在贴出来大家探讨.我的方法是每一段单独算出来,再画图.
clc
clear
u1=0.3;
u2=0.25;
w0=1;
gv=0.3;
a1=4;a2=0.5;a3=0.2;
b1=1;
t1=5*gv./8;
t2=(3*a1-3*a2+a3)./8;
q1=b1./2;
a1=0.1:0.001:1.53;
a2=0.1:0.001:0.45;
a3=0.45:0.001:1.53;
p1=u1+u2*a1-t1*a1.^4;
p2=u1+u2*a2-t1*a2.^4;
p3=u1+u2*a3-t1*a3.^4;
m1=q1./a1;
m2=q1./a2;
m3=q1./a3;
k1=sqrt(m1.^2-p1.^2);
k2=sqrt(m2.^2-p2.^2);
k3=sqrt(m3.^2-p3.^2);
f1=(t2*a1.^2-k1);
f2=(t2*a2.^2+k2);
f3=(t2*a3.^2+k3);
plot(f1,a1,'x');
hold on
plot(f2,a2,'x');
hold on
plot(f3,a3,'r*');
回复 #15 mechanic05 的帖子
直接用ezplot指令就可以了阿!回复 #26 huabanyu 的帖子
谢谢关注!但这样做不能分段表示出各个区域的不同.比如稳定区域与不稳定区域.不知道还有别的更好的方法吗?高手接招!!:@)
页:
1
[2]