最近在做逆变电源,其中需要一组SPWM波,下面就介绍一下,产生SPWM的方法。
首先利用C_Free产生一直正弦规律的数据,这样用微控制产生相应数据占空比的pwm就可以了。
代码如下:
#include <stdio.h>
#include <math.h>
#define PI 3.1415926535897932384626433832795
#define W (100*PI)
int main(int argc, char *argv[])
{
double a[128]={0};
double Len;
double x = 0;//之前i为int行数据,一直是同一个数,这里比较容易出错
int j = 0;
Len = 0.01/128;//半个周期取128个点 (由于要获得50hz的正弦波,所以半个周期为0.01s)
for(x=0;x<=0.01;x=x+Len)
{
a[j]=(cos(W*x)-cos(W*(x+Len)))/W;//利用积分