找回密码
 立即注册
楼主: 神农鼎

最便宜的 车规-FOC,24万转@STC32G12K128-24A车规,STC-FOC 新算法库,9/8

  [复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-10-18 15:54:05
已绑定手机

0

主题

12

回帖

156

积分

注册会员

积分
156
发表于 5 天前 | 显示全部楼层
王*** 发表于 2025-10-18 16:18
可能是由于转动惯量太大导致的,增加一些占空比试试
低速时会反复重同步,所以会有一些噪声
...

我试过了加大占空比还是有卡顿感觉,噪音大,不装风叶时,空转正常
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-10-18 15:54:05
已绑定手机

0

主题

12

回帖

156

积分

注册会员

积分
156
发表于 5 天前 | 显示全部楼层
//电机参数相关:开环强拖参数、退磁等待时间,参考参数
#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)有点大,进入闭环后电流才正常,但是转动有卡顿现象,加大占空比还是一样

点评

如果惯量较大,建议maxfreq和minfreq都给的再大一点,抖动可能是由于转的太快导致的。 开环电流大一点是正常的,感觉前期比较抖,可以minpwm和maxpwm给一样的值试试  详情 回复 发表于 3 天前
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-10-21 11:52:39
已绑定手机

1

主题

6

回帖

45

积分

新手上路

积分
45
发表于 3 天前 | 显示全部楼层
王*** 发表于 2025-10-18 16:22
请更新最新版本的FOC库,FOC例程中的程序编译是没问题的

程序中对于串口没有操作,是不影响其他串口程序 ...

foc.h文件中定义的extern unsigned int Zero_Angle_Start;         
只要在mian.c文件给Zero_Angle_Start赋值就会报错,不引用这个变量是不会报错的。

点评

想要调整零点对齐,请使用zero_angle函数 这个在主程序内有演示如何使用 zero_angle_start是专门用于启动时候的赋值,与后续调整无关 这个值是为了方便与ref_zero_angle_start的宏定义关联  详情 回复 发表于 3 天前
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:597
  • 最近打卡:2025-10-22 09:04:34
已绑定手机
已实名认证

120

主题

2919

回帖

7512

积分

版主

积分
7512
发表于 3 天前 | 显示全部楼层
ct1*** 发表于 2025-10-18 23:56
//电机参数相关:开环强拖参数、退磁等待时间,参考参数
#define Ref_MIN_PWM 500UL                                                                 //开始强拖PWM ...

如果惯量较大,建议maxfreq和minfreq都给的再大一点,抖动可能是由于转的太快导致的。
开环电流大一点是正常的,感觉前期比较抖,可以minpwm和maxpwm给一样的值试试
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:597
  • 最近打卡:2025-10-22 09:04:34
已绑定手机
已实名认证

120

主题

2919

回帖

7512

积分

版主

积分
7512
发表于 3 天前 | 显示全部楼层
jun4*** 发表于 2025-10-20 08:20
//静音省电参数相关:同步时的调整零点
foc.h文件中定义的
extern unsigned int Zero_Angle_Start;        ...

想要调整零点对齐,请使用zero_angle函数
这个在主程序内有演示如何使用
zero_angle_start是专门用于启动时候的赋值,与后续调整无关
这个值是为了方便与ref_zero_angle_start的宏定义关联
至于影响串口接受?是否是初始化没开串口接受使能?
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-10-21 11:52:39
已绑定手机

1

主题

6

回帖

45

积分

新手上路

积分
45
发表于 3 天前 | 显示全部楼层
王*** 发表于 2025-10-20 10:01
想要调整零点对齐,请使用zero_angle函数
这个在主程序内有演示如何使用
zero_angle_start是专门用于启动 ...

了解,串口问题解决了,使用DMA方式会接收不了数据,现使用串口中断接收是可以的。另外电机正转可以正常启动,反转进入不了闭环运行。请问这个调整哪个参数可以解决?

点评

[attachimg]118154[/attachimg]  详情 回复 发表于 3 天前
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:597
  • 最近打卡:2025-10-22 09:04:34
已绑定手机
已实名认证

120

主题

2919

回帖

7512

积分

版主

积分
7512
发表于 3 天前 | 显示全部楼层
jun4*** 发表于 2025-10-20 14:03
了解,串口问题解决了,使用DMA方式会接收不了数据,现使用串口中断接收是可以的。另外电机正转可以正常 ...

截图202510201421176416.jpg
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-10-21 11:52:39
已绑定手机

1

主题

6

回帖

45

积分

新手上路

积分
45
发表于 3 天前 | 显示全部楼层

我知道这个参数是调正反转的,我用串口调整这个参数后,正转可以正常启动,反转转几秒后就停了,难道不能这样调正反转?代码如下:  
                 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[2];
                                set_duty<<=8;
                                set_duty+=Uaerbuf[3];
                              break;
                          case 4:
                                     cwmod=~cwmod;  //正反转标志
                              break;      
                          default :
                                      break;
                    }

点评

启停请参见最新版本的foc库函数 正反转使用我那个库函数是可以实现的,如果想要自己实现,请移植源程序实现  详情 回复 发表于 3 天前
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-10-21 08:32:24

0

主题

13

回帖

88

积分

注册会员

积分
88
发表于 3 天前 | 显示全部楼层
王*** 发表于 2025-9-12 16:07
可以的,用phasetime的数据即可,
单位是0.5us,使用60除以当前的换向时间,就是每分钟的转速的,
这是如 ...

我在调试一个水泵的时候,把phasetime打印出来观察,看到这个变量是变化的,而水泵实际转速大概在2500转左右;这个数据要怎么看,它跟转速的关系是怎么来分析;数据中FF后的两位是phasetime的高字节和低字节;
截图202510201741147048.jpg
截图202510201742201020.jpg

点评

你这个看起来不是很稳定的样子,正常讲应该是稳定的上下浮动几个数 至于换算,这个值的单位是0.5us,代表每次电角度一个周期的宽度  详情 回复 发表于 3 天前
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-10-20 18:22:02

0

主题

5

回帖

62

积分

注册会员

积分
62
发表于 3 天前 | 显示全部楼层
王*** 发表于 2025-9-18 10:00
当前电压和电流需要用户自行添加,程序内不做多余处理,仅保留电机驱动部分功能。

堵转保护由电机算法自 ...

王工,电机转速是通过PhaseTime来计算是吧,那电流的计算是通过哪个变量来计算呀?

点评

可以通过换向时间得到的转速 然后可以使用 “占空比/转速” 间接得到电流  详情 回复 发表于 3 天前
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-23 08:29 , Processed in 0.135818 second(s), 114 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表