首页 > 编程语言 >m基于MPC模型预测控制算法的永磁直线同步电机控制系统simulink仿真,MPC分别使用工具箱和S函数进行设计

m基于MPC模型预测控制算法的永磁直线同步电机控制系统simulink仿真,MPC分别使用工具箱和S函数进行设计

时间:2023-06-14 23:23:08浏览次数:42  
标签:simulink end 预测 模型 控制算法 优化 MPC

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

2.算法涉及理论知识概要

      MPC(Model Predictive Control)模型预测控制算法是一种先进的控制算法,能够有效地解决非线性、多变量、约束条件等复杂系统的控制问题。永磁直线同步电机是一种高性能、高效率的电机,广泛应用于机器人、医疗设备、工业自动化等领域。MPC(Model Predictive Control)模型预测控制算法是一种先进的控制算法,能够有效地解决非线性、多变量、约束条件等复杂系统的控制问题。永磁直线同步电机是一种高性能、高效率的电机,广泛应用于机器人、医疗设备、工业自动化等领域。本文将介绍基于MPC模型预测控制算法的永磁直线同步电机控制系统的Simulink仿真,包括系统建模、控制器设计、仿真实验等内容。

 

       直线电机三相绕组通入三相对称的正弦电流,会产生沿展开的直线方向呈正弦形分布的气隙磁场。因为三相正弦电流均为时间的函数,则产生的气隙磁场将按A、B、C相序沿直线移动,该磁场称为行波磁场。

      在MPC控制器中,需要确定系统的状态量、控制量、约束条件和优化目标等参数。本文中,系统的状态量包括电机的位置、速度和电流,控制量为电机的电压指令,约束条件包括电机电压的最大值和最小值,电流的最大值和最小值,优化目标为使电机转动到指定位置和速度。

 

MPC是一种多变量控制策略,其中涉及了:

      过程内环动态模型;控制量的历史数值;在预测区间上的一个最优值方程J。最优控制量可由以上各量求出。

      MPC最大的特点在于,相对于LQR控制而言,MPC可以考虑空间状态变量的各种约束,而LQR,PID等控制只能够考虑输入输出变量的各种约束。MPC可应用于线性和非线性系统。

 

       模型预测算法是在欧美等国家兴起的应用于工业领域的一种优化控制算法。目前经过多年的发展,在工业领域、智能控制领域等都有应用。随着算法的理论的完善,其已经成为工业领域内经常使用的一种经典算法。虽然在各个领域算法的应用存在差异。

 

       但他们都遵循预测模型、滚动优化、和反馈校正的基本原理。并且,近年来在汽车工业尤其是在车辆智驾驶技术上,模型预测算法的应用越来越受欢迎。很多科研机构利用了模型预测的原理进行了智能车辆的轨迹跟踪控制研究,下面将详细阐述模型预测算法的原理。

 

(1)预测模型

      预测模型是模型预测控制的基础,它能够通过控制系统中被控平台提供的当前系统状态信息,再加上未来的控制输入变量,预测到未来的被控平台的状态。

 

      预测模型的形式没有确定的形式要求,可以是状态空间方程、传递函数也可以是阶跃响应模型、脉冲响应模型模糊模型等。根据被控对象和需要预测的状态选择合适的预测模型。

 

对于车辆方向而言,模型预测控制选择状态空间模型比较合适。

 

(2)滚动优化

      预测控制中的优化与通常的离散最优控制算法不同,不是采用一个不变的全局最优目标,而是采用滚动式的有限时域优化策略。

 

       在每一采样时刻,根据该时刻的优化性能指标,求解该时刻起有限时段的最优控制率。计算得到的控制作用序列也只有当前值是实际执行的,在下一个采样时刻又重新求取最优控制率。

 

       也就是说,优化过程不是一次离线完成的,而是反复在线进行(即在每一采样时刻,优化性能指标只涉及从该时刻起到未来有限的时间,而到下一个采样时刻,这一优化时段会同时向前推移)。

 

       通过滚动优化策略,始终在实际的基础上建立新的优化目标,兼顾了对未来有限时域内的理想优化和实际不确定性的影响。这要比建立在理想条件下的传统最优控制更加实际和有效。

 

(3) 反馈校正

      预测控制求解的是一个开环优化问题。在预测控制中,采用预测模型进行过程输出值的预估只是一种理想的方式,对于实际过程,由于存在非线性、时变、模型失配和干扰等不确定因素,使基于模型的预测不可能准确地与实际相符。

 

      因此,在预测控制中,通过输出的测量值与模型的预估值进行比较,得出模型的预测误差,再利用模型预测误差来校正模型的预测值,从而得到更为准确的将来输出的预测值。正是这种由模型加反馈校正的过程,使预测控制具有很强的抗干扰和克服系统不确定的能力。不断根据系统的实际输出对预测输出做出修正,使滚动优化不但基于模型,而且利用反馈信息,构闭环优化控制。

 

其内部结构框图如下所示:

 

3.MATLAB核心程序

 

 

function u = MPC_set(M_Ref,ref)
    %更新
    x0      = A*x0 + B*u0;%no noise
    y       = C*x0;
    %加入约束%速度约束
    for ii = 1:Ra
        if x0(ii) >=0.5;
           x0(ii) = 0.5;
        end
    end
    %差值
    Error = (M_Ref(:) - y);
 
    u     = 15*(Pmpc*reshape(ref - Error(:,ones(P,1)),[],1) - Kmpc*x0);
    %sat范围限制
    if u > 250
       u = 250;
    end
    if u < -250
       u = -250;
    end  
end
 
end
 
...............................................................................
 
P = Pmatrix1;
M = zeros(Cb,Rc);
 
for i=1
    Row2         =(i-1)*Cb+1:i*Cb;
    Cow2         =(i-1)*Rc+1:i*Rc;
    M(Row2,Cow2) = Gm1;
end
 
H_matrix = zeros(Rc,Cb);
for k=1:Cb;
    H_matrix(:,k) = sum(Pmatrix2(:,k:Cb:end),2);
end
 
%J = min Y'QY + U'RU
H  = H_matrix;
Hs = H'*Qmatrix*H+Rmatrix;
Hs =(Hs+Hs')/2;
 
K0 = inv(Hs)*( H'*Qmatrix*P);
P0 =-inv(Hs)*(-H'*Qmatrix*L-Rmatrix*M);
 
Kmpc = K0(1:Cd,:);
Pmpc = P0(1:Cd,:);
end

  

标签:simulink,end,预测,模型,控制算法,优化,MPC
From: https://www.cnblogs.com/51matlab/p/17481604.html

相关文章

  • PID控制算法:位置式PID & 增量式PID
    前面的文章已经介绍过什么是pid了,现在再回顾一下:PID:是过程控制中常用的一种针对某个对象或者参数进行自动控制的一种算法。这一篇分享不打算再深究pid的理论知识,如果有不懂或者对pid感兴趣的朋友,可以自行查阅资料,或者看我前面的文章。这次分享一下pid算法的常见实现和流程。主要简......
  • simulink之S函数--实践
    若系统G(s)=1/(3s+2),乳选取状态变量x=y,则其状态空间方程可表示为dx=(-2x+u)/3且y=x,对系统建立S-函数,绘制该控制系统的阶跃响应曲线。零、分析,其实该题若不是要求建立S-函数,绘制系统的阶跃响应曲线,完全可以直接用系统的传递函数,采用如下方式,直接完成的。一、传递函数......
  • simulink之S函数
    simulink中用户可以使用已有的模块构建系统模型,如果遇到无法由内建模块构成的模型时,编写S-函数也能完成仿真,不但灵活,而且可以采用C,C++,Fortran或Ada云烟,只要生成dll文件,就可以在simulink中直接调用。S-函数允许用户向模型中添加自己编写的模块,按照简单规则,在S-函数添加算法。将......
  • m基于SVPWM控制器的三轴直交机械臂轨迹控制simulink仿真
    1.算法仿真效果matlab2022a仿真结果如下:      2.算法涉及理论知识概要      对于PMSM,使用MATLAB内部自带的模型进行建模,在simulink中选择PermanentMagnetSynchronousMachine,如图3.1所示。           永磁同步电机模型PMSM如图1所......
  • simulink求微分方程dx =-5x + u
    一、分析题目,对dx积分才能求出x,可以通过引入积分器,其中积分器的输入是dx,输出就是x二、确定需要的模块,存在-5x,需要一个gain模块,有-5x+u需要一个sum模块,加上一步需要的积分器,此处这里的u用正弦信号,需要一个sinewave,查看信号情况,需要一个scope模块,需要观察两信号的叠加输出,输出一个......
  • 【论文】基于DMPC的路径规划
    DMPC论文:《TrajectoryGenerationforMultiagentPoint-To-PointTransitionsviaDistributedModelPredictiveControl》摘要介绍了一种基于分布式模型预测控制(DMPC)的多智能体offline轨迹生成算法。通过预测未来状态并与附近的agents共享此消息,agent能够在朝着目标前......
  • 【论文】基于MPC的路径跟踪
    mpc论文归纳《LinearvsNonlinearMPCforTrajectoryTrackingAppliedtoRptaryWingMicroAerialVehicles》AbstractthispaperdiscussesabouttheapplicationsofprecisetrajectorytrackinginclutteredenvironmentorunderdisturbanceswhenMAVswork.So......
  • 基于arx模型的MPC预测控制器simulink仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要        arx模型是一种重要的时间序列分析模型,能够用来描述实际应用中的许多问题,在经济、电力系统、车辆驾驶、医疗、信号处理等领域都有着广泛的应用。因此,基于arx模型的相关理论和方法受到了大量关......
  • m基于MPC模型预测的网络控制系统simulink仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要       随着通信网络和信息理论的迅速发展,网络控制系统引起了研究人员和工程师的兴趣。众所周知,网络控制系统是一个非常具有挑战性和前景的研究领域。因此,网络控制系统(NCS)实现了传感器,控制器和执行器......
  • m基于simulink的SPWM控制器性能仿真,并分析其谐波,包括park模块和Clark模块
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       SHEPWM是特定谐波消除脉宽调制,即通过开关时刻的优化选择,产生PWM来消除选定的低次谐波。         MATLAB仿真中的SHEPWM的发波采用S函数编写,S函数是一种用于描述Simulink仿真模块......