十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

磁编码器+RDC:工业机器人关节反馈方案详解

磁编码器+RDC:工业机器人关节反馈方案详解 接触工业机器人这几年关节反馈这块的变化我确实看在眼里。早年间产线用的六轴机器人电机尾端的反馈多半是光电编码器或者旋转变压器精度和可靠性都够用但成本和体积一直压在那里。最近两年明显不一样了不管是新出的协作机械臂、人形机器人关节模组还是一些轻载工业机器人越来越多方案改用磁编码器比如常见的AS5047P同时在信号链路里引入RDC位置传感器把角度信息以正余弦模拟信号或者数字接口的形式传给驱动器解算。很多同行私信问过这个问题“直接装个编码器不行吗为什么非要磁编码器加RDC这套组合”这篇文章就把我整理的一些分析、实测数据和现场踩坑经验分享出来想换方案或者正在选型的兄弟可以参考一下。1. 关节反馈在工业机器人中的核心地位1.1 关节反馈负责的是“三环控制”里的最内环一台工业机器人从控制逻辑上看分成位置环、速度环、电流环。位置环管的是机械臂末端走没走到目标点速度环管的是关节转得快慢是否均匀电流环管的是伺服电机输出力矩。三个环路一个套一个最底层的数据来源就是关节反馈。没有准确的角度信号位置环再牛也只是空中楼阁。关节反馈在实际运行中承担的事情比很多人想的多。比如机器人做轨迹规划控制器默认六个关节按某种插补曲线运动但如果某个关节的编码器零点漂了或者反馈信号有跳变末端轨迹立刻就会扭曲。再比如同步带传动或者减速机存在回程间隙电机转过的角度和输出端实际转过的角度并不完全一致这时候只有靠输出侧的反馈才能把误差修正回来。所以说关节反馈是机器人的“本体感知”。它不只是一个测速零件而是所有运动控制算法的数据源头。选什么类型的传感器、接口怎么设计、精度做到多少位直接影响整台设备的重复定位精度、动态响应和安全性能。这也是为什么关节反馈方案这几年被反复讨论大家都在寻找比传统方案更适配新一代机器人架构的选择。1.2 传统光电编码器和旋变方案是怎么做的传统工业机器人关节里用得最多的反馈器件有两类光电编码器和旋转变压器。光电编码器精度高分辨率可以做到17位、20位甚至更高响应也快所以在高端伺服里一直是主流。但它有几个绕不开的问题怕油污、怕粉尘、怕震动。光栅盘一旦被污染读数头很容易丢脉冲进而导致位置错乱。另外光电编码器对安装同轴度要求高机械磕碰一下就可能报废在恶劣的产线环境里维护成本不低。旋转变压器也就是Resolver它的优点是抗恶劣环境能力极强能承受高温、振动、油污而且没有电子器件在电机轴上寿命很长。航空、军工和重型设备里用得很多。机器人行业早期也大量用旋变特别是一些日系老机型。但旋变的问题在于它是模拟器件输出的是SIN/COS的模拟电压需要配一个RDCResolver-to-Digital Converter旋变数字转换器芯片去解码整套系统成本高、PCB面积大而且旋变本身体积不小在集成度越来越高的关节模组里显得很占空间。1.3 为什么传统方案会被重新审视现在机器人行业的风向变了协作机器人、人形机器人、医疗机器人这些新品类对关节模组的体积、重量、成本都提出了新要求。特别是关节一体化设计要求电机、减速机、编码器、驱动器全部塞进一个很小的空间里。光电编码器体积大、价格高旋变虽然皮实但解码电路太重这两者都不太适配新一代关节模组的轻量化需求。于是磁编码器开始抬头。磁编码器把一块径向充磁的小磁铁装在电机轴端再用一颗磁角度传感器芯片在对面读取磁场方向从而算出角度。它没有光栅盘不怕油污和粉尘体积可以做得很小芯片级别的封装只有几毫米价格也远低于同精度的光电编码器。用一颗14位磁编码器单圈分辨率就能到16384个脉冲配合细分算法和系统标定完全满足大多数工业机器人的定位需求。这让很多厂商开始把磁编码器作为关节反馈的核心方案。2. 磁编码器原理与双磁编码器设计2.1 磁编码器的基本工作方式磁编码器的工作原理并不复杂。轴端安装一块径向充磁的圆柱磁铁磁铁旋转时会在周围产生一个旋转的磁场。芯片内部有霍尔阵列或者磁阻传感器阵列感应磁场方向的变化再通过内部的角度计算单元得到0到360度的绝对角度值。以AS5047P为例这颗芯片是14位输出也就是一圈可以分辨到16384个位置。它提供了多种输出接口ABI增量接口可以模拟传统光电编码器的A/B/Z信号UVW接口可以直接输出电机换相用的六步信号SPI接口则可以读出绝对角度和诊断信息。这个特性很关键因为很多伺服驱动器原本只认光电编码器接口用AS5047P可以直接脚位兼容不需要改驱动器硬件。工业机器人编程时控制器只需要按原来的方式读ABI脉冲或者SPI角度即可。磁编码器的精度不仅仅取决于芯片本身还取决于磁铁的品质、安装气隙和同心度。实际项目里磁铁和芯片之间的距离一般控制在0.5到1.5毫米之间。气隙太大磁场强度下降角度抖动会变大气隙太小热胀冷缩或者震动可能导致磁铁摩擦芯片。除了气隙磁铁的轴心偏移也需要控制在0.1毫米级别否则会产生明显的角度误差尤其在高速旋转时误差会被放大。2.2 双磁编码器测电机位置的应用场景最近行业内经常提到一个热词“双磁编码器测电机位置”。这不是什么花哨功能而是为了解决机器人关节的精度和安全性问题。一台机器人的关节里电机轴和输出轴之间隔着减速机。如果只在电机尾部装一个编码器控制器知道的是电机转了多少圈但无法知道减速机输出端到底转到了什么位置。因为减速机存在回程间隙、柔性变形和磨损输出端的实际角度和电机端的理想角度总有偏差。对于精度要求不高的场合这个偏差靠控制算法去补偿就是了但在高精度装配、打磨、焊接等应用中这种简化往往不够。双磁编码器方案是在电机侧和输出侧各装一颗磁编码器。电机侧的编码器负责速度环和电流环的快速响应输出侧的编码器负责绝对位置和末端精度的校准。控制器可以实时比较两个角度值的差值从而识别出减速机的回程间隙、弹性变形甚至故障趋势。一旦差值超过安全阈值系统可以立刻报警停机这在人机协作场景里尤其重要。人形机器人的关节模组里这种设计几乎成了标配因为输出端编码器直接装在关节壳体上能真实反映关节角度的变化。从成本角度讲双磁编码器方案依然比光电编码器方案便宜。两颗14位磁编码芯片加两颗磁铁成本可能还远低于一台同精度的光电编码器。更重要的是这种冗余结构提高了系统的安全等级符合功能安全设计思路。2.3 磁场干扰与安装结构的注意事项磁编码器虽然有诸多优点但它对磁场干扰比较敏感。电机本身有永磁体和线圈电流特别是大功率伺服电机电流变化会产生较强的交变磁场如果磁编码器离电机线圈太近或者中间没有隔磁措施角度数据就会出现周期性抖动。实测下来有些现场在加大电流后磁编码器的角度跳动从0.05度增大到0.2度直接影响了关节的平稳性。解决办法有几个。一是选用抗干扰能力强的磁传感器芯片目前主流芯片普遍做了差分感应设计对均匀外部磁场有一定抑制能力。二是在结构上做隔磁处理比如在电机轴端和编码器芯片之间加一块坡莫合金屏蔽罩效果很明显。三是尽量让编码器芯片远离电机三相线的走线区域避免大电流线缆的电磁耦合。四是磁铁选型时注意矫顽力参数尽量选择磁场强度高且稳定的钕铁硼磁铁并且在充磁后做老化处理确保长期稳定性。这些细节在实验室里不容易暴露因为测试环境干净、电流小但一上产线连续跑几个小时问题就全出来了。所以现在我做方案评审的时候都会先问一句“磁编码器旁边有没有大功率线”这个点比选哪颗芯片更重要。3. RDC位置传感器为什么又把旋变接口拿回来用3.1 RDC 能解决什么实际问题看到这里有人可能疑惑既然磁编码器已经能输出数字角度为什么还要专门提RDC位置传感器这不是多此一举吗关键在于现有伺服驱动器和机器人控制器的接口兼容性。很多伺服驱动器的主控板上编码器接口直接预留了旋变解码通道也就是SIN/COS模拟输入加一路激励源输出专门用来接Resolver。如果你要改用磁编码器但磁编码器输出的是SPI或ABI信号这时候没法直接接到原有的旋变接口上就必须改驱动器的硬件或者加一个协议转换模块。RDC位置传感器在这里扮演的就是桥接角色。RDC芯片比如ADI的AD2S1205、AD2S1210本质是把旋变或者磁编码器输出的正余弦模拟信号解算成数字角度的专用芯片。它的输入是Sin、Cos两路模拟差分信号内部通过锁相环跟踪角度变化输出可以是并行总线、SPI或者增量脉冲。这样一来如果选用的磁编码器芯片支持输出SIN/COS模拟信号经过RDC解码后就能无缝接入原本为旋变设计的驱动器接口。既保留了磁编码器的低成本和小体积优势又复用了成熟的驱动器硬件。另外RDC本身还提供了很多诊断功能比如信号丢失检测、超范围检测、频率响应设置等。这些功能在纯数字接口编码器上并不常见但在工业安全要求高的场合它们能提供额外的保护层。3.2 RDC芯片的信号链路怎么搭一套典型的磁编码器加RDC方案信号链路可以这样组成磁编码器芯片安装在电机轴端输出两路相位差90度的正余弦模拟信号。其中Sin信号代表角度的正弦值Cos信号代表角度的余弦值幅值通常在几百毫伏到几伏之间。这两路信号经过滤波和调理电路后进入RDC芯片的Sin和Cos输入端。RDC芯片产生一个激磁信号如果是标准的旋变还需要把激磁信号放大后送给旋变的初级线圈但在磁编码器方案里因为磁编码器自带了励磁磁场不再需要外部的激磁回路RDC芯片可以工作在无激磁模式下只需要对Sin/Cos信号进行解码。某些系统中RDC的激磁输出仍然保留它会输出一个固定频率的正弦波比如10kHz用于给传统旋变供电。磁编码器如果设计成模拟旋变输出也可以把RDC输出的激磁信号当作参考时钟内部用它来同步产生Sin/Cos信号这样RDC和磁编码器之间就有了共同的相位参考解算出来的角度稳定性会更好。AD2S1210这种RDC芯片还允许配置分辨率可以选择10位、12位、14位、16位。16位模式下单圈输出65536个计数配合磁编码器的14位原始分辨率等于做了4倍细分实际角度分辨率可以达到0.005度左右。当然细分是建立在原始信号信噪比足够高的前提下如果模拟信号有噪声细分再多也是白搭。3.3 磁编码器RDC 构成的双通道冗余在高端机器人关节里磁编码器加RDC方案往往不是单通道而是双通道。什么意思呢就是同一套关节里电机侧和输出侧都有磁编码器每个磁编码器对应一路RDC解算主控可以同时读出两个通道的角度值。这种架构带来的直接好处是冗余和动态诊断。正常运行时电机侧磁编码器作为速度环反馈输出侧RDC作为位置环反馈。当两侧角度差值超过正常范围时说明减速机可能出现了异常磨损或者机械松动系统可以提前预警而不是等故障放大了才停机。我之前调过一台协作机械臂它用的就是双磁编码器加双RDC结构。整个关节模组里有一颗主控MCU和一颗安全MCU主控负责运动控制安全MCU独立读取第二路RDC的角度数据一旦发现两路数据不一致且超过安全阈值安全MCU可以绕开主控直接触发抱闸。这种设计在功能安全认证里非常加分尤其是做CE或者ISO 13849认证的时候双通道冗余是拿高分的关键。还有一个实际工程价值双通道可以在一个通道异常时自动切换。机器人正在执行生产任务不能说停就停如果主反馈通道的CRC校验连续出错系统可以在毫秒级时间内切换为备份通道继续运行同时报警提醒运维人员。这个能力在流水线上非常实用能避免因反馈故障导致整条线停机。4. 从选型到调试一套可落地的实施方案4.1 磁编码器和RDC的选型思路选型不用太纠结先明确你的系统输入输出接口要求。如果控制器已经有了SPI端口并且你想简化硬件直接用AS5047P这类数字接口磁编码器就够了完全没必要引入RDC。只有当驱动器端是旋变接口或者你希望用RDC自带的诊断功能时才需要选择支持SIN/COS模拟输出的磁编码芯片然后搭配RDC使用。具体选型时我会重点看这几个参数原始分辨率、峰值抖动、输出接口类型、工作温度范围、抗磁场干扰能力。对于机器人关节应用分辨率至少要12位以上建议14位起步。峰值抖动要小于0.05度不然速度环在高增益下容易震动。工作温度范围要覆盖-40到85摄氏度因为关节模组散热条件普遍不好芯片温升很常见。RDC芯片方面如果只是简单解码AD2S1205就够了成本低外围电路简单如果要高分辨率加更丰富的诊断寄存器选AD2S1210如果考虑国产化和供应链安全目前也有几款国产旋变解码芯片性能不错比如国内一些厂商推出的RDC芯片在采样率和抗干扰上已经接近主流型号可以按项目需求去测试。4.2 零位标定和极对数换算磁编码器装上电机轴之后第一步不是直接写控制程序而是做零位标定。电机无刷控制需要知道转子的电气角这个电气角和磁编码器的机械角是固定对应的。标定方法很简单给电机通一个固定方向的直流电让转子强制吸合到一个确定的电气位置比如UV相导通让转子对齐到零度电气角然后读取磁编码器的当前角度把这个值写入芯片的零位寄存器或者存到控制器的标定参数里。如果是双磁编码器方案要多做一步电机侧编码器和输出侧编码器的零点标定。由于两者通过减速机连接角度比例是已知的只要让电机找到机械零位后把输出侧编码器的读数记录下来之后在控制程序里把两路角度的换算关系写成函数即可。实际操作时要注意夹爪、末端工装等负载会导致关节产生微小变形所以零位标定最好在负载状态接近实际工况时进行。极对数换算是另一个容易忽视的点。电机的机械角转一圈电气角会按照极对数变N圈。比如一个10对极的伺服电机机械角度转360度电气角度变化3600度。控制程序读取磁编码器后必须先把机械角换算成电气角再交给FOC算法使用。很多初学者在这个地方直接拿编码器的原始角度送给SVPWM结果电机完全转不起来就是因为没有做极对数换算。4.3 软件层面和工业机器人编程的集成从软件角度看磁编码器加RDC系统涉及几个常见模块角度读取、滤波、归一化、过零处理。角度读取如果是SPI接口需要注意时钟频率和CS片选的时序如果是RDC芯片还要配置分辨率寄存器和读取模式。读取频率越高越好至少是电流环频率的两倍以上多数机器人驱动器电流环频率是16kHz或者20kHz那么编码器读取至少要32kHz以上才能保证速度环不会出现相位延迟。工业机器人编程时编码器角度值往往需要做“过零跳变”处理。一个角度从359.9度转到0.1度如果不加处理数值差值会从0.2度突然变成359.8度导致位置环出现剧烈的错误修正。常见的做法是把角度差转换为[-180, 180]区间再做差分计算。我见过不少新人在仿真里跑得好好的一接真机就出现过零抖动找了好久才发现是这个原因。滤波算法也很重要。磁编码器的绝对角度输出在静止状态会有很小的随机抖动直接参与速度环计算会产生速度噪声。可以做一阶低通滤波带宽设置在速度环带宽的5到10倍既不会明显引入相位滞后又能有效抑制噪声。条件允许的话加一个20到50Hz的陷波器也很有效专门消除关节的机械共振频率很多机器人驱动器的速度环抗共振就是这么调的。5. 常见问题排查与避坑记录5.1 典型故障现象与排查方法磁编码器加RDC方案在实际应用中常见的故障模式不多但一出现就让人头疼。我把这些年遇到过的典型案例整理成一个速查表。故障现象可能原因排查与处理电机静止时角度值缓慢漂移磁铁固定松动或充磁不均匀检查磁铁压环扭矩更换磁铁重新标定高速运行中角度跳变SPI干扰或RDC失锁检查通信线屏蔽层接地降低SPI时钟频率上电后读出的角度和实际位置不一致RDC上电初始化未完成延时30到50ms后再读取角度读取两次校验双编码器角度差值超限减速机磨损或输出侧磁铁松动重新标定输出侧零点检查机械连接带载时角度噪声明显增大电机磁场干扰磁编码器增加隔磁罩调整编码器芯片布线远离功率线CRC错误频繁通信干扰或供电电压不稳测量供电纹波增加去耦电容缩短SPI线长度位置环有低频振荡滤波器带宽过低或速度环增益过高降低速度环增益或提高编码器滤波器带宽排查这类问题有一个基本思路就是先区分是机械问题还是电气问题。把电机拆下来手动转动轴端在示波器或者上位机上看角度波形。如果手动转动时角度平滑那就是电气问题如果手动转动时角度都有毛刺那大概率是磁性安装或者芯片本身出了问题。5.2 硬件布局上的经验教训有一次我们在一个关节模组里布置磁编码器芯片因为空间紧张把编码器板子和电机三相线摆得特别近结果满载调试时角度抖动明显速度环怎么也收敛不了。后来测了一下三相线上有高频开关噪声直接耦合到了编码器的模拟信号路径上。解决办法是重排PCB把功率地和信号地分开布线编码器芯片下方铺了完整的参考地同时在三相线上加了磁环。改完之后角度抖动下降到原来的十分之一。另一个经验是不要为了省成本选太差的磁铁。磁铁的磁场波形不理想直接体现为角度误差而且这种误差是非线性的软件很难补偿。正规厂家的磁铁出厂前都会做多极充磁和波形检测虽然贵一点但稳定性好太多。用在机器人关节这种需要长期连续运行的场合省下来的那点钱不够调试人工费。5.3 调试过程中的软件细节软件调试阶段有一个很容易踩的坑SPI读取角度时没有做字节校验就直接使用数据。AS5047P的SPI帧里带有CRC校验位如果你不加校验偶尔一次通信错误就会导致角度跳过一个很大的值。这个跳变传到位置环轻则轨迹抖动重则触发过流保护。所以强烈建议每次读取都检查CRC连续三次CRC错误就切换安全状态别硬着头皮继续跑。RDC芯片使用中一个容易被忽略的问题是“失锁”。AD2S1210这类芯片内部有锁相环它的寄存器可以读出当前的Loss of Lock和Loss of Signal状态。如果信号幅值不足或者信噪比太低锁相环就会失锁。失锁期间芯片输出的角度值会保持上一次的位置不会更新这会导致机器人明明在运动控制器读到的角度却纹丝不动非常危险。所以每次读取RDC数据的时候一定要同时读状态寄存器发现失锁立即报错。我个人的习惯是在机器人上电自检时做一遍完整的反馈通道自检上电读取编码器角度让电机缓慢转动一圈采集记录下来检查每个角度区间的读数是否连续平滑然后用已知角度和实际角度比对一次误差在允许范围内才允许进入运行模式。这套自检流程看着简单实际能拦住一大半的现场故障。5.4 行业趋势和个人体会从今年的各类展会和行业交流来看磁编码器加RDC在整个工业机器人关节反馈体系的地位越来越稳固。协作机器人、外骨骼机器人、人形机器人这类高集成度、高安全要求的设备几乎都在往这个方向靠。芯片厂商也在持续迭代新一代磁编码器的原始分辨率已经能做到16位、18位同时功耗和封装尺寸进一步降低RDC芯片在国产化进程中也越来越成熟交期和成本都变得可接受。从纯技术角度说磁编码器加RDC组合本质上是在“模拟信号处理”和“数字信号处理”之间找平衡。磁编码器负责低成本、小型化、高可靠的空间角度感知RDC负责信号调理、锁相信号跟踪和与旧式伺服接口的兼容。在未来相当长时间里这种混合架构都不会被轻易替代。最后再分享一个小技巧如果机器人运行中发现某个关节的重复定位精度突然下降先别急着怀疑控制参数。先读一读电机侧和输出侧两个磁编码器的角度差值如果差值的平均值比之前增大了很可能是输出轴上的磁铁发生了微小的位移。重新打胶固定磁铁并标定一次比花大半天调PID参数有效得多。
返回列表