4、基于RLS的定子电阻辨识

定子电阻这东西,看着简单,其实挺让人头疼的。你想想看,电机一发热,电阻值就跟着飘。我刚开始做电机控制那会儿,就吃过这个亏——离线测得好好的参数,一跑起来全变了样。所以这一章,咱们就专门聊聊怎么把定子电阻这个变量给盯死了。

4.1 定子电阻的离线辨识方法

离线辨识,说白了就是在电机不转的时候把电阻测出来。方法有好几种,我挑最实用的两种说。

4.1.1 直流注入法

这个方法最直接。给电机定子绕组通直流电,测电压和电流,欧姆定律一算就出来了。

核心公式:

Rs = Udc / Idc

但要注意,测出来的是相电阻还是线电阻,得看接线方式。

具体步骤我列一下:

  1. 断开电机与驱动器的连接——安全第一,别带电操作。
  2. 选择两相绕组,比如A相和B相。
  3. 通入小电流直流,我一般控制在额定电流的5%~10%,避免绕组发热影响测量精度。
  4. 记录稳态电压和电流,等个几秒钟,让电流稳定下来再读数。
  5. 计算电阻值,如果是星形接法,Rs = Udc / (2 × Idc);三角形接法要换算一下。

我的经验:用万用表测的时候,记得用四线法(开尔文接法),能消除接触电阻的影响。我曾经用两线法测,结果比实际值大了0.5Ω,排查了半天才发现是表笔接触电阻搞的鬼。

4.1.2 高频信号注入法

这个方法适合在电机已经接好线、不方便拆开的情况下用。给绕组注入一个高频电压信号,通过阻抗分析来提取电阻分量。

原理是这样的:高频下,电感的阻抗远大于电阻,但通过测量复阻抗的实部,还是能把电阻分离出来。

方法 优点 缺点 适用场景
直流注入法 简单、精度高 需要断开接线 实验室、出厂测试
高频注入法 在线可测、不拆线 受集肤效应影响 现场维护、故障诊断

注意:离线辨识得到的电阻值只能作为初始值。电机运行后温度上升,电阻值会变化20%~30%。所以,在线辨识才是真正的硬功夫。

4.2 基于RLS的在线辨识实现

RLS(递归最小二乘)是我个人比较偏爱的方法。它收敛快,计算量适中,在嵌入式平台上跑得动。

4.2.1 数学模型推导

咱们从PMSM的电压方程入手。在α-β坐标系下:

u_α = R_s · i_α + L_s · di_α/dt - ω_e · ψ_f · sin(θ_e)
u_β = R_s · i_β + L_s · di_β/dt + ω_e · ψ_f · cos(θ_e)

为了辨识Rs,我们需要把方程改写成适合RLS的形式。我习惯这样处理:

y(k) = u_α(k) - L_s · (i_α(k) - i_α(k-1))/T_s + ω_e(k) · ψ_f · sin(θ_e(k))
φ(k) = i_α(k)
θ = R_s

这样,问题就变成了:y(k) = φ(k) · θ + e(k),标准的线性回归形式。

4.2.2 RLS算法实现

RLS的核心迭代公式如下:

// 初始化
θ(0) = 离线辨识值
P(0) = δ · I  (δ取100~1000)
λ = 0.95~0.99  (遗忘因子)

// 每个采样周期执行
e(k) = y(k) - φ(k) · θ(k-1)
K(k) = P(k-1) · φ(k) / (λ + φ(k) · P(k-1) · φ(k))
θ(k) = θ(k-1) + K(k) · e(k)
P(k) = (I - K(k) · φ(k)) · P(k-1) / λ

关键参数说明:

  • 遗忘因子λ:越接近1,算法对历史数据的记忆越长,估计值越平滑;越小,跟踪速度越快,但噪声也越大。我一般取0.97。
  • 初始协方差矩阵P(0):反映了对初始估计的不确定度。取大一点,让算法快速收敛。

4.2.3 嵌入式实现要点

在STM32或DSP上跑RLS,有几个坑我得提醒你:

  • 定点数 vs 浮点数:如果MCU没有FPU,建议用Q15或Q31格式做定点运算。我曾在STM32F103上做过,速度完全够用。
  • 矩阵运算优化:因为这里只有单参数辨识,P和K都是标量,不用调矩阵库,直接写标量运算就行。
  • 采样同步:电流采样和电压重构必须在同一个PWM周期内完成,否则相位差会导致辨识误差。

避坑指南:我曾经在项目里忘了考虑AD采样的量化误差,结果RLS死活不收敛。后来在y(k)的计算中加了一个低通滤波,问题就解决了。记住,输入数据的质量直接决定辨识效果。

4.3 实验数据与仿真验证

光说不练假把式。咱们看看实际数据。

4.3.1 仿真设置

我在MATLAB/Simulink里搭了个模型,参数如下:

参数 值 单位
额定功率 2.2 kW
额定电压 380 V
额定电流 5.0 A
定子电阻(真实值) 2.85 Ω
定子电感 8.5 mH
永磁磁链 0.175 Wb

4.3.2 仿真结果分析

我让电机在额定转速下运行,然后在t=0.5s时把定子电阻从2.85Ω阶跃到3.42Ω(模拟温升)。RLS的响应如下:

  • 收敛时间:约0.15s,大约150个采样周期(采样频率1kHz)。
  • 稳态误差:小于1%,基本可以忽略。
  • 噪声影响:在信噪比40dB的情况下,估计值的标准差约为0.02Ω。

结论:RLS在跟踪电阻变化方面表现优秀。相比LMS算法,RLS的收敛速度快了3~5倍,特别适合需要快速响应的场合。

4.3.3 实验验证

我在实验室用一台2.2kW的PMSM做了实测。电机先冷态启动,运行30分钟后温度稳定。离线测得的冷态电阻是2.83Ω,热态电阻是3.38Ω,变化了约19%。

RLS在线辨识的结果:

  • 启动后5秒内收敛到2.85Ω附近。
  • 随着温度上升,估计值逐渐增加到3.35Ω。
  • 与热态离线测量值的偏差仅0.03Ω,误差不到1%。

我的体会:实验中最容易出问题的是电压重构。因为PWM逆变器的死区效应和非线性,重构电压和实际电压有偏差。我后来加了一个死区补偿模块,辨识精度才提上来。你要是也遇到类似问题,不妨先检查一下电压重构的准确性。

4.4 本章知识体系

下面这张图把本章的核心逻辑串起来了,你可以对照着回顾一下:

基于RLS的定子电阻辨识知识体系 离线辨识方法 直流注入法 高频信号注入法 RLS在线辨识 数学模型推导 RLS迭代算法 嵌入式实现要点 验证与评估 仿真验证 实验数据对比 核心流程 1. 离线辨识获取初始电阻值 2. 构建RLS数学模型(α-β坐标系) 3. 嵌入式实现RLS迭代算法 4. 仿真验证算法有效性 5. 实验数据对比,确认实际效果

嗯,这一章的内容就到这儿。定子电阻辨识是PMSM参数辨识里最基础也最实用的一环。掌握了RLS方法,后面辨识电感和磁链就会轻松很多。记住,理论推导要扎实,但真正落地的时候,那些工程细节才是决定成败的关键。