Main Content

以开环控制方式运行三相交流电机并校准 ADC 偏移量

此示例使用开环控制(也称为标量控制或伏特/赫兹控制)来运行电机。这种方法会改变定子电压和频率来控制转子转速,而不使用来自电机的任何反馈。您可以使用这种方法来检查硬件连接的完整性。开环控制的恒速应用使用固定频率的电机电源。开环控制的可调速应用需要可变频率电源来控制转子转速。为了确保恒定的定子磁通,请保持电源电压振幅与其频率成比例。

开环电机控制无法将可能影响电机转速的外部条件纳入考虑范围。因此,控制系统无法自动校正期望的电机转速和实际电机转速之间的偏差。

此模型通过使用开环电机控制算法来运行电机。该模型可以帮助您开始使用 Motor Control Blockset™,并通过运行电机来验证硬件设置。目标模型算法还从电流传感器读取 ADC 值,并通过使用串行通信将这些值发送给主机模型。

您可以使用此模型:

  • 检查与目标的连接。

  • 检查与目标的串行通信。

  • 验证硬件和软件环境。

  • 检查电流传感器的 ADC 偏移量。

  • 第一次运行具有逆变器和目标设置的新电机。

模型

该示例包括以下模型:

您可以将这些模型用于仿真和代码生成。

对于可用于不同硬件配置的模型名称,请参阅“生成代码并将模型部署到目标硬件”一节中的“必需的硬件”主题。

必需的 MathWorks 产品

要仿真模型,您需要:

1.对于模型 mcb_open_loop_control_f28069M_DRV8312mcb_open_loop_control_f28069MLaunchPad

  • Motor Control Blockset™

  • Fixed-Point Designer™

2.对于模型 mcb_open_loop_control_f28379d

  • Motor Control Blockset™

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

1.对于模型 mcb_open_loop_control_f28069M_DRV8312mcb_open_loop_control_f28069MLaunchPad

  • Motor Control Blockset™

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer™

2.对于模型 mcb_open_loop_control_f28379d

  • Motor Control Blockset™

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer™(仅在优化代码生成时需要)

前提条件

1.对于 BOOSTXL-DRV8323,请使用以下步骤更新模型:

  • 导航到模型中的以下路径:/Open Loop Control/Codegen/Hardware Initialization。

  • 对于 LAUNCHXL-F28379D:将 DRV830x Enable block 从 GPIO124 更新为 GPIO67。

  • 对于 LAUNCHXL-F28069M:将 DRV830x Enable block 从 GPIO50 更新为 GPIO12。

2.对于 BOOSTXL-3PHGANINV,请使用以下步骤更新模型:

  • 对于 LAUNCHXL-F28379D:在 mcb_open_loop_control_f28379dConfiguration 面板中,将 Inverter Enable Logic 设置为 Active Low

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

仿真模型

此示例支持仿真。请按照以下步骤仿真模型。

1.打开此示例附带的一个模型。

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

3.点击仿真选项卡上的数据检查器来查看和分析仿真结果。

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

本节指导您生成代码并使用开环控制运行电机。

该示例使用一个主机模型和一个目标模型。主机模型是控制器硬件板的一个用户界面。您可以在主机上运行主机模型。使用主机模型的前提条件是将目标模型部署到控制器硬件板上。主机模型使用串行通信对目标 Simulink® 模型发出指令,并以闭环控制方式运行电机。

必需的硬件

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

有关与前述硬件配置相关的连接,请参阅 F28069 控制卡配置

  • LAUNCHXL-F28379D 控制器 +(BOOSTXL-DRV8301 或 BOOSTXL-DRV8305 或 BOOSTXL-DRV8323 或 BOOSTXL-3PHGANINV)逆变器:mcb_open_loop_control_f28379d

要配置模型 mcb_open_loop_control_f28379d,请将 Inverter Enable Logic 字段(在目标模型的 Configuration 面板中)设置为:

  • Active High:使用带 BOOSTXL-DRV8301 或 BOOSTXL-DRV8305 或 BOOSTXL-DRV8323 逆变器的模型。

  • Active Low:使用带 BOOSTXL-3PHGANINV 逆变器的模型。

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

注意:

  • 此示例支持任何类型的三相交流电机(PMSM 或感应电机)以及连接到受支持硬件的任何类型的逆变器。

  • 某些 PMSM 无法以更高的转速运行,尤其是当轴承受负载时。要解决此问题,您应根据给定的频率增加电压。您可以使用以下步骤来增加模型中的电压:

1.在模型中导航到以下路径:/Open Loop Control/Control_System/VabcCalc/。

2.将增益 Correction_Factor_sinePWM 更新为 20%。

3.出于安全原因,需要定期监控电机轴、电机电流和电机温度。

生成代码并运行模型以实现开环控制

1.仿真目标模型并观测仿真结果。

2.完成硬件连接。

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

4.在目标模型的 Configuration 面板中更新以下电机参数。

  • 极对数

  • PWM Frequency [Hz]

  • Base Speed [RPM]

  • Data type for control algorithm

  • Inverter Enable Logic(仅在 mcb_open_loop_control_f28379d 目标模型中提供)

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

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

注意:通过点击 Always Ignore 按钮,忽略模型顾问显示的警告消息“Multitask data store option in the Diagnostics page of the Configuration Parameter Dialog is none”。这是预期工作流的一部分。

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

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

8.在主机模型的 Target Selection 区域中选择目标(可以是 TI F28069MTI F28379DOther)。

注意:如果您选择 Other,则可以在 Host Serial Setup 模块参数对话框中输入您所使用的目标硬件的 Baud rate

9.在主机模型中,打开 Host Serial Setup、Host Serial Receive 和 Host Serial Transmit 模块,并选择 Port。

10.在主机模型中输入 Reference Speed 值。

11.点击仿真选项卡上的运行以运行主机模型。

12.将 Start / Stop Motor 开关的位置切换到 On 以开始运行电机。

13.在电机运行后,观测 Time Scope 内 ${I_a}$${I_b}$ 电流的 ADC 计数。

注意:此示例可能不允许电机满负荷运行。开始以低速运行电机。此外,建议以小步长更改参考转速(例如,对于基转速为 3000 rpm 的电机,以 500 rpm 开始运行电机,然后以 200 rpm 的幅度提高或降低转速)。

如果电机未运行,请将 Start / Stop Motor 开关的位置切换到 Off 以停止电机并更改主机模型中的参考转速。然后,将 Start / Stop Motor 开关的位置切换到 On 以再次运行电机。

生成代码并运行模型以校准 ADC 偏移量

1.仿真目标模型并观测仿真结果。

2.完成硬件连接。

3.从硬件板终端断开三相电机的线缆连接。

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

5.将一个示例程序加载到 LAUNCHXL-F28379D 的 CPU2(例如使用 GPIO31 操作 CPU2 蓝色 LED 的程序),以确保 CPU2 没有错误地配置为使用预留给 CPU1 的板载外设。

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

注意:通过点击 Always Ignore 按钮,忽略模型顾问显示的警告消息“Multitask data store option in the Diagnostics page of the Configuration Parameter Dialog is none”。这是预期工作流的一部分。

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

8.在主机模型中,打开 Host Serial Setup、Host Serial Receive 和 Host Serial Transmit 模块,并选择 Port。

9.点击仿真选项卡上的运行以运行主机模型。

10.观测 Time Scope 内 ${I_a}$${I_b}$ 电流的 ADC 计数。ADC 计数的平均值是电流 ${I_a}$${I_b}$ 的 ADC 偏移量校正值。要获得 ADC 计数的平均值(中位数)值,请执行以下操作:

  • 示波器窗口中,导航到工具 > 测量,并选择信号统计以显示轨迹选择信号统计区域。

  • 轨迹选择下,选择一个信号(${I_a}$${I_b}$)。所选信号的特性显示在信号统计窗格中。您可以在“中位数”字段中看到所选信号的中位数值。

对于 Motor Control Blockset 示例,请在链接到示例的模型初始化脚本中更新 inverter.CtSensAOffsetinverter.CtSensBOffset 变量中计算的 ADC(或电流)偏移值。有关说明,请参阅估计控制增益和使用工具函数

注意:计算的 ADC 偏移量取决于您在模型初始化脚本中配置的 ADC 增益值 inverter.SPI_Gain_Setting。更改 ADC 增益会同时更改 ADC 偏移量。