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

[动力学分析] 求教关于平行连接的问题

[复制链接]
发表于 2011-12-6 17:22:16 | 显示全部楼层 |阅读模式 来自 北京
本帖最后由 xiaoxiaoyue 于 2011-12-6 17:24 编辑

做一个反复运动的分析,大致问题是这样的:模型分为上下左右四道边墙,想用左边墙上下往复按照正弦函数运动,通过平行连接将上下及左边墙连接在一起,在左边墙赏析运动的过程中,带动上下两道墙一起运动。
问题来了:当不将3道墙连接在一起时,只对左边墙施加正弦速度时,左边墙能够按照正弦速度上下运动,将3道墙通过并行连接后,左边墙的速度不按照正弦速度运行。
图片中,蓝色颗粒为固定上下两道墙用的,使其只能转动。附上程序代码,麻烦高手给我看看吧,折腾好几天了,都过不去,论文没法往下做了,不胜感激呀!!!!



new
def make_leftball
xc=x0
yc=y0
rc=radius
r2=2*radius
idc2=id_start
loop n(1,10)
command
ball id=idc2 x=xc y=yc rad=rc
prop dens=1000 kn=1e8 ks=1e8
end_command
yc=yc-r2
idc2=idc2+1
end_loop
end
set echo off
set y0=14.0 x0=0 radius=1 id_start=200
set echo on
make_leftball
def make_topball
xc=x0
yc=y0
rc=radius
idc1=id_start
r2=2*radius
loop n (1,8)
command
ball rad=radius x=xc y=yc id=idc1
prop dens=1000 kn=1e8 ks=1e8
end_command
xc=xc-r2
idc1=idc1+1
end_loop
end
set echo off
set x0=16 y0=10 radius=1 id_start=100
set echo on
make_topball
def make_downball
xc=x0
yc=y0
rc=radius
idc3=id_start
r2=2*radius
loop n (1,8)
command
ball rad=radius x=xc y=yc id=idc3
prop dens=1000 kn=1e8 ks=1e8
end_command
xc=xc+r2
idc3=idc3+1
end_loop
end
set echo off
set x0=2 y0=0 radius=1 id_start=300
set echo on
make_downball
def make_rightball
xc=x0
yc=y0
rc=radius
r2=2*radius
idc4=id_start
loop n(1,4)
command
ball id=idc4 x=xc y=yc rad=rc
prop dens=1000 kn=1e8 ks=1e8
end_command
yc=yc+r2
idc4=idc4+1
end_loop
end
set echo off
set y0=2 x0=14 radius=1 id_start=400
set echo on
make_rightball
ball id=1000 rad=1 x=14 y=-2
ball id=1001 rad=1 x=14 y=12
prop kn=1e8 ks=1e8 range id=1000,1001
prop xvel=0 yvel=0 range id=1000,1001
fix x y spin range id=1000,1001
fix x y spin range id=200,idc2
fix spin range id=400,idc4
prop pb_rad=1.1 pb_s=1e18 pb_n=1e18  range id=200,idc2;将左边墙和上下墙链接在一起
;prop pb_kn=1e18 pb_ks=1e18 c_index 1  range id=100,idc3

;prop pb_rad=1.1 pb_s=1e10 pb_n=1e10  range id=400,idc4;右边颗粒墙连接
;prop pb_kn=1e14 pb_ks=1e14 c_index 3  range id=400,idc4;右边颗粒墙连接

def startup
  old_time=time
  omega=freq*2.0*pi
end
;----------------------------------------------------
def shake
  while_stepping
  real_time=time-old_time
  if real_time<tlength
    vel=ampl*sin(omega*real_time+90*degree)
    oo=out('颗粒剪切速度' +string(vel))
  else
    vel=0.0
  end_if
command
prop yvel=vel range id=200,idc2
end_command
end
pl add ball lgreen
pl show
set freq=.20 ampl=5 tlength=18000.0
set time 0.0
startup
shake
set grav=0 -10
cycle 3000

请高手您关注这一段程序:
prop pb_rad=1.1 pb_s=1e18 pb_n=1e18  range id=200,idc2;将左边墙和上下墙链接在一起
;prop pb_kn=1e18 pb_ks=1e18 c_index 1  range id=100,idc3
;prop pb_rad=1.1 pb_s=1e10 pb_n=1e10  range id=400,idc4;右边颗粒墙连接
;prop pb_kn=1e14 pb_ks=1e14 c_index 3  range id=400,idc4;右边颗粒墙连接

这里面如果将prop pb_rad=1.1 pb_s=1e18 pb_n=1e18  range id=200,idc2;里面的范围改为id=100,id3也就是将3道墙连接在一起,正弦速度根本就不是正弦速度。
麻烦您给看看吧!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2011-12-6 18:13:07 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
本帖最后由 ccb137731 于 2011-12-6 18:13 编辑

楼主,不好意思,最近有点忙,你的代码我没仔细看。但是发现很严重的问题。
manual中的原文:
parallel bonds are installed at real contacts
楼主你的当中有些球都没接触,另外你的freq没有定义,应该是omega=2×pi×frep吧。还有圆周率可以用pi表示。
回复 不支持

使用道具 举报

 楼主| 发表于 2011-12-6 18:57:57 | 显示全部楼层 来自 北京
ccb137731 发表于 2011-12-6 18:13
楼主,不好意思,最近有点忙,你的代码我没仔细看。但是发现很严重的问题。
manual中的原文:
parallel bon ...

谢谢版主的热心解答。程序里面对freq已经有定义了,在函数startup里面定义的。关于您说的部分球没有接触问题,还是没搞明白。模型中id=100,idc3是将上下两道墙和左边的颗粒墙通过parallel bonds 连接在一起。当只将左边墙通过parallel bonds连接时,就是id=200,idc2,运动速度能够满足正弦速度,一旦通过id=100,idc3将3道墙连接后,不会出现左边墙上下往复运动的同时带动上下来两道墙摆动。
     还希望您有空的时候给我看看吧,不胜感激~~~~~~
回复 不支持

使用道具 举报

发表于 2011-12-6 22:40:56 | 显示全部楼层 来自 江苏南京
xiaoxiaoyue 发表于 2011-12-6 18:57
谢谢版主的热心解答。程序里面对freq已经有定义了,在函数startup里面定义的。关于您说的部分球没有接触 ...

左边墙和上下两个边墙定义的平行链接是没有意义的,因为都不接触!
回复 不支持

使用道具 举报

发表于 2011-12-6 22:41:16 | 显示全部楼层 来自 江苏南京
xiaoxiaoyue 发表于 2011-12-6 18:57
谢谢版主的热心解答。程序里面对freq已经有定义了,在函数startup里面定义的。关于您说的部分球没有接触 ...

左边墙和上下两个边墙定义的平行链接是没有意义的,因为都不接触!
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-9-29 15:27 , Processed in 0.032407 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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