资源简介
模型预测控制(MPC)的simulink实现。。。。。。。。。。。。。。。。。
![](http://www.nz998.com/pic/51141.jpg)
代码片段和文件信息
function [sysx0strts] = mpcsfunc(tzyflagABCDPMQRTs)
%sfunction for mpc.
%
%By Yi Cao Cranfield University UK (c) 27 January 2009
%
persistent ssmpc ny
switch flag
%%%%%%%%%%%%%%%%%%
% Initialization %
%%%%%%%%%%%%%%%%%%
case 0
error(nargchk(1313nargin));
[nxnu]=size(B);
ny=size(C1);
if ~isequal(size(A) [nx nx]) || ~isequal(size(D)[ny nu])
error(‘Model matrix dimension does not match.‘);
end
if ~isscalar(P) || ~isscalar(M) || P<=0 || M <= 0 || M>P
error(‘P and M must be positive scalars and P>=M.‘)
end
if ~isequal(size(Q) [ny*P ny*P]) || ~isequal(size(R) [nu*M nu*M])
error(‘Weight matrix dimension does not match.‘)
end
if ~isscalar(Ts) || Ts<=0
error(‘dt must be a positive scalar.‘);
end
% MPC set-up
ssmpc=mpcsetup(ABCDPMQR);
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
% sizes.NumDiscStates = nx+ny;
sizes.NumOutputs = nu;
sizes.NumInputs = 2*ny; % output + setpoint
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
str = [];
x0 = [];
% offset=zeros(ny1);
% x0 = zeros(nx+ny1);
% du = zeros(nu1);
ts = [Ts 0];
%%%%%%%%%%
% Update %
%%%%%%%%%%
case 2
sys = [];
%%%%%%%%%%
% Output %
%%%%%%%%%%
case 3
sys = ssmpc(y(1:ny)‘y(ny+1:2*ny)‘);
%%%%%%%%%%%%%
% Terminate %
%%%%%%%%%%%%%
case 9
sys = []; % do nothing
%%%%%%%%%%%%%%%%%%%%
% Unexpected flags %
%%%%%%%%%%%%%%%%%%%%
otherwise
error([‘unhandled flag = ‘num2str(flag)]);
end
end
function f=mpcsetup(ABCDpmQRx0u0)
% Input and output check
error(nargchk(810nargin));
error(nargoutchk(11nargout));
% dimension of the system
nx=size(A1);
[nynu]=size(D);
% precalculate the gain matrices of the online controller
[KPr] = predmat(ABCDpmQR);
% only the first instance is required
K1 = K(1:nu:);
Pr = Pr(1:nu:);
% default initial conditions
if nargin<9
x0=zeros(nx1);
end
if nargin<10
u0=zeros(nu1);
end
% the online controller
f = @ssmpc;
function u=ssmpc(yr)
% update state
x0 = A*x0 + B*u0;
% get the reference
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9353 2009-01-27 11:38 82493621mpCsimuli
文件 11531 2009-01-27 11:59 82493621mpCsimuli
文件 6536 2009-01-27 11:59 82493621mpCsimuli
文件 9080 2009-01-27 11:59 82493621mpCsimuli
文件 8823 2009-01-27 11:40 82493621mpCsimuli
文件 1327 2009-05-20 04:16 82493621mpCsimuli
文件 39285 2017-07-18 09:48 82493621mpCsimuli
文件 32203 2009-01-27 11:05 82493621mpCsimuli
文件 4339 2009-01-27 11:02 82493621mpCsimuli
文件 3985 2017-07-20 10:01 82493621mpCsimuli
文件 30915 2009-01-27 11:20 82493621mpCsimuli
文件 29327 2008-04-21 11:32 82493621mpCsimuli
文件 11147 2008-04-21 12:11 82493621mpCsimuli
文件 7084 2008-04-21 12:11 82493621mpCsimuli
文件 1327 2009-05-20 04:16 82493621mpCsimuli
文件 4696 2008-04-21 12:12 82493621mpCsimuli
文件 3819 2008-04-21 12:11 82493621mpCsimuli
目录 0 2017-07-03 16:26 82493621mpCsimuli
目录 0 2017-07-03 16:26 82493621mpCsimuli
目录 0 2017-07-03 16:26 82493621mpCsimuli
目录 0 2017-07-21 15:56 82493621mpCsimuli
目录 0 2017-07-03 16:26 82493621mpCsimuli
----------- --------- ---------- ----- ----
214777 22
- 上一篇:维纳滤波图像去噪
- 下一篇:永磁直驱风力发电系统的MATLAB建模
相关资源
- MPC路径跟踪
-
Matlab+Simuli
nk-cmi、miller、双相码 -
MATLAB/simuli
nk短路电流仿真 -
PLLsimuli
nk仿真模型 - 基于模型预测控制的车辆轨迹跟踪问
- 高压直流输电系统的滤波器设计及仿
- 分布式预测控制程序
- 24脉波整流仿真
-
simuli
nk的使用手册全 -
Simuli
nk快速入门教程 - Model Predictive Control System Design using M
-
《Matlab Simuli
nk与控制系统仿真》. -
混合动力simuli
nk模型 -
基于simuli
nk的带有MPPT功的光伏电池 -
基于Simuli
nk的DSB调制解调系统仿真 -
基于Simuli
nk的MFSK系统的仿真 -
基于Simuli
nk的模拟通信仿真 -
基于Simuli
nk的匹配滤波器设计 -
APF资料-APF、SVG simuli
nk源程使用说明 -
simuli
nk之基于模型开发的嵌入式设计 - Model Predictive Control System Design and Imp
-
Matlab分享系列 - 3 - Matlab_Simuli
nk代码 - matlab预测控制工具箱使用手册
-
matlab simuli
nk simevent 建模入门 -
用MATLAB-Simuli
nk做锂电池建模 .pdf -
matlab/simuli
nk mu 分析与综合工具箱使 -
基于simuli
nk的组合导航的仿真 -
基于Simuli
nk模型的嵌入式代码生成 - 基于systolic的上三角矩阵求逆电路的实
-
倒立摆的模糊控制基于simuli
nk仿真,
评论
共有 条评论