该示例实现了面向现场的控制(FOC)技术,以控制三相永磁同步电动机(PMSM)的速度。有关Foc的详细信息,请参阅磁场定向控制(FOC)。
这个例子使用了无传感器位置估计技术。您可以选择滑模观测器或磁链观测器来估计示例中使用的FOC算法的位置反馈。
滑模观测器(SMO)块在测量和估计位置之间的误差上产生滑动运动。块体产生一个与测量位置密切相关的估计值。该块使用定子电压和潮流作为电机模型的输入和估计电动势(emf)。它利用电动势进一步估计转子位置和转子转速。通量观察者块使用相同的输入估计定子磁通,产生的扭矩和转子位置。
如果你使用磁链观察者,例子可以运行两个PMSM和无刷直流(BLDC)电机。
无传感器的观察者和算法已知的限制,电机操作超出基本速度。我们建议您使用无传感器的例子仅用于基本速度的操作。
示例包括以下模型:
您可以使用这些模型进行仿真和代码生成。您还可以使用Open_System命令打开模型。例如,对基于F28069M的控制器使用此命令:
open_system (“mcb_pmsm_foc_sensorless_f28069MLaunchPad.slx”);
对于您可以使用不同硬件配置的模型名称,请参阅“生成代码”中所需的硬件主题,并将模型部署到目标硬件部分。
模拟模型:
1。的模型:mcb_pmsm_foc_sensorless_f28069MLaunchPad
电机控制BlockSet™
定点设计师™
2。的模型:mcb_pmsm_foc_sensorless_f28379d
电机控制BlockSet™
要生成代码和部署模型:
1。的模型:mcb_pmsm_foc_sensorless_f28069MLaunchPad
电机控制BlockSet™
嵌入式译码器
嵌入式编码器®支持包的德州仪器™金宝appC2000™处理器
定点设计师™
2。的模型:mcb_pmsm_foc_sensorless_f28379d
电机控制BlockSet™
嵌入式译码器
嵌入式编码器®支持包的德州仪器™金宝appC2000™处理器
固定点设计器™(仅需要优化的代码生成)
1。获取电机参数。我们提供默认电机参数使用Simulink®模型,您可以使用电机数据表或其他来源的值替换。金宝app
然而,如果你有电机控制硬件,你可以估计你想使用的电机的参数,通过使用电机控制块集参数估计工具。有关说明,请参阅使用电机控制块集参数估算工具估算电机参数。
参数估计工具更新motorParam变量(在MATLAB®工作区中)具有估计的电机参数。
2。如果您从数据表或其他来源获得电机参数,请更新与Simulink®模型相关的模型初始化脚本中的电机参数和逆变器参数。金宝app说明,请参阅从电机参数估计控制增益。
如果使用参数估计工具,可以更新逆变器参数,但不会更新模型初始化脚本中的电机参数。脚本自动从更新中提取电机参数motorParam工作空间变量。
如果您使用的是使用参数估计工具估计的电机参数,则滑动模式观察者参数需要调整。
这个例子支持模拟。金宝app按照以下步骤模拟模型。
1。打开此示例中包含的模型。
2。要模拟模型,请单击跑步在模拟选项卡。
3.单击,可查看和分析仿真结果数据检查在模拟选项卡。
本节指示您在目标硬件上生成代码并运行FOC算法。
此示例使用主机和目标模型。主机模型是控制器硬件板的用户界面。您可以在主机上运行主机模型。使用主机模型的先决条件是将目标模型部署到控制器硬件板。主机模型使用串行通信来命令目标Simulink®模型并在闭环控制中运行电机。金宝app
所需的硬件
本例支持这些硬件配置。金宝app您还可以使用目标模型名称从MATLAB®命令提示符打开对应硬件配置的模型。
LaunchXL-F28069M控制器+ Boostxl-DRV8305逆变器:mcb_pmsm_foc_sensorless_f28069MLaunchPad
LaunchXL-F28379D Controller +(Boostxl-DRV8305或BoostxL-3PhganInv)逆变器:mcb_pmsm_foc_sensorless_f28379d
对于与前面的硬件配置相关的连接,请参阅LaunchXL-F28069M和LaunchXL-F28379D配置。
在目标硬件上生成代码和运行模型
1。对目标模型进行仿真,观察仿真结果。
2。完成硬件连接。
3.该模型自动计算模数转换器(ADC)或当前偏移值。要禁用此功能(默认情况下启用),请将值0更新为模型初始化脚本中的变量逆变器.AdcoffsetCalibenable。
或者,您可以计算ADC偏移值并在模型初始化脚本中手动更新它。说明,请参阅运行三相交流电机在开环控制和校准ADC偏移。
4.打开您想要使用的硬件配置的目标模型。如果您想要更改该模型的默认硬件配置设置,请参见模型配置参数。
5。在LAUNCHXL-F28379D的CPU2上加载一个示例程序,例如,使用GPIO31 (c28379D_cpu2_blink.slx)操作CPU2蓝色LED的程序,以确保CPU2没有被错误地配置为使用CPU1的单板外设。
6。点击构建,部署和启动在硬件选项卡将目标模型部署到硬件。
7.在目标模型中,单击主机模型超链接以打开关联的主机模型。您还可以使用open_system命令打开主机型号。例如,对基于F28069M的控制器使用此命令:
open_system (“mcb_host_model_f28069m.slx”);
主机与目标机型的串口通信的详细信息,请参见Host-Target沟通。
8.在主机型号的主机串行设置块掩码中,选择一个端口名称。
9.更新主机模型中的参考速度值。
注意:在以所需的参考速度运行电机之前(通过使用滑动模式观察者或通量观测器),请在0.1 x时开始运行电机pmsm.n_base.
速度采用开环控制。然后将速度提高到0.25 x,过渡到闭环控制pmsm.n_base.
(在哪里,pmsm.n_base.
为电机基本转速的MATLAB工作空间变量)。
10.点击跑步在模拟标签以运行主机模型。
11.将启动/停止电机开关的位置更改为ON,以启动在开环状态下运行电机(默认情况下,电机旋转为基本速度的10%)。
注意:不要在开环状态下长时间运行电机(使用本例)。电机可能产生大电流并产生过多的热量。
我们设计开环控制运行电机的参考速度小于或等于10%的基础速度。
当您在硬件上以低参考速度运行此示例时,由于已知的问题,PMSM可能不遵循低参考速度。
12.将电机参考转速提高到基准转速的10%以上,从开环控制切换到闭环控制。
注意:若要改变电机的旋转方向,请将电机参考转速降至基转速的10%以下。这使电机回到开环状态。改变旋转方向,但保持参考速度大小不变。然后过渡到闭环状态。
13。观察来自RX子系统的调试信号,在主机模型的时间范围内。
注意:
高参考速度和高参考扭矩会影响滑模观测器块的性能。
如果使用基于F28379D的控制器,还可以选择要监视的调试信号。
您可以使用SOC BlockSet™实现无传感器闭环电机控制应用程序,该应用程序解决了与ADC-PWM同步,控制器响应和研究不同PWM设置相关的挑战。有关详细信息,请参阅在电机控制应用中集成MCU调度和外设。
您还可以使用SoC Blockset™开发无传感器实时电机控制应用程序,利用多处理器核心获得设计模块化,提高控制器性能和其他设计目标。有关详细信息,请参阅多处理器微处理器的分区电机控制。