关于实现双电机速度同步的解决方案

伺服与控制

251人已加入

描述

将上图图中左边的电机和右边的电机进行速度同步,右边的电机同步左边的电机速度。这里需要知道Copley的驱动中的速度环的输入输出情况。如下图所示,速度环限制器接收速度命令信号,经限制后,产生一限制速度命令信号给输入滤波器。输入滤波器将信号传递到求和节点处,求和节点将速度命令信号与反馈的实际速度值相减得到一差值信号。(当在负载端有一编码器的情况下,速度反馈值通常来源于电机端的编码器。)差值信号经过比例增益和积分增益的处理最终产生出电流命令信号。可设置的滤波器可作用于速度环的输入和输出端。

滤波器

图1

滤波器

图2 电机驱动速度环

在速度模式下,速度环的命令来源于以下某一种

滤波器

图3 速度环命令来源

为了达到目的,要设定2#电机驱动器工作在速度模式下,即 The velocity loop is driven by the paogrammed velocity value, 此时只有设置对象字典0x2300为11。将1#电机的速度发送给2#电机,其实就是将1#的programmed velocity value发送给2#电机,2#电机将接受到数当做它的programmed velocity value,就实现了二者的同步。

滤波器

图4

这里我将1#电机设置成位置模式,然后将其中的速度环的Programmed velocity command 发送给2#电机,那么问题来了,我怎么通过配置将1#电机的值发送给2#,让2#接收呢,我不可能在电机驱动里面去编写一套接收函数吧。这里先留个疑问,接下来就按照CANopen的配置过程将两个电机的PDO进行映射。

PDO通信参数,定义了该设备所使用的COB-ID、传输类型、定时周期等。RPDO通讯参数位于对象字典索引的1400h to 15FFh,TPDO通讯参数位于对象字典索引的1800h to 19FFh。每条索引代表一个PDO的通信参数集,其中的子索引分别指向具体的各种参数。如下表所示。

表1

滤波器

PDO映射参数是初学者学习CANopen时的一个难点,它包含了一个对象字典中的对象列表,这些对象映射到相应的PDO,其中包括数据的长度(单位,位),对于生产者和消费者都必须要知道这个映射参数,才能够正确的解释PDO内容。就是将通信参数、应用数据和具体CAN报文中数据联系起来。

综上,也就是在通信参数中定义了双方通信的方式,映射参数中定义了通信的内容,也就是在规定好的通信参数的情况下发送或者接受映射参数中的规定的数据字典对应的值。

其中不得不提到的是COB-ID(通信对象标识符),即Communication Object ID,也就是发送或者接收对应帧的ID,再说的形象一点,我发送一帧带有特殊ID的消息,如果你想接收到这帧数,你接收的ID号必须和我的一样。在一些说明书里面说明了诸如下列的说明:

表2 COB-组成说明

滤波器

表3 对象COB-ID列表

滤波器

举例:4 号从站TPDO2 的COB-ID 为280h + 4 = 284h。但是有时候你可能有疑问,TPDO5的COB-ID为多少呢?上述都是人为规定的一个规律,为了方便大家写的程序好读懂,实际调试过程中大家经常的人为规定双方的COB-ID号是多少,不一定说要遵循上面表中的规律。这里,我们将对应的COB-ID设置为222,用的是RPDO6和TPDO4,即1#电机发送的数据从TPDO4中发出,2#电机在RPDO6中接收数据。

图5

设置好消息同步,来一个同步信号(注意二者之中只要一个产生同步信号就行了)1#电机就发送一个命令给2#电机。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分