永磁同步电机(正弦有感)学习 (9)

一.内容
通过对仿真的学习,对于整个系统的流程有了进一步的认识,现在回过头来,集合仿真内容,继续学习程序部分。
二.知识点
在整个电机的控制过程中,除了FOC的处理,SVPWM模块的作用也很重要。前面也学习了FOC的处理过程,通过对相电流采样,然后再通过Clark变换、Park变换得到d、q轴值,和参考值做PI调节,再经过归一化,反Park变换得到。前面也说过,这里再输出给SVPWM,给SVPWM执行。
SVPWM
经过前面的学习,可以得知,对于三相电机而言,三相的电流量的物理意义并不明确,将其进行坐标变化,将其转换成旋转的相差90°的电流,也就是励磁电流和转矩电流。励磁电流是给电机的励磁线圈的,用来产生电磁场;转矩电流用于转子上,使转子能够在电磁场的作用下旋转,并拖动负载。这样更便与针对性的研究,对于永磁同步电机而言,励磁电流又是为0,由位置传感器得知转子的位置,定子合成磁场垂直于转子,因此可知定子合成磁场矢量的方向。定子合成磁场矢量大小由所需要的转矩决定,于是我们便可以得知定子合成磁场的大小和方向,而定子合成磁场由定子三相电流矢量产生,因此可以利用SVPWM调制来得到所需要的三相电流矢量。
原理:
如图1所示,是典型的两电平三相电压源逆变器电路,定义开关在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述表示6个功率开关器件的开关状态。当在这里插入图片描述在这里插入图片描述在这里插入图片描述为1时,逆变 器电路上桥臂的开关器件开通,其下桥臂的开关器件关断(即在这里插入图片描述在这里插入图片描述在这里插入图片描述为0)。也就是同一臂桥上下开关器件不能同时导通,故而上述的逆变器三路逆变桥的开关组态一共有8种。
在这里插入图片描述
可以推导出:
在这里插入图片描述
代入公式:
在这里插入图片描述
可以得到:在这里插入图片描述
由表1的计算结果,可得图3所示的8个基本空间电压矢量,其中6个空间矢量幅值相同,相位差在这里插入图片描述。它们将复平面分成了6个区,称之为扇区。
在这里插入图片描述
程序:

void SVPWM_IcsCalcDutyCycles (Volt_Components Stat_Volt_Input)
{
   u8 bSector;
   s32 wX, wY, wZ, wUAlpha, wUBeta;
   u16  hTimePhA=0, hTimePhB=0, hTimePhC=0;
   wUAlpha = Stat_Volt_Input.qV_Component1 * T_SQRT3 ;
   wUBeta = -(Stat_Volt_Input.qV_Component2 * T);
   wX = wUBeta;
   wY = (wUBeta + wUAlpha)/2;
   wZ = (wUBeta - wUAlpha)/2;
   if (wY<0)
   {
      if (wZ<0)
      {
        bSector = SECTOR_5;
      }
      else // wZ >= 0
        if (wX<=0)
        {
          bSector = SECTOR_4;
        }
        else // wX > 0
        {
          bSector = SECTOR_3;
        }
   }
   else // wY > 0
   {
     if (wZ>=0)
     {
       bSector = SECTOR_2;
     }
     else // wZ < 0
       if (wX<=0)
       {  
         bSector = SECTOR_6;
       }
       else // wX > 0
       {
         bSector = SECTOR_1;
       }
    }
  switch(bSector)
  {  
    case SECTOR_1:  //ʱ¼äÇø¼äÊÇ0-4-6-7-7-6-4-0
    case SECTOR_4:	//ʱ¼äÇø¼äÊÇ0-1-3-7-7-3-1-0
                hTimePhA = (T/8) + ((((T + wX) - wZ)/2)/131072);
		hTimePhB = hTimePhA + wZ/131072;
		hTimePhC = hTimePhB - wX/131072;                                       
                break;
    case SECTOR_2:
    case SECTOR_5:  
                hTimePhA = (T/8) + ((((T + wY) - wZ)/2)/131072);
        	hTimePhB = hTimePhA + wZ/131072;
		hTimePhC = hTimePhA - wY/131072;
                break;
    case SECTOR_3:
    case SECTOR_6:
                hTimePhA = (T/8) + ((((T - wX) + wY)/2)/131072);
		hTimePhC = hTimePhA - wY/131072;
		hTimePhB = hTimePhC + wX/131072;
                break;
    default:
		break;
   }
  TIM1->CCR1 = hTimePhA;
  TIM1->CCR2 = hTimePhB;
  TIM1->CCR3 = hTimePhC;
}

程序的输入是)通过变化得到的在这里插入图片描述来分别计算出在这里插入图片描述,并判断转子所在扇区,计算出占空比。
其中在这里插入图片描述表示的是参考电压矢量在这里插入图片描述在这里插入图片描述轴上面的分量,他们的计算公式如下所示:
在这里插入图片描述
程序如下所示:

  wUAlpha = Stat_Volt_Input.qV_Component1 * T_SQRT3 ;
  wUBeta = -(Stat_Volt_Input.qV_Component2 * T);

同时在定义三个变量,也就是程序中的wx,wy和wz,他们计算公式如下所示:
在这里插入图片描述
程序如下所示:

   wX = wUBeta;
   wY = (wUBeta + wUAlpha)/2;
   wZ = (wUBeta - wUAlpha)/2;

这时再根据wx,wy和wz的正负情况,就可以得到所在扇区了。具体情况如表2所示,程序中是通过if语句不断地判断来实现的。
在这里插入图片描述
程序如下所示:

hTimePhA = (T/8) + ((((T + wX) - wZ)/2)/131072);
hTimePhB = hTimePhA + wZ/131072;
hTimePhC = hTimePhB - wX/131072;  

这里T等于4倍的ARR值,所以T/8就等于ARR/2,相当于把3个通道的比较值平移了半个周期,而让3个通道同时移动相同ARR/2对输出并没有什么影响,同时方便了计算,避免了出现通道比较值为负的情况。
仿真:
使用MATLAB仿真的结果分别如图3和图4所示:
在这里插入图片描述
在这里插入图片描述
通过图3我们可以发现SVPWM调制的波形是个类似马鞍形的形状,与SPWM不同,同时SVPWM不仅能使电压空间矢量按圆形轨迹旋转,还能够使得实际磁通为理想圆形磁通。而图4我们也可以看见通过SVPWM调制出来的三相电压。
至此,通过FOC实现对电流的监控,再通过SVPWM实现对电压的调制,从而形成循环。
三、学习总结
通过本次学习,使得自己对于FOC有了清晰的轮廓,后续的学习希望能够把自己之前忽略的,或者没有深究的能够回过头来,仔细研究下。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值