2. 电机基础与FOC原理

在进入ST Motor SDK的实战之前,必须先厘清被控对象——电机本体——的物理结构与数学模型。FOC(Field Oriented Control,磁场定向控制)并非一种单纯的算法,而是一套基于电机电磁模型的坐标变换与解耦控制框架。本章将聚焦直流无刷电机(BLDC)与永磁同步电机(PMSM)的结构差异,深入解析Clarke变换与Park变换的数学本质,并阐明SVPWM(空间矢量脉宽调制)如何将电压矢量高效地施加到电机绕组上。只有透彻理解这些底层原理,才能正确配置ST Motor SDK中的电机参数,并读懂调试波形中的异常。

FOC坐标变换与SVPWM工程链路图 电机本体 BLDC / PMSM 三相绕组 120°分布 Ia/Ib/Ic Clarke变换 三相→两相静止αβ Iα, Iβ θ=0 参考 Park变换 静止→旋转dq轴 Id, Iq θ=电角度 θ 电角度(编码器/霍尔) 反Park变换 Vd,Vq→Vα,Vβ SVPWM 扇区判断+矢量合成 三相逆变桥 6路PWM输出 电流采样反馈(低端/高端采样)

上图展示了FOC控制链路的核心信号流:三相电流经Clarke变换得到静止两相坐标系下的分量,再经Park变换得到旋转坐标系下的直轴与交轴分量;控制器在dq轴系下分别调节励磁电流与转矩电流,输出经过反Park变换和SVPWM调制后驱动逆变桥。整个过程依赖精确的电角度θ,该角度由编码器或霍尔传感器实时提供。

BLDC与PMSM的结构差异及反电动势特征

BLDC与PMSM在物理结构上高度相似——定子均为三相绕组,转子均为永磁体。但两者在绕组绕制方式与反电动势波形上存在本质区别,这直接决定了控制策略的选择。

  • BLDC(方波驱动):定子绕组采用集中式绕法,反电动势为梯形波。控制上通常采用六步换相法,任意时刻只有两相导通,第三相悬空。转矩脉动较大,但控制简单、成本低。
  • PMSM(正弦波驱动):定子绕组采用分布式绕法或短距分布,反电动势为正弦波。控制上必须使用FOC或DTC(直接转矩控制),三相同时导通,合成旋转磁场平滑,转矩脉动极小,适合高精度伺服应用。
对比维度BLDCPMSM
反电动势波形梯形波正弦波
绕组分布集中绕组分布绕组
转矩脉动较大(约10%-15%)小(<5%)
控制方式六步换相/方波FOC/正弦波
噪声与振动较高低
ST SDK适用支持(霍尔/反电动势检测)支持(编码器/霍尔)

在ST Motor SDK中,选择电机类型时需明确填写反电动势系数Ke(V/千转)和极对数。若将PMSM配置为BLDC模式,会导致转矩波动加剧;反之,将BLDC配置为PMSM模式,则因反电动势谐波含量高,FOC的PI调节器难以完全抑制转矩脉动。

实战经验:ST Motor SDK的Motor Profiler工具可自动识别电机类型。在首次调试时,建议先运行该工具,它会注入高频电压信号并分析电流响应,自动估算Ke、定子电阻Rs、电感Ld/Lq等参数,避免手动输入错误。

Clarke变换与Park变换的数学推导及物理意义

FOC的核心思想是解耦。三相静止坐标系下的电流矢量在空间上互差120°,直接控制困难。通过坐标变换,将三相电流映射到与转子同步旋转的dq坐标系中,即可将交流量转化为直流量,从而使用PI控制器实现无静差调节。

Clarke变换(3→2):将三相电流投影到两相静止αβ坐标系。等幅值变换的公式为:

Iα = Ia - 0.5*Ib - 0.5*Ic
Iβ = (√3/2)*(Ib - Ic)

该变换保持电流幅值不变,但功率计算需乘以3/2系数。ST SDK内部默认采用等幅值变换,因此在设置电流环增益时无需额外补偿。

Park变换(2→2旋转):将αβ坐标系旋转θ角(电角度),得到dq坐标系:

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

Id为励磁电流分量,Iq为转矩电流分量。对于表贴式PMSM(Ld=Lq),控制目标通常为Id=0,此时电磁转矩与Iq成正比。对于内置式PMSM(Ld≠Lq),可利用磁阻转矩,通过负Id注入实现最大转矩电流比(MTPA)控制。

工程要点:Park变换需要精确的电角度θ。若θ存在偏差,会导致Id/Iq耦合,表现为转矩输出下降和电流波形畸变。在ST SDK中,θ由编码器或霍尔传感器计算,需正确设置极对数和编码器分辨率。例如,一个4对极电机配2500线增量编码器,电角度周期为机械角度的1/4,SDK内部会自动进行倍频处理。

SVPWM原理与扇区判断

SVPWM并非简单的正弦脉宽调制(SPWM),而是从逆变器开关组合的角度,直接合成期望的电压空间矢量。三相逆变器共有8种开关状态(6个有效矢量+2个零矢量),在αβ平面构成正六边形扇区。

SVPWM的调制流程分为四步:

  1. 扇区判断:根据Vα、Vβ的符号和大小关系,确定参考电压矢量所在的扇区(I~VI)。
  2. 相邻矢量作用时间计算:利用伏秒平衡原理,计算两个相邻有效矢量(T1、T2)和零矢量(T0)的作用时间。
  3. 占空比分配:将计算出的时间转换为三相上桥臂的占空比,并插入零矢量进行对称化处理,降低谐波。
  4. 死区补偿:为防止上下桥臂直通,需插入死区时间(典型值0.5~2μs),并在低转速时进行死区补偿。
扇区条件(Vα, Vβ)相邻矢量最大调制比
IVα>0, Vβ>0, Vβ<√3VαV1(100), V2(110)0.866
IIVβ>0, Vβ>√3|Vα|V2(110), V3(010)0.866
IIIVα<0, Vβ>0, Vβ<-√3VαV3(010), V4(011)0.866
IVVα<0, Vβ<0, Vβ>-√3VαV4(011), V5(001)0.866
VVβ<0, Vβ<√3VαV5(001), V6(101)0.866
VIVα>0, Vβ<0, Vβ>√3VαV6(101), V1(100)0.866

SVPWM的直流母线电压利用率比SPWM高约15%,这意味着在相同母线电压下,电机可达到更高的转速。ST Motor SDK的PWM频率默认设置为10kHz~20kHz,兼顾开关损耗与电流纹波。

风险提示:在低转速大扭矩工况下,SVPWM的占空比可能接近0或100%,此时死区效应和功率管压降会导致电流波形畸变。ST SDK提供了死区补偿和最小脉宽限制功能,务必在调试时开启,否则会出现明显的转矩抖动。

坐标变换在ST Motor SDK中的参数映射

在ST Motor SDK的MC配置工具中,坐标变换相关的参数分散在多个界面。理解这些参数与数学公式的对应关系,是正确配置的前提。

  • 电流采样放大倍数:对应Clarke变换前的电流重构。SDK支持三电阻采样和单电阻采样,需设置运放增益和ADC位数。
  • 编码器分辨率与极对数:直接影响Park变换中的θ计算。若设置错误,会导致电流环振荡。
  • 电流环带宽:PI参数基于电机电时间常数(L/R)整定。SDK的自动整定功能会通过阶跃响应辨识L和R。
  • 弱磁控制:当转速超过基速时,需要负Id弱磁。SDK的弱磁模块基于电压反馈,自动调整Id参考值。

一个典型的调试案例:某客户使用ST Motor SDK驱动一台2对极PMSM,额定转速3000rpm,母线电压48V。初始配置时,客户将极对数误设为1,导致电角度计算减半。现象为:电机空载运行正常,但加载后电流急剧增大,转速跌落明显。通过ST Motor Profiler重新辨识,发现极对数错误,修正后转矩输出恢复正常。

复盘要点:极对数错误不会导致电机完全无法运行,但会表现为“有力使不出”——因为电角度更新频率减半,电流矢量与转子磁场不再正交,产生去磁分量。在ST SDK的调试界面中,观察Iq的实际值与参考值是否一致,若Iq持续饱和而转速不升,优先检查极对数和编码器方向。

此外,Clarke变换的零序分量处理也值得注意。在三电阻采样方案中,若母线电压较低或占空比过小,采样窗口可能不足。ST SDK通过插入最小采样时间或使用移相PWM解决此问题。在配置PWM频率时,需确保PWM周期大于ADC采样时间与死区时间之和。

最后,建议在完成本章学习后,使用ST Motor SDK的虚拟示波器功能,同时观察Iα/Iβ和Id/Iq波形。当电机稳定运行时,Id/Iq应为平滑的直流量,而Iα/Iβ为正弦波。若Id/Iq存在明显纹波,说明θ估算存在误差或电流采样噪声过大,需检查硬件滤波电路或软件滤波器参数。