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

📄 fm_mintree.m

📁 这是一个很适合研究和学习用的电力系统仿真软件
💻 M
字号:
function [pmuloc, pmunum] = fm_mintree(zeroinj, hdl_pmu,hdl_nob)
% FM_MINTREE compute minimum spanning tree of the current network
%            (for PMU placement routines)
%
% (...) = FM_MINTREE(...)
%
% This function is generally called by FM_PMULOC
%
%Author:    Federico Milano
%Date:      11-Nov-2002
%Version:   1.0.0
%
%E-mail:    fmilano@thunderbox.uwaterloo.ca
%Web-site:  http://thunderbox.uwaterloo.ca/~fmilano
%
% Copyright (C) 2002-2006 Federico Milano

global Bus Line Fig Settings

A = sparse(Bus.n,Bus.n);
pmuloc = sparse(Bus.n,Bus.n);

for i = 1:Bus.n
  nonzero = find(Line.Y(i,:));
  A(i,nonzero) = ones(1,length(nonzero));
end

p = symrcm(A);
r(p) = 1:Bus.n;
A = A(p,p);

spanning = zeros(Bus.n,1);
pmunum = zeros(Bus.n,1);

for i = 1:Bus.n
  spanning = A(i,:);
  pmuloc(i,i) = 1;
  pmunum(i) = 1;
  sumspan = sum(spanning);
  while sumspan < Bus.n
    for j = 1:Bus.n
      B(j) = sum(full(spanning | A(j,:)));
    end
    [value, indice] = max(B);
    spanning = spanning | A(indice,:);
    pmunum(i) = pmunum(i) + 1;
    pmuloc(i,indice) = 1;
    sumspan = sum(spanning);
    if Fig.pmu
      set(hdl_pmu,'String',int2str(pmunum(i)));
      set(hdl_nob,'String',int2str(Bus.n-sumspan));
      drawnow
    end
  end
end

pmuloc = pmuloc(r,r);
pmunum = pmunum(r);




⌨️ 快捷键说明

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