本帖最后由 zdeming 于 2010-11-8 10:18 编辑
LZ的问题不知道解决没有?
觉得,程序没什么问题,也可以写成:
function dy=myode11(t,x)
%---------------------------------------------
M=2;C=2;K=2e5;A=14500;w=2.4;e=0.004;
t1=t*w/pi;t2=fix(t1/2)*2;
if t1>t2&&t1<t2+1
mf=A*sin(w*t);
else
mf=0;
end
%---------------------------------------------
if x(1)>e
mydd=x(1)-e;
elseif x(1)<-e
mydd=x(1)+e;
elseif x(1)>-e&&x(1)<e
mydd=0;
end
dy=zeros(2,1);
dy(1)=x(2);
dy(2)=(mf-C*x(2)-K*mydd)/M;
%---------------------------------------------
%---------------------------------------------
% 这个是做poincare的程序:
clear all;clc;
%options = odeset('RelTol',1e-7);
[t,x] = ode45(@myode11,[0:2*pi/10:800*2*pi],[0,0]);
i=3000:10:8000;
plot(x(i,1),x(i,2),'.')
%plot(x(:,1),x(:,2));
%plot(t,x(:,1));
%---------------------------------------------
但是:1)模型以及参数不知是否合理;2)量纲化了吗。
看不出什么结果来。 |