我一直在猜测你的问题 clear all
n=0.0005;
ro=2600;
E0=2.3*10^5;
E1=5.3*10^4;
E2=-1.6*10^4;
A=20*10^(-6);
pe=0.005;
l=0.1;
P=0.5;
T=10;
mu=n/ro/A;
alpha=(1-pe*T)*E1*pi^2/ro/l^3/3;
beta=3*(1-pe*T)*E2*pi^4/ro/l^4/64;
omega=sqrt((1-pe*T)*E0*pi^2/ro/l^2/4);
F=2*P/ro/A;
%w1=1/3*omega-0.2;
x0_1=0.00001;x0_2=0.00001;
w=432;
hold on
for n=1:length(w)
T=2*pi/w(n);
t_final=400*T;
x0=;
=ode45('poin',,x0,[],w(n));
%plot(w(n),x(1000:1:end,1),'k.','markersize',5),hold on;
end
grid
plot(x(1000:1:end,1),x(1000:1:end,2),'k.','markersize',5),hold on;
xlabel('位移 Displacement a/m');
ylabel('速度 Speed V/m/s');
%*****************************************
%poin 函数
%**************
function xdot=poin(t,x,flag,w)
n=0.0005;
ro=2600;
E0=2.3*10^5;
E1=5.3*10^4;
E2=-1.6*10^4;
A=20*10^(-6);
pe=0.005;
l=0.1;
P=0.5;
T=10;
mu=n/ro/A;
alpha=(1-pe*T)*E1*pi^2/ro/l^3/3;
beta=3*(1-pe*T)*E2*pi^4/ro/l^4/64;
omega=sqrt((1-pe*T)*E0*pi^2/ro/l^2/4);
F=2*P/ro/A;
xdot=[x(2);
-mu*x(2)-beta*(x(1))^3-omega^2*x(1)-alpha*(x(1))^2+F*cos(w*t)]; 改为:plot(w(n),x(1000:200:end,1),'k.','markersize',5),hold on
200个点是一个周期,一个周期取一个点,所以是x(1000:200:end,1), w=1:432;% w要变化,当画分叉图的时候
hold on
for n=1:length(w)
T=2*pi/w(n);
t_final=400*T;
x0=;
=ode45('poin',,x0,[],w(n));
plot(w(n),x(70000:200:end,1),'k.','markersize',5),hold on;
end
回复 #34 无水1324 的帖子
仔细看一下别人程序是怎么用的回复 #35 无水1324 的帖子
:loveliness: 以前自己的疑惑也解开了,谢谢无水:)真是专业阿!! 解决了,以后多回来看看,多帮助其他人,自己也可以多学习点东西!回复 #37 无水1324 的帖子
恩,我正在重画,等画好了再请教。我经常来,只是大部分问题我确实不知道
所以都是看大家的回答,一知半解
才导致一直画不出图来 你怎么取了400个周期啊,你取周期时试算了吗 还是有经验啊
回复 #39 sssssxxxxx921 的帖子
这个可以试算一下,会减少不少时间,但是你试算的点最好分散点 原帖由 sssssxxxxx921 于 2007-6-22 17:37 发表 http://www.chinavib.com/forum/images/common/back.gif你怎么取了400个周期啊,你取周期时试算了吗 还是有经验啊
这个显然是试算的,简单算几个频率下的就可以了 综合考虑各试算点,取稳定时间比较长的哪个