【MPC】使用输入增量实现状态空间 MPC研究(Matlab&Simulink实现)

 👨‍🎓个人主页:研学社的博客     

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献


💥1 概述

状态空间 MPC 设置

在线控制器必须在使用前进行设置。要设置状态空间MPC控制器,用户必须提供状态空间模型,由A,B,C和D矩阵表示(注意:它应该是离散时间),预测视界,P,移动视界,M和性能权重,Q和R。默认初始状态和输入设置为零。

SSMPC=MPCSETUP(A,B,C,D,P,M,Q,R,X0,U0);

在线控制器

从 MPC 安装程序返回的函数句柄是一个联机控制器 SSMPC。控制器通过证明两个输入来调用:电流测量、Y 和未来参考、参考。返回时,它产生最佳输入,U 表示下一步:

U = SSMPC(Y,Ref);

双 CSTR 示例

双CSTR(连续搅拌反应罐)过程如下所示。

📚2 运行结果

部分代码:

% MPC parameters
% The MPC controller is configured with following parameters.
% Prediction horizon and moving horizon
p=10;
m=3;
% Performance wights
Q=1.5*eye(2*p);
R=eye(2*m)*0.1;

%% MPC set-up
% The MPC controller is set-up by calling SSMPCSETUP:
ssmpc=mpcsetup(A,Bu,C,D,p,m,Q,R);

%% Simulation
% 150 seconds (1500 sampling intervals) simulation is conducted with
% several setpoint changes and random cooling water temperature changes
% within positive and negative 1 degree.
% Simulation length and variables for results
N=1500;
x0=zeros(6,1);
Y=zeros(N,2);
U=zeros(N,2);
% Predefined reference
T=zeros(N,2);
T(10:N,1)=1;
T(351:N,1)=3;
T(600:N,1)=5;
T(1100:N,1)=3;
T(100:N,2)=2;
T(451:N,2)=1;
T(700:N,2)=4;
T(1200:N,2)=2;
% Simulation
%%
for k=1:N
    % Process disturbances
    w=Bd*(rand(2,1)-0.5)*2;
    % Measurements noise
    v=0.01*randn(2,1);
    % actual measurement
    y=C*x0+v;
    % online controller
    u=ssmpc(y,T(k:end,:)');
    % plant update
    x0=A*x0+Bu*u+w;
    % save results
    Y(k,:)=y';
    U(k,:)=u';
end

%% Results
% The simulation results are summarized in two sub-plots.
t=(0:N-1)*0.1;
subplot(211)
plot(t,Y,t,T,'--','linewidth',2)

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]曹永、杨志杰,“多目标过程可控性分析”,计算机与化学工程,28(2004),83--90.2.

[2] Al Seyab,RK和Cao,Y,“基于差分递归神经网络的预测控制”,计算机与化学工程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

荔枝科研社

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

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

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

打赏作者

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

抵扣说明:

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

余额充值