Main Content

使用基于 STM32 处理器的板对三相交流电机进行开环控制

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

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

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

您可以使用此模型:

  • 检查与目标的连接。

  • 验证硬件和软件环境。

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

  • 首次运行具有逆变器、处理器及其所需外设设置的新电机

前提条件

完成以下教程:

必需的硬件

硬件连接

跳线连接

在 X-NUCLEO-IHM07M1 板上配置以下连接,以对控制 BLY172S-24V-4000 电机执行 FOC。

可用模型

您可以使用具有 X-NUCLEO-IHM07M1 扩展板的 mcb_open_loop_control_nucleo_f401remcb_open_loop_control_nucleo_g474re 模型进行仿真和代码生成。您还可以使用 open_system 命令打开 Simulink® 模型。例如,对基于 STM32 处理器的硬件板使用以下命令:

open_system('mcb_open_loop_control_nucleo_f401re.slx');

为方便起见,我们提供了预配置模型

外设配置

STM32CubeMX 配置

  • ADC 配置

  • ADC 和 PWM 保持同步,以便于 ADC 注入组转换基于计时器 1 的更新事件启动。

  • ADC 通道配置为从 ADC 1 的注入组转换中读取电流反馈,并从常规组转换中读取参考转速。

  • PWM 配置

  • 配置 PWM 频率和 PWM 通道。Timer1 配置为生成更新事件,以使 ADC 与 PWM 同步。这种同步对于在合适的时间读取电流反馈非常重要。

  • 将重复计数器设置为 1,以确保每个周期发生一次更新事件。

外设模块配置

双击模块以打开模块参数配置。如果要在不同硬件板上运行此示例,请确保指定的参数值相同。

  • 配置 Analog to Digital Converter 模块

此示例中的算法使用异步调度。脉冲宽度调制 (PWM) 模块触发 ADC 转换。转换结束时,ADC 会发出中断,以触发开环算法。

  • 配置 PWM Output 模块

选择在计数器启用后设置重复计数器参数,以便在计时器计数器溢出时更新事件。

对模型进行仿真

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

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

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

3.点击仿真选项卡上的数据检查器来查看和分析仿真结果。要验证信号,请在仿真期间点击模型中可用的普通按钮启动电机。

生成代码并在目标硬件上部署和运行

本节说明如何通过使用开环控制生成代码并运行电机。

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

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

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

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

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

1.仿真目标模型并查看仿真结果。

2.完成硬件连接。

3.在目标模型的配置面板中更新以下电机参数。

  • 极对数

  • PWM 频率 [Hz]

  • 基转速 [RPM]

  • 控制算法的数据类型

4.硬件选项卡中,点击监控并调节。您可以从诊断查看器中观察到,模型代码被生成并且主机在加载生成的可执行文件后连接到目标。查看 Simulink 数据检查器。

5.要旋转电机,请点击硬件板上的普通按钮(蓝色普通按钮)

6.在电机开始运行后,观测 Simulink 数据检查器内 ${I_a}$${I_b}$ 电流的 ADC 计数。

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

如果电机未运行,请按下蓝色普通按钮停止电机,并将模型中的 Speed in RPM Constant 模块更改为外部模式。然后按下蓝色普通按钮启动电机并再次运行它。

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

当电机闲置时,在 Simulink 数据检查器中观察 ${I_a}$${I_b}$。数据检查器中的扁平线被视为 ADC 偏移。

其他可尝试的操作

有关详细信息