
舵机控制原理详细资料.docx
17页目录一. 舵机PWM信号介绍 11. PWM信号的定义 12. PWM信号控制精度制定 2二. 单舵机拖动及调速算法 31 •舵机为随动机构 3(1) HG14-M舵机的位置控制方法 3(2) HG14-M舵机的运动协议 42. 目标规划系统的特征 5(1) 舵机的追随特性 5(2) 舵机®值测定 6(3) 舵机®值计算 6(4) 采用双摆试验验证 63. DAV的定义 74. DIV的定义 75. 单舵机调速算法 8(1) 舵机转动时的极限下降沿PWM脉宽 8三. 8舵机联动单周期PWM指令算法 101 •控制要求 102. 注意事项 103. 8路PWM信号发生算法解析 114. N排序子程序RAM的制定 125. N差子程序解析 136. 关于扫尾问题 14(1) 提出扫尾的概念 14(2) 扫尾值的计算 14舵机PWM信号介绍1・PWM信号的定义PWM信号为脉宽调制信号,其特点在于他的上升沿与下降沿之间的时间宽度具体的时间宽窄协议参 考下列讲述我们目前使用的舵机主要依赖于模型行业的标准协议,随着机器人行业的渐渐独立,有些厂 商已经推出全新的舵机协议,这些舵机只能应用于机器人行业,已经不能够应用于传统的模型上面了。
目前,北京汉库的HG14-M舵机可能是这个过渡时期的产物,它采用传统的PWM协议,优缺点一目了 然优点是已经产业化,成本低,旋转角度大(目前所生产的都可达到185度);缺点是控制比较复杂, 毕竟采用PWM格式但是它是一款数字型的舵机,其对PWM信号的要求较低:(1) 不用随时接收指令,减少CPU的疲劳程度;(2) 可以位置自锁、位置跟踪,这方面超越了普通的步进电机;OS MSNftSV 2500.5mS < O.ENs^NxDIV < 2.5mS图1-1其PWM格式注意的几个要点:(1) 上升沿最少为0.5mS,为0.5mS―-2.5mS之间;(2) HG14-M数字舵机下降沿时间没要求,目前采用0.5Ms就行;也就是说PWM波形可以是一个周 期1mS的标准方波;(3) HG0680为塑料齿轮模拟舵机,其要求连续供给PWM信号;它也可以输入一个周期为1mS的标 准方波,这时表现出来的跟随性能很好、很紧密2. PWM信号控制精度制定我们采用的是8位 AT89C52CPU,其数据分辨率为 256,那么经过舵机极限参数实 验,得到应该将其划分为250份那么0.5mS―-2.5Ms的宽度 为 2mS = 2000uS。
2000uSF250=8uS则:PWM的控制精度为8us我们可以以8uS为单位递增 控制舵机转动与定位舵机可以转动185度,那么185 度宁 250=0.74 度,则:舵机的控制精度为0.74度--I Ni.^1-250O.BmS < O.^Hs4^DIV < 2.^S图1-21 DIV = 8uS ; 250DIV=2mS时基寄存器内的数值为:(#01H) 01---- (#0FAH) 250 共185度,分为250个位置,每个位置叫1DIV则:185 宁 250 = 0.74 度 / DIVPWM上升沿函数:0.5mS + NXDIV0uS W NXDIV W 2mS0.5mS W 0.5Ms+NXDIV W 2.5mS:.单舵机拖动及调速算法1.舵机为随动机构(1 )当其未转到目标位置时,将全速向目标位置转动2) 当其到达目标位置时,将自动保持该位置所以对于数字舵机而言,PWM信号提供的是目标位置,跟踪运动要靠舵机本身3) 像HG0680这样的模拟舵机需要时刻供给PWM信号,舵机自己不能锁定目标位置 所以我们的控制系统是一个目标规划系统1) HG14-M舵机的位置控制方法舵机的转角达到185度,由于采用8为CPU控制,所以控制精度最大为256份。
目前经过实际测试 和规划,分了 250份具体划分参见《250份划分原理》将0—185分为250份,每份0.74度控制所需的PWM宽度为0.5ms—2.5ms,宽度2ms2ms 宁 250=8us;所以得出:PWM信号=1度/8us;0.5ms-2.5ms" * 0.5ms-30ms舵机角度=0.74XNPWM = 0.5 + NXDIV; (DIV=8us)角度04590135180N03E7DBBFAPWM0.5ms1ms1.5ms2ms2.5ms(2) HG14-M舵机的运动协议0对应N值N=#OOH, 0=0 度N=#F5H, 0=180 度1 W N W 245舵机的转动方向为:逆时针为正转运动时可以外接较大的转动负载,舵机输出扭矩较大,而且抗抖动性很好,电位器的线性度较高,达 到极限位置时也不会偏离目标2 •目标规划系统的特征(1)舵机的追随特性① 舵机稳定在A点不动;② CPU发出B点位置坐标的PWM信号;③ 舵机全速由A点转向*点;△e =巾 b -巾 a △t = 宁 3④ CPU发出B点PWM信号后,应该等待一段时间,利用此时间舵机才能转动至B点那么,具体的保持(等待)时间如何来计算,如下讲解: 令:保持时间为Tw当Tw三AT时,舵机能够到达目标,并有剩余时间; 当TwW^T时,舵机不能到达目标;理论上:当Tw=AT时,系统最连贯,而且舵机运动的最快。
实际过程中由于2个因素:① 1个机器人身上有多个舵机,负载个不相同,所以3不同;② 某个舵机在不同时刻的外界环境负载也不同,所以3不同; 则连贯运动时的极限AT难以计算出来目前采取的方法是经验选取3值2)舵机3值测定舵机的3值随时变化,所以只能测定一个平均值,或称出现概率最高的点 依据①厂商的经验值;②采用HG14-M具体进行测试;测试实验:①将CPU开通,并开始延时Tw;② 当延时Tw到达后,观察舵机是否到达目标;测定时采用一段双摆程序,伴随示波器用肉眼观察Tw与AT的关系3) 舵机3值计算一般舵机定为0.16--0.22秒/60度;取 0.2 秒/60 度 >> 1.2 秒/360 度 >> 0.617 秒/185 度则3为360度/1.2秒,2n /1.2秒3 =300度/秒那么185度转动的时间为185度宁360 度/1.2秒=0.6167秒⑷采用双摆试验验证DJ.BD观察实验过程中的Tw与AT的关系最终:3 =0.2秒/60度发现:当Tw定在0.618秒时,利用示波器观察到舵 机能够运动至2个目标点贝I」:Tw=AT= 0.618 秒 实验过程中,设定舵机运转的目 标角度查为185度。
3・DAV的定义将185度的转角分为250个平均小份则:每小份为0.74度定义如下:DAV = 0.74度由于:W = 0.2秒/60度则:运行1 DAV所需时间为:0.72度宁0.2秒/60度=2.4 mS;4・DIV的定义舵机电路支持的PWM信号为0.5mS—2.5mS,总间隔为2mS 若分为 250 小份,则 2mSF250 = 0.008 mS = 8uS定义如下:DIV = 8uS那么1 DAV (0.74度)对应的AT为:0.74度宁60度/0.2秒=2.4 67mS.5 •单舵机调速算法0.5ms-30ms测试内容:将后部下降沿的时间拉至30ms没有问题,舵机照样工作将后部下降沿的时间拉至10ms没有问题,舵机照样工作将后部下降沿的时间拉至2.6ms没有问题,舵机照样工作将后部下降沿的时间拉至500us没有问题,舵机照样工作实践检验出:下降沿时间参数可以做的很小目前实验降至500uS,依然工作正常原因是:(1)舵机电路自动检测上升沿,遇上升沿就触发,以此监测PWM脉宽“头”(2)舵机电路自动检测下降沿,遇下降沿就触发,以此监测PWM脉宽“尾”(1)舵机转动时的极限下降沿PWM脉宽20ms△TD1S.PD△T:舵机运转1DAV (7.4度)所需要的最小时间,目前计算出的数值为2.467mS;△T前面的20 mS等待时间可以省略,舵机依然工作;而且得出舵机跟随的最快驱动方式。
DANJS极限转动方式实验得出 1.1ms WTwW 50ms; 具体实验数据参照下表跟随算法DEC 31H/PWN/舵机Tw数据实验表格Tw值舵机运转特性Tw与AT关系该程序可行度备注500us不能跟随Tw< AT不可彳丁800us不能跟随Tw< AT不可彳丁1ms不能跟随Tw< AT不可彳丁1.1ms跟随T w~ Z\T可行最快、平滑1.2ms跟随Tw> AT可行最快、平滑1.6ms跟随Tw> AT可行最快、平滑2ms跟随Tw> AT可行最快、平滑2.6ms跟随Tw> AT可行最快、平滑10ms跟随Tw>> AT可行较慢、平滑20ms跟随Tw>> AT可行较慢、平滑30ms跟随Tw>> AT可行较慢、平滑40ms跟随Tw>> AT可以较慢、微抖50ms跟随Tw>> AT可以很慢、微抖70ms跟随Tw>> AT不可以很慢、较抖100ms跟随Tw>> AT不可以很慢、较抖令人质疑的地方为1.1ms时的表现,得出的Tw^ △T; 也就是说1.1ms = 2.467ms,显然存在问题经过考虑重新观察PWM波形图发现,电机真正的启动点如下图:实际上由A到B的运动时间为:AT = Tw + (B点的)PWM三.8舵机联动单周期PWM指令算法1控制要求要求同时发给8个舵机位置目标值,该指令的执行周期尽量短,目的有2个: 其一,是为了将来扩充至24舵机;其二,目标越快,舵机的转动速度越快;我们以8路为1组或称1个单位,连续发出目标位置,形成连续的目标规划曲线,电机在跟随过程中 自然形成了位置与速度的双指标曲线,实现8路舵机联动。
2 •注意事项从24个端口,PO.O、P1.0到P2.0,单DIV循环的最小时间只有8us,所以串行运算是不行的,那么就 采用并行运算目前采用的并行算法是PO.O—P0.7为一个基本单位,8位一并实际案例:P1 口的8个位置个不相同;端口P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0N寄存器37H36H35H34H33H32H31H30H目标位置(度)180135906050450.740N数值(整数)250187. 512581. 167. 662. 510PWM宽度ms2.5002.0001.5001.1481.0411.0000.5080.500注意:N为整数,依照上表看出,由于整数原因,定位不能。












