PMSM 磁链观测器

概述

PMSM(永磁同步电机)最小阶磁链观测器是 EmeyeStudio 算法库中针对电机控制场景的专业算法,用于从采集的 dq 轴电压、电流和机械角速度数据中估计电机的磁链、电角度、电角速度与电磁转矩,常用于无传感器控制算法验证、电机参数辨识与控制性能分析。

功能说明

PMSM 最小阶磁链观测器,用于:

  • 估计 d 轴和 q 轴磁链
  • 估计电角度和电角速度
  • 计算电磁转矩
  • 计算磁链幅值

电机参数

参数 说明 单位
Rs 定子电阻 Ω
Ld d 轴电感 H
Lq q 轴电感 H
ψf 永磁体磁链 Wb
P 极对数 -

观测器增益

增益 说明 建议范围
K1 d 轴增益 50-500
K2 q 轴增益 50-500

增益越大,观测器响应越快,但对噪声也更敏感。

输出结果

输出 说明 单位
fluxD d 轴磁链估计值 Wb
fluxQ q 轴磁链估计值 Wb
thetaE 电角度估计值 rad
omegaE 电角速度估计值 rad/s
torqueEst 估计转矩 Nm
fluxMagnitude 磁链幅值 Wb

使用案例:PMSM 磁链观测器

场景描述

您正在开发一台 PMSM 电机控制器,需要通过采集的 dq 轴电压、电流和机械角速度数据,实时估计电机的磁链和转矩,用于:

  • 无传感器控制算法验证
  • 电机参数辨识
  • 控制性能分析

电机参数

参数 说明
定子电阻 Rs 0.5 Ω 相电阻
d 轴电感 Ld 5 mH 直轴电感
q 轴电感 Lq 5 mH 交轴电感
永磁体磁链 ψf 0.1 Wb 空载磁链
极对数 P 4 极对数

完整操作流程

步骤1:创建工程和配置设备

  1. 创建新工程
    - 菜单:文件 → 新建工程
    - 输入工程名称,如"PMSM_FluxObserver_Test"
    - 选择保存位置

  2. 添加 ELF 文件
    - 在资源管理器中右键工程 → 添加 ELF 文件
    - 选择控制器编译生成的 ELF 文件
    - 系统自动解析变量列表

  3. 配置设备连接
    - 菜单:硬件 → 设备配置
    - 添加设备,配置通信参数(如 CAN、串口等)
    - 连接设备并验证通信

步骤2:配置 DAQ 采集变量

  1. 选择采集变量

在资源管理器中,找到以下变量并添加到 DAQ:

变量名 说明 单位
g_ud d 轴电压 V
g_uq q 轴电压 V
g_id d 轴电流 A
g_iq q 轴电流 A
g_omega_m 机械角速度 rad/s

操作方法
- 展开工程 → Variables 节点
- 右键变量 → 添加到 DAQ

  1. 配置采集参数
    - 采样周期:10ms(根据控制周期设置)
    - 采样模式:固定周期
    - 缓冲区大小:10000 点

  2. 启动 DAQ 采集
    - 右键工程 → 开始 DAQ 采集
    - 或在工具栏选择工程后点击"启动 DAQ"

步骤3:实时数据监控

方式 A:Scope 模式(实时观察)

  1. 打开 Scope 窗口
    - 右键工程 → Scope → 打开 Scope 窗口

  2. 添加监控变量
    - 将 g_idg_iq 添加到 Scope
    - 实时观察电流波形

  3. 验证数据正确性
    - 确认电流、电压数据在合理范围内
    - 确认角速度数据正常变化

方式 B:Recorder 模式(高速瞬态捕获)

Recorder 模式适合捕获电机启动、加速、故障等瞬态过程:

  1. 配置 Recorder 变量
    - 在资源管理器中右键变量 → 添加到 Recorder
    - 添加 g_udg_uqg_idg_iqg_omega_m

  2. 配置采样参数
    - 右键 Recorder 节点 → 配置采样参数
    - 采样周期:50μs(与控制器中断周期匹配)
    - 缓冲时长:100ms

  3. 启动录制
    - 打开 Recorder 窗口
    - 点击「启动录制」
    - 等待缓冲进度达到 100%

  4. 触发录制
    - 手动触发:点击「手动触发」按钮
    - 或配置触发条件自动触发(如电流超过阈值)

  5. 查看录制数据
    - 录制完成后,在数据列表中点击「查看」
    - 波形窗口自动打开,显示触发前后的完整数据

步骤4:保存采集数据

  1. 停止 DAQ 采集
    - 右键工程 → 停止 DAQ 采集

  2. 导出数据
    - 点击"保存数据"按钮
    - 选择保存格式:

    • MDF4:标准格式,便于与其他工具交换
    • CSV:通用格式,便于脚本处理
    • 保存到工程数据目录

步骤5:应用磁链观测器算法

方式一:通过公式引擎(推荐)

  1. 打开公式配置窗口
    - 工具栏:点击「公式」按钮
    - 或菜单:工具 → 公式引擎配置

  2. 配置电机参数
    Rs = 0.5 // 定子电阻 (Ω) Ld = 0.005 // d轴电感 (H) Lq = 0.005 // q轴电感 (H) psi_f = 0.1 // 永磁体磁链 (Wb) P = 4 // 极对数

  3. 添加计算变量

创建派生变量用于磁链估计:

变量名 公式 说明
flux_d_est Ld * g_id + psi_f d 轴磁链估计
flux_q_est Lq * g_iq q 轴磁链估计
theta_e_est atan2(flux_q_est, flux_d_est) 电角度估计
torque_est 1.5 * P * (psi_f * g_iq + (Ld - Lq) * g_id * g_iq) 转矩估计
  1. 应用公式并查看结果
    - 点击"应用"按钮
    - 在波形窗口中查看计算结果

方式二:通过算法库处理(高级)

对于需要完整观测器算法(含状态更新、增益调节)的场景,可在波形分析窗口直接应用算法库:

  1. 打开算法应用窗口
    - 工具栏:点击「算法」按钮
    - 或菜单:分析 → 应用算法

  2. 选择算法类型
    - 算法类别:电机控制 → 磁链观测器
    - 选择「PMSM 最小阶磁链观测器」

  3. 配置算法参数

参数组 参数
电机参数 Rs 0.5 Ω
Ld 5 mH
Lq 5 mH
ψf 0.1 Wb
极对数 4
观测器增益 K1 100
K2 100
采样设置 采样时间 100 μs
  1. 映射输入变量
算法输入 数据变量
d 轴电压 (ud) g_ud
q 轴电压 (uq) g_uq
d 轴电流 (id) g_id
q 轴电流 (iq) g_iq
机械角速度 (ωm) g_omega_m
  1. 执行算法
    - 点击「应用」按钮
    - 算法库自动处理数据
    - 结果变量自动添加到波形窗口

  2. 查看结果

算法输出以下派生变量:
- flux_d:d 轴磁链估计
- flux_q:q 轴磁链估计
- theta_e:电角度估计
- omega_e:电角速度估计
- torque_est:估计转矩
- flux_magnitude:磁链幅值

方式三:导出后外部处理

如需使用其他工具(如 MATLAB、Python)进行更复杂的分析:

  1. 导出数据
    - 在波形窗口选择数据区间
    - 右键 → 导出选中数据 → CSV 格式

  2. 外部处理
    - 使用 Python/MATLAB 脚本处理
    - 实现自定义算法

  3. 导入结果
    - 菜单:文件 → 导入数据
    - 选择处理后的 CSV 文件
    - 在波形窗口中对比分析

步骤6:波形分析

  1. 打开波形分析窗口
    - 双击保存的数据文件
    - 或右键数据文件 → 打开波形视图

  2. 添加变量到图形分析
    - 在资源管理器中选择变量
    - 右键 → 添加到图形分析

  3. 使用分析工具
    - 十字光标:精确定位数据点
    - 分析尺:测量时间差和数值差
    - 参数计算:计算增益、偏置等

  4. 对比分析
    - 将估计转矩与实测转矩对比
    - 分析磁链轨迹
    - 验证观测器性能

步骤7:生成报告

  1. 保存波形截图
    - 右键波形图 → 导出图片
    - 选择 PNG 或 SVG 格式

  2. 导出分析数据
    - 选择分析区间
    - 导出选中数据为 CSV

  3. 记录分析结果
    - 在标注片段中添加注释
    - 记录关键参数和结论

典型分析结果

磁链轨迹图

通过 XY 图显示 d 轴和 q 轴磁链的关系,可以观察:

  • 稳态工作点
  • 动态响应过程
  • 磁链饱和情况

转矩响应曲线

对比估计转矩与实测转矩:

  • 验证观测器精度
  • 分析动态响应
  • 优化控制参数

常见问题

Q: 观测器估计的磁链不稳定怎么办?

A: 可能原因和解决方案:
1. 增益设置过大 → 减小 K1、K2 值
2. 输入数据噪声过大 → 先对电压电流数据进行滤波
3. 采样时间设置错误 → 确认采样时间与实际一致
4. 工具操作:在公式引擎中添加滤波公式,如 g_id_filtered = lpf(g_id, 100)

Q: 如何验证观测器参数是否正确?

A: 建议步骤:
1. 使用已知工况的测试数据
2. 在波形分析窗口对比估计转矩与实测转矩
3. 使用分析尺测量稳态误差
4. 检查稳态时磁链估计值是否接近理论值

Q: 如何在工具中实现更复杂的观测器算法?

A: 对于最小阶磁链观测器的完整实现:
1. 使用 Python 脚本处理导出的 CSV 数据
2. 实现完整的观测器算法(含状态更新)
3. 将结果导入工具进行可视化分析

Q: 表贴式 PMSM(Ld=Lq)和内置式 PMSM 有何区别?

A: 对于表贴式 PMSM,Ld=Lq,磁阻转矩项为零:

  • 转矩公式简化为:Te = 1.5 * P * ψf * iq
  • 公式引擎中可直接使用简化公式
  • 观测器算法对两种电机都适用

进阶应用

实时触发监控

结合触发条件功能,实现自动化的异常检测:

  1. 配置触发条件
    - 监视变量:torque_est
    - 操作符:>
    - 阈值:额定转矩的 1.2 倍

  2. 配置触发动作
    - 自动启动 Recorder 记录
    - 保存触发时刻前后的波形数据

多工况对比分析

  1. 采集不同工况下的数据
  2. 分别应用观测器算法
  3. 在多变量图形分析窗口对比结果
  4. 分析参数变化对性能的影响

使用注意事项

  • 电机参数:电机参数必须准确,否则估计结果会有偏差
  • 采样时间:采样时间必须与实际采集周期一致
  • 增益调节:增益调节需要根据实际系统响应进行调整

相关文档