关于renesas的矢量控制代码,请教一个问题
本帖最后由 as27185 于 2013-9-4 19:27 编辑对于FOC,理论上计算出两相静止坐标系的电压,再进行SVPWM运算即可得到三相的占空比即可。
但是我看到的renesas的FOC代码(单片机78f1213),是将两相静止坐标系的电压变换到三相静止坐标系,然后经过一个看不懂的过程,产生了三相占空比,不知道是为什么?请高手指教,谢谢,部分代码如下,其中TDR02 、TDR04、TDR06是三个写占空比的寄存器
//Calculate Va,Vb,Vc to decide the time duration of each vector
Va=U_beta_set; //Va=U_beta_set
Vb=temp1+temp2; //Vb=(sqrt(3)*U_alpha_set+U_beta)/2
Vc=temp2-temp1; //Vc=(-Sqrt(3)*U_alpha_set+U_beta)/2
switch(SV_sector)
{
case 3:
if(G_Modeflag==1)
{
TOE0=0x00fd;//0x00fc;
TO0=0x0000;
TOL0=0x0054;
}
else
{
TO0=0x0000;
TOE0=0x0000;
TO0=0x0000;
TOE0=0x0001; //20121120 add
}
TDR02=Va-Vc;
TDR04=Va;
TDR06=0;
G_PWM_Mid=TDR04;
G_PWM_Max=TDR02;
break;
case 2:
if(G_Modeflag==1)
{
TOE0=0x00fd;;
TO0=0x0000;
TOL0=0x0054;
}
else
{
TO0=0x0000;
TOE0=0x0000;
TO0=0x0000;
TOE0=0x0001; //20121120 add
}
TDR02=Vb-Va;
TDR04=0;
TDR06=-Va;
G_PWM_Mid=TDR06;
G_PWM_Max=TDR02;
break;
代码中把其中一个占空比的寄存器写0,我知道是为了做两相调制,但其它的就看不懂了
页:
[1]