电机驱动这个圈子里,“三相”几乎是默认前提。我前几年大半时间都在和三相永磁同步电机的矢量控制模型打交道,直到某次项目要把功率等级往上抬,同时要求绕组故障之后不能立刻停机,才把注意力放到六相永磁同步电机上。随后我花了几周时间,专门搭建并调试了一版六相永磁同步电机矢量控制仿真模型,这趟探索做完,最大的感受是:六相不是简单把三相复制一份,它的电压方程、控制平面、脉宽调制和容错逻辑全部要重写。下面我把模型搭建过程、VSD变换细节、调试踩坑和断相容错验证完整梳理一遍,给准备从三相转向六相的人做个参考。
1. 从三相到六相,为什么值得专门做一次仿真探索
1.1 三相矢量控制做得再顺,也有绕不过去的瓶颈
三相永磁同步电机的矢量控制,无论在工程落地还是在学术验证里都已经非常成熟。转子磁场定向、id=0控制、SVPWM调制、MTPA弱磁,这些套路我闭着眼都能搭出来。但真把功率等级往上推的时候,三相拓扑的约束会非常直接地顶到你面前:一套三相绕组接一台三相逆变器,所有功率都压在六个开关管上,器件电流定额、散热和直流母线电容纹波都会被推到极限。
而且三相拓扑在故障工况下的表现确实不够理想。某相断线、某个开关管开路,哪怕只是短暂故障,整个电机往往就得停机。对于一些不允许突然丢失转矩的场景,这种“单点故障导致全系统歇菜”的特性很难接受。我当时项目的核心诉求就两条:一是能继续提高系统总功率而不必无限加大单管容量,二是希望电气侧出现局部故障时还能维持一段时间的降额运行。这两条需求,恰好都是六相电机拓扑擅长回答的问题。
1.2 六相电机的三个核心收益
六相永磁同步电机最常见的形式是双三相绕组结构,也就是定子上放两套三相绕组,空间上错开30度电角度,两套绕组可以各自连接一台三相逆变器。这套结构带来的好处,实用层面主要体现在三方面。
第一是功率裂分。总功率被分散到两套绕组和两台逆变桥上,每台逆变器的电流等级可以下降,器件选型压力立刻小很多。对高压大功率场合,这个价值非常直接。第二是容错冗余。一套绕组或者一台逆变器出问题,另一套还能继续出力。虽然控制上需要重构,但至少不会因为局部故障直接失去全部转矩。第三是谐波与转矩脉动抑制。因为两套绕组的磁动势在某些谐波次数上相互抵消,理论上可以比三相结构得到更平滑的转矩输出。不过这里我要提醒一句:谐波抑制是有条件的,它依赖绕组排列角度和电流分配方式,不是说接上六相线就自动没有脉动。
1.3 这次仿真探索的范围和取舍
做仿真模型之前必须先划清边界,否则后面会越调越乱。我这次探索锁定的是最常见的一种六相结构:双Y移30度永磁同步电机,两套三相绕组中性点隔离,各自接一台三相逆变器,直流母线共用一个电源。
在这个前提下,我默认了三件事:电机内部参数完全对称,永磁磁链理想正弦,不考虑齿槽转矩和铁心饱和。这个模型设定当然不完美,但它能先把六相矢量控制的框架和关键算法验证清楚。如果一上来就把空间谐波、饱和、参数不对称全塞进去,模型里三个平面的电流互相耦合,根本无法判断是控制算法的问题还是电机本体的行为。先把理想情况跑通,再逐步加复杂度,这是做多相电机仿真很重要的一种节奏。
2. 六相电机数学模型的命门:VSD变换如何拆出三个独立平面
2.1 双三相绕组结构与中性点处理
六相电机并没有一个统一的绕组接法。最常见的是双Y移30度:两套三相绕组各自接成星形,第二套相对第一套在空间上偏移30度电角度。也有做对称60度分布的,那种结构用得少一些,控制谐波的特性和30度结构有明显差异。我这次用的是双Y移30度结构。
中性点怎么处理,直接决定零序电流能不能流通。两套绕组中性点隔离时,零序电流没有通路,控制部分基本不用管o1、o2平面。如果两套中性点直接连在一起,那零序电流就会流起来,模型里的平面数量虽然还是三个,但o1、o2之间会出现耦合,调试时很容易看到莫名其妙的共模电流。所以搭仿真模型之前,先确认中性点方式比确认电机额定功率还重要,很多人后面调不出结果,根子就在这里。
2.2 自然坐标方程很长,VSD为什么能“降维”
如果你直接把六相电机的相电压方程写出来,会得到一个6×6的电感矩阵,而且这个矩阵里大量元素随转子位置变化。六个方程互相耦合,看起来就是一团乱麻。当年多相电机刚起步时,学者们做的主要工作就是找一个合适的变换矩阵,把这六个物理量映射到几个正交平面上,让耦合尽可能解除。这个思路和三相电机里的Clarke变换、Park变换本质上是同一件事,只是维数从三变成六,变换矩阵的构造更复杂一些。
这套变换就是VSD,矢量空间解耦。经过变换后,原来的六个相变量被分解到三个二维子平面里:α-β平面、z1-z2平面、o1-o2平面。每个平面内只有两个分量,方程结构和三相电机的dq方程非常相似,控制器的设计思路就可以顺势迁移过来。形象一点说,VSD做的事情是把一个六口之家按性格分成三组,让每一组内部自己解决问题,组与组之间尽量少扯皮。
2.3 三个平面的物理含义
我建模时采用的VSD变换关系,按功率不变约束并假设A'相滞后A相30度电角度,可以写成下面这种形式:
x = [A, B, C, A', B', C']^T α = (A - 0.5B - 0.5C + 0.866A' - 0.866B') / sqrt(3) β = (0.866B - 0.866C + 0.5A' + 0.5B' - C') / sqrt(3) z1 = (A - 0.5B - 0.5C - 0.866A' + 0.866B') / sqrt(3) z2 = (-0.866B + 0.866C + 0.5A' + 0.5B' - C') / sqrt(3) o1 = (A + B + C) / sqrt(3) o2 = (A' + B' + C') / sqrt(3)这个形式只是我在这版模型里使用的归一化版本,不同文献对绕组排列方向和相移正负号的约定不完全一样,直接抄别人的矩阵之前一定要先做一次静态验证,否则后面闭环控制会被一个符号错误带到沟里。
三个平面的物理分工是:α-β平面承载基波磁动势,也就是真正产生转矩的平面。z1-z2平面主要对应五次、七次、十一次、十三次等空间谐波分量。如果永磁磁链理想正弦、逆变器也没有死区,这个平面里基本不该有电流。o1-o2平面则是零序分量,当中性点隔离时基本可以不管。
2.4 旋转坐标下的dq方程,注意z平面的漏感效应
把α-β平面继续旋转到同步旋转坐标系,得到的d1-q1方程和三相电机的dq方程几乎一样:
v_d1 = R*i_d1 + L_d*di_d1/dt - ω*L_q*i_q1 v_q1 = R*i_q1 + L_q*di_q1/dt + ω*(L_d*i_d1 + ψ_f)这里ω是电角速度,ψ_f是永磁磁链。d1、q1轴电感一般取主电感的dq分量,和三相永磁同步电机里的处理方式一致。
z1-z2平面如果也要做闭环控制,通常会再同步旋转到一个与谐波相对应的坐标系里,写成d3-q3的形式。这个平面的关键特点是电感量级很小,基本相当于漏感。原因是基波磁动势已经被α-β平面拿走了,z平面上没有主磁路对应的磁通。漏感小意味着哪怕只有很小的谐波电压,也会产生不小的谐波电流。这就是为什么六相电机对死区、调制不对称、转子磁场空间谐波特别敏感,因为外部各种非理想因素产生的谐波电压,很容易在低阻抗的z平面上激发出电流。你可以把这个平面想象成大楼的消防通道,平时没人走,但一旦有人堵了一点东西,麻烦会比主通道更大。
3. 在仿真环境里搭模型:从电机本体到双逆变器到PWM
3.1 整体模型拓扑,按信号流串起来
整个仿真模型我按信号流分成五个部分:直流母线、两套三相逆变桥、六相电机本体、控制算法模块、PWM调制模块。直流母线直接给两套逆变桥供电,两套逆变桥输出分别接到电机两套绕组的中性点隔离侧。控制算法模块采集相电流和转子位置,经过VSD变换和PID调节后生成电压指令,再通过逆变器调制输出到电机。模型的仿真步长我固定为10微秒,开关管动作和电流采样都按离散逻辑处理,这样后续调试更接近真实控制器。
搭建顺序上我建议先把电机本体和逆变器作为开环模型跑起来,输入端只给固定占空比或简单的恒压频比信号。先确认电机能转、相电流波形正常,再接闭环控制。别一上来就把所有模块连在一起,否则模型发散的时候你连是电机参数错了还是控制符号错了都分不清。
3.2 电机本体:用函数模块封装电压方程
我用的仿真平台没有现成的六相永磁同步电机模型,所以电机本体是用自定义函数模块实现的,内部处理流程是这样的:
- 输入六相电压和机械负载转矩;
- 通过VSD变换计算α-β平面和z1-z2平面的电压分量;
- 在旋转坐标系积分得到i_d1、i_q1、i_d3、i_q3;
- 通过逆变换得到六相电流并输出到示波器和电流控制器。
这里有一个细节非常容易出错:VSD变换针对的是电角度,机械角度要乘以极对数才能送入变换矩阵。多个极对数的电机如果这里漏乘,速度反馈会差好几倍,电流环会出现非常剧烈的振荡。还有,积分器初始值要设为0,并且尽量在模型里加上限幅,否则启动瞬间的大电压冲击会导致积分器飞掉,仿真直接发散。我在这版模型里给积分器输出加了软限幅,限制电压指令不超过直流母线电压的一半,这样即使PI参数没整定好,模型也不会在启动瞬间直接炸掉。
3.3 双逆变器与六相PWM实现细节
六相逆变器在仿真里可以建模成两个三相桥的集合。调制方式上我用了两套SVPWM,各自独立计算扇区,但调制波的相位要严格对应两套绕组之间30度的电角度偏移。如果两套调制波的相位关系没有处理好,即使控制算法输出精度再高,相电流里也会出现明显的谐波分量,这个谐波和算法无关,属于调制层面引入的系统误差。
还有一个很容易被忽略的细节是载波同步。两套三相桥最好共用同一套载波周期和相位,否则两套绕组的实际电压作用时间会有微小错位,六相系统中的z平面就会产生差模谐波。仿真里把两套调制器的参考载波用同一个时钟源触发就会非常稳。
3.4 一组可供复现的电机与控制器参数
仿真参数我按一类工业上常见的双三相永磁同步电机量级选取,不针对任何具体电机型号,但是你可以直接用这组参数把模型跑通,再替换成自己的目标参数。
| 参数 | 数值 | 说明 |
|---|---|---|
| 额定直流母线电压 | 540 V | 常见工业电压等级 |
| 定子电阻 | 0.5 Ω | 单相绕组电阻 |
| d轴电感 | 4 mH | 主电感分量 |
| q轴电感 | 4 mH | 表贴式电机,d、q接近 |
| 永磁磁链 | 0.6 Wb | 额定转速约1500 rpm |
| 极对数 | 4 | 用于机械角与电角换算 |
| 转动惯量 | 0.02 kg·m² | 负载转动惯量折算值 |
| 开关频率 | 5 kHz | 单套逆变桥开关频率 |
| 死区时间 | 2 μs | 保留死区以模拟真实谐波 |
这组参数搭出来的模型,额定转矩下相电流的基波有效值大约在几十安培量级。你可以先跑空载,再逐步加载,观察电流波形是否畸变,这个加载过程本身就是对模型正确性最好的检验。
4. 矢量控制策略落地:双dq控制与VSD控制,别把两者混为一谈
4.1 双dq控制的思路与局限性
一提到六相电机的矢量控制,很多人的第一反应就是把两套三相绕组分别看成两台三相电机,各自做一套dq变换和电流调节器,然后输出分别给自己的三相桥。这就是双dq控制,实现起来确实直观,因为所有模块都是三相系统里现成的,调试经验可以直接复用。
但双dq控制有一个明显的短板:它没有把两套绕组之间在谐波平面上的耦合关系考虑进去。两套绕组虽然在空间上错开30度,但它们在电磁上处于同一个定子磁场里,单独控制两台“虚拟三相电机”,并不能保证五次、七次等谐波电流得到有效抑制。我实测下来,双dq控制能保证基波电流响应不错,但相电流波形的变形相对明显,尤其是在死区影响下。如果你的目标是尽量压低谐波电流、降低转矩脉动,双dq只能算一个过渡方案。
4.2 我采用的控制结构:基波平面的双闭环加z平面电流抑制
这版仿真模型最终采用的是VSD控制策略,整体结构比双dq控制多了一层z平面电流控制。速度外环输出q轴电流参考id_ref,d轴电流参考按id=0控制。这个参考值经过限幅后进入d1-q1电流环,得到d1-q1电压指令。与此同时,d3-q3电流环的参考值都设为0,用来主动抑制z平面上的谐波电流。两套电压指令再经过逆VSD变换,得到六相电压参考,送给两套SVPWM调制器。
为什么要把d3-q3电压参考设为0?因为在理想电机模型里z平面不该有电流,我们希望通过这个控制环把外界扰动引起的谐波电流硬拉回零。这个平面里的PI参数和基波平面不太一样,增益要求更高,否则死区产生的谐波电压根本压不住。我在调试中一个比较有用的经验是:先把d3-q3环的比例增益从小往上加,同时观察z1、z2电流的波形,直到看到谐波明显收敛为止。增益加到某个点以后,谐波不再明显下降反而开始出现高频毛刺,那就说明已经到稳定边界附近了,应该往回退一点。
4.3 速度与电流环PI参数计算,以及解耦补偿
电流环PI参数可以按工程近似法来算。以d1-q1轴为例,电机电气方程为电阻加电感的一阶系统,期望闭环带宽设为ωc,那么比例增益Kp可以取L乘以ωc,积分增益Ki取R乘以ωc。假设电流环带宽取开关频率的五分之一,5kHz开关频率对应ωc约1000π,即约3140 rad/s。用上面的Ld=4mH、R=0.5Ω计算,Kp大约是12.6,Ki大约是1570。这个值只作为初始猜测,仿真里还要微调。
速度外环的带宽要明显低于电流环,一般取电流环带宽的五分之一到十分之一。速度环PI参数我没有用太复杂的整定公式,直接在仿真里做阶跃响应,看转速超调和恢复时间调整。还有一个容易被忽略的地方是电压解耦补偿。在d1-q1方程里,d轴和q轴电压之间存在交叉耦合项ωLqi_q1和ωLdi_d1,控制器如果不加解耦,高速时电流响应会明显变差。我在模型里加了解耦补偿,补偿量直接叠加在电流环PI输出上,这样两个轴之间基本解耦,高速动态响应会顺滑很多。
5. 调试过程与结果解读:把谐波电流压下去的过程
5.1 先把z平面电流泄掉,再谈稳态精度
第一次闭环上电的时候,我先把d3-q3环的PI增益设置得非常小,相当于先让z平面电流自由流动,然后专门看相电流波形。这时候相电流的畸变几乎是肉眼可见的,波形在峰顶附近明显变平,还有些锯齿状抖动。用仿真示波器看z1-z2平面电流,能看到很大幅度的五、七次谐波成分。这一步其实是故意暴露问题,让谐波电流全部显现出来,给自己一个“未加抑制前”的基准。
确认基线之后,再把d3-q3环的PI增益从低到高慢慢增加。我习惯的做法是先把比例增益调到和基波平面电流环相近的水平,积分增益先给较小值,观察z电流是否回落。z1、z2电流从大幅度振荡变成一条接近零的直线时,说明谐波抑制已经有效果了。这个过程基本不会一次成功,我反复调了三轮才让z电流稳定在额定电流百分之几以内。
5.2 几个关键仿真结果对比
为了更直观地说明z平面电流控制的效果,我把同一工况下加与不加z电流抑制的结果放在一起对比。工况是额定转速1500 rpm,负载转矩30 N·m,死区2微秒,开关频率5kHz。
| 指标 | 关闭d3-q3环 | 启用d3-q3环 |
|---|---|---|
| 相电流总谐波畸变率THD | 约8.7% | 约2.6% |
| z平面电流峰峰值 | 明显可见,峰值约5 A | 基本抑制到0.5 A以内 |
| 转矩脉动峰峰值 | 波动明显 | 明显收敛 |
| 转速稳态误差 | 小于0.5% | 小于0.3% |
数字是这组特定参数下仿真得到的,不同电机参数下绝对数值会有差异,但趋势是稳定的:z平面是六相电机谐波电流的汇聚地,接上d3-q3闭环以后,相波形会明显变干净。这个提升不是靠滤波或者前端处理,而是主动控制出来的,这也是六相电机相对三相电机一个很大的优势空间。
5.3 参数整定顺序和观察指标
我在调试中总结了一套比较实用的顺序,放到模型里对号入座就能少走很多弯路。
第一,先确认VSD变换矩阵。给一组已知的对称六相电流,看变换结果是不是只有α-β平面有值,z平面和o平面都接近零。如果z平面出现了很大的基波分量,说明矩阵的符号或相移方向错了,这个必须优先排除。第二,确保基波平面闭环能稳定。关掉z环,只让d1-q1环单独工作,看转速和q轴电流能否快速收敛。如果这里都不稳,问题通常出在编码器电角度采样或者VSD逆变换上。第三,把z环从零增益慢慢往上加,同时观察三相六个线电流的对称性。四个桥臂电流出现明显不对称时,要优先检查各桥的PWM占空比是否有偏置。
我还有个习惯,每次修改完参数都会记录当时的相电流THD和z电流峰峰值,形成一个小的调参记录。多相电机的参数空间比三相大不少,单凭感觉调很容易调完后面忘前面。有了数据记录,至少能知道每次改动是让性能变好了还是变坏了。
6. 六相真正的招牌:断相容错仿真验证与避坑
6.1 故障场景设置:中性点隔离的前提下断掉一相
做六相电机仿真不做故障验证,就像买车只看展车不试碰撞,始终差了最重要的一环。我这版模型里设了最具代表性的故障场景:中性点隔离前提下,某相绕组突然断线。仿真里实现方式不是直接用断路开关去切断瞬时电流,因为电感电流不能突变,直接开路会导致电感电流无处续流,数值上瞬间产生过电压尖峰,模型极易发散。
我做故障切换的做法是:先把该相电流参考强制到0,让电流环主动把这一相电流压到接近0,然后在电流很小的时候再真正断开这一相对应的桥臂脉冲。这种方式既符合物理规律,也和真实控制器里的“先限流、后断相”策略一致。故障发生后,电机的可用相数变成了五相,原本的对称六相VSD变换不再完全适用,必须重新分配剩余五相的电流参考。
6.2 容错控制的重构思路
容错重构的核心思想是:在剩余相绕组里重新分配电流,让合成磁动势尽量接近圆形,以维持相对平稳的转矩输出。听起来复杂,实现时我采取的是工程化的简化路径:故障相电流保持为0,其余五相电流参考通过一个按剩余绕组空间位置重新计算的变换矩阵得到,相当于从六相系统临时降级为五相系统。
这里要提示的是,降级之后电机出力能力会下降。理论上永磁同步电机的平均转矩能力大约能保留额定值的百分之七八十,但实际上受限于剩余相的电流容量和调制电压的利用率,我在仿真里得到的容错运行转矩大约为额定转矩的65%到75%。这个数字完全可以接受,关键是避免了“故障一下就全线停机”的尴尬局面。仿真结果显示,断相瞬间转速会跌一点,随后在速度环的调节下能恢复回来,但转矩脉动和相电流谐波会比正常状态明显增大。
6.3 断相结果与几个实测中的坑
断相后我把剩余五相的相电流波形调出来看过,形状不再是标准对称六相的样子,某个半桥完全没有电流,其他桥臂会承担更大的电流应力。如果你不加任何措施,速度环为了维持转速会不断增大q轴电流参考,最终可能触发电流限幅。工程上做容错运行时通常会主动降额定转矩目标,不给速度环无穷大的权限,否则虽然仿真模型能跑,实际硬件早就过流了。
还有一个容易掉进去的坑是坐标变换的归一化。断相之后,继续使用原六相VSD变换矩阵,变换结果里会出现一个非零的“虚拟电流”分量,这个分量不属于任何真实物理电流,会导致d3-q3环瞎忙活。更稳妥的做法是断相后切换到重新归一化的五相变换矩阵,我对这个问题的处理是:直接在函数模块里判断故障标志位,根据剩余相重新计算坐标变换系数。代价是逻辑变复杂,但换来了仿真结果的可靠性。
最后说一个模型之外但实践里很值得注意的事。断相容错之后,z平面电流控制的作用会被放大。因为剩余五相绕组结构不对称,原本被抑制的空间谐波会被重新激发。这意味着容错状态下d3-q3环的PI参数最好与正常运行状态不同,否则电流波形会非常难看。我在模型里做了两套PI参数,正常运行用理想参数,断相后用相对保守的参数,既保障了转矩输出能力,又不会让谐波控制回路过度调节导致振荡。
这趟仿真探索下来,我养成了一个习惯:凡是看到“多相电机”的模型,先问清绕组排列角、中性点处理方式和故障后控制重构策略这三个问题。它们决定了模型能不能稳定收敛,也决定了仿真结果能不能真正指导硬件设计。六相永磁同步电机的矢量控制不是简单的通道翻倍,而是把原本三相问题里被掩盖的谐波、零序和故障冗余问题全部摆到了台面上。如果你正在做类似方向的验证,先从VSD变换和z平面控制入手,把这两个关节打通,后面的容错控制与弱磁扩展都会顺畅很多。