多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

双闭环直流调速系统PI参数计算与Simulink仿真调试验证

双闭环直流调速系统PI参数计算与Simulink仿真调试验证 简介转速电流双闭环直流调速系统是电力拖动自动控制领域中应用广泛的经典调速方案。这份文档面向自动化、电气工程等专业的学生以及从事电机控制的工程技术人员系统介绍了双闭环系统的原理、设计与MATLAB/Simulink仿真实现。内容从单闭环调速系统的不足切入解释引入电流内环与转速外环的原因并详细给出主电路、电流调节器ASR、转速调节器ACR的结构选型与参数计算过程同时说明了如何通过Simulink搭建仿真模型、设置模块参数与仿真算法并通过波形分析验证系统的静态和动态特性。文档共1份doc文件压缩包大小约1.65MB包含完整的系统组成、原理图、设计步骤和仿真结果可直接作为课程设计、毕业设计或工程实践的技术参考。目前已有269人浏览学习对于希望掌握直流调速系统建模、PI参数整定与动态抗扰性能分析的读者具有较高的参考价值。1. 为什么双闭环比单闭环更适合快速起制动我拆了一份《转速电流双闭环直流调速系统仿真设计》的课程设计里面把晶闸管-直流电动机主电路和两个PI调节器的设计过程写得很细。先用实际场景说明动机一台他励直流电机要求带负载快速启动单转速闭环时启动瞬间电枢电流直冲电流截止负反馈只能在越限后强拉动态电流波形不受控。双闭环把电流环放在转速环内部启动阶段电流环维持最大允许电流以最大加速度升速稳态后转速环接管把电流拉下来与负载平衡。这种分工就是双闭环的核心逻辑。这篇文章把ASR、ACR参数计算、Simulink建模和波形调试展开适合做电力拖动课程设计或刚接触电机仿真的人。2. 系统建模与PI调节器参数计算2.1 电流环和转速环的嵌套结构系统由主电路和控制电路两部分组成。主电路是三相可控晶闸管整流电路通过改变电枢电压进行调压调速控制电路里有两个PI调节器ASR是转速调节器ACR是电流调节器。ASR的输出作为ACR的给定ACR的输出再去控制电力电子变换器UPE。从闭环结构上看电流环在里面是内环转速环在外面是外环。为什么电流环要放在里面因为主电路电感让电流不能突跳启动时希望有一段恒流过程。电流负反馈本身能近似保持电流恒定但又不希望它和转速负反馈同时作用到同一个调节器输入端。把电流环单独做成内环后ASR的输出限幅就对应电流给定的最大值相当于给启动力矩设了上限。这就让系统在启动阶段只有电流环起主要作用转速稳定后ASR退饱和转速负反馈才接管典型的串级控制结构。2.2 电流环化简与ACR参数忽略反电动势与合并小惯性电流环里反电动势和电流反馈的作用交叉在一起按动态性能设计时需要先简化。因为机电时间常数Tm远大于电磁时间常数TL电流瞬变时转速变化很慢反电动势近似不变所以设计电流环时可以把反电动势的动态影响去掉。再把给定滤波和反馈滤波移到环内变成单位负反馈最后把整流装置的失控时间Ts和电流滤波时间Toi合并成一个小惯性环节。这样电流环控制对象就简化成双惯性用PI调节器对消大惯性极点校正成典型Ⅰ型系统。这里用一个Python脚本演示时间常数和开环增益的计算避免手算出错# 电流环时间常数与PI参数示例计算 Ts 0.0017 # 三相全控桥平均失控时间单位s Toi 0.002 # 电流滤波时间常数单位s Tl 0.03 # 电磁时间常数单位s T_sigma_i Ts Toi # 电流环小时间常数之和 tau_i Tl # ACR超前时间常数用于对消大惯性极点 KI 0.5 / T_sigma_i # 按典型I型系统选取 KI*T_sigma_i0.5 print(T_sigma_i %.4f s % T_sigma_i) print(tau_i %.4f s % tau_i) print(KI %.1f 1/s % KI)代码里的T_sigma_i直接由Ts加Toi得到这个值决定电流环截止频率。KI*T_sigma_i取0.5是典型Ⅰ型系统的经验值对应阶跃跟随超调量约4.3%符合电流环“跟随为主”的要求。tau_i取Tl让调节器零点对消控制对象的大时间常数极点。这里的KI是电流环开环增益不是ACR的比例系数Kpi真正用进调节器模块的Kpi还要除以整流装置放大倍数Ks和电流反馈系数β仿真模型里如果直接搭了反馈通道和整流器可以先用一个初值再微调。表格电流环参数汇总参数符号数值来源/说明平均失控时间Ts0.0017 s三相桥式整流电路电流滤波时间常数Toi0.002 s滤除谐波根据纹波选取电磁时间常数Tl0.03 s电枢电感/电枢电阻ACR超前时间常数τi0.03 s取Tl对消极点电流环小时间常数Tσi0.0037 sTsToi开环增益KI135.1 1/s0.5/Tσi继续按原文使用的运算放大器R020kΩ换算得到ACR电阻Ri≈58kΩ电容Ci≈0.65μF反馈滤波电容Coi≈0.1μF。注意ACR的输出限幅不能省它决定晶闸管变换器能给出的最大整流电压仿真里如果把这个限幅去掉起动电流可能会超过电机允许值。2.3 转速环的等效与ASR参数电流环设计完成后对转速环来说电流环等效成一个一阶惯性环节时间常数约1/KI。把转速给定滤波和反馈滤波移到环内再把1/KI和转速滤波时间Ton两个小惯性合并得到转速环小时间常数Tσn。为了实现转速无静差负载扰动点前必须有一个积分环节电流环等效环节已经带一个积分ASR再带一个积分转速环开环就有两个积分环节所以按典型Ⅱ型系统设计。ASR也采用PI调节器传递函数W(s)Kn(τn s1)/(τn s)。工程上h是典型Ⅱ型系统的中频宽h3时抗扰性能更突出h5时跟随性能更平缓。原文按h3计算这里用Python再走一遍参数# 转速环参数计算示例 KI 135.1 # 上一节得到的电流环开环增益 Ton 0.01 # 转速滤波时间常数单位s T_sigma_n 1/KI Ton # 两个小惯性合并 h 3 # 典型II型系统中频宽 tau_n h * T_sigma_n # ASR超前时间常数 KN (h 1) / (2 * h**2 * T_sigma_n**2) # 转速环开环增益 print(T_sigma_n %.4f s % T_sigma_n) print(tau_n %.4f s % tau_n) print(KN %.2f 1/s % KN)Tσn在这里大约0.0174sτn取h倍后约为0.052sKN按典型Ⅱ型系统公式计算。h是中频宽直接决定ASR的积分作用强弱h越大转速超调越小但突加负载恢复越慢h越小抗扰性越好但超调变大。实际调参时不要死守计算值把Kn适当缩小一点往往能让超调量降到可接受范围。原文在R020kΩ下算得ASR电阻Rn≈424kΩ电容Cn≈0.11μFCon≈1μF与这里公式趋势一致。3. Simulink仿真模型搭建与参数设置3.1 仿真结构图拆解搭建模型前先明确层次外层是转速负反馈内层是电流负反馈最里面是晶闸管整流器和直流电机本体。我搭的模型结构是阶跃转速给定→ASR→限幅→ACR→限幅→三相晶闸管整流器→直流电机转速和电流分别从电机侧引出反馈。反电动势在电机动模里通过电枢回路自然形成不需要额外搭建。表格主要模块与参数设置建议模块Simulink库参数设置转速给定Sources / StepStep time0Final value1450ASRSimulink Extras / PID Controller 或自建PKnIKn/τn限幅±Uc_maxACR同上PKiIKi/τi限幅±Uc_max三相整流桥SimPowerSystems / Universal BridgePower Electronic deviceThyristor或Average Model直流电机SimPowerSystems / Machines / DC Machine额定电压、电枢电阻、电感、励磁参数反馈滤波Simulink / Continuous / Transfer Fcn1/(0.002s1) 电流滤波1/(0.01s1) 转速滤波模块里的限幅必须和设计值对应。ASR输出限幅就是电流给定上限太大等于把恒流启动过程放大到不安全范围ACR输出限幅限制整流桥最大输出电压太小会限制电机最高转速。如果用的是SimPowerSystems里的晶闸管桥仿真会带开关噪声、速度慢只是验证控制结构时可以用平均模型速度快不少。3.2 在Simulink里的搭建步骤拖入转速给定、求和点、ASR、ACR、限幅器、整流桥、电机模块按结构图连线先连电流内环再连转速外环。在ASR和ACR的反馈通道分别接入滤波惯性环节反馈信号从电机电枢电流和转速输出引出。把上一章算出的Kn、Ki、τn、τi换算成PID Controller模块的P和I参数注意PID模块的积分增益是Ki/τ不是Ki本身。检查模型里是否有代数环。ACR输出和整流器控制角、电流检测之间有瞬时依赖时Simulink会标出红色虚线并报代数环错误常见做法是在电流反馈通道加一个小惯性环节。用命令行设置参数并运行仿真也很方便下面这段脚本可以直接批量写入PID参数% 设置双闭环仿真模型参数并运行 mdl dc_double_loop; set_param([mdl /ASR], P, num2str(0.556)); % ASR比例系数 set_param([mdl /ASR], I, num2str(0.556/0.052)); % ASR积分增益 set_param([mdl /ACR], P, num2str(1.013)); % ACR比例系数示例值 set_param([mdl /ACR], I, num2str(1.013/0.03)); % ACR积分增益 set_param(mdl, StopTime, 0.6); % 仿真0.6秒 simOut sim(mdl); plot(simOut.tout, simOut.speed); grid on;set_param的第一组参数写的是ASR所在路径P和I分别对应PID Controller的比例系数和积分增益。这里ASR的I值是一个估算示例实际应该用“Kn/τn”替换。StopTime设0.6秒是因为起动过程约0.4秒0.5秒处突加负载后面留0.1秒看转速恢复过程。仿真输出存在simOut结构体里通过simOut.speed取出转速序列。3.3 仿真算法与数值发散控制直流调速系统里晶闸管开关和电机时间常数差几个数量级系统刚性很强。默认的ode45很容易把步长越调越小甚至出现数值发散。建议改变步长求解器用ode15s或ode23tb相对容差设1e-4最大步长限制在1e-3秒级别。如果控制环节用离散模块还要给调节器设置固定采样时间避免和连续求解器混用。表格仿真求解器参数建议求解器使用场景Max Step Sizeode45理想平均模型、无开关器件autoode15s有晶闸管开关、刚性系统1e-3ode23tb开关频率很高、振荡明显5e-4遇到仿真发散时最直接的检查就是把最大步长改小一档。很多“电机仿真”发散案例其实不是控制参数问题而是求解器在开关时刻采样不到高频分量强行一旦步长过大数值就飞掉了。改小最大步长后波形往往立刻恢复正常。4. 波形分析与调试思路4.1 起动过程的恒流阶段仿真波形里最有特点的是电流起动平顶启动阶段电流波形有一段接近水平的直线转速线性上升。这对应ASR饱和——启动瞬间转速偏差很大ASR输出迅速顶到限幅值电流环给定固定为最大允许电流电机以恒流加速。0.4秒左右转速接近给定ASR退饱和电流下降转速出现一个小的超调。0.5秒突加负载后转速下降ASR重新开始调节电流环把电流拉起来转速回到给定值。这个“电流限幅-转速超调-负载恢复”的过程和理论分析完全一致也是验证双闭环设计是否正确的第一步。如果波形缺少恒流段多半是ASR限幅设置太小或电流反馈系数不对导致电流环根本没有进入饱和状态。如果恒流段持续时间和预料不符则要检查整流桥稳态输出电流是不是达到了限幅值。4.2 典型波形异常与参数调整实际仿真里波形不会一次到位常见问题按下面的表格排查现象可能原因调整方向电流启动时高频振荡或发散ACR比例太大或仿真步长不匹配减小ACR的P改小最大步长转速超调量过大ASR比例太大或中频宽h太小增大h或减小ASR的P电流达不到限幅值ASR输出限幅太低调高ASR输出限幅同时确认不超过电机允许电流起动时间过长电流给定最大值偏低提高ASR输出限幅突加负载后转速跌落差大转速环抗扰性能不足改小h或增大ASR积分增益调参优先级要分清电流环不稳定时不要动转速环两环时间常数差异大外环根本调不回来。先把ACR的P降到稳定范围让电流阶跃响应达到预期再闭合转速环调ASR。这个“先内环后外环”的顺序能避免同时改两个调节器导致的互相影响。4.3 用脚本定量分析波形只看眼睛判断超调量不靠谱我习惯从仿真输出里直接算指标。下面这段MATLAB脚本读取转速序列计算相对超调量和2%误差带内的调节时间% 从仿真结果计算转速超调量与调节时间 t simOut.tout; n simOut.speed.Data; n_final n(end); % 取最后一点作为稳态转速 overshoot (max(n) - n_final) / n_final * 100; tol 0.02 * n_final; % 2%允许带 idx_settle find(abs(n - n_final) tol, 1, last); settle_time t(idx_settle); fprintf(超调量: %.2f%%, 调节时间: %.3fs\n, overshoot, settle_time);n_final取仿真最后一点前提是0.6秒内系统已经进入稳态否则要手动指定稳态区间取平均。max(n)减去n_final再除以稳态值得到超调量百分比。调节时间用“最后一个超出2%误差带的点”来定义比用元胞数组手算更直接。文档里说系统“具有良好的静态和动态特性”其实就是看这个超调量是否在允许范围内以及突加负载后能否快速回到稳态。5. 参数整定顺序与仿真发散排错技巧5.1 先内环后外环的整定流程整套双闭环参数整定按“电流环→转速环”两步走。先把ASR输出固定在一个常数或者在电流环给定处接阶跃信号单独验证电流环的跟随性能和限幅值。确认电流环稳定、电流波形无振荡后再闭合转速环测试起停和抗扰。这样每一步只引入一个变量波形异常时能立刻定位到具体环。5.2 仿真发散的常见原因和排查仿真发散多半不是控制参数问题而是数值问题。晶闸管整流桥在SimPowerSystems里是开关器件导通瞬间产生很窄的高频分量变步长求解器如果没捕捉到电流就可能在几毫秒内冲到离谱值。解决方法是改小最大步长、换ode15s、或者在电压电流反馈通道加小惯性滤波。另一个高频原因是代数环ACR输出直接参与整流器控制角计算控制角又决定输出电压、再决定电流反馈形成瞬时依赖。检查Simulink窗口里有没有红色虚线标注的代数环有的话在反馈通道串一个时间常数很小的惯性环节比如1/(0.0001s1)就能切断这个瞬时回路。5.3 一个能救场的经验如果模型能跑通但波形数值奇怪先查单位和反馈极性。双闭环里反馈极性接反的典型症状是启动瞬间转速往下掉或者电流反号。另外ASR的限幅值千万不要大于ACR允许输入范围否则ACR输入端被削顶电流环给不出最大电流。把ACR输入端接一个示波器监视饱和度是判断限幅是否合理最快的办法。实际调参时我习惯先把最大步长强制改成1e-4秒保证开关模型能收敛再逐步放松到1e-3秒很多仿真发散在第一步就直接消失了。本文还有配套的精品资源点击获取
返回列表