16443 发表于 2008-1-15 18:06

庞加莱截面程序问题

用下边的程序做庞加莱截面,为什么频率为20时候,得出的截面正确,选用频率为35时候就不是一个点了。这是什么原因??
close all
t=0:0.001:5;
sig=5*sin(2*pi*20*t);
y=5*cos(2*pi*20*t);
x=zeros(length(t),3);
x(:,1)=y';x(:,2)=sig';x(:,3)=t';
T=1/20;T0=T*2/3; % 选择截面
kmax=round(max(x(:,3))/T);
X1=zeros(kmax);X2=zeros(kmax);
for k=1:kmax;
d=x(:,3)-(k-1)*T-T0;
=sort(abs(d));
x1l=x(K(1),1);
x1r=x(K(2),1);
x2l=x(K(1),2);
x2r=x(K(2),2);
x3l=x(K(1),3);
x3r=x(K(2),3);
if abs(P(1))+abs(P(2))<3e-16;
X1(k)=x1l;
X2(k)=x2l;
else
Q=polyfit(,,1);
X1(k)=polyval(Q,(k-1)*T-T0);
Q=polyfit(,,1);
X2(k)=polyval(Q,(k-1)*T-T0);
end
end
figure;
plot(X1,X2,'.');
grid on
xlabel('x','fontsize',14);
ylabel('dx/dt','fontsize',14);

octopussheng 发表于 2008-1-15 19:26

说明你的系统在35的时候就是单周期运动了

无水1324 发表于 2008-1-15 19:56

回复 楼主 的帖子

不同参数,系统的响应可能有差别的

16443 发表于 2008-1-15 19:57

回复 2楼 的帖子

这个肯定是单周期了,就只是一个正弦函数而已。
sig=5*sin(2*pi*20*t);
y=5*cos(2*pi*20*t);
x=zeros(length(t),3);
x(:,1)=y';x(:,2)=sig';x(:,3)=t';
T=1/20;T0=T*2/3; % 选择截面
这样的时候截面就是一个点,可是当正弦的频率变成下边的时候就不是一个点了。
sig=5*sin(2*pi*35*t);
y=5*cos(2*pi*35*t);
x=zeros(length(t),3);
x(:,1)=y';x(:,2)=sig';x(:,3)=t';
T=1/35;T0=T*2/3; % 选择截面
这是为什么呢 ?

octopussheng 发表于 2008-1-15 20:45

你改变了激励参数,出现这种情况也是可能的啊
建议你在15~40之间做一下分岔图看看!
页: [1]
查看完整版本: 庞加莱截面程序问题