久芯网

在st mcsdk中,如何从位置模式切换到速度模式?

avatar 季小虎 提问时间: 2023-09-25 12:09:36 / 未解决
测试环境:
控制板:NUCLEO-F303RE
Power Board:NUCLEO-IHM07M1
BLDC motor ,增加了编码器

现在位置模式下,可以正常跑,
main函数里
MC_StartMotor1();
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */

while(MC_GetAlignmentStatusMotor1()!=TC_ALIGNMENT_COMPLETED){}

while (1)
{
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
MC_ProgramPositionCommandMotor1(3.14*2,0.1);
HAL_Delay(1000);
MC_ProgramPositionCommandMotor1(-3.14*2,0.1);
HAL_Delay(1000);
}

现在想切换到速度模式:
MC_ProgramSpeedRampMotor1(600/6,1000);  //无法切换,还是位置模式

//MC_ProgramTorqueRampMotor1(5000,0);   //力矩模式也无法切换,但在st motor cotrol workbench中,可以力矩模式,这个也同样不解

查看定义
typedef enum
{
  STC_TORQUE_MODE, /**< @brief Torque mode.*/
  STC_SPEED_MODE   /**< @brief Speed mode.*/
} STC_Modality_t;
//只有2种模式,是需要自己增加POSITION MODE么?
哪位遇到过这种情况,


非常感谢!1



2个回答
  • avatar butterflyspring
    回答时间: 2023-09-25 12:31:01

    在现有的框架下,如果是在电机的运行过程中从位置模式切换到速度模式是不行的 ,必须在电机停止的时候设置为速度模式

  • avatar Wayen
    回答时间: 2023-09-25 12:47:41

    你好,我最近也遇到这个问题,请问当时有解决的方案吗?

会员中心 微信客服
客服
回到顶部