资源描述
目录
1. 综述 2
2. 研究背景 3
3. 电机速度控制系统的设计及模拟仿真 3
3.1系统工作原理 4
3.2 PWM脉宽调制信号产生电路描述 5
3.2.1可控的加减计数器CNTA 6
3.2.2 5位二进制计数器CNTB 9
3.2.3 数字比较器LPM-COMPARE 11
3.2.4 PWM脉宽调制信号产生电路 12
4.运行控制逻辑电路描述 14
4.1 2选1多路选择器MUX21A 14
4.2 工作/停止控制和正/反转方向控制电路 17
5. 直流电机PWM调速系统仿真 18
5.1建立工程项目PWM 18
5.2 正/反转控制仿真 19
5.3启/停控制仿真 20
5.4加/减速仿真 21
5.5仿真结果分析 22
6. 设计总结 23
简易直流电机PWM综合控制系统设计
1.综述
直流电动机具有优良的调速特性,调速平滑、方便,调速范围广;过载能力大,能承受频繁的冲击负载,可实现频繁的快速起动、制动和反转;能满足生产过程自动化系统各种不同的特殊运行要求。电动机调速系统采用微机实现数字化控制,是电气传动发展的主要方向之一。采用微机控制后,整个调速系统实现全数字化,结构简单,可靠性高,操作维护方便,电动机稳态运转时转速精度可达到较高水平,静动态各项指标均能较好地满足工业生产中高性能电气传动的要求。由于CPLD/FPGA性能优越,具有较佳的性能价格比,所以在工业过程及设备控制中得到日益广泛的应用。 PWM 调速系统与可控整流式调速系统相比有下列优点:由于PWM 调速系统的
开关频率较高,仅靠电枢电感的滤波作用就可获得平稳的直流电流,低速特性好;同样,由于开关频率高,快速响应特性好,动态抗干扰能力强,可以获得很宽的频带;开关器件只工作在开关状态,主电路损耗小,装置效率高。 本文所介绍的系统是一个基于VHDL 的PWM 调速系统。由于PLD 具有连续连接结构,易于预测延时,使电路仿真会更加准确,且编程方便,速度快,集成度高,价格低,从而使系统研制周期大大缩短,产品的性能价格比提高。CPLD/FPGA芯片采用流行的VHDL 语言编程,并在Quartus II设计平台上实现了全部编程设计。
2.研究背景
电机作为机电能的转换装置,其应用范围己遍及国民经济的各个领域。近些年来,随着现代电力电子技术、控制技术和计算机技术的发展,电机的控制技术也得到了进一步的发展,电机应用已由过去简单的起停控制、提供动力为目的应用,上升到对其速度、位置、转矩等进行精确的控制,使被驱动的机械运动符合预想的要求。采用功率器件进行控制,将预定的控制方案、规划指令转变成期望的机械运动,这种新型控制技术己经不是传统的“ 电机控制”、“电气传动” 而是“运动控制”。运动控制使被控机械运动实现精确的位置控制、速度控制、加速度控制、转矩或力的控制,以及这些被控机械量的综合控制。
3.电机速度控制系统的设计及模拟仿真
如图1所示,基于FPGA的直流电机PWM控制电路主要由四部分组成:控制命令输入模块、控制命令处理模块、控制命令输出模块、电源模块。键盘电路、时钟电路是系统的控制命令输入模块,向FPGA芯片发送命令,FPGA芯片是系统控制命令的处理模块,负责接收、处理输入命令并向控制命令输出模块发出PWM信号,是系统的控制核心。控制命令输出模块由H型桥式直流电机驱动电路组成,它负责接收由FPGA芯片发出的PWM信号,从而控制直流电机的正反转、加速以及在线调速。电源模块负责给整个电路供电,保证电路能够正常的运行。
图1 FPGA直流电机PWM 控制电路
3.1系统工作原理
在图1中所示的FPGA是根据设计要求设计好的一个芯片。
START是电机的开启端,U_D控制电机加速与减速,EN1用于设定电机转速的初值,Z_F是电机的方向端口,选择电机运行的方向。CLK2和CLK0是外部时钟端,其主要作用是向FPGA控制系统提供时钟脉冲,控制电机进行运转。
通过键盘设置PWM信号的占空比。当U_D=1时, 表明键U_D按下,输入CLK2使电机转速加快;当U/D =0,表明键U_D松开,输入CLK2使电机转速变慢,这样就可以实现电机的加速与减速。
Z_F键是电机运转的方向按键,当把Z_F键按下时,Z_F=1,电机正转;反之Z/F =0时,电机反转。
START是电机的开启键,当START=1,允许电机工作;当START=0时,电机停止转动。
H桥电路由大功率晶体管组成,PWM输出波形通过由两个二选一电路组成的方向控制电路送到 H 桥, 经功率放大以后对直流电机实现四象限运行。并由EN1信号控制是否允许变速。
以上是在网上查询的关于直流电机的简易结构描述,我们电脑QuartusⅡ做的是FPGA内部逻辑组成。
控制逻辑VHDL描述
新建文件夹,以文件名PWM保存。
3.2 PWM脉宽调制信号产生电路描述
图2 PWM脉宽调制信号产生电路
PWM脉宽调制信号产生电路由可控的加减计数器CNTA、5位二进制计数器CNTB、数字比较器LPM_COMPARE三部分组成。可控的加减计数器做细分计数器,确定脉冲宽度。当U/D=1时,输入CLK2,使设定值计数器的输出值增加,PWM的占空比增加,电机转速加快;当U/D =0,输入CLK2,使设定值计数器的输出值减小,PWM的占空比减小,电机转速变慢。5位二进制计数器在CLK0的作用下,锯齿波计数器输出周期性线性增加的锯齿波。当计数值小于设定值时,数字比较器输出高电平;当计数值大于设定值时,数字比较器输出低电平,由此产生周期性的PWM波形。
3.2.1可控的加减计数器CNTA
新建VHDL File文本,输入如下程序:
LIBRARY IEEE;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNTA IS
PORT(CLK:IN STD_LOGIC;
U_D:IN STD_LOGIC;
CQ:OUT STD_LOGIC_VECTOR(4 DOWNTO 0));
END CNTA;
ARCHITECTURE behav OF CNTA IS
SIGNAL CQI:STD_LOGIC_VECTOR(4 DOWNTO 0);
BEGIN
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1'THEN
IF U_D='1' THEN
IF CQI<=31 THEN CQI<="11111";
ELSE CQI<=CQI+1; END IF;
ELSIF CQI=0 THEN CQI<="00000";
ELSE CQI<=CQI-1;END IF;
END IF;
END PROCESS;
CQ<=CQI;
END behav;
保存该文件并以文件名CNTA.vhd存盘,新建工程CNTA,编译CNTA.vhd。
如下图新建波形编辑图
图3 新建vwf
向波形编辑器拖入信号节点,并设置好仿真激励波形,以CNTA.vwf存盘。仿真得如仿真波形输出报告。
图4 仿真波形输出报告
可控的加减计数器CNTA中的端口U_D控制计数器的方向,EN1是计数器的使能端,控制计数器初值的变化。U_D=1时,加减计数器CNTA在脉冲CLK2的作用下,每来一个脉冲,计数器CNTA加1,U_D=0时,每来一个脉冲,计数器CNTA减1。使能端EN1设定计数器值的初值,当EN1由1变为0的时候,无论U_D如何表化,计数器的值都不会发生变化,这样就完成了计数器的设定值。
选择File—Create/Update—Create Symbol Files for Current File,生成Symbol供顶层文件调用。
图5 CNTA Symbol
图6 CNTA RTL
3.2.2 5位二进制计数器CNTB
如下图新建VHDL File格式文本
图7选择编译文件类型
输入如下程序
LIBRARY IEEE;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNTB IS
PORT(CLK: IN BIT;
Q:BUFFER INTEGER RANGE 31 DOWNTO 0);
END;
ARCHITECTURE BHV OF CNTB IS
BEGIN
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN
Q<=Q+1;
END IF;
END PROCESS;
END BHV;
保存该文件并以文件名CNTB.vhd存盘,新建工程CNTB,编译CNTB.vhd。
新建波形编辑器,向波形编辑器拖入信号节点,并设置好仿真激励波形,以CNTB.vwf存盘。仿真得如仿真波形输出报告。
图8 5位二进制计数器仿真波形
CNTB是一个简单的5位二进制计数器,它的工作原理和CNTA的原理很相似,我们只是在CNTA的时钟端加了一个使能端U_D控制其加减的方向。而CNTB的时钟端没有加使能端,所以每来一个脉冲计数器加1,因为CNTB是一个5位的二进值计数器,所以当计数器的值当大于32时,计数器又重新从0开始记数,从而产生周期性的线性增加的锯齿波。
选择File—Create/Update—Create Symbol Files for Current File,生成Symbol供顶层文件调用。
图9 CNTB Symbol
图10 CNTB RTL
3.2.3 数字比较器LPM-COMPARE
选择Tools—Mega Plug-In Manager命令,按如下图示定制新的宏功能模块。
图11 LPM宏功能模块设定
图12设5位数据比较器
3.2.4 PWM脉宽调制信号产生电路
如下图新建原理图编辑窗
图13选择编辑类型
调用上述生成的Symbol和软件自带的常用端口,在编辑窗里连出图2所示的PWM脉宽调制信号产生电路。并新建成工程PWMmktz.新建波形编辑窗口,拖入信号节点。设置好仿真激励波形,以PWMmktz.vwf存盘。仿真得如仿真波形输出报告。
图14 数字比较器的仿真波形
数字比较器是产生PWM波形的核心组成部件,可控的加减计数器CNTA和5位二进制计数器CNTB同时加数字比较器LPM-COMPARE两端作为两路输入信号,当计数器CNTB输出值小于细分计数器CNTA输出的规定值时, 比较器输出高电平; 当CNTB输出值大于细分计数器CNTA输出的规定值时, 比较器输出低电平。改变细分计数器的设定值, 就可以改变PWM输出信号的占空比。为了便于观察防真波形,在CNTB的输出加上B[4..0],在最后的设计中须删除不必要的的输出端口B[4..0]。
细分计数器CNTA是一个双向计数器, 可以进行加减计数,由U_D控制其加/减计数方向, CLK是计数时钟输入端。为了便于连续变速控制, 在计数器的CLK端通过“与”门, 加入了CLK2外部变速控制附加时钟, 并由EN1信号控制是否允许变速。在本次设计中直流电机转速进行了32级细分。其仿真波形如图15,细分计数器的初值我设为08H,也就是十进值的8,当计数器CNTB的值小于8时,AGB输出高电平,当计数器CNTB的值大于8时,AGB的输出值为低电平,从而产生PWM波形。
图15 A[4..0]=08H时电机加速PWM波形
通过改变细分计数器的值就可以改变PWM的占空比,从而改变直流电机的速度。在图11中占空比D=8/32=0.25,在图16中占空比D=4/32=0.125。通过以上两组数据比较以及分析仿真波形我们可以看出,只要改变使能端电平的高低,便可以改变细分计数器的值,也就是改变细分计数器CNTA的初值,从而可以改变直流电机的占空比,改变直流电机的速度。
图16 A[4..0]=04H时电机减速PWM波形
调节PWM波的占空比是电机调速的重要手段,若脉宽计数器CNTA的值逐渐增大,输出脉冲的开启时间变大,PWM占空比逐渐变大,功率器件输出给电机电枢的能量增加,电机加速。若脉宽计数器定时器CNTA的值减小,输出脉冲的开启时间变小,PWM占空比逐渐变小,功率器件输出给电机电枢的能量减少,电机减速。当电机得到加速信号,占空比增大至它可调范围的最大值后保持,电机得到减速信号,占空比减小至它的可调范围的最小值后保持。
4.运行控制逻辑电路描述
4.1 2选1多路选择器MUX21A
新建VHDL File文本,输入如下程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX21A IS
PORT(A,B,S:IN STD_LOGIC;
Y:OUT STD_LOGIC);
END ENTITY MUX21A ;
ARCHITECTURE one OF MUX21A IS
SIGNAL E:STD_LOGIC;
SIGNAL D:STD_LOGIC;
BEGIN
D<=A AND (NOT S);
E<=B AND S;
Y<=D OR E;
END ARCHITECTURE one;
保存该文件并以文件名MUX21A.vhd存盘,新建工程MUX21A,编译MUX21A.vhd。
如下图新建波形编辑图
图17 新建vwf
向波形编辑器拖入信号节点,并设置好仿真激励波形,以MUX21A.vwf存盘。
图18 设置好仿真激励波形图
仿真得如仿真波形输出报告。
图19 仿真波形输出报告
波形分析(有一定的延时)
当S=1, 输出Y=B;
当S=0,输出Y=A;
选择File—Create/Update—Create Symbol Files for Current File,生成Symbol供顶层文件调用。
图20 MUX21A Symbol
图21 MUX21A RTL
4.2 工作/停止控制和正/反转方向控制电路
如图22所示FPGA中的工作/停止控制和正/反转方向控制电路,其两个二选一多路选择器加上两个与门根据逻辑原理组合而成。START键通过“与”门控制PWM输出,实现对电机的工作/停止控制。当START端接高电平时,表示电源接通,电机开始运转;当START端接低电平时,电机停止运转。Z/F键控制选择PWM波形是从正端Z进入H桥,还是从负端F进入H桥,以控制电机的旋转方向。
图22 工作/停止控制和正/反转方向控制电路
当Z/F=1时PWM输出波形从正端Z进入H桥,电机正转。当 Z/F =0时PWM输出波形从负端F进入H桥,电机反转。仿真如图23所示。
图23正/反转工作控制电路波形
当START=1时,与门打开,允许电机工作。当START=0时,与门关闭,电机停止转动。仿真如图24所示。
图24 工作/停止电路波形
5.直流电机PWM调速系统仿真
5.1建立工程项目PWM
原理图的设计流程如下:
图25 项目输入设计框图
如下图新建原理图编辑窗
图26选择编辑类型
调用上述生成的Symbol和软件自带的常用端口,在编辑窗里连出下图所示的直流电机PWM 控制电路,并建立新工程PWM。
图27 直流电机PWM 控制电路
在本次设计中,需要满足的技术要求是设计具有正/反转,起/停控制功能、速度在线可调的直流电机控制装置。
5.2 正/反转控制仿真
键盘Z_F是电机的方向控制键。当要求电机正转时,只需要按下键Z_F,表示Z_F输出高电平,即Z_F=1,电机正转,如图28所示。当键Z_F松开时,Z_F=0时,电机反转,如图29、图30所示。
图28 电机正转
图29 电机反转
图30 电机正反转
5.3启/停控制仿真
START键是电机的启动键,当按下START键时,START=1,电机进入运行状态,如图31所示。反之,START=0时,电机停止,如图32、图33所示。
图31 启动仿真波形
图32 停止仿真波形
图33启/停仿真波形
5.4加/减速仿真
键盘EN1控制电机是否允许变速。所以通过改变EN1便可以改变设定值H[4..0]的值,也就是设定值的初值,从而改变了直流电机的占空比,改变直流电机的速度,达到调速的目的。
因为CNTB是5位的计数器,所在本设计中直流电机转速细分为32级。如图34的占空比为2/32=0.0625,同理通过按键EN1该变H[4..0]的值便得到如图35、36的PWM仿真波形,其占空比依次为0.125、0.25,也就是占空比增大,电机的速度增加。根据以上的数据比较与仿真波形的分析可以看出,电机的速度在逐渐的增加。所以通过改变EN1的值可以改变直流电机的PWM占空比,从而改变直流电机的速度。
图34 H[4..0]=02H仿真波形
图35 H[4..0]=04H仿真波形
图36 H[4..0]=08H仿真波形
5.5仿真结果分析
通过上述的仿真波形分析可知,本设计中的各项功能够很好的实现。在时钟脉冲的作用下,计数器CNTA和CNTB都能按照事先设定好的规则进行计数。CNTA是可控的加减计数器,U_D控制其计数的方向,EN1用于设定其初值,当NE1由高电平变为低电平时,就完成了设定值。CNTB是5位二进制计数器,其在时钟脉冲CLK0的作用下一直加数,当它加到32时就自动返回到0再重新加数。两路计数器同时加到数字比较器LMP_COMPARE上,当CNTB的值小于设定值时,数字比较器输出高电平,当CNTB的值大于设定值时,数字比较器输出低电平。因此改变设定值的大小就可以改变PWM波形的大小,也就是完成了电机的调速。Z_F是电机的方向按键,选择PWM波形的进入方向,当其为1时,电机正转,反之,反转。至于电机的控制,是在它的输入端加上两个与门来控制电机的启动与停止。其具体的操作如下:
当按下键Z_F键时,电机正转(如图28),松开键时,电机反转(如图29)。当按下键START时,电机开始工作(如图31),松开时,电机停止工作(如图32)。通过按键EN1的闭合与断开可以改变H[4.0]的值(如图34、35、36)从而改变直流电机的PWM占空比,达到改变直流电机速度的目的。
本设计采用VHDL设计FPGA 脉宽调制控制方案, 计算机仿真和对直流电机控制的结果表明,该电路能有效地产生PWM 控制信号控制电机的转速, 控制精度由FPGA 中的数字比较器决定。在本设计中,采用的数字比较器为5位, 若增加数字比较器的位数, 就可以提高电机转速的控制精度。
FPGA 内部采用状态机结构, 遇到干扰时, 能很快从异常状态转入正常工作状态, 保证了控制系统具有高的可靠性。从以上的仿真中可以看出,基于FPGA的直流电机的控制能够达到很好的预期效果。
6.设计总结
本文在Quartus II软件平台上实现了基于 VHDL 直流电机速度控制系统的研究设计。设计期间主要完成了以下工作:
1.Quartus II软件平台的应用。掌握了基于VHDL 语言设计的基本流程和设计输入,设计编译,功能确认,延时确认,设计仿真等模块的应用。通过应用使我对VHDL 语言深入的了解,可以熟练地使用Quartus II平台进行编程和其他应用。
2.基于VHDL 的直流电机速度控制系统的理论及其软件仿真,本直流电机速度控制系统实现了以下功能:
(1)用户可自行设定电机的目标速度、速度临界差值。
(2)系统通过用户设定可以自动进行调速,达到用户指定速度要求。 本文提出的基于VHDL 的PWM 实现电路具有结构简单、容易实现等优点。但是在此设计研究过程中,有以下几点不足:基于VHDL 的数字系统设计方法、增加PWM 的精度、将理论与实际系统结合。
24
展开阅读全文