基于模型预测控制的PMSM系统速度环控制理论推导及仿真搭建

模型预测控制(Model Predictive Control, MPC)是一种先进的控制策略,广泛应用于工业控制中。它可以看作是一种最优控制方法,利用对象的动态模型来预测其状态的未来行为,并根据每个采样时间点特定性能目标函数的优化来确定未来的控制动作。MPC方法具有鲁棒性、建模简单、处理多变量系统、显示约束、预测未来行为和优化性能的能力等优势。它的不足在于预测控制行为的计算需要繁琐的计算量,因为它需要在每个采样时刻求解优化问题,在线优化的耗时时间在一定程度上限制了MPC方法在高实时性工业级的应用。然而,随着计算机硬件和凸优化技术的进行,对于具有高实时性要求的快速变化动态系统,实现这些较复杂控制器已成为可能。而将MPC方法应用于PMSM伺服系统的一个重要原因是其线性模型可以通过解析方法和辨识技术获得。

基本概念

MPC的主要步骤包括:

  1. 模型预测:使用系统的数学模型预测未来的输出。
  2. 滚动优化:在每个控制周期内,求解一个优化问题,找到最佳的控制序列。
  3. 反馈修正:每个周期只实施第一个控制输入,然后重新测量系统状态并重复这个过程。

优化问题的形式

在每个控制周期,MPC通过解决如下优化问题来计算控制

\min _u\sum_{k=0}^{N-1}{\left( y\left( k \right) -r\left( k \right) \right) ^TQ\left( y\left( k \right) -r\left( k \right) \right) +u\left( k \right) ^TPu\left( k \right)}

  • u是系统输入
  • y是系统输出
  • r是参考轨迹(指令)
  • QP是权重矩阵,用于平衡系统性能和控制输入的大小
  • N是预测时域的长度

以PMSM系统为例讲解MPC在其速度环的应用

A 电机速度环一阶模型

这里我们考虑一个典型的伺服系统,以表贴式永磁同步电机为例:

\dot{\omega}_m=\frac{1}{J_m}\left( k_fi_q-B_m\omega _m-T_L \right)

  • \omega _m是电机的角速度,可以理解为系统的输出,\dot{\omega}_m是电机速度的一阶导数,即加速度
  • J_m是电机的转动惯量
  • k_f是电机的力矩系数
  • i_q是电机的q轴电流,可以理解为系统的输入
  • B_m为电机的粘滞摩擦系数
  • T_L为负载力矩

B 状态空间模型

首先,我们将方程转换为状态空间形式。定义状态变量x=\omega _m和输入u=i_q,则状态空间方程可以写成:

\dot{x}=\frac{k_f}{J_m}u-\frac{B_m}{J_m}x

离散化后(采样时间为T_s):

x\left[ k+1 \right] =A_dx\left[ k \right] +B_du\left[ k \right]

其中:A_d=1-\frac{B_mT_s}{J_m}B_d=\frac{k_fT_s}{J_m}

C 预测模型

构建预测模型,用于MPC控制,预测模型为:

\left\{ \begin{array}{l} x_{k+1}=A_dx_k+B_du_k\\ y_{k+1}=C_dx_{k+1}\\ \end{array} \right.

下一时刻预测输出,即第二步预测:

\left\{ \begin{array}{l} x_{k+2}=A_d^2x_k+A_dB_du_k+B_du_k\\ y_{k+2}=C_dx_{k+2}\\ \end{array} \right.

第三步预测:

\left\{ \begin{array}{l} x_{k+3}=A_d^3x_k+A_d^2B_du_k+A_dB_du_{k+1}+B_du_{k+2}\\ y_{k+3}=C_dx_{k+3}\\ \end{array} \right.

......

N_p步预测

\left\{ \begin{array}{l} x_{k+N_p}=A_d^{N_p}x_k+A_d^{N_p-1}B_du_k+\cdots +\sum_{i=0}^{N_p-N_c}{A_d^iB_du_{k+N_c-1}}\\ y_{k+N_p}=C_dx_{k+N_p}\\ \end{array} \right.

其中N_p是预测步长,N_c是控制步长

        定义预测输出序列Y、控制输入序列U如下:

Y=\varPhi x_k+\varGamma U

其中,\varPhi =\left[ \begin{matrix} C_dA_d& C_dA_d^2& \cdots& C_dA_d^{N_p}\\ \end{matrix} \right]\varGamma =\left[ \begin{matrix} C_dB_d& 0& \cdots& 0\\ C_dA_dB_d& C_dB_d& \cdots& 0\\ \vdots& \vdots& \vdots& \vdots\\ C_dA_d^{N_p-1}& C_dA_d^{N_p-2}B_d& \cdots& C_dB_d\\ \end{matrix} \right]

参考信号序列:

R=\left[ \begin{matrix} r_k& r_{k+1}& \cdots& r_{k+N_{p-1}}\\ \end{matrix} \right]

因此代价函数被设计如下:

J=\left( \varPhi x_k+\varGamma U-R \right) ^TQ\left( \varPhi x_k+\varGamma U-R \right) +U^TPU

简化后可以得到标准的二次型优化问题:

J=U^T\left( \varGamma ^TQ\varGamma +R \right) U+2\left( \varPhi x_k-R \right) ^TQ\varGamma U+\left( \varPhi x_k-R \right) ^TQ\left( \varPhi x_k-R \right)

为了最小化该二次型代价函数,我们需要解以下优化问题:

J_{\min}=\frac{1}{2}U^THU+F^TU

其中,H=\varGamma ^TQ\varGamma +R,F=\varGamma ^TQ\left( \varPhi x_k-R \right)

求解这个二次型优化问题,我们可以通过求解以下线性方程组来得到最优解:

HU=-F

因此,控制输入向量U的数学表达式为:

U=-H^{-1}F

最终得到最优的虚拟控制序列:

U^*=\left[ \begin{matrix} u^*_k& u^*_{k+1}& \cdots& u^*_{k+N_p-1}\\ \end{matrix} \right]

取第一个值作为系统的输入。

仿真搭建

电机参数设置

  • J_m------7.06e-4
  • B_m------3.5e-4
  • 极对数n_p------4
  • 力矩系数k_f------0.0064*4
  • 电感L------0.4e-3
  • 电阻R------0.72
  • 采样时间T_s------0.001
  • 预测步数N_p------7,控制步数N_c------5

仿真结果

为了方便迭代,速度控制器采用MATLAB Function模块编写。

响应速度为:0.024s且几乎无超调

在0.5s时刻加载,T_L=2.4

由上图可看出,MPC控制器的抗干扰性能强,

与PI控制器对比:

MPC的表现明显优于传统PI控制器,且无需漫长的参数试凑调参,就能达到一个比较好的控制效果。

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值