做电机驱动仿真的朋友肯定有类似经历:三相PMSM的矢量控制模型满网都是,随便挑一个都能跑通;但一旦牵涉到六相(双三相)永磁同步电机PMSM双闭环矢量控制仿真模型,资料就少了一大截,能照着复现的更少。很多从三相迁移过来的同学,第一反应是把两个三相PMSM模型并联,再用同一个转速环去带,结果要么两套电流环互相抢控制权,要么其中一组绕组电流直接飞到限幅值。这个标题涉及的其实不是“六个相绕一台电机”这么简单,它背后是坐标变换维度、电流环自由度、PWM调制方式和电机参数耦合这些交互影响的复杂问题。这篇文章就把这个仿真模型的完整搭建思路拆开讲,从双三相绕组建模、坐标变换、双闭环控制结构,到仿真模型怎么分块搭、参数怎么整定、波形怎么读,最后再把这几年多相电机仿真里容易被忽略的坑列出来。适合正在做多相电机控制课题的研究生,也适合已经有三相PMSM基础、想扩展知识边界的工程师读。
1. 双三相电机为什么值得单独建一个仿真模型
1.1 工程需求与技术动因
先说应用背景。大功率电机驱动里,单个三相逆变器的容量往往不够用,尤其是低压大电流场合,功率管的电流应力会成为瓶颈。常规做法是器件并联或者多电平拓扑,但均流问题、控制复杂度和成本都会上来。另一种思路就是在电机本体上做文章:把定子绕组拆成两套三相绕组,分别由两组三相逆变器供电,这就是六相(双三相)电机的由来。
和三相电机相比,双三相电机的核心收益有三个。第一是功率分流,两套逆变器各承担一半电流,功率管选型压力小很多;第二是容错能力,一组绕组或一个桥臂出问题时,另一组还能维持降额运行,这对舰船、矿用、风电等可靠性要求高的场景非常重要;第三是谐波特性,两套绕组在空间上错开30°电角度后,部分磁动势谐波能互相抵消,转矩脉动和噪声都有改善。
1.2 双三相绕组的结构与相移角
双三相电机在定子槽内布置两套对称三相绕组,记作ABC和UVW。这两套绕组的中性点通常是隔离的,位置关系可以是同相、30°或60°电角度偏移。工程上最常见的是30°相移,也就是标题里括号注释“双三相”的标准形式。
为什么偏偏是30°?这要从磁动势谐波角度理解。三相绕组产生的5次、7次空间谐波是主要谐波源,当第二套绕组相对第一套转过30°电角度时,两套绕组产生的5次和7次谐波磁动势正好反相,在气隙中相互抵消,所以总转矩脉动能明显下降。如果是0°或60°布置,绕组在这个谐波抑制上就完全没有收益。
| 对比项 | 三相PMSM | 双三相PMSM(30°相移) |
|---|---|---|
| 相数 | 3相,一套绕组 | 6相,ABC+UVW两套绕组 |
| 中性点 | 单个星接 | 两套绕组隔离星接 |
| 逆变器 | 一个三相桥 | 两个独立三相桥 |
| 控制自由度 | 2(d/q轴) | 5(两套dq + x-y零序分量) |
| 故障容错 | 缺相后基本无法运行 | 一组绕组故障后仍可降额运行 |
| 谐波特性 | 5/7次靠PWM抑制 | 绕组相移可天然抵消部分5/7次谐波 |
1.3 这个仿真模型要模拟的重点
这个仿真模型的目标不是“搭出来能动”,而是能验证双闭环矢量控制在双三相结构下的完整行为。至少应该覆盖这么几个工况:空载启动到额定转速、稳态匀速运行、突加负载后的转速跌落与恢复、以及两套绕组电流是否对称分配。如果要进一步研究谐波,还要看相电流波形质量和转矩脉动指标。
我自己在做这个模型的时候,用的是“通用样机”参数,不绑定特定型号,但所有绕组参数都按工程实际量级设定,避免出现“模型能跑但参数离谱”的情况。搭建之前先想清楚:这本质上是一个多输入多输出强耦合系统,不能简单等效成两台三相电机,因为两套绕组绕在同一个定子铁心上,互感项是会直接影响动态响应的。
2. 六相绕组的坐标变换:双d-q与VSD两条路线怎么选
2.1 双d-q变换的物理含义
三相PMSM的矢量控制依赖Park变换,把静止abc坐标转到旋转dq坐标,让交流量变成直流量。双三相电机有六个相,如果直接把三相变换一个绕组各做一遍,会得到两套dq分量:ABC绕组映射到d1/q1,UVW绕组映射到d2/q2,这就是双d-q变换。
这里的关键细节是两套绕组的Park角度不能完全相同。因为UVW绕组在空间上相对ABC绕组偏移了30°电角度,所以d2/q2轴的旋转角度要在d1/q1角度上再叠加±π/6。很多初版模型跑出来两套绕组电流不平衡,问题往往就出在这个角度差没写对。
双d-q变换的好处是非常直观,控制结构和三相PMSM完全兼容,电流环PI可以直接复用,只是数量翻倍。它适合做双闭环矢量控制的主体框架,也是标题里“双三相”对应的标准控制方式。
2.2 VSD变换与双d-q的取舍
另一条路线是矢量空间解耦变换(VSD)。它把六相电流映射到α-β子空间、z1-z2子空间和零序子空间。α-β子空间里是参与机电能量转换的基波分量,z1-z2子空间是5次、7次等谐波分量,零序则对应共模电流。
VSD的优点是谐波分量看得清清楚楚,适合研究谐波抑制和故障诊断;缺点是控制结构复杂,很难直接沿用传统PMSM的PI调节器框架。我这个模型选择双d-q作为主控制结构,因为它的工程实现路径最短。但在波形分析阶段,我会额外关注z1-z2分量,用来判断电流环解耦效果和PWM调制质量。
2.3 建模时不能忽略的交叉耦合
双三相电机中,两套绕组的d/q轴之间不是完全独立的。由于它们嵌在同一套定子槽内,互感项会把d1/q1轴的电压方程耦合到d2/q2轴。如果模型里完全忽略互感,动态阶段的电流响应会出现明显偏差,严重时甚至导致PI参数无法收敛。
解决思路是在电流环输出处加前馈补偿,把对面绕组的耦合电压项显式算出来加进去。公式形式大致是:
u_d1 = R_s·i_d1 + L_d·di_d1/dt - ω_e·L_q·i_q1 + 耦合项 u_q1 = R_s·i_q1 + L_q·di_q1/dt + ω_e·(L_d·i_d1 + ψ_f) + 耦合项第二套绕组的方程结构完全一致,只是Park角度代入的是θ_e - π/6。前面提到的“六个相五个自由度”,指的就是两套dq轴四个自由度加上z1-z2谐波自由度。在理想对称情况下,z1-z2电流参考为零即可,所以双d-q框架足够完成双闭环控制。
3. 双闭环矢量控制的内环自由度:不只是两套PI这么简单
3.1 外环到内环的控制流
整个双闭环结构从外向内看:转速环是外环,输入是转速参考和反馈,输出是总q轴电流参考;电流环是内环,接收总q轴电流参考并分配成两套dq电流给定,然后各自通过PI调节器输出电压指令,最终驱动两组PWM调制器。
外环转速PI通常用id=0控制策略。表贴式永磁同步电机的磁阻转矩很小,id=0可以让电流全部用于产生转矩,控制效率最高。如果是内置式永磁结构,可以改成MTPA轨迹,但控制主体框架不变。
总q轴电流参考分配到两套绕组时,最简单也最稳妥的方式是各取50%。电机参数完全对称时,这个均分方案不会带来额外的转矩脉动。如果两套绕组的电阻、电感存在偏差,就要在分配系数里加入校正因子,否则会出现一组绕组过流、另一组欠载的情况。
3.2 为什么两组dq电流环能覆盖六个相
这是很多初学者会卡住的地方:六相电流有六个变量,怎么只用四个电流PI就能控住?原因要回到中性点隔离和绕组对称性上。两套绕组中性点隔离后,零序电流没有通路,六相电流的自由度剩五个;再考虑到z1-z2谐波分量在理想对称电机中不会被激励,实际需要主动闭环的自由度就是两套dq轴的四个电流。
所以模型可以正常工作的前提是:电机参数对称、逆变器无死区非线性、两套绕组30°相移准确。如果这些前提不满足,比如PWM带死区时间,就会在z1-z2子空间激发出不可控的谐波电流,反映到相电流上就是明显的5次、7次谐波。后续想更精细,就要加谐振控制器或重复控制器去压制这些分量。
3.3 电流环PI参数整定与抗饱和
电流环带宽一般取PWM开关频率的1/20到1/10。工程上可以用经验公式粗整定:
Kp = L · ω_bw Ki = Kp · R_s / L = R_s · ω_bw以我用的样机参数为例:L_d = L_q = 8 mH,R_s = 0.5 Ω,开关频率10 kHz,电流环带宽取1000 rad/s,那么Kp约8,Ki约500。这个初值通常能稳住,再根据波形微调。转速环带宽比电流环低一个数量级,Kp取0.1~0.5量级,Ki取1~10量级,具体按负载大小修正。
还要注意PI限幅和抗积分饱和。突加负载时会瞬间出现大电流指令,如果积分项无限累积,模型会振荡甚至炸掉。我在模型里给q轴电流参考加了限幅,并给PI调节器加了积分钳位,保证积分输出被限制在合理区间内。
4. 仿真模型分模块搭建:从电压方程到控制回路逐块落地
4.1 电机本体:用空间矢量方程搭建而不是六个相电阻直接积分
搭建双三相电机模型时,最忌讳的做法是把六个相绕组当成六个独立RL支路直接积分,那样不仅模型庞大,而且互感项很难写对。推荐做法是在旋转坐标系下建模,把六个电压方程压缩成两套dq方程。
核心状态方程长这样:
di_d1/dt = (u_d1 - R_s·i_d1 + ω_e·L_q·i_q1) / L_d di_q1/dt = (u_q1 - R_s·i_q1 - ω_e·L_d·i_d1 - ω_e·ψ_f) / L_q di_d2/dt = (u_d2 - R_s·i_d2 + ω_e·L_q·i_q2) / L_d di_q2/dt = (u_q2 - R_s·i_q2 - ω_e·L_d·i_d2 - ω_e·ψ_f) / L_q电磁转矩表达式在表贴式结构下可以化简为:
T_e = 1.5 · p · ψ_f · (i_q1 + i_q2)机械运动方程单独一个模块:
J·dω/dt = T_e - T_L - B·ω在仿真软件里,可以用积分器、增益和加法器直接搭,也可以写成脚本型S-Function,后者改参数更方便。两个绕组之间的互感耦合,通过第2节里的电压方程耦合项体现。
4.2 两套逆变器与调制策略选择
双三相电机的逆变器侧是两组三相半桥,直流母线共用,但两个三相桥的调制波要独立计算。调制策略上比较稳妥的做法是先跑“平均电压模型”,直接把PI输出的电压指令送给电机方程,不算开关器件,这样可以先验证控制算法是否正确,逻辑清晰,收敛速度快。
算法验证通过后再替换成开关模型,观察相电流谐波和THD。开关模型的调制策略有两种常见选择:
| 调制方案 | 实现难度 | 谐波表现 | 适用阶段 |
|---|---|---|---|
| 两套SPWM,载波同相 | 低 | 5/7次谐波较明显,THD偏高 | 快速验证控制逻辑 |
| 两套SPWM,载波移相180° | 低 | 谐波明显下降,THD改善 | 标准仿真模型推荐 |
| 扩展SVPWM | 高 | 直流电压利用率高,谐波好 | 工程控制器原型开发 |
我最终在模型里用的是载波移相180°的SPWM方案。原因很简单:效果提升明显,且不需要像扩展SVPWM那样从头写扇区判断,入门成本低,论文和工程预研都够用。
4.3 坐标变换与控制器模块清单
整个模型可以分成五个大模块:电机本体、两套逆变器、六相到两套dq的坐标变换、转速外环PI、四个电流内环PI。每个模块接口要干净,信号名做到一目了然。
| 模块 | 输入 | 输出 | 作用 |
|---|---|---|---|
| 坐标变换 | i_a/i_b/i_c, i_u/i_v/i_w, θ_e | i_d1/i_q1, i_d2/i_q2 | 把六相电流映射到两套旋转坐标 |
| 转速环PI | n_ref, n_fb | i_q_total_ref | 转速误差生成总转矩电流参考 |
| 电流环PI×4 | i_d1_ref/i_q1_ref/i_d2_ref/i_q2_ref, 反馈电流 | u_d1/u_q1, u_d2/u_q2 | 电流追踪与解耦补偿 |
| 逆变器调制模块 | dq电压指令 | 两套三相桥臂开关信号 | 生成PWM占空比 |
| 电机本体 | 两套三相电压 | 六相电流、转速、转矩 | 电磁与机械动态 |
坐标变换模块里,Park角度要用转子永磁磁链方向的角度。ABC绕组变换用θ_e,UVW绕组变换用θ_e - π/6。这个细节写进仿真模型后,两套绕组的电流响应就天然带上了30°相位差。
4.4 仿真步长与求解器设置
双三相模型的状态变量比三相多,耦合更紧,数值刚性也更明显。固定步长建议取开关周期的1/10以下。开关频率10 kHz时,步长设10微秒比较稳。如果用的是平均电压模型,没有开关纹波,步长可以放到50微秒,先把闭环调通,再切回10微秒看谐波细节。
求解器方面,平均模型用定步长的四阶龙格库塔即可;开关模型建议用离散定步长,避免仿真时间过长。参数写进模型前,把电阻、电感和磁链都先校对一遍,型号和数值要自洽,否则后续调PI会花大量时间在“找模型bug”上而不是“调参数”。
5. 初版模型跑完后的结果读图与调节方法
5.1 转速和转矩波形看什么
模型跑通后,第一步先看空载启动波形。以额定转速1500 rpm为例,初始阶跃给定后,转速应该在约0.15秒内达到稳态,超调量控制在5%以内。如果超调偏大,说明转速环积分偏强,适当减小Ki;如果响应太慢,则加大Kp。
接着做突加负载测试。在0.5秒时把负载转矩从0跳到额定值32 N·m,转速会出现一个跌落。好的系统应该在0.5秒内恢复稳态,跌落幅度在几十转以内。如果转速一直拉不回来,优先检查q轴电流限幅值是否太小,以及绕组均分后每套绕组是否还能提供足够转矩。
5.2 相电流和dq电流怎么读
稳态运行下,六个相电流应该是正弦波,且ABC和UVW两组电流之间相差30°电角度。我在模型里同时观察i_a和i_u,能直接验证坐标变换角度是否正确。如果相位差不稳定,说明Park角度在某个地方漏加了π/6。
dq电流是判断解耦效果的重要窗口。稳态时,i_q1和i_q2应当相等,i_d1和i_d2应当为零。如果两套绕组的dq电流在动态过程中出现明显振荡,多半是前馈补偿项没加全,或者两个绕组之间的互感被忽略了。
5.3 谐波与THD测量方法
用开关模型跑稳态后,截取一个完整周期的相电流做FFT分析。载波同相SPWM方案下,5次和7次谐波会比较突出;换成载波移相180°后,这两个谐波应该大幅下降。理想情况下,相电流THD能控制到5%以内。
| 波形现象 | 优先检查 | 常见根因 | 调整方向 |
|---|---|---|---|
| 一组相电流幅值明显偏大 | 两组dq参考是否一致 | 坐标变换角度漏掉30° | 校正第二套绕组的Park角 |
| 相电流出现台阶 | 调制波比较值 | 两组载波同相导致谐波放大 | 载波移相180° |
| 突加负载后转速长期不恢复 | 转速环PI与限幅 | 限幅太低或积分饱和 | 调高限幅并加抗积分饱和 |
| 动态阶段dq电流振荡 | 前馈补偿符号 | 耦合项正负方向写反 | 用dq方程逐项核对符号 |
| 零序电流异常偏大 | 中性点连接方式 | 两套绕组中性点未隔离 | 中性点浮空或分开接地 |
6. 多相仿真中容易踩的坑:零序环流、载波相移和PI发散
6.1 零序环流的坑
两组三相绕组的中性点如果直接接在一起,共模电压会形成零序电流通路。仿真初期用理想电压源、理想开关器件时,零序电流不一定立刻暴露,但只要加入PWM调制和死区,问题就来了:相电流波形出现明显畸变,转矩脉动跟着变大。
解决办法是两套绕组的中性点分开,让零序电流完全没有回路。这也是双三相电机实际设计中普遍采用的中性点隔离结构。建模型时如果直接在电机的六个相绕组和逆变器之间接线,很容易默认共地,这一步要额外注意。
6.2 载波相位关系的坑
三套相的SPWM,如果两个逆变器的载波相位完全同步,那“30°相移绕组抵消5/7次谐波”的优势会被PWM谐波掩盖,电流THD不理想。把第二组载波的相位相对第一组移动180°,效果会立竿见影。这一点在建模时只有一个参数的区别,却往往被忽略。
6.3 PI参数与数值发散的处理
双三相模型比三相更容易出现数值发散,不是控制器原理错了,而是步长太大或PI积分饱和。我曾经遇到过一加负载就仿真中断的情况,最后定位到的问题是电流环积分输出没有限幅,指令电压远超直流母线电压,模型直接溢出。
处理办法是三层检查:先确认步长不大于开关周期的1/10;再确认所有PI调节器输出都加了限幅,限幅范围不超过母线电压对应值;最后确认前馈补偿项的符号正确,符号写反会导致正反馈,波形呈指数增长,系统瞬间就炸了。
6.4 调试顺序的一点体会
我习惯把双三相模型分成三个阶段验证。第一阶段是开环验证坐标变换,给定一个固定方向的电压矢量,看转子是否平稳转动,dq电流是否稳定;第二阶段是闭环电流环,给定小阶跃q轴电流,看两套绕组是否按照设定均分电流;第三阶段才合上转速外环,测启动和突加负载动态。
这三个阶段里,最值得花时间的其实是第一阶段。坐标变换矩阵有没有写对、Park角度的30°偏移有没有加对,在开环阶段会暴露得非常明显。直接跳去调PI,只会陷入“波形不对但不知道哪里不对”的泥潭。把这步做扎实,后面所有问题都能用查表的方式快速定位。