算法-自定义硬件的导出工作流
本例允许您使用任何自定义电机控制硬件(在Motor Control Blockset™示例中未使用的硬件)来使用面向场控制(FOC)运行三相永磁同步电机(PMSM)。使用算法导出工作流程,包括使用Simulink®和Embedded Coder®为控制算法生成代码,然后将其与手动编写或外部生成的硬件驱动程序代码集成。金宝app这个示例解释了算法导出工作流以及中间步骤。
本例使用以下硬件作为参考,但您可以使用任何电机控制硬件:
控制器:STMicroelectronics®STM32F302R8
逆变器:STMicroelectronics®X-NUCLEO-IHM07M1
电机:BLY171D(含正交编码器传感器)
您可以使用此示例自定义控制算法,并将其与电机控制硬件的驱动程序集成。在本例中,我们使用STM32 Cube MX
为硬件驱动程序配置和生成代码的软件。本例支持任何三相PMSM。金宝app
FOC算法的实现需要实时的转子位置反馈。本例使用正交编码器传感器测量转子位置。关于FOC的详细信息,请参见磁场定向控制(FOC).
该示例包括三个工作流。
1.开环控制和ADC偏移校准-此工作流使用一种算法,使用开环控制(也称为标量控制或伏特/Hz控制)运行PMSM。您可以使用此工作流检查硬件连接的完整性,并计算硬件上当前可用传感器的ADC偏移量。
2.正交编码器偏移校准-此工作流使用一种算法来计算d
转子的-轴和由正交编码器传感器检测到的指数脉冲位置。控制算法(在面向现场的控制工作流中可用)需要该偏移量来精确计算转子位置,这是实现FOC所必需的。
3.磁场定向控制-此工作流使用一种算法,该算法使用闭环面向场控制(FOC)运行PMSM。工作流使用ADC和正交传感器偏移量作为输入。
每个工作流都包括以下步骤,用于在硬件上准备、部署和运行算法:
1.使用Embedded Coder®为控制算法生成代码
2.获取硬件驱动程序的C代码
3.将控制算法代码与驱动程序代码集成
4.将集成代码部署到硬件
5.使用主机Simulink®模型控制电机。金宝app
开放式MATLAB项目
使用以下方法之一打开MATLAB®项目:
点击开放的例子.
执行命令
mcb_FOCAlgorithmExportDemoStart
在命令提示符处。
该项目包含三个文件夹,一个用于运行最终FOC算法所需的每个工作流。每个文件夹包含以下内容:
包含电机、逆变器和目标硬件细节的数据脚本。
算法模型的生成代码,用于控制算法。生成的代码将在该文件夹中可用
[project_root] /工作/代码
.
用于与目标硬件通信的主机模型。
C代码,展示了如何集成生成的算法代码和硬件驱动程序代码(特定于STM32F302R8 & X-NUCLEO-IHM07M1)。
除了这三个文件夹外,该项目还包括一个.IOC
文件。您可以将此文件与STM32 Cube MX一起使用,以配置目标的外围设备并生成代码。的.IOC
该项目中可用的文件是特定于STM32F302R8和X-NUCLEO-IHM07M1硬件。
定制硬件的工作流程
按顺序遵循这些工作流。
3.磁场定向控制