1 Star 4 Fork 0

JeffreyChan / ACC_Vehicle_MPC

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
genConstraints.m 1.39 KB
一键复制 编辑 原始数据 按行查看 历史
Ajinkya Khade 提交于 2016-02-21 17:26 . Added files via upload
%genConstraints
% This script generates all equality and inequality constrints for QP.
%
% Author : Ajinkya Khade, askhade@ncsu.edu
% Initializing matrices to store input constraints
Umaxbar = kron(ones(Nc*nu,1),umax);
Uminbar = kron(ones(Nc*nu,1),umin);
% Anonymous function to calculate state and constraints
Scbar = @(sivd, v0) kron(ones(Np,1),[sivd;v0]);
% Initialize equality and inequlity contraint matrices
[Lineq, Mineq, Leq, Meq] = deal(cell(2,1));
%% Inequality Constraints
if ineqMode == 0
% No Constraints
Lineq = [];
Mineq = @(e,sivd,v0) []; % when inequality constraints have to be removed
elseif ineqMode == 1
% All Constraints
Lineq = [Cbar*Bbar; ...
eye(Nc*nu); ...
-eye(Nc*nu)];
Mineq = @(e,sivd,v0) [Scbar(sivd,v0) - Cbar*Abar*e; ...
Umaxbar; ...
-Uminbar];
elseif ineqMode == 2
% Only Control Constraints
Lineq = [eye(Nc*nu); ...
-eye(Nc*nu)];
Mineq = @(e,sivd,v0) [Umaxbar; ...
-Uminbar];
end
%% Equality Constraints
psi = zeros(nx,1); % terminal state constraint
if eqMode == 0
Leq = [];
Meq = @(e) []; % when equality constraints have to be removed
elseif eqMode == 1
Leq = Bbar(end-nx+1:end,:);
Meq = @(e) (psi - Abar(end-nx+1:end,:)*e);
end
Matlab
1
https://gitee.com/jeffreychan/ACC_Vehicle_MPC.git
git@gitee.com:jeffreychan/ACC_Vehicle_MPC.git
jeffreychan
ACC_Vehicle_MPC
ACC_Vehicle_MPC
master

搜索帮助