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 传感器和仿真脚本功能可以实现运动过程的控制,使运动机构有一定的灵活性,与联合仿真相比,且有操作简单、仿真速度快等优点,具有普遍的适用性。
|