电力电子矢量输出总结

本文详细介绍了单相和三相SPWM调制技术,包括单极性和双极性调制的区别,以及三相两电平和三电平调制的扇区划分和矢量作用时间的计算方法。在单相电路中,通过上半周期和下半周期的不同设置实现调制。而在三相系统中,扇区的判断和矢量合成时间的计算更为复杂,涉及九条边界线。此外,还提供了相应的代码示例,展示了如何在实际编程中实现这些算法。
摘要由CSDN通过智能技术生成

单相SPWM

在单相电路中存在两个桥臂,也就是有两个电位点分别定义为a(在A轴上)和b(在B轴上),

输出的电压为输出电压矢量在实轴上的投影为v_{ab}=v_{a}-v_{b}=\left |\vec{m} \right |*cos(\theta ); m为输出电压矢量

在单极性调制中

上半周期令v_{a}=\left |\vec{m} \right |*cos(\theta ) | v_{B}=0

在下半周期v_{a}=0 | v_{b}=\left |\vec{m} \right |*cos(\theta )

void SPwmGen(u16 m_Q15, u16 sita_Q15)
{
    if(sita_Q15 > 0x7fff) // > 180
    {
        LeftBridgeSetLow();
        RightBridgeSetPluse(m_Q15,sin(0xffff - sita_Q15));
    }else
    {
        RightBridgeSetLow();
        LeftBridgeSetPluse(m_Q15,sin(sita_Q15));
    }
}

在双极性调制中

v_{a}=0.5\left |\vec{m} \right |*(cos(\theta ) +1)| v_{b}=0.5\left |\vec{m} \right |*(cos(\theta-\pi /2 )+1)

void SPwmGen(u16 m_Q15, u16 sita_Q15)
{
     RightBridgeSetPluse(m_Q15,(sin(sita_Q15)+1)/2);
     LeftBridgeSetPluse(m_Q15,(sin(sita_Q15+0x7fff)+1)/2);    
}

从以上分析可以看出在单极性与与双极性调制,会有细微的差别,双极性调制需要对调制信号进行平移和缩放,这在实际编程时需要注意。

三相两电平

以alfa 和 beta 为坐标系进行扇区划分

扇区主要划分为6个区间,扇区的划分依据为边界线,比如图上所标注的一条边界线的表达式为v_{\beta }-\sqrt{3}v_{\alpha}=0

另外的边界表达式v_{\beta }=0v_{\beta }+\sqrt{3}v_{\alpha}=0,通过这三条边界线则可以将6个扇区区分开来,同时也就成为了判断矢量扇区的三个条件

u8 DetectAre(SVGEN *v)
{
    v->tmp1= v->Ubeta;  //
	v->tmp2= v->Ubeta/2 + 866*v->Ualpha/1000;  //0.5(beta + sqrt(3)*alfa)
    v->tmp3= v->tmp2 - v->tmp1;                //0.5(beta - sqrt(3)*alfa)

	v->VecSector=3;
	v->VecSector=(v->tmp2> 0)?( v->VecSector-1):v->VecSector;
	v->VecSector=(v->tmp3> 0)?( v->VecSector-1):v->VecSector;
	v->VecSector=(v->tmp1< 0)?(7-v->VecSector) :v->VecSector;

}

矢量作用时间的计算

矢量作用时间的计算比较复杂,首先通过几何特性计算每个扇区的矢量合成时间

然后按照七段式或五段式进行矢量的合成。

Ti官方给出的计算方法比较简练高效,现将代码粘贴如下,这是七段式代码,可以稍加修改改为5段式代码

void SvTimeCal(SVGEN *v)
{
	v->tmp1= v->Ubeta;
	v->tmp2= v->Ubeta/2 + 866*v->Ualpha/1000;
    v->tmp3= v->tmp2 - v->tmp1;

	v->VecSector=3;
	v->VecSector=(v->tmp2> 0)?( v->VecSector-1):v->VecSector;
	v->VecSector=(v->tmp3> 0)?( v->VecSector-1):v->VecSector;
	v->VecSector=(v->tmp1< 0)?(7-v->VecSector) :v->VecSector;

	if(v->VecSector==1 || v->VecSector==4)
	{
			v->Ta= v->tmp2;
			v->Tb= v->tmp1-v->tmp3;
			v->Tc=-v->tmp2;
	}
    else if(v->VecSector==2 || v->VecSector==5)
	{
			v->Ta= v->tmp3+v->tmp2;
			v->Tb= v->tmp1;
			v->Tc=-v->tmp1;
	}
	else
	{   
		v->Ta= v->tmp3;
		v->Tb=-v->tmp3;
		v->Tc=-(v->tmp1+v->tmp2);
	}

//五段式处理 (把111脉冲干掉)
    x = (Ta+1)*period/2;
    y = (Tb+1)*period/2;
    z = (Tc+1)*period/2;

    m = min( x, y, z );
    x - m;
    y - m;
    z - m;    
}

三相三电平

以alfa 和 beta 为坐标系进行扇区划分的9条线

矢量作用时间的计算

 

三相四线

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值