梁工 发表于 2025-5-19 20:03:40

旧巷故人 发表于 2025-5-19 15:57
希望早日看到用stc做的FOC控制方案

请参考!
FOC@Ai8051U横空出世,可控制7万5千转的电机!系统成本6元
https://www.stcaimcu.com/thread-17266-1-1.html
(出处: 国芯技术交流网站)

月亮很亮 发表于 2025-5-23 11:54:43

梁工,这个程序能适用电子风扇吗,比之前的好很多,但是还是没有调到能100%启动,调了两天的参数,感觉没有适配的,在纯调速的情况下,启动不是很好,加了PID的情况下,偶尔反转,然后在正过来,或者正转没达到转速,然后就是自己慢慢加大占空比,然后到达临界值、找到过零点之后,进行PID调速,启动时会出现反转的原因可能有哪些,程序中感觉没有反转相关的代码。

梁工 发表于 2025-5-23 15:41:00

月亮很亮 发表于 2025-5-23 11:54
梁工,这个程序能适用电子风扇吗,比之前的好很多,但是还是没有调到能100%启动,调了两天的参数,感觉没有 ...
只要是无感三相电机都可以,目前我测试手上的各种电机都可以可靠启动。
PID也是在启动之后,进入闭环才有PID,启动都是一样的。
你出现反转说明启动参数跟电机性能差别很大。
我一般只分高速电机和低速电机就可以了。

不知道你说“电子风扇”是啥,我主楼的视频,其一就是家用直流风扇的三相电机。

月亮很亮 发表于 2025-5-23 16:39:40

就是汽车水箱散热用的风扇,最大速度2200转,应该算是低速吧,参数和电机性能不匹配的话,又有一半的几率是可以正常启动的,这个算是不匹配吗。

梁工 发表于 2025-5-23 17:13:40

月亮很亮 发表于 2025-5-23 16:39
就是汽车水箱散热用的风扇,最大速度2200转,应该算是低速吧,参数和电机性能不匹配的话,又有一半的几率是 ...

匹配的话,基本是100%的启动成功。

lou 发表于 2025-5-27 20:27:38

请问下,phasetime = 0- phasetime,这步是什么意思啊?得个负数

梁工 发表于 2025-5-28 00:13:49

lou 发表于 2025-5-27 20:27
请问下,phasetime = 0- phasetime,这步是什么意思啊?得个负数

1、phasetime是16位无符号,不会有负数。
2、由于计数器是16位加计数,满溢出,所以要取其补码:0-phasetime = 65536UL-phasetime。

mark_lhm 发表于 2025-6-2 12:00:52

梁工你好~
程序中有关这段内容不是很理解~能帮忙解释一下为何设置为18为门限吗?
判断是否进入闭环是为何是PhaseTime<18呢?

        if(PhaseTime >= 18)        Degree30_time = PhaseTime/2 - 8;        //换相时间的一半, 即30度电角度, -8为修正8次采样时间
        else                                Degree30_time = 1;                                        //换相时间的一半, 即30度电角度

梁工 发表于 2025-6-2 13:37:13

mark_lhm 发表于 2025-6-2 12:00
梁工你好~
程序中有关这段内容不是很理解~能帮忙解释一下为何设置为18为门限吗?
判断是否进入闭环是为 ...

这个计算是为了抵消连续8次采样到相同的比较器输出,即,比较器过0信号出现,连续检测到8次,才认为有效,则过0检测滞后了8次采样时间,需要减去。
PhaseTime是换相时间(60度角),延时30度角时间 Degree30_time = PhaseTime /2;
减去8次采样时间就是 Degree30_time = Degree30_time - 8;
合在一起计算就是 Degree30_time = PhaseTime /2 - 8;
假设 Degree30_time <=17,则Degree30_time/2 <=8,
从而 Degree30_time = PhaseTime /2 - 8<=0,将会导致错误,所以要限制Degree30_time为非0,那么就是要求 Degree30_time = PhaseTime /2 - 8 >= 1;
反过来计算就是PhaseTime >= (1+8)*2 = 18, 就是程序中 if(PhaseTime >= 18)。

上述解释明白了吗?

haiming8685 发表于 2025-6-2 22:04:49

梁工您好!我将V2版的程序下载到板子后驱动电机,启动正常可电机转速很低,估计每分钟约有200转左右,调节电位器速度也不跟着变化,一直保持低速运转,是怎么回事
页: 1 [2] 3 4
查看完整版本: 三相无刷直流电机驱动-STC8H-STC32G-无HALL 改进启动算法,启动可靠