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

📄 blksdp1.m

📁 国外专家做的求解LMI鲁棒控制的工具箱,可以相对高效的解决LMI问题
💻 M
字号:
function varargout = blockit(F);

if isa(F,'lmi')
    W = set([]);
    for i = 1:length(F);
        [W1,W2,S] = blksdp1(sdpvar(F(i)));
        W = W + set(W1) + set(W2);
    end
    varargout{1} = W;
    varargout{2} = S;
else
    Z = spy(F);
    n = size(Z,1);
    waist = getwaist(Z);
    
    r = n-2*waist;
    
    A = F(1:waist,1:waist);
    B = F(1:waist,waist+1:waist+r);
    C = F(waist+1:waist+r,waist+1:waist+r);
    D = F(waist+1:waist+r,waist+r+1:n);
    E = F(waist+r+1:n,waist+r+1:n);
    S = sdpvar(r,r);
    varargout{1} = [A B;B' S];
    varargout{2} = [C-S D;D' E];
    varargout{3} = S;
end


function waist = getwaist(X)

k=1;
while nnz(X(1:k,end-k+1:end))==0
    k=k+1;
end
waist = k-1;

⌨️ 快捷键说明

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