主要内容

使用参数估计模块估计 PMSM 参数

此示例使用 Motor Control Blockset™ 提供的参数估计模块来估计具有正交编码器的永磁同步电机 (PMSM) 的以下参数:

  • 相电阻,Rs(欧姆)

  • D 轴电感,Ld(以亨为单位)

  • Q 轴电感,Lq(以亨为单位)

  • 反电动势常量,Ke(Vpk_LL/krpm,其中 Vpk_LL 是线电压峰值)

  • 电机惯量,J (Kg.m^2)

  • 摩擦常量,B (N.m.s)

有关涵盖无传感器参数估计的示例,请参阅Generate Motor Control Models for Selected Algorithm and Hardware

电机参数估计对于准确实现电机控制算法至关重要。准确的电机参数使算法能够精确地计算控制参数。因此,当使用诸如磁场定向控制 (FOC) 之类的控制方法运行 PMSM 时,准确的电机参数表示对于更精细的转速和转矩控制是必需的。电机参数估计还使您能够验证电机数据手册提供的参数值。此外,它还使您能够在 Simulink® 中准确复制被控对象模型,从而可以使用它来仿真难以使用物理硬件设置执行的真实场景和测试。

准确的仿真可帮助您轻松地重新配置和多次运行这些测试,而使用物理硬件可能难以实现这些测试。因此,这些详尽的测试使您能够轻松预测、发现和修复问题,包括难以重现的故障。

此示例说明如何使用以下模块在 Texas Instruments® 硬件板上设计和实现 PMSM 参数估计算法:

  • PMSM Parameter Estimation Configurator

  • PMSM Rs Estimator

  • Ld Estimator

  • Lq Estimator

  • PMSM Mechanical Parameter Estimation

或者,以此示例为参考,您可以在不同硬件板或配置上利用这些模块来实现类似的算法。

该示例中包含的目标模型在 mcb_pmsm_param_est_f28379d/Parameter Estimation/Param Est 子系统中使用参数估计模块。

这些子系统使用参数估计模块来估计 RsLdLq 和机械参数:

  • RsTest - 使用 Rs Estimator 模块来估计电机电阻。

  • LdTest - 使用 Ld Estimator 模块来估计 d 轴电感。

  • LqTest - 使用 Lq Estimator 模块来估计 q 轴电感。

  • MechParam - 使用 PMSM Mechanical Parameter Estimation 模块来估计反电动势常数、电机惯量和摩擦常量。

如果您只是在仿真此示例,目标模型将显示估计的参数。当您将目标模型部署到硬件时,请使用主机模型通过硬件来估计参数。

模型

该示例包含模型 mcb_pmsm_param_est_f28379d

该模型既可用于仿真,也可用于代码生成。

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

必需的 MathWorks 产品

要对模型进行仿真,您需要:

  • Motor Control Blockset

  • Stateflow®(仅在修改示例模型时才需要)

要生成代码并部署模型,您需要:

  • Motor Control Blockset

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Stateflow(仅在修改示例模型时才需要)

前提条件

检查并更新模型初始化脚本 mcb_pmsm_param_est_f28379d_data.m 中列出的强制性电机、逆变器和其他系统参数。

此外,您也可以更新用于仿真的可选电机参数。

您可以使用逆变器和电机硬件数据手册来确定这些值。

仿真模型

此示例支持仿真。请完成以下步骤以对模型进行仿真。

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

2.如果需要,请通过更新 mcb_pmsm_param_est_f28379d/Serial Receive/Variant Subsystem/Sim 子系统中可用的 PMSM Parameter Estimation Configurator 模块的封装参数来更改用于参数估计的配置元素。有关更多详细信息,请参阅PMSM Parameter Estimation Configurator

3.用户控制部分中,确保参数估计开关设置为停止

4.点击仿真选项卡上的运行来仿真该模型。

5.测试方法开关设置为手动自动模式。

- 手动 - 此模式使您能够按照规定的序列逐个手动执行测试。

- 自动 - 此模式使您能够按照规定的序列自动运行所有测试。

如果您使用手动模式:

a.测试方法开关设置为手动

b.使用测试选择按钮选择第一个测试 Rs

c.参数估计开关转至开始。模型运行 Rs 估计测试,然后它会在估计参数字段中显示计算出的值。

d.参数估计开关转至停止

e.同样,使用测试选择按钮选择下一个测试并重复步骤 c 到 e。

注意:确保按照 RsLdLq(Ke, J, B) 的规定序列运行所有测试。不要跳过任何测试。

在仿真期间,目标模型不支持 J 的计算。

如果您使用自动模式:

a.测试方法开关设置为自动

b.参数估计开关转至开始。模型开始按照 RsLdLq(Ke, J, B) 的规定序列运行所有测试,然后它会在估计参数字段中显示计算出的参数值。

c.参数估计开关转至停止

注意:自动模式下,选择测试选择按钮不起作用。

在仿真期间,目标模型不支持 J 的计算。

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

本节说明如何生成代码并在目标硬件上运行参数估计算法以估计所连接电机的参数。

此示例使用一个主机模型和一个目标模型。主机模型是控制器硬件板的一个用户界面。您可以在主机上运行主机模型。要使用主机模型,首先将目标模型部署到控制器硬件板。主机模型使用串行通信来命令目标运行参数估计测试。

必需的硬件

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

  • LAUNCHXL-F28379D 控制器 + BOOSTXL-DRV8305 逆变器:mcb_pmsm_param_est_f28379d

有关与硬件配置相关的连接,请参阅 LAUNCHXL-F28069M 和 LAUNCHXL-F28379D 配置

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

1.完成硬件连接。

2.该模型自动计算 ADC(或电流)偏移值。要禁用此功能(默认启用),请在模型初始化脚本中将变量 inverter.ADCOffsetCalibEnable 的值更新为 0。

您也可以计算 ADC 偏移值,并在模型初始化脚本中手动更新它们。有关说明,请参阅以开环控制方式运行三相 AC 电机并校准 ADC 偏移量

3.计算正交编码器索引偏移值,并在与目标模型相关联的模型初始化脚本中更新它。有关说明,请参阅 PMSM 的正交编码器偏移量校准

注意:验证连接到电机的正交编码器中可用的刻线数量。检查并更新模型初始化脚本中可用的变量 pmsm.QEPSlits。此变量对应于正交编码器模块的 Encoder slits 参数。有关 Encoder slitsEncoder counts per slit 参数的更多详细信息,请参阅Quadrature Decoder

4.打开目标模型。如果您要更改该模型的默认硬件配置设置,请参阅模型配置参数

5.将示例程序加载到 LAUNCHXL-F28379D 板的 CPU2,以确保 CPU2 不会错误地配置为使用预留给 CPU1 的板载外设。例如,加载使用 GPIO31 (c28379D_cpu2_blink.slx) 操作 CPU2 蓝色 LED 的程序。有关示例程序或模型的详细信息,请参阅 Texas Instruments入门指南 C2000 Microcontroller Blockset (C2000 Microcontroller Blockset) 中的“任务 2 - 为 TI Delfino F28379D LaunchPad(双核)创建、配置和运行模型”部分。

6.点击硬件选项卡上的编译、部署和启动以将目标模型部署到硬件上。

7.验证目标模型中的变量在 MATLAB 基础工作区中是否可用。

8.点击目标模型中的 mcb_pmsm_param_est_host_f28379d.slx 主机模型超链接以打开关联的主机模型。

有关主机模型和目标模型之间串行通信的详细信息,请参阅Host-Target Communication

9.如果需要,通过更新主机模型中可用的 PMSM Parameter Estimation Configurator 模块的封装参数来更改用于参数估计的配置元素。有关更多详细信息,请参阅PMSM Parameter Estimation Configurator

10.在与目标模型关联的模型初始化脚本中,使用变量 target.comport 指定通信端口。此变量会更新主机模型中可用的 Host Serial Setup、Host Serial Receive 和 Host Serial Transmit 模块的端口参数。

11.用户控制部分中,确保参数估计开关设置为停止

12.点击仿真选项卡上的运行以运行主机模型。这将启动主机模型和目标硬件之间的通信。

13.使用测试方法开关选择手动自动模式。

- 手动 - 此模式使您能够按照规定的序列逐个手动执行测试。

- 自动 - 此模式使您能够按照规定的序列自动运行所有测试。

如果您使用手动模式:

a.测试方法开关设置为手动

b.使用测试选择按钮选择第一个测试 Rs

c.参数估计开关转至开始。模型运行 Rs 估计测试,然后它会在主机模型中显示计算出的值。

d.参数估计开关转至停止

e.同样,使用测试选择按钮选择下一个测试并重复步骤 c 到 e。

注意:确保按照 RsLdLq(Ke, J, B) 的规定序列运行所有测试。不要跳过任何测试。主机模型使用活动测试字段来显示当前正在运行的测试。

如果您使用自动模式:

a.测试方法开关设置为自动

b.参数估计开关转至开始。模型开始按照 RsLdLq(Ke, J, B) 的规定序列运行所有测试,然后它会在主机模型中显示计算出的参数值。

c.参数估计开关转至停止

注意:自动模式下,选择测试选择按钮不起作用。

主机模型使用活动测试字段来显示当前正在运行的测试。

14.使用调试信号组合框选择调试信号。在示波器中监控选定信号。

注意:模型可以中断当前正在运行的测试并使以下 LED 变为红色,以保护硬件免受以下故障的影响:

  • 过流故障 - 当从电源汲取的实际电流超出模型初始化脚本中变量 motor.OverCurrLimmotor.I_rated 指定的过流限制时,会发生此故障。

  • 欠压故障 - 当输入 DC 电压下降到低于模型初始化脚本中变量 inverter.UnderVoltLiminverter.V_dc 指定的欠压限制时,会发生此故障。

注意:Error Code 模块显示有关在测试期间遇到的错误的诊断信息。使用此信息以及正在运行的(活动)测试及其参数估计模块的文档来识别每个错误的根本原因。

在参数估计测试完成后,主机模型将计算出的参数保存在基础工作区中的 motorParam 变量内。

另请参阅

App

模块

主题