1、三自由度机械手臂的 Simulink 建模 一、 机械臂结构的简要介绍。 该机构由一个底座、三个旋转副、两个连杆和一个机械爪组成,实现在平面内运动到指定位置的动作。各部分尺寸如图所示(单位:m)。 然后用 Matlab 的 SimMechanics模块进行建模,具体过程后面再介绍。完成图如图所示。 二、 建模过程的详细步骤。 1、 先新建一个 Simlink 文件,载入实体模块,双击打开菜单,可以对其进行形状编辑,如图所示。 2、 接下来进行坐标变换。整个坐标系,向上为 Y 轴,向右为 X 轴,垂直纸面向外为 Z 轴。为了把底座上面的支架放到正确的位置,我载入一个 坐标变换模块,如图。双击它可
2、以打开编辑菜单。由结构可得,底座质心向 +Y方向移动 0.15就是支架的质心。所以在菜单编辑中设置为坐标向 +Y移动 0.15就可以了,如图。接下来就可以载入实体模块,并进行编辑。 3、 对旋转副进行编辑,它的质心相对支架质心的坐标为 +Y0.1,所以 载入一个坐标变换,然后再载入一个实体,编辑参数使其变为需要的圆柱体,如右图。 4、 然后再载入旋转副,由于旋转副的坐标和圆柱体的旋转副重合,所以不需要在进行坐标变换。旋转副如右图所示,其中 t 用于旋转力矩的输入, q 用于旋转角度的输出。 5、 其他实体的建模,方法和前面介绍的一样。然后就是建立一个世界坐标如图,将其连接到底座上,表示底座的坐
3、标为绝对坐标。再载入一个重力加速度器,如图,双击可进 行加速度大小和方向的编辑。由于 -Y 方向为向下的方向,所以 Y 设置为 -9.8。最后再载入一个求解器,如右图。 建模就全部完 成了。 三、 控制结构的介绍。 我用的 PID 控制器进行控制,详细结构如图。从旋转副的 q 输出开始,经过PS-Simulink 数据转换器,再经过比较器,与预期的角度进行比较后输出到 PID控制器,再输出转矩经过转换器后输入到 t 中。图中q 和 q3 比较后,输出转矩,使 q 最后等于 q3。这就是控制结构的介绍。由于有三个旋转副,所以用了三组这种结构分别对三个旋转副进行控制。 由于被抓物体的坐标是确定的,
4、所以 q1,q2,q3的大小是根据被抓物体的坐标( x,y)来确定的。如右图所示。为了用 x, y 表示 q1,q2,q3,列了方程进行求解,方程如下: syms q1 q2 x1 y1 q1,q2=solve(0.5*cos(q1)+0.5*cos(q1+q2)=x1, 0.5*sin(q1)+0.5*sin(q1+q2)=y1,q1,q2) 函数模块里面的代码如下: function q1,q2,q3 = fcn(q,x,y) x1=x-0.3*cos(q); y1=y-0.3*sin(q)-0.25; q1=2*atan(x12*(-(x12 + y12)*(x12 + y12 - 1)(1/2)/(x12 + y12) - y1 + (y12*(-(x12 + y12)*(x12 + y12 - 1)(1/2)/(x12 + y12)/(x12 + x1 + y12); q2= 2*atan(-(x12 + y12)*(x12 + y12 - 1)(1/2)/(x12 + y12); q3=q-q1-q2; end