- 打卡等级:以坛为家I
- 打卡总天数:298
- 最近打卡:2026-03-04 09:50:30
超级版主
- 积分
- 15612
|
发表于 2026-1-24 20:16:28
|
显示全部楼层
会不会是阻力过大造成?
我启动的逻辑是:
1、检测到顺风转动则直接进入闭环。
2、检测到逆风转动则先刹车,再静止启动。
3、检测不到转动则静止启动。
静止启动逻辑:
先预定位,再正弦波强拖启动,启动结束,关闭电机,惯性转动,检测到转动,进入闭环。检测不到转动,重复静止启动逻辑。
不知道你的电机功率与负载转动惯量,没法对症处理,你可以试下下面的启动参数:
#define MPP 8 // 电机磁极对, Magnetic Pole Pair,8元风扇电机为5对磁极
#define ROLL_MinSpeed 60 // 启动时检测到低于这个转速则认为电机停止,从静止开始启动,否则直接进入闭环。 要求ROLL_MinSpeed*MPP >=22
#define PRE_PWM_DUTY 100 // 预定位占空比, 一般为START_PWM_DUTY的0.5~1,较小的占空比冲击小,但启动力矩小。
#define START_PWM_DUTY 200 // 启动时的占空比
#define STOP_PWM_DUTY 100 // 停止占空比,小于此占空比就停机, 根据电机特性适当改变
#define BeginSpeed 30 // 启动起始转速,转/分
#define FinishSpeed 300 // 启动起始转速,转/分
#define D_StartTime 2000 // 加速时间,单位ms,不能小于500, 500~10922
#define PRE_STATE_TIME1 100 // 预定位时间1,ms, 最大值为2849ms
#define PRE_STATE_TIME2 60 // 预定位时间2,ms, 最大值为2849ms
#define PRE_STATE_TIME3 30 // 预定位时间3,ms, 最大值为2849ms |
|