找回密码
 注册
Simdroid-非首页
查看: 261|回复: 8

[Flex及相关] 为什么仿真时间不同结果就不同呢?

[复制链接]
发表于 2008-8-5 18:10:50 | 显示全部楼层 |阅读模式 来自 江苏苏州
为什么仿真时间不同结果就不同呢?
给柔性体长棒一个旋转,转速330*360d*time,看长棒下面外圆一点变形量。
但是为什么0.1s200step和1s200step仿真的结果不一样呢?
前者最大变形为0.021,后者最大变形则为0.019。
发表于 2008-8-5 20:45:48 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
我认为仿真过程中的每一种状态都是由他前面的一种状态"进化"而来的,并在当前状态再进行"计算"获得下一步的状态,显然不同的仿真时间与仿真step会造成不同的结果,但假如你设置的仿真时间分别为0.1S和1S,仿真step分别为100和1000,那么结果应该一样(模型在0.1S内已经处于稳定),想获得更精确的结果应该设置一个合理的仿真时间,仿真step尽可能的大些,

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-8-5 21:15:10 | 显示全部楼层 来自 清华大学
动力学分析是一个数值计算的过程,对待不同的时间步长,每一步积分的收敛解可能会不一样,然后会有累计的计算误差,最后导致结果有可能略有不同
如果带了柔性体,更容易出现。

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2008-8-6 11:53:00 | 显示全部楼层 来自 江苏苏州
非常感谢楼上两位!
回复 不支持

使用道具 举报

发表于 2008-8-7 07:47:36 | 显示全部楼层 来自 浙江绍兴
我昨天也发现了这个问题。我做的是个弹性碰撞问题,不考虑摩擦,按理说撞后的物体应该是按某一个速度匀速运动,可是设置的END TIME不同,它匀速的速度就不同。这个好象和END TIME 无关的吧?
回复 不支持

使用道具 举报

发表于 2008-12-8 16:45:02 | 显示全部楼层 来自 黑龙江哈尔滨
我觉得你仿真的精度设置就不一样,0.1s200step是0.1秒内设置了200步的计算相当与0.1/200(s)计算一次和1s200step相当于1/200(s)计算一次,前面的精度比后面的高十倍
回复 不支持

使用道具 举报

发表于 2013-5-14 00:10:41 | 显示全部楼层 来自 德国
复杂模型中的弹性碰撞确有此问题,  若精度高为DTOUT=1.0E-04秒时计算结果(毛刺很大)反而很差于DTOUT=1.0E-03秒时计算结果(较平滑). 哪个对? 求教高手.
回复 不支持

使用道具 举报

发表于 2013-5-14 08:40:04 | 显示全部楼层 来自 清华大学
补偿跟数值阻尼也有关,步长约小,数值阻尼也越小
回复 不支持

使用道具 举报

发表于 2013-5-14 22:06:16 | 显示全部楼层 来自 德国
谢谢斑竹!  请问有否办法增大数值阻尼.
我试了改INTEGRATOR 没见效果. 且上述现象不是每次都发生(可接受的误差每次都有).
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-2 13:34 , Processed in 0.049229 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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