声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: octopussheng

[稳定性与分岔] 闻邦春——非线性振动理论中的解析方法及工程应用一书后面的程序

[复制链接]
发表于 2007-8-7 15:17 | 显示全部楼层

回复 #13 doori99 的帖子

转子碰摩问题作的人很多,而且好多人做的东西都是一样的。你应该不是程序的问题。重要的是你的模型、参数,这些完全确定了之后,就是求解、分岔、稳定性分析。网上有很多求解的程序供你参考的。
回复 支持 反对
分享到:

使用道具 举报

发表于 2007-8-7 20:49 | 显示全部楼层
原帖由 无水1324 于 2007-8-7 15:17 发表
转子碰摩问题作的人很多,而且好多人做的东西都是一样的。你应该不是程序的问题。重要的是你的模型、参数,这些完全确定了之后,就是求解、分岔、稳定性分析。网上有很多求解的程序供你参考的。

canshu.bmp
发表于 2007-8-7 20:55 | 显示全部楼层
原帖由 无水1324 于 2007-8-7 15:17 发表
转子碰摩问题作的人很多,而且好多人做的东西都是一样的。你应该不是程序的问题。重要的是你的模型、参数,这些完全确定了之后,就是求解、分岔、稳定性分析。网上有很多求解的程序供你参考的。

方程.bmp
发表于 2007-8-7 21:02 | 显示全部楼层
原帖由 无水1324 于 2007-8-7 15:17 发表
转子碰摩问题作的人很多,而且好多人做的东西都是一样的。你应该不是程序的问题。重要的是你的模型、参数,这些完全确定了之后,就是求解、分岔、稳定性分析。网上有很多求解的程序供你参考的。

分岔图.bmp
发表于 2007-8-7 21:03 | 显示全部楼层
原帖由 无水1324 于 2007-8-7 15:17 发表
转子碰摩问题作的人很多,而且好多人做的东西都是一样的。你应该不是程序的问题。重要的是你的模型、参数,这些完全确定了之后,就是求解、分岔、稳定性分析。网上有很多求解的程序供你参考的。

xiangying.bmp
发表于 2007-8-7 21:07 | 显示全部楼层

回复 #14 octopussheng 的帖子

帮忙看一下,谢谢!
初学matlab数值仿真碰摩,请高手指点
我写了些程序就是做不错他的图象.不知道哪儿出问题了.
请高手门帮忙看看!
谢谢!
 楼主| 发表于 2007-8-7 21:24 | 显示全部楼层
你先把你做的程序发上来,这样才能针对你的问题进行讨论、修改,你要是什么都没有,就让别人帮你做完,那也是不可能的,毕竟每个人都有自己的事情,你把问题写的完整些,别人理解起来也省事了!◎
发表于 2007-8-7 21:53 | 显示全部楼层
方程
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);
[t,y]=rk_41('jeffcott',[0,100,0.005],x0);
plot(t,y(:,1));
figure
plot(y(:,1),y(:,3)

rk_4程序
function [tout,yout]=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=[t0:h:th]';
t=tout';
yout=[];
for t=tout'
    k1=h*eval([odefile,'(t,y0)']);
    k2=h*eval([odefile,'(t+h/2,y0+0.5*k1)']);
    k3=h*eval([odefile,'(t+h/2,y0+0.5*k2)']);
    k4=h*eval([odefile,'(t+h,y0+k3)']);
    y0=y0+(k1+2*k2+2*k3+k4)/6;
    yout=[yout;y0'];
end
 楼主| 发表于 2007-8-8 07:46 | 显示全部楼层
先指出你的几个语法方面的问题吧
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. [t,y]=rk_41('jeffcott',[0,100,0.005],x0);
这句话也有问题,你的RK程序是rk_4,何来rk_41之说

最后提一个建议————编程的时候要注意多多阅读出错提示!不要一遇到错误就不知道怎么看了!

评分

1

查看全部评分

发表于 2007-8-8 07:53 | 显示全部楼层
求解可以直接调用ode45等ode求解器,他们大部分是基于RK法的
发表于 2007-8-8 08:25 | 显示全部楼层

回复 #25 无水1324 的帖子

RK法也不是不可以,用ode45当然更简便
to doori99 :你给的那些图那里来的?
 楼主| 发表于 2007-8-8 08:41 | 显示全部楼层

回复 #26 咕噜噜 的帖子

他这些图都是闻邦椿书上的原图,是照下来的,呵呵
发表于 2007-8-8 11:29 | 显示全部楼层

回复 #24 octopussheng 的帖子

程序没有出错
让你们帮忙看看为什么做不错书上的图形
算例是闻邦春——《非线性振动理论中的解析方法及工程应用》的
是参数不对还是什么原因
谢谢了!
 楼主| 发表于 2007-8-8 12:01 | 显示全部楼层

回复 #28 doori99 的帖子

:@L 既然程序没有出错的话,调参数也不是我们的工作了哈!

本来计算非线性动力学问题就是一个费时间的过程,像这种调参数的事情还是自己做比较好!
发表于 2007-8-8 12:43 | 显示全部楼层

回复 #29 octopussheng 的帖子

我调试了一楼的程序,里面有很多问题。还有其它的人调试了吗?一起交流一下
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-23 12:38 , Processed in 0.071598 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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