找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

26万转:用最短代码,转最快电机

  [复制链接]
51#
 楼主| Angus 发表于 2017-11-21 17:57:43 | 显示全部楼层
本帖最后由 Angus 于 2017-11-21 17:59 编辑
xiaoshizi 发表于 2017-11-20 11:01
真是很抱歉,应该早告诉你的;sorry,sorry。加了电容,用了本帖的库也不能启动;你看到的能启转的波形是 ...

你改为ACMP0检测,代码改动比较大的,有好多地方都要改,包括转动数组的值。
回复 支持 反对

使用道具 举报

52#
 楼主| Angus 发表于 2017-12-5 17:41:00 | 显示全部楼层
xiaoshizi 发表于 2017-12-5 17:06
Angus大神,有的时候电机启动不顺畅,还会出现启动不成功的问题,需要怎么解决呢?

还要就是非静止启动会 ...

如果在启转之前电机已在转,要测一下转动周期,找到一个过0点,直接从过0点的下一相启转,就可以直接同步顺畅转动。
回复 支持 反对

使用道具 举报

53#
 楼主| Angus 发表于 2017-12-6 13:36:57 | 显示全部楼层
xiaoshizi 发表于 2017-12-5 18:00
好的,非常感谢。程序中BLDC_Test(15*1000) 函数的15*1000是根据什么算出来的呢?这个函数的功能是不是测 ...

BLDC_Test()的参数是超时时间,超过这些微秒检测不到跳变就认为电机没转。
偶有启转不好,你用 lib 文件了吗?
回复 支持 反对

使用道具 举报

54#
 楼主| Angus 发表于 2017-12-6 20:54:50 | 显示全部楼层
xiaoshizi 发表于 2017-12-6 14:16
我没用lib,不用lib有什么需要注意的吗?

你用 lib 试一下,看效果如何
回复 支持 反对

使用道具 举报

55#
 楼主| Angus 发表于 2017-12-8 15:01:29 | 显示全部楼层
本帖最后由 Angus 于 2017-12-8 23:07 编辑
xiaoshizi 发表于 2017-12-7 16:31
试了一下LIB,电机反而不能启动了。只能很慢很慢的转动,并没有完全启动起来。
现在遇到一个新的问题,电 ...

转速较低时,反电势也很小,过零检测电阻的偏差影响就出现了,所以,要用精度1%的电阻。
从你的波形上看,换相时间已出现不匀等的情况,就是过0检测电阻误差大,过0点不准造成的。出现卡顿可能与此有关。
用 Lib 启转会更好一些,可能是比较器或转动数组那里,没配置对。
回复 支持 反对

使用道具 举报

56#
 楼主| Angus 发表于 2018-4-9 09:45:57 | 显示全部楼层
本帖最后由 Angus 于 2018-4-12 10:41 编辑
游客 58.251.230.x 发表于 2018-4-6 23:46
Angus大神:请教下MINI51启动方法,看我理解的对不对。

BLDC启动:有两个参数,第一个FirstPeriod是设定第 ...

你的理解基本正确。
TIMER1->CMPR = TIMER1->DR + ((PeriodNow*3)>>2) ; 过0点之后,再过3/4周期再检过0。所以有3/4时间执行中断外代码。此中断优先级定为1,优先级为0的可以打断,比如过流保护中断要优先于所有事件。
代码的优化,主要在启转阶段换相的纠正——让启转更顺。优化后的代码请向电机部门的技术人员索取。
回复 支持 反对

使用道具 举报

57#
 楼主| Angus 发表于 2018-5-2 11:27:26 | 显示全部楼层
本帖最后由 Angus 于 2018-5-7 10:31 编辑

这个电阻可以去掉。
此电阻可在U相产生一个高于中点的电压,有两个作用,一是在转之前测此相电压的脉冲,可知电机是否在转,加个电阻防止电压0伏时比较器输出的不定状态。二是,转动检下沿过0时,电机转起来U相电压才会低于中点,  防止电机没转,受干扰误以为检测到过0。
通过延时控制,或比较器回差电压的配置,此电阻可以去掉。
回复 支持 反对

使用道具 举报

58#
 楼主| Angus 发表于 2020-5-29 16:04:32 | 显示全部楼层
游客 223.104.63.x 发表于 2019-10-25 23:46
lz,你好,我想问题下, PeriodNow  = (PeriodNow + PeriodLast)>>1 ;这个语句静止启动时候PeriodNow =60*10 ...

是代码里,检过0的超时时间设置为了两倍周期值。
回复 支持 反对

使用道具 举报

59#
 楼主| Angus 发表于 2022-8-23 10:20:32 | 显示全部楼层
本帖最后由 Angus 于 2022-8-23 10:22 编辑

高压电路干扰较大,R61是产生约30~50mV电压,防止比较器抖动,低压电路一般可不用此电阻。

R25,R91, R92,R94 串到引脚,可在过0电压稍高于VDD时,限流保护引脚。算好分压比,这个可省。

三极管的作用是,当芯片供电开关、断开时,此三极管保持芯片供电,等电机停转了,芯片自己切断VDD电源。在 main while(1)里,有这部分控制代码。
回复 支持 反对

使用道具 举报

60#
 楼主| Angus 发表于 2022-8-23 14:09:49 | 显示全部楼层
本帖最后由 Angus 于 2022-8-24 22:22 编辑
a20084666 发表于 2022-8-23 10:56
感谢讲解 ,那为何只有一相有30==50mv的电压

如果三相都加,就把中点电压抬高了,三相又平衡了,等于都没加。
加电阻的那相,反电势要超过被抬高的 30~50mV,比较器输出才会反转定为检到过0。输入电压在0V左右时输出不会抖动。
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU