首页 > 其他分享 >基于arx模型的MPC预测控制器simulink仿真

基于arx模型的MPC预测控制器simulink仿真

时间:2023-06-01 23:44:10浏览次数:63  
标签:... simulink 预测 arx 模型 state 优化 MPC

1.算法仿真效果

matlab2022a仿真结果如下:

 

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

        arx模型是一种重要的时间序列分析模型,能够用来描述实际应用中的许多问题,在经济、电力系统、车辆驾驶、医疗、信号处理等领域都有着广泛的应用。因此,基于arx模型的相关理论和方法受到了大量关注,这些方法的基本思路常常被归结为:把arx模型看作一个线性回归模型,并利用获得的观测数据实现对该模型参数的准确估计,从而建立准确的arx模型,用来拟合实际的系统。值得注意的是,实际应用中,环境干扰或观测条件等因素可能会导致 arx模型的部分输出观测数据丢失或者观测数据明显异常的情况(以下将这些丢失的输出数据和异常数据统称为丢失数据)。由于arx模型可以等价为一个线性回归模型,因此arx模型部分观测数据的丢失等价于线性回归模型输入矢量信号的丢失,从而导致无法有效实现模型参数的估计。

 

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

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

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

 

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

 

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

 

(1)预测模型

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

 

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

 

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

 

(2)滚动优化

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

 

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

 

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

 

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

 

(3) 反馈校正

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

 

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

 

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

 

 

 

3.MATLAB核心程序

 

 

function [sys,x0,str,ts] = mpc_prediction_controller(t,...
                                                     z,...
                                                     y,...
                                                     flag,...
                                                     A_state,...
                                                     B_state,...
                                                     C_state,...
                                                     D_state,...
                                                     P,...
                                                     M,...
                                                     Q,...
                                                     R)
 
 
%以下是S函数标志流程和格式
persistent MPC_pred Lens
 
switch flag 
 
    case 0
         %mpc预测控制器初始化设置
         [Rb,Rc]              = size(B_state);
         Lens                 = size(C_state,1);
 
         %MPC优化控制器主函数
         MPC_pred             = mpc_pcontroller(A_state,...
                                                B_state,...
                                                C_state,...
                                                D_state,...
                                                P,...
                                                M,...
                                                Q,...
                                                R);
 
         sizes                = simsizes;
         sizes.NumContStates  = 0;
         sizes.NumDiscStates  = 0;
         sizes.NumOutputs     = Rc;
         sizes.NumInputs      = 2*Lens;
         sizes.DirFeedthrough = 1;
         sizes.NumSampleTimes = 1;
         sys                  = simsizes(sizes);
         str                  = [];
         x0                   = [];
         ts                   = [1 0];
 
    case 2
         sys = [];
 
    case 3 
         din = y(1:Lens);
         Ref = y(Lens+1:2*Lens);
         sys = MPC_pred(din,Ref);
 
    case 9
         sys = []; 
    otherwise
 
    end
end

 

  

 

标签:...,simulink,预测,arx,模型,state,优化,MPC
From: https://www.cnblogs.com/51matlab/p/17450555.html

相关文章

  • m基于MPC模型预测的网络控制系统simulink仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要       随着通信网络和信息理论的迅速发展,网络控制系统引起了研究人员和工程师的兴趣。众所周知,网络控制系统是一个非常具有挑战性和前景的研究领域。因此,网络控制系统(NCS)实现了传感器,控制器和执行器......
  • m基于simulink的SPWM控制器性能仿真,并分析其谐波,包括park模块和Clark模块
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       SHEPWM是特定谐波消除脉宽调制,即通过开关时刻的优化选择,产生PWM来消除选定的低次谐波。         MATLAB仿真中的SHEPWM的发波采用S函数编写,S函数是一种用于描述Simulink仿真模块......
  • Matlab中用m代码来控制运行Simulink仿真过程
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 多方安全计算Secure Multi-Party Computation(SMPC)学习笔记
    引言随着数字化时代的到来,数据的价值变得前所未有的重要。然而,随之而来的是对数据隐私和安全的日益关注。个人和组织都希望能够利用敏感数据进行有益的分析和合作,但又不希望将这些数据暴露给其他人。在这种情况下,安全多方计算(SMPC)崭露头角。SMPC是一种创新的加密技术,它允许多个参与......
  • ★教程3:Simulink学习教程入门50例目录2.MATLAB/Simulink安装
    1.订阅本教程用户可以免费获得本博任意1个(包括所有免费专栏和付费专栏)博文对应代码;2.本Simulink课程的所有案例(部分理论知识点除外)均由博主编写而成,供有兴趣的朋友们自己订阅学习使用。未经本人允许,禁止任何形式的商业用途;3.本课程除了介绍常见的Simulink模块介绍之外,我们更侧......
  • m基于矩阵式变换器的PMSM直接转矩控制simulink仿真
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要        传统的交-直-交变换器由于存在中间储能环节,因而动态响应较慢,输入电流中含有大量的谐波,容易造成对电网的污染,同时也难以实现能量的双向流动等缺点。交-交矩阵式变换器(MatrixConve......
  • m基于矩阵式变换器的PMSM直接转矩控制simulink仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要传统的交-直-交变换器由于存在中间储能环节,因而动态响应较慢,输入电流中含有大量的谐波,容易造成对电网的污染,同时也难以实现能量的双向流动等缺点。交-交矩阵式变换器(MatrixConverter,MC)体积小、自身结构简单,具......
  • simulink二次调频风机储能水轮机水电火电汽轮机二次调频,有随机扰动负荷,可连续波动,可对
    simulink二次调频风机储能水轮机水电火电汽轮机二次调频,有随机扰动负荷,可连续波动,可对频率分频调频,分低频,中频,高频,也可对不同死区的风储同步机进行二次调频,系统示意图和波形如图所示,新品!新品,对之前的模型进行了很多改进,包括数据优化,场景分析,风储协调和频率分段,死区分段优化等ID:84......
  • simulink 风储(电容)调频,电池储能调频,双馈风机VSG虚拟同步机虚拟惯性下垂调频,电容储
    simulink风储(电容)调频,电池储能调频,双馈风机VSG虚拟同步机虚拟惯性下垂调频,电容储能调频,三机九节点IEEE9时域模型,双馈风机DFIG调频有虚拟惯性和下垂控制,直流电容储能附加了下垂控制,频率特性好ID:783000695964908514......
  • simulink 储能二次调频,风储调频,风火水储联合二次调频,储能出力受SOC影响,跟随系统ACE变
    simulink储能二次调频,风储调频,风火水储联合二次调频,储能出力受SOC影响,跟随系统ACE变化。对比了储能是否参与,储能参与后ACE变化导致储能出力变化。ID:46320696333905613......