做电机控制时间长了的人,大多会形成一套“永磁电机思维”:磁场由转子上的永磁体给定,所有问题都归结为怎么把电流解耦好、把转速调稳。直到你开始接触可控励磁同步电机,才会发现一个问题——磁场本身变成了一个需要实时控制的变量,你不仅要管住定子电流,还要管住励磁电流,两个自由度互相耦合,模型的行为也跟着复杂起来。这篇文章就把我在Simulink里搭建、调试可控励磁同步电机模型的整套思路讲透,包括标准库模块和自建模型的取舍、内部数学机理的拆解、励磁调节和弱磁控制的落地方法,以及那些波形不对时最让人抓狂的坑。
1. 从“永磁包打天下”到“励磁可控”:这种电机把变量放在了哪里
1.1 可控励磁同步电机与永磁电机的本质差异
普通永磁同步电机(PMSM)里,转子磁场基本是“焊死”的:磁链幅值由永磁体决定,温度变了会变一点,电流大了可能退磁,但动态调节空间非常有限。可控励磁同步电机,通常指电励磁同步电机(EESM)或带辅助励磁绕组的混合励磁电机,转子磁场来自励磁绕组里的电流,也就是说,你在仿真模型里随时可以通过改变励磁电压、励磁电流,去直接控制气隙磁场的强弱。
这个差别带来的直接后果是:电机方程里多了一个励磁回路的动态过程。磁场不再是一个常数,而是一个由励磁电压和励磁绕组时间常数共同决定的状态变量。放到Simulink仿真里,你就得多处理一条回路,多写一个PI调节器,多考虑一种弱磁路径。这也是为什么很多从PMSM转过来的人,第一次用同步电机模块时总觉得波形“不对劲”——他们下意识地把磁链当成常数,看到励磁电流变化引起端电压变化时就懵了。
1.2 谁在用电励磁同步电机,做模型分析到底为了什么
电励磁同步电机一直是大型工矿传动、船舶电力推进、航空起动发电系统里的常客,这几年在新能源汽车主驱领域又重新火了起来。核心原因无非两条:一是没有永磁体,就没有退磁风险,成本结构也更友好;二是励磁可控,宽速域范围内可以通过调节励磁电流来维持高效运行,弱磁深度比PMSM好做得多。
对做模型分析的人来说,搭建可控励磁同步电机模型的目标通常有三个。第一,验证励磁调节策略:励磁电流应该怎么跟随转速和负载变化,才能既保证端电压不过压、又让转矩输出满足需求。第二,分析多物理域耦合问题:电气动态、机械动态、磁路饱和、温度影响全搅在一起,纯靠手算没法覆盖全部工况。第三,做故障工况研究:励磁绕组短路、励磁丢失、整流器故障,这些在模型里注入故障信号比在硬件上做安全得多,也便宜得多。
2. Simulink里的两条搭建路线:标准库模块与手写方程模型怎么选
2.1 标准同步电机模块的取舍
Simulink里最常用的可控励磁同步电机模型,是Specialized Power Systems(以前叫SimPowerSystems)下的Synchronous Machine模块。在老版本里路径是:
SimPowerSystems > Machines > Synchronous Machine
新一代MATLAB里则放在:
Simscape > Electrical > Specialized Power Systems > Fundamental Blocks > Machines > Synchronous Machine
这个模块分SI Units和pu Units两种单位制,转子结构可以选择隐极(round rotor)或凸极(salient pole),定子三相端子、励磁绕组端子、机械轴输出口全都引出来了。它的好处是内部磁链方程、反电势计算、机械运动方程都已经封装好,你只需要填参数表就行;坏处也很明显——参数表里那一堆电感、电阻、饱和系数、惯性常数的物理含义,如果你自己不搞清楚,后期调试根本无从下手。
我用这个模块的经验是:开环仿真、控制策略初步验证、故障注入实验,优先用标准模块。因为它的数值稳定性好,Simscape电气网络直接连三相断路器和逆变器也很方便,出问题的时候排查范围能缩小到“参数配置”和“外围电路”两块,而不是模型本身。但如果你要做非常规转子结构、要精细模拟磁路饱和对交叉耦合的影响,标准模块那套固定方程就有点绑手绑脚了。
2.2 自己搭数学方程的边界
自建模型的核心思路,是在Simulink里用积分器、运算模块或者MATLAB Function模块,把dq坐标系下同步电机的磁链方程、电压方程、转矩方程、机械方程直接写出来。这样做的优势是透明:每个状态变量背后对应哪个积分器,你清清楚楚;想加什么样的非线性特性,也都能直接改方程。
但自建模型有一个绕不开的门槛——数值稳定性。Simulink里如果积分环节太多、或者刚启动时励磁电流从零跳变到额定值,很容易出现代数环或者高频振荡。你需要在每个积分器后面做限幅,需要在反馈回路里加合适的滤波,需要仔细选择初始状态。对于只想验证励磁调节策略的工程师,手写方程模型的开发成本有时候会超过项目本身给的时间预算。
2.3 我推荐的最稳组合方案
我个人的建议是:第一轮先上标准模块,把空载、负载、弱磁三段工况跑通,记录波形并确认参数合理性;第二轮如果需要更高级的磁路模型,再把手写的磁链方程嵌进标准模块的反馈回路里,相当于“外部磁链计算 + 标准电气接口”。
还有一个要点:如果后续要把模型导出成FMU做联合仿真,或者和CarSim这类车辆动力学软件联用,Simscape的电气模块在部分工业软件里的兼容性不一定好,这时候反而是手写的纯Simulink方程模型更省事。这个取舍我在实际项目中踩过,后面调试坑那节详细说。
3. 模型内部数学机理拆解:磁场、电压、转矩之间到底怎么耦合
3.1 转子磁场怎么“活”起来
可控励磁同步电机的核心,是转子励磁绕组产生的磁场。励磁电流流过励磁绕组以后,建立转子极对极的磁场分布,在dq坐标系里体现为d轴方向的励磁磁链。仿真模型里通常用一个一阶惯性环节来描述励磁回路动态:
[ u_f = R_f i_f + L_f \frac{di_f}{dt} ]
从控制角度看,励磁电压和励磁电流之间就是个标准的LR串联电路。很多人在这里犯的第一个错误是:把励磁时间常数 ( \tau_f = L_f / R_f ) 当成可以忽略的微小量。实际上励磁绕组电感往往很大,时间常数可能从几十毫秒到几百毫秒,这意味着励磁电流的变化是“慢吞吞”的。你在弱磁控制里让励磁电流跟随一个快速变化的参考值时,会发现它根本追不上,这是物理限制,不是控制器没调好。
3.2 从磁链方程到电压方程的完整链条
定子侧在dq坐标系下的磁链方程是:
[ \psi_d = L_d i_d + \psi_f ] [ \psi_q = L_q i_q ]
其中 ( \psi_f ) 就是励磁绕组在d轴产生的等效磁链。它是励磁电流 ( i_f ) 的函数,在模型中不能当成固定参数。定子电压方程则是:
[ u_d = R_s i_d + \frac{d\psi_d}{dt} - \omega_e \psi_q ] [ u_q = R_s i_q + \frac{d\psi_q}{dt} + \omega_e \psi_d ]
这里的 ( -\omega_e \psi_q ) 和 ( +\omega_e \psi_d ) 就是dq旋转坐标系下的速度电动势项,它们把d轴和q轴的动态耦合在了一起。很多自建模型波形发散,就是因为这两项在反馈回路里没有被正确处理。
从这些方程可以看到“可控励磁”带来的关键效果:转速升高时,( \omega_e \psi_d ) 会变大,端电压随之上升;如果这时主动减小励磁电流,( \psi_d ) 变小,端电压就被压住了。这就是电励磁同步电机弱磁控制最朴素的物理原理——通过弱磁电流去降低磁链,而不是像永磁电机那样只能靠d轴去磁电流硬顶。
3.3 转矩方程和机械侧:控制最终要落到哪里
电磁转矩在dq坐标系下可以写成:
[ T_e = \frac{3}{2} p (\psi_d i_q - \psi_q i_d) ]
把磁链方程代进去以后,可以拆成励磁转矩和磁阻转矩两部分:
[ T_e = \frac{3}{2} p [\psi_f i_q + (L_d - L_q) i_d i_q] ]
对于隐极机,( L_d \approx L_q ),第二项基本可以忽略;对于凸极机,磁阻转矩不能忽略。这个公式决定了你设计励磁控制时的思路:励磁电流决定了 ( \psi_f ),也就决定了同样 ( i_q ) 下能输出多少转矩;而 ( i_d ) 除了参与弱磁,还参与磁阻转矩的博弈。在Simulink模型分析中,把转矩波形和磁链波形放在一起看,比单独看电压电流要直观得多。
机械侧还需要配合转动方程:
[ J \frac{d\omega_m}{dt} = T_e - T_l ]
标准Synchronous Machine模块内部会把这个方程也解算好,机械轴输出端直接接负载就行。但要注意,负载用恒转矩负载还是风机类负载,机械动态差异很大,这直接影响电机是否能稳定到目标转速。
4. 动手搭建:可控励磁同步电机模型的完整流程
4.1 仿真参数与电机参数准备
搭建之前,先准备一份完整的电机参数表。以一台60 kW、额定电压380 V、额定转速3000 rpm、极对数3的电励磁同步电机为例,典型参数如下:
| 参数名称 | 数值 | 备注 |
|---|---|---|
| 定子电阻 Rs | 0.08 Ω | 温度升高后会变大 |
| d轴电感 Ld | 0.8 mH | 凸极机与Lq不同 |
| q轴电感 Lq | 1.2 mH | |
| 励磁电阻 Rf | 1.5 Ω | 励磁绕组电阻 |
| 励磁电感 Lf | 150 mH | 励磁时间常数大 |
| 额定励磁电流 | 20 A | 对应额定磁链 |
| 永磁等效磁链等效值 | 0.15 Wb | 由额定励磁产生 |
| 转动惯量 J | 0.15 kg·m² | 大小影响机械动态 |
| 极对数 p | 3 | 电频率与机械转速关系 |
在标准模块的对话框中,这些参数可以直接填入SI Units模型。注意励磁电感不要填错成励磁绕组自感还是励磁与d轴的互感,不同版本模块的注释写得很清楚,但要仔细看。填错一个数量级,波形就会差到天际。
4.2 电机模块配置与外部电路连接
从库里面拖出Synchronous Machine模块后,有四个关键配置点:
- 单位制:选SI Units,调试时所有物理量都可以直接对照铭牌值。
- 转子类型:凸极机选Salient Pole,隐极机选Round Rotor,这决定内部计算Ld和Lq的方式。
- 初始条件:初始转速、初始转子角度、初始励磁电流都要设置。很多人忽略这里,直接用默认的0,结果启动瞬间电流爆炸。
- 励磁输入方式:把励磁端口设为外部输入(External),这样励磁电压信号可以来自Simulink控制回路。
外部电路方面,定子侧用理想三相电压源驱动,或者接上逆变器模块;励磁侧用一个可控直流源或者PWM斩波器。我早期调试时习惯先用电感性和纯电阻负载,把电机拖到同步速附近再并网,尽量避免启动瞬间的冲击。
4.3 励磁调节环路的搭建
励磁调节环路的本质,是一个电流内环控制:给定励磁电流参考值 ( i_f^* ),实际励磁电流反馈回来,经过PI调节器输出励磁电压指令,再送给励磁电源。
在Simulink里的搭建方式如下:
- 用Synchronous Machine模块的励磁电流测量端口(通常在状态输出的一个通道里)作为反馈。
- PI调节器参数不能照搬定子电流环的参数。因为励磁回路时间常数大,励磁环的带宽要放低,否则PI参数稍大一点,整个励磁电流就会来回振荡。我从实践中得到的经验是:先按励磁回路一阶惯性模型整定,PI比例项从0.1倍电阻值开始试,积分时间常数取励磁时间常数的3~5倍,然后逐步微调。
- 励磁电压指令必须限幅,防止励磁绕组过压。限幅值取额定励磁电压的1.2倍左右比较安全。
4.4 弱磁控制(电压外环法)的接入
热搜词里提到了“电压外环法弱磁控制simulink搭建”,这是电励磁同步电机模型分析里最常用的弱磁实现方式,思路非常直观。
电机高速运行时,如果励磁电流维持不变,反电动势会持续升高,最终逼近逆变器输出电压极限。电压外环法的控制结构是:
- 实时计算定子电压矢量幅值 ( U_s = \sqrt{u_d^2 + u_q^2} )。
- 与允许最大电压 ( U_{\text{max}} )(由直流母线电压决定)做差。
- 差值送入一个弱磁PI调节器,输出一个弱磁校正量,作用到励磁电流参考值上,同时也可以作用到d轴电流参考值上。
实际搭建时,我习惯把电压外环输出的弱磁量按比例分配到励磁电流和d轴电流两个通道上,且励磁电流通道的优先级更高。原因很简单:电励磁同步电机里,励磁电流主导气隙磁链,弱磁响应最直接;d轴去磁电流会引入较大的磁阻转矩变化,分配过多容易让转矩波动变大。
具体的Simulink连接可以这样:电压误差PI输出一个0到1之间的系数,励磁电流参考值乘以这个系数;剩余部分再叠加到d轴电流参考值上。两个通道都加了限幅和变化率限制,防止转速突变时控制量跳变太快。
5. 用波形反推模型好坏:空载、负载、弱磁三种工况验证
5.1 空载工况:励磁突加时的电压建立过程
模型搭好以后,第一个要跑的空载试验是:电机在外力拖动下达到额定转速,然后从0开始阶跃给定额定励磁电流。此时观察三相端电压的建立过程,应该是一个按励磁回路时间常数上升、最终稳定在额定电压附近的曲线。
如果电压上升得太快、几乎呈阶跃状,先检查励磁电感是否填小了;如果电压建立后幅度比额定值差很多,检查励磁电流是否真的达到额定值,以及定子绕组连接方式是否是星形/三角形和模块默认一致。空载工况是校验励磁回路参数最灵敏的手段,这个环节不过关,后面负载工况的波形分析都没有意义。
5.2 负载工况:功率角与转矩角的关系
加载后最值得观察的是转矩角和输出转矩的跟随关系。在dq坐标系里,励磁电流保持恒定时,电磁转矩 ( T_e ) 与q轴电流基本成正比。你在模型里逐步增加负载转矩,观察dq轴电流和转矩波形:
- 转速是否能在调速器控制下保持稳定;
- q轴电流是否随负载线性增加;
- d轴电流是否因为励磁链饱和或控制解耦不完全出现不应有的波动;
- 功率角(负载角)是否随负载增大而变大,这是同步电机标志性的物理现象。
如果d轴电流在负载变化时出现明显波动,往往是电流解耦项里的 ( \omega_e \psi_q )、( \omega_e \psi_d ) 没有抵消干净。标准模块和SVPWM控制结合的模型里,要重点检查反馈信号是否取了电角速度而非机械角速度,这个错误我见过很多次,症状就是转速越高,d轴电流振荡越厉害。
5.3 弱磁工况:电压受限后的电流分配
把转速从额定值持续往上拉升,在弱磁区观察励磁电流参考值和实际值的变化。正常情况下,随着电压外环检测到电压裕量不足,励磁电流参考值会平滑下降,定子电流的变化则取决于d轴和q轴电流的重新分配。
这里有一条判断模型是否正确的硬标准:弱磁区内定子电压幅值应该被限制在 ( U_{\text{max}} ) 附近,且励磁电流和d轴电流的变化趋势应该相反——转速升高,励磁电流下降;为了维持电压平衡,d轴去磁电流会加深。如果两个量同方向变化,说明弱磁控制逻辑接反了,或者电压外环极性搞错。
5.4 模型验证清单参考表
| 检查项目 | 预期波形特征 | 常出问题的位置 |
|---|---|---|
| 空载电压建立 | 按励磁时间常数指数上升 | 励磁电感、初始励磁电流 |
| 额定转速空载电压 | 接近额定电压,波形正弦 | 定子绕组接线方式、磁链系数 |
| 负载阶跃响应 | 转速小幅度跌落后再稳定 | 速度环PI参数、转动惯量 |
| 转矩与q轴电流关系 | 线性对应,无大幅波动 | dq解耦项、坐标变换角度 |
| 弱磁区电压限制 | 电压幅值贴上限 | 电压外环PI、Umax取值 |
| 励磁电流动态 | 平缓变化,无明显振荡 | 励磁环带宽、PI限幅 |
6. 调试中的典型坑与我的处理经验
6.1 初始磁链不匹配导致的大电流尖峰
Synchronous Machine模块在仿真启动时,内部需要根据你填写的初始条件建立初始磁链。如果你把初始励磁电流设为0,但定子侧又连接着额定电压源,仿真开始时电机就像一台没有励磁的同步发电机突然被电网拖着走,定子电流会出现几个周期的巨大尖峰。这个尖峰不是控制器问题,而是初始条件设置不合理。
处理办法很简单:要么把初始励磁电流设为额定值,让电机一开始就有磁链;要么先把定子侧断路器断开,等励磁电流建立起来再合闸。在Simulink里加一个延时控制的断路器,几行逻辑就行,能少掉好多让人误判的波形。
6.2 单位制混乱导致的参数差1000倍
SI Units和pu Units混用是最常见的低级错误。有人从论文里抄来一套标幺值参数填进了SI模型,结果励磁电阻填成0.015而不是15,励磁电流怎么都不对,一查差了三个数量级。
我的习惯是全程只用SI Units,电机铭牌参数直接填欧姆、亨、秒这些物理单位,控制环路的PI参数也按物理量纲去整定。标幺值模型适合理论分析,不适合工程调试时跟实物对照。如果你必须用pu模型,请务必把基准电压、基准电流、基准阻抗三组基准值同时算清楚,并在模型里加一个“变量含义注释”的子系统,方便之后维护。
6.3 励磁回路时间常数带来的仿真步长矛盾
励磁绕组的电感大、时间常数大,这本身不会导致仿真变慢,但如果你同时把励磁回路和电力电子开关快速暂态放进同一个仿真里,变步长求解器的步长会因为开关事件而被拉得很小,明明励磁要几百毫秒才稳定,仿真却以微秒级步长在跑,整体耗时拉满。
我的做法是分层仿真:第一轮用理想电压源代替逆变器,大步长变步长求解器(比如ode23t),快速确认励磁控制和弱磁逻辑;第二轮再把逆变器细节模型加上去,这时可以把励磁回路的动态已稳定部分用状态初值替代,缩短冗长的起始过渡段。另外,需要导出FMU模型时,纯Simulink数学模型的兼容性通常比带Simscape电气网络的模型好,这也是分层设计的一个额外收益。
6.4 测量角度错误:机械角速度与电角速度混用
标准Synchronous Machine模块的输出端口里有转子机械角速度和电角速度,两者相差p倍。在坐标变换、弱磁计算、速度电动势补偿里,凡是涉及角度和角速度的地方,必须统一用电角速度。我曾经在处理电压外环参考值时混用了机械角速度,电机在高速区电压计算值偏小,导致弱磁控制迟迟不介入,定子电压被上级限幅硬性截断后电流严重畸变。
这种问题的排查思路是:把电压幅值计算里的 ( \omega_e ) 单独拉出来和机械转速波形对比,看是否在基速以上呈p倍增长。波形一旦对不上,很快就能排除到坐标变换环节。
最后分享一个我自己的调试小习惯:新模型第一次运行时,永远先给励磁电流一个固定值,手动开环跑,不要急着接励磁闭环。开环状态下波形稳了,再一层一层把电流环、电压外环接回去。这样每一层控制逻辑出问题,都能立刻定位到新增的那一层,而不是面对一团乱麻的波形找不准病灶。可控励磁同步电机模型的难点从来不在于“电机怎么转”,而在于你愿不愿意花时间把一个外加自由度管清楚——管清楚了,后面做任何工况分析都顺很多。