amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
楼主: timegate

写给四轴新人:无感无刷直流电机之电调设计全攻略

  [复制链接]
 楼主| 发表于 2010-8-22 09:06:35 | 显示全部楼层
回复【93楼】xj_1232005  
-----------------------------------------------------------------------

又看了一下源代码,觉得你说的没错,这里毫秒级的最大延时确实只能达到0x7FFF,微秒级的延时也只能达到127,谢谢指正!


其他两处错别字的问题也已经改正,由于帖子主题已超过24小时,不能修改,只能在下面的回帖里上传了。以后还要多多请教陀螺仪和三轴平台的问题 :)
发表于 2010-8-22 09:16:28 | 显示全部楼层
dingyige
 楼主| 发表于 2010-8-22 10:34:05 | 显示全部楼层
修正了一些错误后的文档,感谢所有读过和提出过意见的朋友。

点击此处下载 ourdev_576868.pdf(文件大小:4.58M) (原文件名:无感无刷直流电机之电调设计全攻略.pdf)
发表于 2010-8-22 11:39:28 | 显示全部楼层
回复【98楼】timegate 墨鸢
-----------------------------------------------------------------------

"他们的差模电压应该是可以随时比较的,而分压电路又是这两相电压的忠实按比例再现,所以比较器应该是可以一直开着的"

-----------------------------------------------------------------------
恰恰是续流的存在,导致比较器输出在某些情况下是没有意义的


这是采用上管PWM方式,PWM分别是ON 和 OFF时的电流通路
可以看到OFF时Va被钳位于-Vd(体二极管压降),忽略Rds,Vb是0,因此在忽略反电势ea和eb,中性点是-Vd/2

(原文件名:上管PWM ON.JPG)


(原文件名:上管PWM OFF.JPG)

这是采用下管PWM方式,PWM分别是ON 和 OFF时的电流通路
可以看到OFF时Va被钳位于Vdc(电源)+Vd(体二极管压降),忽略Rds,Vb是0,因此在忽略反电势ea和eb,中性点是Vdc+(Vd/2)

(原文件名:下管PWM ON.JPG)


(原文件名:下管PWM OFF.JPG)

这是采用双边PWM方式,PWM分别是ON 和 OFF时的电流通路
忽略反电势ea和eb,中性点会在Vdc/2

(原文件名:双边PWM ON.JPG)


(原文件名:双边PWM OFF.JPG)

可见在上管PWM调制,或者下管PWM调制时,PWM OFF态初期,悬浮相电压是没有意义的,因为它们被钳位了,自然也就不能体现反电势了

可能理论有一定偏差,或者不能令人信服,还不足以说明问题,那么我用实践来证明我的观点
这是我以大约20%PWM,下管PWM调制方式的测试波形,蓝色是分压后的中性点,黄色是分压后的相电压
第一张图片可以明显的看到两种颜色的曲线有一个上升交叉过零事件,大体上看好像是在过零之前蓝色大于黄色(这是我们所期望的),但是请看放大以后的第二张图,明显在每个PWM OFF初期,蓝色被钳位到比黄色还小

(原文件名:中性点与悬浮相.JPG)


(原文件名:中性点与悬浮相2.JPG)
发表于 2010-8-22 14:04:14 | 显示全部楼层
超级大作呀,非常感谢楼主。
发表于 2010-8-22 14:12:16 | 显示全部楼层
谢谢
发表于 2010-8-22 17:07:21 | 显示全部楼层
lijieamd兄实验功底很强啊。照这样看,比较器如果一直处在比较工作状态是不对的了。因为在上管PWM,下管ON的工作模式中,会带来过零误判的问题。我得去看看4AXIS的BL-CTRL实际代码,再来讨论。
发表于 2010-8-22 18:05:51 | 显示全部楼层
【楼主位】 timegate 墨鸢

攻略的69页中间原文如下:
-------------------------------------------------------------------------------------------------------------

(2)第334~446行:测试六个MOSFET 的短路特性。
(main.c的void MotorTon(void)函数的第334~346行有两个用意:一是看看是否有管子已被击穿,二是看看场效应管的开关特性是
否足够陡峭。现分析如下:第336,337行打开A相的下单臂(即NA-管),并测一下电流。此时,电流应该是极小,但是如果测到大电流,则说明NA+管已是击穿状态。然后第338~340行先关断所有管,然后延时一下,再打开A相的上单臂,在第341行测电流时也应该是极小,如果测到大电流,说明可能有两种情况:1. NA-场效应管已是击穿状态,2. NA-场效应管的下降沿过于缓慢,以至于NA+都打开了,NA-还没彻底关断。如果测到大于0.5A的大电流,不管哪种情况,都会在343行将局部变量anz设为4,表明故障点,并通过串口发给上位机。
--------------------------------------------------------------------------------------------------------------------

V0.41版本BL-ctrl相应代码如下:
334: for(i=0;i<t;i++)
335:    {
336:      LOW_A_EIN;
337:      DelayM(1);
338:      FETS_OFF;
339:      Delay(5);
340:      HIGH_A_EIN;
341:      DelayM(1);
342:      FETS_OFF;
343:      if(Strom > grenze + RuheStrom) {anz = 4; uart_putchar('4'); FETS_OFF; break;}
344:      Delay(5);
345:    }
346:Delay(10000);

此段代码用来测试NA+与NA-场效应管是否已坏。但是337行调用DelayM(1)测NA-场效应管单独导通时电流,341行同样调用DelayM(1)测试NA+场效应管单独导通进电流。而DelayM(1)的返回值并没有利用起来(有利于判断是上管还是下管)。另外,343行的判断是有问题的。因为如果337行的检查没有通过,但341行的检测通过了,即上管的strom不满足> grenze + RuheStrom,但下管的strom满足> grenze + RuheStrom满足,则此段程序仍然视为通过检测。所以,如果上管导通时,电流变大,说明下管关断能力不强或是已坏。当关断上管,轮到发信号给下管使其导通时,尽管可能下管已坏,但如果上管关断得好,此时测得电流并不大。会被视为A的上下管都没有问题,通过。实际上上管存在问题。这个可能性是存在的。

所以,判断语句最好应使用上下管测得的最大电流值作为判断依据。即343行判断语句中不应使用Strom,而应使用Strom_max,而且在使用前和使用后应对Strom_max清零。以便取得的是A管上下管测试时取得的最大电流值,且在对B管进行测试前清零。

以上不知妥否?
 楼主| 发表于 2010-8-22 21:24:06 | 显示全部楼层
回复【103楼】lijieamd  
-----------------------------------------------------------------------

你的实验确实做得比我细,这里佩服一下 :)

回帖中上半段所说的续流状态我完全同意,我也是这么理解的,但最后2张图中有若干不明之处,还望指教。1.悬浮相的电压由于二极管的钳位作用可以突变,这个没问题,但为什么电压Vc不能突变,是否因Coes电容的原因才导致Vc不能突变?2.如果在每个PWM OFF期间,Vc都会超过悬浮相的话,那MK的程序应该早出问题了,不知为何还可以运行?(我目前正在分析另一个德国人Bernhard Konze写的开源电调代码,不过那是汇编写的,相信比较完这两个电调代码后应该可以解释这个问题)。3. 倒数第二张图中的蓝色曲线的波峰为何呈吊桥型?

另外,看了你倒数第二张图中的消磁事件的波形,我认为我对MK如何消除“消磁事件”这段代码的理解可能也有问题,等比较完Bernhard Konze的代码后再作计较。很感谢你的回帖,能让我们对事物本质的理解和探讨更加深一层。
 楼主| 发表于 2010-8-22 21:33:15 | 显示全部楼层
回复【107楼】xj_1232005  
-----------------------------------------------------------------------

说的对,我也认为337行那句DelayM(1)写的有些莫名其妙。姑且只能这么认为,MK这个BL-Ctrl的代码是经过多次修改而进化来的,期间留下了很多老版本未消除干净的痕迹,而MK的作者并没有花大力气对BL-Ctrl这个模块上的程序作优化。上面已提到,我正在分析Bernhard Konze的电调代码,等看完,有了比较后,应该可以对MK的代码作一个比较客观的评价。
发表于 2010-8-23 00:13:34 | 显示全部楼层
回复【108楼】timegate 墨鸢
-----------------------------------------------------------------------

1.因为在续流期间(PWM OFF初期),整个回路为电流通路,中性点电压仅仅由A,B相反电势,A,B相内阻,续流电流大小来决定,因此在关断瞬间,是连续电流,但是是突变电压,而此时悬浮相是断路,悬浮相通过场效应管CDS与GND相连,因此悬浮相是电压连续,电压无法突变

2.MK的电调貌似不是同步检测,而是采用相电压低通滤波,因此不存在这些问题,况且还有众多软件滤波可以选用(典型如 择多滤波),
这个问题仅仅在同步检测时才需要考虑

3.因为是三相电机,三相反电势理想情况下应该是三个相位相差120度的正弦波,因此满足 Ea+Eb+Ec=0
在PWM ON态,中性点电压是 VCC/2 - (Ea+Eb)/2, 而在一个完整的周期中,显然Ea+Eb会出现一次最大值和一次最小值
最大的值出现在Ec为最小的时候(从Ea+Eb+Ec=0 这个等式可以显然看出),从图上看就是黄色反电势最小的时候,
因此这个时候 VCC/2 - (Ea+Eb)/2 出现最小
其实也就是两个相位差120度的正弦波叠加而已,分析一个极值应该就可以弄明白了

(两个通道由于pwm太密集,有些地方出现重叠,请自行脑内删除)

(原文件名:中性点与悬浮相3.JPG)
发表于 2010-8-23 00:15:04 | 显示全部楼层
攻略的69页第二部分从(3)标题倒数3行:
    “之后365~363行”
应改为
    “之后的348到363”。
------------------------------------------------
只是觉得文章写得太好,不忍心看到瑕疵而已。
发表于 2010-8-23 07:47:30 | 显示全部楼层
【100楼】 timegate 墨鸢
关于us级的延时,有一点不同的想法
-----------------------------------------------------------------------

又看了一下源代码,觉得你说的没错,这里毫秒级的最大延时确实只能达到0x7FFF,微秒级的延时也只能达到127,谢谢指正!

-------------------------------------------------------------------------------------
us级的算法是{(CountMilliseconds当前值+要延时的时间t-1)-CountMilliseconds不断递增的当前值},这个结果的最高位为1时即认为延时时间已经到了。

以四位二进制数为例:

延时时间            T0(us级)
t                 CountMilliseconds(当前值)                    
0b1000                       0b0010                             

有0b0010+0b1000-0b0001=0b1001

在CountMilliseconds跳变到0b1001前,都有{(CountMilliseconds当前值+要延时的时间t-1)-CountMilliseconds不断递增的当前值}的结果的最高位为0
在CountMilliseconds跳变到0b1001时,结果仍然为0.
直到CountMilliseconds跳变到0b1010时,结果才为1.
所以貌似延时五位二进制数的一半可以满足要求。
如果以上分析正确,则延时17位进制数的一半时间即0x8000,仍然是满足要求的。
发表于 2010-8-23 10:12:25 | 显示全部楼层
mark
发表于 2010-8-23 10:29:55 | 显示全部楼层
学习学习
发表于 2010-8-23 10:46:42 | 显示全部楼层
mark
发表于 2010-8-23 11:20:07 | 显示全部楼层
非常不错的东西,很少有人能静下来写这些东西,嘿嘿。
发表于 2010-8-24 16:44:38 | 显示全部楼层
好资料 不得不顶起
 楼主| 发表于 2010-8-24 18:22:32 | 显示全部楼层
回复【110楼】lijieamd  
-----------------------------------------------------------------------

多谢,我再仔细想想。
 楼主| 发表于 2010-8-24 18:27:12 | 显示全部楼层
回复【112楼】xj_1232005  
-----------------------------------------------------------------------

呵呵,最近好像我的疏漏很多呀,-1看漏掉了,0x8000应该是可以的;MK的代码隔了一段时间没看,都有些生疏了。

以后等我的Bernhard Konze的电调代码分析出来,也请你来抓BUG哦  :p
发表于 2010-8-26 20:02:00 | 显示全部楼层
回复【10楼】flyunlimit  飞行无极限
-----------------------------------------------------------------------

请问下  
mk开环起动:定位,加速,换向,循环一段时间后切换到比较中断,进入闭环控制。
    问题是一开始启动时电机堵转,启动时间结束,此时电机未转动,转子内部发出杂音,应该是电流的作用,我试过在堵转时第二次在启动,还是不行
  这时候该怎么处理呢, 另外开环的话是不是无法满足所有电机的启动,
    现在就是启动成功率不高,时常有卡住的情况
发表于 2010-8-26 20:02:47 | 显示全部楼层
回复【楼主位】timegate  墨鸢
-----------------------------------------------------------------------
请问
mk开环起动:定位,加速,换向,循环一段时间后切换到比较中断,进入闭环控制。
    问题是一开始启动时电机堵转,启动时间结束,此时电机未转动,转子内部发出杂音,应该是电流的作用,我试过在堵转时第二次在启动,还是不行
  这时候该怎么处理呢? 另外开环的话是不是无法满足所有电机的启动?
    现在就是启动成功率不高,时常有卡住的情况
发表于 2010-8-26 20:32:48 | 显示全部楼层
mark
发表于 2010-8-26 21:24:50 | 显示全部楼层
看来作者花了很多精力,致敬!
发表于 2010-8-26 22:37:28 | 显示全部楼层
回复 【119楼】 timegate 墨鸢
----------------------------------

好,My pleasure.
发表于 2010-8-27 14:03:16 | 显示全部楼层
好贴,顶
发表于 2010-8-27 15:32:43 | 显示全部楼层
牛叉的四轴.
发表于 2010-9-1 22:39:51 | 显示全部楼层
谢楼主强帖,让我们做电调快速入门。不加酷对不住楼主啊。
发表于 2010-9-2 16:31:20 | 显示全部楼层
分析的精彩!支持楼主的奉献精神!赞美了!
发表于 2010-9-2 17:02:59 | 显示全部楼层
很好的东西 正用得着
非常感谢!
发表于 2010-9-3 14:40:20 | 显示全部楼层
丁顶啊。
发表于 2010-9-4 14:04:57 | 显示全部楼层
赞扬楼主的精神,如果每个人都能像楼主这样讲的精辟,我想我们国家的技术和研发能力肯定能提高的很快。
发表于 2010-9-4 15:09:33 | 显示全部楼层
谢谢LZ的分享,希望以后还有更多的像LZ这样的人。
发表于 2010-9-7 10:17:26 | 显示全部楼层
继续关注!希望楼主继续更新...关注!
发表于 2010-9-7 11:09:26 | 显示全部楼层
mark
发表于 2010-9-10 17:05:47 | 显示全部楼层
刚接触电调,看来读完楼主这本应该会有理解了吧!
发表于 2010-9-17 00:03:25 | 显示全部楼层
诚挚的感谢
发表于 2010-9-17 12:35:35 | 显示全部楼层
无感无刷直流电机之电调设计全攻略.pdf  下来这个文件才1.03M,而且损坏,打不开啊!
发表于 2010-9-30 16:06:13 | 显示全部楼层
真的是太好资料了,哈哈,感谢LZ
发表于 2010-9-30 16:51:42 | 显示全部楼层
学习。
十分感谢
发表于 2010-10-2 00:44:48 | 显示全部楼层
能找到这个论坛真是幸运,看到这么多高手
发表于 2010-10-5 10:18:09 | 显示全部楼层
楼主写的太好了,
发表于 2010-10-5 12:07:09 | 显示全部楼层
mark
发表于 2010-10-8 22:34:41 | 显示全部楼层
有个文字错误,六臂全桥驱动电路原理那里,

有个Q2Q2

应该是Q1Q2吧
发表于 2010-10-8 22:56:18 | 显示全部楼层
真的是太好资料了,哈哈,感谢LZ
发表于 2010-10-8 23:26:16 | 显示全部楼层
mark
发表于 2010-10-9 12:38:29 | 显示全部楼层
这个绝对要顶!
发表于 2010-10-10 14:51:54 | 显示全部楼层
强帖留名
发表于 2010-10-15 01:36:38 | 显示全部楼层
看完了资料,有空做个60A的试试。
发表于 2010-10-15 05:30:17 | 显示全部楼层
好资料 马克一下
发表于 2010-10-15 08:31:24 | 显示全部楼层
mark
发表于 2010-10-15 10:17:25 | 显示全部楼层
mark
发表于 2010-10-16 13:24:38 | 显示全部楼层
先mark,等学习后再来回复。
发表于 2010-10-16 14:40:29 | 显示全部楼层
很不错
发表于 2010-10-16 18:38:40 | 显示全部楼层
非常好,我开始在电调地址那也犯错了,看了这篇文档才发现问题
发表于 2010-10-22 19:13:58 | 显示全部楼层
作为新人,一定要顶
发表于 2010-10-23 16:53:06 | 显示全部楼层
一定会仔细拜读。。
发表于 2010-10-25 11:45:10 | 显示全部楼层
回复【楼主位】timegate 墨鸢
-----------------------------------------------------------------------

膜拜下
发表于 2010-10-25 17:59:45 | 显示全部楼层
非常正点 非看不可
发表于 2010-10-25 20:58:35 | 显示全部楼层
mark
发表于 2010-10-29 11:42:19 | 显示全部楼层
好人,好贴,谢谢分享
发表于 2010-10-29 13:42:25 | 显示全部楼层
MARK!
发表于 2010-10-29 19:50:22 | 显示全部楼层
多谢LZ了,虽是新手菜鸟,先下载学习!赞LZ
发表于 2010-10-31 11:31:30 | 显示全部楼层
讲得很透彻
发表于 2010-11-1 08:31:31 | 显示全部楼层
写的太好了!!!!!!!!!!
发表于 2010-11-5 12:47:47 | 显示全部楼层
顶,准备学习
发表于 2010-11-5 14:26:33 | 显示全部楼层
回复【165楼】westssd
-----------------------------------------------------------------------

开工
发表于 2010-11-5 14:34:49 | 显示全部楼层
谢谢LZ的分享,希望以后还有更多的像LZ这样的人
发表于 2010-11-5 15:22:47 | 显示全部楼层
感谢楼主分享!此精神能鼓励更多的人!
发表于 2010-11-5 16:03:49 | 显示全部楼层
感谢楼主分享
发表于 2010-11-7 21:43:13 | 显示全部楼层
MARK
发表于 2010-11-7 23:00:13 | 显示全部楼层
好帖子呀!顶……
发表于 2010-11-10 13:05:27 | 显示全部楼层
顶一下
发表于 2010-11-11 01:10:53 | 显示全部楼层
电调,简单而深奥
发表于 2010-11-11 15:10:10 | 显示全部楼层
mark
发表于 2010-11-18 21:10:20 | 显示全部楼层
中国的希望,看完楼主的序,看完楼主呕心沥血的资料不赞不是人。楼主渊博,扎实,心广,不仅功夫好思想更高。
发表于 2010-11-22 17:17:35 | 显示全部楼层
好人,好贴
谢谢
发表于 2010-11-22 21:08:17 | 显示全部楼层
好贴就要狂顶~~~
发表于 2010-11-23 12:38:32 | 显示全部楼层
牛人
发表于 2010-11-23 12:55:42 | 显示全部楼层
学习了
发表于 2010-11-25 22:56:47 | 显示全部楼层
对有心人的回帖也该用心。先下载文档,仔细看过再做评论。谢谢楼主。
发表于 2010-11-29 15:43:34 | 显示全部楼层
真心谢过楼主
发表于 2010-11-30 20:20:27 | 显示全部楼层
mark
发表于 2010-11-30 21:04:03 | 显示全部楼层
顶起来,谢谢lz了!!!
发表于 2010-11-30 21:57:20 | 显示全部楼层
mark
发表于 2010-12-2 09:17:04 | 显示全部楼层
菜鸟学飞
发表于 2010-12-2 12:56:27 | 显示全部楼层
强人啊,学习学习~~!
发表于 2010-12-7 16:26:54 | 显示全部楼层
mark
发表于 2010-12-7 16:46:16 | 显示全部楼层
真希望自己也能做点创新的东西出来和大家共享,
感谢楼主
发表于 2010-12-7 18:37:45 | 显示全部楼层
mark
发表于 2010-12-7 18:55:01 | 显示全部楼层
刚才拜读了楼主的文章,真是用心了!佩服
发表于 2010-12-9 20:34:05 | 显示全部楼层
好帖,必看的
发表于 2010-12-10 15:12:41 | 显示全部楼层
我太佩服楼主了,这样的态度还有什么做不成功啊,顶
发表于 2010-12-11 13:09:06 | 显示全部楼层
mark
发表于 2010-12-11 16:58:13 | 显示全部楼层
学习
发表于 2010-12-11 17:04:27 | 显示全部楼层
MARK
发表于 2010-12-12 23:22:26 | 显示全部楼层
关注一下!!!!
想学习下!
佩服啊!
发表于 2010-12-13 10:32:58 | 显示全部楼层
楼主实在是太厉害了,什么时候我也弄个无刷电机回来玩玩,到时候这篇文章就成了我的入门指导了!
多谢楼主!
辛苦了!
发表于 2010-12-13 21:08:04 | 显示全部楼层
好帖就要顶啊,潜水半年了,很少发言,不过看到楼主的无私,也要出来支持下。无奈的是,莫老大,俺的身份咋还是正在审核呢
发表于 2010-12-15 17:42:48 | 显示全部楼层
谢了啊
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 工信部备案:粤ICP备09047143号 公安备案:4419003011657 )

GMT+8, 2017-12-16 13:02

阿莫电子论坛, 原"中国电子开发网"

© 2004-2016 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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