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

[基础知识] Adams实现运动控制

[复制链接]
发表于 2014-7-29 17:00:03 | 显示全部楼层 |阅读模式 来自 中国
Adams实现运动控制

1 模型介绍
如下图所示的小车模型,小车的前轮可以抬起,在平地行走和爬坡时有不同的运动姿态。当前轮到坡面时,小车停止前进并抬起前轮,然后小车使用后两轮爬坡,等小车完全爬到坡面时,放下前轮,小车三轮同时着地并继续爬坡。下面介绍在Adams环境下实现小车运动的过程。


(1)初始条件小车在平地上


(2)到达坡面时前轮抬起


(3)小车完全在坡面上


(4)前轮放下,小车沿坡面前进
小车的运动过程图
在Adams/View界面下建立小车和地面模型,小车中的运动副采用旋转副,车轮与地面采用实体接触,小车施加前进驱动和抬起前轮驱动。
2 设置传感器
(1)建立测量
定义一个测量MEA_disp表示小车前轮到坡面起点的距离,再定义另一个测量MEA_ANGLE表示小车车身与水平面之间的夹角。为了方便定义,可在地面上增加参考marker点。
g
(1)定义距离                       (2)定义车身角度
定义测量
(2)定义传感器
使用上述定义的测量变量定义距离传感器SENSOR_disp和角度传感器SENSOR_angle,并根据实际模型数据,设置准确的传感器触发数值。特别注意在Expression文本框中一定输入time,表示该传感器触发时的运行时间值,在下一步的仿真控制脚本中需要用到该时间值。
     
(1)定义距离传感器SENSOR_disp            (2)定义角度传感器SENSOR_angle
定义传感器
3 编写仿真控制脚本
使用Adams模拟小车运动的过程是:通过motion驱动小车向前运动,当前轮靠近坡面时,触发距离传感器SENSOR_disp,小车停止向前运动,并使用motion抬起前轮到一定角度,然后小车开始爬坡,当车身与坡面平行时触发角度传感器SENSOR_angle,小车停止爬坡并放下前轮,使三个车轮在同一直线上,之后小车继续爬坡前行。
根据上述过程,在Adams仿真脚本编辑器中输入仿真控制脚本命令,具体如下:
SIMULATE/DYNAMIC,DURATION=10.0, DTOUT=1.0E-002
DEACTIVATE/SENSOR,ID=1
motion/1,function=0
motion/2,function=step(time,senval(1),0,senval(1)+0.5,-13d)
motion/1,function=-if(time-(senval(1)+0.6):0,60d,60d)
SIMULATE/DYNAMIC,DURATION=20.0, DTOUT=1.0E-002
DEACTIVATE/SENSOR,ID=2
motion/1,function=0
motion/2,function=step(time,senval(2),-13d,senval(2)+0.5,-0.5d)
motion/1,function=-if(time-(senval(2)+0.6):0,180d,180d)
SIMULATE/DYNAMIC,DURATION=10.0, DTOUT=1.0E-002
其中senval()函数表示返回传感器触发时的时间值。命令脚本中通过对两个motion在不同的时刻设置不同的函数值,实现小车运动控制。
完成上述设置后,使用脚本式仿真形式运行仿真,仿真结果表明与预计过程完全一致。
4 结论
利用Adams 传感器和仿真脚本功能可以实现运动过程的控制,使运动机构有一定的灵活性,与联合仿真相比,且有操作简单、仿真速度快等优点,具有普遍的适用性。

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-11-2 09:26 , Processed in 0.025961 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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