凌枫 发表于 2009-7-17 16:53

请无水等师兄帮我看看分叉程序有什么问题?

关于面齿轮传动的刚量一化后的方程见附件,下面是根据论坛里面的程序改编的. 算了一晚上还是没有结果,请大家帮忙看看是什么问题,谢谢啦!
function func=ff(t,x,flag,w)
ifx(9)>1
    f=x(9)-1;
elseifx(9)<-1
    f=x(9)+1;
else
      f=0;
end
func=[x(2);-3.2e8*x(1)-1.95*x(2)+0.044*x(10)+(4.7+5*cos(w*t))*1e-8*f;
      x(4);-2.8e8*x(3)-1.95*x(4)+0.12*x(10)+(4.7+5*cos(w*t))*1e-8*f;
      x(6);-5.2e8*x(5)-0.3*x(6)-0.005*x(10)-(0.5+0.53*cos(w*t))*1e-8*f;
      x(8);-4.9e8*x(7)-0.3*x(8)-0.013*x(10)-(0.5+0.53*cos(w*t))*1e-8*f;
      x(10);-1e8*x(1)-0.663*x(2)-2.63e8*x(3)-1.83*x(4)+1.768e8*x(5)+0.1*x(6)+4.6e8*x(7)+0.282*x(8)-0.152*x(10)-(31.2+33*cos(w*t))*f+4e-4+0.2*w^2*cos(w*t)];


w=0.01:0.01:1;
for i=1:length(w)
    display(w(i));
T=2*pi/w(i);
=ode45('ff,,,[],w(i));
plot(w(i),x(38000:200:end,9),'k.');
hold on;
xlabel('量纲一频率');
ylabel('量纲一位移');
end

mechanic05 发表于 2009-7-17 17:57

回复 楼主 凌枫 的帖子

看起来没错,好像。分岔图本来算的点数就多,所以一般时间都比较长。如果你实在没把握,建议先算两个W(I)点试算下,再显示下时间,就可估算出程序整体需要的时间。我以前算的时候都有超过三天的呢!呵呵

讨论求知 发表于 2009-7-17 19:39

上面的程序好像个别地方有语法错误,3.2e8与给的word里的3e8也对应不上

凌枫 发表于 2009-7-17 21:19

3.2e8对不上都关系不大,麻烦你能指出那点油语法错误吗?

无水1324 发表于 2009-7-19 10:48

回复 楼主 凌枫 的帖子

你的附件中的方程与m函数的好像有比较大的差别,严格按照方程书写。另外,你最好把最后一个方程中的前面几个二阶导数用上面的代替。这些好检查错误。

另外,方程系数之间差距比较大,ode45是否合适呢?

htwei 发表于 2010-3-3 15:01

回复 5楼 无水1324 的帖子

这个意思参数很大 系统的刚度就会大?
页: [1]
查看完整版本: 请无水等师兄帮我看看分叉程序有什么问题?