您现在的位置:首页 >> 智能控制 >> 内容

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

时间:2023/3/30 22:29:37 点击:

  核心提示:08_046_m,包括程序操作录像+说明文档+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJeUlpdu

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览


3.算法概述

      预测模型是模型预测控制的基础,它能够通过控制系统中被控平台提供的当前系统状态信息,再加上未来的控制输入变量,预测到未来的被控平台的状态。预测模型的形式没有确定的形式要求,可以是状态空间方程、传递函数也可以是阶跃响应模型、脉冲响应模型模糊模型等。根据被控对象和需要预测的状态选择合适的预测模型。

4.部分源码

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

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168