主要内容

使用面向现场的控制自动调节器调音PI控制器

此示例通过使用面向现场的控制自动块块来计算速度和电流控制循环中可用的PI控制器的增益值。有关此块的详细信息,请参阅面向现场的控制自动调节器。有关面向现场控制的详细信息,请参阅面向现场的控制(FOC)

使用该示例的代码生成能力将增益调节算法部署到目标硬件。这使您可以通过使用连接到电动机的硬件连接并通过实时处理电动机反馈在目标硬件上处理电动机反馈来运行算法。该示例使用正交编码器传感器来测量转子位置。

笔记:本示例使用面向现场的控制算法作为参考。您可以参考此示例,并使用类似的方法将面向字段的控制自动块块和增益调节算法添加到模型中可用的焦点逻辑。

模型

该示例包括目标模型MCB_PMSM_FOC_AUTOTUNER_F28379D

您可以将此模型用于仿真和代码生成。使用open_system命令打开模型。

open_system('mcb_pmsm_foc_autotuner_f28379d.slx');

面向导向的控制自动挡块迭代地调节d- 和- 轴电流控制和速度控制循环,并计算电流和速度PI控制器的增益。使用此命令在模型中找到可用的面向现场的控制自动块块:

open_system('MCB_PMSM_FOC_AUTOTUNER_F28379D/Current Control/Control_System/封闭环控制/foc_autotuner/foc_autotuner');

块处理工厂的电流和速度反馈。它还处理d- 和- 轴电流PI控制器计算PI控制器的收益(KPki)。

有关焦点架构的更多详细信息,请参阅面向现场的控制(FOC)

必需的MathWorks®产品下载188bet金宝搏

模拟模型:

  • 电动机控制区块™

  • 金宝appSimulink Control Design™

生成代码和部署模型:

  • 电动机控制区块™

  • 金宝appSimulink Control Design™

  • 嵌入式编码器®

  • Texas Instrument金宝apps™C2000™处理器的嵌入式编码器支持包

模拟和硬件部署的先决条件

1。打开目标模型的模型初始化脚本。检查并更新脚本中可用的电动机,逆变器以及其他控制系统以及硬件参数。有关找到和编辑与目标模型关联的模型初始化脚本的说明,请参见估计控制收益和使用实用程序功能

2。在里面逆变器和目标参数模型初始化脚本的部分,验证MCB_SetInverterParameters功能使用参数BOOSTXL-DRV8305。这使脚本可以使用BOOSTXL-DRV8305逆变器的预编程参数。

3。在模型初始化脚本中正确配置这些参数。这些变量对于计算PI控制器增益的增益调节算法至关重要。如果这些变量的值不正确,则模型可能无法使电动机达到稳定的速度状态。

  • PMSM.P

  • pmsm.i_rated

  • pmsm.positionOffset

  • PMSM.Qepslits

4。如果您使用的是未列出的电动机mcb_setpmsmmotorparameters功能(在系统参数//硬件参数模型初始化脚本的部分),调整以下初始收益的默认值初始PI参数模型初始化脚本的部分。这样可以确保电动机达到速度控制操作的稳定状态:

  • pi_params.kp_id

  • pi_params.ki_id

  • pi_params.kp_iq

  • pi_params.ki_iq

  • pi_params.kp_speed

  • pi_params.ki_speed

当您在目标硬件上模拟或运行示例时,该示例使用PI控制器的原油值来实现速度控制操作的稳态状态。

笔记:使用此示例时,如果电动机(无论是否列出)mcb_setpmsmmotorparameters函数)不运行,请尝试调整这些参数的默认值。

5。在里面foc自动调节参数模型初始化脚本的部分,检查并更新面向现场的控制自动块块的参数。这设置了速度和当前PI控制器的参考带宽和相位边缘值。

模拟目标模型

模拟该示例是可选的。按照以下步骤模拟目标模型:

1。打开目标模型。

2。点击模拟选项卡以模拟目标模型。

3。在可用的显示块中观察计算的PI控制器增益值MCB_PMSM_FOC_AUTOTUNER_F28379D/Current Control/pi_params_display_and_logging子系统。

计算出的收益可能不准确,因为在模拟和硬件部署部分的先决条件中的步骤3检查仅四个电动机参数的准确性。

如果要使用仿真来计算和测试PI控制器的收益,请在单击之前按照以下步骤操作模拟目标模型的选项卡。

  • 在里面系统参数//硬件参数模型初始化脚本的部分,验证mcb_setpmsmmotorparameters函数使用代表您的电机的参数(例如,Teknic2310p)。打开mcb_setpmsmmotorparameters功能可以查看存储常用PMSM的电动机参数的预编程案例。

如果是mcb_setpmsmmotorparameters功能不列出您的PMSM,使用以下步骤确定电动机的参数:

参数估计工具更新摩托车变量(在MATLAB®工作区中)具有估计的电机参数。

  • 如果从数据表或其他源获取电动机参数,请在模型初始化脚本中添加和配置电动机参数。这些参数值覆盖了该函数中选定的预编程情况mcb_setpmsmmotorparameters

如果使用参数估计工具,请不要直接在模型初始化脚本中更新电动机参数。脚本自动从更新的摩托车工作空间中的变量。

模拟目标模型并确定收益后,使用计算的增益值更新模型(该模型),以快速使电动机达到稳定的速度状态。

通过使用连接到电动机的实际硬件,将示例部署到目标硬件,以更准确地调整PI控制器。有关更多详细信息,请参阅“生成代码”和“部署模型”以定位硬件部分。

生成代码和部署模型以目标硬件

本节将显示如何生成代码并运行用于调整目标硬件上PI控制器收益的算法。在硬件上运行该示例使您可以通过实时处理实际工厂的反馈来更准确地计算PI控制器。

此示例使用主机和目标模型。主机模型是控制器硬件板的用户界面。您可以在主机计算机上运行主机模型。在主机计算机上运行主机模型之前,请将目标模型部署到控制器硬件板上。主机模型使用串行通信来命令目标模型并在闭环控制中运行电动机。

需要硬件

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

launchxl-f28379D控制器 + boostxl-DRV8305逆变器:MCB_PMSM_FOC_AUTOTUNER_F28379D

有关与此硬件配置相关的连接的更多信息,请参见Launchxl-F28069M和launchxl-F28379D配置

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

1。完成硬件连接。

2。该模型会自动计算数字转换器(ADC)偏移量的类似物(也称为电流偏移)。要禁用此功能(默认启用),请更新反变量模型初始化脚本中的变量0

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

3。计算正交编码器索引偏移值,然后在pmsm.positionOffset目标模型的模型初始化脚本中的变量。有关说明,请参阅正交编码器偏移PMSM电机的校准

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

5。将示例程序加载到launchxl-F28379D板的CPU2。例如,加载操作CPU2蓝色的程序通过使用GPIO31(C28379D_CPU2_BLINK.SLX)。这样可以确保没有错误地配置CPU2使用用于CPU1的板外围设备。

6。点击构建,部署和开始硬件选项卡将目标模型部署到硬件。

7。点击主机模型目标模型中的超链接以打开关联的主机模型。您也可以使用Open_System命令打开主机模型。

open_system('MCB_HOST_AUTOTUNER_F28379D.SLX');

有关主机和目标模型之间串行通信的详细信息,请参见主机目标通信

8。在主机串行设置块参数对话框中,选择端口名称您已连接目标硬件。

9。关闭马达滑块开关开始位置开始运行电动机。

10。更新参考速度值速度参考[RPM]场地。建议您使用一个大约是电动机额定速度的一半的值。

11。在里面调试信号部分,选择speed_ref&speed_feedback并监视速度信号选择信号时间范围。等到电动机达到稳定的速度。

该示例只能以稳定的速度状态开始调整。

12。检查PI参数滑块开关在自动调节器位置。

13。关闭自动调节器滑块开关开始位置开始自动调整PI控制器的收益。调整过程会根据控制器输出中的控制器目标(带宽和相位边距)引入扰动。该示例使用对扰动的系统响应来计算最佳控制器增益值。

该模型在电动机上迭代执行这些测试,并确定一组准确的一组KPki当前和速度PI控制器的收益。

调整状态显示更改状态调整没有开始调整正在进行中

笔记:在进行调整时,请确保PI参数滑块开关保留在自动调节器位置。

14。当调整过程成功完成时调整状态显示更改状态调整正在进行中调整完整

目标模型更新了使用计算的目标硬件在目标硬件上运行的速度和当前PI控制器KPki收益。另外,主机模型显示这些值。

15。如果增益调节算法在调整过程中遇到错误,则调整状态显示显示调谐失败。关闭自动调节器滑块开关停止位置,看看故障排除故障排除说明的部分。

16。如果您已经成功完成了调整过程,请转动自动调节器滑块开关停止位置。关闭PI参数滑块开关默认位置以启用目标模型的默认操作模式。在此模式下,目标模型使用计算的增益值来使用foc操作电动机。

17。验证计算的增益值。有关说明,请参阅验证计算的PI控制器增益部分。

验证计算的PI控制器增益

1。检查电动机是否正在运行,并且PI参数滑块开关在默认位置。

2。选择speed_ref&speed_feedback调试信号调试信号主机模型的部分。

3。打开选择信号时间范围以监视参考速度和速度反馈信号。

4。更新参考速度(用于您的电机控制应用程序)速度参考[RPM]在时间范围内进行字段并监视信号。

5。在里面选择信号窗口,导航到工具>测量并选择光标测量显示光标测量区域。

6。将光标1拖到指示零的位置speed_ref(就在speed_ref上升之前)。将光标2拖到位置speed_feedback见面speed_ref首次。

ΔT表示焦点算法的实际响应时间(电动机花费的时间达到零参考速度的参考速度的100%)。

7。对于速度PI控制器,请使用pi_params.speedbw模型初始化脚本中可用的可变,以确定速度PI控制器的带宽。使用此关系计算理论响应时间:

$$响应{\ rm {\ _}} time = \ left({{2 \ over {pi {\ rm {\ _}}} params.speedbw}}}} \ right)$

比较理论响应时间使用实际响应时间ΔT来验证速度PI控制器的增长。

同样,您可以通过分析当前的PI控制器获得的验证d当前的PI控制器。

故障排除

请按照以下步骤进行故障排除失败的增益实例。

1。识别循环(要么d当前的,电流或速度)的调音过程失败。

目标模型以此顺序调整PI控制器:

d当前控制器→电流控制器→速度控制器

在此序列中,一个控制器的调谐失败导致后续控制器的增益不正确。

使用主机模型中可用的显示块检查三个控制器的计算收益。零KP或者ki控制器增益值表明相应控制器的调整过程失败。

按照先前的序列中的第一个PI控制器的后续步骤进行调整失败的上述步骤。

2。选择步骤1中标识的控制器的控制器参考和反馈信号调试信号部分(例如,IQ_REF和IQ_FEEDBACK为了电流控制器)并打开选择信号时间范围。

3。检查PI参数滑块开关在自动调节器位置。

4。关闭自动调节器滑块开关开始位置再次运行调整过程。

5。监视步骤1中标识的控制器的反馈信号(例如,iq_feedback) 在里面选择信号时间范围。

情况1:如果控制器反馈信号的峰值满足以下条件之一,请遵循以下步骤:

  • 价值太高(大于1)

  • 价值太低(小于pi_params.currentsineamp对于当前控制器或小于pi_params.speedsineamp对于速度控制器)

笔记:pi_params.currentsineamppi_params.speedsineamp变量在模型初始化脚本中定义。

一个。如果步骤1中确定的控制器是d或者当前控制器,修改pi_params.currentsineamp可变使其小于控制器反馈信号的峰值。

b。如果步骤1中标识的控制器是速度控制器,请修改pi_params.speedsineamp可变使其小于控制器反馈信号的峰值。

C。关闭自动调节器滑块开关停止位置,然后开始位置再次运行调整过程。

案例2:如果控制器反馈信号的峰值位于该范围内:

  • $ \ left [{pi {\ rm {\ _}} params.currentsineamp,1} \ right] $(对于当前控制器)

  • $ \ left [{pi {\ rm {\ _}} params.speedsineamp,1} \ right] $(对于速度控制器)

笔记:pi_params.currentsineamppi_params.speedsineamp变量在模型初始化脚本中定义。

一个。更新现场导向的控制自动块块(设置参考带宽和相位边距值)的参数foc自动调节参数模型初始化脚本的部分。

b。关闭自动调节器滑块开关停止位置,然后开始位置再次运行调整过程。