简介:这份面向电气工程与电机控制方向学习者的Word文档,围绕三相绕线式异步电动机转子串电阻起动展开MATLAB/Simulink仿真设计,可用于课程实验、毕业设计选题参考与电机启动特性自学。内容涵盖实验目的、仿真模型搭建、关键模块参数设置、仿真参数选择、调试中常见问题及解决办法,并结合转子电流、定子电流、转速与电磁转矩等波形分析启动冲击与电阻短接后的加速过程。资源包共1个docx文件,大小约765KB,篇幅集中、便于查阅和二次整理,适合按步骤复现模型或在此基础上修改负载与电阻参数。目前已有541人学习下载,可作为理解绕线式异步电动机启动控制原理、掌握Simulink建模与Powergui分析的实践参考资料。
1. 起动电流被限制到多少、转矩还能留多少
一台 30 kW、8 极的绕线式异步电动机,定子直接合闸时起动电流通常是额定电流的 5 到 7 倍,而起动转矩只有额定转矩的 0.8 到 1.2 倍;如果把它用在需要带载甚至满载起动的场合,光靠定子侧限流根本不够,因为定子降压会同时把起动转矩按平方压下去。转子串电阻走的是另一条路:转子回路电阻增大后,临界转差率向 1 靠近,最大转矩数值不变,于是起动瞬间就能落在接近最大转矩的点上,同时转子电流下降、折算到定子的电流跟着下降。代价是起动过程必须在几级电阻之间切换,切换点选得不好会出现转矩跌落甚至二次冲击。MATLAB/Simulink 正好适合把"算电阻—搭模型—看曲线"这一整套串起来验证:先用解析式把每段电阻算出来,再在 Simulink 里用绕线转子异步电机模块和三个断路器把切换过程跑出来,最后对照定子电流、转速和电磁转矩三条曲线确认切换点是否落在设计值上。下面从电阻计算开始,一路做到能复现的仿真模型和排错方法。
2. 从铭牌参数推到三段起动电阻:公式与 MATLAB 数值解
2.1 转子每相电阻 R2 与固有临界转差率 s_m 的算法
绕线式电机的铭牌上一般给三个关键量:转子静止时的开路线电压 E2N、转子额定电流 I2N、额定转速 nN。转子每相电阻按额定转差率折算:
R2 = sN · E2N / (√3 · I2N)
其中 sN = (ns − nN)/ns,ns = 60f/p 是同步转速。这一步在做仿真前必须先算,因为 Simulink 里那个"折算到定子的转子电阻"参数就是由它乘上变比平方得来的。
固有临界转差率由最大转矩倍数 λm 反推:
s_m0 = sN · (λm + √(λm² − 1))
这两个式子背后是异步电机转矩的近似表达式 T = 2T_M /(s_m/s + s/s_m)。注意当 λm 较大时 s_m0 会明显大于 sN——对一台 λm = 2.0 的电机,s_m0 大约是 3.7 倍 sN,这个数关系到后面第一级电阻能拉到多大。
提示:E2N 给的是线电压,很多资料直接写成 E2N/I2N 得到每相电阻,会把结果放大 √3 倍。仿真里电机参数不自洽,最先出问题的就是这一项。
2.2 用等比转差率递推求各级临界转差率与电阻
分级起动的核心是把"每级临界转差率"排成一个等比数列。设第一级(串入全部电阻)的临界转差率为 s_m1,起动瞬间 s = 1,要让此处转矩等于选定的最大起动转矩 T1,就有:
s_m1 + 1/s_m1 = 2T_M/T1
取大于 1 的根,记为 z1。再令 z2 为切换点处的比值 z2 = s_m1/s_k,它由切换转矩 T2 决定:z2 + 1/z2 = 2T_M/T2。可以证明,相邻两级的临界转差率之比恒为 z1/z2,于是
s_m(i) = z1 · (z1/z2)^(i−1),i = 1, 2, …, m+1
第 m+1 级就是全部电阻切除后的固有特性,要求 s_m(m+1) = s_m0。这就给出了闭合条件:
z1 · (z1/z2)^m = s_m0
式子里只有 T1、T2、m 三个待定参数,给定其中两个就能反解第三个。实际设计一般先按 0.85 到 0.95 倍 T_M 选 T1,再按级数 m 反解 T2,最后校核 T2 是否大于 1.1 倍负载转矩——低于这个值,切换瞬间电机会因为转矩不够而"卡"在半途。
各级总电阻由临界转差率按比例放大:
R_total(i) = R2 · s_m(i) / s_m0
相邻两级总电阻之差就是该级要切除的那段外接电阻。
2.3 起动转矩、切换转矩和级数的取值边界
| 参数 | 常见取值范围 | 取小了会怎样 | 取大了会怎样 |
|---|---|---|---|
| 最大起动转矩 T1 | 0.85~0.95 T_M | 起动慢、加速时间长 | 切换时转矩冲击大,机械应力高 |
| 切换转矩 T2 | ≥ 1.1 T_L | 切换后转矩不足,转速停滞 | 级数被迫增加,电阻箱段数变多 |
| 级数 m | 3~5(中小容量取 3) | 切换落差大,二次冲击明显 | 接触器多、成本高、切换时序难协调 |
| 各级电阻比 | 一般 2~3 倍递减 | 后段加速过慢 | 前段电阻过大,起动瞬间转矩反而下降 |
级数不是越多越好。级数增加时,每级切除的转矩落差变小,理论上曲线更平滑,但电阻段数、接触器数量和切换控制逻辑都会跟着上来,对起重机、卷扬机这类应用,3 级基本够用。
2.4 一段可直接运行的 MATLAB 计算脚本
%% 绕线式异步电动机转子串电阻分级起动 —— 电阻计算 clear; clc; % ---------- 1. 铭牌与派生参数 ---------- PN = 30e3; UN = 380; fN = 50; nN = 725; E2N = 250; I2N = 75; lam = 2.0; p = 4; % 极对数 4 对应 8 极 ns = 60*fN/p; % 同步转速 750 r/min sN = (ns - nN)/ns; % 额定转差率 TN = PN/(2*pi*nN/60); % 额定转矩 N·m TM = lam*TN; % 最大转矩 R2 = sN*E2N/(sqrt(3)*I2N); % 转子每相电阻 sm0 = sN*(lam + sqrt(lam^2-1)); % 固有临界转差率 % ---------- 2. 由起动转矩反解切换转矩,使末级闭合 ---------- T1 = 1.9*TN; % 最大起动转矩,约 0.95 TM m = 3; % 电阻级数 z1 = (2*TM/T1 + sqrt((2*TM/T1)^2-4))/2; % 第一级 s_m1 即 z1 root = @(K) (K + sqrt(K.^2-4))/2; % 解 u + 1/u = K 取大根 fT2 = @(T2) sm0 - z1*(z1/root(2*TM/T2))^m;% 闭合残差 T2 = fzero(fT2, [0.5*TN, T1]); % 反解切换转矩 z2 = root(2*TM/T2); % ---------- 3. 各级临界转差率、总电阻、分段电阻 ---------- sm = z1*(z1/z2).^(0:m); % sm(1)..sm(m+1),末项应等于 sm0 Rtot = R2*sm/sm0; % 各级转子回路总电阻 rseg = -diff(Rtot); % 每级切除的电阻段 sw = sm(1:m)/z2; % 各级切换时的转差率 nsw = (1-sw)*ns; % 切换转速 r/min fprintf('sN=%.4f R2=%.4f ohm sm0=%.4f\n', sN, R2, sm0); fprintf('T1/TN=%.3f T2/TN=%.3f\n', T1/TN, T2/TN); fprintf('分段电阻 r = [%.4f %.4f %.4f] ohm\n', rseg); fprintf('切换转差率 = [%.4f %.4f %.4f]\n', sw); fprintf('切换转速 = [%.1f %.1f %.1f] r/min\n', nsw);脚本的逻辑和参数说明:
root(K)把「u + 1/u = K」这个二次关系封成一个匿名函数,凡是出现转差率比值的地方都复用它,避免手写求根公式时选错根。fT2是闭合残差:末级临界转差率减固有临界转差率。fzero的搜索区间取[0.5*TN, T1],两端残差异号,收敛很稳。sm用向量化写法一次算出全部 m+1 个临界转差率,最后一项如果和sm0差在 1e-3 以内,说明级数和 T1 的搭配是自洽的。rseg是每级切除的电阻段,也就是实际电阻箱里对应的三档阻值,接仿真模型时直接用这三个数。
按上面这组参数跑出来是:R2 = 0.0641 Ω,s_m0 = 0.1243,T1 = 1.9 T_N,T2 ≈ 1.17 T_N,三段电阻分别约 0.393 Ω、0.176 Ω、0.079 Ω,切换转差率约 0.448、0.201、0.090,换算成转速就是 414、599、682 r/min。这三个转速点就是稍后 Simulink 里断路器动作的目标时刻。
3. 在 Simulink 里搭出绕线式电机转子串电阻起动模型
3.1 Asynchronous Machine (SI Units) 绕线转子模式的参数表怎么填
模块在 Simscape Electrical → Specialized Power Systems → Machines 库下,Asynchronous Machine (SI Units)。双击后把Rotor type从默认的 Squirrel-cage 改成 Wound-rotor,模块会多出三个转子输出端子,这是接外接电阻的前提。
参数按下面的表填,数值沿用第 2 章那台 30 kW 电机:
| 参数项 | 填入值 | 说明 |
|---|---|---|
| Nominal power, L-L voltage, frequency | [30e3 380 50] | 容量、线电压、频率 |
| Stator resistance and inductance [Rs Lls] | [0.15 0.0012] | 定子每相电阻与漏感 |
| Rotor resistance and inductance referred to stator [Rr' Llr'] | [0.148 0.0012] | 折算到定子侧的转子参数 |
| Mutual inductance Lm | [0.09] | 励磁电感,决定空载电流大小 |
| Inertia, friction factor, pole pairs [J F p] | [0.6 0.01 4] | 转动惯量决定切换时刻的早晚 |
| Initial conditions | [1 0 0 0 0 0 0 0] | 从静止起动的稳态初始化 |
这里最容易填错的是Rr'。它是转子每相电阻折算到定子侧的值,折算系数取电压比平方:k² = (UN/E2N)² = (380/250)² ≈ 2.31,所以 Rr' ≈ 0.0641 × 2.31 ≈ 0.148 Ω。外接电阻接到转子端口时,也要按同一基准给值,否则等效到定子侧的电阻会差 2.31 倍,转速曲线会明显偏慢。
注意:判断基准是否一致有个简单办法——先把转子端口短接跑一次空载仿真,从电磁转矩曲线上看最大转矩出现在哪个转差率;如果出现在 0.124 附近,说明基准对了,如果跑出来是 0.05 左右,说明外接或折算差了一个系数。
3.2 转子侧三段电阻与三个断路器的接线方式
转子三个端子各接一条支路,每条支路上串三段电阻:Three-Phase Series RLC Branch,把 Branch type 设成 R,阻值依次填 0.393、0.176、0.079,单位 Ω。三段之间做串联,末端短接成星点,这样转子回路就是星形接法。
切除动作靠Three-Phase Breaker完成,接线方式是断路器与电阻段并联:
| 切除顺序 | 被短接的电阻段 | 断路器接法 | 动作效果 |
|---|---|---|---|
| 第一级 | 0.393 Ω | 并联在该段两端 | 闭合后该段被短路,转子总电阻降到 0.255 Ω |
| 第二级 | 0.176 Ω | 并联在该段两端 | 闭合后总电阻降到 0.079 Ω |
| 第三级 | 0.079 Ω | 并联在该段两端 | 闭合后转子回到固有电阻 0.0641 Ω |
断路器默认的Switching times是固定的时间序列,比如 [0.6 0.9 1.2]。但三相绕线式电机从起动到第三级切换的实际时刻取决于转动惯量和负载转矩,写死的时间往往对不上设计转速点。更稳妥的办法是把 Breaker 的External控制端打开,用外部信号触发。
3.3 用转速反馈触发断路器切除电阻
从电机模块的m端口引出测量信号,经过Machines Measurement Demux选Speed wm,得到转子机械转速。把转速和三个阈值分别比较,得到三个 0/1 触发信号,送到三个Three-Phase Breaker的外部控制端。转速阈值的单位是 rad/s,必须把设计转速换算过去:
% 转速阈值换算:design speed (r/min) -> mech speed (rad/s) p = 4; % 极对数 ns = 750; % 同步转速 r/min n_sw = [414 599 682]; % 第 2 章算出的三级切换转速 w_sw = n_sw*2*pi/60; % 对应机械角速度 rad/s disp(w_sw) % 结果约为 [43.4 62.8 71.4] rad/s逻辑说明:每个 Breaker 的外部控制端接收非零信号时闭合。三个比较器都取「转速 ≥ 阈值」的输出,接上合适的一阶延迟(Transport Delay或Unit Delay)避免在整定瞬间抖动。三段的先后顺序由阈值大小天然保证——转速先过 43.4,再过 62.8,最后过 71.4,不会出现顺序错乱。
如果只想快速验证曲线形状,也可以先在 Breaker 里填固定切换时间,从第一次重跑结果里读出实际切换时刻再回填,这样迭代两次就能对齐。
3.4 求解器与仿真步长的选择
电力电子和电机模型混在一起,用变步长 ode23tb 最省事:Max step size取 1e-4 s,Relative tolerance取 1e-4。如果想把切换瞬间的电流尖峰测准,可以把最大步长压到 1e-5 s,仿 2 s 大约多花两三倍时间。
powergui模块保留连续模式即可。用离散模式时,采样周期要小于 1e-5 s,否则断路器动作的那一步会被跨过去,波形上会看到切换点被"挪"了一格。
4. 三条曲线怎么读:定子电流、转速、电磁转矩
4.1 起动过程的四个阶段与曲线特征
从Machines Measurement Demux里勾出 Stator currents (is_abc)、Rotor currents (ir_abc)、Rotor speed (wm) 和 Electromagnetic torque (Te),接到示波器。理想情况下的波形按四个阶段走:
| 阶段 | 转子总电阻 | 转速区间 | 定子电流特征 | 电磁转矩特征 |
|---|---|---|---|---|
| 第 1 级 | 0.712 Ω | 0 → 414 r/min | 从约 2.0 I_N 缓降到 1.2 I_N | 先升后降,起点接近 1.9 T_N |
| 第 2 级 | 0.255 Ω | 414 → 599 r/min | 在切换点有一次小跳升 | 切换瞬间从 1.17 跳回 1.9 T_N |
| 第 3 级 | 0.079 Ω | 599 → 682 r/min | 跳升幅度略大于上一级 | 同上,跳升回 1.9 T_N |
| 固有特性 | 0.0641 Ω | 682 → 725 r/min | 平滑收敛到空载或负载电流 | 平滑收敛到负载转矩 |
三条曲线的判读顺序一般是"先看转矩、再看电流、最后看转速"。转矩曲线上每个跳升点对应一次电阻切除,跳升后的峰值就是设计里的 T1;如果跳升峰值逐级变小,说明后段电阻切除得过晚,转速已经接近额定,转矩提升空间不够。
4.2 参数填错的典型波形
- 转速一直上不去、停在 300 r/min 左右:外接电阻按实际值接入,没有乘折算系数 k²,等效电阻偏小,转矩上不去。解决办法是把三段电阻都乘 2.31 再填。
- 转速冲过同步转速:转动惯量填得太小,或者初始条件里机械量给了非零值。把 Initial conditions 里的机械量清零,或者把 J 从 0.1 提到 0.5 以上。
- 电磁转矩全程为负:定子相序接反了。三相电源模块和电机模块之间的 A、B 相对调,或者把电源频率改成 −50 Hz(不推荐,只作为诊断手段)。
- 切换点没变化、曲线像一条直线:断路器根本没动作。检查外部控制信号是否为零,或者断路器
Initial state是否设成了闭合状态(这样从 t = 0 开始转子就是短接的)。 - 定子上电后电流在几毫秒内冲到 1e4 量级:外接电阻给得太大,等效到定子侧的阻抗远大于励磁阻抗,数值上出现刚性。把外接电阻先减半试跑。
4.3 仿真报错与不发散的排查顺序
Simulink 跑这种模型常见的报错有两类:代数环和求解器步长过小。碰到报错按下面的顺序过一遍:
- 检查转子三条支路是否有一端悬空。绕线转子必须星形短接,悬空会让节点方程无解。
- 检查
powergui是否只放了一个。模型里放两个powergui会直接报初始化失败。 - 给断路器并联一个
snubber resistance,取值 1e6 Ω,并联电容取 inf。默认值是 ok 的,但改动过就要确认。 - 求解器从 ode23tb 换成 ode15s 试一遍。ode15s 对刚性系统更稳,但会更慢。
- 把最大步长从 1e-4 逐步压到 1e-5,看报错是否消失在某个步长以下,能找到是哪一步动作引起的不收敛。
如果波形上转速和转矩都收敛,只是定子电流有毛刺,那通常不是求解器设置问题,而是断路器本身的开关过程引起的,加大 snubber 电容或者用一个低通滤波读电流就能压掉。
5. 从仿真反推工程:折算校验与级数批量扫描
前面所有计算都依赖一个假设:折算系数 k² 是常数。工程上变压器或转子开路电压的实测值会和铭牌有偏差,直接照搬会让电阻箱选型偏大或偏小。一个可靠的校验办法是把仿真退化成"零外接电阻"的单点工况——转子端口直接短接,跑一次空载加速,从转矩-转速曲线上读出最大转矩对应的转速,反推 s_m。如果读到的 s_m 和用铭牌算的 s_m0 相差超过 5%,说明 Rr' 或 Lm 中至少有一个参数需要按实测修正,而不是去改外接电阻。
批量扫参数用脚本最省事。把第 2 章的电阻计算逻辑封成函数,用两层循环把 T1 和 m 都扫一遍,输出 T2/TN,一眼就能看出哪些组合满足 T2 ≥ 1.1 T_L:
% 扫描 T1(0.85~0.95 TM)和级数 m(2~5),输出可用的切换转矩组合 TN = 30e3/(2*pi*725/60); TM = 2.0*TN; Tm_load = 0.8*TN; sm0 = 0.1243; root = @(K) (K + sqrt(K.^2-4))/2; fprintf(' T1/TN m T2/TN 是否满足 T2>=1.1*TL\n'); for T1 = 0.85*TM : 0.025*TM : 0.95*TM for m = 2:5 z1 = root(2*TM/T1); f = @(T2) sm0 - z1*(z1/root(2*TM/T2))^m; if f(0.4*TN)*f(T1) > 0, continue; end % 无解直接跳过 T2 = fzero(f, [0.4*TN, T1]); flag = (T2 >= 1.1*Tm_load); fprintf('%8.3f %4d %8.3f %s\n', T1/TN, m, T2/TN, string(flag)); end end脚本里Tm_load是负载转矩,f(0.4*TN)*f(T1) > 0用来跳过闭合方程无解的参数组合,避免fzero抛异常。跑到结果里,0.85 倍 T_M 搭配 m = 3 那一档通常满足切换转矩约束,0.95 倍 T_M 搭配 m = 2 大概率会把 T2 压到负载转矩以下。
选定组合之后还有一步收尾:把电阻值乘上实际电网电压与铭牌电压的比值再取整,因为电阻箱是按欧姆档位生产的,取整后的每档阻值与仿真值差 3% 以内对起动时间的影响通常在 5% 以内,可以接受;差得再多就要重算切换转差率并把断路器阈值一并更新,否则最后的转速收敛点会偏离额定工作点,模型里的负载转矩和电阻箱实际出力就对不上了。
本文还有配套的精品资源,点击获取