电子齿轮比在FPGA中的实现

2013-07-25 17:40:20 来源:西安微电机研究所 点击:3364

摘要:  在伺服系统中一般采用光电码盘的输出信号作为位置反馈信号,当电机转过一圈时,根据光电码盘产生的脉冲数来对电机进行精确的定位。在实际应用中,电机与其它机械装置的机械结构固定后,传动比也就固定了,这样电机每转一圈产生的机械轴位移量是一定的。而位置控制通常由上位控制器产生一定频率和个数的脉冲来决定电机的转速和转过的角度,当指令脉冲当量( 脉冲当量: 单个脉冲对应的运动执行部件位移量) 和位置反馈脉冲当量不一致时,就必须采用电子齿轮来进行调节。

0 引言

在伺服系统中一般采用光电码盘的输出信号作为位置反馈信号,当电机转过一圈时,根据光电码盘产生的脉冲数来对电机进行精确的定位。在实际应用中,电机与其它机械装置的机械结构固定后,传动比也就固定了,这样电机每转一圈产生的机械轴位移量是一定的。而位置控制通常由上位控制器产生一定频率和个数的脉冲来决定电机的转速和转过的角度,当指令脉冲当量( 脉冲当量: 单个脉冲对应的运动执行部件位移量) 和位置反馈脉冲当量不一致时,就必须采用电子齿轮来进行调节。

1 电子齿轮的原理

所谓电子齿轮,简单来说就是电机编码器反馈脉冲与指令脉冲的一个比值,它对伺服接受到上位机的脉冲频率进行放大或者缩小,其中一个参数为

分子,一个为分母,如果分子大于分母就是放大,分子小于分母就是缩小。在交流伺服系统中,利用电子齿轮功能可以传递同步运动信息、实现坐标的联动、运动形式之间的变换、简化控制、增加传动系统的柔性、减少传动元件数量和传动链长度,还可以实现小数传动比等等,这样就提高了传动精度。

伺服系统的精度是由编码器的线数决定的,但在实际应用中,由于不同的机械结构的参数不同,机械轴方向移动最小单位量所需的电机转动量是不同的,使用了电子齿轮功能,就可以任意决定一个输入脉冲所引起的电机转动量。例如: 车床用10mm 丝杠,那么电机转一圈机械移动10 mm,每移动0. 001 mm 就需要电机旋转1 /10000 圈( 0. 001 /10) 而如果连接5mm 丝杠( 即电机转一圈机械移动5 mm) ,每0. 001 的移动量就需要1 /5000 转,这时用电子齿轮设置一定的参数,就可以保持控制脉冲当量不改变。图1 给出了具有电子齿轮功能的伺服系统结构,发出指令脉冲的上位控制装置无须关注机械减速比和编码器脉冲数就可以进行控制。

电子齿轮功能的伺服系统结构

在图1 中,机械传动机构的螺距为W,指令脉冲当量为ΔL,光电脉冲编码器每转脉冲数为P,一般电机轴是和传动丝杠直接相连的,这样就可以确定位置反馈脉冲当量ΔM,考虑到在采用光电编码器作为位置反馈元件时,一般都对其输出脉冲进行4倍频处理,因此ΔM 和W 的倍率关系是4P,即

ΔM = W/( 4P) ( 1)

另一方面,指令脉冲当量ΔL 与反馈脉冲当量ΔM 未必相等,也需要通过某种倍率系数来建立二者的对应关系。具体的计算公式为

ΔL = ΔM × A /B ( 2)

式( 2) 中的A /B 就是指令脉冲当量和反馈脉冲当量之间的倍率系数,称为电子齿轮比,其中A 和B 都必须为整数,可以单独设置,范围一般在1 ~65535 之间,这样就可以实现任意的电子齿轮比。就目前的全数字伺服系统而言,电子齿轮比应满足如下条件:

0.01≤A/B≤100 (3)

2 位置指令脉冲处理

在交流伺服应用系统中,位置指令通常以脉冲的形式给出。存在以下三种形式的指令脉冲:( 1) “AB正交脉冲”形式; ( 2) “CW + CCW”形式;( 3) “脉冲+ 方向”形式,如图2 所示,这3 种不同形式的指令脉冲都包含了两方面的信息,一是电机运行的距离,二是电机运行的方向。由数字电路的原理可知,只有“脉冲+ 方向”形式的指令脉冲可以直接由计数器计数。因此,在主控制芯片DSP 外部,必须对这三种指令进行逻辑处理,将其全部转换成“脉冲+ 方向”形式,这部分工作是由FPGA 来实现的。简化的上位机接口结构框图如图3 所示。

简化的指令脉冲处理电路框图

图3 简化的指令脉冲处理电路框图

3 整数分频倍频原理

在前面介绍的电子齿轮原理中我们知道,电子齿轮比是用来匹配位置指令脉冲数与机械最小移动量的,通过设置电子齿轮比的分子和分母,来实现不同的脉冲当量。电子齿轮比表达式中的A 代表倍频系数,B 代表分频系数,这样输入信号经过B 分频后再进行A 倍频就可以得到和输入信号成对应关系的输出信号。把A 和B 设置为不同的值就可以得到任意的电子齿轮比,提高了设计的灵活性。另外,由于A 和B 都是整数,电子齿轮比的实现相对直接小数分频或小数倍频要简单许多。下面简要介绍常用的整数分频倍频方法:

3. 1 偶数分频

在设计偶数分频器时,常用的方法是: 通过待分频脉冲触发的模为N/2 - 1( 其中N 为分频系数) 的计数器计数。当计数器从0 计数到N/2 - 1 时,输出脉冲信号进行翻转,同时给计数器一个置位信号,使得计数器在下一个脉冲重新开始计数,采用这种方法循环操作,就可得到所需的N 分频器。这种方法可以实现等占空比的任意偶数分频。

3. 2 奇数分频

非等占空比的奇数分频实现和偶数分频类似,相对比较简单。设计一个模为N - 1 的计数器,当加计数到( N - 1) /2 时,输出脉冲反转,继续计数到N- 1 时,输出脉冲再次翻转,计数器置位。这样不断循环就可以得到一个占空比略小于50% 的脉冲。由于在伺服系统中常用的信号一般是等占空比的,下面仅简要介绍等占空比奇数分频的实现方法。

首先,按照非等占空比的奇数分频实现方法,通过分频时钟的上升沿触发进行计数,得到一组分频脉冲。与此同时,按同样的方法进行时钟的下降沿触发进行计数,得到另一组分频脉冲。对采用上述方法得到的两个非等占空比的脉冲进行逻辑或运算,就能得到一个等占空比的奇数分频脉冲。

3. 3 任意整数倍频

任意整数倍频的核心是除法器,除法器的FPGA实现可见文献[2]。整数倍频的大致步骤如下:

( 1) 首先要有一个频率比待倍频信号s 高得多的时钟clk,在s 的高电平期间对clk 进行计数,得到clk 的周期个数cnt;

( 2) 利用除法器得到cnt0 = cnt /倍频系数;

( 3) 设置一个信号b,令它的初始电平为高,然后再用clk 计数到cnt0,b 电平翻转,再在低电平重新对clk 计数到cnt0,电平再翻转,如此反复即可得到倍频以后的信号。

4 数字实现及验证仿真

现通过一个电子齿轮比为4 /3 的设计过程来给出电子齿轮比用VHDL 语言实现的一般设计方法。前面提到,上位机指令除了可能是可以直接被接收的“方向+ 脉冲”形式之外,还可能是两路正交脉冲形式或者“CW + CCW”形式。在用VHDL 进行编程时,是通过设置Mode 信号来选择输入信号脉冲的形式并鉴别电机转向的,如图3 所示。三种脉冲形式转换的具体实现方法如下:

( 1) Mode = 0 选择正交脉冲输入编码器发出的两路脉冲A 和B 是相位差为90°的正交方波脉冲,其中A、B 两相信号的脉冲数标志电机轴所转过的角度,A、B 之间的相位关系标志电机的转向,即当A 相超前B 相90o 时,标志电机正转( 图4 - a) ,当B 相超前A 相90°时,标志电机反转( 图4 - b ) 。

电机反转

电机反转

图4 正交脉冲信号

从编码器反馈输出的A、B 两相脉冲在一个周期都有4 种状态,即00、01、11、10,这样在每次状态变化时都对电机的反馈脉冲进行计数,在一个周期内就有4 次计数。在电机正转时,A、B 两相脉冲的状态变化是: 00 - 10 - 11 - 01; 电机反转时的状态变化则是: 00 - 01 - 11 - 10。根据A、B 两相脉冲状态变化的关系就可以得出电机的转向。

( 2) Mode = 1 选择CW + CCW 输入

由于CW、CCW 信号不可能同时为高,当CCW有脉冲,即CCW 变为高时,Dir 变高,当CCW 脉冲结束变为低时,Dir 保持不变,直到CW 有脉冲时才变为低。因此,Dir 与CCW 的电平一致,该逻辑用一个或非门组成的RS 触发器实现,CCW 接S 端,CW 接R 端即可。

( 3) Mode = 2 选择脉冲+ 方向输入

这种方式是可以直接被接收的,所以不必进行转换,直接输出。经过上面的处理,指令脉冲经处理后得到了统一的形式( 脉冲+ 方向) 。在应用中,电子齿轮比分子和分母的具体数值是由上位机传送给FPGA 的。具体到本例,在接收到上位机给出的数值以后,应该对得到的脉冲信号先进行3 分频,然后进行4 倍频。在Xilinx 开发环境ISE 9. 1i 下进行VHDL 编程,在程序中设置电子齿轮比的分子A 为4,分母B 为3,经过编译、综合成功以后,就可以进行仿真了,利用Modelsim 6. 2 仿真得到如图5 所示的波形。

Modelsim 仿真结果

图5 Modelsim 仿真结果

从图5 中可以看出,位置指令脉冲经过处理以后,三种形式的输入信号最终都转化为“脉冲+ 方向”的形式,其中代表方向的信号低电平表示电机正转,高电平表示电机反转。另外,在Mode = 0 时间内,输出的脉冲信号频率是A 路脉冲信号频率的4 /3 倍; 在Mode = 1 时间内,输出脉冲信号频率是CW信号频率的4 /3 倍; 在Mode = 2 时间内,输出脉冲信号的频率是原脉冲信号频率的4 /3 倍。3 个时间段内的电机转向也是和相应的输入脉冲信号相对应的,由此可以验证电子齿轮数字实现的正确性。需要注意的是,在设计中Mode 信号按照一定的周期变化,这是为了方便观察和截取仿真结果,在实际应用中可根据已知输入指令脉冲的形式来设置Mode 信号。

5 结语

可以看出,利用FPGA 设计的电子齿轮信号处理模块,可以准确地将上位机给出的指令信号进行相应转换并按照设定的电子齿轮比进行分频或者倍频,应用非常灵活,设计过程简洁,具有良好的通用性,易于实现,具有一定的实用价值。

本文为哔哥哔特资讯原创文章,未经允许和授权,不得转载,否则将严格追究法律责任;
Big-Bit 商务网

请使用微信扫码登陆

x
凌鸥学园天地 广告