求教 stm32 FOC 单电阻 代码 边界处理程序

2019-12-17 21:31发布

本帖最后由 虫虫好 于 2014-11-13 23:03 编辑

在FOC 2.0的库里 STM32F10X_SVPWM.1SHUNT .C   里void SVPWM_1ShuntCalcDutyCycles (Volt_Components Stat_Volt_Input)函数里,子函数 SVPWM_1PWMSetSamplingPoints();该函数名被屏蔽了,关于case SECTOR_5:  case SECTOR_6:  bInverted_pwm_new = INVERT_A;  dvDutyValues.hTimePhA -=HTMIN;不太理解 dvDutyValues.hTimePhA按之前的表示 应该是比较寄存器的预输出值 可以理解为最大3相中 产生最大占空比的比较寄存器的值  5 和6扇区为什么做这个处理  BOUNDARY_1的意思不是说3个占空比 有1和最大的  和2个比较小的 但是这2个占空比小于TMIN的意思吗  

  if (bStatorFluxPos == REGULAR)
      {
              bInverted_pwm_new = INVERT_NONE;
      }
      else if (bStatorFluxPos == BOUNDARY_1) // Adjust the lower
      {
       switch (bSector)
        {
                case SECTOR_5:
                case SECTOR_6:
                        bInverted_pwm_new = INVERT_A;
                        dvDutyValues.hTimePhA -=HTMIN;
                        break;

                case SECTOR_2:
                case SECTOR_1:
                        bInverted_pwm_new = INVERT_B;
                        dvDutyValues.hTimePhB -=HTMIN;
                        break;
                case SECTOR_4:
                case SECTOR_3:
                        bInverted_pwm_new = INVERT_C;
                        dvDutyValues.hTimePhC -=HTMIN;
                        break;
        }
      
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。