首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» FPGA在直流电机位置控制中的应用
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
FPGA在直流电机位置控制中的应用
发短消息
加为好友
yuchengze
当前离线
UID
1062083
帖子
5837
精华
0
积分
2921
阅读权限
70
在线时间
222 小时
注册时间
2016-6-30
最后登录
2018-9-9
金牌会员
UID
1062083
性别
男
1
#
打印
字体大小:
t
T
yuchengze
发表于 2016-8-23 11:56
|
只看该作者
FPGA在直流电机位置控制中的应用
直流电机
,
控制系统
,
工作原理
,
编码器
,
齿轮箱
在直流电机控制系统中,被控制量一般都是电机的转速,控制的目的是保持电机的转速在所需要的定值上。但在实际生产过程中,电机带动生产机械或者其他负载运动的表现不一定都是转速,也可能是使生产机械或其机构产生一定的位置变化,这时需要的控制量就不再是电机的转速,而是控制对象的直线位移,因此需将电机的转速输出转换为电机的位移输出。 1 电机位置控制模块的设计
1.1 直流电机位置控制的方法
在此,使用maxon直流电机,通过与其配套的行星齿轮箱和磁编码器,能够实现从转速到位移的转换。其工作原理如下:电机转动时,编码器开始输出反馈脉冲,反馈脉冲的频率与电机的转速成正比,最高可达20 kHz。电机轴每旋转一圈,编码器就输出16个反馈脉冲,通过计算得出每个脉冲代表电机所带负载产生0.006 14 mm的位移。这样就可以把要控制的位移量用反馈脉冲的个数来表示,作为FPGA中位置控制模块给定值,当电机转动时,FPGA中的计数器会把反馈脉冲计数并保存,位置控制模块不断读取计数器里的计数值,并与位置控制模块中的给定值比较。当它们相等的时候,位置控制模块发出停止信号,从而控制电机刹车。电机停止运动后,再读取计数器中的计数值,与给定值做比较,计算出差值。如果差值在控制精度范围内,则此次控制结束;如果不在范围内,将差值作为下一次控制的给定值,继续控制电机运动,直至达到要求的精度范围为止。
1.2 位置控制模块的组成
位置控制模块由3部分组成:比较模块、驱动模块和延时模块。比较模块的作用是将编码器反馈的脉冲个数与给定的脉冲个数做比较,当它们相等时,给出电机停止信号。驱动模块的作用是根据输入的控制信号控制电机的运动。延时模块的作用是防止丢失反馈脉冲,确保准确读回编码器反馈的脉冲个数。接下来将重点介绍各个模块的具体实现。
1.2.1 比较模块
图1中,data_in[15..O]为给定的反馈脉冲个数;EN为电机工作使能信号;inclk为工作时钟;feedback[15..0]为电机运行时计数器的计数值;stopinter为电机停止时的模块内部传递信号;“O”表示无效,“1”表示有效。比较模块的工作原理如下:比较模块在接收到给定值后,也就是根据要控制的位移量所计算出的反馈脉冲的个数,将其锁存。在工作时钟的作用下,模块会不断地检测EN信号是否有效,如果EN信号有效,模块将开始读取反馈计数值,并与给定值做比较;如果相等,模块认为电机所带负载的运动到达指定位置,这时输出的stopinter信号有效,控制电机刹车;否则 stopinter信号无效,电机继续运动。
如图2所示,假设给定的计数值为7。当使能信号EN有效时,模块开始读端口feedback[15..O]中的值(电机运行时通过磁编码器反馈回来的脉冲个数),与data_in[15..0]中给定的脉冲个数做比较。当它们相等的时候,表示电机所带的负载运动到了指定位置,此时stopinter信号有效,开始控制电机刹车并停止。
1.2.2 驱动模块
图3中,derect[1..O]为电机的控制输入信号;EN为电机工作使能信号,“0”表示无效,“1”表示有效;inclk为工作时钟; stopinter为电机停止信号的模块内部传递信号;control_outA,control_outB为控制电机的输出信号,这两个控制信号直接连接电机的驱动芯片。驱动模块的工作原理如下:
在工作时钟的作用下,驱动模块会不断地检测EN信号和stopinter信号是否有效,如果:EN有效,并且stopinter无效的时候,模块的输出 controi_outA,cont-orl_outB取决于电机控制输入信号derect[1..0]的状态,当derect[1..0]为“01” 时,control_outA输出为“0”;control_outB输出为“1”,表示控制电机反转。当derect[1..0]为“10”时, control_outA输出为“1”;con-trol_outB输出为“O”,表示控制电机正转。驱动控制模块一旦检测到stop信号有效, control_outA和control_outB的输出都为“O”,表示控制电机刹车并停止。在EN和stop信号都无效的时候, control_outA和con-trol_outB的输出都为“1”,表示对电机不做任何控制。
如图4所示,当EN和stopinter信号都为“0”时,模块的输出control_outA,contorl_outB都为“1”,对电机不做任何控制。当EN信号变为“1”时,表示电机开始运动,模块的输出control_outA为“O”,Contorl_outB为“1”,与direction [1..0]中的值“01”相同,此时电机反转。当stopinter信号变为“1”时,模块的输出control_outA为“O”; contorl_outB也为“O”,此时电机刹车并停止。当EN信号为“1”,stopinter信号再次为“0”时,电机再次开始运动,模块的输出 control_outA为“1”;con-torl_outB为“0”,与direction[1..O]中的值“10”相同,此时电机反转。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
数字电路
综合技术交流
嵌入式技术
通信技术
传感器技术
便携式设备
电源与功率管理
ARM
计算机和外设
模拟电路
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议