基于 FPGA 的无刷直流电机控制系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA的无刷直流电机控制系统设计
余景华,杨冠鲁,郭亨群
(华侨大学信息学院福建泉州)
摘要该文叙述了一种基于FPGA+NIOS实现的无刷直流电机实时控制系统方案。
利用FPGA设计PWM模块和控制模块进行电机速度控制,使系统外围电路简单;通过测量电机的霍尔传感器输出信号的脉宽计算出电机的速度;采用FPGA内嵌的软核处理器NIOS II进行增量PID算法控制,使系统的实时性增强。
实验表明该系统硬件和软件设计合理,有很好的可靠性和实时性。
关键词 FPGA;NIOS II;无刷直流电机;PWM;PID
中图分类号T 文献标识码 A
A Brushless DC Motor Control System Design Based on FPGA+NIOS
YU Jjinghua YANG Guanlu GUO Hengqun
(College of information, Huaqiao university, Fujian, Quanzhou, 362021, China ) Abstract this paper describes a brushless DC motor real-time control system based on FPGA+NIOS. The DC motor is controlled by PWM model and control model which simple the circuit; Calculating the rate of motor by determining the impulse width of n. hall sensor signal; Adopting the soft-core processor NIOS II which embedded in FPGA process increment PID arithmetic control, improve the system real time performance. Experimental results show that the hardware and software are reasonabl,owning very good reliability and real time performance.
Key words FPGA;NIOS II;brushless DC motor;PWM;PID
0 引言
无刷直流电机在当今控制系统中被广泛应用,特别在机器人领域,具有无电刷及换相火花,体积小,低噪声等诸多优点。
但是目前对无刷直流电机的控制主要由单片机和DSP实现,虽然单片机实现在价格上有优势,但是外围电路复杂,对系统的稳定性和可靠性有较大的影响,而且在算法实现上速度较慢,无法满足高速实时控制系统要求。
DSP虽然在算法实现上速度快,但是外围电路也较复杂,而且价格较贵。
因此,FPGA+NIOS实现无刷直流电机控制系统可以通过FPGA实现外围数字电路的设计实现对电机的PWM控制,通过NIOS 实现无刷直流电机的PID算法,外围电路简单,实时控制速度快,系统稳定可靠,而且价格合理。
1 系统原理
基金项目:福建省自然科学基金资助项目(2006J0168)颁发部门:福建省科技厅自然科学基金委员会
项目名称:缝焊电源软开关PWM逆变器及控制策略
系统框图如上图所示:整个系统分为3部分:
(1):虚线框1为AL TERA 公司的FPGA 芯片(本人选用1C12Q240C8)主要实现虚线框2 和虚线框3两大功能:
虚线框2:通过FPGA 内嵌的32位NIOS II 软核处理器实现PID 算法。
虚线框3:通过FPGA 的IP 核设计PWM 脉冲调制电路。
(2):功率放大电路:
功率放大电路是FPGA 芯片的外围电路,结构简单,只有4个高功率NPN 管构成,为了读者方便理解,这里将功率放大驱动电路和FPGA 内部的驱动电路控制模块一起画出,具体电路图如图所示:
FPGA 内部的驱动电路控制模块主要实现电机的正转/反转和启动/停止功能。
正转/反转功能实现:如图所示,正转/反转控制端口名为sel_input, 通过两个2选1的数据选择器来控制功率驱动电路的2个输入端,当sel_input=1时,电机正转;sel_input=0,电机反转。
启动/停止功能:如图所示,启动/停止功能的控制端口名为start/stop_input, 电机的启动/停止功能只要将PWM 输入端口通过一个‘与’门控制其导通/截止,当start/stop_input=1时,PWM 输入有效,电机启动;当start/stop_input=0时,PWM 输入无效,电机停止。
(3): 控制对象:无刷直流电机。
由系统框图,我们可以知道,基于增量PID 控制的FPGA+NIOS 的无刷直流电机的控制外围电路简单,系统的主要功能全部有FPGA 内部电路实现,即虚线框1功能实现,下面将详细介绍FPGA 内部功能实现。
2 FPGA 内嵌NIOS II 软核处理器实现PID 算法
数字PID 控制算法输出控制量表达式为:
1
10(1)(1)()[(1)(2)]n p D j u k K e k K e j K e k e k ==-=-++---å (2—1)
式中k--采样序列(k=0,1,2......);Kp--比例系数;Ki--积分系数; Kd--微分系数;
U(k)--第k 次采样时刻的输出控制量;
U(k-1)--第k-1次采样时刻的输出控制量;
error(k)--第k 次采样时刻输入的偏差值;
error(k-1)--第(k-1)次采样时刻输入的偏差值;
上式的控制量U(k-1)的表达式,只是模拟PID 控制量表达式的离散化,在工程上仍然较复杂,所以工程上是用以下的经过简化的增量式PID 控制算法输出控制量表达式:
()(1)[()(1)]()[()2(1)(2)]p I D u k u k K e k e k K e k K e k e k e k =-+--++--+- (2—2)
从上式(2—2)中可以看出增量式PID 控制算法中第k 次的控制量只与第k-1次的控制量和第k 次的控制增量有关,而第k 次的控制增量只与第k, k-1,k-2次输入偏差量有关。
因此,第k 次控制量的求解只与第k 次的输入偏差量有关,因为k-1和k-2次的控制量和偏差量已知。
增量式PID 算法由于逻辑简单,计算量小,在软件上比较容易实现,因此,在工程上应用广泛。
3 FPGA 速度测量
无刷直流电机的转速可以通过内嵌的霍尔传感器测量得到,在电机的转动过程中,每一相霍尔传感器的输出周期波形如下图所示:
如上图所示,电机每转一圈产生2个周期的占空比为50%的方波,那么我们只要测量出一个方波的高电平时间t, 便可由公式V =60/4×t (rad/min )算出。
如果只用1相霍尔传感器测速的话,当电机速度较慢时,周期比较长,可能会影响到电机实时控制。
可以采用如上图所示增加霍尔传感器的方法解决,传感器1和传感器2以角度a 固定,将‘与’波形作为输出波形,输出波形脉冲宽度与原来波形脉冲宽度的比N=2a/p ,这样就使得电机转速的测量比原来快了N 倍,可以取a 为能被p 整除的角度,有利于计算。
不过这要求霍尔传感器在角度固定时要相当准确,否则会造成误差。
由于实验条件所限制,本人使用的电机只有一相霍尔传感器,虽然在电机转度较低时实时控制比较慢,但是并不影响整个系统设计。
4 PWM 脉宽调制电路设计
PWM (脉宽调制)技术是通过控制半导体开关器件的通断时间比,即通过调节脉冲宽度或周期来实现控制电压的一种技术。
由于它可以有效地进行低次谐波抑制,而且动态响应性好,因而在无刷直流电机中得到广泛应用,其技术也日臻完善。
目前,有很多种 PWM 控制方式,其中,三角波比较 PWM 方式是最基本的控制方式。
如下图所示,参考电平为用户自己通过键盘设定值,锯齿波固定频率和幅度,2种信号最后通过数字比较器输出,当锯齿波>参考电平,比较器输出低电平,当锯齿波<参考电平,比较器输出高电平。
FPGA 实现无刷直流电机PWM 控制电路,顶层电路图设计如下:
设计分为3个部分,count锯齿波信号发生模块,其中clk和clr分别为系统时钟和复位信号;button_detect参考电平设定模块,输入信号端口count_up为数字参考电平+1,输入信号端口count_down为数字参考电平-1,输入信号端口enter为将设定好的参考电平从输出端口fout[9:0]输出;compare_10为10位比较器。
为了提高PWM控制精度,锯齿波和参考电平输出信号都采用10位线宽信号,也可以根据要求更改其线宽。
该模块功能仿真如下:
5结束语
本文给出采用FPGA硬件,应用Verilog语言的基于增量PID算法的FPGA+NIOS的无刷直流电机控制系统设计方案。
计算机仿真和对无刷直流电机控制的结果表明,该电路能有效地对无刷直流电机进行闭环控制,控制精度由FPGA中的PWM脉宽调制电路决定。
该系统采用10位线宽参考电平,锯齿波信号和比较器,控制精度较高。
用FPGA的I/O口产生PWM 控制信号,电路中省去了D/A转换器,具有较高的实时性和可靠性。
6创新点
本设计将数字PID算法用NIOS实现,控制电机的复杂外围电路用FPGA实现,电路简单,真正实现电机的SOPC控制。
而且系统实时性高,可靠性强。
目前用FPGA+NIOS实现电机控制的资料较少。
参考文献
[1] 张明. Verilog HDL实用教程[M]. 电子科技大学出版社。
[2] (美)Uwe Mwyer-Baese. 数字信号处理的FPGA实现[M]. 清华大学出版社。
[3] 徐光辉,程东旭,黄如. 基于FPGA的嵌入式开发与应用[M]. 电子工业出版社。
[4] 潘明,许勇. 基于FPGA的直流电机脉宽调制控制[J]. 广西科学院学报, 2005,04-007:219-221。
[5] 陈仕高,姜久春,牛利勇. DSP在直流无刷电机中的应用[J]. 微计算机信息, 2006,02-054:143-145。
作者简介:余景华(1983-),男(汉族),福建人,华侨大学06级研究生,微电子专业,主要研究基于FPGA的工业控制。
Writer Biography: YU Jinghua (1983-), Mankind(the Han nationality), Fu Jian Province, Hua Qiao Univercity 06 Grade Master, Micro-electronics Profession, Research Area Is The Industrial Control Base On FPGA
导师简介:郭亨群(1944-),男(汉族),福建人,华侨大学信息学院教授,物理电子学专业,主要从事光电子研究。
Teacher Biography:GUO Hengqun(1944-), Mankind(the Han nationality), Fu Jian Province, College of information In Huaqiao university, physical electronics, Research Area Is Photoelectron.
导师简介: 杨冠鲁(1960-),男(汉族),山东人,,华侨大学信息学院教授,电工理论与新技术,主要从事智能控制与信息处理的研究。
Teacher Biography:YANG Guanlu(1960-), Mankind(the Han nationality), Shan Dong Province, College of information In Huaqiao university, electrotechnician and new technic,
Research Area Is Brainpower Control.
作者通讯地址:福建省泉州市华侨大学北区30#215宿舍
邮编:362021 E-MAIL:yujinghua2008@或yjh@。