⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 solveequalities.m

📁 国外专家做的求解LMI鲁棒控制的工具箱,可以相对高效的解决LMI问题
💻 M
字号:
function [x_equ,H,A_equ,b_equ] = solveequalities(F_struc,K,unitary)
%SOLVEEQUALITIES Internal function remove equality constraints

% Author Johan L鰂berg
% $Id: solveequalities.m,v 1.4 2005/07/20 08:31:20 joloef Exp $

% Extract the inequalities
A_equ = F_struc(1:K.f,2:end);
b_equ = -F_struc(1:K.f,1);

if nargin<3
    unitary = 1;
end

if ~unitary
    % Just use a crappy basis derived from A
    [L,U,P] = lu(A_equ');
    n = max(find(diag(U)));    
    [i,j] = find(P');
    H1 = A_equ(:,i(1:n));
    H2 = A_equ(:,i(n+1:end));
    x_equ = P'*(L'\(U'\b_equ));
    % FIX : use L and U stupid!
    H = P'*[-H1\H2;eye(size(H2,2))];
else
    % Use unitary basis
    try
        [Q,R] = qr(full(A_equ)');
    catch
        [Q,R] = qr(A_equ'); % Ouch, that big!
    end
    n = max(find(sum(abs(R),2)));
    Q1 = Q(:,1:n);
    R = R(1:n,:);
    x_equ = Q1*(R'\b_equ);
    H = Q(:,n+1:end); % New basis
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -