问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

永磁同步电机预测模型控制(MPC)

创作时间:
作者:
@小白创作中心

永磁同步电机预测模型控制(MPC)

引用
CSDN
1.
https://blog.csdn.net/qq_28149763/article/details/144934742

预测控制理论是上世纪七十年代在工业生产中发展起来的一种控制理论。在面对多变量、非线性的控制系统时,工程师们发现:在工业生产实践中很难对控制系统建立精确地数学模型;在系统自身以及周围环境的干扰影响下,控制系统的鲁棒性变得尤为重要;同时工业控制策略需要与先进的计算机技术相结合,提升其控制性能,并保证其实时性、经济性。于是,具有优良控制效果的预测控制算法应运而生。

预测控制的本质是对系统未来的状态变量的预测。首先建立控制系统的数学模型,以固定采样间隔采集系统当前时刻的状态变量,对系统未来时刻状态变量预测输出。根据系统要求不同提前设定价值函数,对预测输出进行选择,选择符合系统要求的最优控制量,从而使系统性能达到最优。但是预测控制的基础是系统的数学模型,当系统数学模型发生变化时,预测控制的最优控制量随即发生相应的变化。因此,预测控制算法的使用高度依赖系统数学模型,且对外部干扰以及系统参数变化十分敏感,同时对计算量有着一定的要求。因此,预测控制在具体应用时,需搭配具有一定计算能力的数字芯片处理器。 预测控制分类如下图所示。四种预测控制实现过程不同,但都是以提高系统性能为最终目的。

模型预测控制包含连续控制集模型预测控制(Continuous control set model predictive control,CCS-MPC)和有限控制集模型预测控制(Finite control set model predictive control,FCS-MPC)两种。

永磁同步电机模型预测控制

预测模型

永磁同步电机模型预测控制的预测模型是基于电机的数学模型建立的。电机的数学模型通常包括电磁方程、运动方程和磁链方程等。在模型预测控制中,需要将这些方程离散化,以便在计算机中进行数值计算。离散化的预测模型可以表示为:

$$
\begin{aligned}
x(k+1) &= Ax(k) + Bu(k) \
y(k) &= Cx(k) + Du(k)
\end{aligned}
$$

其中,$x(k)$ 是状态向量,$u(k)$ 是控制输入向量,$y(k)$ 是输出向量,$A$、$B$、$C$ 和 $D$ 是系统矩阵。

价值函数

价值函数是模型预测控制中的关键组成部分,用于衡量控制效果的好坏。在永磁同步电机的模型预测控制中,价值函数通常包括以下几个方面:

  • 电流误差:衡量实际电流与参考电流之间的偏差。
  • 电压约束:限制控制输入的大小,以防止过电压。
  • 电流约束:限制电流的大小,以防止过流。
  • 开关频率:限制开关频率,以减少开关损耗。

滚动优化

滚动优化是模型预测控制的核心算法。在每个采样时刻,控制器会基于当前的状态信息,预测未来一段时间内的系统行为,并通过优化算法求解最优控制序列。滚动优化的具体步骤如下:

  1. 基于当前状态 $x(k)$,预测未来 $N$ 个采样时刻的系统状态。
  2. 根据价值函数,计算每个可能的控制序列对应的性能指标。
  3. 选择使性能指标最小的控制序列作为当前时刻的控制输入。
  4. 执行控制输入,并在下一个采样时刻重复上述过程。

控制延迟补偿

在实际应用中,由于传感器测量、计算和执行器响应等环节的存在,控制信号不可避免地存在延迟。为了补偿这种延迟,可以在预测模型中加入延迟环节,或者在优化过程中考虑延迟的影响。

永磁同步电机模型预测控制仿真

为了验证模型预测控制的效果,可以使用仿真软件进行仿真测试。以下是一个永磁同步电机模型预测控制的Simulink仿真模型示例:

电机参数:

Vdc = 24;
Rs = 0.6;
Ld = 1.4e-3;
Lq = 1.4e-3;
flux = 0.034182;
J = 1.1e-5;
B = 1e-3;
pole = 1;
fx = 0.02;

其中MPC模块如下:

function [sa, sb, sc] = fcn(id_ref, iq_ref, id, iq, theta, we, Vdc, R, Ld, Lq, phif, Ts)
    % 开始定义常数
    U1 = Vdc / 3;
    U2 = -Vdc / 3;
    U3 = 2 * Vdc / 3;
    U4 = -2 * Vdc / 3;
    % 定义换相矩阵sw,表示8个可能的状态
    sw = [
        0, 0, 0;
        1, 0, 0;
        1, 1, 0;
        0, 1, 0;
        0, 1, 1;
        0, 0, 1;
        1, 0, 1;
        1, 1, 1
    ];
    % 定义电压矩阵Uw
    Uw = [
        0, 0, 0;
        U3, U2, U2;
        U1, U1, U4;
        U2, U3, U2;
        U4, U1, U1;
        U2, U2, U3;
        U1, U4, U1;
        0, 0, 0
    ];
    % 初始化误差数组
    err = zeros(8, 1);
    % 循环遍历每个状态,计算误差
    for i = 1:size(Uw, 1)
        % 提取当前状态的电压值
        Va = Uw(i, 1); % a相电压
        Vb = Uw(i, 2); % b相电压
        
        % Clark 变换(转换到αβ坐标系)
        alpha = Va;
        beta = (1/sqrt(3)) * (Va + 2 * Vb);
        % Park 变换(转换到dq坐标系)
        Vd = alpha * cos(theta) + beta * sin(theta);  % d轴电压
        Vq = -alpha * sin(theta) + beta * cos(theta); % q轴电压
        % 电流动态方程
        did = Ts / Ld * (-R * id + Lq * we * iq + Vd); 
        diq = Ts / Lq * (-R * iq - Ld * we * id + Vq - phif * we); 
        % 计算下一个时刻的电流
        id_next = did + id;
        iq_next = diq + iq;
        % 计算当前状态的误差(与参考值的距离平方)
        err(i) = (id_next - id_ref)^2 + (iq_next - iq_ref)^2;
    end
    % 找到误差最小的状态索引
    [~, I] = min(err);  % 找到最小误差的索引
    % 返回对应的开关状态
    sa = sw(I, 1);
    sb = sw(I, 2);
    sc = sw(I, 3);
end

仿真结果如下:

速度波形:

相电流波形:

角度波形:

力矩波形:

参考文献

  1. 高丽媛. 永磁同步电机的模型预测控制研究[D].浙江大学,2013.
  2. B站 DR_CAN对MPC通俗简练的系列讲解:https://www.bilibili.com/video/BV1cL411n7KV/?spm_id_from=333.999.0.0&vd_source=5f570a9f261c43941608688d2d31a4c5
  3. 江朝东.永磁同步电机伺服系统的模型预测控制方法研究[D].东南大学,2019.DOI:10.27014/d.cnki.gdnau.2019.002054.
  4. 杨佳雨.永磁同步电机的模型预测控制研究[D].华北电力大学,2014.
  5. 徐晓明.永磁同步电机电流预测控制策略研究[D].中国矿业大学,2023.DOI:10.27623/d.cnki.gzkyu.2023.002557.
  6. 李键.永磁同步电机模型预测电流控制的预测误差分析及抑制研究[D].浙江大学,2019.DOI:10.27461/d.cnki.gzjdx.2019.002146.
  7. 刘莹.永磁同步电机模型预测控制策略研究[D].华中科技大学,2018.
  8. 周湛清.永磁同步电机系统模型预测控制[D].天津大学,2017.
  9. 永磁同步电机模型预测控制(PMSM-MPC)Simulink仿真教程:https://zhuanlan.zhihu.com/p/375286229

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号