数字舵机与模拟舵机比较.docx
- 文档编号:24288501
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:8
- 大小:23.08KB
数字舵机与模拟舵机比较.docx
《数字舵机与模拟舵机比较.docx》由会员分享,可在线阅读,更多相关《数字舵机与模拟舵机比较.docx(8页珍藏版)》请在冰豆网上搜索。
数字舵机与模拟舵机比较
一、数码舵机与模拟舵机的区别
传统模拟舵机和数字比例舵机(或称之为标准舵机)的电子电路中无MCU微控制器,一般都称之为模拟舵机。
老式模拟舵机由功率运算放大器等接成惠斯登电桥,根据接收到模拟电压控制指令和机械连动位置传感器(电位器)反馈电压之间比较产生的差分电压,驱动有刷直流电机伺服电机正/反运转到指定位置。
数字比例舵机是模拟舵机最好的类型,由直流伺服电机、直流伺服电机控制器集成电路(IC),减速齿轮组和反馈电位器组成,它由直流伺服电机控制芯片直接接收PWM(脉冲方波,一般周期为20ms,脉宽1~2ms,脉宽1ms为上限位置,1.5ms为中位,2ms为下限位置)形式的控制驱动信号,迅速驱动电机执行位置输出,直至直流伺服电机控制芯片检测到位置输出连动电位器送来的反馈电压与PWM控制驱动信号的平均有效电压相等,停止电机,完成位置输出。
数码舵机电子电路中带MCU微控制器故俗称为数码舵机,数码舵机凭借比之模拟舵机具有反应速度更快,无反应区范围小,定位精度高,抗干扰能力强等优势已逐渐取代模拟舵机在机器人、航模中得到广泛应用。
数码舵机设计方案一般有两种:
一种是MCU+直流伺服电机+直流伺服电机控制器集成电路(IC)+减速齿轮组+反馈电位器的方案,以下称为方案1,另一种是MCU+直流伺服电机+减速齿轮组+反馈电位器的方案,以下称为方案2。
市面上加装数码驱动板把模拟舵机改数码舵机属方案1。
二、舵机电机调速原理及如何加快电机速度
常见舵机电机一般都为永磁直流电动机,如直流有刷空心杯电机。
直流电动机有线形的转速-转矩特性和转矩-电流特性,可控性好,驱动和控制电路简单,驱动控制有电流控制模式和电压控制两种模式。
舵机电机控制实行的是电压控制模式,即转速与所施加电压成正比,驱动是由四个功率开关组成H桥电路的双极性驱动方式,运用脉冲宽度调制(PWM)技术调节供给直流电动机的电压大小和极性,实现对电动机的速度和旋转方向(正/反转)的控制。
电机的速度取决于施加到在电机平均电压大小,即取决于PWM驱动波形占空比(占空比为脉宽/周期的百分比)的大小,加大占空比,电机加速,减少占空比电机减速。
所以要加快电机速度:
1、加大电机工作电压;2、降低电机主回路阻值,加大电流;二者在舵机设计中要实现,均涉及在满足负载转矩要求情况下重新选择舵机电机。
三、数码舵机的反应速度为何比模拟舵机快
很多模友错误以为:
“数码舵机的PWM驱动频率300Hz比模拟舵机的50Hz高6倍,则舵机电机转速快6倍,所以数码舵机的反应速度就比模拟舵机快6倍”。
这里请大家注意占空比的概念,脉宽为每周期有效电平时间,占空比为脉宽/周期的百分比,所以大小与频率无关。
占空比决定施加在电机上的电压,在负载转矩不变时,就决定电机转速,与PWM的频率无关。
模拟舵机是直流伺服电机控制器芯片一般只能接收50Hz频率(周期20ms)~300Hz左右的PWM外部控制信号,太高的频率就无法正常工作了。
若PWM外部控制信号为50Hz,则直流伺服电机控制器芯片获得位置信息的分辨时间就是20ms,比较PWM控制信号正比的电压与反馈电位器电压得出差值,该差值经脉宽扩展(占空比改变,改变大小正比于差值)后驱动电机动作,也就是说由于受PWM外部控制信号频率限制,最快20ms才能对舵机摇臂位置做新的调整。
数码舵机通过MCU可以接收比50Hz频率(周期20ms)快得多的PWM外部控制信号,就可在更短的时间分辨出PWM外部控制信号的位置信息,计算出PWM信号占空比正比的电压与反馈电位器电压的差值,去驱动电机动作,做舵机摇臂位置最新调整。
结论:
不管是模拟还是数码舵机,在负载转矩不变时,电机转速取决于驱动信号占空比大小而与频率无关。
数码舵机可接收更高频率的PWM外部控制信号,可在更短的周期时间后获得位置信息,对舵机摇臂位置做最新调整。
所以说数码舵机的反应速度比模拟舵机快,而不是驱动电机转速比模拟舵机快。
四、数码舵机的无反应区范围为何比模拟舵机小
根据上述对模拟舵机的分析可知模拟舵机约20ms才能做一次新调整。
而数码舵机以更高频率的PWM驱动电机。
PWM频率的加快使电机的启动/停止,加/减速更柔和,更平滑,更有效的为电机提供启动所需的转矩。
就象是汽车获得了更小的油门控制区间,则启动/停止,加/减速性能更好。
所以数码舵机的无反应区比模拟舵机小。
五、模拟舵机加装数码舵机驱动板并未提升反应速度
根据以上分析可知,模拟舵机加装数码舵机驱动板,要提升反应速度,PMW外部控制信号(如陀螺仪送来的尾舵机信号)的频率必须加快,如果还是50Hz,那舵机反应速度当然就没提升了。
六、如何选择舵机电机
舵机电机按直流伺服电机的标准选用,根据电机种类、负载力矩、转速、工作电压等要求。
舵机一般都用空心杯电动机,有用有刷的,也有用无刷无感的。
空心杯电动机属于直流永磁、伺服微特电机,与普通电机的主要区别采用是无铁芯转子,也叫空心杯型转子。
具有以下优势:
1、最大的能量转换效率(衡量其节能特性的指标):
其效率一般在70%以上,部分产品可达到90%以上(普通铁芯电机在15-50%);
2、激活、制动迅速,响应极快:
机械时间常数小于28毫秒,部分产品可以达到10毫秒以内,在推荐运行区域内的高速运转状态下,转速调节灵敏;
3、可靠的运行稳定性:
自适应能力强,自身转速波动能控制在2%以内;
4、电磁干扰少:
采用高品质的电刷、换向器结构,换向火花小,可以免去附加的抗干扰装置;
5、能量密度大:
与同等功率的铁芯电机相比,其重量、体积减轻1/3-1/2;转速-电压、转速-转矩、转矩-电流等对应参数都呈现标准的线性关系。
七、如何选择舵机反馈电位器
舵机反馈电位器按种类、精度,耐用性的标准选用,导电塑料电位器的精度和耐磨程度大大优于其他如线绕电位器类型。
八、舵机控制死区、滞环、定位精度、输入信号分辨率、回中性能的认识
每一个闭环控制系统由于信号的振荡等原因,输入信号和反馈信号不可能完全相等,这就涉及到控制死区和滞环的问题,系统无法辨别输入信号和反馈信号的差异范围就是控制死区范围。
舵机自动控制系统由于信号震荡、机械精度等原因造成控制系统在控制死区范围外的小范围老是做调整,为使舵机在小范围内不对震荡做调整,这就需要引入滞环的作用了。
滞环比控制死区大,一般控制死区范围为±0.4%,滞环可设置为±2%,输入信号和反馈信号的差值在滞环内电机不动作,输入信号和反馈信号的差值进入滞环,电机开始制动-停止。
定位精度取决于舵机系统的整体精度:
如控制死区、机械精度、反馈电位器精度、输入信号分辨率。
输入信号分辨率指舵机系统对输入信号最小分辨范围,数码舵机输入信号分辨率大大优于模拟舵机。
回中性能取决于滞环和定位精度。
九、舵机为何会老发出吱吱的响声
舵机老发出吱吱的来回定位调整响声,是由于有的舵机无滞环调节功能,控制死区范围调得小,只要输入信号和反馈信号老是波动,它们的差值超出控制死区,舵机就发出信号驱动电机。
另没有滞环调节功能,如果舵机齿轮组机械精度差,齿虚位大,带动反馈电位器的旋转步,步范围就已超出控制死区范围,那舵机必将调整不停,吱吱不停。
十、为何有的舵机炸机易烧电路板
有的舵机选用的功率器件电流大同时系统中设计有或芯片自带有过流保护功能,能检测出堵转过流及短路状态迅速停止电机驱动信号。
还有可在电机回路接压敏电阻防止瞬间过压及在功率器件前端设计有吸收电容。
此类舵机炸机堵转不容易烧电路板和电机。
与舵机是金属齿还是塑料齿并无绝对关系。
十一、舵机为何抖舵
控制死区敏感,输入信号和反馈信号因各种原因波动,差值超出范围,舵臂动,所以抖舵。
1、结构和控制
一般来讲,舵机主要由以下几个部分组成,舵盘、减速齿轮组、位置反馈电位计5k、直流电机、控制电路板等。
工作原理:
控制电路板接受来自信号线的控制信号(具体信号待会再讲),控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。
舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,从而达到目标停止。
舵机的基本结构是这样,但实现起来有很多种。
例如电机就有有刷和无刷之分,齿轮有塑料和金属之分,输出轴有滑动和滚动之分,壳体有塑料和铝合金之分,速度有快速和慢速之分,体积有大中小三种之分等等,组合不同,价格也千差万别。
例如,其中小舵机一般称作微舵,同种材料的条件下是中型的一倍多,金属齿轮是塑料齿轮的一倍多。
需要根据需要选用不同类型。
舵机的输入线共有三条,红色中间,是电源线,一边黑色的是地线,这辆根线给舵机提供最基本的能源保证,主要是电机的转动消耗。
电源有两种规格,一是4.8V,一是6.0V,分别对应不同的转矩标准,即输出力矩不同,6.0V对应的要大一些,具体看应用条件;另外一根线是控制信号线,Futaba的一般为白色,JR的一般为桔黄色。
另外要注意一点,SANWA的某些型号的舵机引线电源线在边上而不是中间,需要辨认。
但记住红色为电源,黑色为地线,一般不会搞错。
舵机的控制信号为周期是20ms的脉宽调制(PWM)信号,其中脉冲宽度从0.5ms-2.5ms,相对应舵盘的位置为0-180度,呈线性变化。
也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。
舵机内部有一个基准电路,产生周期20ms,宽度1.5ms的基准信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。
由此可见,舵机是一种位置伺服的驱动器,转动范围不能超过180度,适用于那些需要角度不断变化并可以保持的驱动当中。
比方说机器人的关节、飞机的舵面等。
常见的舵机厂家有:
日本的Futaba、JR、SANWA等,国产的有北京的新幻想、吉林的振华等。
现举FutabaS3003来介绍相关参数,以供大家设计时选用。
之所以用3003是因为这个型号是市场上最常见的,也是价格相对较便宜的一种(以下数据摘自Futaba产品手册)。
尺寸(Dimensions):
40.4×19.8×36.0mm
重量(Weight):
37.2g
工作速度(Operatingspeed):
0.23sec/60°(4.8V)
0.19sec/60°(6.0V)
输出力矩(Outputtorque):
3.2kg.cm(4.8V)
4.1kg.cm(6.0V)
由此可见,舵机具有以下一些特点:
>体积紧凑,便于安装;
>输出力矩大,稳定性好;
>控制简单,便于和数字系统接口;
正是因为舵机有很多优点,所以,现在不仅仅应用在航模运动中,已经扩展到各种机电产品中来,在机器人控制中应用也越来越广泛。
3、用单片机来控制
正是舵机的控制信号是一个脉宽调制信号,所以很方便和数字系统进行接口。
只要能产生标准的控制信号的数字设备都可以用来控制舵机,比方PLC、单片机等。
这里介绍利用51系列单片机产生舵机的控制信号来进行控制的方法,编程语言为C51。
之所以介绍这种方法只是因为笔者用2051实现过,本着负责的态度,所以敢在这里写出来。
程序用的是我的四足步行机器人,有删改。
单片机并不是控制舵机的最好的方法,希望在此能起到抛砖引玉的作用。
2051有两个16位的内部计数器,我们就用它来产生周期20ms的脉冲信号,根据需要,改变输出脉宽。
基本思路如下(请对照下面的程序):
我用的晶振频率为12M,2051一个时钟周期为12个晶振周期,正好是1/1000ms,计数器每隔1/1000ms计一次数。
以计数器1为例,先设定脉宽的初始值,程序中初始为1.5ms,在for循环中可以随时通过改变a值来改变,然后设定计数器计数初始值为a,并置输出p12为高位。
当计数结束时,触发计数器溢出中断函数,就是voidtimer0(void)interrupt1using1,在子函数中,改变输出p12为反相(此时跳为低位),在用20000(代表20ms周期)减去高位用的时间a,就是本周期中低位的时间,c=20000-a,并设定此时的计数器初值为c,直到定时器再次产生溢出中断,重复上一过程。
#include
#defineucharunsignedchar
#defineuintunsignedint
uinta,b,c,d;
/*a为舵机1的脉冲宽度,b为舵机2的脉冲宽度,单位1/1000ms*/
/*c、d为中间变量*/
/*以下定义输出管脚*/
sbitp12=P1^2;
sbitp13=p1^3;
sbitp37=P3^7;
/*以下两个函数为定时器中断函数*/
/*定时器1,控制舵机1,输出引脚为P12,可自定义*/
voidtimer0(void)interrupt1using1
{p12=!
p12;/*输出取反*/
c=20000-c;/*20000代表20ms,为一个周期的时间*/
TH0=-(c/256);TL0=-(c%256);/*重新定义计数初值*/
if(c>=500&&c<=2500)c=a;
elsec="20000-a";/*判断脉宽是否在正常范围之内*/
}
/*定时器2,控制舵机2,输出引脚为P13,可自定义*/
voidtimer1(void)interrupt3using1
{p13=!
p13;
d=20000-d;
TH1=-(d/256);TL1=-(d%256);
if(d>=500&&d<=2500)d=b;
elsed="20000-b";
}
/*主程序*/
voidmain(void)
{TMOD=0x11;/*设初值*/
p12=1;
p13=1;
a=1500;
b=1500;/*数值1500即对应1.5ms,为舵机的中间90度的位置*/
c=a;d=b;
TH0=-(a/256);TL0=-(a%256);
TH1=-(b/256);TL1=-(b%256);/*设定定时器初始计数值*/
EA=1;
ET0=1;TR0=1;EX0=1;EX1=1;
ET1=1;TR1=1;
PX0=0
X1=0
T1=1
T0=1;/*设定中断优先级*/
for(;;)
{
/*在这个for循环中,可以根据程序需要
在任何时间改变a、b值来改变脉宽的输
出时间,从而控制舵机*/
}
}
因为在脉冲信号的输出是靠定时器的溢出中断函数来处理,时间很短,因此在精度要求不高的场合可以忽略。
因此如果忽略中断时间,从另一个角度来讲就是主程序和脉冲输出是并行的,因此,只需要在主程序中按你的要求改变a值,例如让a从500变化到2500,就可以让舵机从0度变化到180度。
另外要记住一点,舵机的转动需要时间的,因此,程序中a值的变化不能太快,不然舵机跟不上程序。
根据需要,选择合适的延时,用一个a递增循环,可以让舵机很流畅的转动,而不会产生像步进电机一样的脉动。
这些还需要实践中具体体会。
舵机的速度决定于你给它的信号脉宽的变化速度。
举个例子,t=0试,脉宽为0.5ms,t=1s时,脉宽为1.0ms,那么,舵机就会从0.5ms对应的位置转到1.0ms对应的位置,那么转动速度如何呢?
一般来讲,3003的最大转动速度在4.8V时为0.23s/60度,也就是说,如果你要求的速度比这个快的话,舵机就反应不过来了;如果要求速度比这个慢,可以将脉宽变化值线性到你要求的时间内,做一个循环,一点一点的增加脉宽值,就可以控制舵机的速度了。
当然,具体这一点一点到底是多少,就需要做试验了,不然的话,不合适的话,舵机就会向步进电机一样一跳一跳的转动了,尝试改变这“一点”,使你的舵机运动更平滑。
还有一点很重要,就是舵机在每一次脉宽值改变的时候总会有一个转速由零增加再减速为零的过程,这就是舵机会产生像步进电机一样运动的原因。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 舵机 模拟 比较