走进舵机世界
2018-09-08杨磊
杨磊
编者按:1820年7月21日,丹麦物理学家汉斯·克里斯蒂安·奥斯特(Hans Christian Oersted)发表了题为《关于磁针上电冲突作用的实验》的文章,阐述其发现的电流磁效应现象。这篇短短的论文在欧洲物理学界产生了极大震动,使得大批实验成果出现,由此开辟了物理学的新领域——电磁学。法拉利受此启发,于1821年完成其第一项重大的电发明——世界上第一台电动机。1873年,比利时人格拉姆发明大功率电动机,电动机从此开始大规模用于工业生产。进入二十一世纪,电动机的应用已经和人们生产生活融为一体。电动机是电动舵机的核心组件。舵机是指在自动驾驶仪中操纵飞机舵面(操纵面)转动的一种执行部件,分为电动舵机和液压舵机,电动舵机由电动机、传动部件和离合器组成,适用于那些需要角度不断变化并可以保持的控制系统。目前,在高档遥控玩具,如飞机模型、潜艇模型、遥控机器人中已经得到了普遍应用。
什么是电动机
电动机(Motor)是一种把电能转换成机械能的旋转式电动设备。它主要由一个用以产生磁场的定子绕组(即通电线圈)和一个旋转电枢或转子(如鼠笼式闭合铝框)组成。定子绕组在通电情况下产生旋转磁场,通电情况下的转子受旋转磁场作用发生转动,因此电流方向和磁场方向决定转子的受力方向。简而言之,电动机的工作原理是磁场对电流受力,使电动机转动。
电动机根据工作电源的不同,可分为直流电动机和交流电动机;按用途可分为驱动用电动机和控制用电动机。驱动用电动机又分为电动工具用的电动机、家用的电动机和其他通用小型机械设备用的电动机。控制用电动机则分为步进电动机和伺服电动机等。
制动用电机及其分类
控制用电动机是根据使用场合、使用目的、电动机类型的不同,通过在电动机组件中安插测量和比较元件、放大元件、执行和计算元件等功能元件,实现电动机按照设定的方向、速度、角度和响应时间的指令进行工作的功能,达到电动机快速启动、快速响应、高效率、高转矩输出及高过载能力的目的。其分为步进电动机和伺服电动机。
1.步进电动机(Stepping Motor)
步进电动机是一款将接收到的数字控制信号(即电脉冲信号)转变为角位移或直线位移的开环控制感应电机,它是现代数字程序控制系统中的主要执行元件,应用极为广泛。它由一个驱动器和一个步进电机组成(如图1)。驱动器是步进电动机的控制器,它是一块将脉冲发生器、脉冲分配器和脉冲放大器(也称功率放大器)集合在一起的电路板(如图2)。步进电动机主要包括转子(齿轮)和定子(绕有线圈)。
驱动器将输入的直流电分解成可分时供电的、多相时序控制的电流(即多个脉冲信号),然后将多个脉冲信号依次输入电机中的定子绕组中的不同相对电线圈,通电线圈产生一定方向的磁场,磁场吸引转子转动,当转子的齿与该相定子磁极上的齿对齐时,转子完成一个固定角度(也称为“步距角”)的转动。定子每收到一个脉冲信号,定子中指定的相对线圈得电,转子转动一个角度,如此每相不停地轮流通电,转子不停地转动,实现由电脉冲信号转换成离散的机械运动的功能。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,因为它的旋转是以固定的角度一步一步运行的,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时,可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。因为步进电动机没有积累误差,具有很好的数据控制特性,所以它被广泛应用于各种开环控制设备中,如数控机床、自动送料机中的马达,作为通用的软盘驱动器的马达等。
那什么是开环控制?它对步进电动机的性能产生何种影响?
开环控制是指无反馈信息的系统控制方式。当操作者启动系统,使之进入运行状态后,系统将操作者的指令一次性输向受控对象。此后,操作者对受控对象的变化便不能做进一步的控制。由于开环控制一般是在瞬间就完成的控制活动,所以采用开环控制设计的人机系统,操作指令的设计十分重要,一旦出错,将产生无法挽回的损失。
因步进电动机具有开环控制的特点,所以它在脉冲频率过高或者负载较大情况下,容易造成失步,即没有转到位;低转速运行时,容易发生异常抖动。对比伺服电机来说,步进电动机精确度较低。这个缺点决定了步进电机的工作转速不能太高,一般都是在300~500转/分钟。因此步进电动机适用场合,要么不需要位置反馈,对精准度要求不高,要么通过其他设备进行位置反馈,提高精准度。
2.伺服电动机 (Servo Motor)
也称执行电动机,它具有一种服从控制信号的要求而动作的职能。在信号来到之前,转子静止不动;信号来到之后,转子立即转动;當信号消失,转子能及时自行停转。按照自动控制系统的功能要求,伺服电动机必须具备可控性好、稳定性高和适应性强等基本性能。常用的伺服电动机有两大类,以直流电源工作的称为直流伺服电动机,以交流电源工作的称为交流伺服电动机。
伺服电动机通常由驱动器、电机和传感器组成(如图3)。伺服电动机的驱动器除具备步进电动机驱动器的功能外,还负责接收电机自带的编码器发出的关于电机执行结果的反馈信号,并将反馈值与目标值进行比较,随时调整转子转动的角度。相比步进电机,伺服电机因自带编码器,使得电机本身具备发出脉冲的功能,它每旋转一个角度后,都会发出对应数量的脉冲,这样伺服驱动器和伺服电机各自发出的脉冲彼此呼应,形成闭环控制。编码器的精度决定了伺服电机的精度。传感器负责采集同电机执行结果有关的物理机械参数,如速度、位置和力矩,然后将采集到的数据输入电机中的编码器中,从而让电机发出反馈脉冲信号。正是由于伺服电动机具有闭合控制的特点,使得由电机输出的关于物体的位置、方位、状态等被控量能够跟随输入目标值(或给定值)的变化而变化。因此,伺服电动机只要负载在额定范围内,就能达到很高的精度,主要用于比较精准的位置、速度或力矩输出,如机床、工业机械臂、机器人等,定位的精确度可以达到0.001mm。
伺服电动机的闭合控制性在算法上是怎样实现的呢?
当前交流伺服电动机的闭环控制原理主要是基于矢量控制的电流、速度、位置三个闭环控制算法来实现的,其中速度闭环设计合理与否,对于整个伺服控制系统,特别是速度控制性能的发挥起着关键作用。
舵机的概念及其工作原理
1.什么是舵机
舵机(Servo),从英文名称看,就是一款伺服电动机。它具备伺服电动机所具有的闭环控制特性,只是作为简化版,它将原本伺服电动机的三环控制(即速度、位置和电流)简化成一环控制,也就是只有检测位置环。除此之外,舵机内部增加了一个减速齿轮组,这是伺服电动机所不具备的。其内部控制器一般是接收PWM信号(舵机提升内部配置后,也可输入数字信号)来控制旋转角度。因此,舵机也被视为低配版的小型直流的位置(角度)伺服的电机。舵机最早是被人们用来称呼轮船甲板上的一种大型机械,后来国内把应用在船模、航模和小型机器人中的伺服电动机也称为“舵机”,“舵機”因此而得名。
2.舵机的内部构成及工作原理
舵机主要是由外壳、电路板、电机、减速齿轮组与位置检测器所构成(如图4)。其工作原理是由接收机发出信号给舵机,经由舵机内部电路板上的芯片判断转动方向,再驱动无核心马达开始转动,通过减速齿轮组将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位(如图5)。齿轮组的作用主要是将力量放大,使小功率电机产生大扭矩。位置检测器其实就是可变电阻,当舵机转动时电阻值也会随之改变,藉由检测电阻值便可知转动的角度。低配版的位置检测器使用的是电位器,高配版则使用霍尔传感器或光栅编码器来增强精度控制。
通常厂商所提供的舵机规格资料,都会包含外形尺寸(mm)、扭力(kg/cm)、速度(秒/60度)、测试电压(V)及重量(g)等基本资料。扭力的单位是kg/cm,意思是在摆臂长度1厘米处,能吊起几千克重的物体。这就是力臂的概念,因此摆臂长度愈长,则扭力愈小。速度的单位是秒/60度,意思是舵机转动60度所需要的时间。一般舵机旋转的角度范围是0度到180度。
3.舵机的控制原理概述
舵机的接收机将接收到的控制信号传入电路板中的信号调制芯片,信号调制芯片将其转换成相应的直流偏置电压。电路板的内置电路先将获得的直流偏置电压与位置检测器的电压进行比较,再将所得正(或负)电压差输出到电机驱动芯片来驱动电机向正(或反)转。在电机转速一定的情况下,减速齿轮带动位置检测器旋转。由于位置检测器是个可变电阻,其阻值大小随电机旋转角度的变化而发生变化,相应地,可变电阻两端的电压也随之改变,直至电机旋转到指定角度后,电压差为零,电机才停止转动。
4.舵机的PWM信号及其工作原理
PWM(Pulse Width Modulation),即脉冲宽度调制,简称脉宽调制。它是一种对模拟信号电平进行数字编码的方法,并广泛应用在从测量、通信到功率控制与变换的许多领域中。其工作原理是通过使用高分辨率计数器,对一系列脉冲的宽度进行调制,来等效地获得所需的波形(含形状和幅值)。如图6正弦半波转换PWM波示例,a)图正弦半波被N等分,这样整个正弦半波被看成N个相连的脉冲序列,脉冲宽度相等,但幅值不等;b)图中矩形脉冲代替a)图中对应的等分部分,这些矩形等幅,不等宽,中点重合,面积(冲量)相等,宽度可按正弦规律变化。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率、它具有谐波小、响应快的优点。
舵机的伺服系统就是由可变宽度的脉冲(即PWM)来进行控制。其外接三根控制线来传送脉冲,这三根线,分别用棕、红、橙三种颜色进行区分,由于舵机品牌不同,颜色也会有所差异,棕色为接地线,红色为电源正极线,橙色为信号线。一般而言,舵机的基准信号都是周期为20ms,高电平宽度为1.5ms。这个基准信号定义的位置为中间位置。比较信号线的PWM信号与基准信号,内部的电机控制板得出一个电压差值,将这个差值加到电机上控制舵机转动。控制舵机的高电平范围为0.5ms到2.5ms,0.5ms为最小角度,2.5ms为最大角度。另外,不同舵机的最大转动角度可能不相同,但是其中间位置的脉冲宽度是一定的,那就是1.5ms。
角度是由来自控制线的持续的脉冲所产生,这种控制方法叫做脉冲调制。脉冲的长短决定舵机转动多大角度,例如,1.5ms脉冲会转动到中间位置(对于180度舵机来说,就是90度的位置)。当控制系统发出指令,让舵机移动到某一位置,并让它保持这个角度,这时外力的影响不会让角度产生变化,但这个外力是有上限的,上限就是它的最大扭力。除非控制系统不停地发出脉冲稳定舵机的角度,否则舵机的角度不会一直不变。当舵机接收到一个小于1.5ms的脉冲,输出轴会以中间位置为标准,逆时针旋转一定角度;接收到的脉冲大于1.5ms,则情况相反。通常不同品牌甚至同一品牌的不同舵机,都会有不同的最大值和最小值。
5.180度舵机和360度舵机
我们知道,所有的舵机(特殊定制舵机除外)都是由PWM控制的,也就是说舵机控制板输出的是PWM信号。但在实际使用中,根据具体需要,舵机有旋转180度和360度之分。二者的PWM信号的控制对象却大不相同。
①180度舵机的PWM信号控制的是旋转角度。
0.5ms——0度;1ms——45度;1.5ms——90度;2ms——135度;2.5ms——180度。
500~2500μs的PWM对应控制180度舵机的0~180度,是一一对应的,一个PWM值对应舵机的一个角度。具体1DIV=8μs;250DIV=2ms时基址寄存器内的数值为:(#01H)01—(#0FAH)250。共185度,分为250个位置,每个位置叫1DIV。则185÷250=0.74度/DIV,PWM上升沿函数:0.5ms+N×DIV,0μs≤N×DIV≤2ms,0.5ms≤0.5ms+N×DIV≤2.5ms。
②360度舵机的PWM信号控制的是旋转速度和旋转方向。
0.5ms——正向最大转速;1.5ms——速度为0;2.5ms——反向最大转速。
500~1500μs的PWM控制它正转,值越小,旋转速度越大;1500~2500μs的PWM控制它反转,值越大,旋转速度越大。1500μs的PWM控制它停止(由于每一个舵机的中位可能会不一样,有些舵机可能是1520μs的PWM,舵机才会停下来,所以需要自己实际测试出舵机的中位)。360度舵机就是一个普通的直流电机和一个电机驱动板的组合,所以它只能连续旋转,不能定位,也没法知道它的角度和圈数(除非自己在舵机外面加装其他传感器)。
单舵机拖动及调速算法
1.舵机的随动机构
舵机为随动机构,所以:①当其未转到目标位置时,将全速向目标位置转动。②当其到达目标位置时,将自动保持该位置。所以对于数字舵机而言,PWM信号提供的是目标位置,跟踪运动要靠舵机本身。③像HG0680这样的模拟舵机需要时刻供给PWM信号,舵机自己不能锁定目标位置。所以控制系统是一个目标规划系统。
(1)HG14-M舵机的位置控制方法
舵机的转角达到185度,由于采用8为CPM控制,所以控制精度最大为256份。目前经过实际测试和规划,分了250份。将0~185分为250份,每份0.74度。控制所需的PWM宽度为0.5ms~2.5ms,宽度2ms。2ms÷250=8μs,所以得出:PWM信号=1度/8μs(如图7及表1)。
(2)HG14-M舵机的运动协议
运动时可以外接较大的转动负载,舵机输出扭矩较大,而且抗抖动性很好,电位器的线性度较高,达到极限位置时也不会偏离目标。
2.目标规划系统的特征
(1)舵机的追随特性
角度与时间函数关系如图8所示:
①舵机稳定在A点不动。
②CPM发出B点位置坐标的PWM信号。
③舵机全速由A点转向B点。
△ф=фB-фA
△T=△ф÷ω
④CPM发出B点PWM信号后,应该等待一段时间,利用此时间舵机才能转动至B点。
那么,具体的保持(等待)时间如何计算,讲解如下:
令:保持时间为Tw。当Tw≥△T时,舵机能够到达目标,并有剩余时间;当Tw≤△T时,舵机不能到达目标。理论上:当Tw=△T时,系统最连贯,而且舵机运动得最快。实际过程中由于两个因素:①1个机器人身上有多个舵机,负载各不相同,所以ω不同。②某个舵机在不同时刻的外界环境负载也不同,所以ω不同。则连贯运动时的极限△T难以计算出来。目前采取的方法是经验选取ω值。
(2)舵机ω值测定
舵机的ω值随时变化,所以只能测定一个平均值。或称出现概率最高的点。
依据:①厂商的经验值;②采用HG14-M具体进行测试。
测试实验:①将CPΜ开通,并开始延时Tw。②当延时Tw到达后,观察舵机是否到达目标。测定时采用一段双摆程序,伴随示波器用肉眼观察Tw与△T的关系。
(3)舵机ω值计算
一般舵机定为0.16~0.22秒/60度;取0.2秒/60度>>1.2秒/360度>>0.617秒/185度,则ω为360度/1.2秒,2π/1.2秒。ω=300度/秒,那么185度转动的时间为185度÷360度/1.2秒=0.6167秒。
(4)采用双摆实验验证(如图9)
3.DAV的定义
将185度的转角分为250个平均小份,则每小份为0.74度。定义:DAV=0.74度。由于ω=0.2秒/60度,则运行1DAV所需时间为:0.72度÷0.2秒/60度=2.4ms。
4.DIV的定义
舵机电路支持的PWM信号为0.5ms~2.5ms,总间隔为2ms。若分為250小份,则2ms÷250=0.008ms=8μs,定义:DIV=8μs。那么1DAV(0.74度)对应的△T为:0.74度÷60度/0.2秒=2.467ms。
5.单舵机调速算法
测试内容:①将后部下降沿的时间拉至30ms没有问题,舵机照样工作。②将后部下降沿的时间拉至10ms没有问题,舵机照样工作。③将后部下降沿的时间拉至2.6ms没有问题,舵机照样工作。④将后部下降沿的时间拉至500μs没有问题,舵机照样工作(如图10)。
实践检验出:下降沿时间参数可以做得很小。目前实验降至500μs,依然工作正常。
原因:①舵机电路自动检测上升沿,遇上升沿就触发,以此监测PWM脉宽“头”。②舵机电路自动检测下降沿,遇下降沿就触发,以此监测PWM脉宽“尾”。
△T:舵机运转1DAV(7.4度)所需要的最小时间,目前计算出的数值为2.467ms;△T前面的20ms等待时间可以省略,舵机依然工作(如图11);得出舵机跟随的最快驱动方式,如图12所示。
1.1ms时得出的Tw≈△T;也就是说1.1ms=2.467ms,显然存在问题。经过考虑、重新观察PWM波形图发现,电机真正的启动点如图13,A到B的运动时间为:△T=Tw+B点的PWM。
8舵机联动单周期PWM指令算法
1.控制要求
要求同时发给8个舵机位置目标值,该指令的执行周期尽量短,目的有两个:其一,为了将来扩充至24舵机;其二,目标越快,舵机的转动速度越快。以8路为1组或称1个单位,连续发出目标位置,形成连续的目标规划曲线,电机在跟随过程中自然形成了位置与速度的双指标曲线,实现8路舵机联动。
2.注意事项
24个端口,P0.0、P1.0到P2.0,单DIV循环的最小时间只有8μs,所以串行运算是不行的,那么就采用并行运算(如下页图14)。目前采用的并行算法是P0.0~P0.7为一个基本单位,8位一并。
3.8路PWM信号发生算法解析
我们预计将整个周期控制在3.5~5ms内,由图14得知:P1口的8个端在不同时间产生下降沿。那么假设P1.5口的N为125,那么就需要它在125个DIV后产生下降沿,时间为125×8μs=1000μs。
我们在其中发现两个关键参数:时间参数N=125、逻辑参数P1.5=#0DFH。逻辑参数的定义如表3,采用ANL指令,操作P1口。
例如,将P1.5口产生下降沿,就将#0DFH去“ANL”P1口。逻辑“ANL”指令,逢“0”得“0”,不影响其他位。
4.N排序子程序RAM的制定(如表4、表5)
5.N差子程序解析
所谓N差子程序,要观察PWM口的逻辑时序特性,要求连续将8位端口分别产生下降沿。所以有个先后问题,解决的方法有两种:①打开8个时间中断。②按先后顺序排列,先后触发。由于CPΜ不能开启8个中断,所以采用后者方法,就可以得出以下结论:第1个触发位所用的时间为N1-0=M1;第2个触发位所用的时间为N2-N1=M2;第3个触发位所用的时间为N3-N2=M3……第8个触发位所用的时间为N8-N7=M8。
由于上接排序子程序,已经按照从大到小排列,所以做减法后差全为正数。调用延时程序时,37H最先出,30H最后出(如表6)。
以上是对电动机、舵机原理及舵机调速的简单介绍。舵机世界丰富多彩,希望本文的介绍能起到抛砖引玉的作用,让我们更好地认识舵机,利用舵机,走进舵机的世界。