SVPWM实现

本文详细介绍了SVPWM的两种实现方法:按部就班实现和查表法实现。通过对代码的对比,指出两者在基本电压矢量幅值上的相同与不同,并通过Matlab Simulink使用S-function展示了这两种方法。最终附带了SVPWM的Simulink模型文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


继上一篇SVPWM原理之后,这篇来讲讲SVPWM的C语言实现。实现方法列举了两种,其本质都是上篇文章中所提到过的。

按SVPWM原理按部就班实现

bool A, B, C;
int N, flag;
double alf, beta, u_1, u_2, u_3, K, x, y, z, t_x, t_y, t_xy, t_a, t_b, t_c;

alf = (*u_alf);
beta = (*u_beta);

u_1 = beta;
u_2 = 1.732*alf-beta;
u_3 = -1.732*alf-beta;
if(u_1>0) A=1; else A=0;
if(u_2>0) B=1; else B=0;
if(u_3>0) C=1; else C=0;
N = 4*C+2*B+A;

K = 1.732 * T / u_dc;
x = K*u_1;
y = 0.5*K*u_2;
z = 0.5*K*u_3;
switch (N)
{
    case 1: flag = 2; t_x = -y, t_y = -z; break;
    case 2: flag = 6; t_x = -z, t_y = -x; break;
    case 3: flag = 1; t_x = y, t_y = x; break;
    case 4: flag = 4; t_x = -x, t_y = -y; break;
    case 5: flag = 3; t_x = x, t_y = z; break;
    case 6: flag = 5; t_x = z, t_y = y; break;
}
if(t_x+t_y>T)
{
    t_xy = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值