声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1551|回复: 9

[综合讨论] 油膜力编程问题,请大家多多指教啊~~!!

[复制链接]
发表于 2008-10-18 14:11 | 显示全部楼层 |阅读模式

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

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

x
在研究中,我看到油膜力表示方法主要有两种,一种是有很多参数组成,即C1,C2,C3等,代表有《带有两端支座松动故障的转子系统的振动分析》里用到的油膜力表示,
还有一种是用G,V,S,等表示的,例如《具有裂纹-碰摩耦合故障转子-轴承系统的动力学研究》。
在编程中使用,GVS方法编程,不知道为什么,油膜力总是为虚数(有实部哈~),调小步长不管用,验证程序其他地方都是对的,就是油膜力这里的问题。实在不知道为什么出错。请大牛们指教一二。

谢谢啊~~~!!!
我编的关于求油膜力的程序。
arfa=atan((x(11)+2*x(10))/(x(9)-2*x(12)))-pi/2*sign((x(11)+2*x(10))/(x(9)-2*x(12)))-pi/2*sign(x(11)+2*x(10));
G0=2/sqrt(1-(x(9).^2)-(x(11).^2))*(pi/2+atan((x(11)*cos(arfa)-x(9)*sin(arfa))/sqrt(1-(x(9).^2)-(x(11).^2))));
S0=(x(9)*cos(arfa)+x(11)*sin(arfa))/(1-(x(9)*cos(arfa)+x(11)*sin(arfa)).^2);
V0=(2+(x(11)*cos(arfa)-x(9)*sin(arfa))*G0)/(1-(x(9).^2)-(x(11).^2));

Fx=-sqrt((x(9)-2*x(12)).^2+(x(11)+2*x(10).^2))/(1-x(9).^2-x(11).^2)*(3*x(9)*V0-sin(arfa)*G0-2*cos(arfa)*S0);
Fy=-sqrt((x(9)-2*x(12)).^2+(x(11)+2*x(10).^2))/(1-x(9).^2-x(11).^2)*(3*x(11)*V0+cos(arfa)*G0-2*sin(arfa)*S0);

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2008-10-18 14:25 | 显示全部楼层
sqrt(A)
如果A是负数,会出现虚数吧

评分

1

查看全部评分

发表于 2008-10-19 09:30 | 显示全部楼层

回复 楼主 bella_jing 的帖子

你要看看从哪一步开始出现虚数
 楼主| 发表于 2008-10-20 20:48 | 显示全部楼层

谢谢各位~我找到原因了^_^

如题。谢谢大家~!!
发表于 2008-10-20 21:31 | 显示全部楼层

回复 地板 bella_jing 的帖子

LZ能否把原因告知大家?
发表于 2008-10-21 06:53 | 显示全部楼层
呵呵,这个模型我见过,正如二楼说的,很容易导致sqrt中出现负数而出错
 楼主| 发表于 2008-10-21 12:47 | 显示全部楼层

原因是我的公式有个括号放错位置了……

如题。唉,本来不想说的。这么低级的错误……:@L

评分

1

查看全部评分

 楼主| 发表于 2008-10-21 12:48 | 显示全部楼层

回复 6楼 happy 的帖子

那你是怎么解决的呢?
我很想知道的是,你的初始参数是怎么设置的。可否告知?
发表于 2008-10-21 16:07 | 显示全部楼层


这个基本上还没看到谁有特别好的办法,一般都是调小步长,还有一种办法就是当sqrt中的值小于0时,强制令其大于0,不过这种办法似乎效果有限,还是经常会出现你说的问题

评分

1

查看全部评分

发表于 2009-5-13 16:00 | 显示全部楼层
原来是这样
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-9 03:22 , Processed in 0.083193 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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