转速电流双闭环直流调速系统仿真:从PI参数整定到Simulink实践
2026/9/19 7:53:10 网站建设 项目流程

简介:一份面向自动化、电气工程专业学生的双闭环直流调速系统仿真设计文档。内容围绕转速电流双闭环控制展开,涵盖晶闸管-直流电动机主电路、转速调节器ASR与电流调节器ACR的嵌套结构、PI调节器参数选择及Simulink仿真建模全过程。文档先分析单闭环系统的动态不足,进而说明电流内环与转速外环的构成逻辑,详细给出了电流环结构框图化简、小惯性群近似处理以及典型I型系统校正方法,并配有电路原理图、动态结构图和仿真波形分析。全文共1个doc文件,大小1.65MB,已有269人浏览学习。通过这份文档可完整掌握双闭环调速系统的工程设计流程、参数整定思路和仿真调试技巧,对完成课程设计、毕业设计或理解现代电力拖动控制系统均具有较好的参考价值。

1. 转速电流双闭环直流调速系统仿真设计先分清内外环

收到这种 .doc 标题,多半是课程设计或项目验收材料。但抛开文档格式,转速电流双闭环直流调速系统仿真设计真正要回答的问题只有一个:一台直流电机在带载起动、突加负载、给定突变时,转速和电流分别该按什么规律变化。只闭环转速的单环系统,起动瞬间电流几乎由电压和电枢电阻决定,冲击电流能到额定值的十倍以上,烧的是换向器和功率开关。加一道电流内环后,转速环只负责输出电流给定,电流环负责快速跟踪,并靠输出限幅把电流钉在安全值内。于是系统同时拿到两样东西:限流能力和较快的动态响应。仿真的价值在于,先用传递函数把两组 PI 参数定量算出来,再搭模型验证,最后把波形、参数表、调试记录写进文档。下面按这个顺序走一遍,参数可以直接套到你自己的电机铭牌上。

2. 转速电流双闭环直流调速系统的数学模型与PI参数整定

2.1 为什么转速电流双闭环要先闭环电流环

直流电机里有两个时间常数:电枢回路的电气时间常数T_l = L/R,数量级是毫秒;机电时间常数T_m,数量级是几十到几百毫秒。两者差一个数量级以上,电流比转速快得多。控制上有一条铁律:内环的带宽必须高于外环,所以快的电流环放里面,慢的转速环放外面。

电流环在内侧还有两个不可替代的作用。第一是限流,起动和堵转时转速环输出饱和,其输出值就是电流给定,电流环保证实际电流不超限,这是功率器件和电机安全的最后一道防线。第二是抗扰,反电动势E是电流环内部的一个扰动,负载变化导致E波动时,电流环先把它压住,转速环看到的是一个被校直的被控对象,设计起来干净得多。另外T_e = C_m·i_d,电流和转矩成正比,所以电流环本质上就是转矩环,这正是伺服系统里“扭矩内环+速度外环”的同一套结构。

2.2 直流电机与PWM环节的传递函数

把直流电机按他励方式写方程,U_d0是整流或PWM输出的理想空载电压:

U_d0 = R·i_d + L·(di_d/dt) + EE = C_e·nT_e - T_L = (GD²/375)·(dn/dt)

拉氏变换后得到三个最常用的传递函数:

  • 电枢电流对电压:I_d(s)/(U_d0(s)-E(s)) = (1/R)/(1+T_l·s),这是一阶惯性环节,时间常数T_l = L/R
  • 转速对电流差:n(s)/(I_d(s)-I_dL(s)) = R/(C_e·T_m·s),这是一个积分环节,T_m = GD²·R/(375·C_e·C_m)
  • PWM变换器:U_d0(s)/U_c(s) = K_s/(1+T_s·s)T_s取开关周期,实际工程里有时取半个周期,这里先按1ms演示。

仿真模型里还要带上两个反馈系数:电流反馈系数β(V/A)和转速反馈系数α(V/rpm)。这两个系数必须和PI增益配套使用,课程设计里最常见的错误就是模型里直接反馈真实电流和转速,而参数表里却写着按βα标幺化算出来的增益,结果波形全乱。要么全部用实际值,要么全部用电压标么值,别混用。

2.3 用工程设计法算电流环PI参数

电流环的被控对象是K_s/(1+T_s·s)(1/R)/(1+T_l·s)两级惯性串联。T_lT_s大一个数量级,是大惯性。标准做法是用PI调节器的零点去对消这个大惯性:令τ_i = T_l,开环传递函数就压成了典型I型系统K/(s·(1+T_s·s))

典型I型系统按阻尼比ζ = 0.707整定,对应超调量约5%,条件是K·T_s = 0.5。把各环节增益代进去:

K = K_pi·K_s·β/(τ_i·R),于是K_pi = 0.5·τ_i·R/(K_s·β·T_s),积分增益K_ii = K_pi/τ_i

注意这个公式里R是电枢电阻,K_s是变换器放大倍数,β是电流反馈系数。只要这几个量是实测值,算出来的K_pi可以直接当作仿真初值,不用试凑。

2.4 转速环按典型II型系统整定

电流环整定完毕后,从转速环看进去,电流闭环近似等效成一个一阶惯性环节:≈ (1/β)/(1+2T_Σi·s),其中T_Σi是电流环的小时间常数之和,近似取T_s加上电流滤波时间常数。转速环的小时间常数T_Σn = 2T_Σi + T_onT_on是转速滤波时间常数。

转速环要求抗负载扰动能力强,工程上整定成典型II型系统,用中频宽h作为唯一自由度:

τ_n = h·T_ΣnK_N = (h+1)/(2·h²·T_Σn²),一般取h = 5

把转速环开环增益表达式列出来:

K_N = K_pn·α·R/(τ_n·β·C_e·T_m),反解出K_pn和积分增益K_in = K_pn/τ_n

下面这段MATLAB脚本把两个环的参数一次算完,以后换电机只改前三行的铭牌参数:

% 电机与变换器参数,按220V/55A/1500rpm典型直流电机 R = 0.5; % 电枢电阻,Ω L = 0.015; % 电枢电感,H T_l = L / R; % 电气时间常数,s C_e = 0.132; % 电动势系数,V/rpm T_m = 0.18; % 机电时间常数,s K_s = 40; % PWM变换器放大倍数 T_s = 1e-3; % PWM等效滞后,s,按开关周期取 beta = 0.05; % 电流反馈系数,V/A alpha = 6.7e-3; % 转速反馈系数,V/rpm % 电流环:典型I型,zeta=0.707,对应KT_s=0.5 tau_i = T_l; % PI零点对消电枢大惯性 K_pi = 0.5 * tau_i * R / (K_s * beta * T_s); K_ii = K_pi / tau_i; % 转速环:典型II型,h=5 T_sigma_n = 2 * T_s + 0.005; % 电流环等效2T_s,转速滤波取5ms h = 5; tau_n = h * T_sigma_n; K_N = (h + 1) / (2 * h^2 * T_sigma_n^2); K_pn = K_N * tau_n * beta * C_e * T_m / (alpha * R); K_in = K_pn / tau_n; fprintf('电流环 K_pi=%.3f K_ii=%.3f\n', K_pi, K_ii); fprintf('转速环 K_pn=%.3f K_in=%.3f\n', K_pn, K_in);

脚本里各变量的含义:tau_itau_n是PI调节器的超前时间常数,K_piK_ii是电流环比例和积分增益,K_pnK_in是转速环的对应增益。计算逻辑是:电流环先按典型I型定K_pi,转速环再把电流环当作一个大惯性放到II型系统里反解K_pn。整定结果和教材“先内环、后外环”的顺序完全一致,两种典型系统的对应关系可以汇总成下表:

环节系统类型整定准则预期指标
电流环典型I型ζ=0.707,K·T_Σ=0.5超调约5%,无静差
转速环典型II型h=5,τ_n=h·T_Σn抗扰强,阶跃超调约37%

h=5对应的转速超调约37%,这个数字初看吓人,实际调试里不会靠减小K_pn去压它,因为那会牺牲抗负载扰动能力。更常用的手段是给转速给定加斜坡,后面第5章专门讲。

3. 用Simulink搭转速电流双闭环直流调速仿真模型

3.1 最小可仿模型:模块清单与连接顺序

新手容易一上来就用 Simulink 库里的 DC Machine 和 Universal Bridge 电力电子模块,结果仿真步长被拉得很小,跑一次要好几分钟,参数还未必对得上。我一般先用传递函数搭一个最小模型,把PI参数验证清楚,再决定要不要加电力电子细节。

最小模型的信号流向是:转速阶跃给定 → 与α·n比较 → 转速PI(输出限幅)→ 电流给定 → 与β·i_d比较 → 电流PI(输出限幅)→K_s/(1+T_s·s)变换器 →U_d0减去E(1/R)/(1+T_l·s)电枢 →i_d分两路,一路乘β反馈回电流比较点,另一路进入R/(C_e·T_m·s)机械环节,并在此处减掉负载电流i_dL,得到转速n。转速再乘C_e生成反电动势,乘α反馈回转速比较点。

各模块的库位置和参数写法如下表:

模块Simulink库参数设置
StepSourcesStep time=0,Final value=10(即额定转速对应的电压)
转速PIContinuous/PID ControllerP=K_pn,I=K_in,输出限幅±10V,抗饱和开
电流PIContinuous/PID ControllerP=K_pi,I=K_ii,输出限幅±10V,抗饱和开
变换器Continuous/Transfer Fcn分子[K_s],分母[T_s 1]
电枢回路Continuous/Transfer Fcn分子[1/R],分母[T_l 1]
机械环节Math Operations/Gain + Continuous/Integrator增益R/(C_e·T_m),后接积分器
电流反馈Math Operations/Gain增益 beta
转速反馈Math Operations/Gain增益 alpha

机械环节拆成“增益加积分器”而不是直接用一个传递函数,是因为负载扰动i_dL要加在这个积分环节的输入端,这样突加负载的仿真就好做了:用一个 Step 模块,Step time 设为 1,Final value 设为 20,接到机械环节的求和点,就模拟了 t=1s 时突加 20A 负载力矩。

3.2 先跑通参数脚本再开仿真

第2章的脚本不要关,让它在 MATLAB 基础工作区留下K_pi、K_ii、K_pn、K_in这些变量,模型里PI模块的 P、I 参数直接填变量名。这样改电机参数只动脚本开头三行,重跑一遍脚本再sim就行,不用去翻模块对话框。

% 运行参数脚本,生成工作区变量 run('params_dual_loop.m'); % 仿真模型,Enable Data Logging 后结果进 logsout sim('dual_loop_model.slx'); % 取转速信号并绘图 n_out = logsout.get('n_rpm'); plot(n_out.Values.Time, n_out.Values.Data); grid on; xlabel('t/s'); ylabel('n/rpm');

sim命令会按模型里配置的停止时间跑完整段仿真。模型里给信号线命名后,在 Signal Logging 标签勾选对应信号,logsout.get('n_rpm')才能取到。信号命名建议统一用n_rpmi_au_i_star这样的可读名,后面做波形分析和写文档都省事。

3.3 PI模块对话框容易填错的三个地方

第一个是输出限幅。转速PI的输出是电流给定,如果电流限幅是1.5倍额定,那转速环输出上限就该是1.5·I_n·β,而不是随便填个±10。10V只是控制器内部的电压摆幅,不代表限流值,两者对不上,起动电流就不是你要的那个数。

第二个是抗饱和必须打开。PID Controller 块里 Anti-windup method 选 back-calculation,系数填1/K_p。电流环在起动时长期工作在饱和状态,这是正常的,不正常的是积分器还在继续累积,等转速接近给定再退饱和,超调会大得离谱。如果看不到这个下拉菜单,说明用的是旧版PID块,换 Continuous/PID Controller。

第三个是仿真步长。模型里有T_s=1ms的快惯性,固定步长求解器建议取1e-51e-6秒,变步长求解器在电流环阶跃点附近会把步长切得很碎,波形一样但跑得慢。步长大于T_s/20时电流环波形会出现明显振铃,那不是参数问题,是数值积分精度问题。

4. 转速电流双闭环仿真波形怎么看、怎么修

4.1 起动与突加负载波形的三段特征

按上面参数跑出来,正常波形分三段看。第一阶段是起动瞬间:转速环输出立刻顶到限幅,电流环把i_d迅速拉高并稳定在限幅值附近,此时电磁转矩恒定,转速按固定斜率直线上升。第二阶段是转速进入给定附近:转速环退饱和,电流给定回落,i_d从限幅值平滑下降到负载电流,转速曲线由直线过渡到逼近给定。第三阶段是 t=1s 突加负载:转速瞬时跌落几转,转速环立刻增大电流给定,i_d跳升到新负载电流,转速又回到给定值,稳态无静差。

判断一个模型对不对,不用看精确数值,看这三段是否齐全。最常缺的是第一阶段:如果i_d没有在起动瞬间冲上去顶住限幅,而是跟着转速慢慢爬,说明转速环输出限幅没生效,或者限幅值给太大,电流环根本没饱和。

4.2 波形异常与参数修正对照表

波形现象根因修正动作
起动阶段电流高频振铃,波形毛刺明显电流环K_pi偏大,或仿真步长大于T_s/20先压仿真步长,再降K_pi
转速超调明显大于37%,且回摆缓慢转速环积分饱和,抗饱和未开启开 back-calculation,系数设1/K_pn
转速低频率振荡,周期几百毫秒h偏小或T_on偏大导致相位裕度不足h提到6~7,减小转速滤波时间
突加负载后转速长时间回不到给定转速环K_in偏小,或限幅没放开增大K_in,检查转速环输出限幅
起动电流达不到限幅值,只有给定一半电流反馈系数β与限幅值不一致核对β和限幅量的量纲

第一行是最容易误判的。很多人看到电流振荡就认为是 PI 参数问题,实际上先看一眼仿真步长。T_s=1ms的惯性和步长同数量级时,数值方法本身就在给系统注入延迟,振荡完全可能是假的。判断办法是把步长降一个数量级再跑,波形变干净就是步长问题;没变化才是增益问题。

4.3 调参顺序:先电流环后转速环,单环验证

双闭环最忌讳两个环一起调,出问题分不清是谁的锅。工程调试的顺序是:先把转速环摘掉,给电流环单独加阶跃,看i_d能否做到5%超调、无振荡;电流环验收通过后再闭合转速环,只动转速PI;最后才加负载扰动验证抗扰。这个顺序就是现场调试的顺序,仿真阶段更应该这么干。

摘转速环有个不用改模型结构的技巧:把转速PI的P和I都设成0,再把它的输出限幅上下限设成同一个常数,比如5V,就等于给电流环一个恒定的电流给定,此时观察电流跟踪就是单环阶跃响应。测完恢复参数即可,不用另存模型。电流环波形确认无振铃、超调在5%左右,再回头看转速环,90%的问题都会消失,剩下的才是转速环的参数问题。

5. 双闭环仿真收尾的三个实用技巧

5.1 积分限幅与抗饱和系数同步设

电流环饱和是工作状态,积分饱和才是故障。抗饱和系数K_b的物理含义是“积分器往回拉的强度”,填1/K_p是一般推荐值。验证方法极简单:把抗饱和关掉跑一遍起动,再打开跑一遍,对比转速超调量,通常能从40%以上回到20%附近。如果你的 PI 是用两个 Gain 一个 Integrator 手搭的,Integrator 的 Limit output 只能限状态,不能防饱和,请换回 PID Controller 块。

5.2 电流反馈上的二阶低通有源滤波器,时延要算进TΣ

PWM 纹波会污染电流反馈信号,常见的做法是在电流反馈通道加二阶低通有源滤波器,即 Sallen-Key 结构。设计时取等电阻方案:R1=R2=10kΩC1=2C2,截止频率f_c = 1/(2π·R·√(C1·C2)),Q 值正好约0.707,对应巴特沃斯平坦特性。比如要截到1kHz,算出来C2≈11nFC1≈22nF,这是可以直接搭板的值。

仿真里不要真的去搭运放电路,用二阶传递函数1/(s²/ω_c² + s/(Q·ω_c) + 1)代替,放在电流反馈回路上。关键点在于:这个滤波器给电流环引入了额外相移,算转速环时T_Σi必须把它算进去,否则实际系统的相位裕度比设计值小,转速环容易振荡。这就是“设计与仿真测试”要一起做的原因——只算参数不测试延迟,参数等于白算。

5.3 转速给定加斜坡,和h=5的37%超调和解

典型II型系统 h=5 的阶跃超调约37%,这是结构决定的,不是参数没调好。工业现场不靠降低K_pn来压超调,因为那会牺牲抗扰能力,而是给转速给定加一个斜坡限幅器(Rate Limiter),让给定本身不跳变。斜坡斜率的上限由物理约束决定:dn/dt = R·(I_lim - I_L)/(C_e·T_m),即额定电流减去负载电流对应的加速度。按文中的电机参数算出来约1150 rpm/s,实际取60%~80%,也就是700~900 rpm/s,对应在给定电压上约每秒4.7~6V。

这个技巧的直接收益是:转速超调可以压到5%以内,而起动电流依然满限幅,时间没多花多少。仿真报告里把“不加斜坡”和“加斜坡”两组转速波形放在同一张图上,是最有说服力的一页。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询