一种采用cpld实现的简易多相svpwm调制方法
【技术领域】
[0001] 本发明涉及的是一种采用CPLD实现的简易多相SVPffM调制方法,属于交流电机调 速控制技术领域。
【背景技术】
[0002] 在对交流电机进行调速控制时,都需要对驱动器的功率器件进行脉冲宽度调制, 从而控制输出的多相交流电压的基波频率和幅度。在实现多相脉宽调制时,最简单的方 法就是通过给定参考电压矢量直接通过正弦运算得到各相的正弦调制信号,然后与高频的 三角波载波信号做比较,得到多相PWM调制信号,这种方法即为传统的正弦脉冲宽度调制 (SVPffM)算法,该种方法虽然实现简单,但直流电压利用率低,一般在多相电机调速当中使 用不多。
[0003] 当前使用较多的是空间矢量调制(SVPffM)方法,它采用的SVPffM算法驱动器直流 母线电压利用率低,比较适合于数字处理器实现,但从目前公开的一些文献中可以看出,对 于多相SVPffM调制方法,计算量较大,一般需要如下几个步骤: a. 根据给定的参考电压矢量,判断在电压矢量所在扇区; b. 根据所在扇区,确定出合成电压矢量的基本矢量; c. 计算基本矢量在一个开关周期的作用时间; d. 通过数字信号处理器中的计数器和比较器,得到多相PffM脉冲。
[0004] 上述方法与传统的三相SVPffM调制方法相比,计算量大大增加,首先由于相数的 增加,扇区和基本矢量将急剧增加,若相数为9相,则基本矢量将达到29=512个基本矢量, 在判断电压矢量的扇区位置和确定需要合成的基本矢量时,需要花费较多的处理器时间, 而且在计算每个基本矢量的作用时间时,需要计算正弦函数以及乘除法运算,耗费时间也 较多。如果当相数超过5相时,一般目前的微处理器内部也不能提供如此多的比较器,具体 实现起来较为困难。
【发明内容】
[0005] 本发明的目的在于克服现有技术存在的不足,而提供一种在PffM调制线性区域 内,采用CPLD与微处理器结合的方式,实现的一种简易多相SVPffM调制方法,该方法的实 现不会增加微处理器负担,而且由于SVPffM调制方法只需要在传统的SPffM调制算法的基础 上,增加较少的运算量,即可实现多相SVPffM的效果;该方法能够采用小规模的CPLD实现多 相SVPffM算法,实现简单,成本低。
[0006] 本发明的目的是通过如下技术方案来完成的,一种采用CPLD实现的简易多相 SVPffM调制方法,所述的调制方法包括如下步骤: a) 所述的CPLD与微处理通过8位或16位并口实现通信,由微处理向CPLD发送正弦 波调制比肩^空间电压矢量的当前位置电角度〃,CS为CPLD或FPGA片选信号; b) CPLD在接受微处理发送来的A和〃后,通过正弦算法,通过采用查表或Cordic算 法实现,计算Λ相电压调制信号…仏,这里Λ相电压调制信号计算可以采用并行的 或串行的硬件结构,或串并结合的硬件结构; 得到心心…仏,通过比较得到η个信号的最大值Max和最小值,接着通过一个减法 运算和移位操作,得到一个偏移量7;//ssi,7;为开关周期,然后该偏移量分别与…仏 相加,得到7;、7;、…7;,接着对其右移一位,得到与计数器的比较值妁、鳥 c)在CPLD内部设计一向上向下重复计数的计数器,最大计数值为量化后的开关周期 7;的一半,当妁、鳥大于计数器的值时,对应输出高电平,否则输出低电平;输出的信 号经过死区产生模块DB,最终生成相系统的2 # PffM驱动脉冲。
[0007] 作为一种优选:所述的步骤a)中,所述的CPLD通过数据总线得到微处器传送过来 的幅度J和相位〃后,送入正弦计算模块,并得到η相基本调制信号^、^、…心该步骤的 实现需要#乘法运算和个正弦运算,且当系统相数较小,采用的是全部并行运算;若系 统相数较多,则需要并行算法或串并结合的方式,并需要牺牲时间来减少硬件资源的使用。
[0008] 本发明所述的:全部采用并行算法时,只需要一个硬件乘法器和一个正弦运算器, 其实现方法如下: CPLD接受幅度肩相位〃前,需要预先计算出一次正弦和一次乘法运算需要的周期 数,这样就可以通过输入端的时间多路选择器来分配硬件正选运算器的输入,在完成正弦 和乘法运算后,再由输出端的时间多路选择器分配输出到对应的寄存器中;即若完成全部 /7路心仏、…仏的计算需要时间为7;这每一路计算需要Τ//7的时间,在的时间段 内,把其分成4份,第一份用于选择正弦运算的输入〃,第二份进行正弦运算,第三份用于 乘法运算,最后一份用于把乘法运算得到的结果存于G的寄存器中;在寸间段 内,〃-//?为正弦运算模块的输入,接着如上进行正弦和乘法运算,最后在第四阶段,把 结果送入G的寄存器当中,以后按同样的方式进行。
[0009] 作为一种优选:所述的步骤b)中,所述偏移量7;//ssi的得到主要是利用CPLD中的 硬件比较器,通过求取G、%、…仏的最大和最小值#i/?,然后通过简单的加减法运算 和移位操作,通过如下公式:??Oh-Mi)/夂求到T ciffset值。
[0010] 作为一种优选:所述的步骤c)中,在用于电机调速时,η路脉冲需要变换为2n的 上下桥臂带有死区的PWM信号,通过把上面得到的η路PffM信号,经过DB死区产生模块,即 可输出需要的2n路PffM信号; DB死区产生采样PffM信号延时一个时间Td,然后与原来的信号相与的方式得到。
[0011] 本发明采用CPLD实现了一种简易的多相SVPffM控制算法,内部首先通过并行或串 行或串并结合的方式,计算得到η个基本的调制信号0、仏、…仏,然后通过在其上累加一 个偏移量7; //ssi,通过简单的移位操作,得到η相的与计数器比较的信号,CPLD内部只需要 实现一个向上向下对称计数器,与η个信号比较后,通过死区产生模块,从而得到2η个PffM 调制信号,所需的计算量小,实现简单,并能达到与传统SVPffM调制同样的效果。
[0012] 本发明所述的基本正弦调制信号U1、U2、…Un的计算可以采用串行或串并结合的 方式,需要的硬件资源小,实现简单,并且不会增加微处理器的工作负荷。
[0013] 本发明与传统的多相SVPffM调制方法相比,不需要判断给定矢量的扇区,实现方 法简单,计算量小,需要的硬件资源少,成本低,而性能可以达到传统多相SVPffM算法的性 能;主要适用于所有奇数相(如三相、五相等)交流电机驱动器的脉冲宽度调制。
【附图说明】
[0014] 图1是本发明所述的实现框图。
[0015] 图2是本发明所述的微处理器和CPLD之间通信实现框图。
[0016] 图3是本发明所述的硬件正弦运算器和硬件乘法器的并行算法实现框图。
[0017] 图4是本发明所述用于电机调速时的PffM信号波形图。
【具体实施方式】
[0018] 下面将结合附图及实施例对本发明作详细的介绍:图1所示,一种采用CPLD实现 的简易多相SVPffM调制方法,所述的调制方法包括如下步骤: a) 所述的CPLD与微处理通过8位或16位并口实现通信,由微处理向CPLD发送正弦 波调制比肩^空间电压矢量的当前位置电角度〃,CS为CPLD或FPGA片选信号; b) CPLD在接受微处理发送来的A和〃后,通过正弦算法,通过采用查表或Cordic算 法实现,计算λ相电压调制信号…仏,这里λ相电压调制信号计算可以采用并行的 或串行的硬件结构,或串并结合的硬件结构; 得到心心…仏,通过比较得到η个信号的最大值Max和最小值,接着通过一个减法 运算和移位操作,得到一个偏移量7;为开关周期,然后该偏移量分别与…仏 相加,得到7;、7;、…7;,接着对其右移一位,得到与计数器的比较值妁、鳥 c) 在CPLD内部设计一向上向下重复计数的计数器,最大计数值为量化后的开关周期 7;的一半,当妁、鳥大于计数器的值时,对应输出高电平,否则输出低电平;输出的信 号经过死区产生模块DB,最终生成相系统的2 # PffM驱动脉冲。
[0019] 本发明所述的步骤a)中,所述的CPLD通过数据总线得到微处器传送过来的幅度 J和相位〃后,送入正弦计算模块,并得到η相基本调制信号…心该步骤的实现需 要#乘法运算和个正弦运算,且当系统相数较小,采用的是全部并行运算;若系统相数 较多,则需要并行算法或串并结合的方式,并需要牺牲时间来减少硬件资源的使用。
[0020] 全部采用并行算法时,只需要一个硬件乘法器和一个正弦运算器,其实现方法如 下: CPLD接受幅度肩相位〃前,需要预先计算出一次正弦和一次乘法运算需要的周期 数,这样就可以通过输入端的时间多路选择器来分配硬件正选运算器的输入,在完成正弦 和乘法运算后,再由输出端的时