简述SPWM算法中的"自然采样法"与规则采样法“的区别

简述SPWM算法中的"自然采样法"与规则采样法“的区别,第1张

自然采样法是在正弦波和三角波的自然交点处控制功率开关的通断。所得到的SPWM波很接近正弦波,但这种方法要求解复杂的超越方程,采用微机控制技术时需花费大量的计算时间,难以在实时控制中在线计算,因而使用较少。

规则采样法是一种在采用微机实现时实用的PWM波形生成方法。规则采样法是在自然采样法的基础上得出的。规则采样法的基本思路是:取三角波载波两个正峰值之间为一个采样周期。使每个PWM脉冲的中点和三角波一周期的中点(即负峰点)重合,在三角波的负峰时刻对正弦信号波采样而得到正弦波的值,用幅值与该正弦波值相等的一条水平直线近似代替正弦信号波,用该直线与三角波载波的交点代替正弦波与载波的交点,即可得出控制功率开关器件通断的时刻。比起自然采样法,规则采样法的计算非常简单,计算量大大减少,而效果接近自然采样法,得到的SPWM波形仍然很接近正弦波,克服了自然采样法难以在实时控制中在线计算,在工程中实际应用不多的缺点。

下面是一个简单的用 C 语言实现采样正弦波的示例代码:

cCopy code#include <stdio.h>#include <math.h>#define PI 3.14159265358979323846int main(){int sample_rate = 20000000 // 采样率

int signal_freq = 1250000 // 模拟信号频率

int num_samples = 100 // 采样点数量

double t, signal, carrier, modulated int i, j // 生成载波

double carrier_freq = signal_freq * 16// 载波频率为信号频率的16倍

for (i = 0i <num_samplesi++)

{

t = (double)i / sample_rate // 当前时间

carrier = sin(2 * PI * carrier_freq * t)// 正弦波形式的载波

modulated = 0.0 // 采样信号并进行调制

for (j = 0j <sample_rate / signal_freqj++)

{

signal = sin(2 * PI * signal_freq * t)// 正弦波形式的模拟信号

modulated += signal * carrier

t += 1.0 / sample_rate // 更新时间

}printf("%f\n", modulated)// 输出调制后的采样点

}return 0

}

在上面的代码中,我们先生成了一个频率为 1.25MHz 的模拟信号,然后以其 16 倍的频率(20MHz)生成了一个正弦波形式的载波,并将其与模拟信号进行调制后进行采样。由于采样点数量为 100,因此输出了 100 个调制后的采样点。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12017833.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存