首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于CAN总线的分布式机器人控制系统设计
来源:本站整理  作者:佚名  2009-04-07 15:20:39



图3控制器硬件电路原理简图

2.1 主处理器芯片

  本设计核心控制芯片采用Motorola DSP56F807,该芯片混合了DSP 的高速运算能力与MCU 的控制特性于一体,提供了许多专用于电动机控制的外设,包括两个脉宽调制模块(PWMA、PWMB)、2个相位检测器模块(quadrature decoder)、12位精度的模数转换模块(ADC)、4个定时器模块、通讯外设模块(SCI、SPI、CAN)等,因此非常适合于对实现机器人各关节运动的直流无刷电机进行数字控制[4]。

2.2 CAN接口电路

  DSP56F807芯片内集成了CAN控制器,要完成数据帧的收发还需外加CAN驱动器芯片,本设计采用Philips公司的PCA82C250为CAN驱动器。为了增强抗外部干扰,在DSP56F807的MSCAN_TX和MSCAN_RX引脚与CAN驱动器之间加两个高速光电耦合器6N137。

2.3 电机驱动电路

  电机驱动采用Motorola公司的MPM3003,它内部由上桥臂的3个P-沟道功率型MOSFET 和下桥臂的3个N-沟道功率型MOSFET组成三相桥式电路,是理想的伺服电机驱动集成电路芯片[5]。因PWM输出电压不能直接推动MPM3003,在PWM输出口和MPM3003之间加一个TTL到CMOS转换芯片MC14504B。

2.4 电源电路

  控制器上同时需要5.0V 和3.3V 两种电源。外部采用的是直流24V电源,通过MAX724将24V 稳压到5.0V,再通过MAX604将5.0V稳压到3.3V。为了减少电磁干扰,使用磁珠隔离3.3V 的数字电源和模拟电源。

  因篇幅有限,其它的电路模块不再一一介绍。

3 控制器软件设计

  控制器软件设计是在Codewarrior6.0集成开发环境下进行的,采用模块化设计,可分为初始化模块、主循环模块和中断子程序模块,整个控制功能由各中断子程序实现,如图4所示。初始化模块的作用是初始化DSP 及控制参数,主循环模块是一个死循环,主要是查询是否有中断产生,如果有中断则转而去执行相应的中断服务子程序。数字PID控制子程序是实现控制功能的主体,完成对关节的位置、速度PID控制,通过定时器中断实现。

图4控制器软件结构简图

  对于数字PID控制子程序中的PID算法,采用了一种改进的变速积分PID算法,有效地克服了常规PID算法中出现积分饱和时,造成超调量增加,使调节品质变坏的缺点。变速积分法的基本思想是设法改变积分项的累加速度,使其与偏差大小相对应,偏差大时,减弱积分作用,反之则加强。

  常规PID算法数字离散化为:

式中,KP,KI,KD分别为调节器的比例、积分和微分系数;E(k),E(k-1)分别为第k次和k-1次的期望偏差值;U(k)为第k次的调节器输出。

  改进后的变速积分PID算法为:

 f[E(k)]是E(k)的函数,当|E(k)|≤B时,进行常规的PID控制;当|E(k)|>(A+B)后,不再进行积分项的累加;而当B<|E(k)|>(A+B)时,f[E(k)]随E(k)的减小而增大,累加速度加快。其中,A,B为分离区间。

4 结论

  本文设计的机器人分布式控制系统,采用CAN总线作为通信方式,和过去机器人控制中常用的RS485总线相比具有通讯稳定可靠、实时性高等优点。在下位关节控制器中选用了Motorola DSP56F807作为控制芯片,既能方便地利用丰富的外围模块实现控制功能,又能以较快的运算速度实现复杂的控制算法,克服了过去利用MCU作为控制芯片时,难以实现复杂的控制算法的缺点。在控制器软件中采用了改进的变速积分PID算法,对关节位置、速度进行数字PID控制。该控制系统即插即用,功能扩展和故障处理方便;连线简单,过去对6DOF的机械手进行控制,需118根线缆(包括电机线、传感器线和其它开关量控制线),现在只需一根双绞线,外观也很美观;另外,各关节控制器直接分布在控制现场,使模拟信号传输距离明显缩短,有效地改善了抗干扰能力。


上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:198,289.10000 毫秒