声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1702|回复: 9

[编程技巧] 非线性振动程序有错,三天未果,大家来看看怎么回事??

[复制链接]
发表于 2007-7-24 10:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
%利用逐步积分法求非线性系统的响应
% 9300*y''+5*y'+2*73397*(1-((y+sign(y')*85e-6)/(2*190e-6))^2)*((y+sign(y')*85e-6)/2)-(73397*(1-(y/190e-6)^2)*y)*sign(y')=5*cos(30*t)
%clc;    %Clear Command Window
clear all;
close all;
deltat=0.002;
t=0:deltat:6;
p=5*cos(30*t);
% initial the displacement and velocity
y=0.1;v=1;m=9300;c=5;
len=length(t)-1;
displacement=zeros([1,len]);
velocity=zeros([1,len]);
accelaration=zeros([1,len]);
for i=1:len

if y>=0&y<0.001
y=y+0.001;
else if y<0&y>-0.001
y=y-0.001;
else
y=y;
end
end

k=(2*73397*(1-((y+sign(v)*85e-4)/(2*190e-4))^2)*((y+sign(v)*85e-4)/2)-(73397*(1-(y/190e-4)^2)*y)*sign(v))/y;
a=(p(i)-c*v-2*73397*(1-((y+sign(v)*85e-4)/(2*190e-4))^2)*((y+sign(v)*85e-4)/2)-(73397*(1-(y/190e-4)^2)*y)*sign(v))/m;
equivelentk=k+6*m/(deltat^2)+3/deltat*c;
deltap=(p(i+1)-p(i))+m*(6/deltat*v+3*a)+c*(3*v+deltat/2*a);
deltay=deltap/equivelentk;
deltav=3/deltat*deltay-3*v-deltat/2*a;
y=y+deltay;
v=v+deltav;
displacement(i)=y;
velocity(i)=v;
accelaration(i)=a;

k(i)=k;

end
figure(1)
plot(t(1:len),displacement)
figure(2)
plot(t(1:len),velocity)
figure(3)
plot(t(1:len),accelaration)

figure(4)
plot(t(1:len),k)

k(1)
回复
分享到:

使用道具 举报

 楼主| 发表于 2007-7-24 11:03 | 显示全部楼层
原来我估计是由于y太小,导致函数k出了问题,因此把下列程序加上了:
if y>=0&y<0.001
y=y+0.001;
else if y<0&y>-0.001
y=y-0.001;
else
y=y;
end
end
但是问题依然存在。
显示的k(1)=NaN,而其他的k(i)都是0,如图4所示。

[ 本帖最后由 mcx8305 于 2007-7-24 11:08 编辑 ]
untitled.jpg
 楼主| 发表于 2007-7-24 11:10 | 显示全部楼层
同时k的表达式是我从参考文献上引用的,别人都做出来了,这是为什么啊?
请大家见附件的参考文献

[ 本帖最后由 mcx8305 于 2007-7-24 11:13 编辑 ]
未命名.JPG
 楼主| 发表于 2007-7-24 11:18 | 显示全部楼层
程序算出k(1)=NaN,  但我从第一步直接得出的k=???e6(好像是这个数量级,具体的值我忘了)
大家根据程序、图、参考文献看看这到底是什么问题。

也许问题很简单,但却有代表性,欢迎讨论,也帮我出出主意~~论文用。
 楼主| 发表于 2007-7-24 14:16 | 显示全部楼层
花大侠,你帮我看看吧~~
发表于 2007-7-24 15:10 | 显示全部楼层
出现响应突然无限增大可麻烦了,你这个程序按照直接积分得来的,因为一时还很难看出来问题,可能是你积分中推导有问题,或者这个问题不适合直接积分,为什么不用ode45求解呢,应该更简单

评分

1

查看全部评分

发表于 2007-7-24 15:34 | 显示全部楼层

回复 #5 mcx8305 的帖子

谢谢你的信任,不过很惭愧,图像方面我还凑合。数学上就不行,基础不好。以后不要指名哦,知道的都会回答你的:handshake ,多亏女侠不计较还帮你出了注意。
发表于 2007-7-24 15:35 | 显示全部楼层
这个问题最好还是用ode23tb求解,具体使用可以看一下help!

评分

1

查看全部评分

 楼主| 发表于 2007-7-24 15:35 | 显示全部楼层
由于所求问题的需要,后续还将分析非线性微分方程组,故选择了直接积分法。
 楼主| 发表于 2007-7-24 15:40 | 显示全部楼层
谢谢各位大侠相助,我再看看,有情况会传上来。欢迎大家继续交流,集思广益!!
向花大侠致歉!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 21:00 , Processed in 0.060947 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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