主要内容

使用模型预测控制进行 PMSM 的磁场定向控制

此示例采用模型预测控制 (MPC) 技术来控制三相永磁同步电机 (PMSM) 的转速。MPC 是一种控制技术,它通过调整和优化控制系统的输入,以最小化预测系统输出的误差,并在一段时间内实现参考控制目标。该技术涉及求解目标函数,并在每个采样时间点 (${T_s}$) 寻找最优输入序列。每个时间步结束后,将当前系统状态视为初始状态,并重复上述过程。

优化器基于在特定边界和约束条件下求解目标函数,为模型提供最优输入。在预测阶段,利用动态离散时间模型对被控对象的未来响应进行预测,预测时长可达 Np 个采样间隔,该时长称为预测时限。在优化步骤中,通过求解目标函数以获得最佳控制输入,该过程持续至 Nc 个采样间隔,该区间被称为预测响应的控制时域。控制时限仍小于或等于预测时限。

该示例采用 MPC 控制器作为电流控制器(在磁场定向控制或 FOC 算法中),以优化 ${I_d}$${I_q}$ 电流,并改变 d 轴和 q 轴控制器的电压输出,使其在一段时间内满足参考控制目标。

目标函数被推导为以下项的线性和:

[W1 * (error in output)] + [W2 * (rate of change of input)] + [W3 *
(error in input)]

其中,W1、W2 和 W3 为权重系数。

该示例使用模型初始化脚本定义以下三个参数的权重系数(或权重)。

1.输入:$\left[ {{I_d} = 0,{I_q} = 0} \right]$

2.输入变化率:$\left[ {{I_d} = 0.01,{I_q} = 0.01} \right]$

3.测得的输出:$\left[ {{V_d} = 1,{V_q} = 1} \right]$

因此,在默认情况下,该示例在计算预测输出误差时,将最大权重赋予输出变量参数(对应于 ${V_d}$${V_q}$ 电压)。您可以通过示例中提供的模型初始化脚本,修改用于错误计算的权重值。

该示例还控制 MPC 输入(${I_d}$${I_q}$)与 MPC 输出(${V_d}$${V_q}$),其操作范围如下面的下限和上限所示:

  • 输入

$$ - 1 \le {I_d} \le 1$$

$$ - 1 \le {I_q} \le 1$$

  • 测得的输出

$$ - 0.1 \le {V_d} \le 0.1$$

$$ - 1 \le {V_q} \le 1$$

注意:输入的变化率没有上下限。

为保持约束的线性,可考虑采用多面体逼近法。通过用六边形逼近可行区域,可在精度与约束数量之间达成可接受的权衡。由于定子电流的直流分量 ${I_d}$ 在绝大多数情况下都接近于零(仅在磁通弱化操作期间会呈现负值),因此可将约束 ${I_d}$ 视为小于或等于零,从而减少约束数量。

下图展示了 MPC 输出电压(${V_d}$${V_q}$,采用具有 6 个面的圆形近似)与 MPC 输入电流(${I_d}$${I_q}$,采用具有 4 个面的半圆形近似)约束的图形化表示。您可以使用 MATLAB 命令 mcb_getMPCObject(pmsm,PU_System,Ts_current,T_pwm,1) 生成这些图。

注意:本示例中模型初始化脚本使用的采样时间 (${T_s}$) 基于对特定硬件的测试结果。您可以为不同类型的硬件更改采样时间,这会反过来影响 MPC 的运行。

有关 MPC 的详细信息,请参阅What Is Model Predictive Control? (Model Predictive Control Toolbox)

模型

该示例包含模型 mcb_pmsm_foc_mpc_qep_f28379d

您可以将这些模型用于仿真和代码生成。

对于可用于不同硬件配置的模型名称,请参阅“生成代码并将模型部署到目标硬件”一节中的“必需的硬件”主题。

必需的 MathWorks 产品

要仿真模型,您需要:

  • Motor Control Blockset™

  • Model Predictive Control Toolbox™

要生成代码并部署模型,您需要:

  • Motor Control Blockset

  • Model Predictive Control Toolbox

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

前提条件

1.获取电机参数。我们对 Simulink® 模型提供了默认电机参数,您可以用电机数据表或其他来源的值替换这些默认值。

不过,如果您有电机控制硬件,则可以通过使用 Motor Control Blockset 参数估计工具来估计要使用的电机的参数。有关说明,请参阅

参数估计工具使用估计的电机参数更新 motorParam 变量(在 MATLAB® 工作区中)。

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

如果您使用参数估计工具,则可以在模型初始化脚本中更新逆变器参数,但不能更新电机参数。该脚本会自动从更新后的 motorParam 工作区变量中提取电机参数。

仿真模型

此示例支持仿真。请按照以下步骤仿真模型。

1.打开此示例附带的一个模型。

2.点击仿真选项卡上的运行来仿真该模型。

3.点击仿真选项卡上的数据检查器来查看和分析仿真结果。

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

本节将指导您生成代码并在目标硬件上运行 FOC 算法。

此示例使用一个主机模型和一个目标模型。主机模型是控制器硬件板的一个用户界面。您可以在主机上运行主机模型。使用主机模型的前提条件是将目标模型部署到控制器硬件板上。主机模型使用串行通信对目标 Simulink® 模型发出指令,并以闭环控制方式运行电机。

必需的硬件

此示例支持此硬件配置。您还可以在 MATLAB® 命令提示符下使用目标模型名称打开对应硬件配置的模型。

有关与前述硬件配置相关的连接,请参阅 LAUNCHXL-F28069M 和 LAUNCHXL-F28379D 配置

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

1.仿真目标模型并观测仿真结果。

2.完成硬件连接。

3.该模型自动计算 ADC(或电流)偏移值。要禁用此功能(默认启用),请在模型初始化脚本中将变量 inverter.ADCOffsetCalibEnable 的值更新为 0。

您也可以计算 ADC 偏移值,并在模型初始化脚本中手动更新它。有关说明,请参阅以开环控制方式运行三相 AC 电机并校准 ADC 偏移量

4.计算正交编码器索引偏移值,并在与目标模型相关联的模型初始化脚本中更新它。有关说明,请参阅 PMSM 的正交编码器偏移量校准

注意:验证连接到电机的正交编码器中可用的刻线数量。检查并更新模型初始化脚本中可用的变量 pmsm.QEPSlits。此变量对应于正交编码器模块的 Encoder slits 参数。有关 Encoder slitsEncoder counts per slit 参数的更多详细信息,请参阅Quadrature Decoder

5.按所需的硬件配置打开目标模型。如果您要更改该模型的默认硬件配置设置,请参阅模型配置参数

6.将一个示例程序加载到 LAUNCHXL-F28379D 的 CPU2(例如使用 GPIO31 操作 CPU2 蓝色 LED 的程序 c28379D_cpu2_blink.slx),以确保 CPU2 没有错误地配置为使用预留给 CPU1 的板载外设。有关示例程序或模型的详细信息,请参阅 Getting Started with Texas Instruments C2000 Microcontroller Blockset (C2000 Microcontroller Blockset) 中的“任务 2 - 为 TI Delfino F28379D LaunchPad(双核)创建、配置和运行模型”部分。

7.点击硬件选项卡上的编译、部署和启动以将目标模型部署到硬件上。

8.点击目标模型中的主机模型超链接以打开关联的主机模型。

有关主机模型和目标模型之间串行通信的详细信息,请参阅Host-Target Communication

9.在与目标模型关联的模型初始化脚本中,使用变量 target.comport 指定通信端口。该示例使用此变量来更新主机模型中可用的 Host Serial Setup、Host Serial Receive 和 Host Serial Transmit 模块的端口参数。

10.更新主机模型中的 Reference Speed 值。

11.点击仿真选项卡上的运行以运行主机模型。

12.将 Start / Stop Motor 开关的位置切换到 On 以开始运行电机。

13.使用调试信号部分选择您要监控的调试信号。在主机模型的 Time Scope 中,观测来自 RX 子系统的调试信号。

参考资料

  • G. Cimini, D. Bernardini, A. Bemporad and S. Levijoki, "Online model predictive torque control for Permanent Magnet Synchronous Motors," 2015 IEEE International Conference on Industrial Technology (ICIT), 2015, pp. 2308-2313, doi:10.1109/ICIT.2015.7125438.

  • S. Chai, L. Wang and E. Rogers, "Cascade model predictive control of a PMSM with periodic disturbance rejection," 2011 Australian Control Conference, 2011, pp. 309-314.