恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
电励磁同步电机仿真:启动功角振荡与能耗制动全解析
首页
资讯中心
/
电励磁同步电机仿真:启动功角振荡与能耗制动全解析
电励磁同步电机仿真:启动功角振荡与能耗制动全解析
发布时间:2026/9/9 18:09:19
最近把电励磁同步电机从理论书搬进Python仿真完整跑了一遍从启动到能耗制动的全过程回头再看之前常玩的永磁同步电机确实觉得电励磁更有意思。标题里说的“启动抽风”和“能耗制动当发电机用”这两个点一个讲功角振荡一个讲能量转换背后都是永磁电机很难体现出来的物理细节。如果你正在学电机控制、做异步机或同步机的仿真或者只是好奇为什么有人愿意多花精力去搞电励磁这篇文章应该能给你一个比较完整的答案。1. 电励磁和永磁差别到底在哪一层1.1 磁链从哪来决定了玩法上限永磁同步电机的转子磁链来自永磁体一出厂就固定了虽然省了励磁绕组和励磁电源但“自由度”也少了一大截。电励磁同步电机的转子磁链靠励磁绕组中的直流电流产生磁链大小可以在线调节。这个差别听起来只是一个来源问题实际涉及调速范围、过载能力、成本结构甚至故障保护策略。我做仿真的时候最直观的感受是永磁电机模型里把永磁磁链当常量扔进方程就完事而电励磁电机模型里多了一个励磁磁链状态量甚至要考虑励磁绕组的时间常数。多一个维度意味着调参空间大很多但相应的坑也多很多。打个比方永磁电机像背一个固定重量的背包爬坡能力有限想轻装只能砍负载电励磁电机像背一个可调配重包按路况实时调整重量但你需要一套控制逻辑去决定什么时候加重、什么时候减重。1.2 电励磁在工程上值钱的地方先说成本。永磁体尤其是钕铁硼这类稀土材料价格波动大而且供应链风险不低。电励磁电机转子是铁芯加绕组材料成本稳定很多对成本敏感的场合会把电励磁方案列为备选。再说弱磁能力。永磁电机的永磁磁链无法减小高速弱磁只能依靠定子电流的d轴分量去抵消永磁磁链这会产生很大的电流压力而且弱磁区域越深效率越差。电励磁电机可以主动降低励磁电流从根本上减小转子磁链高速范围天然更宽。仿真里调励磁电流就能看到弱磁效果这种“直接控制磁场”的感觉是永磁电机给不了的。还有一个经常被忽略的点短路安全。永磁电机在高速短路时永磁磁场无法消除定子会持续产生反电动势和短路电流处理起来很棘手。电励磁电机只要切断或快速灭励磁磁场基本消失安全性好不少。这也是它在一部分牵引和船舶推进场合被重用的原因。当然电励磁也有代价励磁绕组要占空间、有铜损、需要励磁电源整体效率通常不如永磁。这不矛盾关键看你想要什么。1.3 为什么仿真它会更有意思控制永磁电机你主要控制的是定子电流的d/q轴分量。控制电励磁电机时你还要同时控制励磁电流。多一个可调自由度就可以玩出很多花样低速大转矩时加强励磁、高速弱磁时去励磁、功率因数优化、效率优化等。仿真阶段多出的这个自由度直接反映在方程里多一个一阶惯性环节。别小看这个惯性启动时励磁磁链建立需要时间这个动态过程会让系统的功角出现明显波动正是这种波动把“抽风”现象暴露出来。2. 启动时的“抽风”本质是功角在打架2.1 同步电机是怎么转起来的电励磁同步电机的启动方式主要分三种异步启动、变频启动、辅助启动。异步启动常见于大中型电机直接并网转子有阻尼绕组定子接通电网后旋转磁场在阻尼绕组中感应出电流产生异步转矩把转子拉起来。转子转速接近同步速后给励磁绕组通入直流电流建立转子磁场然后靠同步转矩牵入同步。变频启动则是让定子电压频率从0开始平滑上升转子跟着磁场一步步跑起来这种方式对电网冲击小是现在调速系统的主流。不管哪种方式励磁投入的时机和负载大小都会影响能不能顺利牵入同步。牵入失败或者牵入后发生振荡就是我标题里说的“抽风”。2.2 功角振荡非线性弹簧效应同步电机电磁转矩与功角的关系是一个正弦函数功角在0到90度之间时转矩随功角增大而增大这相当于“弹簧越拉越紧”但一旦超过90度转矩反而随功角增大而减小变成负刚度区系统进入不稳定区域。如果负载突然增加功角需要变大才能产生更大的电磁转矩去平衡负载。但转动部分有惯性功角很容易冲过头冲过90度之后同步转矩下降转子又往回摆形成振荡。阻尼绕组或者控制器里的阻尼项可以消耗这部分振荡能量但阻尼不足、励磁建立太慢或者负载冲击太大时振荡就会持续甚至失步。我在仿真里看到最直观的现象是负载突增的瞬间转速和功角都会来回摆动像一个人拉一把太硬的弹簧拉过头又被弹回来。这个摆动过程如果持续好几个周期机械噪声和电流冲击都会非常大这就是工程现场说的“电机抽风”。2.3 仿真中怎样体现抽风仿真中复现抽风很简单让电机在同步运行状态突然加一个大负载或者让励磁电流参考值阶跃然后观察功角和转速的响应波形。代码如下会做这几件事启动后先空载稳定运行在1.2秒时突加额定负载就能看到功角在那一段时间剧烈摆动。这个现象在永磁电机仿真中也会出现但永磁磁链恒定问题的可调手段只有定子电流电励磁电机多了一个“临时加大励磁”的救火措施这让解决失步的思路更丰富也更考验你对机理的理解。3. 能耗制动断电之后反而成了一台发电机3.1 制动时电机为什么能发电能耗制动的基本操作是断开交流电源把定子绕组通过一只制动电阻短接同时保持励磁电流。此时转子还在转励磁磁场跟着转子转定子绕组切割磁力线产生感应电动势。由于定子回路中只有制动电阻和绕组内阻感应电动势会驱动电流流过电阻电能就消耗在电阻上转化为热量。这个电流又和励磁磁场作用产生电磁转矩方向与转子旋转方向相反所以电机转速快速下降。整个过程能量流向是转子的机械动能 → 电能 → 电阻热量。从能量角度看电机确实工作在发电状态只是发的电没有回馈电网而是就地消耗掉所以叫“能耗”制动。仿真里处理这个工况很清爽把外施电压从电源电压切换为“电阻压降的负值”也就是ud -Rbrk * iduq -Rbrk * iq。方程形式不变但物理场景已经从电动状态切到发电状态。3.2 制动电阻怎么选才合适制动电阻阻值越小相同感应电动势下电流越大制动力矩越强停车越快。但阻值太小电流冲击可能超过绕组承受能力而且电阻发热极其严重。阻值太大制动电流小制动力矩弱停车时间拖得很长。工程上一般把起始制动电流控制在额定电流的2到3倍左右。以一个简单估算为例如果额定相电压是100V额定电流是10A制动瞬间感应电动势接近额定反电动势那电阻大致选择100V/(20A~30A)也就是3到5欧姆。实际还要考虑转子位置、转速、温度等因素但这个量级判断够用。我在仿真里分别试过0.5欧姆和5欧姆的制动电阻0.5欧姆时转速下降很快但定子电流峰值大大超出额定5欧姆时电流温和但6秒仿真结束转速还剩下不少看起来像“刹不住”。折中下来选了1欧姆制动电流约2倍额定效果比较符合直觉。3.3 和回馈制动、反接制动的取舍能耗制动结构简单不需要能量回馈装置成本低但能量全部变成热量浪费掉。回馈制动要把能量送回电网或公共直流母线效率高但需要额外的变流器和同步控制系统复杂度上升。反接制动实现简单、制动转矩大但电机反转风险高能量损耗甚至比能耗制动还大。电励磁电机做能耗制动有一个额外优势可以在制动过程中调节励磁电流控制制动转矩的大小。想要快速停车就维持甚至加强励磁想要平滑减速就逐步降低励磁。永磁电机的磁场不可调制动曲线的调整手段就少很多。4. 仿真模型怎么搭三个微分方程加一段切车逻辑4.1 转子dq坐标系下的方程仿真模型我用的是转子dq坐标系也就是把坐标固定在转子上跟着转子一起转。这样做的好处是三相对称交流量在dq坐标系下变成近似直流量方程从交流耦合变成直流耦合数值求解清爽很多。定子d/q轴电压方程写出来是这样Ld * did/dt ud - Rs * id we * Lq * iqLq * diq/dt uq - Rs * iq - we * (Ld * id psi_f)其中we是电角速度等于极对数乘以机械角速度。psi_f是励磁磁链由励磁电流决定。这里我做了两个常见简化忽略磁阻转矩即Ld等于Lq励磁动态用一阶惯性描述表达式为dpsi_f/dt (Lmd * if_ref - psi_f) / tau_f。前者让电磁转矩简化为Te 1.5 * p * psi_f * iq后者让励磁建链过程有一个真实的时间常数启动和制动时不会瞬间建立或消失。运动方程和功角方程J * dwm/dt Te - TL - B * wmddelta/dt omega_s - p * wm功角delta在这里定义成定子电压矢量相对q轴的电角度。启动时定子电压和转子频率可能不一致delta就会变化一旦delta越过90度同步转矩就不够了失步振荡随之而来。这个delta是观察“抽风”最直接的指标。4.2 参数整定与数值求解的工程经验仿真的状态量选为[id, iq, wm, delta, psi_f]五个。参数我按一个小功率电励磁同步电机量级设置定子电阻0.5欧姆d/q轴电感8毫亨励磁互感0.1亨利转动惯量0.05千克平方米极对数2励磁时间常数0.05秒。有一点必须提醒定子电气时间常数L/R大概在0.016秒左右机械时间常数J/B为25秒两者差了三个数量级。这种系统是刚性的用固定步长很容易数值发散或振荡。我直接用scipy的solve_ivp选RK45并设置max_step0.001rtol和atol收紧一个数量级实际跑下来稳定性很好。如果手写过零欧拉法大概率踩过步长过大的坑。另外励磁磁链初始值必须从0开始如果一开始就赋一个很大的psi_f启动瞬间会产生很大的、不真实的电磁转矩转速直接跳变。这就像实际电机还没励磁就突然接上磁场一样物理上不符合闭合过程。4.3 三段式工况切换怎么组织仿真时间轴分成三段0到1.2秒启动段。定子电压幅值Vm和定子频率omega_s从0线性爬升到额定值负载转矩为0励磁电流参考也从0线性升到额定值。这样电机跟着频率平滑起动功角保持在一个较小值。1.2到1.8秒负载冲击段。定子电压和频率保持额定突加额定负载转矩同时励磁电流维持额定不变观察功角振荡。这正是“抽风”最明显的窗口。1.8到3.0秒恢复/同步稳定段。把励磁电流参考值提高到额定值的1.2倍帮助电机把功角拉回稳定区域。3.0秒以后能耗制动段。定子外施电压切换为制动电阻压降模拟定子绕组经过制动电阻短接励磁电流保持额定转速迅速下降。切换逻辑在微分方程函数里用时间范围判断即可。这种简单粗暴的分段方式很适合做机理教学如果做实际控制器仿真最好用事件函数或者状态机来切换避免在时间边界上出现突兀跳变。5. 完整Python仿真代码与关键行拆解下面这段代码可以直接复制运行需要安装numpy、scipy和matplotlib。为了体现完整流程我把参数、微分方程、求积和绘图都写在一起。import numpy as np from scipy.integrate import solve_ivp import matplotlib.pyplot as plt # ---------- 电机参数 ---------- Rs 0.5 # 定子电阻欧姆 Ld 0.008 # d轴电感H Lq 0.008 # q轴电感H Lmd 0.10 # 定子与励磁绕组互感H J 0.05 # 转动惯量kg*m^2 B 0.002 # 阻尼系数N*m*s p 2 # 极对数 tau_f 0.05 # 励磁绕组时间常数s # ---------- 运行控制参数 ---------- V_nom 100.0 # 定子相电压幅值V omega_s_nom 2 * np.pi * 50.0 T_L_nom 3.0 # 额定负载转矩N*m if_ref_val 5.0 # 额定励磁电流参考A R_brk 1.0 # 能耗制动电阻欧姆 # 状态初值: id, iq, wm, delta, psi_f x0 [0.0, 0.0, 0.0, 0.0, 0.0] def motor_rhs(t, x): id_, iq, wm, delta, psi_f x we p * wm # 电磁转矩忽略磁阻转矩时的简化 Te 1.5 * p * psi_f * iq # ---------- 分段工况 ---------- if t 1.2: # 启动段V/F斜升 k t / 1.2 Vm V_nom * k omega_s omega_s_nom * k ud -Vm * np.sin(delta) uq Vm * np.cos(delta) TL 0.0 if_ref if_ref_val * k elif t 1.8: # 负载冲击段突加额定负载观察功角振荡 Vm V_nom omega_s omega_s_nom ud -Vm * np.sin(delta) uq Vm * np.cos(delta) TL T_L_nom if_ref if_ref_val elif t 3.0: # 恢复段加强励磁帮助牵入同步 Vm V_nom omega_s omega_s_nom ud -Vm * np.sin(delta) uq Vm * np.cos(delta) TL T_L_nom if_ref if_ref_val * 1.2 else: # 能耗制动段定子接制动电阻 ud -R_brk * id_ uq -R_brk * iq TL 0.0 omega_s 0.0 if_ref if_ref_val # 励磁磁链一阶惯性 dpsi_f (Lmd * if_ref - psi_f) / tau_f # 定子电流微分方程 did (ud - Rs * id_ we * Lq * iq) / Ld diq (uq - Rs * iq - we * (Ld * id_ psi_f)) / Lq # 运动方程与功角方程 dwm (Te - TL - B * wm) / J ddelta omega_s - we return [did, diq, dwm, ddelta, dpsi_f] # ---------- 数值求解 ---------- t_span (0, 6.0) sol solve_ivp(motor_rhs, t_span, x0, methodRK45, dense_outputTrue, max_step0.001, rtol1e-6, atol1e-8) t sol.t id_, iq, wm, delta, psi_f sol.y we p * wm Te 1.5 * p * psi_f * iq # ---------- 绘图 ---------- fig, axes plt.subplots(3, 1, figsize(9, 10), sharexTrue) axes[0].plot(t, wm * 60 / (2 * np.pi)) axes[0].set_ylabel(机械转速 r/min) axes[0].grid(True) axes[0].legend([转速]) axes[1].plot(t, Te) axes[1].set_ylabel(电磁转矩 N*m) axes[1].grid(True) axes[1].legend([Te]) axes[2].plot(t, delta * 180 / np.pi) axes[2].set_xlabel(时间 s) axes[2].set_ylabel(功角 deg) axes[2].grid(True) axes[2].legend([delta]) plt.tight_layout() plt.show()代码不长但几个关键点我拆开讲。第一点是定子电压给定方式。启动时我用的是“电压幅值斜坡”加“频率斜坡”给定相位直接由delta变量和转子位置耦合在一起。如果伏频比不合适V/F比太低启动转矩不够太高启动电流偏大。我这里直接让Vm和omega_s按同一比例从0爬升V/F比恒定对应恒压频比控制。第二点是功角delta的定义。ud -Vm * sin(delta)和uq Vm * cos(delta)表示电压矢量超前q轴delta度。delta为0时电压全在q轴最有利于产生转矩。负载加大的时候为了输出更多转矩delta会变大这是同步电机运行的基本规律。第三点是能耗制动段的处理。我没有把外施电压设置为0而是设置成-R_brk * id和-R_brk * iq。原因很简单定子绕组接上制动电阻后感应电流就在这个电阻上产生压降这个压降本身会成为电机端电压的边界条件。这样处理最物理也不需要额外区分“电动”和“发电”的方程形式。第四点是励磁磁链惯性。psi_f的微分方程很重要它模拟了励磁绕组电感导致的励磁电流建立延迟。如果没有这一项启动瞬间psi_f直接跳变到额定值转速上升过程会显得太“假”。对于电励磁电机励磁绕组时间常数是0.05秒不算大但足以在启动早期影响功角轨迹如果把tau_f改大到0.3秒你会看到启动段的功角响应明显变差这也是电励磁电机必须关注励磁动态的原因。6. 跑出来的波形和我在调参时踩的坑6.1 转速、转矩、功角曲线怎么读仿真跑完三张图对应了三个关键维度。转速图上0到1.2秒是一条平滑的爬升曲线说明V/F启动起作用了转子跟着定子频率往上走。1.2秒到1.8秒之间转速会出现明显的上下波动虽然波动幅度不大但频率很高这就是负载冲击下的功角振荡如果你把纵坐标放大能看出转速没有完全稳定在同步速附近。1.8秒之后加强励磁介入转速重新稳住。3秒之后转速开始单调下降并且下降速度越来越慢这是能耗制动转矩随转速降低而减小的自然结果。转矩图上启动段转矩先有一个较小的正向推动力然后负载冲击段转矩开始大幅振荡峰值远超额定值。恢复段转矩慢慢回落到额定附近制动段转矩反向变成制动转矩并随转速下降而衰减。功角图最有意思。启动段功角维持在一个很小的角度说明转子位置跟得上电压矢量。负载突增后功角迅速拉大并振荡如果负载转矩大到让稳态功角超过90度就会失步转速会持续振荡甚至掉速。我在仿真中把负载设为3牛米配合1.2倍额定励磁让功角最终停在60度左右属于“抖了一下但没脱同步”的状态这样既能展示“抽风”又不至于完全失控。6.2 数值发散和单位不一致的坑第一次跑这个仿真时我用的固定步长0.0001秒总时长6秒要跑6万步虽然也能出结果但局部误差控制不好功角曲线末端会出现锯齿状抖动。换成solve_ivp的自适应步长后同样的精度下步数少了很多曲线也光滑了。对于同时包含电气和机械动态的系统自适应步长基本是必须的。单位问题是另一个容易翻车的地方。电角速度是机械角速度乘以极对数转速单位我用的是rad/s但画图时习惯性乘了60/(2pi)转换成r/min。如果漏了一步转速曲线看起来会非常离谱要么高得吓人要么几乎不动。建议所有内部计算统一用SI单位只在绘图和结果展示时做单位换算。还有一个坑是励磁参考值给0导致启动不了。第一次调试时我把启动段if_ref设成了0心想反正转速起来后再加励磁结果电机始终加速不起来因为psi_f一直为0同步转矩始终为0。这个现象本身其实是符合物理的没有励磁磁链就没有同步转矩。实际异步启动靠的是阻尼绕组的异步转矩我的模型里没有专门阻尼绕组所以必须从一开始就建立一定励磁否则启动段永远是“有旋转磁场、无同步转矩”的空转。这也提醒了我简化模型时一定要清楚自己简化掉了哪些物理机制否则会得出看似正确但不完整的结论。6.3 几个值得反复试的参数如果你想观察更明显的“抽风”可以把负载阶跃从额定3牛米改成6牛米或者把恢复段励磁增强倍数改成1.0而不是1.2功角就会往90度方向冲振荡幅度更大、持续时间更长。如果直接设置负载为8牛米稳态功角会超过90度系统失步转速会周期性摆动这就是教科书里失步振荡的典型画面。如果想看能耗制动的时间特性可以改R_brk。R_brk0.5时制动电流大转速衰减非常快但定子电流峰值高波形上会有一条尖刺R_brk5时制动电流小转速衰减慢最后一段甚至给人一种“永远停不下来”的错觉。实际应用里能耗制动通常只负责把转速降到一定值最终停车还要靠机械制动所以电阻的选择要结合停车时间要求和热容量限制。如果想让励磁动态效果更明显把tau_f从0.05改到0.5负载冲击段你会看到psi_f响应变慢电机“补励磁”的速度跟不上扰动功角振荡会更剧烈。这个参数等价于实际励磁绕组电感与电阻之比设计励磁控制时非常关键。7. 这套仿真还能往哪延