一种基于FPGA的三坐标测量机电机控制系统
0 引 言
随着工业的发展,三坐标测量机越来越显示出其重要作用。而电机控制系统对三坐标测量机的运行有着非常重要的作用。由于FPGA可以现场可编程,可以实现专用集成电路,能满足片上系统设计(SOC)的要求,使其日益成为系统的关键部件[1]。本文介绍一种基于FPGA的电机控制系统,用于控制三坐标测量机电机运行。
1 控制系统概述
系统主要由PC、控制电路、驱动器[2]和电机组成。系统结构图见图1。其中PC,由VC++实现用户界面,发出的命令由FPGA进行接收和缓存,单片机进行分析处理产生控制命令,控制命令再经过FPGA传入驱动器,控制电机运行。同时电机状态信息反馈回PC机,用于人机交互。系统中FPGA选用的是Altera公司的Cyclone系列[3-4]。
2 系统功能实现
2.1 编码器进行速度、位移量测量的实现方法
编码器为传感器类的一种,主要用来侦测机械运动的速度、位置、角度、距离或计数,在电机控制中用于换相、速度及位置的检出,作用十分重要。光电编码器具有分辨率高,响应速度快,体积小,重量轻,耐恶劣环境等特点,故常被用作高精度位置检测传感器。它的精度或分辨率主要决定于每转输出的脉冲数(对增量式编码器而言)。根据控制需要,还可以利用倍频技术来提高位置检测精度[5]。
本系统使用增量式编码器即增量编码盘。增量编码盘输出信号A和B具有90°的相位差。A和B的相位关系反映了被测对象的旋转方向,若A超前于B表明编码器是顺时针旋转的;反之,编码器为逆时针旋转。当增量编码盘的细分数为N时,增量编码盘的每一个脉冲代表的角位移为360°/N,A、B信号的频率相同,频率大小反映当前电机速度,由这两个信号就可得到电机转向、转角和转速[6]。在A和B的上升沿和下降沿计数器均做相应变化,得到count脉冲,在FPGA中计数,即可得到编码器输出的脉冲数,经过计算就可以得到电机一定时间内实际走过的路程或者单位时间内的速度。本系统主要在FPGA中编程实现对编码器的硬件解码。主要程序如下:
其中,cnt为十六位寄存器,shift_a =2'b01和shift-b=2'b01分别表示A和B出现上升沿,同理,如果是等于2'b10则表示下降沿。电机编码器硬件解码程序仿真模拟后效果如图2所示。图2中number为FPGA计算所得的编码器输出脉冲数。
2.2 脉冲控制实现运动过程
利用脉冲控制电机速度即利用脉冲频率决定电机速度。这种方法能够得到较高的运行精度,适用于三坐标机电机控制系统。首先,上位机给定运行速度,命令传到单片机,单片机进行计算,获得单位脉冲周期内需要时钟数,再将数据传入FPGA,由其相应模块处理。FPGA中相应的处理模块实现的基本原理是:根据单片机给出的时钟数进行判定。程序开始运行,开始计数周期,时钟数目不断累加,当累加数目到达单片机给定值的时候完成一个计数周期。然后计数器清零,重新开始计数,输出信号状态翻转。程序如下所示:
相关文章
- 2022-09-23人机界面在铁路辅助机试验台中的应用
- 2022-07-28基于力控组态软件的电加热炉温度监控系统
- 2024-07-03基于数码相机的图象数字变焦(视图插补)算法
- 2024-04-10蒸汽流量计算数学模型建立方法研究
- 2024-06-19基于模糊技术的中央空调控制器设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。