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

📄 fm_ncomp.m

📁 这是一个很适合研究和学习用的电力系统仿真软件
💻 M
📖 第 1 页 / 共 2 页
字号:
end

if (~isempty(Fault.con))
  Fault.n = length(Fault.con(:,1));
  Fault.bus = Bus.int(round(Fault.con(:,1)));
  idx = find(Fault.con(:,5) == 0);
  if ~isempty(idx)
    Fault.con(idx,5) = 1e-6;
    Fault.con(idx,6) = Fault.con(idx,6)+1e-6;
  end
end

if (~isempty(Syn.con))
  Syn.n = length(Syn.con(:,1));
  Syn.bus = Bus.int(round(Syn.con(:,1)));
  Syn.Pg = zeros(Syn.n,1);
  Syn.Qg = zeros(Syn.n,1);
  Syn.J11 = zeros(Syn.n,1);
  Syn.J12 = zeros(Syn.n,1);
  Syn.J21 = zeros(Syn.n,1);
  Syn.J22 = zeros(Syn.n,1);
  Syn.Gp = zeros(Syn.n,8);
  Syn.Gq = zeros(Syn.n,8);
  switch length(Syn.con(1,:))
   case 19
    Syn.con = [Syn.con, zeros(Syn.n,1), ones(Syn.n,2), ...
               zeros(Syn.n,3)];
   case 20
    Syn.con = [Syn.con, zeros(Syn.n,2), ones(Syn.n,2), ...
               zeros(Syn.n,3)];
   case 21
    Syn.con = [Syn.con, ones(Syn.n,2), zeros(Syn.n,3)];
   case 22
    Syn.con = [Syn.con, ones(Syn.n,1), zeros(Syn.n,3)];
   case 23
    Syn.con = [Syn.con,zeros(Syn.n,3)];
   case 24
    Syn.con = [Syn.con,zeros(Syn.n,2)];
   case 25
    Syn.con = [Syn.con,zeros(Syn.n,1)];
  end
end

if (~isempty(Exc.con))
  Exc.n = length(Exc.con(:,1));
  Exc.syn = Exc.con(:,1);
  Exc.bus = Syn.bus(Exc.syn);
end

if (~isempty(Mass.con))
  Mass.n = length(Mass.con(:,1));
  Mass.syn = Mass.con(:,1);
end

Tg = setup(Tg);

if (~isempty(Oxl.con))
  Oxl.n = length(Oxl.con(:,1));
  Oxl.exc = Oxl.con(:,1);
  Oxl.syn = Exc.syn(Oxl.exc);
  Oxl.bus = Syn.bus(Oxl.syn);
end

if (~isempty(Pss.con))
  Pss.n = length(Pss.con(:,1));
  Pss.exc = Pss.con(:,1);
  Pss.syn = Exc.syn(Pss.exc);
  Pss.bus = Syn.bus(Pss.syn);
end

if (~isempty(SAE1.con))
  SAE1.n = length(SAE1.con(:,1));
  DAE.x = zeros(SAE1.n,1);
  fm_sae1(0);
end

if (~isempty(SAE2.con))
  SAE2.n = length(SAE2.con(:,1));
  DAE.x = zeros(SAE2.n,1);
  fm_sae2(0);
end

if (~isempty(SAE3.con))
  SAE3.n = length(SAE3.con(:,1));
  DAE.x = zeros(SAE3.n,1);
  fm_sae3(0);
end

if (~isempty(Ltc.con))
  Ltc.n = length(Ltc.con(:,1));
  Ltc.bus1 = Bus.int(round(Ltc.con(:,1)));
  Ltc.bus2 = Bus.int(round(Ltc.con(:,2)));
  DAE.x = zeros(Ltc.n,1);
  Ltc.dat = ones(Ltc.n,7);
  fm_ltc(0);
end

Svc  = setup(Svc);
Statcom = setup(Statcom);
Tcsc = setup(Tcsc);
Sssc = setup(Sssc);
Upfc = setup(Upfc);

global Hvdc
if ~isempty(Hvdc.con)
  Hvdc.n = length(Hvdc.con(:,1));
  Hvdc.bus1 = round(Bus.int(Hvdc.con(:,1)));
  Hvdc.bus2 = round(Bus.int(Hvdc.con(:,2)));
  Hvdc.dat = zeros(Hvdc.n,16);
  DAE.x = zeros(Hvdc.n,1);
  fm_hvdc(0);
end

global Lines
if ~isempty(Lines.con)
  Lines.n = length(Lines.con(:,1));
  Lines.bus1 = Bus.int(Lines.con(:,1));
  Lines.bus2 = Bus.int(Lines.con(:,2));
end

Demand = setup(Demand);
Supply = setup(Supply);

global Rsrv
if ~isempty(Rsrv.con)
  Rsrv.n = length(Rsrv.con(:,1));
  Rsrv.bus = Bus.int(round(Rsrv.con(:,1)));
end

global Rmpg
if ~isempty(Rmpg.con)
  Rmpg.n = length(Rmpg.con(:,1));
  Rmpg.sup = Rmpg.con(:,1);
  Rmpg.bus = Supply.bus(Rmpg.sup);
end

global Rmpl
if ~isempty(Rmpl.con)
  Rmpl.n = length(Rmpl.con(:,1));
  Rmpl.dem = Rmpl.con(:,1);
  Rmpl.bus = Demand.bus(Rmpl.dem);
end

global Ypdp
if ~isempty(Ypdp.con)
  lypdp = length(Ypdp.con);

  if lypdp > 206, Ypdp.con = Ypdp.con([1:206]); end

  if lypdp < 206
    fm_disp(['* * * Custom Power Demand Profile.'])
    Ypdp.d = 1;
    Ypdp.w = 1;
    Ypdp.y = 1;
    Ypdp.day = Ypdp.con';
    Ypdp.week = 100;
    Ypdp.year = 100;
    Ypdp.len = length(Ypdp.day);
  else
    fm_disp(['* * * Daily Power Demand Profile.'])
    Ypdp.day = zeros(24,6);
    Ypdp.day(:,1) = Ypdp.con([1:24]);
    Ypdp.day(:,2) = Ypdp.con([25:48]);
    Ypdp.day(:,3) = Ypdp.con([49:72]);
    Ypdp.day(:,4) = Ypdp.con([73:96]);
    Ypdp.day(:,5) = Ypdp.con([97:120]);
    Ypdp.day(:,6) = Ypdp.con([121:144]);
    Ypdp.week = Ypdp.con([145:151]);
    Ypdp.year = Ypdp.con([152:203]);
    Ypdp.d = min(6,max(1,round(Ypdp.con(204))));
    Ypdp.w = min(7,max(1,round(Ypdp.con(205))));
    Ypdp.y = min(52,max(1,round(Ypdp.con(206))));
  end

end

global Vltn
if ~isempty(Vltn.con)
  Vltn.n = length(Vltn.con(:,1));
  Vltn.bus = Bus.int(round(Vltn.con(:,1)));
end

global SSR
if (~isempty(SSR.con))
  SSR.n = length(SSR.con(:,1));
  SSR.bus = Bus.int(SSR.con(:,1));
end

global Pod
if (~isempty(Pod.con))
  Pod.n = length(Pod.con(:,1));
  Pod.type = Pod.con(:,3);

  Pod.idx = Pod.con(:,1);
  idx = find(Pod.type == 1); % voltage control
  if ~isempty(idx)
    Pod.idx(idx) = Bus.int(Pod.con(idx,1));
  end
  
  Pod.svc     = find(Pod.con(:,4) == 1);
  Pod.tcsc    = find(Pod.con(:,4) == 2);
  Pod.statcom = find(Pod.con(:,4) == 3);
  Pod.sssc    = find(Pod.con(:,4) == 4);
  Pod.upfc    = find(Pod.con(:,4) == 5);

  Svc.pod = Pod.con(Pod.svc,2);
  Statcom.pod = Pod.con(Pod.statcom,2);
  Sssc.pod = Pod.con(Pod.sssc,2);
  Upfc.pod = Pod.con(Pod.upfc,2);
  Tcsc.pod = Pod.con(Pod.tcsc,2);
end

% ----------------------------------------------------------- %
%                       W A R N I N G                         %
% ----------------------------------------------------------- %
% Following lines have been written by the UDM build utility. %
% This utility requires you do NOT change anything beyond     %
% this point in order to be able to correctly install and     %
% uninstall UDMs.                                             %
% ----------------------------------------------------------- %

global Sofc
if ~isempty(Sofc.con)
  Sofc.n = length(Sofc.con(:,1));
  Sofc.bus = Bus.int(round(Sofc.con(:,1)));
end

global Cac
if ~isempty(Cac.con)
  Cac.n = length(Cac.con(:,1));
  Cac.bus = Bus.int(round(Cac.con(:,1)));
  Cac.q = ones(Cac.n,1);
end

global Cluster
if ~isempty(Cluster.con)
  Cluster.n = length(Cluster.con(:,1));
  ty1 = find(Cluster.con(:,3) == 1);
  ty2 = find(Cluster.con(:,3) == 2);
  Cluster.svc = ty1;
  Cluster.exc = ty2;
  Cluster.bus = zeros(Cluster.n,1);
  Exc.cluster = Cluster.con(Cluster.exc,2);
  Svc.cluster = Cluster.con(Cluster.svc,2);
  Syn.cluster = Exc.syn(Exc.cluster);
  Cluster.bus(ty1) = Exc.bus(Exc.cluster);
  Cluster.bus(ty2) = Svc.bus(Svc.cluster);
  Cluster.cac = Cluster.con(:,1);
end

global Exload
if ~isempty(Exload.con)
  Exload.n = length(Exload.con(:,1));
  Exload.bus = Bus.int(round(Exload.con(:,1)));
  Exload.dat = zeros(Exload.n,3);
end

global Phs
if ~isempty(Phs.con)
  Phs.n = length(Phs.con(:,1));
  Phs.bus1 = Bus.int(round(Phs.con(:,1)));
  Phs.bus2 = Bus.int(round(Phs.con(:,2)));
end

global Wind
if ~isempty(Wind.con)
  Wind.n = length(Wind.con(:,1));
  Wind.speed.vw = [];
  Wind.speed.time = [];
end

global Cswt
if ~isempty(Cswt.con)
  Cswt.n = length(Cswt.con(:,1));
  Cswt.bus = Bus.int(round(Cswt.con(:,1)));
  Cswt.wind = round(Cswt.con(:,2));
  Cswt.dat = zeros(Cswt.n,8);
end

global Dfig
if ~isempty(Dfig.con)
  Dfig.n = length(Dfig.con(:,1));
  Dfig.bus = Bus.int(round(Dfig.con(:,1)));
  Dfig.wind = round(Dfig.con(:,2));
  Dfig.dat = zeros(Dfig.n,7);
end

global Ddsg
if ~isempty(Ddsg.con)
  Ddsg.n = length(Ddsg.con(:,1));
  Ddsg.bus = Bus.int(round(Ddsg.con(:,1)));
  Ddsg.wind = round(Ddsg.con(:,2));
  Ddsg.dat = zeros(Ddsg.n,7);
end

global Busfreq
if ~isempty(Busfreq.con)
  Busfreq.n = length(Busfreq.con(:,1));
  Busfreq.bus = Bus.int(round(Busfreq.con(:,1)));
  Busfreq.dat = zeros(Busfreq.n,2);
end

global Pmu
if ~isempty(Pmu.con)
  Pmu.n = length(Pmu.con(:,1));
  Pmu.bus = Bus.int(round(Pmu.con(:,1)));
  Pmu.dat = zeros(Pmu.n,2);
end

Jimma = setup(Jimma);
Mixload = setup(Mixload);

check = 1;

⌨️ 快捷键说明

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