回复 #13 doori99 的帖子
转子碰摩问题作的人很多,而且好多人做的东西都是一样的。你应该不是程序的问题。重要的是你的模型、参数,这些完全确定了之后,就是求解、分岔、稳定性分析。网上有很多求解的程序供你参考的。 原帖由 无水1324 于 2007-8-7 15:17 发表转子碰摩问题作的人很多,而且好多人做的东西都是一样的。你应该不是程序的问题。重要的是你的模型、参数,这些完全确定了之后,就是求解、分岔、稳定性分析。网上有很多求解的程序供你参考的。
原帖由 无水1324 于 2007-8-7 15:17 发表
转子碰摩问题作的人很多,而且好多人做的东西都是一样的。你应该不是程序的问题。重要的是你的模型、参数,这些完全确定了之后,就是求解、分岔、稳定性分析。网上有很多求解的程序供你参考的。
原帖由 无水1324 于 2007-8-7 15:17 发表
转子碰摩问题作的人很多,而且好多人做的东西都是一样的。你应该不是程序的问题。重要的是你的模型、参数,这些完全确定了之后,就是求解、分岔、稳定性分析。网上有很多求解的程序供你参考的。
原帖由 无水1324 于 2007-8-7 15:17 发表
转子碰摩问题作的人很多,而且好多人做的东西都是一样的。你应该不是程序的问题。重要的是你的模型、参数,这些完全确定了之后,就是求解、分岔、稳定性分析。网上有很多求解的程序供你参考的。
回复 #14 octopussheng 的帖子
帮忙看一下,谢谢!初学matlab数值仿真碰摩,请高手指点
我写了些程序就是做不错他的图象.不知道哪儿出问题了.
请高手门帮忙看看!
谢谢! 你先把你做的程序发上来,这样才能针对你的问题进行讨论、修改,你要是什么都没有,就让别人帮你做完,那也是不可能的,毕竟每个人都有自己的事情,你把问题写的完整些,别人理解起来也省事了!◎ 方程
function dy=jeffcott(t,x)
dd=0.00016;
b=3;
% E=0.04;
cc=0.12;
f=0.12;
f0=25;
r=1.86;
e=sqrt(x(1)^2+x(3)^2);
dy=[x(2);
-2*cc*x(2)-x(1)+f*b/(1+b)*x(3)+b*dd*(x(1)-f*x(3))/[(1+b)*e]+r^2*cos(r*t);
x(4);
-2*cc*x(4)-x(3)-f*b/(1+b)*x(1)+b*dd*(f*x(1)+x(3))/[(1+b)*e]+r^2*sin(r*t)];
clc;
clear all;
x0=rand(4,1);
=rk_41('jeffcott',,x0);
plot(t,y(:,1));
figure
plot(y(:,1),y(:,3)
rk_4程序
function =rk_4(odefile,tspan,y0)
t0=tspan(1);
th=tspan(2);
if length(tspan)<=3,h=tspan(3);
else
h=tspan(2)-tsapn(1);
th=tspan(2);
end
tout=';
t=tout';
yout=[];
for t=tout'
k1=h*eval();
k2=h*eval();
k3=h*eval();
k4=h*eval();
y0=y0+(k1+2*k2+2*k3+k4)/6;
yout=;
end 先指出你的几个语法方面的问题吧
1. matlab中[]符号,是表示向量或者矩阵的,你在dy=....
这个式子中,把所有的[]都应该改成(),这个是常识!!!!
如下:
-2*cc*x(2)-x(1)+f*b/(1+b)*x(3)+b*dd*(x(1)-f*x(3))/[(1+b)*e]+r^2*cos(r*t);
把其中的[]改过来
2. =rk_41('jeffcott',,x0);
这句话也有问题,你的RK程序是rk_4,何来rk_41之说
最后提一个建议————编程的时候要注意多多阅读出错提示!不要一遇到错误就不知道怎么看了! 求解可以直接调用ode45等ode求解器,他们大部分是基于RK法的
回复 #25 无水1324 的帖子
RK法也不是不可以,用ode45当然更简便to doori99 :你给的那些图那里来的?
回复 #26 咕噜噜 的帖子
他这些图都是闻邦椿书上的原图,是照下来的,呵呵回复 #24 octopussheng 的帖子
程序没有出错让你们帮忙看看为什么做不错书上的图形
算例是闻邦春——《非线性振动理论中的解析方法及工程应用》的
是参数不对还是什么原因
谢谢了!
回复 #28 doori99 的帖子
:@L 既然程序没有出错的话,调参数也不是我们的工作了哈!本来计算非线性动力学问题就是一个费时间的过程,像这种调参数的事情还是自己做比较好!