ADAMS的二连杆机械臂PID控制

这里利用ADAMS 2014,来完成如下方法。
1 二连杆平面臂初始状态呈直线
ADAMS的二连杆机械臂PID控制_第1张图片
图1 二连杆平面臂呈直线时三维模型
不计重力,忽略摩擦。在xy平面,连杆1和连杆2长度分别为300mm,100mm,其宽和厚都设为20mm。支座与大地为固定副,连杆1通过关节1(旋转副)与支座连接;连杆2通过关节2(旋转副)与连杆1连接。
连杆1和连杆2的质心都是在各自的中心位置,其质心位置和转动惯量,ADAMS会在建立完模型后,自动得到。在关节1和关节2处分别添加力矩SFORCE_1,SFORCE_2,同时设定SFORCE_1为50N*mm,SFORCE_2,先设为0。
2 给定控制目标
该二连杆平面臂在运动过程中,两个连杆始终是直线状态(绕支座转动),也就是说两连杆之间夹角为180°。如果不控制,很难实现该状态。
3 PID控制
ADAMS的二连杆机械臂PID控制_第2张图片
图2 PID闭环负反馈控制框图
4 ADAMS内置的PID控制器实现控制
在这里,要使两连杆能够在运动中一直保持直线,而初始状态两连杆就是直线状态,故只需要连杆2与连杆1的角速度(绕Z轴)相同,角加速度相同,也就是说连杆2的角速度相对于连杆1的角速度为0,连杆2的角加速度相对于连杆1的角加速度也为0。
故在PID控制框图中,我们设置输出为连杆2相对于连杆1的角速度;参考输入为0,这是期望的相对角速度值,表示是直线状态。在ADAMS中,当运行仿真时,各力或力矩、速度、加速度等都会根据建立的三维模型自动得到。
设置三个设计变量,作PID控制器的常数。Design Exploration>Design Variable,先设定P=I=D=50。
设置PID控制器输入,Elements>Controls Toolkit,控制器要两个输入:第一个,是给定要求的输入,input function为0-WZ(To_MARKER,From_MARKER)*RTOD,WZ是绕Z轴的角速度,To_MARKER是连杆2上关节2处的MARKER点,From_MARKER是连杆1上关节1处的MARKER点,WZ(To_MARKER,From_MARKER)表示连杆2相对于连杆1的角速度,*RTOD是以角度表示,而不是弧度;第二个,是第一个输入的微分,input function为0-WDTZ(To_MARKER,
From_MARKER)*RTOD,WDTZ是绕Z轴的角加速度, WDTZ(To_MARKER,From_MARKER)表示连杆2相对于连杆1的角加速度。
设置PID控制器,Elements>Controls Toolkit,PID的Input,Derivative Input分别是上述两个输入,P、I、D三个参数分别是上述三个设计变量。完成后,会在ADAMS左侧模型树中生成一个PID控制器。
接下来,我们设置前面的SFORCE_2,将其设为生成的PID控制器。这样,根据图3的PID控制框图,生成的PID控制器,输入到SFORCE_2,也就是要控制的力矩,然后输出为两连杆的角速度、角加速度差值,保证运动过程中为直线状态。
5 ADAMS的仿真模拟与验证
点击simulation,设置时间10s和步数100,观察仿真,同时建立测量:Design Exploration>Measures,测量两连杆之间的角度,并生成图形。根据图3可知,夹角为180°,实现了给定的呈直线的运动控制。
ADAMS的二连杆机械臂PID控制_第3张图片
图3 初始呈直线的运动过程中两连杆间的角度
调节三个设计变量P、I、D的值,能够改变图4中趋于180°的时间等其他响应参数。
6.总结
如果两连杆为某一个角度,而不是180°,也是相同方法,只是在4的设置PID控制器输入,把相对速度和相对加速度换成 相对位移和相对速度;
参考:ADAMS入门详解与实例-李增刚;
因学业有限,如有错误,望诸位批评指正,恳请见谅。

你可能感兴趣的:(ADAMS,二连杆,PID)