上尉
UID2599567
U币0
G币4826
技术0
主题32
精华0
阅读权限90
注册时间2016-3-23
最后登录2024-10-24
在线时间381 小时
上尉
|
本帖最后由 gsmfxsmy 于 2017-2-23 15:11 编辑
看到了网上的一个小堵车的gif,突发奇想用NX来模拟一下。前车一直往前走,速度为标准余弦函数。后车跟在前车后面,车距近了之后开始减速。
本附件为模拟的第三版。
第一版用到了智能点+传感器+电机+信号,测量两车(智能点)之间的间距,间距小于设定值,(信号设置为0,电机不提供驱动)开始减速,间距大于设定值,(信号设置为1,电机开始驱动)开始加速。
思路比较简单,可以设置后车加减速的延迟时间(模拟人的反应时间)。
缺点比较多:1、是只能实现一次不撞车;2、电机参数和传感器参数不好设置;3、加速度减速度不可知。
第二版和第三版用到了智能点+传感器+(派生+if)函数;通过派生函数获取智能点之间的间距,当间距小于设定值,加速度为负值,当间距大于设定值,加速度为正值。
优点:设定参数较少,操作较少,通过直接设定加速度减速度来控制两车间距,可以实现两车次的加速减速不撞车。
缺点:1、后车减速为0后,会出现倒车;2、后车加减速无延迟。
第三版增加了速度上限和下限。控制参数如下:
缺点:1、后车加减速无延迟;2、函数比较复杂。
函数1
IF( Se001-10: 如果间距小于10
IF( VX(108,1,1): 0, 0, -10), 成立,如果速度小于0,加速度为0 ,如果速度大于0,加速度为-10
0,
IF( VX(108,1,1)-15: 8, 0, 0) 不成立, 如果速度小于15,加速度为8 ,如果速度大于等于15,加速度为0
)
函数2
IF( Se001-10: 如果间距小于10
IF( Se001-5: (间距小于10)成立,如果间距小于5
IF( VX(108,1,1): 0, 0, -10), (间距小于5)成立,如果速度小于0,加速度为0 ,如果速度大于0,加速度为-10
0,
IF( VX(108,1,1)-15: -5, 0, 0)), (间距小于5)不成立,如果速度小于0,加速度为0 ,如果速度大于0,加速度为-5
0,
IF( VX(108,1,1)-15: 5, 0, 0) (间距小于10)不成立, 如果速度小于15,加速度为5 ,如果速度大于等于15,加速度为0
)
plus,在第一版中由于电机不能添加在直线副上,需要添加第3辆车绕轴转动,用齿轮齿条副转换成前车的直线运动。
第二第三版中需要使用派生函数,保留了第3辆车。
|
|
-
motion_1.jpg
(766.9 KB, 下载次数: 107)
第三版函数1的间距-速度-加速度图
-
3.gif
(955.12 KB, 下载次数: 100)
启发灵感的堵车gif
-
-
caraccident .part01.rar
512 KB, 下载次数: 65, 下载积分: G币 -1
part1
-
-
caraccident .part02.rar
512 KB, 下载次数: 59, 下载积分: G币 -1
part2
-
-
caraccident .part03.rar
512 KB, 下载次数: 51, 下载积分: G币 -1
part3
-
-
caraccident .part04.rar
139.57 KB, 下载次数: 50, 下载积分: G币 -1
part4
评分
-
查看全部评分
|