声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1677|回复: 0

[分形与混沌] 如何用以下程序作出poincare图或混沌分叉图

[复制链接]
发表于 2008-12-29 14:12 | 显示全部楼层 |阅读模式

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

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

x
第一部分:

function df=rhs(t,f,data)
%方程中的系统参数
m=data(1);g=data(2);c=data(3);n=data(4);b=data(5);mf=data(6);M=data(7);D0=data(8);De=data(9);
tau0=data(10);Ke=data(11);K0=data(12);omega=data(13);e=data(14);
%化简后的动力学方程
df(1)=f(2);
df(2)=-(De+D0*(1-f(1)^2-f(3)^2)^(-n))*f(2)/(M*omega)-2*tau0*mf*f(4)*(1-sqrt(f(1)^2+f(3)^2))^b/M-(Ke+K0*(1-f(1)^2-f(3)^2)^(-n)-mf*omega^2*tau0^2*(1-sqrt(f(1)^2+f(3)^2))^(2*b))*f(1)/(M*omega^2)-(tau0*D0*(1-sqrt(f(1)^2+f(3)^2))^b*(1-f(1)^2-f(3)^2)^(-n))*f(3)/(M*omega)+m*e*cos(t)/(M*c);
df(3)=f(4);
df(4)=-(De+D0*(1-f(1)^2-f(3)^2)^(-n))*f(4)/(M*omega)+2*tau0*mf*f(2)*(1-sqrt(f(1)^2+f(3)^2))^b/M-(Ke+K0*(1-f(1)^2-f(3)^2)^(-n)-mf*omega^2*tau0^2*(1-sqrt(f(1)^2+f(3)^2))^(2*b))*f(3)/(M*omega^2)+(tau0*D0*(1-sqrt(f(1)^2+f(3)^2))^b*(1-f(1)^2-f(3)^2)^(-n))*f(1)/(M*omega)+m*e*sin(t)/(M*c)-m*g/(M*c*omega^2);
df=[df(1);df(2);df(3);df(4)];


第二部分:

clc;
clear;
format long
m=50;       Ke=7.2762e6;    De=2e3;
n0=0.079;    m0=-0.25;    g=9.8;
e=0.0002;    R=0.067;      l=0.102;
n=2.5;       b=0.45;     tau0=0.4;   c=0.0003;      nu=50;
z=0.1;       p=2e5;        delta=0.0003;    T=l/nu;     upsilon=1.47e-5;
fid=fopen('poincare.txt','w');
fidd=fopen('time.txt','w');
fiddd=fopen('center.txt','w');
% 转速
omega=1300;
% 初始位置
x0=0;
y0=-m*g/Ke;
X0=x0/c;Y0=y0/c;
% 无量纲转速
nq=length(omega);
for i=1:nq
       s(i)=omega(i)/sqrt(Ke/m);
% Child短密封轴承动力系数
Rv(i)=omega(i)*R*delta/upsilon;
Ra=2*nu*delta/upsilon;
lambda(i)=n0*Ra^m0*(1+(Rv(i)/Ra)^2)^((1+m0)/2);
sigma(i)=lambda(i)*l/delta;
B(i)=2-((Rv(i)/Ra)^2-m0)/((Rv(i)/Ra)^2+1);
E(i)=(1+z)/2/(1+z+2*sigma(i));
u0(i)=2*sigma(i)^2*E(i)*(1-m0)/(1+z+2*sigma(i));
u1(i)=2*sigma(i)^2*(E(i)/sigma(i)+B(i)*(1/6+E(i))/2)/(1+z+2*sigma(i));
u2(i)=sigma(i)*(1/6+E(i))/(1+z+2*sigma(i));
u3(i)=pi*R*p/lambda(i);
% 密封力Muszynska模型系数
% K=K0*(1-e^2)^(-n)
% D=D0*(1-e^2)^(-n)
% tau=tau0*(1-e)^b
% e=sqrt(x^2+y^2)/c
K0(i)=u0(i)*u3(i);  
D0(i)=u1(i)*u3(i)*T;
mf(i)=u2(i)*u3(i)*(T^2);
M(i)=mf(i)+m;
% 系统结构动力学方程中的参数
data=[m,g,c,n,b,mf(i),M(i),D0(i),De,tau0,Ke,K0(i),omega(i),e];
%初始条件
f0=[X0;0;Y0;0];
t0=0;h=0.001;tf=600;
tn=[t0:h:tf];
[t,f]=ode45(@rhs,tn,f0,[],data);
%求出的是无量纲化的位移、速度
%现转化为实际的位移、速度
x=f(:,1);y=f(:,3);
dx=f(:,2);dy=f(:,4);
nn=(tf-t0)/h+1;nnn=300000;%nnn为除去瞬态响应后的第一点数,nn为采集的总点数
nnnn=400000;
for i=nnn:nn
fprintf(fidd,'%6.4f  %12.8f\n',t(i),x(i));hold on;
end
fclose(fidd);
for j=nnn:nn
    fprintf(fiddd,'%12.8f %12.8f\n',x(j),y(j));hold on;
end
fclose(fiddd);

% % 求庞加莱映射点
[A,jj]=max(x(nnn:nnnn));
jj=jj+nnn-1;
TT=2*pi;
  for k=1:nn
    tt(k)=(jj-1)*h+k*TT;
      if tt(k)>tf
          break;
      end
      for kk=nnn:nn
          if tt(k)>(kk-1)*h&tt(k)<kk*h
              l1=(tt(k)-(kk+1)*h)*(tt(k)-kk*h)/(2*h^2);
              l2=(tt(k)-(kk-1)*h)*(tt(k)-(kk+1)*h)/(-h^2);
              l3=(tt(k)-(kk-1)*h)*(tt(k)-kk*h)/(2*h^2);
          xx(k)=l1*x(kk-1)+l2*x(kk)+l3*x(kk+1);
          dx(k)=l1*dx(kk-1)+l2*dx(kk)+l3*dx(kk+1);
          fprintf(fid,'%12.8f %12.8f\n',xx(k),dx(k));hold on;
          end
      end
  end  
end
fclose(fid);
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-19 06:50 , Processed in 0.049789 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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