1. SVPWM 基础与电机模型:从原理到实战

各位同学,欢迎来到《基于 SVPWM 的编码器换相校准》的第一章。

说实话,我刚开始做电机控制那会儿,最头疼的就是 SVPWM。书上全是空间矢量、扇区判断、作用时间计算,看得人云里雾里。后来在项目里调了无数次波形,才真正搞明白——SVPWM 说白了,就是用六个开关管,模拟出一个旋转的电压矢量,让电机转起来。

这一章,咱们就把 SVPWM 的底裤扒干净。同时把 Clark 变换、Park 变换和 PMSM 模型也一并拿下。这些都是后续换相校准的基石,绕不过去。

1.1 为什么是 SVPWM?

传统的 SPWM(正弦脉宽调制)只盯着三相电压的正弦波形,但电机需要的是圆形旋转磁场。SPWM 的电压利用率只有约 86%,而且谐波大。SVPWM 直接以「合成旋转电压矢量」为目标,电压利用率能到 100%,谐波也更小。

我在一个 48V 的低压伺服项目里,用 SPWM 时电机转速死活上不去,换成 SVPWM 后,同样的母线电压,转速直接提升了 15%。嗯,这就是差距。

核心结论:SVPWM 不是「另一种 PWM」,而是「以空间电压矢量为目标的 PWM 策略」。它让逆变器输出的电压矢量无限逼近圆形轨迹。

1.2 逆变器与基本电压矢量

先看硬件基础。一个三相两电平逆变器,有 6 个开关管(Q1~Q6)。同一桥臂上下不能直通,所以每个桥臂只有两种状态:上管导通(记为 1)或下管导通(记为 0)。

三个桥臂组合起来,一共 2³ = 8 种状态。其中 6 种是非零矢量(V1~V6),2 种是零矢量(V0 和 V7,即全上管导通或全下管导通)。

状态 (a,b,c) 矢量编号 幅值 角度
(1,0,0)V12/3 Vdc0°
(1,1,0)V22/3 Vdc60°
(0,1,0)V32/3 Vdc120°
(0,1,1)V42/3 Vdc180°
(0,0,1)V52/3 Vdc240°
(1,0,1)V62/3 Vdc300°
(0,0,0)V00—
(1,1,1)V70—

这 6 个非零矢量把平面分成 6 个扇区,每个扇区 60°。我们的目标,就是用相邻的两个非零矢量和零矢量,合成任意方向和幅值的电压矢量。

1.3 SVPWM 的核心步骤

我个人习惯把 SVPWM 的生成过程拆成四步,这样写代码时思路特别清晰:

  1. 判断扇区:根据 Uα、Uβ 确定目标矢量落在哪个扇区。
  2. 计算作用时间:算出相邻两个非零矢量各自要作用多久(T1、T2)。
  3. 计算占空比:把 T1、T2 分配到三个桥臂的导通时间上。
  4. 生成 PWM:用定时器输出对称的七段式 PWM 波形。

你想想看,这其实就是「伏秒平衡」——用两个固定方向的矢量,拼出一个任意方向的矢量。我在调试时经常用示波器看 PWM 波形,七段式的对称波形谐波最小,电流纹波也最小。

实战技巧:扇区判断不用算 arctan,直接用 Uα、Uβ 的符号和大小关系就能判断。我一般用查表法,比 if-else 嵌套快得多。

1.4 Clark 变换与 Park 变换

这两个变换是 FOC(磁场定向控制)的数学基础。说白了,就是把三相交流量,变成两相直流量,这样就能用 PI 控制器去调了。

Clark 变换(3s → 2s)

把三相电流 ia、ib、ic 投影到两相静止坐标系 α-β 上。公式很简单:

Iα = ia
Iβ = (ia + 2*ib) / √3

注意,这里用了等幅值变换。有些教材用等功率变换,系数会差一个 √(2/3)。我个人习惯用等幅值,因为调试时数值更直观。

Park 变换(2s → 2r)

把 α-β 坐标系旋转 θ 角,得到 d-q 旋转坐标系。θ 就是转子电角度。

Id = Iα * cosθ + Iβ * sinθ
Iq = -Iα * sinθ + Iβ * cosθ

Id 是励磁分量,Iq 是转矩分量。在表贴式 PMSM 中,我们通常让 Id = 0,只控制 Iq 就能控制转矩。

我曾经在一个项目里,因为编码器安装偏差导致 θ 不准,结果 Id 和 Iq 耦合严重,电流环怎么调都抖。后来用自校准把角度偏差补偿掉,问题才解决。嗯,这就是为什么咱们这门课要讲换相校准。

1.5 永磁同步电机(PMSM)数学模型

在 d-q 坐标系下,PMSM 的电压方程和转矩方程是这样的:

物理量 方程 说明
d 轴电压Vd = Rs·Id + Ld·dId/dt - ωe·Lq·IqRs 是定子电阻,Ld/Lq 是电感
q 轴电压Vq = Rs·Iq + Lq·dIq/dt + ωe·(Ld·Id + ψf)ψf 是永磁体磁链
电磁转矩Te = 1.5·p·[ψf·Iq + (Ld - Lq)·Id·Iq]p 是极对数

对于表贴式 PMSM(Ld = Lq),转矩方程简化为 Te = 1.5·p·ψf·Iq。你看,转矩和 Iq 成正比,控制起来特别简单。

避坑指南:我曾经在调试大功率电机时,忽略了 dq 轴交叉耦合项(ωe·Lq·Iq 和 ωe·Ld·Id),导致高速时电流环发散。后来加了前馈补偿才稳住。所以,写电流环时一定要把耦合项算进去。

1.6 知识体系总览

下面这张图,把本章的核心逻辑串起来了。从三相逆变器到 SVPWM,再到坐标变换和电机模型,每一步都是下一环的输入。

SVPWM 与电机模型知识体系 三相逆变器 6 个开关管,8 种状态 基本电压矢量 V0~V7,6 个非零 + 2 个零 SVPWM 合成 扇区判断 + 时间计算 Clark 变换 3s → 2s (α-β) Park 变换 2s → 2r (d-q) PMSM 数学模型 电压方程 + 转矩方程 核心逻辑 三相电流 → Clark → Park → 电流环控制 → 反 Park → SVPWM → 逆变器

1.7 本章小结

这一章我们干了三件事:

  • 理解了 SVPWM 的本质——用基本电压矢量合成任意旋转矢量。
  • 掌握了 Clark 和 Park 变换——把交流变直流,方便控制。
  • 建立了 PMSM 的 d-q 模型——知道了转矩怎么控制。

这些内容,是后续所有章节的数学和物理基础。尤其是 Park 变换中用到的电角度 θ,它的准确性直接决定了换相校准的成败。下一章,我们就会深入编码器,看看角度是怎么读出来的。

个人建议:如果你现在对 SVPWM 的扇区判断和时间计算还有点模糊,别急。打开一个仿真软件(比如 Simulink 或 PLECS),搭一个 SVPWM 模块,看波形跑起来,比看十遍书都管用。我当年就是这么入门的。