新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于CAN总线的分布式机器人控制系统设计

基于CAN总线的分布式机器人控制系统设计

作者:时间:2009-04-07来源:网络收藏

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

2.1 主处理器芯片

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

2.2 接口电路

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


伺服电机相关文章:伺服电机工作原理


pid控制器相关文章:pid控制器原理


双绞线传输器相关文章:双绞线传输器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭