?? mpc_constraints.m
字號:
%%%%%% Define constraint matrices for GPC (no output constraints)%%%%%% CC*Du(future) - dd - dd1*u(k) <= 0%%%%%% %%%%%% Dumax is limits on input increments (symetrical)%%%%%% umax and umin are limits on the inputs%%%%%% nu is the control horizon%%%%%% sizeu is the number of inputs%%%%%%%%%%%% [CC,dd,dd1] = mpc_constraints(Dumax,umax,umin,sizeu,nu);%% %% Author: J.A. Rossiter (email: J.A.Rossiter@shef.ac.uk)function [CC,dd,dd1] = mpc_constraints(Dumax,umax,umin,sizeu,nu);%%%% Set up constraints for each loop in turnfor j=1:sizeu; d(1:2*nu,j) = ones(2*nu,1)*Dumax(j); C(1:nu,1:nu,j) = eye(nu); C(nu+1:2*nu,1:nu,j) = -eye(nu); d(2*nu+1:4*nu,j) = [ones(nu,1)*umax(j);-ones(nu,1)*umin(j)]; C(2*nu+1:3*nu,1:nu,j) = tril(ones(nu,nu)); C(3*nu+1:4*nu,1:nu,j) = -tril(ones(nu,nu)); d1(2*nu+1:4*nu,j) = [-ones(nu,1);ones(nu,1)]; end%%%% Combine loop constraints into single inequality conditionfor i=1:sizeu; CC(i:sizeu:4*sizeu*nu,i:sizeu:nu*sizeu) = C(:,:,i); dd(i:sizeu:4*sizeu*nu,1) = d(1:4*nu,i); dd1(i:sizeu:4*sizeu*nu,i) = d1(1:4*nu,i); end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -