王昱顺 发表于 2025-10-18 16:18
可能是由于转动惯量太大导致的,增加一些占空比试试
低速时会反复重同步,所以会有一些噪声
...
我试过了加大占空比还是有卡顿感觉,噪音大,不装风叶时,空转正常
//电机参数相关:开环强拖参数、退磁等待时间,参考参数
#define Ref_MIN_PWM 500UL //开始强拖PWM值
#define Ref_MAX_PWM700UL //结束强拖PWM值
#define Ref_MAX_FREQ 220UL //单位:us,每次切换角度间隔时间起始
#define Ref_MIN_FREQ 20UL //单位:us,每次切换角度间隔时间结束(从150us到1us)
#define Ref_DTIME 8000UL //细分步进,整个开环需要细分成多少个片进行变化
#define Ref_MOTO_DE_TIME_uS 30 //电机退磁时间(32位无符号),如果出现换向异常可以调整这个数据,避开退磁脉冲
#define Ref_OVER_TIME 5 //超时时间(单位:32.768ms),用于判断B_Timer3_OverFlow的值是否超过此阈值,超过后即认为堵转,水泵类可调大此阈值
设置为上面参数才能正常转动,拖动时电流(2-3.5A)有点大,进入闭环后电流才正常,但是转动有卡顿现象,加大占空比还是一样
王昱顺 发表于 2025-10-18 16:22
请更新最新版本的FOC库,FOC例程中的程序编译是没问题的
程序中对于串口没有操作,是不影响其他串口程序 ...
foc.h文件中定义的extern unsigned int Zero_Angle_Start;
只要在mian.c文件给Zero_Angle_Start赋值就会报错,不引用这个变量是不会报错的。
ct1000 发表于 2025-10-18 23:56
//电机参数相关:开环强拖参数、退磁等待时间,参考参数
#define Ref_MIN_PWM 500UL //开始强拖PWM ...
如果惯量较大,建议maxfreq和minfreq都给的再大一点,抖动可能是由于转的太快导致的。
开环电流大一点是正常的,感觉前期比较抖,可以minpwm和maxpwm给一样的值试试
jun4052 发表于 2025-10-20 08:20
//静音省电参数相关:同步时的调整零点
foc.h文件中定义的
extern unsigned int Zero_Angle_Start; ...
想要调整零点对齐,请使用zero_angle函数
这个在主程序内有演示如何使用
zero_angle_start是专门用于启动时候的赋值,与后续调整无关
这个值是为了方便与ref_zero_angle_start的宏定义关联
至于影响串口接受?是否是初始化没开串口接受使能?
王昱顺 发表于 2025-10-20 10:01
想要调整零点对齐,请使用zero_angle函数
这个在主程序内有演示如何使用
zero_angle_start是专门用于启动 ...
了解,串口问题解决了,使用DMA方式会接收不了数据,现使用串口中断接收是可以的。另外电机正转可以正常启动,反转进入不了闭环运行。请问这个调整哪个参数可以解决?
jun4052 发表于 2025-10-20 14:03
了解,串口问题解决了,使用DMA方式会接收不了数据,现使用串口中断接收是可以的。另外电机正转可以正常 ...
王昱顺 发表于 2025-10-20 14:21
我知道这个参数是调正反转的,我用串口调整这个参数后,正转可以正常启动,反转转几秒后就停了,难道不能这样调正反转?代码如下:
switch(mode)
{
case 1:
if(Moto_Run)
{
pwm_off();
set_duty=0;
}
else
{
Stc_Foc_Start();
set_duty=100;
if(cwmod)
Zero_Angle = 250;
else
Zero_Angle = 3750;
}
break;
case 2:
set_duty=Uaerbuf;
set_duty<<=8;
set_duty+=Uaerbuf;
break;
case 4:
cwmod=~cwmod;//正反转标志
break;
default :
break;
}
王昱顺 发表于 2025-9-12 16:07
可以的,用phasetime的数据即可,
单位是0.5us,使用60除以当前的换向时间,就是每分钟的转速的,
这是如 ...
我在调试一个水泵的时候,把phasetime打印出来观察,看到这个变量是变化的,而水泵实际转速大概在2500转左右;这个数据要怎么看,它跟转速的关系是怎么来分析;数据中FF后的两位是phasetime的高字节和低字节;
王昱顺 发表于 2025-9-18 10:00
当前电压和电流需要用户自行添加,程序内不做多余处理,仅保留电机驱动部分功能。
堵转保护由电机算法自 ...
王工,电机转速是通过PhaseTime来计算是吧,那电流的计算是通过哪个变量来计算呀?