简介:面向电机控制课程设计或毕业设计的一份完整设计文档,围绕双闭环可逆直流脉宽PWM调速系统,覆盖方案确定、设计分析、电路设计、调节器参数整定到总体电路图的全流程。文档重点分析双闭环调速系统构造、起动过程电流与转速波形、H桥双极式逆变器原理及PWM静特性,并针对给定基准电源、电流/转速调节器、IGBT驱动、锯齿波发生和检测电路等模块展开设计,同时给出电流环与转速环的PID参数整定思路。压缩包内仅有单个doc文档,大小843KB,目录结构按设计分析、电路设计、参数整定等章节排列,便于按需查阅。目前已有215人学习/下载,适合自动化、电气类专业学生系统掌握可逆PWM调速系统设计方法。 看到“双闭环可逆直流脉宽PWM调速系统设计”这个题目,很多人的第一反应是教材里的经典框图:外环是转速环,内环是电流环,H桥驱动直流电机实现正反转调速。这个题目在电气工程、自动化相关专业的课程设计、毕业设计里出现率极高,但在实际动手做之前,多数人会低估它的工程量。它不只是一份设计文档里的几个公式,而是把电力电子变流、自动控制原理、传感器调理、功率驱动和嵌入式软件全部串在一起,任何一个环节出问题,电机都转不好。
这套系统能解决什么问题?一句话:让直流电机在四象限内稳定、快速、可逆地调速。既能正转也能反转,既能电动也能制动,转速给定变化时响应快且不失控,起动和堵转时电流被限制在安全范围内。对于正在做这个课题的学生,或者刚接触电机控制的工程师,这篇文章能帮你把整体设计思路、参数计算、硬件选型和调试流程完整地串起来,少走很多弯路。
1. 系统整体架构与设计思路
1.1 “转速外环+电流内环”的结构为什么是这个顺序
双闭环这个名字,表面上看就是把两个PI调节器串在一起,实际里面有一个很讲究的因果关系。工程上把电流环放在内层、转速环放在外层,核心考虑有两点。
第一是保护。直流电机起动瞬间,反电动势还没建立起来,电枢电流理论上等于电源电压除以电枢电阻。拿一台24V、电枢电阻1Ω的电机举例,起动电流可能冲到24A,而额定电流可能只有3A。如果只靠转速环,转速误差大的时候调节器输出会拼命加大占空比,电流直接爆表。有了内层电流环,电流一旦超过限制值就会被拉回来,相当于给主电路加了一道“软保险”。
第二是动态响应。电流环控制的是电气量,时间常数小,响应快;转速环控制的是机械量,涉及转子惯量,时间常数大,响应慢。把快的环节放在里面、慢的环节放在外面,外环输出作为内环给定,整个系统的带宽逐级下降,环与环之间才不会“打架”。讲得直白一点:转速环负责定方向,电流环负责给力气,力气必须跟得上方向的变化,所以电流环必须在更快的节奏上工作。
设计顺序也因此固定下来:先设计电流环,再设计转速环。内环是外环的被控对象之一,内环性能不好,外环调得再好也没有用。实际调试中同样是先断开转速环,单独给电流环加固定给定,等电流环稳定后再把转速环投入。
1.2 可逆运行:正转反转只是第一步,制动才是关键
“可逆”在直流调速里有两层含义:一是机械上的正反转,二是电气上的四象限运行。用横轴转速、纵轴转矩来看,第一象限是正转电动,第二象限是正转制动,第三象限是反转电动,第四象限是反转制动。刚开始做这个课题的人往往以为把电枢电压反接就能实现可逆,实际上制动状态比正反转麻烦得多。
正反转可以通过H桥对角导通切换实现:T1、T4导通时电机正转,T2、T3导通时电机反转。但制动完全不同——电机在惯性下继续旋转时,要让电流反向产生制动转矩,此时电枢电压与反电动势的方向关系反过来了,能量从机械侧流向电气侧,通过H桥的续流二极管回灌到母线电容。
这正是可逆系统被称作“四象限运行”而不是“双向旋转”的原因:可逆的难点不是换方向,而是能量来回流动时电流方向的控制。在双闭环系统里,转速误差符号改变后,转速环的输出(电流给定)变成负值,电流环在给定反向时迅速把电流拉向反方向,这就是制动的本质。母线电压会因回馈能量而升高,所以功率稍大一些的系统,母线电容旁边还要并联泄放电阻或能量回馈装置,否则电压泵升会直接击穿功率管。
1.3 方案选型:从给定到输出的一整条链路
我在实际指导这个课题时,习惯把整个系统拆成五段来设计:给定与反馈、转速调节器ASR、电流调节器ACR、PWM变换器、直流电机本体。给定信号经过转速环和电流环两级PI运算后生成PWM占空比,再由驱动电路控制H桥四个功率管的开关,最终在电机电枢端得到平均电压可调的PWM波形。电流反馈和转速反馈各自回到对应调节器输入端,构成闭环。
控制核心目前主流方案有三类:模拟运放方案、DSP方案、通用MCU方案。模拟方案用运放加比较器搭出来,响应快但参数难调,适合课程演示;DSP适合高性能伺服场合;STM32则是最均衡的选择,外设丰富、成本低、资料多,绝大多数人做这个课题都选它。下面讲的软硬件细节也以STM32为例。
2. 核心控制原理解析
2.1 PWM调制方式三选一:双极式、单极式、受限单极式
可逆PWM变换器根据开关管的导通模式分成双极式、单极式和受限单极式三种。它们决定的不是PWM波形本身,而是电枢电压的极性变化方式。
双极式调制最简单:T1、T4一组,T2、T3一组,两组互补导通,电枢两端要么是+Ud要么是-Ud。设占空比为α,平均电压就是(2α-1)Ud,α=0.5时平均电压为零。优点是电压连续可调、正反转平滑过渡;缺点是四个管子每个开关周期都在高频动作,开关损耗大,而且零位附近正负脉宽频繁交替,死区效应明显。
单极式调制下,一个桥臂的管子恒导通,另一个桥臂做PWM,只有两个管子高频开关,损耗小。但简单单极式在电流过零时会出现断续,响应变差,所以工程上常用受限单极式:根据电流方向判断哪个管子恒通,让电流始终连续。这需要可靠的电流方向检测,实现复杂度高一些。
| 调制方式 | 输出电压均值 | 开关损耗 | 零位附近特性 | 实现复杂度 |
|---|---|---|---|---|
| 双极式 | 与占空比线性 | 大 | 换流频繁,死区影响明显 | 简单 |
| 单极式 | 与占空比线性 | 小 | 电流可能断续 | 中等 |
| 受限单极式 | 与占空比线性 | 小 | 电流连续、线性好 | 较复杂 |
做课题的话我的建议很明确:为了快速跑通功能,先用双极式,逻辑简单、调试容易;想追求效率和性能再升级到受限单极式。PWM载波频率建议选16kHz到20kHz,一是在人耳听阈以上没有尖叫噪声,二是频率越高电流脉动越小,但太高会增加开关损耗,20kHz左右是最常用的平衡点。
2.2 电流环设计:如何用PI把电流限制在安全范围
电流环的设计目标可以概括成三句话:电流跟踪快、超调小、限幅准。它的被控对象由两部分组成:PWM变换器本身可以近似为一个一阶惯性环节,时间常数取开关周期的一半或一个周期;电机电枢回路是RL一阶惯性环节,时间常数Ta=L/R。
以一台24V、3A、3000rpm的直流电机为例,电枢电阻R=1Ω,电枢电感L=0.5mH,那么Ta=0.5ms。电流环PI调节器的参数可以按零极点对消的思想来估算:让PI调节器的零点抵消电枢回路的大惯性极点,也就是Ki/Kp=1/Ta,然后再按典型I型系统选择开环增益,让阻尼比落在0.707附近,此时超调量大约4.3%,跟踪性能和稳定性比较理想。
实际调试时,不要指望一次算准,因为电枢电感等参数受温度和工况影响很大。我通常的做法是:给定一个固定幅值的阶跃电流指令,先用很小的Kp和Ki让系统稳定,再逐步加大Kp直到电流快速上升但不过冲,最后加Ki消除稳态误差。注意电流环的采样和PWM周期必须同步,否则反馈滞后一拍,整个环路很容易振荡。
2.3 转速环设计:慢环如何配合快环
转速环是外环,被控对象变成了“电流环+电机+负载”这个大惯性对象,时间常数通常在几十毫秒到几百毫秒量级,比电流环慢一个数量级以上。转速环按典型II型系统设计,抗负载扰动能力强,代价是允许一定超调,超调量控制在8%到20%之间,具体看项目对动态指标的要求。
转速反馈通常有两种来源:测速发电机和光电编码器。测速发电机便宜简单,但有纹波和零点电位差,低速性能差;光电编码器用M法测速时,以1ms采样周期、1000线编码器做4倍频为例,每转4000个脉冲,3000rpm时每毫秒约有200个脉冲,分辨率足够;低速时脉冲数少、误差大,要切换到T法测速。
转速环PI参数的经验值,在电流环带宽约2kHz、转速采样周期1ms的前提下,Kp通常在0.1到0.5范围,Ki在5到50范围。这里没法给出通用精确值,因为反馈系数、负载惯量都不同。最靠谱的方法还是用阶跃响应去观察:转速上升快、回稳快且不振荡,就是相对合理的区间;出现持续振荡就同时减小Kp和Ki;出现缓慢爬行就增大Ki。
3. 硬件电路设计与器件选型
3.1 主电路怎么选:MOSFET、驱动芯片与死区
主电路的核心是H桥,功率管选型原则是:电压裕量取母线电压的1.5到2倍,电流裕量取额定电流的2倍左右。24V/3A的小功率电机用MOSFET非常合适,IRF540、IRFP460这类经典型号耐压100V,电流余量足够。如果用IGBT,在这么低的电压下反而不划算,导通压降相对高。
驱动电路首推IR2110,一片芯片集成高低端两个驱动通道,高端用自举电容供电,外围电路简单。自举电容通常选1uF到10uF,要加一个二极管防止电荷回流。这里有个坑:自举结构依赖开关动作给电容充电,PWM频率太低(低于几百赫兹)或者长时间保持恒定占空比时,自举电压可能跌落,高端管子会驱动不足、发热甚至烧毁。批量产品更倾向用带隔离电源的驱动方案,比如TLP250加独立DC-DC,但实验课题用IR2110完全够。
H桥同一桥臂上下两个管子绝对不能同时导通,否则电源直接短路,这就是“直通”。解决直通要靠死区时间:STM32的高级定时器TIM1、TIM8可以直接配置互补PWM和死区寄存器;如果用DSP,28335的PWM模块里也有DBFED、DBRED寄存器分别设置上升沿和下降沿死区,原理都一样。死区时间不是越大越好,太大输出电压损失多、波形畸变明显,一般取几百纳秒到几微秒,只要能覆盖开关管的关断延迟即可。
3.2 电流采样与信号调理:别让几十毫伏信号被噪声吞掉
电流采样是双闭环里最容易出问题的一环。常见方式有两种:采样电阻加差分放大器,或者霍尔电流传感器。采样电阻成本低、响应快、线性好,但电阻上有损耗且需要和主电路共地;霍尔传感器隔离性好,但价格贵、带宽有限。
小功率系统我习惯在H桥负母线端串一只0.02Ω的采样电阻,再用INA240或AD8210这类电流检测放大器放大,把几十毫伏的信号升到ADC满量程范围。3A额定电流对应采样电阻压降60mV,放大50倍后是3V,配合3.3V的ADC刚好。关键细节是采样电阻的接线要用开尔文法单独引回ADC地,不要和功率地混在一起,否则功率回路的大电流压降会直接叠加到采样信号上。
还有一点必须强调:PWM开关瞬间的电流尖峰非常猛,直接采样会引入严重的开关噪声。解决办法是把采样点放在PWM中心位置(中心对齐模式下计数器为0或ARR的时刻),由定时器触发ADC在这个时刻采样,避开开关瞬态。这比任何滤波电路都有效,能在根源上消掉大部分毛刺。
3.3 转速反馈与硬件保护:安全底线不能只靠软件
转速反馈用编码器的话,要留意信号电平匹配。多数编码器是5V输出,STM32引脚是3.3V,需要加电平转换或用74LVC4245这类芯片,否则长时间运行可能损坏引脚。测速发电机则要RC低通滤波加运放调理,滤波时间常数别取太大,几毫秒以内,太大会让转速环相位裕度不足。
保护电路建议做成硬件级的,不要全指望软件。过流保护用比较器把电流采样信号和限流阈值比较,一旦超出就直接拉低PWM驱动芯片的使能脚,同时触发STM32的紧急刹车输入BKIN。母线过压保护检测母线电容电压,超过阈值就导通泄放电阻电路。这些保护优先级要高于软件控制逻辑,因为软件在死机或跑飞时是完全不可控的。
4. 软件实现与调试实践
4.1 用STM32定时器输出带死区的互补PWM
软件部分,我以STM32F103和TIM1为例。TIM1是高级定时器,支持互补PWM输出和硬件死区插入。很多人最早接触PWM是从TIM3做呼吸灯开始的,但呼吸灯只用一个通道,双闭环调速至少需要两路互补PWM,还要死区,所以我会用TIM1/TIM8这种带互补输出的定时器。
配置要点有三个。一是计数模式选中心对齐模式1或2,这样PWM波形关于中心对称,电流脉动小,而且方便在中心点同步触发ADC采样。二是频率由ARR决定,比如72MHz主频、PWM频率20kHz,中心对齐模式下ARR大约取1800。三是占空比由CCR决定,CCR从0到ARR变化时占空比从0到100%。
100%占空比这个点容易踩坑。有人用DMA批量更新占空比时,原本想让输出变成全高,结果波形反而乱跳或者翻成低电平,通常是比较值越界或者预装载寄存器更新时序没处理好。我的经验是占空比一律限幅在0到ARR之间,不要碰ARR+1这类临界值,更新CCR时用预装载功能,等更新事件统一生效。
4.2 离散PI与限幅:两个调节器的软件实现
PI调节器在单片机里要写成离散形式,常用位置式:输出等于比例项加积分累加项。两个调节器都要做输出限幅:ASR输出限幅对应最大允许电流给定,ACR输出限幅对应最大占空比。限幅不是可选项,没有限幅的PI在饱和后退出很慢,产生“积分饱和”,表现为转速超调大、恢复慢。
抗积分饱和有个简单实用的做法:计算积分累加之前先判断,如果输出已经到达上限且当前误差方向仍然趋向增大,就暂停积分累加。这样调节器退出饱和的速度会快很多,代码逻辑不复杂,但效果很明显,调试时会发现超调量一下子小了很多。
控制时序上,电流环放在定时器更新中断里跑,周期和PWM周期一致,比如20kHz;转速环可以做一个软件分频,每累计10到20次电流环中断执行一次,也就是1kHz到2kHz。这样内环总是先于外环拿到最新数据,符合串级控制“内环快、外环慢”的基本原则。
4.3 联调顺序:从开环到双闭环的五步法
联调顺序我强烈建议从后往前、从开环到闭环,不要一上来就双闭环全投入。
- 先不接电机,单独看PWM输出波形,确认频率、死区、占空比变化都正确。
- 接上电机,给定一个固定占空比,看电机能否正常起动和换向,这一步验证主电路和驱动逻辑。
- 单独调电流环:ASR断开,给ACR固定电流给定,看电流是否跟踪,反复调整电流环PI。
- 投入转速环:给转速给定阶跃,看转速响应,调整转速环PI。
- 最后做正反转切换、加减载、堵转实验,验证保护功能。
调PI时强烈建议用串口虚拟示波器,把电流反馈、转速反馈、PI输出等变量通过串口发到上位机显示。只看万用表很难判断动态过程,有了波形图就可以直观看到参数变化对系统响应的影响。也有人习惯在Keil仿真环境里观察PWM波形,这能确认逻辑层面的占空比和频率,但要注意它和真实示波器看到的带噪声波形不完全一样。
5. 实战中的典型问题与排查经验
5.1 起动冲击电流过大,内环为什么没拦住
这是这个课题里出现频率最高的问题,表现为电机一上电就猛冲一下,或者母线电流瞬间爆表。排查思路按顺序来:先看电流反馈信号是否正确,采样噪声是不是已经把真实信号淹没了;再看电流环是否真的投入了,很多人代码里ASR和ACR都写了,但初始化时没有正确接通;最后检查电流环限幅值,看看是不是设得比硬件承受能力还大。
还有一种情况是ACR的PI参数太慢,电流还没反应过来,转速误差已经让ASR输出顶到限幅,电流环在拼命追击但永远追不上,电流自然一路冲到限幅值。解决办法是提高电流环带宽,比如提高采样和PWM频率、加大Kp、减小积分时间。电流环的快速性在这里直接决定系统的安全性。
5.2 电流环振荡和零位抖动:先查采样,再调PI
电流环振荡通常表现为电流波形出现高频等幅抖动,伴随电机啸叫。多数原因是电流采样滞后太大,比如RC滤波时间常数取了几毫秒,或者采样不在PWM中心点而是随机时刻,反馈信号和实际电流差了一大截。把采样点和PWM中心对齐、减小滤波电容之后,振荡一般会明显缓解。
零位抖动集中在占空比0.5附近。双极式PWM在零电压附近时,正负脉冲宽度几乎相等,此时换流最频繁,死区造成的电压损失占比最大,电机会在停转位置附近轻微抖动。解决方向有几个:把死区时间调到刚好能避免直通的最小值;检查PWM极性设置是否对称;项目允许的话升级成受限单极式调制,零位附近的非线性会好很多。另有一个小细节:如果你想让一个定时器同时做PWM捕获和PWM输出,理论上可行,但在双闭环系统里不建议这么干,捕获中断会干扰控制时序,分开用定时器会省很多事。
5.3 功率管发热、可闻噪声与采样干扰
功率管异常发热通常不是过流,而是开关损耗过大。常见原因包括死区时间太小导致直通电流尖峰、PWM频率过高、栅极驱动电阻过大导致开关过渡时间太长。把PWM频率从20kHz降到16kHz、栅极电阻从100Ω降到10Ω左右,再配合合适的死区时间,发热问题通常能改善一大截。
可闻噪声要区分来源。如果是电机本体高频啸叫,多半是PWM频率落进了人耳可听范围,提高到20kHz以上就听不见了;如果是采样信号中有明显的开关毛刺,在上位机波形上会看到密集的窄脉冲,这就要回到采样同步和硬件滤波上去解决。
最后再分享一个自己的体会。双闭环可逆PWM直流调速系统这个题目,看着像是教科书里的框图和公式,真正做完一遍之后,你会对“理论到工程的距离”有很直观的认识——大量时间不是花在复杂的数学推导上,而是花在采样噪声、死区效应、PI饱和这些“脏活”上。我建议从第一次上电开始就养成记录波形和参数的习惯,每次把当前的PI参数、PWM频率、死区时间、故障现象截图存档,否则调了几天之后参数会乱成一锅粥。这个习惯比任何调试技巧都管用,也正是这些看似不起眼的东西,才是电机控制调试真正值钱的地方。
本文还有配套的精品资源,点击获取