TI中文支持网
TI专业的中文技术问题搜集分享网站

lab11e中的一段程序,修改之后实现电机反转

gHall_State_delta = gHall_PwmIndex[gHall_State] – gHall_PwmIndex[gHall_PrevState];
  if((gHall_State_delta == -1) || (gHall_State_delta == 5))
  {
   gHall_dir = 1;   // positive direction
  }
     else if((gHall_State_delta == 1) || (gHall_State_delta == -5))
  {
   gHall_dir = 2;   // negative direction
   gHall_speed_fdb_pu = -gHall_speed_fdb_pu;
  }
  else
  {
   gHall_dir = 0;   // direction change
  }
这是lab11e中的一段程序,上面是变量地址的计算,目前是正转,我修改了gHall_State_delta = gHall_PwmIndex[gHall_PrevState] – gHall_PwmIndex[gHall_State];按照程序可以实现反转,但是还是正转,为什么呢?

user6024771:

回复 Green Deng:

在目前gMotorVars.SpeedRef_krpm为正的时候,运行比较平稳,但修改为负数,会出现过流现象,这是为什么呢?

gHall_State_delta = gHall_PwmIndex[gHall_State] – gHall_PwmIndex[gHall_PrevState];
  if((gHall_State_delta == -1) || (gHall_State_delta == 5))
  {
   gHall_dir = 1;   // positive direction
  }
     else if((gHall_State_delta == 1) || (gHall_State_delta == -5))
  {
   gHall_dir = 2;   // negative direction
   gHall_speed_fdb_pu = -gHall_speed_fdb_pu;
  }
  else
  {
   gHall_dir = 0;   // direction change
  }
这是lab11e中的一段程序,上面是变量地址的计算,目前是正转,我修改了gHall_State_delta = gHall_PwmIndex[gHall_PrevState] – gHall_PwmIndex[gHall_State];按照程序可以实现反转,但是还是正转,为什么呢?

Green Deng:

回复 user6024771:

你有修改过其他参数或者程序吗?

gHall_State_delta = gHall_PwmIndex[gHall_State] – gHall_PwmIndex[gHall_PrevState];
  if((gHall_State_delta == -1) || (gHall_State_delta == 5))
  {
   gHall_dir = 1;   // positive direction
  }
     else if((gHall_State_delta == 1) || (gHall_State_delta == -5))
  {
   gHall_dir = 2;   // negative direction
   gHall_speed_fdb_pu = -gHall_speed_fdb_pu;
  }
  else
  {
   gHall_dir = 0;   // direction change
  }
这是lab11e中的一段程序,上面是变量地址的计算,目前是正转,我修改了gHall_State_delta = gHall_PwmIndex[gHall_PrevState] – gHall_PwmIndex[gHall_State];按照程序可以实现反转,但是还是正转,为什么呢?

user6024771:

回复 Green Deng:

没有修改过其他参数

gHall_State_delta = gHall_PwmIndex[gHall_State] – gHall_PwmIndex[gHall_PrevState];
  if((gHall_State_delta == -1) || (gHall_State_delta == 5))
  {
   gHall_dir = 1;   // positive direction
  }
     else if((gHall_State_delta == 1) || (gHall_State_delta == -5))
  {
   gHall_dir = 2;   // negative direction
   gHall_speed_fdb_pu = -gHall_speed_fdb_pu;
  }
  else
  {
   gHall_dir = 0;   // direction change
  }
这是lab11e中的一段程序,上面是变量地址的计算,目前是正转,我修改了gHall_State_delta = gHall_PwmIndex[gHall_PrevState] – gHall_PwmIndex[gHall_State];按照程序可以实现反转,但是还是正转,为什么呢?

K Mr:电机速度的参数修改为负数即可实现电机反转,但是出现过流是不是硬件上存在问题?

gHall_State_delta = gHall_PwmIndex[gHall_State] – gHall_PwmIndex[gHall_PrevState];
  if((gHall_State_delta == -1) || (gHall_State_delta == 5))
  {
   gHall_dir = 1;   // positive direction
  }
     else if((gHall_State_delta == 1) || (gHall_State_delta == -5))
  {
   gHall_dir = 2;   // negative direction
   gHall_speed_fdb_pu = -gHall_speed_fdb_pu;
  }
  else
  {
   gHall_dir = 0;   // direction change
  }
这是lab11e中的一段程序,上面是变量地址的计算,目前是正转,我修改了gHall_State_delta = gHall_PwmIndex[gHall_PrevState] – gHall_PwmIndex[gHall_State];按照程序可以实现反转,但是还是正转,为什么呢?

user6024771:

回复 K Mr:

硬件也没有吧!它是28069m与8305的组合,接电源、三相、霍尔线,其他没有了

gHall_State_delta = gHall_PwmIndex[gHall_State] – gHall_PwmIndex[gHall_PrevState];
  if((gHall_State_delta == -1) || (gHall_State_delta == 5))
  {
   gHall_dir = 1;   // positive direction
  }
     else if((gHall_State_delta == 1) || (gHall_State_delta == -5))
  {
   gHall_dir = 2;   // negative direction
   gHall_speed_fdb_pu = -gHall_speed_fdb_pu;
  }
  else
  {
   gHall_dir = 0;   // direction change
  }
这是lab11e中的一段程序,上面是变量地址的计算,目前是正转,我修改了gHall_State_delta = gHall_PwmIndex[gHall_PrevState] – gHall_PwmIndex[gHall_State];按照程序可以实现反转,但是还是正转,为什么呢?

Green Deng:

回复 user6024771:

过流有可能是hall角度估算错误引起的。
另外,建议你这边整理一下问题后在英文版的E2E上发帖咨询一下。那边有专门针对电机控制的工程师可以为你辅导。

gHall_State_delta = gHall_PwmIndex[gHall_State] – gHall_PwmIndex[gHall_PrevState];
  if((gHall_State_delta == -1) || (gHall_State_delta == 5))
  {
   gHall_dir = 1;   // positive direction
  }
     else if((gHall_State_delta == 1) || (gHall_State_delta == -5))
  {
   gHall_dir = 2;   // negative direction
   gHall_speed_fdb_pu = -gHall_speed_fdb_pu;
  }
  else
  {
   gHall_dir = 0;   // direction change
  }
这是lab11e中的一段程序,上面是变量地址的计算,目前是正转,我修改了gHall_State_delta = gHall_PwmIndex[gHall_PrevState] – gHall_PwmIndex[gHall_State];按照程序可以实现反转,但是还是正转,为什么呢?

user6024771:

回复 Green Deng:

使能了PWM就好了,之前的程序禁用PWM

赞(0)
未经允许不得转载:TI中文支持网 » lab11e中的一段程序,修改之后实现电机反转
分享到: 更多 (0)