看到了网上的一个小堵车的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, 下载次数: 68)
第三版函数1的间距-速度-加速度图
3.gif (955.12 KB, 下载次数: 80)
启发灵感的堵车gif
512 KB, 下载次数: 64, 下载积分: G币 -1
part1
512 KB, 下载次数: 58, 下载积分: G币 -1
part2
512 KB, 下载次数: 50, 下载积分: G币 -1
part3
139.57 KB, 下载次数: 49, 下载积分: G币 -1
part4
欢迎光临 UG爱好者 (https://www.ugsnx.com/) | Powered by Discuz! X3.2 |