资源简介
模型预测控制(MPC)的simulink实现。。。。。。。。。。。。。。。。。
代码片段和文件信息
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建模
相关资源
-
基于Matlab-Simuli
nk的遥感图像处理 - mpc MATLAB 代码
-
旋变解码的simuli
nk模型 - 基于变速模糊-PI混合控制的直流电机
-
simuli
nk搭建的转速电流双闭环直流调 -
APF SIMUli
nk仿真模型 -
基于MATLAB_SIMUli
nk的交流电机调速系 - 风电仿真模型
-
MATLAB SIMUli
nk 的仿真算法 - sigma-delta ADC 2阶调制器的Sigma-Delta模型
-
ofdm的simuli
nk,matlab仿真 -
电池BMS管理系统simuli
nk模型 -
SIMUli
nk搭建的异步电动机矢量控制模 -
串联谐振电路simuli
nk模型 -
用simuli
nk中的SimMechanics模块搭建两关 -
OFDM_16QAM_simuli
nk -
Simuli
nk EKF vehicle model -
simuli
nk的模型图 -
时滞Lorenz系统基于simuli
nk的仿真模型 -
基于simuli
nk的MSK声波通信系统 - 感应电机模型
-
simuli
nk 使用mpc来控制 -
FDMA matlab simuli
nk -
正弦永磁同步电机调速系统simuli
n - 模型预测控制MPC程序代码
-
simuli
nk 整车控制模型 -
simuli
nk ip-iq谐波检测模型 -
LTE物理层simuli
nk仿真 -
simuli
nk中lm自适应滤波器搭建 -
m语言调用 simuli
nk的方法和修改参数
评论
共有 条评论