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

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

 火.. [复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-11-14 09:46:18
已绑定手机

0

主题

3

回帖

32

积分

新手上路

积分
32
发表于 2025-11-14 09:46:18 | 显示全部楼层
电流检测能提供一个接口吗,方便控制输出功率和力矩
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:136
  • 最近打卡:2025-12-17 09:44:47

37

主题

1356

回帖

3364

积分

超级版主

积分
3364
发表于 2025-11-14 11:04:27 | 显示全部楼层
ugpbejnh 发表于 2025-11-14 09:48
高压的开发板能提供购买渠道吗,有个电动工具项目上要用,想先学习一下 ...
截图202511141308452714.jpg

微信商城有高压实验板【是空板,需自己焊接元器件】

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:75
  • 最近打卡:2025-12-15 07:48:40

1

主题

13

回帖

335

积分

中级会员

积分
335
发表于 2025-11-15 12:28:29 | 显示全部楼层
a2f06d6e-bd99-4b13-94a3-f0a9b2a3ec37.png

老师们,这个极对数不都是双吗?我的无刷极对数是2个。。这里设置2吗?

点评

磁极对数可以是单或双,1对、2对、3对。。。 磁极数才是双数。  详情 回复 发表于 2025-11-15 16:24
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:252
  • 最近打卡:2025-12-16 23:00:17

84

主题

7145

回帖

1万

积分

超级版主

积分
15237
发表于 2025-11-15 16:24:40 | 显示全部楼层
耀*** 发表于 2025-11-15 12:28
老师们,这个极对数不都是双吗?我的无刷极对数是2个。。这里设置2吗?

...

磁极对数可以是单或双,1对、2对、3对。。。
磁极数才是双数。
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:75
  • 最近打卡:2025-12-15 07:48:40

1

主题

13

回帖

335

积分

中级会员

积分
335
发表于 2025-11-16 07:21:18 | 显示全部楼层
梁*** 发表于 2025-11-15 16:24
磁极对数可以是单或双,1对、2对、3对。。。
磁极数才是双数。

明白了,感谢梁老师
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:120
  • 最近打卡:2025-12-05 09:16:53

11

主题

157

回帖

631

积分

高级会员

积分
631
发表于 2025-11-18 08:27:55 | 显示全部楼层
请教一个问题,我现在想用外部PWM(1Khz)的占空比来控制电机转速。目前使用的是P00的输入捕获功能,同时测量外部PWM的频率和占空比,程序如下。我调试了好久都无法实现,请问是哪边设置有问题吗?

void PWM_Config(void)
{

        PWMB_ARRH = (u16)(1000 >> 8);                                                
        PWMB_ARRL = (u16)(1000);




        PWMB_PSCRH = (u16)(23>> 8);                               
        PWMB_PSCRL = (u16)(23);       


        PWMB_CCER1 = 0x00;                                                                                               
                                                                                                                                                                               
        PWMB_CCMR1 = 0x01;                                                                                                
        PWMB_CCER1 |= 0x01;                                                                                               
        PWMB_CCMR2 = 0x02;                                                                                               
        PWMB_CCER1 |= 0x30;                                                                                               
        PWMB_PS = 0x02;                                                                                                        
        PWMB_IER = 0x06;                                                                                                        
        P00 = 1;
        P01 = 1;



        PWMB_CR1 |= 0x01;                                                                                                
}



void PWMB_ISR() interrupt 27                                                                                                                                                                       
{
        if (PWMB_SR1 & 0X02)                                                                                                                                                       
        {       
                PWMB_SR1 &= ~0X02;                                                                                                                                                       
                cap1 =(PWMB_CCR1H << 8) + PWMB_CCR1L;                                                                               
        }
        if(PWMB_SR1 & 0x04)                                                                                                                                                               
        {
                PWMB_SR1 &= ~0x04;                                                                                                                                                       
                cap2 =(PWMB_CCR2H << 8) + PWMB_CCR2L;                                                                               
        }
       
        F_Inpwm_Done = 1;                                                                                                                                                                       
        Inpwm_Down_Count = 0;
}



程序中的cap1即周期计数,cap2即高电平计数,请问是这样吗?
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:20
  • 最近打卡:2025-12-05 09:51:04
已绑定手机

0

主题

28

回帖

264

积分

中级会员

积分
264
发表于 2025-11-18 10:59:52 | 显示全部楼层
微信图片_20251118110052_12_211.jpg 王*** 发表于 2025-9-8 12:452025年11月13日 新 更新 STC-FOC库,提供完整的项目程序

u.jpg w.jpg v.jpg


可以正常转动,但是三相的波形怎么不一样呢,

点评

无刷电机三相驱动本来就是相差120度的 他要一样那还能转嘛,那不就电平一致等效没通电了  详情 回复 发表于 2025-11-18 12:41
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:641
  • 最近打卡:2025-12-17 10:15:23
已绑定手机
已实名认证

123

主题

3278

回帖

8316

积分

版主

积分
8316
发表于 2025-11-18 12:41:33 | 显示全部楼层
ct1*** 发表于 2025-11-18 10:59
可以正常转动,但是三相的波形怎么不一样呢,

无刷电机三相驱动本来就是相差120度的
他要一样那还能转嘛,那不就电平一致等效没通电了
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-12-10 11:04:19
已绑定手机

0

主题

8

回帖

158

积分

注册会员

积分
158
发表于 2025-11-18 15:37:26 | 显示全部楼层
王工 !无刷电机启动一瞬间会抖动,有时候会正常运行,有时候电机启动不成功。而且电机在启动一瞬间电流在0.5A左右,请问这个应该怎么解决呢?附件是我的电机照片。谢谢
_cgi-bin_mmwebwx-bin_webwxgetmsgimg__&MsgID=8793555595422032975&skey=@crypt_fb26.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-12-10 11:04:19
已绑定手机

0

主题

8

回帖

158

积分

注册会员

积分
158
发表于 2025-11-18 16:18:18 | 显示全部楼层
何*** 发表于 2025-11-18 15:37
王工 !无刷电机启动一瞬间会抖动,有时候会正常运行,有时候电机启动不成功。而且电机在启动一瞬间电流在0 ...


// 电机参数相关:开环强拖参数、退磁等待时间,参考参数
#define Ref_MIN_PWM 300UL           // 开始强拖PWM值
#define Ref_MAX_PWM 350UL           // 结束强拖PWM值
#define Ref_MAX_FREQ 25UL           // 单位:us,每次切换角度间隔时间起始
#define Ref_MIN_FREQ 3UL           // 单位:us,每次切换角度间隔时间结束(从150us到1us)
#define Ref_DTIME 10000UL           // 细分步进,整个开环需要细分成多少个片进行变化
#define Ref_MOTO_DE_TIME_uS 20 // 电机退磁时间(32位无符号),如果出现换向异常可以调整这个数据,避开退磁脉冲
#define Ref_OVER_TIME 2                   // 超时时间(单位:32.768ms),用于判断B_Timer3_OverFlow的值是否超过此阈值,超过后即认为堵转,水泵类可调大此阈值


通过修改这里 启动的概率会有提高,但是还是会有启动不成功的时候,而且启动电流比较大,在12V的情况下电流达到2A左右。

点评

可以使用最新的库函数 电流过大可以调低一点pwm的值 开环启动参数调整请看最新版程序里面的文档,有讲如何调整  详情 回复 发表于 2025-11-19 12:03
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-12-17 10:28 , Processed in 0.127889 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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