主要内容

算法-自定义硬件的导出工作流

本例允许您使用任何自定义电机控制硬件(在Motor Control Blockset™示例中未使用的硬件)来使用面向场控制(FOC)运行三相永磁同步电机(PMSM)。使用算法导出工作流程,包括使用Simulink®和Embedded Coder®为控制算法生成代码,然后将其与手动编写或外部生成的硬件驱动程序代码集成。这个示例解释了算法导出工作流以及中间步骤。

本例使用以下硬件作为参考,但您可以使用任何电机控制硬件:

  • 控制器:STMicroelectronics®STM32F302R8

  • 逆变器:STMicroelectronics®X-NUCLEO-IHM07M1

  • 电机:BLY171D(含正交编码器传感器)

您可以使用此示例自定义控制算法,并将其与电机控制硬件的驱动程序集成。在本例中,我们使用STM32 Cube MX为硬件驱动程序配置和生成代码的软件。本例支持任何三相PMSM。

FOC算法的实现需要实时的转子位置反馈。本例使用正交编码器传感器测量转子位置。关于FOC的详细信息,请参见磁场定向控制(FOC)

该示例包括三个工作流。

1.开环控制和ADC偏移校准-此工作流使用一种算法,使用开环控制(也称为标量控制或伏特/Hz控制)运行PMSM。您可以使用此工作流检查硬件连接的完整性,并计算硬件上当前可用传感器的ADC偏移量。

2.正交编码器偏移校准-此工作流使用一种算法来计算d转子的-轴和由正交编码器传感器检测到的指数脉冲位置。控制算法(在面向现场的控制工作流中可用)需要该偏移量来精确计算转子位置,这是实现FOC所必需的。

3.磁场定向控制-此工作流使用一种算法,该算法使用闭环面向场控制(FOC)运行PMSM。工作流使用ADC和正交传感器偏移量作为输入。

每个工作流都包括以下步骤,用于在硬件上准备、部署和运行算法:

1.使用Embedded Coder®为控制算法生成代码

2.获取硬件驱动程序的C代码

3.将控制算法代码与驱动程序代码集成

4.将集成代码部署到硬件

5.使用主机Simulink®模型控制电机。

开放式MATLAB项目

使用以下方法之一打开MATLAB®项目:

  • 点击开放的例子

  • 执行命令mcb_FOCAlgorithmExportDemoStart在命令提示符处。

该项目包含三个文件夹,一个用于运行最终FOC算法所需的每个工作流。每个文件夹包含以下内容:

  • 包含电机、逆变器和目标硬件细节的数据脚本。

  • 算法模型的生成代码,用于控制算法。生成的代码将在该文件夹中可用[project_root] /工作/代码

  • 用于与目标硬件通信的主机模型。

  • C代码,展示了如何集成生成的算法代码和硬件驱动程序代码(特定于STM32F302R8 & X-NUCLEO-IHM07M1)。

除了这三个文件夹外,该项目还包括一个.IOC文件。您可以将此文件与STM32 Cube MX一起使用,以配置目标的外围设备并生成代码。的.IOC该项目中可用的文件是特定于STM32F302R8和X-NUCLEO-IHM07M1硬件。

定制硬件的工作流程

按顺序遵循这些工作流。

1.开环控制和ADC偏移校准

2.正交编码器偏移校准

3.磁场定向控制

Baidu
map