永磁同步电机无传感器磁场定向控制
本例实现了场向控制(FOC)技术来控制三相永磁同步电机(PMSM)的速度。有关FOC的详细信息,请参见磁场定向控制(FOC).
这个例子使用了无传感器位置估计技术。您可以选择滑模观测器或通量观测器,以估计示例中使用的FOC算法的位置反馈。
滑模观测器(SMO)块在测量位置和估计位置之间的误差上产生滑动运动。该块产生的估计值与被测位置密切相关。该块使用定子电压和电流作为输入和估计电机模型的电动势(emf)。它利用电动势进一步估计转子的位置和转子的速度。Flux Observer块使用相同的输入估计定子磁链,产生的转矩和转子位置。
为保证检测到的转子位置准确,在电机块的定子相位电阻参数和滑模观测器和磁链观测器块的定子电阻参数上加上逆变板电阻值。
如果使用磁通观测器,该示例可以同时运行PMSM和无刷直流(BLDC)电机。
无传感器的观察者和算法对于超越基本速度的电机操作有已知的限制。我们建议您仅在基本速度下使用无传感器示例。
模型
该示例包括以下模型:
您可以将这些模型用于模拟和代码生成。您还可以使用open_system命令打开一个模型。例如,在基于F28069M的控制器上使用此命令:
open_system (“mcb_pmsm_foc_sensorless_f28069MLaunchPad.slx”);
有关可用于不同硬件配置的模型名称,请参阅生成代码并将模型部署到目标硬件部分中的所需硬件主题。
需要MathWorks®产品2022世界杯八强谁会赢?
模拟模型:
1.的模型:mcb_pmsm_foc_sensorless_f28069MLaunchPad
电机控制Blockset™
定点设计师™
2.的模型:mcb_pmsm_foc_sensorless_f28379d
电机控制Blockset™
要生成代码并部署模型:
1.的模型:mcb_pmsm_foc_sensorless_f28069MLaunchPad
电机控制Blockset™
嵌入式编码器®
德州仪器C2000处理器的嵌入式编码器支持包
定点设计师™
2.的模型:mcb_pmsm_foc_sensorless_f28379d
电机控制Blockset™
嵌入式编码器®
德州仪器C2000处理器的嵌入式编码器支持包
定点设计器™(仅用于优化代码生成)
先决条件
1.获取电机参数。我们使用Simulink®模型提供默认的电机参数,您可以用电机数据表或其他来源的值替换这些参数。
但是,如果您有电机控制硬件,您可以通过使用电机控制块集参数估计工具来估计您想要使用的电机的参数。有关说明,请参见使用推荐硬件估算PMSM参数.
参数估计工具更新motorParam变量(在MATLAB®工作空间)与估计的电机参数。
2.如果您从数据表或其他来源获得电机参数,请在与Simulink®模型相关的模型初始化脚本中更新电机参数和逆变器参数。说明,请参阅估计控制增益并使用效用函数.
如果使用参数估计工具,可以更新逆变器参数,但不能更新模型初始化脚本中的电机参数。脚本自动提取电机参数从更新motorParam工作空间变量。
如果使用滑模观测器和使用参数估计工具估计的电机参数,则需要调优滑模观测器参数。
模拟模型
这个例子支持模拟。按照以下步骤来模拟模型。
1.打开此示例中包含的模型。
2.要模拟模型,单击运行在模拟选项卡。
3.单击,查看和分析仿真结果数据检查在模拟选项卡。
生成代码并将模型部署到目标硬件
本节指导您生成代码并在目标硬件上运行FOC算法。
本例使用一个主机和一个目标模型。主机模型是控制器硬件板的用户界面。您可以在主机计算机上运行主机模型。使用主机模型的前提是将目标模型部署到控制器硬件板上。主机模型使用串行通信命令目标Simulink®模型,并在闭环控制中运行电机。
所需的硬件
本示例支持这些硬件配置。您也可以使用目标模型名称打开对应硬件配置的模型,从MATLAB®命令提示符。
LAUNCHXL-F28069M控制器+ BOOSTXL-DRV8305变频器:mcb_pmsm_foc_sensorless_f28069MLaunchPad
LAUNCHXL-F28379D控制器+ (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.更新主机模型中的Reference Speed值。
注意:
在以所需的参考速度运行电机之前(通过使用滑模观测器或磁通观测器),开始以0.1 x运行电机
永磁同步电动机。N_base
速度采用开环控制。然后过渡到闭环控制,将速度提高到0.25倍永磁同步电动机。N_base
(在那里,永磁同步电动机。N_base
为电机基本转速的MATLAB工作空间变量)。
高加减速会影响无传感器位置的计算。
10.点击运行在模拟选项卡运行主机模型。
11.将启停电机开关位置改为On,电机在开环状态下开始运行(默认转速为基础转速的10%)。
注意:不要在开环状态下长时间运行电机(使用本例)。电机可能产生大电流并产生过热。
我们设计了开环控制,使电机以低于或等于基准转速的10%的参考转速运行。
当您以较低的参考速度在硬件上运行此示例时,由于已知的问题,PMSM可能不会遵循较低的参考速度。
12.将电机参考转速提高到基准转速的10%以上,从开环控制切换到闭环控制。
注意:若要改变电机的转动方向,请将电机参考转速降至基准转速的10%以下。这使电机回到开环状态。改变旋转方向,但保持参考速度大小不变。然后过渡到闭环状态。
13.观察来自RX子系统的调试信号,在主机模型的时间范围内。
注意:
高参考速度和高参考转矩会影响滑模观测器块的性能。
如果使用基于F28379D的控制器,还可以选择要监视的调试信号。
其他可以尝试的事情
您可以使用SoC Blockset™实现无传感器闭环电机控制应用程序,解决与ADC-PWM同步、控制器响应和研究不同的PWM设置相关的挑战。有关详细信息,请参见集成单片机调度和外设在电机控制中的应用.
您还可以使用SoC Blockset™开发一个无传感器的实时电机控制应用程序,利用多个处理器核心来获得设计模块化,改进控制器性能和其他设计目标。有关详细信息,请参见多处理器微处理器的分区电机控制.