MRAS无感FOC进阶:从模型参考自适应原理到PMSM转子位置观测实践
2026/7/29 7:26:14 网站建设 项目流程

1. 从“小猫爪”到“无感”世界:为什么MRAS是FOC的进阶之选

如果你玩过永磁同步电机的FOC控制,大概率会经历从“有感”到“无感”的纠结。有感方案,靠着编码器或旋转变压器,电机转子位置一目了然,控制起来心里有底,但成本高、可靠性受机械安装影响。无感方案,省去了位置传感器,成本低、结构简单、可靠性高,但核心难题变成了:如何在不直接测量的情况下,精准地“猜”出转子的位置和速度?这就像蒙着眼睛开车,却要实时知道方向盘转了多少度,车跑了多快。

“小猫爪”这个系列,听起来亲切,背后却是硬核的电机控制算法探索。今天要聊的MRAS法,全称是模型参考自适应系统,正是无感FOC领域里一把锋利且优雅的“手术刀”。它不像一些观测器那样需要复杂的参数整定,也不像高频注入那样会引入额外的噪声或转矩脉动。MRAS的核心思想非常巧妙:我搭建两个“模型”,一个作为绝对正确的“参考老师”(可调模型),一个作为需要学习的“学生”(参考模型)。通过比较“老师”和“学生”输出的差异(即误差),不断调整“学生”的内部参数(在这里就是估计的转速和位置),直到“学生”的输出和“老师”完全一致。此时,“学生”学会的参数,就是我们要的转子真实信息。

为什么说MRAS是进阶之选?因为它基于电机本身的数学模型,理论清晰,动态性能好,在中高速区域表现尤为出色。对于很多从有感的SVPWM、PID调节入门,想要深入无感控制核心的工程师来说,理解并实现MRAS,是打通FOC任督二脉的关键一步。它让你从“依葫芦画瓢”调库函数,真正走向“知其所以然”的算法设计层面。接下来,我们就抛开复杂的公式堆砌,用“小猫爪”般细致的剖析,看看MRAS这把刀,是如何在PMSM的无感FOC中精准“雕刻”出转子位置的。

2. MRAS法的核心思想:一场精妙的“师生模仿秀”

要理解MRAS,我们可以把它想象成一场精妙的模仿秀。舞台上有两位演员:一位是资深戏骨,他的表演(输出)基于完整的剧本(电机真实模型),但我们看不到他的剧本内容;另一位是新生代演员,他手里有一本可能出错的剧本(估计模型),他的表演(输出)基于这本剧本。

我们的目标是:通过不断对比两位演员的现场表演(输出量),来动态修正新生代演员手中的剧本(调整估计模型的参数),直到他的表演和资深戏骨一模一样。此时,他手中修正后的剧本,就揭示了那位资深戏骨所依据的原始剧本精髓(即电机的真实状态)。

在PMSM无感FOC的语境下,这场“模仿秀”的具体角色分配如下:

  • 参考模型 (Reference Model): 这位是“资深戏骨”,也被称为“不可调模型”。它的输出是我们可以直接测量或通过测量值简单计算得到的物理量。在基于反电动势的MRAS中,最常用的参考模型输出是定子电压方程。我们可以通过测量电机的三相电流(经过Clarke/Park变换得到dq轴电流id,iq)和已知的定子电阻Rs、电感Ld,Lq,结合我们施加的电压Vd,Vq,来构建这个模型。它的输出是包含了真实转子位置信息的某个中间量(例如反电动势)。
  • 可调模型 (Adjustable Model): 这位是“新生代演员”,也被称为“自适应模型”。它的结构和参考模型几乎一样,但关键区别在于:它的输入参数中包含了我们待估计的变量——转子电角速度ωr_est和位置θr_est。它的输出是基于这些估计值计算出来的同一个物理量(例如估计的反电动势)。
  • 自适应律 (Adaptive Law): 这是“导演”或“教练”。它时刻观察两位演员表演的差异,即参考模型输出与可调模型输出之间的误差ε。然后,它根据一套预先设计好的规则(通常是PI调节器或积分器),利用这个误差信号,动态地调整可调模型的输入参数——ωr_est。而转子位置θr_est则通过对ωr_est积分得到。调整的目标是使误差ε趋近于零。

当误差ε为零时,意味着可调模型的输出已经完全跟踪上了参考模型的输出。根据模型的一致性,此时可调模型所使用的参数ωr_estθr_est,就等同于参考模型所隐含的真实参数ωrθr。至此,我们就在没有物理传感器的情况下,“观测”到了转子的速度和位置。

这个结构的精妙之处在于,它将一个非线性系统的参数辨识问题,转化为了一个误差调节问题。我们不需要直接求解复杂的方程,而是通过一个负反馈闭环,让系统自动收敛到正确解。这种思路在工程上非常强大和实用。

3. 基于反电动势的PMSM-MRAS具体实现与公式推导

上面我们理解了MRAS的哲学,现在需要把它翻译成PMSM的数学语言。最经典、应用最广泛的MRAS方案是基于反电动势(Back-EMF)构建的。这是因为在PMSM的电压方程中,反电动势项直接包含了转子位置的正余弦信息。

3.1 建立PMSM在旋转坐标系下的模型

首先,回顾PMSM在d-q旋转坐标系下的电压方程:

Vd = Rs * id + Ld * (d id/dt) - ωe * Lq * iq Vq = Rs * iq + Lq * (d iq/dt) + ωe * Ld * id + ωe * ψf

其中:

  • Vd, Vq: d-q轴电压。
  • id, iq: d-q轴电流。
  • Rs: 定子电阻。
  • Ld, Lq: d-q轴电感。
  • ωe: 转子电角速度(ωe = np * ωrnp为极对数)。
  • ψf: 永磁体磁链。
  • d/dt: 微分算子。

方程中,ωe * ψf这一项就是永磁体产生的反电动势在q轴上的投影,它是指向转子位置的关键。

3.2 构建参考模型与可调模型

我们的目标是观测ωe和位置角θeθe = ∫ ωe dt)。一个常见的方法是重构反电动势项。

将电压方程改写,把包含ωe的项移到一边:

E_d = Vd - Rs * id - Ld * (d id/dt) = -ωe * Lq * iq E_q = Vq - Rs * iq - Lq * (d iq/dt) = ωe * Ld * id + ωe * ψf

这里,E_dE_q可以理解为“计算出的反电动势”在d-q轴的分量。它们是基于测量值(Vd, Vq, id, iq)和已知电机参数(Rs, Ld, Lq)计算得到的。注意:在实际数字控制中,微分项d id/dtd iq/dt需要用差分来近似,例如(id(k) - id(k-1)) / TsTs为控制周期。这是引入噪声和相位延迟的一个来源,需要谨慎处理(例如使用一阶低通滤波)。

  • 参考模型输出: 我们就取[E_d, E_q]^T这个二维向量作为参考模型的输出。因为它是由真实测量值和固定参数计算得来,蕴含了真实的ωe信息。

  • 可调模型输出: 我们构造一个形式相似的模型,但使用估计的转速ωe_est

    E_d_est = -ωe_est * Lq * iq E_q_est = ωe_est * Ld * id + ωe_est * ψf

    注意,这里使用的电流id,iq同样是测量值。可调模型的输出是[E_d_est, E_q_est]^T

3.3 定义误差与设计自适应律

现在,我们有了“老师”的输出[E_d, E_q]和“学生”的输出[E_d_est, E_q_est]。需要定义一个误差信号。一个常见且有效的选择是取两者的叉积(或称为矢量积的z轴分量),这类似于锁相环(PLL)的鉴相器原理:

ε = E_d_est * E_q - E_q_est * E_d

将上面的公式代入:

ε = (-ωe_est * Lq * iq) * (ωe * Ld * id + ωe * ψf) - (ωe_est * Ld * id + ωe_est * ψf) * (-ωe * Lq * iq) = ωe_est * ωe * ( -Lq*iq*Ld*id - Lq*iq*ψf + Ld*id*Lq*iq + ψf*Lq*iq ) = ωe_est * ωe * ( 0 ) // 注意:-Lq*Ld*iq*id 和 +Ld*Lq*id*iq 抵消 = ωe_est * ωe * ( -Lq*iq*ψf + ψf*Lq*iq ) = 0

等等,这个推导看起来误差永远为0?这里有一个关键的细节:我们定义的ε在稳态且估计准确时 (ωe_est = ωe) 才为0。上面的推导假设了这一点。更合理的分析是考虑误差的动态过程。实际上,经过整理(忽略电感交叉项,因为Ld ≈ Lq对于表贴式PMSM成立,对于凸极式电机此项影响需考虑),可以得到误差ε与转速误差(ωe - ωe_est)成正比的关系:

ε ≈ K * (ωe - ωe_est)

其中K是一个与电机参数 (ψf,Lq) 和运行点 (iq) 相关的正增益。

因此,ε信号反映了估计转速与真实转速的偏差。我们的目标就是驱动ε到零。

自适应律就基于这个误差信号来设计。最常用的就是PI调节器:

ωe_est = (Kp + Ki/s) * ε

即:

ωe_est = Kp * ε + Ki * ∫ ε dt

其中KpKi是自适应律的比例和积分增益。积分项Ki * ∫ ε dt用于消除静差,确保稳态时ωe_est = ωe

转子位置通过对估计的电气角速度积分得到:

θe_est = ∫ ωe_est dt

至此,我们就完成了整个MRAS观测器的闭环:

  1. 测量与计算:采样电流、电压,计算参考模型反电动势E_d,E_q
  2. 可调模型输出:利用当前的ωe_est和测量电流,计算E_d_est,E_q_est
  3. 计算误差ε = E_d_est * E_q - E_q_est * E_d
  4. 更新转速ωe_est = Kp * ε + Ki * ∫ ε dt
  5. 更新位置θe_est = ∫ ωe_est dt
  6. 将新的θe_est反馈给Park变换(用于FOC电流环),同时ωe_est用于可调模型计算和可能的速度环,进入下一个控制周期。

4. 从理论到代码:DSP/单片机上的实现要点与坑位指南

理论很美好,但把MRAS算法塞进资源有限的微控制器(如STM32、TI C2000系列DSP)并让它稳定运行,才是真正的挑战。以下是一些关键的实现要点和我踩过的坑。

4.1 离散化与计算顺序

在数字系统中,所有连续时间公式都必须离散化。控制周期Ts的选择至关重要,通常与你的PWM开关频率和电流环周期一致(例如10kHz对应Ts=100us)。

  • 微分项的离散化: 计算E_dE_q时需要d id/dtd iq/dt。最简单的方法是后向差分:

    d_id = (id(k) - id(k-1)) / Ts d_iq = (iq(k) - iq(k-1)) / Ts

    坑点1:差分会放大电流采样噪声。特别是当Ts很小时,(id(k)-id(k-1))可能很小,被量化噪声主导。解决方法是对电流信号进行低通滤波(但会引入相位延迟),或者使用观测器来平滑微分,例如滑模观测器中的等效控制概念可以避免直接微分。

  • 积分项的离散化: 对于θe_est = ∫ ωe_est dt和自适应律中的∫ ε dt,使用累加即可:

    int_epsilon += epsilon * Ts; // Ki * ∫ ε dt 的离散化 theta_est += omega_est * Ts; // 位置积分

    坑点2:位置积分需要处理溢出,通常限制在0 ~ 2π-π ~ π之间。omega_est在接近零速时可能会有波动,导致位置积分产生漂移。确保你的omega_est在零速附近有良好的滤波或死区处理。

  • 计算顺序: 在一个控制中断服务程序(ISR)中,建议按以下顺序执行:

    1. 读取ADC结果,获取三相电流Ia, Ib, Ic(和直流母线电压Vdc,如果需要计算电压)。
    2. Clarke/Park变换,得到id(k), iq(k)注意:Park变换需要用到上一周期估计的位置θe_est(k-1)。这是无感控制的关键,位置信息的延迟必须被考虑在内。
    3. 执行电流环PI计算,得到本期电压指令Vd_ref(k), Vq_ref(k)
    4. 反Park变换和SVPWM,更新占空比。
    5. 现在开始MRAS观测器计算: a. 使用id(k), iq(k), Vd_ref(k), Vq_ref(k)(或更精确的,利用占空比和Vdc重构实际电压Vd(k), Vq(k))计算参考模型输出E_d(k), E_q(k)。 b. 使用当前的omega_est(k-1)id(k), iq(k)计算可调模型输出E_d_est(k), E_q_est(k)。 c. 计算误差ε(k) = E_d_est(k) * E_q(k) - E_q_est(k) * E_d(k)。 d. 更新自适应律:omega_est(k) = Kp * ε(k) + Ki * int_epsilon(k),并更新积分项int_epsilon(k) += Ki * ε(k) * Ts(注意这里的Ki是离散积分系数)。 e. 更新位置:theta_est(k) = theta_est(k-1) + omega_est(k) * Ts,并做模运算限制在[0, 2π)
    6. theta_est(k)存储,用于下一个周期的Park变换。 这个顺序确保了观测器计算使用的是本周期最新的电流和电压信息,但位置反馈给变换时有一拍延迟。这个延迟需要在控制器设计时予以考虑。

4.2 参数敏感性与启动问题

  • 电机参数敏感性: MRAS观测器的性能严重依赖于电机参数Rs, Ld, Lq, ψf的准确性。其中,定子电阻Rs随温度变化显著,误差会导致低速下反电动势计算不准,进而影响观测精度甚至导致失步。对策: 对于高性能应用,需要引入在线参数辨识或温度补偿。至少,要在电机冷态和热态下分别测量参数,并在软件中根据模型(如根据运行时间、电流估算温升)进行插值补偿。

  • 从零速启动: 这是所有基于反电动势的无感方法的共同难题。在零速或极低速时,反电动势幅值很小,湮没在测量噪声和计算误差中,MRAS观测器无法工作。标准解决方案: 采用I-F 启动(电流-频率控制)。

    1. 预定位: 先给定子绕组通一个固定的直流电流矢量(例如id=0, iq=额定电流的20%),将转子强行拉到一个已知的初始位置(如0度)。保持几十到几百毫秒。
    2. 开环加速: 忽略观测器的位置,由控制器主动生成一个逐渐加速的旋转电压矢量。同时,MRAS观测器开始运行并计算omega_esttheta_est,但此时不用于闭环反馈。
    3. 切换: 当估计速度omega_est达到一个可靠的阈值(例如额定速度的5%-10%),并且其波动小于一定范围时,认为观测器已经能可靠工作。此时,将Park变换的输入从“开环生成的位置”平滑切换到“MRAS观测的位置”,同时将速度控制也从开环频率给定切换到基于omega_est的闭环。这个过程必须平滑,避免转矩突变。

4.3 自适应律PI参数整定

自适应律的KpKi决定了观测器的动态响应速度、带宽和稳定性。

  • Kp主要影响收敛速度。Kp太大,响应快,但对噪声敏感,可能超调振荡;Kp太小,收敛慢。
  • Ki用于消除稳态误差。Ki太大,积分饱和,动态响应差;Ki太小,稳态误差消除慢。

整定经验

  1. 先将Ki设为0,从较小的Kp开始。
  2. 在电机中高速稳态运行时,观察omega_est的波动和epsilon信号。缓慢增大Kp,直到omega_est开始出现高频抖动,然后回退一点。
  3. 加入较小的Ki,观察从某个速度阶跃响应时,omega_est跟踪真实速度的稳态误差是否消除。调整Ki直到能较快消除静差,但又不会引起低速波动。
  4. 测试动态性能:做速度阶跃、负载突加突卸,观察omega_est的跟踪能力和恢复时间。

注意:自适应律的带宽不应高于电流环带宽,通常设置为电流环带宽的1/5到1/10为宜,否则会放大噪声。

5. 实测中的挑战与进阶优化策略

在实验室台架上让电机转起来只是第一步,要让MRAS无感FOC在各种工况下都稳定可靠,还需要处理以下挑战。

5.1 低速带载与稳定性增强

在低速重载时,iq电流很大,根据公式E_q_est = ωe_est * Ld * id + ωe_est * ψf,反电动势中ωe_est * Ld * id项占比增大。如果Ld参数不准确,这项误差会直接影响观测。此外,低速下信噪比低。

优化策略

  • 误差信号归一化: 误差ε的大小与运行点 (iq,ωe) 有关。可以对其进行归一化处理,例如除以(ψf^2 + (Ld*id)^2)的估计值,使得自适应律在不同工况下的增益相对一致。
  • 引入非线性自适应律: 使用变增益PI,在误差大时用大增益快速收敛,误差小时用小增益抑制噪声。或者采用滑模变结构等鲁棒性更强的自适应律,但其带来的抖振需要处理。
  • 多模型融合: 在极低速区域,可以辅助以高频注入法(HFI)来获取位置,MRAS在中高速工作,两者平滑切换。这是目前高端无感FOC的常见方案。

5.2 对电压重构精度的依赖

我们计算参考模型时,需要准确的VdVq。在SVPWM中,我们通常使用电压指令Vd_ref, Vq_ref作为实际电压。但这忽略了逆变器的非线性因素:死区时间、功率管压降、导通压降等。这些因素在低电压指令时(尤其是低速低调制比时)影响显著,会导致计算出的反电动势E_d, E_q失真。

解决方案

  • 死区补偿: 必须实施死区补偿算法。可以根据电流方向,在电压指令上叠加一个补偿电压矢量。
  • 非线性电压误差建模: 对逆变器的导通压降进行建模补偿。
  • 使用直流母线电压和占空比重构电压: 更精确的方法是测量直流母线电压Vdc,然后根据SVPWM生成的各相占空比da, db, dc,重构出三相端电压Ua, Ub, Uc,再进行Clarke变换得到Vα, Vβ,最后用估计的位置θe_est进行Park变换得到Vd, Vq。这样更接近真实施加在电机上的电压。

5.3 位置观测的相位延迟与补偿

观测到的位置θe_est相对于真实位置θe存在延迟。延迟来源包括:

  1. 计算延迟: 从电流采样到位置更新完成,需要数个CPU时钟周期。
  2. 滤波器延迟: 电流滤波、转速滤波引入的相位滞后。
  3. 算法固有延迟: MRAS自适应律本身是一个动态跟踪过程,存在跟踪滞后。

这个相位延迟会导致电流环的d-q轴解耦不彻底,影响控制性能,特别是在高速时,可能引起转矩波动甚至失稳。

补偿方法

  • 预测补偿: 最简单的是在输出的θe_est上加上一个提前角Δθ = ωe_est * T_delay,其中T_delay是你估算的总延迟时间(例如1.5个控制周期)。
  • 在Park变换中使用预测位置: 既然我们估计出了速度ωe_est,可以在给下一周期Park变换提供角度时,直接使用θ_comp = θe_est(k) + ωe_est(k) * Ts。这相当于一步预测。
  • 更高级的观测器设计: 可以考虑将延迟作为状态变量,设计扩展状态观测器(如扩展卡尔曼滤波EKF)来同时估计位置、速度和延迟。

实现一个能用的MRAS无感FOC可能一个月,但把它调得在各种边角工况下都稳定可靠,可能需要一年甚至更久的迭代和打磨。每一个参数偏差、每一处非线性效应、每一个延迟环节,都可能成为系统失稳的“阿喀琉斯之踵”。这需要大量的数据记录、波形分析和耐心调试。示波器观察电流波形、估计位置与编码器位置的偏差、误差信号ε的频谱,都是必不可少的调试手段。记住,无感算法的 robustness(鲁棒性)不是设计出来的,是调出来的。当你看到电机从零速平滑启动,在突加负载下转速纹丝不动,高速急停快速响应时,那种成就感,正是驱动我们这些工程师在“小猫爪”这样的细节上不断深耕的动力。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询