CN105119550A - 一种采用cpld实现的简易多相svpwm调制方法 - Google Patents
一种采用cpld实现的简易多相svpwm调制方法 Download PDFInfo
- Publication number
- CN105119550A CN105119550A CN201510614787.5A CN201510614787A CN105119550A CN 105119550 A CN105119550 A CN 105119550A CN 201510614787 A CN201510614787 A CN 201510614787A CN 105119550 A CN105119550 A CN 105119550A
- Authority
- CN
- China
- Prior art keywords
- cpld
- signal
- sine
- multiphase
- time
- 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.)
- Pending
Links
Landscapes
- Inverter Devices (AREA)
Abstract
一种采用CPLD实现的简易多相SVPWM调制方法,它包括如下步骤:a)CPLD与微处理通过8位或16位并口实现通信,由微处理向CPLD发送正弦波调制比<i>A</i>和空间电压矢量的当前位置电角度<i>θ</i>,CS为CPLD或FPGA片选信号;b)CPLD在接受微处理发送来的A和<i>θ</i>后,通过正弦算法,计算<i>n</i>相电压调制信号<i>U1</i>、<i>U2</i>、…<i>Un</i>,通过比较得到n个信号的最大值Max和最小值,得到一个偏移量<i>Toffset</i>,<i>Ts</i>为开关周期,然后得到<i>T1、T2、…Tn</i>,接着对其右移一位,得到与计数器的比较值;c)在CPLD内部设计一向上向下重复计数的计数器;输出的信号经过死区产生模块DB,最终生成<i>n</i>相系统的2<i>n</i>个PWM驱动脉冲。
Description
技术领域
本发明涉及的是一种采用CPLD实现的简易多相SVPWM调制方法,属于交流电机调速控制技术领域。
背景技术
在对交流电机进行调速控制时,都需要对驱动器的功率器件进行脉冲宽度调制,从而控制输出的多相交流电压的基波频率和幅度。在实现多相脉宽调制时,最简单的方法就是通过给定参考电压矢量直接通过正弦运算得到各相的正弦调制信号,然后与高频的三角波载波信号做比较,得到多相PWM调制信号,这种方法即为传统的正弦脉冲宽度调制(SVPWM)算法,该种方法虽然实现简单,但直流电压利用率低,一般在多相电机调速当中使用不多。
当前使用较多的是空间矢量调制(SVPWM)方法,它采用的SVPWM算法驱动器直流母线电压利用率低,比较适合于数字处理器实现,但从目前公开的一些文献中可以看出,对于多相SVPWM调制方法,计算量较大,一般需要如下几个步骤:
a.根据给定的参考电压矢量,判断在电压矢量所在扇区;
b.根据所在扇区,确定出合成电压矢量的基本矢量;
c.计算基本矢量在一个开关周期的作用时间;
d.通过数字信号处理器中的计数器和比较器,得到多相PWM脉冲。
上述方法与传统的三相SVPWM调制方法相比,计算量大大增加,首先由于相数的增加,扇区和基本矢量将急剧增加,若相数为9相,则基本矢量将达到29=512个基本矢量,在判断电压矢量的扇区位置和确定需要合成的基本矢量时,需要花费较多的处理器时间,而且在计算每个基本矢量的作用时间时,需要计算正弦函数以及乘除法运算,耗费时间也较多。如果当相数超过5相时,一般目前的微处理器内部也不能提供如此多的比较器,具体实现起来较为困难。
发明内容
本发明的目的在于克服现有技术存在的不足,而提供一种在PWM调制线性区域内,采用CPLD与微处理器结合的方式,实现的一种简易多相SVPWM调制方法,该方法的实现不会增加微处理器负担,而且由于SVPWM调制方法只需要在传统的SPWM调制算法的基础上,增加较少的运算量,即可实现多相SVPWM的效果;该方法能够采用小规模的CPLD实现多相SVPWM算法,实现简单,成本低。
本发明的目的是通过如下技术方案来完成的,一种采用CPLD实现的简易多相SVPWM调制方法,所述的调制方法包括如下步骤:
a)所述的CPLD与微处理通过8位或16位并口实现通信,由微处理向CPLD发送正弦波调制比A和空间电压矢量的当前位置电角度θ,CS为CPLD或FPGA片选信号;
b)CPLD在接受微处理发送来的A和θ后,通过正弦算法,通过采用查表或Cordic算法实现,计算n相电压调制信号U 1 、U 2 、…U n ,这里n相电压调制信号计算可以采用并行的或串行的硬件结构,或串并结合的硬件结构;
得到U 1 、U 2 、…U n ,通过比较得到n个信号的最大值Max和最小值,接着通过一个减法运算和移位操作,得到一个偏移量T offset ,T s 为开关周期,然后该偏移量分别与U 1 、U 2 、…U n 相加,得到T 1 、T 2 、…T n ,接着对其右移一位,得到与计数器的比较值M 1 、M 2 、…M n ;
c)在CPLD内部设计一向上向下重复计数的计数器,最大计数值为量化后的开关周期T s 的一半,当M 1 、M 2 、…M n 大于计数器的值时,对应输出高电平,否则输出低电平;输出的信号经过死区产生模块DB,最终生成n相系统的2n个PWM驱动脉冲。
作为一种优选:所述的步骤a)中,所述的CPLD通过数据总线得到微处器传送过来的幅度A和相位θ后,送入正弦计算模块,并得到n相基本调制信号U 1 、U 2 、…U n ;该步骤的实现需要n个乘法运算和n个正弦运算,且当系统相数较小,采用的是全部并行运算;若系统相数较多,则需要并行算法或串并结合的方式,并需要牺牲时间来减少硬件资源的使用。
本发明所述的:全部采用并行算法时,只需要一个硬件乘法器和一个正弦运算器,其实现方法如下:
CPLD接受幅度A和相位θ前,需要预先计算出一次正弦和一次乘法运算需要的周期数,这样就可以通过输入端的时间多路选择器来分配硬件正选运算器的输入,在完成正弦和乘法运算后,再由输出端的时间多路选择器分配输出到对应的寄存器中;即若完成全部n路U 1 、U 2 、…U n 的计算需要时间为T,这每一路计算需要T/n的时间,在0-T/n的时间段内,把其分成4份,第一份用于选择正弦运算的输入θ,第二份进行正弦运算,第三份用于乘法运算,最后一份用于把乘法运算得到的结果存于U 1 的寄存器中;在T/n-2T/n时间段内,θ-2π/n为正弦运算模块的输入,接着如上进行正弦和乘法运算,最后在第四阶段,把结果送入U 2 的寄存器当中,以后按同样的方式进行。
作为一种优选:所述的步骤b)中,所述偏移量T offset 的得到主要是利用CPLD中的硬件比较器,通过求取U 1 、U 2 、…U n 的最大Max和最小值Min,然后通过简单的加减法运算和移位操作,通过如下公式:,求到Toffset值。
作为一种优选:所述的步骤c)中,在用于电机调速时,n路脉冲需要变换为2n的上下桥臂带有死区的PWM信号,通过把上面得到的n路PWM信号,经过DB死区产生模块,即可输出需要的2n路PWM信号;
DB死区产生采样PWM信号延时一个时间Td,然后与原来的信号相与的方式得到。
本发明采用CPLD实现了一种简易的多相SVPWM控制算法,内部首先通过并行或串行或串并结合的方式,计算得到n个基本的调制信号U 1 、U 2 、…U n ,然后通过在其上累加一个偏移量T offset ,通过简单的移位操作,得到n相的与计数器比较的信号,CPLD内部只需要实现一个向上向下对称计数器,与n个信号比较后,通过死区产生模块,从而得到2n个PWM调制信号,所需的计算量小,实现简单,并能达到与传统SVPWM调制同样的效果。
本发明所述的基本正弦调制信号U1、U2、…Un的计算可以采用串行或串并结合的方式,需要的硬件资源小,实现简单,并且不会增加微处理器的工作负荷。
本发明与传统的多相SVPWM调制方法相比,不需要判断给定矢量的扇区,实现方法简单,计算量小,需要的硬件资源少,成本低,而性能可以达到传统多相SVPWM算法的性能;主要适用于所有奇数相(如三相、五相等)交流电机驱动器的脉冲宽度调制。
附图说明
图1是本发明所述的实现框图。
图2是本发明所述的微处理器和CPLD之间通信实现框图。
图3是本发明所述的硬件正弦运算器和硬件乘法器的并行算法实现框图。
图4是本发明所述用于电机调速时的PWM信号波形图。
具体实施方式
下面将结合附图及实施例对本发明作详细的介绍:图1所示,一种采用CPLD实现的简易多相SVPWM调制方法,所述的调制方法包括如下步骤:
a)所述的CPLD与微处理通过8位或16位并口实现通信,由微处理向CPLD发送正弦波调制比A和空间电压矢量的当前位置电角度θ,CS为CPLD或FPGA片选信号;
b)CPLD在接受微处理发送来的A和θ后,通过正弦算法,通过采用查表或Cordic算法实现,计算n相电压调制信号U 1 、U 2 、…U n ,这里n相电压调制信号计算可以采用并行的或串行的硬件结构,或串并结合的硬件结构;
得到U 1 、U 2 、…U n ,通过比较得到n个信号的最大值Max和最小值,接着通过一个减法运算和移位操作,得到一个偏移量T offset ,T s 为开关周期,然后该偏移量分别与U 1 、U 2 、…U n 相加,得到T 1 、T 2 、…T n ,接着对其右移一位,得到与计数器的比较值M 1 、M 2 、…M n ;
c)在CPLD内部设计一向上向下重复计数的计数器,最大计数值为量化后的开关周期T s 的一半,当M 1 、M 2 、…M n 大于计数器的值时,对应输出高电平,否则输出低电平;输出的信号经过死区产生模块DB,最终生成n相系统的2n个PWM驱动脉冲。
本发明所述的步骤a)中,所述的CPLD通过数据总线得到微处器传送过来的幅度A和相位θ后,送入正弦计算模块,并得到n相基本调制信号U 1 、U 2 、…U n ;该步骤的实现需要n个乘法运算和n个正弦运算,且当系统相数较小,采用的是全部并行运算;若系统相数较多,则需要并行算法或串并结合的方式,并需要牺牲时间来减少硬件资源的使用。
全部采用并行算法时,只需要一个硬件乘法器和一个正弦运算器,其实现方法如下:
CPLD接受幅度A和相位θ前,需要预先计算出一次正弦和一次乘法运算需要的周期数,这样就可以通过输入端的时间多路选择器来分配硬件正选运算器的输入,在完成正弦和乘法运算后,再由输出端的时间多路选择器分配输出到对应的寄存器中;即若完成全部n路U 1 、U 2 、…U n 的计算需要时间为T,这每一路计算需要T/n的时间,在0-T/n的时间段内,把其分成4份,第一份用于选择正弦运算的输入θ,第二份进行正弦运算,第三份用于乘法运算,最后一份用于把乘法运算得到的结果存于U 1 的寄存器中;在T/n-2T/n时间段内,θ-2π/n为正弦运算模块的输入,接着如上进行正弦和乘法运算,最后在第四阶段,把结果送入U 2 的寄存器当中,以后按同样的方式进行。
本发明所述的步骤b)中,所述偏移量T offset 的得到主要是利用CPLD中的硬件比较器,通过求取U 1 、U 2 、…U n 的最大Max和最小值Min,然后通过简单的加减法运算和移位操作,通过如下公式:,求到Toffset值。
本发明所述的步骤c)中,在用于电机调速时,n路脉冲需要变换为2n的上下桥臂带有死区的PWM信号,通过把上面得到的n路PWM信号,经过DB死区产生模块,即可输出需要的2n路PWM信号;
DB死区产生采样PWM信号延时一个时间Td,然后与原来的信号相与的方式得到。
实施例:
1.微处理与CPLD接口。如图2所示,微处器与CPLD之间的通信采样并口实现,微处理器可选用TI公司的C2000系列芯片,直接利用其16位外部并行总线即可,CPLD的地址和数据总线可以直接利用CPLD的IO引脚实现。D0-D15位数据总线,B0-B3为地址总线,可以根据微处理所带的外部设备的多少进行增减,CS为片选信号,用来选择CPLD中实现的算法是否工作。
2.CPLD通过数据总线得到微处器传送过来的幅度A和相位θ后,送入正弦计算模块,来得到n相基本调制信号U 1 、U 2 、…U n 。该部分的实现需要n个乘法运算和n个正弦运算。如系统相数较小,可以采用全部并行运算;若系统相数较多,则需要并行算法或串并结合的方式,需要牺牲时间来减少硬件资源的使用。
以下以全部采用并行算法为例来解释,若全部采用并行算法时,只需要一个硬件乘法器和一个正弦运算器,实现原理如图3所示:
该模块接受幅度A和相位θ,在设计该模块时,需要预先计算出一次正弦和一次乘法运算需要的周期数,这样就可以通过输入端的时间多路选择器来分配硬件正选运算器的输入,在完成正弦和乘法运算后,再由输出端的时间多路选择器分配输出到对应的寄存器中。举例来说:若完成全部n路U 1 、U 2 、…U n 的计算需要时间为T,这每一路计算需要T/n的时间,在0-T/n的时间段内,把其分成4份,第一份用于选择正弦运算的输入θ,第二份进行正弦运算,第三份用于乘法运算,最后一份用于把乘法运算得到的结果存于U 1 的寄存器中;在T/n-2T/n时间段内,θ-2π/n为正弦运算模块的输入,接着如上进行正弦和乘法运算,最后在第四阶段,把结果送入U 2 的寄存器当中,以后按同样的方式进行。
本部分用到的正弦运算可以采用查表或Cordic算法实现,目前成熟的实现方法较多,这里不再叙述。
3.T offset 求取。T offset 是本算法的核心,具体实现可以利用CPLD中的硬件比较器求取U 1 、U 2 、…U n 的最大Max和最小值Min。然后通过简单的加减法运算和移位操作,,得到Toffset后,通过与U 1 、U 2 、…U n 相加后右移一位,即可得到计数器的比较值M 1 、M 2 、…M n 。
4.本专利实现方法需要用到一个向上向下重复计数器,利用CPLD容易实现,实现方法成熟,这里不再叙述。
5.当M 1 、M 2 、…M n 大于计数器值时,对应的PWM为高,否则为低,这样可以得到n路PWM脉冲。
6.在用于电机调速时,n路脉冲需要变换为2n的上下桥臂带有死区的PWM信号,通过把上面得到的n路PWM信号,经过DB死区产生模块,即可输出需要的2n路PWM信号。
DB死区产生采样PWM信号延时一个时间Td,然后与原来的信号相与的方式得到;实现方法如图4所示。
Claims (5)
1.一种采用CPLD实现的简易多相SVPWM调制方法,其特征在于所述的调制方法包括如下步骤:
a)所述的CPLD与微处理通过8位或16位并口实现通信,由微处理向CPLD发送正弦波调制比A和空间电压矢量的当前位置电角度θ,CS为CPLD或FPGA片选信号;
b)CPLD在接受微处理发送来的A和θ后,通过正弦算法,通过采用查表或Cordic算法实现,计算n相电压调制信号U 1 、U 2 、…U n ,这里n相电压调制信号计算可以采用并行的或串行的硬件结构,或串并结合的硬件结构;
得到U 1 、U 2 、…U n ,通过比较得到n个信号的最大值Max和最小值,接着通过一个减法运算和移位操作,得到一个偏移量T offset ,T s 为开关周期,然后该偏移量分别与U 1 、U 2 、…U n 相加,得到T 1 、T 2 、…T n ,接着对其右移一位,得到与计数器的比较值M 1 、M 2 、…M n ;
c)在CPLD内部设计一向上向下重复计数的计数器,最大计数值为量化后的开关周期T s 的一半,当M 1 、M 2 、…M n 大于计数器的值时,对应输出高电平,否则输出低电平;输出的信号经过死区产生模块DB,最终生成n相系统的2n个PWM驱动脉冲。
2.根据权利要求1所述的采用CPLD实现的简易多相SVPWM调制方法,其特征在于所述的步骤a)中,所述的CPLD通过数据总线得到微处器传送过来的幅度A和相位θ后,送入正弦计算模块,并得到n相基本调制信号U 1 、U 2 、…U n ;该步骤的实现需要n个乘法运算和n个正弦运算,且当系统相数较小,采用的是全部并行运算;若系统相数较多,则需要并行算法或串并结合的方式,并需要牺牲时间来减少硬件资源的使用。
3.根据权利要求2所述的采用CPLD实现的简易多相SVPWM调制方法,其特征在于:全部采用并行算法时,只需要一个硬件乘法器和一个正弦运算器,其实现方法如下:
CPLD接受幅度A和相位θ前,需要预先计算出一次正弦和一次乘法运算需要的周期数,这样就可以通过输入端的时间多路选择器来分配硬件正选运算器的输入,在完成正弦和乘法运算后,再由输出端的时间多路选择器分配输出到对应的寄存器中;即若完成全部n路U 1 、U 2 、…U n 的计算需要时间为T,这每一路计算需要T/n的时间,在0-T/n的时间段内,把其分成4份,第一份用于选择正弦运算的输入θ,第二份进行正弦运算,第三份用于乘法运算,最后一份用于把乘法运算得到的结果存于U 1 的寄存器中;在T/n-2T/n时间段内,θ-2π/n为正弦运算模块的输入,接着如上进行正弦和乘法运算,最后在第四阶段,把结果送入U 2 的寄存器当中,以后按同样的方式进行。
4.根据权利要求1所述的采用CPLD实现的简易多相SVPWM调制方法,其特征在于所述的步骤b)中,所述偏移量T offset 的得到主要是利用CPLD中的硬件比较器,通过求取U 1 、U 2 、…U n 的最大Max和最小值Min,然后通过简单的加减法运算和移位操作,通过如下公式:,求到Toffset值。
5.根据权利要求1所述的采用CPLD实现的简易多相SVPWM调制方法,其特征在于所述的步骤c)中,在用于电机调速时,n路脉冲需要变换为2n的上下桥臂带有死区的PWM信号,通过把上面得到的n路PWM信号,经过DB死区产生模块,即可输出需要的2n路PWM信号;
DB死区产生采样PWM信号延时一个时间Td,然后与原来的信号相与的方式得到。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510614787.5A CN105119550A (zh) | 2015-09-24 | 2015-09-24 | 一种采用cpld实现的简易多相svpwm调制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510614787.5A CN105119550A (zh) | 2015-09-24 | 2015-09-24 | 一种采用cpld实现的简易多相svpwm调制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105119550A true CN105119550A (zh) | 2015-12-02 |
Family
ID=54667470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510614787.5A Pending CN105119550A (zh) | 2015-09-24 | 2015-09-24 | 一种采用cpld实现的简易多相svpwm调制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105119550A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147278A (zh) * | 2017-05-09 | 2017-09-08 | 南京航空航天大学 | 一种基于fpga的五相随机svpwm技术实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1905339A (zh) * | 2006-07-31 | 2007-01-31 | 湖南大学 | 有源电力滤波器逆变器谐波域死区效应的补偿方法 |
CN101272123A (zh) * | 2008-04-29 | 2008-09-24 | 江南大学 | 基于fpga的空间矢量脉宽调制方法 |
JP2010011728A (ja) * | 2008-06-24 | 2010-01-14 | System Homes:Kk | パルス符号幅変調モータ駆動システム |
CN103618491A (zh) * | 2013-11-21 | 2014-03-05 | 中国矿业大学 | 一种基于双三电平逆变器供电拓扑的svpwm策略 |
US20140300427A1 (en) * | 2013-04-09 | 2014-10-09 | Hamilton Sundstrand Corporation | Lookup table assisted pulse width modulation |
-
2015
- 2015-09-24 CN CN201510614787.5A patent/CN105119550A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1905339A (zh) * | 2006-07-31 | 2007-01-31 | 湖南大学 | 有源电力滤波器逆变器谐波域死区效应的补偿方法 |
CN101272123A (zh) * | 2008-04-29 | 2008-09-24 | 江南大学 | 基于fpga的空间矢量脉宽调制方法 |
JP2010011728A (ja) * | 2008-06-24 | 2010-01-14 | System Homes:Kk | パルス符号幅変調モータ駆動システム |
US20140300427A1 (en) * | 2013-04-09 | 2014-10-09 | Hamilton Sundstrand Corporation | Lookup table assisted pulse width modulation |
CN103618491A (zh) * | 2013-11-21 | 2014-03-05 | 中国矿业大学 | 一种基于双三电平逆变器供电拓扑的svpwm策略 |
Non-Patent Citations (2)
Title |
---|
刘璐燕: "六相感应电机建模与控制技术研究", 《中国优秀硕士学位论文全文数据库 工程科技II辑》 * |
张德学等: "《FPGA现代数字系统设计及应用》", 1 June 2015 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147278A (zh) * | 2017-05-09 | 2017-09-08 | 南京航空航天大学 | 一种基于fpga的五相随机svpwm技术实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Trzynadlowski et al. | Space vector PWM technique with minimum switching losses and a variable pulse rate [for VSI] | |
CN102195552B (zh) | 近似多相电机中基波与三次谐波峰值合计电压的方法、系统和装置 | |
US10199979B2 (en) | Power conversion device | |
US10374503B2 (en) | Power conversion device | |
JP2005535277A (ja) | 中〜高電圧、3レベル以上のac駆動インバーターブリッジを駆動する低電圧、2レベル、6パルス誘導モーターコントローラー | |
CN102624319A (zh) | 控制三次谐波电压的方法、系统和设备 | |
US9628012B2 (en) | Motor control device and motor control method | |
CN104796024A (zh) | 一种适用于三相级联h桥型变换器的简化多电平空间矢量脉宽调制方法及其调制软核 | |
CN105827176A (zh) | 抑制双y移30度六相电机共模电压的空间矢量调制方法 | |
CN104253556A (zh) | 一种五电平逆变器七段式svpwm调制方法 | |
KR20090089055A (ko) | 2상 영구자석 동기 전동기의 공간전압벡터 제어 장치 및방법 | |
Badran et al. | Digital implementation of space vector pulse width modulation technique using 8-bit microcontroller | |
Sanila | Direct Torque Control of induction motor with constant switching frequency | |
WO2019128674A1 (zh) | 单相五电平变流器的控制方法以及装置 | |
CN105119550A (zh) | 一种采用cpld实现的简易多相svpwm调制方法 | |
Sutikno et al. | New approach FPGA-based implementation of discontinuous SVPWM | |
Ohiero et al. | A fast simulation model for a permanent magnet synchronous generator (PMSG) drive system | |
Manjunatha et al. | Multilevel DC Link Inverter with Reduced Number of Switches and Batteries | |
JP2016012999A (ja) | 回転機の制御装置 | |
Sonawane et al. | FPGA Implementation of Simplified SVPWMAlgorithm for Three Phase Voltage SourceInverter | |
CN203872098U (zh) | 低载波比在线计算多模式空间矢量脉宽调制软核 | |
Sudheer et al. | Implementaion of SVM-DTC of induction motor using FPGA | |
KR101062206B1 (ko) | 삼상 인버터의 전원 보상기, 보상 방법, 구동 장치, 구동 방법 | |
Jidin et al. | MATLAB/SIMULINK based analysis of voltage source inverter with space vector modulation | |
Khan et al. | Space vector pulse width modulation scheme for a seven-phase voltage source inverter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151202 |