CN101272123B - 基于fpga的空间矢量脉宽调制方法 - Google Patents

基于fpga的空间矢量脉宽调制方法 Download PDF

Info

Publication number
CN101272123B
CN101272123B CN2008100255274A CN200810025527A CN101272123B CN 101272123 B CN101272123 B CN 101272123B CN 2008100255274 A CN2008100255274 A CN 2008100255274A CN 200810025527 A CN200810025527 A CN 200810025527A CN 101272123 B CN101272123 B CN 101272123B
Authority
CN
China
Prior art keywords
module
vector
lock
ovennodulation
fpga
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008100255274A
Other languages
English (en)
Other versions
CN101272123A (zh
Inventor
沈艳霞
陈星�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangnan University
Original Assignee
Jiangnan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangnan University filed Critical Jiangnan University
Priority to CN2008100255274A priority Critical patent/CN101272123B/zh
Publication of CN101272123A publication Critical patent/CN101272123A/zh
Application granted granted Critical
Publication of CN101272123B publication Critical patent/CN101272123B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提出一种基于FPGA的空间矢量脉宽调制算法的实现方案。该方案按照FPGA模块化设计思想将空间矢量脉宽调制(SVPWM)调节器划分为如下九个模块:定标、时序控制、扇区判断、状态机、矢量选择、时间计算、过调制、PWM输出和死区调节。该方案充分利用了FPGA并行处理特点、逻辑实现及硬件乘法器资源,主要采用逻辑判断及一些乘法计算,避免了反正切、三角函数等复杂计算。该方案支持过调制、死区调节、对称PWM和非对称PWM模式。

Description

基于FPGA的空间矢量脉宽调制方法
技术领域
本发明涉及交流电机控制领域,具体来说,涉及到FPGA(可编程逻辑门阵列)技术在交流电机控制领域的应用,提出了一种通用型空间矢量脉宽调制在FPGA上的实现方案。
背景技术
空间矢量脉宽调制(SVPWM)的思想在上世纪80年代首次由Van Der Broeck提出,其理论和算法在后来得到了很大发展。目前SVPWM是一种最流行的高性能交流伺服驱动系统实现技术之一。
随着FPGA技术的进步和成本的下降,为SVPWM算法的实现提供了另一可选的途径。FPGA硬件的并行处理方式保证了系统运行的高速度和高精度,其灵活丰富的外部引脚为控制多个电机提供了方便,同时FPGA硬件电路的稳定性和抗干扰性使其能够胜任一些特殊条件下的控制任务,这些优势决定了FPGA技术必将广泛的进入交流伺服控制领域。
算法的实现方法通常要根据所选实现工具的特点来进行设计,目前空间矢量脉宽调制(SVPWM)算法一般是在DSP上实现,TI公司推出的2000系列DSP就是专门用来控制电机的。目前现有的空间矢量脉宽调制(SVPWM)算法实现方案在计算上较为复杂,凭借DSP强大的计算能力才得以在DSP上实现,而这些复杂的计算在FPGA上实现起来比较困难。本发明提出的这种方案解决了SVPWM算法在FPGA上难以实现这一问题。
发明内容
本发明的目的是寻求一种适合在基于FPGA的空间矢量脉宽调制方法。使得在交流伺服系统中FPGA能更好的胜任控制任务。
按照本发明提供的技术方案,所述基于FPGA的空间矢量脉宽调制方法包括如下步骤:
步骤一,时序控制:时序控制模块采用大小可调的增减计数器产生的同步脉冲,输送给定标模块、状态机及后续模块,作为同步工作信号;通过检测同步脉冲的下降沿来触发电路保证各个模块的同步,同步脉冲的周期为脉宽调制器输出调制波的周期,同时又作为空间矢量脉宽调制器的输出,用于交流伺服系统中不同功能模块之间的同步;所述后续模块包括扇区判断模块、矢量选择模块、时间计算模块、过调制模块、脉宽调制器、死区调节模块;
步骤二,定标:定标模块在步骤一产生的同步脉冲控制下,将输入空间矢量脉宽调制器的参考矢量Uα、Uβ进行预处理,使参考矢量Uα、Uβ能够直接进入后续模块;
步骤三,扇区判断:扇区判断模块在步骤一产生的同步脉冲控制下,对经过步骤二处理后的参考矢量Uα、Uβ进行进一步的处理,对参考矢量Uα、Uβ所处的扇区进行判断;
步骤四,矢量选择与时间计算:矢量选择和时间计算模块根据步骤三中对扇区判断的结果,根据相关计算式得到相应扇区的作用矢量及其有效时间;
步骤五,过调制:过调制模块对步骤四中矢量选择和时间计算的结果进行判断,确定是否出现过调制,如果检测出现过调制,则进行过调制处理;
步骤六,状态机与脉宽调制器调制波输出:状态机模块根据步骤一产生的同步脉冲、步骤五中时间计算模块中的时间输出和输入量模式选择信号实现对脉宽调制器的调制信号输出进行控制;
步骤七,死区调节:死区调节模块对经过步骤六处理的调制信号加入死区,形成一个可直接用于逆变器的调制信号。
所述同步脉冲的频率大小还用于控制参考矢量Uα、Uβ的采样率。
在步骤七中,死区调节模块分别对经过步骤六处理的调制信号的下降沿和上升沿加入延迟,将上升沿延迟信号作为逆变器的上桥臂控制信号,将下降沿延迟取反后作为逆变器的下桥臂控制信号。
本发明提出了一种能充分发挥FPGA逻辑实现能力及并行处理能力的实现方案,如图1所示。从图中可以看出本次设计方案分为定标、时序控制、扇区判断、状态机、矢量选择、时间计算、过调制、PWM输出和死区调节等九个模块。其中定标模块是将图1中参考矢量在α、β轴上的投影Uα、Uβ的数值转化成统一的有效位数和小数点位置。相关参数由图1中的比例因数配置。时序控制模块用于产生系统的同步脉冲,以保证模块间时序一致,图1中PL1、PL2和PL3三块由同步脉冲的下降沿触发,从而构成三级流水线。扇区判断模块用来判断定标后的Uα、Uβ所在的扇区。状态机和矢量选择模块用来产生输出PWM波形的形状,并可以在状态机模式中选择对称和非对称两种PWM输出方式。时间计算模块用来控制该波形在某个状态下持续的时间,时间控制由计数器来完成。过调制模块用来处理过调制状态下的时间分配问题。PWM输出模块负责输出PWM波形。死区调节模块用硬件电路完成了死区处理,避免了上下桥臂直接导通的危险。
本发明的优点是避免了反正切、三角函数等复杂计算,能够很容易的将较复杂的空间矢量脉宽调制(SVPWM)算法用硬件描述语言(HDL)在FPGA上实现。硬件描述语言(HDL)独立于设备和厂商,在不同的平台上可以兼容,并且不需要任何大的修改便可以在任何的FPGA上进行综合,HDL直接面向硬件实现,编程灵活、简单。
附图说明
图1为基于FPGA的空间矢量脉宽调制(SVPWM)的实现框图;
图2为扇区判断示意图;
图3为PWM输出波形;
图4为状态机示意图;
图5为加死区调节后PWM波形。
具体实施方式
本发明提出的一种在FPGA上实现空间矢量脉宽调制(SVPWM)算法的方法,该方法运用FPGA模块化的设计思想将SVPWM算法分为如图1所示的九个模块,下面将详细介绍各个模块具体实施的方法。
步骤一,时序控制。时序控制模块采用大小可调的增减计数器产生的同步脉冲,该同步脉冲同时作用于图1中PL1、PL2和PL3三块,包括该方案中其他所有模块。通过检测同步脉冲的下降沿来触发电路保证各个模块的同步,PL1、PL2和PL3三块电路构成三级流水线。同步脉冲的周期Ts即为PWM波的周期,又考虑到SVPWM只是一个完整的交流伺服系统中的一个功能模块,于是将此同步脉冲作为SVPWM模块的输出,用于交流伺服系统中不同功能模块之间的同步。
步骤二,定标。定标模块在步骤一产生的同步脉冲控制下将输入数据参考矢量Uα、Uβ进行一些预处理。由图2中可见,Uα、Uβ是参考矢量在α、β轴上的投影,在各个具体的系统中,Uα、Uβ的数值及其表达形式都不尽相同,且由于FPGA不适合于浮点数的运算,这就需要定标模块将其转化成统一的有效位数和小数点位置。再者,逆变器的直流电压Udc在某一个具体的系统中通常为一定值,因此将mα=Uα/Udc,mβ=Uβ/Udc作为定标模块的输出。相关参数由图1中的比例因数配置。
步骤三,扇区判断。扇区判断模块在步骤一产生的同步脉冲控制下对经过步骤二处理后的数据进行进一步的处理。由表1可知,不同扇区的作用矢量和有效时间都是不同的,因此需要对参考矢量所处的扇区进行判断,从图2中可知如下的判断方式:
如果 0 &le; U &beta; < 3 U &alpha; , 则参考矢量
Figure S2008100255274D00033
在扇区I;
如果 U &beta; &GreaterEqual; 3 U &alpha; 且Uα≥0,或 U &beta; > - 3 U &alpha; 且Uα<0,则参考矢量
Figure S2008100255274D00036
在扇区II;
如果 0 < U &beta; &le; - 3 U &alpha; , 则参考矢量
Figure S2008100255274D00038
在扇区III;
如果 3 U &alpha; < U &beta; &le; 0 , 则参考矢量
Figure S2008100255274D000310
在扇区IV;
如果 U &beta; &le; 3 U &alpha; 且Uα≤0,或 U &beta; < - 3 U &alpha; 且Uα>0,则参考矢量
Figure S2008100255274D000313
在扇区V;
如果 - 3 U &alpha; &le; U &beta; < 0 , 则参考矢量
Figure S2008100255274D000315
在扇区VI。
不难发现,其中多次出现,可开辟一个专用的计算模块以提高速度和精度,因为 3 &ap; 1 + 2 - 1 + 2 - 3 + 2 - 4 + 2 - 5 , 所以可将乘法转换成移位加运算。
表1各扇区矢量选择及时间计算
Figure S2008100255274D00041
步骤四,矢量选择与矢量时间。矢量选择和矢量时间模块根据步骤三中扇区判断结果以及表1中的相关计算式,得到相应扇区的作用矢量及其有效时间。由于时间计算中不可避免的要用到乘法,通常在FPGA中进行乘法运算时需要占用较多的时钟,不利于系统的快速性,也可能造成多级流水线在时序上的错误,因此需要调用FPGA内部的硬件乘法器。一般FPGA内部都集成了硬件乘法器可供选用。
步骤五,过调制。过调制模块在步骤四中矢量分配和矢量时间计算的基础上检测是否出现过调制出现,如果检测出现过调制则进行数据处理。当系统处于线性调制区域时零向量分别为:
V &RightArrow; 01 = V &RightArrow; 7 , V &RightArrow; 02 = V &RightArrow; 8
与之对应的有效时间为:
t01=t02=(TS/2-ta-tb)/2
当检测到时间满足如下式子时
TS/2<ta+tb
则判断已出现过调制,此时前述的有关零向量的计算不再成立。对此,本设计提出了两种处理办法方案。
方案一:
t a &prime; = t a T S / 2 t a + t b = t a &times; log - 1 ( log ( T S / 2 ) - log ( t a + t b ) )
t′b=TS-t′a
方案二:
如果ta,tb≥(ta+tb-TS/2)/2,则t′a=ta-(ta+tb-TS/2)/2,t′b=TS-t′a
如果ta<(ta+tb-TS/2)/2,则t′a=0,t′b=TS/2
如果tb<(ta+tb-TS/2)/2,则t′a=TS/2,t′b=0
方案一的处理效果比较好,经过调制处理后参考向量的运行轨迹仍能近似是一个圆,但由于要使用到除法运算,为了提高运算速度,使用对数查找表,将其转化为对数减法,占用较多的片上资源。相对的,方案二运算非常简单,效果也就相应的较差,但仍能保证系统正常运行。可根据不同场合选用不同的方案。
步骤六,状态机与PWM输出。状态机模块根据步骤一产生的同步脉冲、步骤五中时间计算模块中的时间输出和输入量模式选择信号实现对PWM输出进行控制。从图3和图4中可以看到受状态机控制的PWM的波形,当检测到同步脉冲的下降沿初始化状态机,并作为状态机的触发输出一个PWM周期,当模式信号为高电平时输出对称的PWM波,反之为不对称的PWM波。两张图中的S0-S3表示状态机的四个状态,S0和S3分别表示零矢量
Figure S2008100255274D00051
S1表示,S2表示
Figure S2008100255274D00053
。前态信号保存前一状态的信息,用于确定下一状态。当减计数器到零时,即达到相应矢量的作用时间,完成状态切换,即U、V、W三相输出电平变化。
步骤七,死区调节。死区调节模块在步骤六作用下的PWM输出波形进行进一步处理。在实际的应用中,需要在每一对上、下桥臂的PWM波中加人死区,以避免上、下桥臂的直接导通。加人死区的PWM波形如图5所示。从图5a中可见,分别对死区调节模块的输入信号的下降沿和上升沿加入延迟,将上升沿延迟信号作为上桥臂信号,将下降沿延迟取反后作为下桥臂信号。td为死区时间,可通过初始配置调整,用计数器实现。当输入信号电平切换时间小于死区时间时,如图5b和5c。以图5b为例,当检测到输入信号的下降沿,死区计数器开始计数,计数未完成时又检测到上升沿,初始死区计数器,下降沿延迟信号不变化。这样的处理旨在保证不会出现上、下桥臂直通的情形。

Claims (1)

1.一种基于可编程逻辑门阵列技术的空间矢量脉宽调制方法,其特征在于,所述方法包括如下步骤:
步骤一,时序控制:时序控制模块采用大小可调的增减计数器产生的同步脉冲,输送给定标模块、状态机及后续模块,作为同步工作信号;通过检测同步脉冲的下降沿来触发电路保证各个模块的同步,同步脉冲的周期为脉宽调制器输出调制波的周期,同时同步脉冲又作为空间矢量脉宽调制器的输出,用于交流伺服系统中不同功能模块之间的同步;所述后续模块包括扇区判断模块、矢量选择模块、时间计算模块、过调制模块、脉宽调制器、死区调节模块;
步骤二,定标:定标模块在步骤一产生的同步脉冲控制下,将输入空间矢量脉宽调制器的参考矢量Uα、Uβ进行预处理,使参考矢量Uα、Uβ能够直接进入后续模块;
步骤三,扇区判断:扇区判断模块在步骤一产生的同步脉冲控制下,对经过步骤二处理后的参考矢量Uα、Uβ进行进一步的处理,对参考矢量Uα、Uβ所处的扇区进行判断;
步骤四,矢量选择与时间计算:矢量选择和时间计算模块根据步骤三中对扇区判断的结果,根据相关计算式得到相应扇区的作用矢量及其有效时间;
步骤五,过调制:过调制模块对步骤四中矢量选择和时间计算的结果进行判断,确定是否出现过调制,如果检测出现过调制,则进行过调制处理;
当系统处于线性调制区域时零向量分别对应的有效时间为:
t01=t02=(TS/2-ta-tb)/2
当检测到时间满足如下式子时
TS/2<ta+tb
其中,Ts为PWM波的周期;ta和tb是指相应扇区作用矢量的有效时间,
则判断已出现过调制;应利用下述两种处理办法中的一种进行处理:
方案一:
t a &prime; = t a T S / 2 t a + t b = t a &times; log - 1 ( log ( T S / 2 ) - log ( t a + t b ) )
t b &prime; = T S - t a &prime;
方案二:
如果ta,tb≥(ta+tb-TS/2)/2,则t′a=ta-(ta+tb-TS/2)/2,t′b=TS-t′a
如果ta<(ta+tb-TS/2)/2,则t′a=0,t′b=TS/2
如果tb<(ta+tb-TS/2)/2,则t′a=TS/2,t′b=0;
步骤六,状态机与脉宽调制器调制波输出:状态机模块根据步骤一产生的同步脉冲、步骤五中时间计算模块中的时间输出和输入量模式选择信号实现对脉宽调制器的调制信号输出进行控制;
步骤七,死区调节:死区调节模块对经过步骤六处理的调制信号加入死区,形成一个可直接用于逆变器的调制信号;
所述同步脉冲的频率大小还用于控制参考矢量Uα、Uβ的采样率;
在步骤七中,死区调节模块分别对经过步骤六处理的调制信号的下降沿和上升沿加入延迟,将上升沿延迟信号作为逆变器的上桥臂控制信号,将下降沿延迟取反后作为逆变器的下桥臂控制信号。
CN2008100255274A 2008-04-29 2008-04-29 基于fpga的空间矢量脉宽调制方法 Expired - Fee Related CN101272123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100255274A CN101272123B (zh) 2008-04-29 2008-04-29 基于fpga的空间矢量脉宽调制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100255274A CN101272123B (zh) 2008-04-29 2008-04-29 基于fpga的空间矢量脉宽调制方法

Publications (2)

Publication Number Publication Date
CN101272123A CN101272123A (zh) 2008-09-24
CN101272123B true CN101272123B (zh) 2010-12-01

Family

ID=40005865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100255274A Expired - Fee Related CN101272123B (zh) 2008-04-29 2008-04-29 基于fpga的空间矢量脉宽调制方法

Country Status (1)

Country Link
CN (1) CN101272123B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158167A (zh) * 2011-03-14 2011-08-17 株洲南车时代电气股份有限公司 一种电压空间矢量调制方法
CN103999419B (zh) * 2011-12-15 2017-05-10 英特尔公司 用于生成脉冲调制信号的低功率发射机
CN102594184B (zh) * 2012-02-16 2014-12-24 中国西电电气股份有限公司 信号处理方法、装置和系统
CN102651632B (zh) * 2012-05-09 2014-06-04 浙江大学 用于高压大功率三相异步电机的六半桥svpwm控制方法
CN102749566B (zh) * 2012-07-26 2015-05-13 广东电网公司惠州供电局 基于fpga的变频串联谐振试验方法
CN103683870B (zh) * 2012-08-29 2017-04-12 通用电气公司 改进的变流器调制系统和方法
CN104601000A (zh) * 2013-10-31 2015-05-06 通用电气公司 变换器控制器,电能变换系统以及控制方法
CN104682827B (zh) * 2015-02-28 2017-05-10 广东美的制冷设备有限公司 电机控制系统及svpwm的死区插入方法
CN104779829B (zh) * 2015-04-08 2017-06-06 福州大学 分裂式可变调制波pwm过调制方法
CN105119550A (zh) * 2015-09-24 2015-12-02 杨浩东 一种采用cpld实现的简易多相svpwm调制方法
CN105978387A (zh) * 2015-12-16 2016-09-28 许昌学院 一种基于svpwm的光伏并网逆变器控制方法
CN107346935B (zh) * 2016-05-06 2020-09-08 孙燕英 多相svpwm信号发生器
CN105932925A (zh) * 2016-06-02 2016-09-07 上海新时达电气股份有限公司 一种基于fpga的电流环控制系统和伺服装置
CN106785832B (zh) * 2016-11-25 2019-04-23 深圳市杰普特光电股份有限公司 脉冲光纤激光器
CN112865650B (zh) * 2020-05-31 2023-05-30 江苏金陵智造研究院有限公司 基于fpga的斩波周期可变的硬件电流环控制系统及方法
CN113271027B (zh) * 2021-07-12 2021-09-17 希望森兰科技股份有限公司 一种二极管钳位的三电平逆变器高性能同步过调制算法
CN114002985A (zh) * 2021-11-02 2022-02-01 湖南航天机电设备与特种材料研究所 一种基于fpga的pwm波形产生方法及装置
CN115276621B (zh) * 2022-07-07 2024-04-19 重庆御芯微信息技术有限公司 一种高精度脉宽调制方法和装置

Also Published As

Publication number Publication date
CN101272123A (zh) 2008-09-24

Similar Documents

Publication Publication Date Title
CN101272123B (zh) 基于fpga的空间矢量脉宽调制方法
CN102811012B (zh) 基于fpga的多轴伺服电机电流环控制系统及控制方法
CN103715956B (zh) 一种二电平三相空间矢量脉冲宽度调制器及其svpwm优化方法
CN104460819B (zh) 一种光伏阵列最大功率点滑模跟踪控制方法及系统
EP2673868B1 (en) Input current shaping for transition and discontinuous mode power converter
CN1988365A (zh) 一种空间矢量脉宽调制输出的死区补偿方法
CN103731055B (zh) 一种简化的三电平空间矢量调制方法
CN103956951B (zh) 低载波比在线计算多模式空间矢量脉宽调制软核
CN101615853A (zh) 三电平pwm整流器对称三区的电压矢量脉宽调制方法
CN104158420A (zh) 一种三相三电平变流器的控制方法及控制系统
CN104253556B (zh) 一种五电平逆变器七段式svpwm调制方法
AU2005307333B2 (en) Computer method of motor model, motor simulation method, motor simulation apparatus, motor-model computing program, simulation method and simulation program
Kung et al. Simulink/Modelsim co-simulation and FPGA realization of speed control IC for PMSM drive
CN102710203A (zh) 一种基于能量优化的永磁电机控制装置和方法
CN104993730B (zh) 随机空间矢量pwm策略转换方法
CN104253550B (zh) 一种基于npc三电平svpwm整流器死区补偿方法
CN103326603A (zh) 一种开关周期优化空间矢量脉宽调制方法及调制器
CN103023464B (zh) 一种数字化三角波比较法
JPH09121558A (ja) モータ駆動制御装置
CN103746677B (zh) 一种svpwm实现方法
CN203872098U (zh) 低载波比在线计算多模式空间矢量脉宽调制软核
Sutikno et al. New approach FPGA-based implementation of discontinuous SVPWM
CN105375808A (zh) 一种开关损耗最优的五相逆变器空间矢量调制系统及方法
Idkhajine et al. Optimized FPGA-based extended Kalman filter application to an AC drive sensorless speed controller
CN104753376B (zh) 一种用于三相三电平逆变换器电路的空间矢量调制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101201

Termination date: 20110429