☰
三相异步电机调压调速Simulink仿真:晶闸管触发与PI闭环完整方案
2026/10/20 17:21:02 网站建设 项目流程

刚把一个带转速闭环的三相异步电机调压调速系统在 Simulink 里完整跑通,包括晶闸管移相触发、主电路搭建、PI 速度环整定,还有开环对比和负载扰动测试。这篇文章就把整个项目的来龙去脉、建模思路、参数设置和调试中踩过的坑一次性写清楚,给准备做类似仿真的朋友一个可以直接参考的完整方案。


1. 项目概述与方案选型

1.1 调压调速的基本原理

三相异步电机调速,很多人第一反应就是上变频器——变频调速性能确实好,VVVF 控制能把机械特性压得很硬,低速也能输出足够转矩。但变频器成本高、结构复杂,在风机、水泵这类只要求“把转速降一段、对低速性能不苛刻”的场合,多少有点杀鸡用牛刀。三相异步电机调压调速系统就是另一种思路:不动频率,只改变定子端电压,让电机工作点沿机械特性曲线移动,实现降速。

核心依据是异步电机的电磁转矩公式。简化工程表达为:

Te ≈ K × (U1 / s)² 的某种形式,更准确一点说,最大转矩 Tm 与定子电压 U1 的平方成正比,而临界转差率 sm 与电压无关。这意味着电压降低后,整条机械特性曲线“塌下去”,但峰值转矩对应的转差率位置基本不变。负载转矩不变时,电机的稳定工作点被迫朝着转差率增大的方向移动,转速 n = (1-s)n1 自然就降下来了。

打个比方这就是水龙头:全开时水压最大、流量最大,拧小阀门后水流变细,但管道本身没变。电机的“管道”就是自身的机械特性,晶闸管调压就是那个水龙头阀门。

但这里有一个关键限制:普通异步电机转子电阻小,机械特性在额定转差率附近很硬,靠调压能压下去的转速范围其实很窄。额定转差率 4% 的电机,电压降到一半,转速可能只降了百分之几,再继续降低电压,最大转矩撑不住负载就直接堵转。所以工程上调压调速一般配高转差率电机(绕线式或深槽式),转速可调范围能到 70%~100% 同步转速,我这个仿真项目用的就是一台高转差特性参数的小功率样机参数。

1.2 为什么选择晶闸管调压方案

三相异步电机调压调速的核心功率器件是晶闸管,每相用两只反并联,或者用一只双向晶闸管,串在定子回路里。控制触发角 α 从 0° 到 150° 左右变化,输出电压有效值从接近额定值连续往下调。这个方案在几种调速手段里属于典型的“够用就好”。

对比一下主流方案。变频调速:性能最好,转矩、转速都能精确控制,但硬件成本高,主回路需要整流、滤波、逆变三级结构,控制算法也复杂。串级调速:效率高,适合绕线转子电机的大功率场合,但系统体积大,只适用于调速范围不宽的恒转矩负载。定子调压调速:结构最简单,主回路几组晶闸管就能搭起来,控制逻辑就是一个 PI 加触发电路,成本低、可靠性高、维护容易。

它最大的限制是转差损耗大。降速本质上是把一部分功率消耗在转子电阻上,所以低速时电机发热明显,不适合长期低速运行。这个缺点在风机水泵类负载面前又被淡化了一些:这类负载的转矩和转速平方成正比,低速时负载转矩很小,电机发热没有恒转矩负载那么严重。所以三相异步电机调压调速至今在风机、水泵、搅拌机这类平方转矩负载场合仍然有一席之地,也很适合作为仿真研究和教学实验的经典课题。

1.3 仿真平台的搭建思路

做这个项目我选择了 Matlab/Simulink 里的 Simscape Electrical 工具箱,没有自己从零写微分方程。原因很现实:异步电机的 dq 模型虽然不算复杂,但要把三相晶闸管触发、电力电子开关换流、PI 闭环和电机电气方程全部在代码里做离散化,工作量并不小,调试周期也长。Simscape Electrical 提供了现成的三相异步电机模块、晶闸管模块、电压电流测量模块,主电路部分拖拽搭建就行,能把精力集中在控制策略和参数整定上。

整个系统的思路是自顶向下分层:最外层是转速给定和 PI 闭环;中间层是触发控制,把 PI 输出的 α 角换算成与电源同步的晶闸管触发脉冲;底层是电力电子主电路和电机本体,晶闸管按 α 角导通,改变定子电压,电机转速跟随变化,速度传感器把实际转速反馈回 PI。

仿真中我把控制周期设为 1ms,触发脉冲的分辨率做到 0.1ms 量级,既保证触发角的控制精度,又不至于因为步长太小把仿真时间拖得太长。这一点在后面的参数整定阶段很重要,触发分辨率不够,PI 输出再准,最终作用到晶闸管上也会大打折扣。

2. 系统建模与仿真环境搭建

2.1 电机参数与建模方式选择

电机本体是这个系统的被控对象,参数直接决定了机械特性的形状。我这边仿真用的是一台 2.2kW / 380V / 50Hz / 4 极样机参数,额定转速按 1410rpm 设定,这样同步转速 1500rpm 下额定转差率在 6% 左右,属于高转差类特性,适合调压调速场景。

参数表整理如下:

参数项数值
额定功率2.2 kW
额定电压380 V(Δ接法)
额定频率50 Hz
极对数2
同步转速1500 rpm
额定转速1410 rpm
定子电阻 Rs2.68 Ω
转子电阻 Rr'2.72 Ω
定子漏感 Lls8.2 mH
转子漏感 Llr'8.2 mH
励磁电感 Lm190 mH
转动惯量 J0.02 kg·m²

Simulink 里建模有三种思路:一是直接用 Simscape Electrical 的 Asynchronous Machine 模块,填参数就行;二是用 Simulink 标准库搭 dq 模型,适合要深入分析内部磁链、需要把模型集成到自定义算法里的情况;三是自己写 S-Function,灵活性最高但工作量大。我用了第一种,理由是被控对象是标准电机,重点在调速系统和控制策略,没必要在电机模型内部花费过多精力。

有一点要注意:Asynchronous Machine 模块的电气端口分定子侧和转子侧,转子侧如果是鼠笼电机就选 squirrel-cage 并把转子端口短接。机械端口输出转速和电磁转矩,转速单位是 rad/s,后面接 PI 闭环时记得除以 2π/60 换成 rpm,或者把给定值也统一到 rad/s,否则反馈量纲对不上,PI 怎么调都调不好。

2.2 晶闸管调压主电路与触发同步

三相调压主电路的结构是每一相用两只晶闸管反并联串联在定子进线端,三相共六只晶闸管。触发角 α 以本相电压过零点为基准开始延时移相,α 越大,晶闸管导通区间越窄,输出电压有效值越低。

对于单相纯阻性负载,输出电压有效值与触发角的关系近似为:

U_out = U_in × √(1 - α/π + sin(2α)/(2π))

这个公式很直观地说明 α=120° 时输出电压已经降到额定的五成左右。但三相异步电机是感性负载,电流滞后电压,晶闸管在电流过零时才自然关断,实际输出电压的有效值需要用数值积分或者直接看仿真波形来标定。我在项目里专门做了一个“触发角-输出电压有效值”的离线扫描,把 α 从 30° 到 150° 每隔 10° 跑一次稳态,记录下来发现 120° 后输出电压下降很快,而且电流波形断续严重,转矩脉动明显变大。所以控制端把 α 限幅到 30°~150°,避免进入深度移相的不稳定区域。

触发电路在 Simulink 里我这样实现:用三相电压源模块的相电压作为同步参考,通过 Clock 和过零检测模块获得每个周期的过零点时刻,然后加上与 α 对应的延时时间,生成脉冲宽度 60° 的双脉冲或宽脉冲触发信号。之所以不用现成的同步六脉冲发生器,是因为那个模块主要是给整流电路设计的,触发逻辑和调压电路存在差异,直接拿来用在三相交流调压上容易出相位错乱。

2.3 控制系统与触发角接口

PI 闭环输出的是“要多少电压”的抽象量,触发电路需要的是“具体多少度触发角”,中间隔着一层非线性映射。我在 Simulink 里用一维查找表完成这个映射:横坐标是目标电压标幺值,纵坐标是 α 角,数据来自前面做的离线扫描。

控制信号流是这样的:转速给定与反馈求差得到误差,误差进离散 PI 控制器,PI 输出限幅到对应 α 范围的数值,再经过查找表转成触发角,最后送进触发脉冲生成子系统。PI 模块我用的 Simulink 标准 PID Controller,采样周期 1ms,输出限幅为了配合触发角做了归一化处理——这点很关键,因为后续整定时 P、I 参数的大小和信号量纲直接相关,不统一的话,换一种映射方式整套参数就全废了。

我在系统里还加了一个手动/自动切换开关,调试时先切手动给定一个固定 α,验证主电路和电机模型正确;确认底层没问题后再切自动,让 PI 闭环接管。这个习惯帮我避开了很多“闭环一启动就发散”的问题,因为先把开环打通,问题范围一下就缩小了。

3. PI 闭环控制与参数整定

3.1 为什么要闭环,闭环变量选什么

开环调压调速有个致命问题:触发角 α 固定时,输出电压有效值固定,但电机转速会随负载变化大幅波动。负载变大,转差率增大,转速下降;负载变小,转速回升。风机水泵这类负载还稍微好一点,恒转矩负载下转速变化简直无法接受。所以工程上的调压调速系统基本都带闭环。

闭环变量最常用的是转速,这也是最直接的用户需求。转速反馈信号从电机机械端口的 velocity 信号引出,经过单位换算后和给定信号送入比较器。如果想进一步限制过载,可以在转速环外面再套电流环或转矩限幅,但那个复杂度就上去了。我先把单转速环做扎实,这也是整个系统的核心回路。

PI 控制在这个系统里的作用很典型:比例项提供快速响应,误差大时立刻调整触发角让电压变化,驱动转速往给定方向靠;积分项负责消除稳态误差,只要转速和给定有偏差,积分累积不停修正,直到偏差为零。调压调速系统的对象模型本质上有非线性,PI 不能保证各种工况下都是最优,但工程实践表明,在一个工作点附近调好的 PI,对中等范围的转速阶跃和负载扰动已经有足够的适应能力。

3.2 参数整定的具体过程

PI 参数我用的方法是先比例后积分试凑,配合临界比例度法做初始估计。步骤分享一下。

先把 Ki 设成 0,只留比例项。Kp 从一个较小的值开始,比如 5,观察阶跃给定下的转速响应。逐步加大 Kp,每次记录超调量和振荡情况。我这里的系统在 Kp 到 38 左右时转速开始出现等幅振荡,振荡频率大约 2.5Hz,这个 Kp 就是临界增益,对应的振荡周期 T_crit ≈ 0.4s。按照齐格勒-尼科尔斯经验公式,Kp 取临界增益的 0.6 倍左右,也就是 23,积分时间 Ti 取 0.5 倍振荡周期,也就是 Ki = Kp / Ti ≈ 23 / 0.2 ≈ 115。这个初始值直接投入仿真后系统能稳定,但超调偏大,需要微调。

最终我停在 Kp=20,Ki=30 这组参数上。为什么 Ki 比经验值小这么多?因为调压调速系统存在触发角和输出电压的非线性,积分作用太强很容易在 α 限幅处积分饱和,导致转速恢复过程出现严重过冲。适当调小 Ki 后,响应变缓一些,但鲁棒性明显提升,负载突变后转速下跌幅度更小、恢复过程更平顺。

整定过程中支了个小工具脚本,自动从 workspace 读阶跃响应数据,计算超调量、调节时间和稳态误差,方便对比每组参数的性能。

% 参数扫描辅助脚本(示意) rpm_ref = 1350; rpm_meas = out.velocity.Data(:,1) * 60 / (2*pi); t = out.velocity.Time(:,1); idx = find(t > 1.0); % 跳过启动段 info = stepinfo(rpm_meas(idx), t(idx), rpm_ref); fprintf('超调量: %.1f%%, 调节时间: %.2fs, 稳态误差: %.1frpm\n', ... info.Overshoot, info.SettlingTime, abs(rpm_meas(end)-rpm_ref));

3.3 阶跃响应与性能评估

整定完成后做了两个典型性能测试。第一个是给定转速从 1450rpm 阶跃到 1350rpm,模拟用户直接调速的操作。记录到的响应:调节时间约 1.6s,超调量控制在 4% 以内,稳态误差在 ±3rpm 以内。第二个是负载转矩从 5N·m 阶跃加到 15N·m,模拟运行中负载加重。转速最大跌落 28rpm,PI 在约 1.2s 内把转速拉回给定值。

性能指标数值
阶跃超调量< 4%
调节时间(2% 误差带)约 1.6s
稳态转速误差±3 rpm
负载扰动最大跌落28 rpm
负载扰动恢复时间约 1.2s

这个性能对于风机水泵类调速完全够用。相比变频调速,响应时间和稳态精度都差一些,但系统成本、复杂度和调试难度也完全不在一个量级。做这个项目的目的不是证明调压调速比变频好,而是在合适场景下把这种简单方案做扎实、做可用。

4. 仿真结果分析与问题排查

4.1 开环与闭环的性能对比

我把开环和闭环在同样条件下做了对比。开环时固定 α=70°,先让电机空载稳定在约 1450rpm,然后突然加 15N·m 负载,转速直接跌到 1305rpm 左右,下降幅度超过 10%。闭环同样从 1450rpm 指令开始,加同样的负载后转速短暂下跌到 1422rpm,随后在 PI 调节下回到 1447rpm,恢复后误差只有 3rpm。

这个对比直观说明了调压调速为什么必须有闭环:开环系统完全靠电机自身的转差率特性去适应负载,负载一大转速就失控;闭环则把转速校准当成控制目标,负载扰动进来后主动调整触发角和电压来对抗转速偏移。开环唯一的优势是控制逻辑极简,没有反馈、没有参数整定,在某些对转速精度完全无要求的场合还能用。

4.2 不同负载特性下的表现差异

调压调速对负载类型非常敏感,这一点在仿真里体现得很充分。恒转矩负载下,调压降速到 70% 额定转速附近时,电磁转矩需要保持额定值,但此时电压已经降到额定的七成左右,最大转矩余量严重不足,稍微有点扰动电机就容易失步;而且转差率大,转子铜耗剧增,长时间运行电机发热严重。仿真中恒转矩负载降到 1100rpm 以下时,转速振荡幅度变大,最终直接堵转。

风机类负载就完全不同。因为负载转矩 T_load ∝ n²,转速降下来后负载转矩也大幅下降,比如转速降到 70%,负载转矩只有原来的约一半,电机的电磁转矩需求跟着降低,反而能够在较低电压下稳定运行。这也是调压调速在风机行业能活到今天的原因。我仿真里特意设置了一个转速-转矩平方关系的负载模型,和恒转矩负载做了对照,两条机械特性曲线匹配情况非常清晰,建议你自己跑的时候也加这个对照,会有很直观的认识。

4.3 常见问题与排查技巧实录

整个项目调试下来遇到了不少问题,整理成一张速查表,都是实测排查过的情况。

现象可能原因排查与解决方法
系统一闭合 PI 就发散反馈量纲不对、PI 极性反了先开环验证控制方向,确认电压升高转速升高,再闭合
晶闸管输出电压波形严重不对称触发脉冲与电源相位不同步检查过零检测环节的滤波延时,统一时钟基准
低速时转矩脉动大、波形断续α 过大导致电流断续限制 α 上限(我这里 150°),或对 PI 输出做动态限幅
转速稳态误差一直消不掉积分作用太弱或积分被限幅卡死检查 Ki 是否偏小,确认 PI 输出限幅没有持续饱和
负载突加后转速长时间不恢复积分项偏弱,Kp 偏小微调 Kp 提供更快的转矩补偿,再微调 Ki
仿真速度慢、波形抖动步长太小或求解器不合适用 ode23t 或 ode15s,步长上限设 0.1ms,触发分辨率独立设置

这里挑几个展开说。第一个是极性反了的问题,我最早搭建闭环时把 PI 输出直接接到 α 查找表,没注意 α 增大电压降低这个反相关系,结果转速误差越大电压越低,系统瞬间崩溃。解决办法是把 PI 输出量定义成“目标电压标幺值”,电压增大对应 α 减小,查找表按这个方向映射,系统才稳定下来。

第二个是积分饱和。调压调速特别容易出现 α 顶到限幅值的情况,比如低速目标下需要 140° 以上的触发角,PI 输出持续饱和,积分项堆积了很多误差,等负载减轻转速开始回升时,积分项还要慢慢释放,导致转速过冲严重。我在 PI 模块里启用了 anti-windup(反计算抗饱和),并把限幅做成与当前转速误差相关的动态限幅,效果比固定限幅好不少。

再一个是求解器选择。Simulink 里含晶闸管这种电力电子开关的系统天然是刚性系统,开关动作瞬间数值变化剧烈,用普通变步长求解器容易在导通/关断边界收敛失败。我最终用 ode23t,最大步长 0.1ms,触发的同步精度单独控制,仿真既稳又不慢,一个 5s 仿真时长的算例大约一两分钟就能跑完。

5. 实操总结与扩展方向

这个项目做完,我对调压调速的理解比最初只是看课本时深了不少。最大的体会是:这类“简单”的系统,真正麻烦的往往不在控制理论本身,而在执行环节的工程细节。PI 整定很快,看着阶跃响应几个来回就调好了;反而是晶闸管触发同步、α 与输出电压的非线性补偿、积分饱和这些看起来不起眼的问题,消耗了大部分调试时间。

如果后面想继续做深,有几个方向值得尝试。一个是加电流内环形成转速电流双闭环,外环给电流指令、内环快速限流,系统的过载保护和动态响应都会上一个台阶。另一个是用遗传算法或粒子群对 PI 参数做自动寻优,不需要手动反复试凑,特别是系统要覆盖较宽转速范围时,分段 PI 加自动切换会非常实用。还有就是把调压调速和软启动功能结合,同一个主电路,起动阶段用缓升 α 限制起动电流,运行阶段切入闭环调速,一机两用。

最后分享一个小技巧:做这类仿真项目,强烈建议把主电路、触发控制、PI 控制做成三个独立子系统,用 Signal 标签和 Goto/From 模块连接信号。这样做的好处是调试时可以单独给每个子系统输入测试信号,比如直接给一个固定 α 测主电路,或者给一组已知触发序列测脉冲生成逻辑,出了问题一眼就知道在哪一层。我在项目后期就是靠这个分层结构,把排查问题的时间压缩到了原来的三分之一。

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

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

立即咨询