主要内容

基于正交编码器的永磁同步电机位置控制

本例实现了磁场定向控制(FOC)技术来控制三相永磁同步电机(PMSM)的位置。FOC算法需要转子位置反馈,它从正交编码器传感器获得。

您可以使用此示例通过使用闭环FOC实现位置控制应用程序。本例驱动电机达到输入参考位置值。您还可以在模型初始化脚本中为电机配置最大旋转数(任意方向)。

关于闭环FOC的详细信息,请参见磁场定向控制(FOC)而且电机闭环控制

模型

该示例包括mcb_pmsm_PosCtrl_f28379d模型。

您可以将此模型用于模拟和代码生成。您也可以在MATLAB®命令窗口中使用此命令金宝app打开Simulink®模型。

open_system (“mcb_pmsm_PosCtrl_f28379d.slx”);

有关支持的硬件配置的详细信息,请参见“生成代金宝app码并将模型部署到目标硬件”部分中的“所需硬件”主题。

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

模拟模型:

  • 电机控制块集™

生成代码并部署模型:

  • 电机控制块集™

  • 嵌入式编码器®

  • 德州仪器C2000处理器的嵌入式金宝appCoder®支持包

  • 定点设计器™(仅用于优化代码生成)

先决条件

1.获取电机参数。Simu金宝applink®模型使用默认参数,您可以将这些参数替换为电机数据表或其他来源的值。

但是,如果您有电机控制硬件,则可以使用motor control Blockset参数估计工具来估计要使用的电机的参数。有关说明,请参见使用推荐硬件估算PMSM参数.参数估计工具更新motorParam变量(在MATLAB®工作空间)与估计电机参数。

2.更新电机参数。如果您从数据表或其他来源获得电机参数,请在与Simulink®模型相关的模型初始化脚本中更新电机和逆变器参数。金宝app有关说明,请参见估计控制增益并使用效用函数

如果使用参数估计工具,可以更新逆变器参数,但不更新模型初始化脚本中的电机参数。脚本自动从更新的文件中提取电机参数motorParam工作空间变量。

模拟模型

本例支持模拟。金宝app按照以下步骤模拟模型。

1.打开本示例中包含的模型。

2.点击运行模拟TAB来模拟模型。

3.点击数据检查审查结果部分查看和分析仿真结果。

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

本节展示如何在目标硬件上生成代码和运行FOC算法。

本例使用一个主机和一个目标模型。主机模型是控制器硬件板的用户界面。您可以在主机计算机上运行主机模型。在主机上运行主机型号前,需要将目标型号部署到控制器硬件板上。主机模型使用串行通信来命令目标Simulink®模型并在闭环控制中运行电机。金宝app

所需的硬件

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

LAUNCHXL-F28379D控制器+ (BOOSTXL-DRV8305或BOOSTXL-3PHGANINV)逆变器:mcb_pmsm_PosCtrl_f28379d

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

有关与此硬件配置相关的连接,请参见LAUNCHXL-F28069M和LAUNCHXL-F28379D配置

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

1.对目标模型进行仿真,观察仿真结果。

2.完成硬件连接。

3.该模型在默认情况下计算相电流测量的ADC偏移值。属性的值可禁用此功能逆变器。ADCOffsetCalibEnable模型初始化脚本中的变量0

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

4.计算正交编码器索引偏移值,并在与目标模型相关的模型初始化脚本中更新它。有关说明,请参见永磁同步电机正交编码器偏置校准

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

6.将示例程序加载到LAUNCHXL-F28379D板的CPU2中。例如,使用GPIO31 (c28379D_cpu2_blink.slx)加载操作CPU2蓝色LED的程序。这可以确保CPU2不会被错误地配置为使用用于CPU1的单板外围设备。

7.点击构建、部署和启动硬件选项卡将目标模型部署到硬件。

8.单击主机模式在目标模型中使用超链接打开关联的主机模型。你也可以使用open_system命令打开主机型号。

open_system (“mcb_pmsm_host_model_PosCtrl.slx”);

主机与目标机型的串口通信请参见Host-Target沟通

9.在主机模型中,打开“主机串行设置”、“主机串行接收”和“主机串行传输”块,并选择a港口

10.更新主机模型中的参考位置[Degrees]值。默认情况下,最大旋转次数(无论是正方向还是负方向)为5。属性可以更改此值PosCtrlPosLimit模型初始化脚本中的变量。您可以使用命名为Init脚本在目标模型中。

最大旋转极限(度)=PosCtrlPosLimitx 360

请注意:你不能控制电机的旋转速度,但你可以通过设置PosCtrlSpeedLimit变量(单位)。单位系统的详细信息请参见单位系统

11.点击运行模拟TAB来运行主机模型。

12.将起动/停止电机开关的位置改为起动,开始运行电机。

13.在主机模型的Time Scope中观察来自RX子系统的调试信号。控件中选择要监视的调试信号信号范围部分的主机模型。

  • 速度控制-在瞄准镜中显示转速参考和转速反馈信号。

  • 标识控制—显示作用域内的Id引用和Id反馈信号。

  • 智商控制-在瞄准镜中显示Iq参考和Iq反馈信号。

  • Ia和Ib-显示范围内Ia和Ib电流信号。

  • 位置控制-在瞄准镜中显示位置参考和位置反馈信号。