尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

伺服电机与伺服控制系统全解析:从闭环原理到PLC/STM32调试选型

伺服电机与伺服控制系统全解析:从闭环原理到PLC/STM32调试选型 简介面向自动化控制领域学习者与工程师的《伺服电机与伺服控制系统原理.ppt》课件以“伺服”含义为起点结合液压仿形车床、机械手电液伺服系统等工业实例系统讲解伺服电机定义、分类以及伺服系统实时反馈与闭环控制的基本逻辑。内容覆盖直流伺服电机安培定律控制原理、交流伺服电机变频调速方式并推导电气系统的电动平衡方程与机械系统的转矩平衡方程等核心数学模型帮助理解电枢电流、磁场与电磁转矩之间的关系适用于课程学习、教学备课或运动控制项目预研。资源包共1个文件为PPT格式大小3.51MB结构按基本概念、电机原理、控制系统、总结四部分组织便于按模块翻阅。已有244人学习通过该课件可掌握电枢控制直流伺服系统的方程推导与典型实现理解注塑机、数控机床、印刷机械等场景中的高精度定位与调速思路为后续深入学习工业自动化、机器人控制及智能装备技术打下基础。 说实话我刚开始接触伺服系统时也有个错误认知觉得伺服电机就是“精度高一点的步进电机”。直到有一次调试整套设备定位一直来回抖动怎么调脉冲数都压不住最后才发现问题根源在编码器反馈和驱动器增益配置上跟脉冲数量一点关系都没有。那次之后我才真正理解伺服系统和步进系统的差别不在“电机长得不一样”而在于有没有把反馈和误差修正做进控制循环。这篇文章就把伺服电机和伺服控制系统的原理好好拆一遍包括电机本体怎么工作、驱动器内部三环控制怎么配合、编码器精度是怎么回事以及PLC、STM32通过脉冲和485/Modbus控制伺服的具体思路最后再补上现场调试和选型时容易踩的坑。适合刚入门的电气工程师、自动化专业学生也适合想自己用单片机做运动控制项目的玩家。1. 先纠正一个误区伺服系统卖的不是电机是“闭环”1.1 闭环控制到底是什么伺服这个词是从“servo”来的原意有点像“仆从”翻译成大白话就是领导指哪它打哪而且必须实时知道自己现在在哪儿。普通的开环控制系统里控制器发出一堆脉冲电机按期待转了若干圈但到底有没有转到位、有没有被负载拖住控制系统是不知道的。伺服系统完全不一样电机尾部装了编码器编码器把当前位置和速度持续反馈给驱动器驱动器拿反馈量和指令值做比较算出偏差再通过算法输出力矩去消除偏差。这个“检测—比较—纠正—再检测”的循环每秒钟要跑几千次甚至上万次。整个过程用文字拆开看是这样的控制器发来目标位置比如“轴走到123.456毫米”。编码器实时报出电机当前实际位置。驱动器把目标位置和当前位置相减得到位置偏差。根据偏差大小驱动器输出对应的速度指令、电流指令。电机转动偏差缩小直到进入允许的误差范围。这套逻辑听起来简单但真正做到“稳、准、快”并不容易。偏差大时伺服应该大力加速追偏差接近零时又要立刻减小输出防止冲过头。伺服驱动器里那一堆增益参数本质上就是在调这个“追目标”的力度和节奏。1.2 为什么步进电机经常被拿来做对比很多新手问“步进电机也是电机为什么精度比不过伺服”。核心原因不是步进电机的分辨率不够而是它一般工作在开环状态。步进电机只要脉冲给得够密、力矩够大也能一步一步走得很细但一旦遇到负载突变、丢步了控制系统并不知道后续的坐标就全乱了。伺服系统不同如果实际位置跟不上指令它会报警或者即时加大输出把位置拉回来。所以伺服不只是“精度高”而是“能感知自己错了并主动纠正”。对比项步进电机系统交流伺服系统反馈方式多数无编码器开环编码器闭环低速特性低速容易共振、丢步低速平稳过载能力容易失步堵转可能烧电机有过载能力驱动器报警保护高速性能转速升高扭矩跌落明显恒扭矩范围宽调试复杂度简单需要调增益、设参数这里要强调步进系统也有高端的闭环步进方案加了编码器之后稳定性提升不少但响应速度和过载能力仍跟交流伺服有差距。选型时如果速度和动态响应要求不高、成本敏感闭环步进也是合理选择一旦涉及高速、高加速、重负载频繁启停伺服系统几乎是唯一可靠解。2. 拆开电机看门道永磁同步伺服电机的转子、定子和编码器零位2.1 结构拆解现在工业现场用得最多的伺服电机是交流永磁同步伺服电机。它有三大部分定子、转子、编码器。定子嵌着三相绕组转子由永磁体组成不需要通电也没有换向器。跟传统直流电机相比它省掉了电刷和换向器几乎没有磨损件维护量小跟异步电机相比转子没有笼条和感应电流铜耗和铁耗更低效率和功率密度更高。除了本体很多伺服电机的尾部还带抱闸也就是制动器。抱闸的作用是断电时依靠弹簧力锁住电机轴防止垂直轴因为重力下滑。这个装置经常被忽略但它直接影响调试体验抱闸没通电打开电机轴被机械锁死驱动器却以为能转结果就是过载报警。2.2 工作原理伺服驱动器内部把直流母线电压逆变成三相交流电在定子绕组里产生旋转磁场。永磁转子就像一块磁铁被这个旋转磁场带着同步转。这里的“同步”两个字是关键电机稳态运行时转子转速和定子磁场的旋转速度严格相等不存在转差。如果定子磁场角度和转子磁极位置错开了电磁转矩就会减小甚至变成负值电机立刻抖动、发热、带不动负载。所以驱动器要驱动永磁同步电机必须先知道转子当前转到哪个角度。这就是为什么伺服电机会有“编码器零位”或者“磁极位置自学习”的概念。第一次上电时系统需要找到转子磁极方向和编码器零点之间的对应关系更换电机后这一步尤其不能省否则电机会出现奇怪的振动和啸叫。很多伺服上电后会听到电机“咔”一声锁住那是驱动器给绕组通了直流电形成一个固定磁场把转子吸住。这属于正常现象也说明驱动器和电机之间的通讯已经建立。2.3 不同种类伺服电机怎么选交流永磁同步伺服电机最主流响应快、效率高、过载能力强用于CNC进给轴、机器人、包装机械。直流无刷电机结构类似但控制更简单常见于低成本伺服场合。直流有刷伺服电机功率较小教学仪器和仪表设备里还能看到控制简单缺点是电刷需要定期更换。直驱电机DD马达没有减速机直接驱动负载低速大力矩适合转台、机器人关节。很多人选型时只盯着额定功率却忽略了一个更重要的参数转子惯量。电机转子惯量跟负载惯量匹配好不好直接决定系统的动态响应和控制稳定性。这部分后面调试和选型章节会细讲。3. 精度从哪来三环控制与编码器反馈的配合3.1 电流环、速度环、位置环到底在管什么伺服驱动器内部不是简单的单闭环而是三层嵌套结构业内叫三环控制。最外层是位置环中间层是速度环最内侧是电流环也叫力矩环。以位置模式为例控制器发来位置指令后位置环把实际位置和目标位置比较输出一个速度指令速度环再把这个速度指令和编码器测到的实际转速比较输出电流指令电流环再去控制功率器件的PWM让电机实际电流快速跟随电流指令。为什么要套三层因为每一层管的事时间尺度不一样。电流环负责快速抑制电流突变和反电动势干扰速度环负责把转速稳住位置环负责最终定位。调试时有先后顺序从内到外先把电流环的增益设好再调速度环最后调位置环。很多人在位置模式下定位不准、机构发震总想着去调位置环增益结果越调越糟。实际上问题往往出在速度环甚至电流环参数上。三环的采样速度也是从内到外递减的。电流环最快位置环相对最慢。这很好理解位置变化是速度的积分速度变化又是电流的积分越靠外的环动作天然就越慢。如果某一层增益调得过高就可能出现振荡现场表现出来就是电机嗡嗡响、轴来回抖。3.2 编码器的分辨率不等于实际定位精度编码器是伺服系统的“眼睛”。常见分类有增量式、单圈绝对值、多圈绝对值。增量式编码器结构简单上电不知道位置每次开机需要执行回原点动作适合相对定位。单圈绝对值编码器断电后这一圈内的位置不丢但如果机构运动范围超过一圈还是需要记录圈数。多圈绝对值编码器掉电后能记住绝对圈数和角度很多机器人、换刀机构都靠它实现断电记忆开机不用回零。再举个例子看精度。17位编码器表示每圈有2^17131072个脉冲。如果丝杠导程是10毫米理论上最小分辨率大约是10毫米除以131072约等于0.000076毫米。这个数据看起来非常夸张但这里要泼一盆冷水它只是编码器的测量分辨率不是设备的最终定位精度。机械传动中的丝杠螺距误差、联轴器间隙、导轨摩擦、温度变形都会让实际精度比理论值差一两个数量级。编码器线在工程现场也是大坑。编码器信号属于高频弱信号必须用屏蔽双绞线而且不能跟伺服动力线走同一根线槽。我曾经遇到过一台设备位置偶尔漂移排查半天最后发现就是编码器线跟动力线并排走了三米干扰导致位置反馈跳变。分开布线后问题再也没出现过。4. 让伺服动起来PLC脉冲、485/Modbus和STM32控制实操4.1 PLC位置模式下脉冲和电子齿轮比怎么算PLC控制伺服最普遍的方式是位置模式下的脉冲控制。PLC高速脉冲输出口接伺服驱动器的脉冲输入端子方向信号接方向端子。驱动器通常要设电子齿轮比用来匹配“多少个脉冲对应多少距离”。举例希望1个脉冲对应0.001毫米的移动丝杠导程是10毫米那电机每转一圈需要10000个脉冲。如果伺服电机编码器反馈是每圈131072个脉冲那么电子齿轮比就应该是131072/10000约分成16384/1250。这个比值可以在驱动器参数里直接设置。实际项目里要注意PLC高速脉冲输出频率的上限。如果PLC最高只能发200kHz电机转速又要求3000转/分钟也就是每秒钟50圈那么每圈最多只有4000个脉冲单脉冲对应的距离就只能变大。这时要么换更高频率的PLC要么接受更粗的脉冲当量。电子齿轮比不是越大越好它只是一个匹配手段。有些PLC支持“脉冲方向”“CW/CCW双脉冲”和“A/B相”三种输出方式选哪种主要看驱动器支持哪种。接线前先翻手册看脉冲输入端子是高电平有效还是低电平有效用错极性会导致电机反向或者完全不转。4.2 STM32通过485控制伺服接线和Modbus报文用STM32控制伺服又不想上复杂总线时最成熟的方案就是RS485加Modbus RTU。硬件上STM32的串口接一个RS485收发器芯片比如MAX485再把A、B两根线接到驱动器通信口。RS485是半双工总线发送和接收要切换方向。现在很多现成模块支持自动收发切换省掉用GPIO控制RE/DE的麻烦但自己画板时还是建议留一个方向控制脚。通信前先在驱动器上设置好站号、波特率和协议格式常见有9600、19200、38400和8N1。Modbus RTU报文格式是从站地址 功能码 寄存器地址 寄存器数据 CRC校验。以某个国内常见驱动器为例大致的控制流程是使能发送地址、功能码0x06把控制字寄存器写入0x0001驱动器开始输出力矩。设置运行模式写入位置模式或速度模式对应的模式号。写入目标速度或目标位置。再次发送控制字触发启动运行。循环读取状态字和当前位置寄存器确认是否到位。这些寄存器地址和功能码每个厂家都不一样一定要以对应驱动器的Modbus寄存器表为准。调试时先用电脑上的Modbus调试助手发一帧报文确认驱动器能动了再用STM32重复同样的报文能省掉大量时间。STM32端重点处理的是CRC16校验、字节序和发送间隔报文发送后不要立刻读状态等驱动器响应时间足够再读。STM32发485报文控制伺服常见问题是不共地。很多新手只接A、B两根线忽略GND连接导致通信时好时坏。正确做法是隔离电源和隔离收发器一起用或者至少把控制板GND和驱动器通信GND连起来避免共模电压损坏芯片。4.3 多轴高同步场景EtherCAT比脉冲强在哪脉冲方式在单轴或者两轴且同步要求不高的设备里够用但一到多轴同步控制就露馅脉冲频率有上限线缆多各轴之间没有统一时钟很难做到真正的“同一时刻各轴同时动作”。EtherCAT是目前伺服通信的主流方案通过一个网口把所有驱动器和控制器串起来用分布式时钟让每个轴在同一时刻执行指令同步精度可以达到微秒级。STM32如果想玩EtherCAT一般需要外接EtherCAT从站控制器芯片不能直接用普通网口PLC则通过EtherCAT主站模块接入。对于初学者第一套伺服系统还是建议从脉冲或485开始把运动控制的基本逻辑搞清楚再往总线方向深入。毕竟总线只是换了一种通信方式电机和驱动器的底层原理完全一样。5. 现场调试和选型笔记跳过这些坑能省一整天5.1 上电顺序和参数保存新系统第一次上电我的习惯是先把动力线和编码器线反复核对一遍确认相序和电源电压没问题再送电。驱动器面板显示正常后才给伺服使能。如果一使能电机就嗡嗡震动立刻断开使能检查编码器零位和增益参数。参数拷到驱动器里之后一定要记得执行参数保存操作写入驱动器的EEPROM或者Flash。否则断电重启后参数恢复到出厂值你会发现之前调好的东西全白做了。很多驱动器面板上有专门保存参数的功能码连PLC调试程序里也最好把参数保存这一步做成手动操作避免每次上电都覆盖。垂直轴调试前先确认抱闸状态。抱闸没打开时伺服会一直追赶一个被机械锁住的轴最终报过载。手动松抱闸按钮在调试阶段很有用但要规范操作防止轴自由掉落。5.2 常见故障排查表现象可能原因处理思路电机不转未使能、总线通讯未就绪、伺服报警先看面板报警码再查使能信号和急停回路电机抖动/啸叫增益过高、机械共振、编码器接线受干扰降低速度环增益检查编码器线屏蔽和布线定位不稳/漂移电子齿轮比设错、机械间隙、编码器反馈异常对比指令位置和实际反馈位置确认误差来源运行中偶发过载加减速时间太短、抱闸未开、制动电阻不足查看报警历史记录逐步延长加减速时间现场排查有个原则先看报警代码再看接线最后动参数。很多人一遇到问题就急着调增益结果把原本正常的系统调到完全没法用。伺服驱动器面板上的报警码其实已经把故障范围缩得很小了比如过载、过流、编码器异常、通信超时照着报警码查手册通常很快就能定位。5.3 选型时的一个速算例子伺服电机选型主要看三个扭矩匀速运动需要的摩擦扭矩、加速阶段需要的峰值扭矩、减速阶段需要的制动扭矩。最容易被忽略的是加速扭矩它跟负载惯量和角加速度直接相关。举个例子用丝杠推动一个10kg的滑块丝杠导程0.01米摩擦系数0.1传动效率0.9要求在0.2秒内从0加速到0.3米每秒。负载折算到电机轴的惯量约为J m × (P/(2π))² 10 × (0.01/6.283)² ≈ 2.5×10⁻⁵ kg·m²。丝杠角加速度约为α (2π/P) × a (6.283/0.01) × 1.5 ≈ 942.5 rad/s²。加速扭矩约为T Jα ≈ 0.024 N·m。摩擦扭矩约为Tf m×g×μ×P/(2πη) ≈ 0.017 N·m。两者相加约0.04 N·m再考虑电机转子自身惯量和1.5到2倍安全系数工程上选择0.1 N·m级别的伺服是够用的。实际很多设备选400W或750W更多的是出于惯量匹配和机械刚性的考虑。负载惯量和电机惯量的比值也要控制住一般不要超过10倍动态响应要求高的场景最好控制在5倍以内。惯量比太大时位置增益不敢提太高轴会显得“软”定位要靠慢慢蹭效率很低。最后分享一个我在现场常用的土办法新系统第一次跑先把速度环增益从默认值往下调一半让电机稳下来随后每次增加10%直到出现轻微啸叫再退回20%。位置环参数最后动。这套方法虽然不够严谨但能保证你刚接触一套陌生的伺服系统时不会一把参数调炸。本文还有配套的精品资源点击获取
返回列表