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

目录

1.算法仿真效果

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

3.MATLAB核心程序

4.完整算法代码文件


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
08_046_m

4.完整算法代码文件

V

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: ARX(Autoregressive Exogenous)模型是一种时间序列分析方法,用于建立基于过去的观测结果和外部因素的数学模型ARX模型预测、系统辨识和控制等领域常被应用。 ARX模型中的“AR”表示自回归(Autoregression),意味着当前观测值与前几个观测值之间存在明显的关联关系。而“X”表示外部因素(Exogenous),指的是模型中考虑的其他影响因素。 ARX模型的建立包括两个主要步骤:模型的阶数选择和参数估计。阶数选择可以通过对观测数据进行自相关性和偏相关性分析来确定。参数估计则通过最小二乘法或极大似然法来获得模型的参数。 ARX模型还可以与其他模型结合使用,如ARMA(自回归移动平均)模型和ARIMA(自回归积分滑动平均)模型ARX模型的应用领域广泛,包括经济预测、股票市场分析、销售预测等。 CSDN(China Software Development Network)是中国最大的IT技术社区和专业的开发者平台。在CSDN上,开发者可以分享技术经验、获取知识、参与讨论,还可以从海量的技术文章、教程和资源中获得帮助和指导。 在CSDN上,关于ARX模型的相关文章和技术讨论非常丰富。开发者可以从这些资源中学习和了解ARX模型的原理、应用和实践,提升自己的数据分析和预测能力。同时,开发者也可以通过与其他开发者的交流和互动,进一步深入探讨ARX模型的应用和改进方法。 总之,ARX模型是一种常用的时间序列分析方法,而CSDN是一个优秀的IT技术社区和开发者平台,通过CSDN上的资源和讨论,可以获得关于ARX模型的丰富知识和技术支持。 ### 回答2: ARX模型是一种常用的时间序列分析方法,用于建立自回归(AR)和外生变量(X)以预测时序数据(csdn)的模型ARX模型基于自回归过程,即当前时刻的取值与前几个时刻的取值有关。ARX模型的一般形式可以表示为: Y(t) = β0 + β1 * Y(t-1) + β2 * Y(t-2) + ... + βp * Y(t-p) + X(t) + ε(t) 其中,Y(t)表示当前时刻的时间序列数据(如csdn),X(t)表示外生变量,β0、β1、β2等是模型的参数,ε(t)表示误差项。 建立ARX模型的过程通常包括模型阶数的确定、参数估计和模型检验等步骤。在模型阶数选择上,可以通过观察自相关图和偏自相关图等来确定合适的阶数。参数估计可以采用最小二乘法或极大似然估计等方法。模型检验常常使用残差的自相关图和Ljung-Box检验等来评估模型的拟合效果和残差的白噪声性质。 ARX模型可以用于预测时间序列数据中的未来取值,进而指导决策和规划。在csdn中应用ARX模型可以对访问量、用户行为等进行预测和分析,从而优化网站运营策略和资源分配。 需要注意的是,ARX模型对于外生变量的选取和模型的参数估计都有一定的要求和限制,需要根据具体情况进行调整和应用。此外,ARX模型只能用于描述线性关系,若数据具有非线性关系,可能需要采用其他模型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱C编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值