【永磁同步电机(PMSM)】 3. 基于Matlab 的仿真与控制

【永磁同步电机(PMSM)】 3. 基于Matlab 的仿真与控制

    • [1. 电机的仿真与控制](#1. 电机的仿真与控制)
    • [2. BLDC 电机与 PMSM 电机](#2. BLDC 电机与 PMSM 电机)
    • [3. BLDC 的方波控制](#3. BLDC 的方波控制)
    • [4. 磁场定向控制(FOC)](#4. 磁场定向控制(FOC))
    • [5. 空间矢量调制 (SVM)](#5. 空间矢量调制 (SVM))
    • [6. PMSM 模型的频率响应估计](#6. PMSM 模型的频率响应估计)

电机仿真和控制是能源生产、汽车、航空航天、工业自动化等行业的一项重要技术。电机系统建模常用于优化逆变器和电机尺寸,开发复杂的控制算法(如磁场定向控制),以及分析系统配置和性能。

1. 电机的仿真与控制

电机控制算法可调节速度、扭矩和其他性能特征,通常用于精密定位。在进行昂贵的硬件测试之前,通过仿真评估控制算法可以有效确定电机控制器设计的适用性、缩减算法开发的时间和成本。

高效的电机控制算法开发工作流程包括:

  • 构建精确的系统模型,通常会借助包含电机、驱动器电子器件、传感器和负载的库。
  • 生成 ANSI、ISO 或针对处理器优化过的 C 代码和 HDL 以进行实时测试和实现。
  • 使用仿真和原型硬件验证和测试控制算法。
    有关仿真的详细信息,请参阅 Simulink®。要生成 ANSI、ISO 或针对处理器优化过的 C 代码以在处理器上实现电机控制算法,或生成用于 FPGA 的 HDL,请参阅 Embedded Coder® 和 HDL Coder™。

2. BLDC 电机与 PMSM 电机

BLDC 电机控制

与机械换相或"有刷"电机相比,电子换相或"无刷"电机具有更高的电效率和转矩重量比。

虽然永磁同步电机(PMSM)也是无刷直流电机,但通常所说的无刷直流 (BLDC) 电机指采用集中式绕组,其反电动势呈现梯形;而PMSM 电机指采用分布式定子绕组,呈现正弦反电动势。

无刷直流电机(BLDC)通常使用梯形控制,但也可以使用磁场定向控制(FOC);而 PMSM 电机通常只使用磁场定向控制(FOC)。

下图的 MATLAB 动画 比较 BLDC 电机和 PMSM 电机的运行。动画基于 Simscape Electrical 模型的仿真结果。

梯形 BLDC 电机控制方法比较简单,一次仅为两相供电,转矩控制仅需一个 PID 控制器,无须使用Park变换和Clarke变换进行坐标变换。

下图的 MATLAB 动画 比较具有一个极对和两个极对的 BLDC 电机的运行。动画基于 Simscape Electrical 模型的仿真结果。

3. BLDC 的方波控制

使用梯形方法设计 BLDC 电机控制器的电机控制工程师需要执行下列任务:

  • 开发控制器架构,其中包含用于电流/电压内环的 PI 控制器
  • 为可选的转速外环和位置外环开发 PI 控制器
  • 调节所有 PI 控制器的增益以满足性能要求
  • 设计 SVM 控制
  • 设计故障检测和保护逻辑
  • 验证和确认控制器在不同工况下的性能
  • 在微控制器上实现定点或浮点控制器

通过使用 Simulink 进行 BLDC 电机控制设计,在硬件测试之前,您可以使用多速率仿真来设计、调节和验证控制算法,以及检测并更正电机在整个工作范围内出现的误差。通过使用 Simulink 进行仿真,您可以减少原型测试工作量,并针对一些无法在硬件上测试的故障条件来验证控制算法的稳健性。您可以:

  • 对具有梯形或任意反电动势的 BLDC 电机进行建模
  • 对电流控制器、转速控制器和调制器进行建模
  • 对逆变器电力电子器件进行建模
  • 使用线性控制设计方法(例如波特图和根轨迹)及自动 PID 调节等方法来调节 BLDC 电机控制系统增益
  • 对启动、关闭和错误模式进行建模,并设计降额和保护逻辑来确保电机安全运转
  • 针对 I/O 通道设计信号调节和处理算法
  • 运行电机和控制器的闭环仿真,以测试正常和异常运行情况下的系统性能
  • 自动生成 ANSI、ISO 或处理器优化的 C 代码和 HDL,以快速进行原型构建、硬件在环测试和生产实现

4. 磁场定向控制(FOC)

磁场定向控制 (FOC),又称矢量控制,是一种控制方法,用于在多种电机类型(包括感应电机、永磁同步电机 (PMSM) 和无刷直流 (BLDC) 电机)的全转矩和转速范围内实现良好的控制能力。如果超出额定转速,则使用弱磁控制配合磁场定向控制。

以下模块图显示了一个磁场定向控制架构,包括以下组件:

  • 由两个比例积分控制器组成的电流控制器
  • 可选的外环速度控制器和电流参考生成器
  • 克拉克变换、帕克变换和帕克逆变换,用于在静止和旋转同步坐标系之间转换
  • 一个空间矢量调制器算法,用于将 vα 和 vβ 命令变换为应用于定子绕组的脉宽调制信号
  • 保护函数和辅助函数,包括启动和关闭逻辑
  • 可选的观测器,用来在需要无传感器控制的情况下估计转子角位置

磁场定向控制的模块图如下

设计磁场定向控制的电机控制工程师执行以下任务:

  • 为电流回路开发具有两个 PI 控制器的控制器架构
  • 为可选的转速外环和位置外环开发 PI 控制器
  • 调节所有 PI 控制器的增益以满足性能要求
  • 设计用于控制 PWM 的空间矢量调制器
  • 如果使用无传感器控制,则设计观测器算法来估计转子位置和速度
  • 设计每安培最大转矩或弱磁控制算法,以生成最佳 id_ref 和 iq_ref
  • 实现在计算上高效的帕克变换、克拉克变换和帕克逆变换
  • 设计故障检测和保护逻辑
  • 验证和确认控制器在不同工况下的性能
  • 在微控制器或 FPGA 上实现采用定点或浮点的控制器

通过使用 Simulink 进行磁场定向控制设计,在硬件测试之前,您可以使用多速率仿真来设计、调节和验证控制算法,以及检测并更正在电机整个工况范围内的误差。您可以减少原型测试工作量,并针对一些无法在硬件上测试的故障条件来验证控制算法的稳健性。

借助 Simulink 仿真,您可以:

  • 对各种类型的电机进行建模,包括同步和异步三相电机。您可以创建不同保真度的模型并在模型之间切换,从简单的第一性原理集总模型到高保真、基于磁通的非线性模型。这些模型是通过从 ANSYS® Maxwell®、JMAG® 和 Femtet® 等 FEA 工具导入创建的。
  • 对电流控制器、转速控制器和调制器进行建模。
  • 对逆变器电力电子器件进行建模。
  • 使用线性控制设计方法(例如波特图和根轨迹)及自动 PID 调节等方法来调节控制系统增益。
  • 对启动、关闭和错误模式进行建模,并设计降额和保护逻辑来确保电机安全运转。
  • 设计用于估计转子位置和速度的观测器算法。
  • 优化 id_ref 和 iq_ref,以确保最小功率损耗、高于转子标称转速的运行以及参数化不确定性下的正确运行。
  • 针对 I/O 通道设计信号调节和处理算法。
  • 运行电机和控制器的闭环仿真,以测试正常和异常运行情况下的系统性能。
  • 自动生成 ANSI、ISO 或处理器优化的 C 代码和 HDL,以快速进行原型构建、硬件在环测试和生产实现。

5. 空间矢量调制 (SVM)

空间矢量调制 (SVM) 是感应电机和永磁同步电机 (PMSM) 磁场定向控制的常用方法。空间矢量调制负责生成脉宽调制信号以控制逆变器的开关,由此产生所需的调制电压,以所需的速度或转矩驱动电机。空间矢量调制也称为空间矢量脉宽调制 (SVPWM)。您可以使用 MATLAB® 和 Simulink® 来实现空间矢量调制方法,或利用预置 SVM 库来实现电机控制应用。

SVM 的目标

考虑三相逆变器电机控制的空间矢量调制,该逆变器具有六个开关,如以下等效电路所示。注意,有八种有效的开关配置。

连接到电机定子绕组的三相逆变器电路如下图所示。开关 S2、S4、S6 分别与 S1、S3、S5 互补。

每种开关配置都会产生特定的电压,施加于电机端子。电压是基本空间矢量,以空间矢量六边形表示其幅值和方向

通过对开关区间内的基本空间矢量(方向)和零矢量(幅值)作用时间进行调节,可以近似得到空间矢量六边形内任意位置、任意幅值的电压矢量。例如图中,一个脉宽调制 (PWM) 周期内,选择两个相邻空间矢量(图中的 U3 和 U4)分别作用一段时间、在周期其余时间内由零矢量(U7 或 U8)作用,从而得到近似平均参考矢量 Uref。

通过控制开关序列,即控制脉冲的导通持续时间,就可以在每个 PWM 周期获得具有变化幅值和方向的任何电压矢量。空间矢量调制方法的目标是在每个 PWM 周期生成与参考电压矢量相符的开关序列,以实现连续旋转的空间矢量。

SVM 的操作

空间矢量调制方法基于参考电压矢量进行操作,在每个 PWM 周期为逆变器生成适当导通信号,目标是实现连续旋转的空间矢量。

采用空间矢量调制的磁场定向控制架构示意图。

该模块图显示了一个空间矢量调制工作流示例。

在每个 PWM 周期,以电压矢量作为输入参考,SVM 算法会:

  • 基于参考电压矢量计算开关导通时间
  • 基于导通时间生成马鞍波
  • 基于导通时间为逆变器开关生成适当的导通脉冲

SVM 算法生成的空间矢量调制电压信号如下图所示。

所生成的马鞍波能够最大程度地利用直流总线电压。与正弦脉宽调制 (SPWM) 方法相比,该方法能提供更好的额定电压输出。

通过比较调制波(马鞍波)和载波生成导通脉冲。然后,将生成的导通信号应用于三相逆变器的开关,以所需的速度或转矩驱动电机。

PWM 硬件支持

硬件板卡(如 Arduino、Raspberry Pi 和 TI 板)通过接收调制波形生成导通脉冲来驱动电力逆变器。

要进一步了解如何在 TI 硬件上实现 SVM 磁场定向控制,请观看此视频:使用 Simulink 实现 PMSM 的磁场定向控制,第 3 部分:部署

根据设计要求,采用 PWM 方法的电机控制算法通常需要以 kHz 级的较高频率执行。在耗费人力物力执行硬件测试之前,必须尽早评估控制架构的正确性。为此,您可以使用仿真环境。例如,使用 Simulink,您可以基于电机模型来仿真和验证控制架构,包括空间矢量调制等脉宽调制方法。要在 Simulink 中使用 SVM,请参考 Space Vector Generator 模块

要进一步了解如何设计和实现电机控制算法,请参阅 Motor Control BlocksetSimscape Electrical

6. PMSM 模型的频率响应估计

本例对运行三相永磁同步电机(PMSM)的模型进行频率响应估计(FRE)。

当您在目标硬件上模拟或运行模型时,模型会运行测试来估计每个PI控制器看到的频率响应(也称为原始FRE数据),并绘制FRE数据以提供工厂模型动态的图形表示。

当电机在稳态下运行时,连接到每个PI控制回路(Id电流、Iq电流和速度)的在线频率响应估计器块顺序扰动PI控制器输出,并估计每个PI控制器看到的工厂模型的频率响应。您可以使用设备的频率响应来估计PI控制器增益。

下图的模型使用磁场定向控制(FOC)技术来控制永磁同步电机。FOC算法需要转子位置反馈,该反馈由正交编码器传感器获得。有关FOC的详细信息,请参阅磁场定向控制(FOC)。

模型

该示例包括模型(目标模型)mcb_pmsm_freq_est_f28379d。

您可以将此模型用于模拟和代码生成。

支持的硬件配置的详细信息,请参阅"生成代码并将模型部署到目标硬件"一节中的"所需硬件"主题。

必需的MathWorks产品

要模拟模型,请执行以下操作:

  • 电机控制模块™
  • Simulink控制设计™
  • Stateflow®(仅在修改示例模型时需要)

要生成代码并部署模型,请执行以下操作:

1.电机控制块组

2.嵌入式编码器®

3.C2000™微控制器模块集

4.Simulink控制设计

5.状态流(仅在修改示例模型时需要)

前置条件

1.获取电机参数。Simulink®模型使用默认电机参数,您可以用电机数据表或其他来源的值替换这些参数。

但是,如果您有电机控制硬件,则可以使用电机控制块集参数估计工具估计要使用的电机的参数。有关说明,请参阅使用推荐硬件估算PMSM参数。

参数估计工具使用估计的电机参数更新motorParam变量(在MATLAB®工作空间中)。

2.如果从数据表或其他来源获得电机参数,请更新与Simulink®模型关联的模型初始化脚本中的电机参数和逆变器参数。有关说明,请参阅估计控制增益和使用实用函数。

如果使用参数估计工具,则可以更新逆变器参数,但不能在模型初始化脚本中更新电机参数。该脚本会自动从更新的motorParam工作区变量中提取电机参数。

模拟模型

此示例支持模拟。按照以下步骤模拟模型。

1.打开此示例中包含的目标模型。

2.单击"模拟"选项卡上的"运行"以模拟模型。

3.单击"模拟"选项卡上的"数据检查器"以查看和分析模拟结果。

4.在目标模型上,单击Plot freq response超链接,绘制速度控制回路和当前控制回路测量的工厂模型的频率响应数据(工作区中的sys_sim_id、sys_sim_iq和sys_sim_spd变量)。

生成代码并将模型部署到目标硬件

本节将向您展示如何生成代码、在目标硬件上运行FOC算法、启动频率响应估计以及绘制FRE数据。

此示例使用主机和目标模型。主机型号是控制器硬件板的用户界面。您可以在主机上运行主机模型。使用主机模型的先决条件是将目标模型部署到控制器硬件板上。主机模型使用串行通信来命令目标Simulink®模型,并在闭环控制中运行电机。

所需硬件

此示例支持此硬件配置。您还可以使用目标模型名称从MATLAB®命令提示符打开模型。

发布HXL-F28379D控制器+(BOOSTXL-DRV8305或BOOSTXL-3PHGANINV)逆变器:mcb_pmsm_freq_est_F28379D

注意:使用BOOSTXL-3PHGANINV逆变器时,请确保BOOSTXL-35PHGANING的底层和LAUNCHXL板之间有适当的绝缘。

关于与硬件配置相关的连接,请参见LAUNCHXL-F28069M和LAUNCHZL-F28379D配置。

在目标硬件上生成代码并运行模型:

  1. 对目标模型进行仿真,观察仿真结果。
  2. 完成硬件连接。
  3. 模型自动计算ADC(或电流)偏移值。要禁用此功能(默认启用),请更新变量逆变器。在模型初始化脚本中将ADCOffsetCalibEnable设置为0。
    或者,您可以计算ADC偏移值,并在模型初始化脚本中手动更新。有关说明,请参阅在开环控制中运行三相交流电机并校准ADC偏移。
  4. 计算正交编码器索引偏移值,并在永磁同步电机中更新。PositionOffset变量在与目标模型关联的模型初始化脚本中可用。有关说明,请参阅PMSM的正交编码器偏移校准。
  5. 打开要使用的硬件配置的目标模型。如果要更改模型的默认硬件配置设置,请参阅模型配置参数。
  6. 将示例程序加载到LAUNCHXL-F28379D的CPU2。例如,通过使用GPIO31(c28379D_CPU2_blink.slx)加载操作CPU2蓝色LED的程序,以确保CPU2不会被错误配置为使用用于CPU1的板外设。有关示例程序或模型的更多信息,请参阅德州仪器C2000微控制器块集(C2000微控制块集)入门中的任务2-创建、配置和运行TI Delfino F28379D LaunchPad(双核)模型部分。
  7. 单击硬件选项卡上的构建、部署和启动,将目标模型部署到硬件。
  8. 点击目标模型中的主机模型超链接,打开关联的主机模型。
    有关主机和目标型号之间串行通信的详细信息,请参阅主机目标通信。
  9. 在与目标模型关联的模型初始化脚本中,使用变量target.comport指定通信端口。该示例使用此变量更新主机型号中可用的主机串行设置、主机串行接收和主机串行传输块的端口参数。
  10. 将启动/停止电机开关的位置更改为打开,以开始运行电机。
  11. 更新主机模型中的参考速度值。
  12. 在主机模型的调试信号部分中选择要监视的调试信号。在SelectedSignals时间范围窗口中观察这些信号。
  13. 单击FRE触发器按钮,在目标硬件上启动FRE过程。
  14. 在主机模型的调试信号部分选择位置和原始FRE数据,开始从目标硬件接收原始FRE信息。FRE状态LED变为琥珀色,表示主机型号正在从目标硬件接收原始FRE数据。
    注意:只有当您在调试信号部分选择位置和原始FRE数据时,LED才会显示正确的状态。否则,LED将保持灰色。
  15. 检查主机型号上的FRE状态LED的状态。主机型号从目标硬件接收到所有原始FRE数据后,LED变为绿色。
  16. 单击FRE绘图按钮,绘制从目标硬件接收到的原始FRE数据。
  17. 在主体模型上,单击"模拟"选项卡上的"停止"以停止模拟。
  18. 单击主机模型中的比较超链接,绘制模拟和硬件运行期间生成的原始FRE数据并进行比较。
    为了进行准确的比较,在模拟期间和在目标硬件上运行示例时使用相同的参考速度。

更多内容,请参阅:
三相永磁同步电机(PMSM)模型的频率响应估计

相关推荐
我爱C编程22 分钟前
基于Qlearning强化学习的机器人路线规划matlab仿真
matlab·机器人·强化学习·路线规划·qlearning·机器人路线规划
Evand J16 小时前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab
孤亭远见20 小时前
COMSOL with Matlab
matlab
图南楠1 天前
simulink离散传递函数得到差分方程并用C语言实现
matlab
信号处理学渣1 天前
matlab画图,选择性显示legend标签
开发语言·matlab
机器学习之心1 天前
Bayes-GRU-Attention的数据多特征分类预测Matlab实现
matlab·分类·gru
叶庭云1 天前
Matlab 和 R 语言的数组索引都是从 1 开始,并且是左闭右闭的
matlab·编程语言·r·数组索引·从 1 开始
γ..2 天前
基于MATLAB的图像增强
开发语言·深度学习·神经网络·学习·机器学习·matlab·音视频
IT猿手2 天前
基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
算法·elk·机器学习·matlab·无人机·聚类·强化学习
超级大咸鱼2 天前
CW信号的正交解调
matlab·verilog·fpga·数字信号·解调·正交解调·cw