搜索
bottom↓
回复: 17

与诸位高手探讨在4轴中无刷电机控制响应时间问题

[复制链接]

出0入0汤圆

发表于 2013-1-29 10:10:43 | 显示全部楼层 |阅读模式
   从空心杯小电机Mini4轴改做无刷电机大4轴,第一个问题就是电调.我以前的姿态解算和PID控制周期都是5mS,于是,我选了号称响应速度333Hz的商品电调,并用200Hz的重复频率发PCM控制脉冲.但貌似电机的响应速度还是跟不上.
   于是,桨下弄个红外光电传感器,用来实测转速,方法是用stm32的定时器捕获中断,精确测出传感器每次被桨叶遮挡时刻和上次测量时刻的时间差.但结果令我震惊: 油门锁定在同一控制脉宽时,桨在每转一圈的过程中转速并不均匀! 下边是具体测试数据: <>内为定时器捕捉到的寄存器值,单位5us
<43D7>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<4D86>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<5735>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<5CBE>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<60E4>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<666D>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<6A93>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<701C>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<7443>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<049A>T=   1415(uS), f=  70.67(Hz),  4240.3 转/分
<08C1>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<0E4A>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<1270>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<17F9>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<1C1F>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<21A8>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<25CE>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<2B57>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<2F7E>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<3506>T=   1416(uS), f=  70.62(Hz),  4237.3 转/分
<392D>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<3EB5>T=   1416(uS), f=  70.62(Hz),  4237.3 转/分
<42DC>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<4865>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<5214>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<5BC3>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<6572>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<6F21>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<74AA>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<039F>T=   1061(uS), f=  94.25(Hz),  5655.0 转/分
<0928>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<0D4E>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<12D7>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<16FE>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<1C86>T=   1416(uS), f=  70.62(Hz),  4237.3 转/分
<20AD>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<2636>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<2A5C>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<2FE5>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<340B>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<3994>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<3DBA>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<4343>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<476A>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<4CF2>T=   1416(uS), f=  70.62(Hz),  4237.3 转/分
<5119>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<56A2>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<5AC8>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<6051>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<6477>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<6A00>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<6E27>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<73AF>T=   1416(uS), f=  70.62(Hz),  4237.3 转/分
<082D>T=   2478(uS), f=  40.36(Hz),  2421.3 转/分
<11DD>T=   2480(uS), f=  40.32(Hz),  2419.4 转/分
<1B8B>T=   2478(uS), f=  40.36(Hz),  2421.3 转/分
<253B>T=   2480(uS), f=  40.32(Hz),  2419.4 转/分
<2AC4>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<2EEA>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<3473>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<3899>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<3E22>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<4248>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<47D1>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<4BF8>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<5180>T=   1416(uS), f=  70.62(Hz),  4237.3 转/分
<55A7>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<5B2F>T=   1416(uS), f=  70.62(Hz),  4237.3 转/分
<5F56>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<64DF>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<6905>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
<6E8E>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<72B5>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<030C>T=   1415(uS), f=  70.67(Hz),  4240.3 转/分
<0733>T=   1063(uS), f=  94.07(Hz),  5644.4 转/分
<0CBC>T=   1417(uS), f=  70.57(Hz),  4234.3 转/分
<10E2>T=   1062(uS), f=  94.16(Hz),  5649.7 转/分
......
仔细一分析,这也难怪, 你的转速才每分钟6000转,也就是10mS才转够一圈,你怎么可能让人家电调5mS内为你调整转速,人家电调测电机反电动势也得转半圈才能知道结果吧.
因此,我就困惑自己为什么非要控制的这么快?
于是,晚上又折腾一通宵原来的那个瓢虫架子,同样测转速.那时我给空心杯的控制PWM脉冲是100KHz,占空比0%-100%的可控,结果人家空心杯转速均匀,反应良好,如下数据:
<59D5>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<6384>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<6D33>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<01B2>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<0B61>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<1510>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<1EBF>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<286E>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<321D>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<3BCC>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<457B>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<4F2B>T=   2480(uS), f=  40.32(Hz),  2419.4 转/分
<58D9>T=   2478(uS), f=  40.36(Hz),  2421.3 转/分
<6288>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<6C37>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<00B5>T=   2478(uS), f=  40.36(Hz),  2421.3 转/分
<0A65>T=   2480(uS), f=  40.32(Hz),  2419.4 转/分
<1414>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<1DC3>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<2772>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<3121>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<3AD0>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<447F>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<4E2E>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<57DD>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<618C>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<6B3B>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<74EA>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<0968>T=   2478(uS), f=  40.36(Hz),  2421.3 转/分
<1317>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<1CC6>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<2675>T=   2479(uS), f=  40.34(Hz),  2420.3 转/分
<3025>T=   2480(uS), f=  40.32(Hz),  2419.4 转/分
<39D3>T=   2478(uS), f=  40.36(Hz),  2421.3 转/分
<4383>T=   2480(uS), f=  40.32(Hz),  2419.4 转/分
<4D31>T=   2478(uS), f=  40.36(Hz),  2421.3 转/分
<56E1>T=   2480(uS), f=  40.32(Hz),  2419.4 转/分
........
难道,这才是很多"高端"玩具4轴用空心杯减速电机驱动,而不用无刷,或用自己专用电调的真正原因?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2013-1-29 10:14:03 | 显示全部楼层
商品的电调是没有pid的调节的吧?只是发速度PWM而已。

出0入0汤圆

 楼主| 发表于 2013-1-29 10:23:51 | 显示全部楼层
ahuang227 发表于 2013-1-29 10:14
商品的电调是没有pid的调节的吧?只是发速度PWM而已。

我用的是黑底大红字30A 小白字OPTO的那种电调测的, 出厂默认设置,没自己进行什么设定, 因为还没搞懂那些滴滴哒哒的呻吟菜单

出0入0汤圆

发表于 2013-1-29 12:33:24 | 显示全部楼层
难道,这才是很多"高端"玩具4轴用空心杯减速电机驱动,而不用无刷,或用自己专用电调的真正原因?
---------------------------------------------------------------------------------------------------------------------------------
高端几乎全是无刷,空心杯,转速好控制,有个死结,有电刷,时间长了准坏...

出0入0汤圆

 楼主| 发表于 2013-1-29 12:35:25 | 显示全部楼层
plc_avr 发表于 2013-1-29 12:33
难道,这才是很多"高端"玩具4轴用空心杯减速电机驱动,而不用无刷,或用自己专用电调的真正原因?
------------ ...

哈,我说的"高端"是带""的

出0入0汤圆

发表于 2013-1-29 12:37:31 | 显示全部楼层
有Mini无刷电机,但是价格太贵,玩不起…………

出0入0汤圆

 楼主| 发表于 2013-1-29 20:57:36 | 显示全部楼层
已经确认,电调在油门脉冲不变时,是保持一个较长时间周期(秒级)内的平均转速不变,但每转一圈或者说在比较短的一小段时间内,转速是呈一定周期性规律忽大忽小的改变的,油门越大,包含高转速的成分就越多,最高转速就越高,但大概都是那么几个确定的离散值之一。等会我传上一组实测数据,让真正的内行高手帮着看看,再分析下这电调这样控制有什么好处和弊端。我觉得一般业余条件都是用红外测速表测平均转速,油门大到一定程度这平均转速就基本固定升不上去了,但产生的升力却依然能随油门增大而加大,貌似违背了转速平方和升力成正比的理论。其实原因是油门加大高转速离散值和低转速离散值间差距增大了。

出0入0汤圆

 楼主| 发表于 2013-1-29 21:04:10 | 显示全部楼层

这是我测试某电调和电机的完整数据,供内行同仁参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-1-29 21:17:05 | 显示全部楼层
如果有人也在研究这个问题,请仔细看一下数据帮忙分析一下。每行数据,是每次桨(1045双叶)转过180度测得的,每隔6秒统计有累计脉冲个数计算的6秒内平均转速。每隔一定时间随机采集当时的升力值。可以看出,油门PCM脉宽从1360uS开始,6秒平均转速就维持在3000转左右不升了,但产生拉力却还能从200克到400克随油门单调上升,要没有每行的数据肯定会为之惊奇。

出0入0汤圆

发表于 2013-3-30 18:42:23 | 显示全部楼层
agnd 发表于 2013-1-29 21:17
如果有人也在研究这个问题,请仔细看一下数据帮忙分析一下。每行数据,是每次桨(1045双叶)转过180度测得的 ...

这个问题有答案了吗?

出0入0汤圆

发表于 2013-6-15 10:11:23 | 显示全部楼层
这个问题有答案了吗?这个问题有答案了吗?这个问题有答案了吗?

出0入0汤圆

发表于 2013-6-15 14:52:05 | 显示全部楼层
打算自己做电调,stm32 霍尔传感器 驱动电路,用485或can通信

出0入0汤圆

发表于 2013-6-15 15:45:19 | 显示全部楼层
flylinux 发表于 2013-6-15 14:52
打算自己做电调,stm32 霍尔传感器 驱动电路,用485或can通信

有带霍尔传感器的适合四轴用的无刷电机?

出0入0汤圆

发表于 2013-6-15 16:53:07 | 显示全部楼层
kmani 发表于 2013-6-15 15:45
有带霍尔传感器的适合四轴用的无刷电机?

无刷舵机好多都是霍尔吧

出0入0汤圆

发表于 2013-6-15 17:55:52 | 显示全部楼层
flylinux 发表于 2013-6-15 16:53
无刷舵机好多都是霍尔吧

一般无刷舵机里面的马达是不是功率不太够啊

出0入0汤圆

发表于 2013-6-15 18:00:27 | 显示全部楼层
楼主上面的问题可能使因为电调开关频率过低导致换向不及时,这样定子对转子产生了阻碍作用,于是就有了转速低的时候。当准确换向之后,又产生加速作用,于是有了高转速。 猜测这个还和程序写的不合理有关。
猜测提高电调开关频率会减弱转速的变化,但是会增加损耗。

出0入0汤圆

发表于 2013-6-15 22:00:23 | 显示全部楼层
没这么夸张,我用的可以直接传出转速的无刷电调及相应的遥控器,遥控器端可直接显示电机转速,在无刷电机的测试中,并没有发现你所说的转速不稳的情况,而且转速的提升和拉力的提升是呈对应关系的。

出0入0汤圆

发表于 2014-8-14 10:23:32 | 显示全部楼层
问题解决了吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 02:10

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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