做零低速无感控制的人,大概率都经历过这种尴尬:转速一掉下来,反电动势薄得像层纸,位置观测器开始漂移,电流波形也开始长毛。想不装编码器继续把转子位置摸清楚,高频注入是一条绕不开的路。我最早用的是旋转高频电压注入,模型里塞了一堆带通滤波器,调相调幅搞到头大。直到把高频方波电压注入方案搬到Simulink上,才发现这方案在数字控制器里简直是零低速场景的默认答案——不需要带通滤波器,不需要复杂的锁相解调,一个差分采样就能把位置误差拎出来,模型干净得多,调试也轻松得多。
这篇文章就把我当时搭这套“基于高频方波电压注入的零低速IPMSM无感控制Simulink仿真模型”的经验完整拆一遍。核心是“在估计的d轴注入高频方波电压、从估计的q轴电流差分里提取位置误差信号”,里面涉及原理推导、模型架构、参数整定、观测器设计和调试避坑,非常适合正在做无感控制课题的研究生、刚接触PMSM矢量控制的工程师,以及想把仿真模型从“能转”做到“转得稳”的人。
1. 项目需求与方案选型:为什么零低速必须另辟蹊径
1.1 零低速区反电动势法的失效边界
中高速段的无感控制,主流方案是反电动势法或者磁链观测器。原理很直白:转子转动时,定子绕组会切割永磁体磁场,产生与转速成正比的反电动势。通过检测这个反电动势的大小和相位,就能反推出转子位置。
问题是,反电动势大小正比于转速和永磁磁链的乘积,转速越低,反电动势越小。零速附近,反电动势趋近于零,信噪比差到根本没法用。我实测过在额定转速5%以下的区域,基于反电动势的滑模观测器输出的位置误差能直接炸到几十度电气角,电流环跟着就崩了。这不是观测器算法不够好,是物理信号本身就没了,巧妇难为无米之炊。
所以零低速区必须换一条路:给电机主动注入一个已知的高频激励信号,通过测量电感的凸极效应来提取位置。这本质上是“主动制造信息”,而不是“被动读取信息”。
1.2 高频注入法的三条路线怎么选
高频注入法大致分三派:旋转高频电压注入、脉振正弦电压注入、高频方波电压注入。它们的核心差异在于注入位置和位置误差解调方式。
| 方案 | 注入位置 | 误差信号解调方式 | 数字化实现难度 | 特点 |
|---|---|---|---|---|
| 旋转高频注入 | 静止αβ轴 | 带通滤波提取负序分量 | 较复杂,需要多组滤波器 | 对采样同步要求高,早期方案常用 |
| 脉振正弦注入 | 估计d轴 | 乘法器+低通滤波同步解调 | 中等,有相位延迟问题 | 低速稳态精度好,动态响应偏慢 |
| 高频方波注入 | 估计d轴 | 差分采样直接提取 | 简单,不需要滤波器 | 带宽高、动态好,适合数字控制 |
标题里写的是“在估计的d轴注入”,这属于脉振注入路线,但用的激励信号是方波而不是正弦。选方波有一个很实际的原因:数字控制器里产生方波太方便了,一个定时器翻转就行;解调也简单,方波半周期内电压极性固定,电流近似线性变化,两个采样点做减法就能得到位置误差。
而正弦注入需要在当前周期叠加一个正弦查表值,还要在解调端做同步乘法器和低通滤波器。滤波器相位延迟会直接影响到位置环带宽,带宽一高就容易振荡,带宽太低动态响应又拉胯。方波注入把这一堆麻烦全省了。
一句话总结选型逻辑:零低速需要主动注入,主动注入里方波又最适合数字控制,这就是这套方案的核心出发点。
2. 高频方波注入的核心原理与误差信号提取
2.1 在估计的d轴注入,从q轴读出误差
先把物理模型推到能编程的程度。IPMSM在高频激励下,转速项和电阻压降都远远小于电感压降,所以高频电压方程可以简化成:
v_dh ≈ Ld * di_dh/dt v_qh ≈ Lq * di_qh/dt也就是说,高频电压主要压在电感上,电流变化率等于电压除以电感。IPMSM最大的特点就是Ld和Lq不相等,这就是“凸极效应”,也是我们能通过注入提取位置的根本原因。
现在假设估计坐标系和实际转子坐标系之间存在位置偏差Δθ = θe - θ̂e。我们在估计的d轴注入高频方波电压:
v_d̂ = V_inj * S (S在+1和-1之间按注入频率切换) v_q̂ = 0其中一个方波半周期的时间记为ΔT = 1/(2 * f_inj)。经过坐标变换和电感矩阵运算,估计q轴电流在一个半周期内的差分响应为:
Δi_q̂ = S * V_inj * ΔT * (Lq - Ld) * sin(2*Δθ) / (Ld * Lq)这个式子很关键。它告诉我们三件事:
- 误差信息以sin(2Δθ)的形式出现在q轴高频电流的差分里。
- 因为IPMSM有Lq > Ld,系数为正,所以误差信号的方向是确定的。
- 当Δθ很小的时候,sin(2Δθ)约等于2Δθ,直接就是线性化位置误差。
这里的“在估计的d轴注入、从估计的q轴读信号”是脉振注入法的精髓。如果像旋转注入那样在αβ轴注入,就得去解负序分量;而在估计d轴注入的好处是,误差信号只出现在q轴,物理上天然解耦。
2.2 差分采样为什么比正弦解调更省事
正弦高频注入的完整信号链是:注入正弦电压 → 电流里既有基波又有高频分量 → 先用带通或高通滤波把高频电流抓出来 → 乘法器解调 → 低通滤波器 → 误差信号。每一级滤波器都引入相位延迟和幅值衰减,调试时非常别扭。
方波注入完全不同。由于方波电压在每个半周期内极性恒定,高频电流近似为线性上升或下降的三角波。我们只需要在每个半周期末端采样一次q轴电流,然后用相邻两个半周期的采样值做差分,就能得到与位置误差成正比的信号。
实际Simulink实现时更简单:采样两次、做差、乘上与注入方向对齐的符号信号,就得到误差信号了。整个过程没有任何动态环节,也就没有相位延迟,位置观测器带宽可以做得更高,动态响应自然更好。
这也是为什么现在不少量产低转速无感方案都改走方波注入路线——成本低、逻辑简单、鲁棒性高。
关键点:方波注入的一个半周期必须采样一次,两次采样点的时间和PWM/注入时序要对齐。后面调试部分我会详细说这个坑。
3. Simulink仿真模型搭建全流程
3.1 模型总体架构与模块划分
整套Simulink模型的顶层可以划分成四个大块:控制算法部分、逆变器与电机被控对象、采样与信号处理、位置观测器。
控制算法部分包括:坐标变换(Clark/Park)、d轴和q轴电流环PI、高频方波注入模块、SVPWM调制。被控对象用Simulink里的标准IPMSM电气模型加平均值逆变器模型。采样与信号处理部分负责把三相电流采样回控制坐标系,并实现差分解调。位置观测器输出估计磁链角,反馈给坐标变换和注入模块。
我建议第一步先用平均值逆变器模型把控制逻辑跑通。平均值模型忽略功率管开关细节,仿真速度快很多,尤其适合验证“算法本身”是否正确。等所有参数都整定好了,再切换到带IGBT开关的详细模型,验证采样死区等实际问题。不要一上来就上开关模型,不然仿真速度会让人怀疑人生。
搭建模型时还需要注意控制频率和采样频率的一致性。整个控制系统按一个固定步长运行(比如1e-4秒,对应10kHz控制频率),所有注入、采样、解调、电流环计算都在这个周期内完成。Simulink里用定步长离散求解器,步长取控制周期的整数分之一。
3.2 注入与解调模块的实现细节
注入模块的核心是生成一个与控制周期同步的方波符号信号S。比较直接的做法是用一个单位延迟单元产生交替的+1/-1序列,或者用一个简单的计数器在每半个注入周期翻转一次符号。这个符号序列同时用于两个地方:叠加到d轴电压给定上,以及提供给解调端做方向校准。
解调模块的Simulink实现分三步:
- 第一步,在注入周期的每个半周期末端,用采样保持器捕获q轴电流i_q̂。
- 第二步,用单位延迟保存上一个采样点的值,做差分:ε_raw = i_q̂(k) - i_q̂(k-1)。
- 第三步,将差分结果乘以当前注入方向符号S以及归一化系数,得到位置误差信号ε。
归一化系数就是前面推导公式里的V_inj * ΔT * (Lq - Ld) / (Ld * Lq)。实际调试时可以直接令注入幅值固定,然后用一个可变增益去补偿电感误差,通过观察启动过程来调。也可以干脆不做归一化,把增益并入观测器的PI参数里,效果一样,只是物理意义没那么直观。
还有一个小细节:差分信号里其实还叠加了基波电流的变化量。理论上基波变化率远低于注入频率,半个周期内基波电流基本不变,差分后可以抵消。但如果电流环带宽拉得太高,或者采样点没有对齐方波翻转时刻,会残留基波分量。所以解调输出后面通常还是会补一个一阶低通,截止频率取位置观测器带宽的3到5倍,主要滤高频毛刺,不影响动态。
3.3 核心参数整定实例
现在给一组可以直接参考的参数。我当时的仿真对象是一台额定功率1.5kW的IPMSM,具体参数如下:
| 参数 | 数值 |
|---|---|
| 直流母线电压 | 310V |
| 额定电流 | 5A |
| 定子电阻Rs | 0.96Ω |
| d轴电感Ld | 5.5mH |
| q轴电感Lq | 12.5mH |
| 极对数 | 4 |
| 额定转速 | 2000rpm |
| 永磁磁链 | 0.175Wb |
核心注入参数按照以下原则确定:
- 开关频率f_sw取10kHz,方波注入频率f_inj取5kHz,即开关频率的一半。这样每个注入半周期对应一个控制周期,采样逻辑最简单。
- 注入电压幅值V_inj取40V,约母线电压的13%。这个值对应的高频电流纹波幅度约0.7A,也就是额定电流的14%左右,既有足够的信噪比,也不会导致过流。
- 电流环带宽设计在300Hz左右,远低于注入频率5kHz,确保电流环对注入频率基本不响应。
- 位置观测器带宽设计在30Hz附近,与电流环带宽拉开10倍以上距离,避免环路相互影响。
这组参数跑出来的效果是:零速启动时位置误差能收敛到3度电气角以内,低速加载情况下波动不超过5度,动态过程没有明显振荡。
注意:注入幅值不是越高越好。幅值太大,高频电流纹波会叠加在基波上,导致转矩脉动和噪声;幅值太低,差分信号淹没在采样噪声里。一般先从10%母线电压起步,看差分信号的信噪比再微调。
4. 位置观测器设计与观测环带宽匹配
4.1 从误差信号到转速位置的解算
高频注入解调出来的误差信号ε与sin(2Δθ)成正比,小角度下近似等于2Δθ。接下来需要一个观测器把误差信号变成收敛的估计位置。最常用也最稳的结构是锁相环方式的观测器,结构很简单:
误差ε → 比例积分调节器 → 估计速度ω̂_e → 积分 → 估计位置θ̂_e
PI调节器的作用是让误差信号稳定收敛到零。误差为零,代表估计位置等于实际位置,整个观测器进入稳态。
用典型二阶系统来设计PI参数。设观测器自然频率取40rad/s(大约6.4Hz),阻尼比取0.707,那么PI参数可以通过期望闭环带宽和系统增益换算得到。由于没有做归一化时,系统前向增益就是ε对Δθ的线性系数,整定的时候先给定一个基础PI值,再用“观测器带宽越高,启动越快但噪声越敏感”这条规律去微调。
这里有个实测经验:观测器带宽不要一上来就拉满。带宽太低,转速变化时位置跟踪滞后,启动容易飞车;带宽太高,采样噪声和死区引起的脉动会被放大,稳态位置波动大。我最后停在30Hz左右,对1.5kW的电机来说,动态和稳态都比较平衡。
4.2 引入速度前馈改善动态响应
零低速阶段,如果负载突变或者给定转速阶跃,纯靠观测器PI去追位置误差会有明显的动态滞后。一个很简单的优化是加入速度前馈:把指令速度或者上一拍估计速度直接加到观测器PI输出上,相当于让观测器“预判”位置变化方向。
在Simulink里的实现非常直接:PI输出的速度估计值加上速度前馈值,一起送入积分器。前馈值用给定转速经过简单滤波即可,不需要太准确。前馈加得太猛会让观测器响应过冲,我的做法是前馈系数先取0.8,跑出波形后再微调。
加了前馈之后,零速启动到100rpm的阶跃过程,位置误差峰值能明显收窄。这个优化在纯仿真阶段可能看起来收益不大,但后面接真实负载或者做零速爬坡时会非常关键。
4.3 观测器输出与坐标变换的连接
观测器输出的估计位置θ̂_e要回送到三个地方:坐标变换(Park逆变换给的电压、Park变换采的电流)、注入模块的估计d轴方向、以及解调模块的坐标系。这里必须保证所有模块使用的估计位置是同一个变量,不要在不同子系统里复制一份再各自滤波。相位不一致会让注入方向和q轴提取方向错位,误差信号直接失真。
我在模型里统一用了一个Goto/From标签网络把θ̂_e分发给所有需要的位置模块,后续排查问题也方便,改一处所有地方都跟着更新。
5. 零低速调试实录:常见问题与排查技巧
5.1 采样点与开关死区的干扰问题
方波注入的差分采样的有效性和采样时机强相关。理论上,在一个注入半周期的末端采样,电流变化量最大,信噪比最高。但如果采样时刻紧挨着功率管开关动作,采样通道会拾取开关噪声,差分信号里会出现非常尖锐的毛刺。
现象是:位置误差波形在局部有周期性尖峰,观测器输出跟着抖。排查时把采样时刻和PWM载波时刻对齐观察,如果采样点离开关点太近,就把采样位置调整到半周期的中间偏后位置。同时,采样保持器前加一个截止频率为注入频率3到5倍的抗混叠低通滤波器,效果很明显。
5.2 初始位置不对的根源:sin(2Δθ)的收敛陷阱
高频注入误差信号是sin(2Δθ),这意味着Δθ = 0和Δθ = π都是平衡点。观测器可能收敛到真实位置,也可能收敛到真实位置的反方向180度。对IPMSM来说,d轴正反方向磁路特性不同,如果收敛方向错了,启动瞬间就可能反转。
解决这个问题需要在注入法启动之前做磁极极性判断。实操方法是:在估计d轴方向上施加一个持续时间很短的电压脉冲,然后比较正向和反向电流响应的斜率。因为磁路饱和效应,正向d轴电流会让磁链进一步饱和,电感变小,电流响应斜率更大。响应斜率大的方向就是真实N极方向。如果极性判断结果与注入收敛结果相反,把估计位置直接偏移180度即可。
5.3 交叉饱和对误差信号增益的影响
IPMSM在带载状态下,d轴和q轴磁路存在交叉饱和,Ld和Lq不再是空载标称值。实测中,加载后Lq会明显下降,Ld也会有所变化,导致差分信号增益跟着变。如果观测器增益不调整,重载下位置误差会偏大。
一个工程化的解决思路:不做精确的变电感模型,而是把注入电压幅值或者归一化增益做一个随q轴电流变化的补偿曲线。先在仿真里跑空载和额定负载两个工况,测出误差信号增益的变化比例,再在归一化模块里做一个线性插值补偿表。简单有效,足够覆盖大部分实际工况。
5.4 零低速与中高速切换:退出注入的时机和策略
高频注入法在中高速段会带来额外损耗和噪声,所以实际工程方案一定会设计“注入退出”机制,切换到反电动势法。切换时最怕位置估计跳变和转速估计突变。
我的做法是设置一个带滞环的切换区间。比如转速低于60rpm时只用注入法,高于120rpm时只用反电动势法,中间60到120rpm为过渡区。过渡区里两个观测器同时运行,输出按转速比例加权融合。由于两个观测器都是位置跟踪结构,融合后的位置也是连续的,不会出现硬切换的冲击。
仿真验证时,从零速启动一路加速到中高速,切换点前后位置误差保持连续,没有明显的震荡或者过冲。这个切换逻辑放在模型里并不复杂,但对整个无感控制系统的完整性非常加分。
5.5 差分信号的直流偏置问题
解调差分信号会出现一个和位置无关的直流偏置。主要来源是电流采样通道的零漂,以及逆变器死区时间在一个注入周期内不对称的干扰。直流偏置会让位置估计在稳态时出现固定角度偏置,转速越高影响越小,零速时最明显。
排查方法是:在电机不转、注入开启的状态下,观察解调输出平均值。如果平均值非零且不随角度变化,基本可以判定是采样偏置或死区导致的。处理办法有两个方向,一是加死区补偿,二是在解调输出端增加一个高通滤波,把直流分量滤掉。高通截止频率要设得比位置观测器带宽低一个数量级,避免把有效误差信号也滤掉。
6. 从仿真走向实际:几个值得提前养成的习惯
在建这套模型之前,我也习惯一上来就堆模块,什么模块新潮用什么。但高频方波注入这套方案,能跑通的关键从来不是算法多么花哨,而是时序和采样逻辑是否严谨。
我个人的习惯是:先把差分采样的触发逻辑画成时序图,确认每个控制周期里“注入什么方向、什么时候采样、什么时候做差”完全对得上,再动手搭Simulink模型。时序图画明白了,模型十分钟就能搭完,后面百分之八十的调试时间都省掉了。
另外,仿真模型里建议把关键信号都用To Workspace导出,包括真实位置、估计位置、位置误差、估计速度、dq电流、注入方向符号、解调输出。调试的时候把这些波形一次性画出来,对照时序图逐段查。比在模型里到处放Scope然后肉眼盯着找问题高效得多。
还有一点,注入电压的符号切换瞬间,估计d轴电流指令会有一个阶跃,这个阶跃会通过电流环耦合到q轴。如果电流环PI参数偏激进,q轴会出现一个明显的尖峰干扰。遇到这种情况,优先降低电流环带宽,而不是去增加滤波器,因为滤波器的相位延迟会偷走整个系统的稳定裕度。
从零速启动到中高速切换,整套模型跑通之后,我可以很确定地说:高频方波电压注入是IPMSM零低速无感控制里性价比最高的方案之一。它的数学推导不复杂、数字实现很简单、Simulink模型层级清晰、调试路径明确。对于那些被反电动势法零低速区间折磨得头疼的人来说,这是一条值得优先尝试的路。