ST意法半导体
直播中

杨秀英

7年用户 1375经验值
私信 关注
[问答]

如何使用STM32CubeIDE编写工作程序来控制BLDC电机?

正如我在上面所写的,我只需要学习如何使用 STM32CubeIDE 编写一个工作程序来控制 BLDC 电机。这是一个普遍的问题,但我不需要更多。我试图自己做几个月,但我不知道如何正确编写我的代码。不管我写什么,我的程序都不起作用。在附件中,我发送了我当前的代码,它使我的电机以大约 8900rpm 的速度旋转。







回帖(1)

潘晶燕

2022-12-28 15:40:24
库中速度的默认单位是 0.1Hz,转换为每次计数 6RPM。所以当你写1500的时候,RPM里面设置的转速其实就是1500 * 6 = 9000 RPM。在 RPM 中写入速度的最简单方法是在 API 中将其指定为 RPM/6。例如:要以 1500RPM 的速度运行电机,您可以编写MC_ProgramSpeedRampMotor1(1500/6, 1000);
另一个要点是,这是一个缓冲命令,只有在状态机收敛到 FOC(MC_GetSTMStateMotor1() 返回值变为 6 或 RUN)时才会执行。
在无传感器操作的情况下,1000 毫秒斜坡通常会在启动参数中指定的“最小启动输出速度”之后的某个时间开始(库试图从开环启动收敛到 FOC 的点),而在 HALL 和编码器等物理传感器的情况下, 这个斜坡通常会在 MC_StartMotor1(); 被执行。
因此,当使用无传感器操作时,实际斜坡是从“最小启动输出速度”附近的某个位置到 1000 毫秒内的指定速度,而在霍尔/编码器的情况下,它将从 0 到 1000 毫秒内的指定速度。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分