一种基于fpga的变开关频率脉宽调制实现方法

文档序号:1420681 发布日期:2020-03-13 浏览:22次 >En<

阅读说明:本技术 一种基于fpga的变开关频率脉宽调制实现方法 (FPGA-based variable switching frequency pulse width modulation implementation method ) 是由 宋宇庭 张鹏飞 谢华伟 李磊 张�成 田晓丹 李小峰 于 2019-11-25 设计创作,主要内容包括:本发明提供了一种基于FPGA的变开关频率脉宽调制实现方法,该方法根据调制波频率的不同,从而动态改变开关频率,实现最优的开关频率选择,减小开关损耗,延迟设备使用寿命。该方法的主要实现步骤是:1、FPGA接收DSP发送的调制比、基础频率以及频率正负;2、FPGA对接收的调制比、基础频率以及频率正负进行处理,获得门极触发脉冲;3、实时输出门极触发脉冲,实现功率开关器件的通断控制。(The invention provides a variable switching frequency pulse width modulation implementation method based on an FPGA (field programmable gate array). the method dynamically changes the switching frequency according to the difference of modulation wave frequencies, realizes optimal switching frequency selection, reduces switching loss and prolongs the service life of equipment. The method mainly comprises the following implementation steps: 1. the FPGA receives the modulation ratio, the basic frequency and the positive and negative frequencies sent by the DSP; 2. the FPGA processes the received modulation ratio, basic frequency and positive and negative frequencies to obtain a gate trigger pulse; 3. and a gate trigger pulse is output in real time, so that the on-off control of the power switch device is realized.)

一种基于FPGA的变开关频率脉宽调制实现方法

技术领域

本发明涉及一种基于FPGA的变开关频率脉宽调制实现方法。

背景技术

随着航空、航天、轨道交通等领域科技的不断进步,脉宽调制技术在自动化过程中越来越产生着至关重要的作用。大多数电机控制系统都是基于DSP+FPGA架构的控制系统,该控制系统以DSP和FPGA为核心处理器件,针对电机控制中的实时控制、高精度等具体问题,规划在DSP上实现电机控制算法,在FPGA上实现脉宽调制和脉冲输出功能。基于DSP+FPGA架构的电机控制系统将DSP浮点数处理优势和FPGA高速数据处理能力以及并行执行功能的优点相结合,很好的满足电机控制的实时性和高精度要求。

通常情况下,电机在低转速运行时,需要较高的开关频率才能保证输出良好的圆形磁链,同时具有较低的谐波含量。而在电机高转速运行时,不需要非常高的开关频率就可以实现圆形磁场跟踪和低谐波含量。

但是,现有的电机运行过程中,无论电机是以低转速运行还是高转速运行,都是采用较高的开关频率实现电机的控制,使得开关损耗比较大。

发明内容

本发明的目的在于提供了一种基于FPGA的变开关频率脉宽调制实现方法,根据调制波频率的不同,从而动态改变开关频率,实现最优的开关频率选择,减小开关损耗,延迟设备使用寿命。

本发明的基本实现原理是:

在基于DSP+FPGA架构的电机控制系统中,DSP计算得到脉宽调制所需的调制波数据:调制比、基础频率、频率正负等数据,并将这些数据通过总线输出至FPGA。FPGA根据这些数据生成三相调制波信号和三角载波,通过两者比较之后,得到控制功率开关器件通断的门极触发脉冲信号。

本发明的具体实现方案是:

本发明提供了一种基于FPGA的变开关频率脉宽调制实现方法,具体包括以下步骤:

步骤1:FPGA接收DSP发送的调制比、基础频率以及频率正负;

步骤2:FPGA对接收的调制比、基础频率以及频率正负进行处理,获得门极触发脉冲;

步骤2.1:根据调制比、基础频率和频率正负生成调制波;

步骤2.2:根据基础频率和线性化关系,计算载波开关频率,生成三角载波;所述线性化关系的表达式为:

y=b-kx;

k=(b-a)/a;

其中,x为基础频率,y为载波开关频率,k为线性化系数,b为最大有效开关频率;a为电机最大同步频率;

步骤2.3:根据对生成的调制波和三角载波进行比较,得到门极触发脉冲;

步骤3:实时输出门极触发脉冲,实现功率开关器件的通断控制。

进一步地,上述步骤2.2)根据基础频率和线性化关系,计算载波开关频率时,k是通过FPGA调用乘法器,且利用泰勒算法运算得出。

进一步地,通过泰勒算法运算k时,具体计算公式为:

本发明的有益效果是:

本发明中,FPGA利用DSP发送的调制比、基础频率、频率正负等数据生成三相调制波,并利用公式将载波开关频率和调制波基础频率线性化,通过选择最优的线性化系数,在满足电机形成良好的圆形磁链和低谐波含量的同时,减小功率开关器件的开关损耗,延长使用寿命、节省设备成本。

另外,在开关频率和基础频率线性化过程中,FPGA中利用泰勒算法实现乘法运算,实现乘法运算零延迟的效果,满足电机控制的实时性要求。

附图说明

图1基于FPGA的变开关频率脉宽调制实现框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

基于FPGA的变开关频率脉宽调制实现方法是利用FPGA根据输入调制比、基础频率等数据生成三相调制波,同时,对基础频率进行线性化处理,得到载波开关频率,进而生成三角载波,将调制波和三角载波进行比较,生成功率开关器件的门极触发脉冲。

以下结合附图1对本发明的实现方法进行详尽的描述:

1、FPGA与DSP通讯;

如图1所示,FPGA与外部通讯接口包括:16位数据线、7位地址线、片选信号、读信号和写信号;所传输数据有:调制比、基础频率、频率正负等数据。其中调制比影响调制波幅值,基础频率决定调制波频率,频率正负影响电机转动方向。

DSP作为主控设备,将调制比通过地址ADD0发送至FPGA,FPGA检测到地址ADD0,就将DAT0的数据储存在调制比寄存器PWMDAT0中,同理,检测到基础频率的地址ADD1,则将基础频率数据存储在基础频率寄存器PWMDAT1中,检测到频率正负的地址ADD2,则将频率正负的数据存储在频率正负的寄存器PWMDAT2中。

2、生成调制波:

调制波生成需要的数据为:调制比、基础频率、频率正负。

由于FPGA无法接收浮点型数据,所以DSP将调制比范围是[0,1]的浮点型数据放大8191倍转换为整形之后输出,即FPGA采集到对应的正弦波幅值范围为[0,8191]。

基础频率数据同样被DSP放大1024倍后输出至FPGA,所以FPGA接收到的基础频率与实际调制波周期的函数关系为:T=1024000000/基础频率(单位:us)。例如,基础频率数据为1024,则实际对应调制波周期T为1000000us=1s。

频率正负数据为1时,则电机正转,此时调制波Ua相位超前Ub相位120°,Ub相位超前Uc相位120°。频率正负数据为0时,则电机反转,此时调制波Ua相位超前Uc相位120°,Uc相位超前Ub相位120°。

在FPGA内建立ROM内核,将正弦函数离散为3072个点,每个点对应的正弦波幅值数据按照地址[0,3071]保存至ROM内核中,通过地址连续增加的方式读取ROM内核中的数据,从而生成调制波。

各相的调制波生成方式相同,相位互差120°,即当频率正负数据为0时,各相读取内核数据的起始地址分别为0,1024、2048;当频率正负数据为1时,读取内核数据的起始地址分别为0,2048、1024。

3、生成三角载波:

三角载波生成需要的数据只有调制波基础频率,载波开关频率和基础频率的线性关系为:y=b-kx;k=(b-a)/a;x为基础频率,y为载波开关频率,k为线性化系数,b为最大有效开关频率;a为电机最大同步频率;

例如:当b=1500,a=90时,计算可得k=15.6667

由于FPGA无法对小数进行运算,需要进行近似取整的方式才能运算,因此采用泰勒算法将线性化系数k=15.6667进行展开,展开结果如下式:

15.6667=24﹣2-1﹢2-2﹣2-3﹢2-4﹣2-5﹢2-6

在FPGA程序中,就可以通过下式,零延时得到乘法运算结果。

fswitch=1500﹣((f<<4)﹣(f>>1)+(f>>2)﹣(f>>3)+(f>>4)﹣(f>>5)+(f>>6))

由于FPGA接收到的基础频率是放大1024倍之后的数据,所以需要对上式放大1024倍,然后再代入采集的基础频率数据PWMDAT1,从而得到载波开关频率。在FPGA内建立ROM内核,将三角载波离散为1024个点,每个点对应的三角载波幅值数据按照地址[0,1023]保存至ROM内核内,通过地址连续增加的方式,循环读取ROM内核中的数据,从而生成三角载波。

4、生成门极触发脉冲:

通过对调制波数据和三角载波数据比较,就可以生成控制功率器件通断的PWM脉冲信号。为了避免功率器件和电源直通,根据所选功率器件的通断性能,设置满足要求的死区时间,就可以得到各功率器件的门极触发信号PWMU、PWMV、PWMW、PWMX、PWMY和PWMZ。

以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

6页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:网络设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!