relou 发表于 2011-7-12 21:34

请教一个分岔程序

本帖最后由 relou 于 2011-7-12 21:38 编辑

function s=rk45(t,q,flag,w)

%global m c k ks e g mb cb kc d f

m=0.5;
c=120;
k=4e4;
ks=40e4;
e=0.5e-3;
g=9.8;
mb=1;
cb=108;
kc=80e4;
d=1e-3;
f=0.05;

r=sqrt((q(1)-q(5))^2+(q(3)-q(7))^2);
%r=sqrt(q(1)^2+q(3)^2);
if r<d
    fx=0;
    fy=0;
else
    %fx=-(q(1)-q(5))*kc*(1-d/r)+(q(3)-q(7))*f*kc*(1-d/r);
    fx=-kc*(1-d/r)*(q(1)-f*q(3));
    %fy=-(q(3)-q(7))*kc*(1-d/r)-(q(1)-q(5))*f*kc*(1-d/r);
    fy=-kc*(1-d/r)*(f*q(1)+q(3));
end

s=zeros(8,1)
s(1)=q(2);

s(2)=fx/(m*w^2)-c*q(2)/(m*w)-k*q(1)/(m*w^2)-ks*(q(1)^2+q(3)^2)*q(1)/(m*w^2)+e*cos(t);

s(3)=q(4);

s(4)=fy/(m*w^2)-c*q(4)/(m*w)-k*q(3)/(m*w^2)-ks*(q(1)^2+q(3)^2)*q(3)/(m*w^2)+e*sin(t)-g/(w^2);

s(5)=q(6);

s(6)=-fx/(mb*w^2)-cb*q(6)/(mb*w)-kc*q(5)/(mb*w^2);

s(7)=q(8);

s(8)=-fy/(mb*w^2)-cb*q(8)/(mb*w)-kc*q(7)/(mb*w^2)-g/(w^2);


end
function nonlinear
q0=
w=linspace(2200,3001,100)
options=odeset('RelTol',1e-6,'AbsTol',1e-6)
y=[]
for n=1:length(w)
    T=2*pi
    ts=
    =ode45('rk45',ts,q0,options,w(n))
    q0=z(end,:)
    %figure(1)
    subplot(2,1,1)
    plot(w(n),z(90000:200:end,1),'r.','markersize',1)
    hold on
    subplot(2,1,2)
    plot(w(n),z(90000:200:end,3),'k.','markersize',1)
    hold on
end
    %figure(2)
    %subplot(2,1,1)
    %plot(tt(50000:end),z(50000:end,1),'k-')
%%hold on
y=z(end,:)
save 'end_data.txt'y-ascii
save 'time.txt'tt-ascii

我参考刘长春、吴敬东的《非线性转子-机匣系统的动力学特性》的文章写的一个程序,但是结果就和原文章的对不上,请各位前辈指点迷津,不胜感激

meiyongyuandeze 发表于 2011-7-13 08:40

给几章对比下吧

relou 发表于 2011-7-13 13:43

补发文章中的一些参数和图片。

dj15175771160 发表于 2014-6-26 15:41

你这分岔图采用的是什么方法?我也在做,跟参考的文献也是出入很大,能大家讨论下吗

huizi_nice 发表于 2014-7-5 19:00

权限有限,看不到图,估计是初值有变吧,很多文献上给的程序和文中的图是对不上的
页: [1]
查看完整版本: 请教一个分岔程序