简介:这份资源围绕绕线式异步电动机转子串电阻分级起动过程,提供基于MATLAB/Simulink搭建的瞬态仿真模型,面向电气工程、电机控制方向的学生与工程师,用于在实机投运前评估起动电流冲击、优化各级起动电阻并确定断路器闭合时间。模型依据异步电动机T型等效电路的电流与转矩方程,用数值方法优化计算电阻数值,并以数值积分求解系统运动方程确定开关时序,最后对一台22kW电机完成起动过程仿真并给出结果,参考谢可夫、邓建国发表于《计算机仿真》的论文,适配MATLAB 2020b。资源包为rar压缩包,约422KB,文件总数与类型明细上游暂未提供。目前已有145人学习下载,适合需要复现论文模型、研究分级起动参数整定与排错思路的读者参考。
1. 绕线式异步电动机转子串电阻分级起动:为什么仿真比现场试错更划算
绕线式异步电动机转子串电阻分级起动,是重载起动场景里非常经典的一套方案。它的核心逻辑不复杂:转子回路串入电阻,既能抬高起动转矩,又能压低起动电流;随着转速上升,逐级短接电阻,最后把转子绕组直接短接,电机进入自然机械特性运行。问题在于,这套逻辑一旦落到具体参数上,就变成了一道多变量耦合题——电阻分几级、每级阻值多少、切换转速点定在哪、切换延时给多长,任何一个参数选偏,轻则起动电流冲击大,重则切换瞬间转矩塌陷,电机在中间转速“卡住”甚至堵转。
现场试错的代价很高。一台大功率绕线电机的起动电阻箱,改一次接线、换一组电阻,动辄半天工期,还要占用生产窗口。更麻烦的是,很多故障是瞬态的,切换瞬间的电流尖峰和转矩跌落,靠钳形表和肉眼根本抓不住。所以越来越多做电气传动的人,会先在仿真里把分级起动过程跑一遍,把电流、转矩、转速三条曲线看清楚,再决定电阻级数和切换点。这篇笔记就围绕“绕线式异步电动机转子串电阻分级起动过程的仿真”这件事,把模型怎么搭、参数怎么设、坑在哪,按能复现的顺序讲清楚。适合正在做电机起动方案验证的电气工程师、做传动课程设计的同学,以及需要给重载设备选起动方式的从业者。
2. 分级起动仿真建模:从电机方程到电阻切换逻辑
2.1 为什么绕线式电机必须用动态模型而不是稳态等效电路
很多人第一反应是用稳态等效电路算起动转矩,套公式 T = f(s) 画一条机械特性曲线,然后按曲线交点定切换转速。这个做法在“选电阻大致范围”时能用,但做分级起动仿真会翻车。原因是分级起动是一个动态过程:每级电阻切换的瞬间,转子回路阻抗突变,定转子电流和磁链不能突变,转矩会出现一个暂态跌落再恢复的过程。稳态等效电路描述不了这个暂态,也描述不了切换延时内电机转速继续上升带来的转差变化。
常见做法是采用三相异步电机在静止坐标系下的动态方程,或者用 dq 坐标系下的五阶模型。对绕线式电机,关键是把转子侧电阻作为可变参数引入转子电压方程。dq 坐标系下,定子电压方程和转子电压方程可以写成:
usd = Rs*isd + d(ψsd)/dt - ω1*ψsq usq = Rs*isq + d(ψsq)/dt + ω1*ψsd urd = Rr*ird + d(ψrd)/dt - (ω1-ωr)*ψrq urq = Rr*irq + d(ψrq)/dt + (ω1-ωr)*ψrd其中 Rr 在分级起动过程中不是常数,而是随切换级数变化的分段函数。转子绕组本身短接时 urd=urq=0,串入电阻后,等效转子电阻变为 Rr + Radd,其中 Radd 是当前级的外串电阻折算值。转矩方程用 Te = 1.5np(ψsdisq - ψsqisd) 计算,运动方程用 Te - TL = J*dωr/dt。
这套模型的好处是,切换瞬间的磁链连续、电流连续,转矩的暂态跌落能真实反映出来。代价是需要电机的完整参数:定转子电阻、漏感、互感、转动惯量。这些参数如果拿不到出厂值,可以用空载和堵转试验反推,或者用参数辨识方法从起动电流曲线拟合。
2.2 电阻分级数与每级阻值的确定方法
分级起动的电阻设计,本质是在机械特性图上画一组互相平行的转子回路电阻特性曲线,让相邻两条曲线的切换点落在峰值转矩附近。传统做法是图解法:先确定最大转矩 T1 和切换转矩 T2,一般取 T1 = (0.7~0.85)*Tmax,T2 = (1.1~1.2)*TL,然后在机械特性图上从自然特性反推,画出各级电阻特性,交点就是切换转速。
设总级数为 m,转子每相电阻为 R2,则每级外串电阻的折算值满足等比关系。如果按最大转矩和切换转矩确定转矩比 λ = T1/T2,则级数 m 和 λ 的关系为:
m = lg(TN / (λ * sN * T1)) / lg(λ)这个公式是近似推导,实际工程里更常用的是先定级数(一般 3~5 级),再反算每级电阻。以 3 级为例,转子回路总电阻从 R2 + Radd1 + Radd2 + Radd3 逐级减小到 R2。每级切换时,让当前特性曲线的峰值转矩对应下一级特性的切换转矩,形成“接力”。
在仿真里,我一般把每级电阻值做成一个数组,切换逻辑用一个状态机实现:检测转速是否达到当前级的切换点,达到就短接一段电阻,同时记录切换时刻。切换点转速的确定,可以用当前级机械特性曲线与下一级机械特性曲线的交点转速,也可以直接用时间延时。前者更准,后者更简单但需要试凑延时。
2.3 用 Python 搭一个最小可复现的分级起动仿真
下面这段代码用 Python 实现绕线式电机分级起动的 dq 模型仿真。为了可复现,参数用一组典型的中等功率绕线电机折算值,读者可以替换成自己电机的实际参数。代码里包含电阻切换的状态机逻辑。
import numpy as np import matplotlib.pyplot as plt # 电机参数(折算到定子侧,单位:欧姆、亨利、千克·米^2) Rs = 0.45 # 定子电阻 Rr = 0.35 # 转子电阻折算值 Ls = 0.082 # 定子电感 Lr = 0.082 # 转子电感 Lm = 0.078 # 互感 J = 0.8 # 转动惯量 np_ = 2 # 极对数 TL = 40.0 # 负载转矩 N·m # 分级电阻折算值(从大到小,最后一级为0表示短接) R_add = [1.2, 0.6, 0.25, 0.0] # 各级切换转速(rad/s),按机械特性交点估算 w_switch = [30.0, 60.0, 95.0] # 仿真步长与总时长 dt = 1e-4 t_end = 3.0 steps = int(t_end / dt) # 状态量初始化 isd, isq, ird, irq = 0.0, 0.0, 0.0, 0.0 wr = 0.0 theta = 0.0 w1 = 2 * np.pi * 50 # 定子同步角频率 # 记录数组 log_t, log_wr, log_Te, log_is = [], [], [], [] level = 0 # 当前电阻级数 for k in range(steps): t = k * dt # 当前转子电阻 Rr_now = Rr + R_add[level] # 磁链计算 psd = Ls * isd + Lm * ird psq = Ls * isq + Lm * irq prd = Lr * ird + Lm * isd prq = Lr * irq + Lm * isq # 定子电压(假设直接全压起动) usd, usq = 310.0, 0.0 # 转子电压为0(短接或串电阻后仍短接) urd, urq = 0.0, 0.0 # 电流微分 d_isd = (usd - Rs*isd + w1*psq) / Ls d_isq = (usq - Rs*isq - w1*psd) / Ls d_ird = (urd - Rr_now*ird + (w1-wr)*prq) / Lr d_irq = (urq - Rr_now*irq - (w1-wr)*prd) / Lr # 更新电流 isd += d_isd * dt isq += d_isq * dt ird += d_ird * dt irq += d_irq * dt # 转矩 Te = 1.5 * np_ * (psd * isq - psq * isd) # 运动方程 dwr = (Te - TL) / J wr += dwr * dt if wr < 0: wr = 0 # 电阻切换状态机 if level < len(w_switch) and wr >= w_switch[level]: level += 1 # 记录 log_t.append(t) log_wr.append(wr) log_Te.append(Te) log_is.append(np.sqrt(isd**2 + isq**2)) # 绘图 fig, ax = plt.subplots(3, 1, figsize=(8, 8), sharex=True) ax[0].plot(log_t, log_wr) ax[0].set_ylabel('转速 rad/s') ax[1].plot(log_t, log_Te) ax[1].set_ylabel('转矩 N·m') ax[2].plot(log_t, log_is) ax[2].set_ylabel('定子电流 A') ax[2].set_xlabel('时间 s') plt.tight_layout() plt.show()这段代码的逻辑说明:主循环里每一步先根据当前级数确定转子电阻,然后计算磁链和电流微分,用欧拉法更新状态量。转矩用磁链和电流的叉乘计算,运动方程更新转速。切换状态机放在最后,检测转速是否超过当前级的切换点,超过就 level 加一,下一轮循环电阻就变小。参数说明:R_add 数组是各级外串电阻的折算值,最后一级为 0 表示转子短接;w_switch 是各级切换转速,需要根据机械特性交点预先估算;dt 取 1e-4 是为了捕捉切换瞬间的暂态,如果只关心稳态过程可以放大到 1e-3,但切换点附近的转矩跌落会失真。
运行这段代码,你会看到转速曲线在切换点附近有一个小的斜率变化,转矩曲线在每次切换时有一个向下的尖峰再恢复,定子电流在切换瞬间有一个冲击。这三个特征就是分级起动仿真的核心观察对象。如果切换点设得太早,转矩还没恢复到峰值就切下一级,转矩会连续跌落,转速上升变慢;如果设得太晚,电机已经接近自然特性,再切电阻意义不大,反而增加切换次数。
3. 参数怎么设:电阻级数、切换转速与仿真步长的配合
3.1 电阻级数不是越多越好:3 级和 5 级的取舍
理论上级数越多,起动过程越平滑,电流和转矩的波动越小。但级数增加意味着电阻箱抽头更多、接触器更多、控制逻辑更复杂,成本和故障点都上升。工程上常见的是 3 级到 5 级。3 级适合中小功率、负载转矩比较平稳的场景;5 级适合大功率、重载、对起动电流限制严格的场景。
在仿真里对比 3 级和 5 级,最直观的指标是切换瞬间的转矩跌落幅度和起动总时间。我一般会跑两组参数,把转矩曲线叠在一起看。如果 3 级的转矩跌落已经低于负载转矩的 1.1 倍,那就必须加级数;如果 3 级的跌落还在安全裕度内,就没必要为了“好看”加到 5 级。下面这张表是同一台电机在两种级数下的仿真对比,参数是折算值,仅作示意。
| 指标 | 3 级方案 | 5 级方案 |
|---|---|---|
| 起动总时间 | 2.1 s | 1.8 s |
| 最大定子电流 | 2.8 倍额定 | 2.4 倍额定 |
| 切换瞬间最小转矩 | 1.15 倍负载 | 1.35 倍负载 |
| 电阻抽头数 | 3 | 5 |
| 接触器数量 | 3 | 5 |
从表里能看出,5 级方案在电流和转矩上都有改善,但改善幅度不是线性的。如果负载本身没有严格限制,3 级方案的综合性价比更高。仿真在这里的价值就是让你在改硬件之前,先看到这组数字。
3.2 切换转速的确定:机械特性交点法 vs 延时法
切换转速定得准不准,直接决定转矩曲线是“波浪形”还是“锯齿形”。机械特性交点法是最稳的:把当前级电阻对应的机械特性曲线和下一级电阻对应的机械特性曲线画在同一张图上,交点对应的转速就是切换转速。这个转速下,切换前后电机的转矩相等,理论上没有转矩突变。实际因为有暂态,还是会有小跌落,但幅度最小。
延时法更简单:每级给一个固定延时,时间到了就切。延时法的风险是,如果负载转矩波动或者电网电压偏低,电机转速上升变慢,固定延时到了但转速还没到切换点,强行切换会导致转矩塌陷。仿真里可以两种方法都试一遍,对比转矩曲线。我一般先用交点法算出切换转速,再在仿真里微调,因为交点法基于稳态特性,动态过程中转速到达交点时可能还有加速度,实际最佳切换点会略早或略晚。
3.3 仿真步长和求解器的选择:欧拉法够不够用
上面代码用的是显式欧拉法,步长 1e-4。对于分级起动仿真,欧拉法在大多数情况下够用,因为电机电气时间常数通常在几十毫秒量级,1e-4 的步长远小于时间常数。但如果你把步长放大到 1e-3,切换瞬间的转矩尖峰会被抹平,看起来“很平滑”,实际上掩盖了真实的暂态。这是仿真里最常见的自欺欺人。
如果要做更精确的仿真,可以用四阶龙格库塔或者变步长求解器。变步长在切换点附近会自动缩小步长,适合捕捉暂态,但输出曲线的时间点不均匀,画图时要处理。我的习惯是:先用欧拉法小步长跑一遍看趋势,再用变步长求解器复核切换点附近的细节。两者结果一致,才认为模型可信。
提示:仿真步长不要大于电机转子回路时间常数的十分之一。绕线式电机转子回路时间常数在串电阻后会变大,步长可以适当放宽,但切换瞬间前后各 10 ms 内建议保持小步长。
4. 避坑与排查:分级起动仿真里最容易翻车的 5 个地方
4.1 转矩曲线在切换点出现负值
现象:仿真跑出来,每次电阻切换瞬间转矩掉到零甚至负值,转速曲线出现平段。原因通常是切换转速设得太低,电机还没加速到下一级特性的稳定运行点就切了电阻,导致电磁转矩不足以带动负载。解决方法是把切换转速往上调,或者检查负载转矩是否设得过大。另一个可能原因是电阻级数不够,相邻两级之间转矩落差太大,需要加一级过渡。
4.2 定子电流在起动初期就超过预期
现象:第一级电阻投入后,定子电流峰值远高于手算的起动电流。原因往往是转子电阻折算值算错了,或者定转子匝比没考虑。绕线式电机的转子参数折算到定子侧时,需要乘以电压比和电流比的乘积。如果直接拿转子侧实测电阻值代入,电流会偏大很多。解决方法是核对折算公式,或者用空载堵转试验数据反推。
4.3 转速曲线在切换后出现回落
现象:切换电阻后转速不升反降,过一会儿才恢复。原因是切换瞬间转矩跌落幅度超过了负载转矩,电机进入减速状态。如果跌落时间短,转速只是波动;如果跌落深,电机会堵转。解决方法是减小相邻两级电阻的差值,或者提高切换转速,让切换发生在转矩裕度更大的区间。
4.4 仿真结果和现场记录对不上
现象:仿真里起动时间 2 秒,现场实际 3 秒多;仿真电流峰值 2.5 倍,现场 3 倍。原因可能是仿真没考虑电网电压跌落、接触器动作延时、电阻发热导致的阻值变化。这些因素在仿真里可以加:电压源串一个内阻模拟跌落,切换逻辑加一个动作延时,电阻值用温度系数修正。如果对不上但趋势一致,通常可以接受;如果趋势都不对,先检查电机参数和折算。
4.5 切换状态机在转速波动时反复触发
现象:转速在切换点附近波动,状态机反复加减级数,电阻值来回跳。原因是切换判据只用了瞬时转速,没有加滞环。解决方法是在状态机里加一个转速回差,比如切换后要等转速超过切换点 2 rad/s 才允许下一级切换,或者用时间锁,切换后至少保持 50 ms 再判断。
注意:分级起动的仿真,切换逻辑的鲁棒性和电机模型本身一样重要。很多“仿真结果不对”其实是状态机写得太理想化。
5. 从仿真到现场:把曲线变成可执行的切换参数
仿真跑通之后,最有价值的输出不是那几张曲线图,而是一组可以直接下到控制器的切换参数:每级电阻对应的接触器编号、切换转速阈值、切换延时保护值。我一般会把仿真结果整理成一张参数表,交给做 PLC 或继电器逻辑的同事。表里除了切换转速,还会给一个“最早允许切换转速”和“最晚允许切换转速”,前者防止转矩塌陷,后者防止切换太晚失去意义。
验证仿真可信度的一个实用技巧是:用现场录波仪抓一次实际起动过程的定子电流曲线,和仿真曲线叠在一起。如果电流包络的拐点位置对得上,说明切换转速和电阻级数基本正确;如果拐点位置偏移,按偏移方向调整切换转速再跑一遍。这个迭代通常两三轮就能收敛。
另一个进阶用法是把仿真模型改成参数扫描模式:让电阻级数和切换转速在一个范围内自动遍历,输出每组参数下的最大电流、最小转矩、起动时间,然后按“最小转矩不低于 1.1 倍负载、最大电流不超过 2.5 倍额定”这两个约束筛出可行域。这样得到的参数组合比手工试凑更全面,也更容易说服评审。
我自己在这类仿真上踩过最深的坑,是早期太相信稳态公式算出来的切换转速,仿真里转矩曲线看着还行,现场一跑就发现第二级切换时电流冲击比仿真大很多。后来把接触器动作延时和电阻发热修正加进去,曲线才对上。从那以后,我养成了一个习惯:任何分级起动的仿真,切换逻辑里必须留一个可调的延时保护,哪怕仿真显示不需要。现场永远比模型多几个变量,留一手后悔药,比事后改电阻箱便宜得多。希望帮到你。
本文还有配套的精品资源,点击获取