基于Verilog HDL的SVPWM算法的设计与仿真
扫描二维码
随时随地手机看文章
摘要:空间矢量脉宽调制算法是电压型逆变器控制方面的研究热点,广泛应用于三相电力系统中。基于硬件的FPGA/CPLD芯片能满足该算法对处理速度、实时性、可靠性较高的要求,本文利用Verilog HDL实现空间矢量脉宽调制算法,设计24矢量7段式的实现方法,对转速调节和转矩调节进行仿真,验证了设计的实现结果与预期相符。
关键词:空间矢量脉宽调制;交流永磁同步电动机;电压型逆变器;Verilog HDL
电压型逆变器在大容量、高电压场合已得到了广泛应用,逆变器控制策略种类繁多,其中空间矢量脉宽调制(SVPWM)算法具有凋制比较大、能够优化输出电压波形、易于数字实现、母线电压利用率高等优点,是此方面研究的热点。随着新型电力电子器件及芯片的迅速普及,逆变器SVPWM算法将广泛应用于三相电力系统中,尤其是交流永磁同步电动机(PMSM)的调速控制。目前常用的SVPWM算法实现工具是单片机或者DSP芯片,但SVPWM算法对处理速度、实时性、可靠性方面要求较高,基于硬件的FPGA/CPLD芯片恰能更好地满足这些要求,据此本文利用硬件描述语言Verilog HDL实现SVPWM算法,根据三相两级PMSM的物理模型以及两电平电压型逆变器的原理,设计24矢量7段式实现方法,并仿真转速调节和转矩调节时的 SVPWM波形。
1 PMSM的物理模型及逆变器原理
SVPWM算法实现时,将永磁同步电机和逆变器视为一体,产生的三相波形控制逆变器各桥臂主管的开关状态,从而驱动电机工作。
1.1 PMSM的物理模型及定子坐标系
理想情况下,忽略定子铁芯和转子铁芯的损耗以及电动机参数的变化,三相两级PMSM的物理模型如图1所示。
其中,定子的三相绕组UX、VY、WZ在圆空间呈对称分布,U、V、W为各绕组的首端,X、Y、Z为尾端。相电流的正方向为首端流出电流、尾端流入电流,根据安培定则,各绕组产生的磁场方向为绕组轴线的正方向,即UX绕组轴线正方向为A,如图1所示,其他两相同理,正方向分别为B、C。
A、B、C三个方向构成一个三相静止坐标系——ABC坐标系(即定子坐标系,3个方向之间夹角均为120°)。SVPWM算法正是基于该三相坐标系的。
1.2 两电平电压型逆变器原理
两电平电压型逆变器是一种较为常用的逆变器,主要电路由三个桥臂组成,每个桥臂有两个三极管和两个二极管。
电压型逆变器一般采用180°导通控制方法,任何时刻都有不同的乏支主管导通,同一相的上下两个桥臂的主管交替导通,各自导通半个周期。
2 SVPWM原理
逆变器根据控制信号控制各桥臂主管的导通与截止,输出A、B、C三相到电机,驱动电机工作。通过对逆变器控制信号进行处理,可以对电机工作状态实时控制。
空间矢量脉宽调制宜于数字控制器实现,具有输出电流波形良好、直流环节电压的利用率较高等优点,应用广泛。
用SA、SB、SC表示两电平电压型逆变器V1、V3、V5的开关状态(1表示导通),V2、V4、V6分别与之相反。逆变器输出的基本电压空间矢量如图2所示,其中Ux(1,2,…,6)后面括号内数字分别对应SA、SB、SC。
八个电压矢量中:U0与U7为零电压矢量;其余为非零电压矢量,幅值均为|Us|=2Ud/3。当一个电压空间矢量ug位于两个基本空间矢量之间时,依据平行四边形定则合成,图中以处于U4与U6之间的电压空间矢量为例,两个基本电压空间矢量作用的时间分别为t1和t2,则:
由于t1+t2≤tg,多余的时间就平均分配给两个零电压矢量U0与U7,两者的作用不影响逆变器输出电压矢量的积分。
采用七段式SVPWM,输出的三相电压波形对称性好,谐波比较少。扇区1中各电压矢量时间分配图如图3所示,其他扇区同理。
3 SVPWM的Verilog HDL实现方法
SVPWM广泛应用于三相电力系统中,通过对转速和转矩的控制,实现对电机状态的实时控制。利用Verilog HDL仿真实现时,主要涉及转速控制、转矩控制和SVPWM波形产生,据此设计Verilog HDL模块如图4所示。
3.1 转速模块
转速模块依据给定的转速输入信号(分频数),通过对系统时钟进行分频,得到控制时钟。利用100 MHz系统时钟的上升沿和下降沿对控制时钟进行翻转,得到对应转速的控制时钟,不同频率的控制时钟对应电机的转速如表1所示。
3.2 转矩模块
转矩模块根据控制时钟和给定转矩,计算出4种θ对应的t1、t2、t0的值,从而得到各矢量的各开关状态下的持续时间(即图4中的时间参数)。由第2节可知,式(2)中θ为ug与所在扇区中的基本电压空间矢量U4、U2或U1之间的夹角。Verilog HDL实现时,采用了24个电压矢量,即每扇区4个矢量,则分别为7.5°、22.5°、37.5°、52.5°。
由于不同转矩时计算t1、t2的值,不能使用常规乘除法,只能通过左移、右移分别进行乘以2、除以2的运算,且当t1+t2=tg时,ug的最小值为:
所以设计ug=1Ud/2和ug=1Ud/3两组基本时间参数,跟据式(2)分别得到t1、t2的值如表2所示。转矩输入信号的MSB选择基本时间参数,其他比特位数值表示基本时间参数右移位数(即基本时间参数除以该数值)。
图3中T0、T7均等于t0/2=(tg-t1-t2)/2,根据转矩输入信号选择基本时间参数,并进行向右移位操作,计算出不同θ对应的7个开关状态的持续时间。
3.3 状态机模块
状态机模块利用控制时钟进行状态转换,矢量状态有24个,开关状态有7个,24个矢量状态从前到后循环转换,每个矢量状态下的7个开关状态依先后顺序转换一遍,开关顺序如表3所示,各自持续时间通过计数器计数值与对应时间参数比较而得到。如图3所示,设两个非零电压矢量中,与零矢量U0相邻的是ua另一个是ub,可知ua必须是U4、U2、U1中的一个,ub必须是U6、U3、U5中的一个,具体如表3所示。
3.4 波形产生模块
波形产生模块根据矢量状态和开关状态,决定三相的输出电压矢量(U0,U1,…,U7)。24个矢量状态分别位于6个扇区中,依据矢量对应的开关状态选择输出电压矢量,各扇区中矢量的开关顺序如表3所示。
4 仿真验证
使用Active-HDL软件进行仿真验证,建立仿真模块,提供系统时钟和复位信号,设定不同转速输入信号及转矩输入信号进行仿真,下面以部分仿真截图对设计进行验证。
4.1 转速调节仿真
转速调节仿真时,设定相同转矩ug=1Ud/3,对比两种不同转速仿真如下。
由表1可知,系统时钟分频数设定为1时,对应转速为100 r/s,即周期为10 ms,如图5所示,最下面是24个矢量状态的十六进制数,仿真显示一个周期约10 ms,由于计数器值为整数,计算时对小数进行了四舍五人,并且仿真开始存在一定时间对变量进行初始化,所以存在很小的误差,结果符合预期。系统时钟分频数设定为4时,对应转速为25 r/s,即周期为40ms,如图6所示,仿真结果符合预期。
4.2 转矩调节仿真
转矩调节仿真时,设定相同转速100 r/s,对比3种不同转矩仿真结果。
图5(见4.1小节)、图7、图8分别是ug=1Ud/3、ug=1Ud/4、ug=1Ud/8时的仿真结果。由三相电机PWM调制原理得知,三种转矩情况下,波形的基波分量的绝对值依次降低,仿真波形符合预期。
5 结束语
文中针对24矢量7段式SVPWM算法设计实现方法,基于Verilog HDL进行软件仿真,主要仿真不同转速、转矩时的SVPWM波形、验证了设计达到了预期的效果。
在SVPWM实际应用中,通常都会插入死区时间,防止逆变器桥臂发生瞬间短路,本文的设计实现没有对此进行设计,后期可以改进这一点,同时,可以利用相关FPGA/CPLD综合软件下载到硬件,进行硬件实现。