SPWM编程实现方法【STM32H743_CubeIDE】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

SPWM(Sinusoidal PWM),即正弦脉冲宽度调制技术,下面讲解如何通过CubeIDE实现STM32H743输出SPWM信号。

一、SPWM逆变原理

SPWM逆变主要基于冲量等效原理,即将一个周期的正弦波等分为N段,每段的长度为T,可以算出任意一段的积分面积S(即正弦波在T时间段内与横轴围成的面积),如果在每一段T时间段内,SPWM波与横轴围成的面积都等于T内正弦波的定积分S,那么通过相应的滤波电路对SPWM进行滤波后即可得到想要的正弦波。
在这里插入图片描述

二、单片机输出SPWM步骤

1.确定载波频率 Fp

载波就是下图中红线标出的波形(即单片机输出的PWM波)。PWM占空比的调整都在每个载波周期内进行。对于STM32单片机,我们只需要控制在某个载波周期内PWM的占空比即可。一般来讲,载波频率设置的越高,滤出的正弦波越细腻,能调出的正弦波频率上限也越高。
在这里插入图片描述

2.确定想要得到的正弦波频率 Fs

3.计算出正弦波一周波的分段N

N=Fp/Fs (PWM频率除以正弦波频率)
由此可见,正弦波频率越低,N越大,基波频率越低,N越小。

4.得出PWM占空比序列

这里的分段计算,就是在整个正弦波的一个周期内,依次计算。计算出每段S后,另PWM与横轴围成的面积等于S,即可得出该段的PWM占空比。一周期计算完成后,即得出了SPWM的占空比序列。

5.单片机输出PWM通过示波器观测现象

将得到的SPWM序列(一维数组)写入单片机后,在每个定时器中断中更新占空比即可。

二、SPWM序列生成方法

1.微软商店搜索“实用电子工具箱”

在这里插入图片描述
时钟频率Ft:单片机输出PWM使用的定时器频率(不知道的查手册,STM32H743定时器一般挂载在APH2上,200MHz)
载波Fp:定时器设置输出的PWM频率
基波Fs:想要的正弦波频率
SPWM幅值ARR:PWM的ARR值,重装载值
每周期点数N:即正弦波一周波的分段N,PWM频率除以正弦波频率

本文使用的参数如图中所示。(勾选对称采样法)
在这里插入图片描述

2.Matlab生成SPWM序列方法

代码如下(示例):

%-----硬件设置------------------------------------
  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值