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