尚经起名网

您现在的位置是:首页 >

企业资讯

抖音免费刷双击网址 - 快手刷点赞最低价在线,刷快手双击自助下单最低价

时间:2024-05-19 18:52 评论
所谓SPWM,就是通过只有开关两个状态(离散,数字的)的PWM序列产生正弦波(连续,模拟的)的方法。控制的方法有两大流派:模拟和数字。到此为止SPWM逆变器的软件就完成了。懒得搞的话,我也有一个现成的全桥模块我发布在立创的开源平台上了,已经打样验证过实物。在全桥输出端接上LC滤波器,上电开机就能看到正弦波了。...

自助下单地址(拼多多砍价,ks/qq/dy赞等业务):点我进入

前言:本文约2000字。 要求读者具有高等数学、模拟电子学、单片机等基础知识。 如果没有,您可以学习在线课程。 希望本文能为对逆变技术感兴趣的初学者提供一点帮助。

一、理论基础

所谓SPWM就是通过只有两种开关状态(离散的、数字的)的PWM序列产生正弦波(连续的、模拟的)的方法。 其理论依据可以用一句话解释清楚:当将脉冲相等但形状不同的窄脉冲施加于具有惯性的链接时,其效果基本相同。 打个人类的比方,一件中的五件和五件中的一件一样有价值。

从调制的角度,可以理解为以低频50hz正弦信号为调制波,以高频方波为载波。 调制方式为占空比调制。 信号经全桥放大后,功率大的50hz正弦信号。

2、调制方式

常见的调制方式有单极性PWM、双极性PWM和单极性倍频PWM。 单极性和双极性除以半个开关周期内负载上的电压变化。

在单极性PWM调制中,在正弦周期的前半周期,一个桥臂A的两个功率管以较高的开关频率互补全桥逆变控制板,另一个桥臂B只导通下管。 此时,负载上的电压在正电源电压和0V之间切换; 在后半个周期,A桥臂只导通下管,B桥臂高频互补开关,此时负载上的电压在负电源电压和0V之间切换,导致两个方向的电压。 半个周期只控制桥臂的一侧。 优点是开关损耗小,缺点是产生的正弦波在过零点会失真,控制复杂,MOS发热不均匀。

其负载上的波形图如下。

双极性pwm是在整个正弦周期内,四个管子工作在高频开关状态,对角线上的管子一起导通,另一对角线上的管子互补导通,实际上只有一个电路需要互补PWM控制,负载上的电压在正电压和负电压之间切换,不会出现0v。 两个桥臂都被控制半个周期。 优点是控制简单,波形畸变小,缺点是开关损耗大,发热量比较大。

负载上的波形如下:

倍频调制是上述两种控制方式的结合。 两侧桥臂控制在半个周期内,但负载在半个周期内只在一个电压和0V之间切换,不是正就是负。 其核心思想是两侧桥臂分别由两个相位差180度的正弦波和一个三角载波控制。 谐波显着减少,因此只需要较小的电感和电容滤波元件即可达到良好的滤波效果,提高了系统的性能,减小了系统的体积,降低了成本。 缺点是控制麻烦。

3. 占空比序列生成

这部分的作用是控制管子什么时候打开,什么时候关闭。

有两种主要的控制方法流派:模拟和数字。 模拟的方法很简单,产生正弦波和三角波,直接输入比较器,产生高低电平来控制管子的开关。 这个没什么好说的,就是搭建电路。 数字也分两派,模拟模拟法(两种模拟意义不同)有自然采样法、规则采样法、非对称规则采样法。 自然采样法通过计算高频三角波与正弦调制波的交点来确定开关点,从而得到相应的脉宽,产生SPWM波形。 本质上还是同一套仿真,但由于脉宽计算公式是超越方程,采样点不能预先确定,只能通过数值迭代求解,所以很少用到。

规则抽样法是它的一种简化。 正弦波仅在三角波的顶点或底部采样,形成阶梯波。 计算简单,但波形不是正弦波(谐波含量高)。

非对称正则抽样法是正则抽样法的优化。 它在每个载波周期采样两次,即在三角波的顶点采样和在三角波的底部采样。 阶梯波和正弦波的逼近度会大大提高(谐波含量低一点),但计算量是常规采样的两倍。

另一种数字实现方式是等面积法,它是纯数学的,与模拟无关。 还记得脉冲相等但形状不同的窄脉冲吗? 脉冲是电路中的伏秒积,图中用面积表示。 这种方法将正弦波分成等份,用等面积的PWM波代替,就可以计算出占空比。 该方法以最高精度生成正弦波。

图为我写的PY程序,计算结果,调制深度为1,半周期分为16段。 PWM幅值等于正弦波的最大值,图中灰色部分为高电平时间。 积分求面积,PWM波和正弦波的面积相等。

4.代码

我认为实现 SPWM 的最简单方法是双极性调制。 整个过程只需要控制一个PWM占空比。 代码包括两部分,生成SPWM占空比序列的py程序和基于hal库和STM32cubeMX的MCU程序。 因为我用的是F030F4,多了两块,只有16k RAM和4k存储,所以实时计算无从谈起,只能预先计算占空比序列,用查表法去实现它。

生成SPWM占空比序列的py程序有两种,分别是单极性和双极性。 让我们先从单极开始。

核心思想是分段全桥逆变控制板,求正弦波的积分,除以PWM周期的长度,结果就是PWM占空比。 结果是对称的,负半周更换桥臂。 很简单的数学,没有详细分析。

Bipolar 类似,但需要更改。 正弦波积分除以2倍PWM周期长度,结果加上50%就是PWM占空比。 占空比为50%时相当于0v输出,100%时相当于+vcc,为0%时相当于-vcc。

调制深度大致等于直流母线电压的利用率。 由于mos bootstrap driver和mos的限制,高边mos不能一直导通,也就是说占空比不能高达100%,90%算是保守值。 因此,调制深度最好不超过90%。 最终输出正弦波的有效值=直流母线电压*调制深度/根号2,输入24vDC,当调制深度为0.90时,可输出15.28vAC的有效值。 改变调制深度会改变正弦波电压。 点击运行,py会计算双精度的占空比,绝对比单片机的11位定时器精度高很多。

STM32使用了两个定时器,TIM1使用CH3互补输出48K PWM作为载波,TIM17作为中断时基,中断频率为12.8khz(基波50Hz X调制比256)。

生成一个长度为256的占空比序列,保存为数组。

重写TIM17中断回调函数,每次中断更新TIM1->CCR3的值,PWM占空比都会以12.8khz的刷新率变化。

至此SPWM逆变器的软件就完成了。 只要硬件连接正确,就可以输出SPWM波。 只要改变TIM17ARR值,就可以改变占空比刷新频率,实现变频。

5. 硬件设计

硬件上需要全桥,有关全桥 PCB 布局和选择,请参阅我之前的帖子。 如果你懒得做,我也有一个现成的全桥模块,我已经在易创开源平台上发布了,并且已经验证了原型。 记得连续点赞收藏评论三遍(笑)。 如果你懒得这样做,请把你的钱扔给我。

硬件上将L1和H2短接,将L2和H1短接,将单片机的pwm和互补pwm任意接到两个输入端,注意不要接错。 全桥输出端接上LC滤波器,通电即可看到正弦波。

将此正弦波连接到具有合适比率的工频变压器,以将电压升压至220v。 我手头没有合适的变压器,所以没有测试。 不过,比较常规的方案是先将电压升压到400v直流,再将高压全桥逆变器输入交流电,这样体积就可以做得更小 Wave是三相逆变器。

下面是两张测试图。