1、基于 FPGA 的开关磁阻电机调速系统的设计开关磁阻电机调速系统主要有开关磁阻电机、功率变换器、液晶显示、按键操作、位置检测和 FPGA 控制器等六大部分组成, 如图 1 所示。功率变换器向 SRM 提供运转所需的能量,由蓄电池或交流电整流后得到的直流电供电;转子位置检测器负责位置信号的检测是 SRM 同步运行和系统控制的重要基础。FPGA 主控制器是系统的中枢,它综合处理速度指令速度反馈信号及电流传感器,转子位置检测器的反馈信息电,流检测器负责检测实时电流,是 SRM 安全运行的保障和系统闭环的基础,以上各部分相辅相成 构成一个有机的整体。电源功率变换器S R M负载控制信号F P G A位
2、置检测液晶显示液晶键盘图 1 开关磁阻电机调速系统(一) 硬件设计原理图1.1、FPGA 开发板原理图FPGA 开发板顶层原理图主要由 JTAG 接口、主板数码管、发光二极管、键盘电路 VGA电路、RS-232 电路接口、电源电路模块、时钟及时钟分频电路组成。如图 2 所示,FPGA 开发板顶层的接口电路的分配关系。图 2 开发板顶层原理图1.2、FPGA 电源电路电源电路是保证整个 FPGA 硬件系统正常工作的核心部件。没有电源电路系统是无法工作的,本系统将交流电源经过整流滤波之后到到直流电压,使用三端稳压管,得到 5V 的直流电压,供给 FPGA 硬件系统,保证开发板的正常工作。图 3 F
3、PGA 电源电路1.3、JTAG 电路JTAG 是一种国际标准测试协议,主要用于芯片的内部测试,现在许多的高级器件都支持该协议,如单片机,DSP,FPGA 等器件。标准的 JTAG 接口是 4 线:TMS、TCK、TDI、TDO,分别是模式选择、时钟、数据输入、数据输出线。JTAG 电路是下载程序所必须的电路,在 PC 机上编写好的程序,经过编译处理之后,生成相应的可执行文件,通过 JTAG 电路将文件下载到芯片内部。如图 4 所示:图 4 JTAG 电路1.4、功率桥模块原理图此模块是由六个 IGBT 组成的多用桥,可以通过跳线连接成所需要的 H 桥,三相全桥,四相不对称半桥等。在本设计中所
4、需要是四相不对称半桥,所以只需要连接 TX21,TX11 和TX41,TX31 就能组成四相不对称半桥。此模块在本设计中有着至关重要的作用,通过 PWM脉冲功率桥的驱动模块来控制 IGBT 的导通与关断从而能达到让电机运转目的。如图 5 所示:图 5 多功能功率桥1.5、IGBT 驱动电路图本模块是多用桥的驱动模块主要由 M57962L 芯片构成,如果 M57962L 的第十三管脚PWM 输入引脚为低电平时 B1 和 E1 产生 15V 的电压驱使 IGBT 的导通,而当 PWM 输入为高电平时 B1 和 E1 产生-9V 的电压驱使 IGBT 的关断。从而能够根据 PWM 的占空比来调整 I
5、GBT导通或关断的时间,进而能够改变输出的电流大小。此外 M57962L 还具有过压保护功能。如图 6 所示:图 6 IGBT 驱动电路1.6、光电隔离原理图光耦合器一般由三部分组成:光的发射、光的接收及信号放大。输入的电信号驱动发光二极管(LED) ,使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。这就完成了电光电的转换,从而起到输入和输出的隔离的作用。由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。也是实现弱电对强电的控制的重要部件,所以采用光电隔离输出 PWM 波可以避免外界信号干扰 FPGA ,避免了电磁对 F
6、PGA 程序的干扰,导致的程序跑飞现象,提高了系统的可靠性。从而使 FPGA 具有良好的工作环境,正常输出 PWM 波等。如图 7 所示,光电隔离电路主要是由 6N137 芯片完成光和电的隔离。由 6N137 芯片将 FPGA 输出的高电平是 3.3V 的 PWM 波,通过隔离得到 5V 的高电平输出PWM 波,从而驱动 IGBT 的驱动芯片。图 7 PWM 光电隔离电路(二)系统软件设计2.1、NIOS 处理器结构基于 SOPC 的嵌入式系统结构如图 8 所示,主要包括嵌入式微处理器(CPU 核)、定时器(Timer)、嵌入式锁相环(PLL)、嵌入式数字信号处理器(DSP)及其他 IP 模块
7、等部分。和传统的单片机相比,基于 FPGA 的 NIOS 软核系统具有 CPU 外围功能模块可定制剪裁的优势,用户只需根据项目的需要,添加自己所需要的外设,即可完成产品的设计,并且集成在一片芯片里边。这样就可以大大缩减产品的开发周期,提高产品性能的稳定性。图 8 基于 SOPC 的嵌入式系统结构2.2、FPGA 的 NIOS 处理器的定制本设计系统主要应用到 Altera 公司的 FPGA 芯片 EP3C40F484C8 内部所嵌入的 NIOS ii软核 CPU、定时器 2 个、锁相环(PLL) 、PIO 口、RAM 和 ROM 几个模块,其中 NIOS 与 FPGA内部电路进行数据交换的主要
8、是 PIO 口,通过 PIO 口可以控制 PWM 模块的使能及输出,读取速度计算电路模块的计算结果,PID 调节的信号的输入等。本系统的定制原理图如图 9所示:图 9 开关磁阻电机 NIOS 系统23、锁相环倍频、分频电路锁相环电路系统构成主要是由 Altera 公司的 FPGA 内部所包含的免费的 IP 核,通过ALT_PLL 锁相环 IP 核可以很容易地实现分频和倍频的功能,只需要通过设置 Pll 内的相关参数即可。此电路模块主要完成功能:(1)NIOS 软核工作所需要的 100MHz 的频率 c0。通过引脚 PIN_G2 接外部输入 20MHz的晶振,经过 5 倍频之后得到 100MHz
9、 的频率 c0 接入 NIOS 的时钟输入端,保证系统能够正常工作。(2)PWM 电路模块的工作时钟频率 c1。根据 PWM 模块电路工作原理,时钟的输入做为三角波发生器的时钟,计数器计数得到三角波,再通过比较器比较得到 PWM 波,c1 主要是保证计数器正常计数的需要。通过外部接入的 20MHz 的频率,经过 20 分频之后得到 1MHz的频率。图 10 锁相环电路2.4、PWM 模块的设计2.4.1、PWM 波形实现原理目前,采用 FPGA 产生 PWM 波形的方法很多,如上下计数法、存储查表法等,本文采用技术比较的方法来实现 PWM 波形的产生,原理如所示。其原理是:三角波发生器的值小于
10、比较值时,输出低电平,高于比较值时输出高电平,如图所示。其中,三角波作为载波,比较值寄存器的值作为调制,可以根据需要改变 PWM 脉冲的宽度。图 11 PWM 产生原理图三角波的实现是通过 10 位计数器 IP 核设置为增减计数模式,增减计数控制使能端为1 时增计数,为 0 时是减计数。当计数值到达计数器最大值 1024 时,输出一个上升沿脉冲信号,输入 D 触发器,使其输出状态取反一次,从而有效地使计数器工作在增减计数模式下,实现了三角波生成的功能。调节 PWM 波的占空比是电机调速的重要手段,若比较寄存器的值逐渐增大,输出脉冲的开启时间变大,PWM 占空比逐渐变大,功率器件输出给电机电枢的
11、能量增加,电机加速;若比较寄存器的值减小,输出脉冲的开启时间变小,PWM 占空比逐渐变小,功率器件输出给电机电枢的能量减少,电机减速。PWM 波产生电路如图:图 12 PWM 波产生电路2.4.2、PID 控制原理常规模拟 PID 控制系统原理框图如图 13 所示比例环节积分环节微分环节被控对象给定 e ( t )r ( t )+u ( t )f ( t )图 13 PID 控制原理图PID 控制器是一种线性器,它根据给定值 r(t)与实际输出构成控制偏差:(5-1)()()etrct将此偏差的比例(P) 、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制。其控制规律为:(5-
12、2)0()()()1/()tDPITdetUtKete其传递函数:(5-3)()/()(1/)PIDGSESKS式中, 为比例系数, 为积分时间常数, 为微分时间常数。PKITDT2.4.3、本设计系统 PID 模块的实现本设计所采用的是增量式 PID 算法,所谓增量式 PID 是指数字控制器的输出只是控制量的增量 。当执行机构需要的控制量是增量,而不是位置量的绝对数值时,可以使用增量式 PID 控制算法进行控制。 增量式 PID 控制算法可以通过式(5-9)推导出。由式(5-9)可以得到控制器的第 k1 个采样时刻的输出值为:(5-10)10(1)(2)() kpjdiTekueT将式(58
13、)与式(5-10)相减并整理,就可以得到增量式 PID 控制算法公式为:1kkuA()21)(2)()() p diTekeke T(5-11) 1()()pidkk增量式 PID 控制算法与位置式 PID 算法式(5-8)相比,计算量小的多,因此在实际中得到广泛的应用。PID 算法最终可以化简为 ,其可以很Ukq0e1kq2ek容易利用 FPGA 内部的 IP 核实现。本系统利用一个减法器,实现误差值的求取,采用三个乘法器实现公式当中的乘法,再利用一个加法器相加,最终得到计算结果,在通过一个比较器,当计算结果大于 0 时输出高电平,计算结果小于 0 时,输出一个低电平,在 NIOS 当中读取
14、该电平的状态,根据该状态值增加或者减小 PWM 脉冲宽度的值,达到脉宽调制的效果。其中的 、 及 的 移位操作是通过乘法器的流水线时钟选择实现ek1ek2的。 图 14 增量式 PID 算法电路2.4.2、测速电路模块两路位置信号输入,每一次跳变上升沿或下降沿都要产生一次计算过程,读取计数器的数值即可计算出各路信号相邻两个跳变之间的标准脉冲个数 N,脉冲个数的计算是在固定频率的脉冲信号 下计算的。clkf图 15 位置信号示意图根据 T 测速法,可得如下转速计算公式:60clkfntN式中,n 为开关磁阻电动机转速,单位 r/min; 是一路信号上升沿和下降沿之间的机械角度差,如图 15 所示
15、, =15/360,单位 r; 是该路信号上升沿和下降沿之间经t过的时间差,单位 min; 是计数器的时钟频率;由于测速范围为 2562047r/min,当clkfn=2048r/min 时,计数值 N=256,则 为 0.2MHz,即当计数器的时钟频率选在 0.2MHz 时,clkf系统能正常运行。当 n=256r/min, =1/24, =0.2MHz,则可以得到 N=211。在最clkf低速时计数值 N 为最大,所以选用 N 脉冲计数器为 11 位二进制计数器。同样,通过计算可以得到 ,故等式的分子可选 19 位60602481/024856clkf全 1 的数据。本系统实际设计,主要由
16、异或门、计数器、常数值及除法器三部分构成,如下图所示。捕获信号通过 IN1,IN2 引脚接入,经过 XOR 门之后,得到 15占空比为 50%的倍频信号。倍频信号高电平期间使能计数器,对固定频率的时钟进行计数,低电平期间进行速度值的计算(除法运算) ,最后得到速度值。图 16 电机转速计算模块2.5 基于 NIOS II 软核应用软件编程2.5.1、主程序的设计主函数程序,主要完成系统函数的初始化,根据软件所设计的标志位控制相关模块的运行与停止,是整个软件编写最主要的部分。本设计系统主函数主要完成功能:主函数流程图见下图所示:初始化液晶键盘函数显示函数速度控制选择函数给定速度设置函数数电机控制
17、函数启动函数功能设置函数实际系统设计主函数截图如下:图 17 系统主函数2.5.2、开关磁阻电机位置检测捕获中断函数本设计捕获功能的实现是同过 NIOS 的 IO 口外设,将其设置为 2 输入的输入端口,此时 IO 口具有捕获功能,可以检测开关磁阻电机的两个位置传感器的位置信号,在 NIOS 软件编程中读取捕获到状态值,来确定开关磁阻的电机 A、B、C、D 四相,哪一相导管,哪一相关闭,从而给电机绕组通电,使电机转动起来。在定制 NIOS 软核系统中,将 CAP_PIO 端口设置为同步边沿捕获,并且上升沿和下降都捕获,这样在捕获中断函数当中读取捕获值,同时完成电机换向。由电机结构决定,电机每转
18、动一圈,进 24 次中断。本设计中 NIOS 定制中的捕获端口实际设计如下图所示:图 18 捕获 IO 口设置为双沿同步捕获首先进入捕获中断函数后,完成读取捕获值、换相函数、清除中断标志。捕获功能的 NIOS 软件编程流程图:本设计系统实际编程截图如下:图 19 捕获中断函数进捕获中断清中断标志换向函数读取捕获值2.5.3、读速度中断函数进中断读 1 5 个速度值速度值排序去最大最小值求平均值结束流程图在其中断函数当中,主要完成速度值的读取、存储、赋值给显示变量及其算法处理。为了提高速度的精度,我们取 15 组数据,存放在数组当中,用于求取速度的平均值。在调试函数过程中,出现的误差相对较大并且
19、不稳定,为此,在对读取的 15 组数据当中,首先进行一个排序处理,按照读取速度值的大小,从小到大依次排序。然后,在处理数据的时候,去掉最小的 4 个数据和最大的 5 个数据,剩下中间的 6 个数据,求取平均值。这样有效地避免了转速计算过程中可能会出现的坏值,解决了转速值不稳定的现象,大大提高了控制精度。2.5.4、正反转相序转换函数正转相序和反转相序是根据电机结构而定的,电动机在出厂的时候就已经确定了的。此函数是电机运转的重要函数。电机正转时:00-10-11-01-00;电机反转时:00-01-11-10-00;状态转换图如下图所示。图 22 电机运转状态图电机运转的原理是根据检测位置传感器
20、的状态来确定,给电机的某相励磁绕组通电,驱使电机转动起来。NIOS 软件编程如下:图 23 正反转相序转换函数2.5.5、制动相序转换函数电动机的制动方式主要有机械制动和电气制动。机械制动是通过机械装置来卡住电机主轴使其减速,如电磁抱闸、电磁离合器等电磁铁制动。而在实际应用中多采用电气制动,常用的电气制动方式有:(1)短接制动:制动时将电机的绕组短接,利用绕组自身的电阻消耗能量。由于绕组的电阻较小,耗能很快,有一定的危险性,可能烧毁电机。(2)反接制动:直流电机制动,将电机的电源正负极反接,改变电枢电流的方向,这样转矩的方向也改变,使得转速与转矩的方向相反。交流电机制动采用改变相序的方法产生反
21、向转矩,原理类似。反接制动制动力强,制动迅速,控制电路简单,设备投资少,但制动准确性差,制动过程中冲击力强烈,易损坏传动部件。(3)能耗制动:制动时在电机的绕组中串接电阻,电动机相当于发电机,将拥有的能量转换成电能消耗在所串接电阻上。这种方法在各种电机制动中广泛应用,变频控制也用到了。(4)能量回馈制动:当采用有源逆变技术控制电机时,将制动时再生电能逆变为与电网同频率同相位的交流电回送电网,并将电能消耗在电网上从而实现制动。图 24 制动转换函数2.5.6、PID 调节 PWM 脉冲宽度的实现由于本系统在设计过程中,PID 的计算过程是一个单独搭建的电路模块,计算得到最终结果值有正负之分,通过一个比较器和 0 进行比较,根据比较计算结果,如果计算值大于0 输出高电平,若小于 0 则输出低电平。而在 NIOS 软件编写当中,只需要根据读到的电平状态,增加或减小 PWM 的数值,从而实现脉冲宽度的调制,达到对电机转速自动控制的目的。在 NIOS 实际软件编程当中,在程序编写过程中读取 PID 计算的结果,改变 PWM 的值。如图所示:图 25 PWM 调节函数(三)实物设计图电机转速动态显示 IGBT 功率桥IGBT 驱动电路 FPGA 主控制板