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

📄 fm_idx.m

📁 电力系统分析计算程序
💻 M
字号:
function  fm_idx(flag)% FM_IDX define formatted and unformatted names of system variables%% FM_IDX(FLAG)%   FLAG  1  -> power flow and state variables%         2  -> determinants and eigenvalues%%Author:    Federico Milano%Date:      11-Nov-2002%Update:    05-Mar-2004%Update:    14-Sep-2005%Update:    19-Dec-2005%Version:   1.2.0%%E-mail:    Federico.Milano@uclm.es%Web-site:  http://www.uclm.es/area/gsee/Web/Federico%% Copyright (C) 2002-2008 Federico Milanoglobal Varname DAE Bus File Settings Pathglobal Line Ltc Phs Hvdc LinesnL = Settings.nseries;switch flag case 1  % power flow and state variables  nidx = DAE.n+DAE.m+2*Bus.n+4*nL;  % cell array of unformatted variable names  Varname.uvars = cell(nidx,1);  % cell array of formatted (LaTeX style) variable names  Varname.fvars = cell(nidx,1);  % state variables  if DAE.n    for j = 1:length(Varname.fnamex)      eval(['global ',Varname.compx{j}]);      nome = eval([Varname.compx{j},'.',Varname.unamex{j}]);      if ~isempty(nome)        b = find(nome);        numero = length(b);        for i = 1:numero          Varname.uvars{nome(b(i))} = [Varname.unamex{j},'_', ...                              Varname.compx{j},'_',  int2str(b(i))];          Varname.fvars{nome(b(i))} = [Varname.fnamex{j},'_{', ...                              Varname.compx{j},' ', int2str(b(i)),'}'];        end      end    end  end  % algebraic variables  idx1 = DAE.n+Bus.n;  idx2 = DAE.n+DAE.m;  idx3 = idx2+Bus.n;  for j = 1:Bus.n    b = strrep(Bus.names{j,1},'_',' ');    % theta    Varname.fvars{DAE.n+j} = [char(92),'theta_{', b,'}'];    Varname.uvars{DAE.n+j} = ['theta_', b];    % V    Varname.fvars{idx1+j} = ['V_{', b,'}'];    Varname.uvars{idx1+j} = ['V_', b];    % P    Varname.fvars{idx2+j} = ['P_{', b,'}'];    Varname.uvars{idx2+j} = ['P_', b];    % Q    Varname.fvars{idx3+j} = ['Q_{', b,'}'];    Varname.uvars{idx3+j} = ['Q_', b];  end  if DAE.m > 2*Bus.n    for j = 1:length(Varname.fnamey)      eval(['global ',Varname.compy{j}]);      nome = eval([Varname.compy{j},'.',Varname.unamey{j}]);      if ~isempty(nome)        b = find(nome);        numero = length(b);        for i = 1:numero          Varname.uvars{DAE.n+nome(b(i))} = [Varname.unamey{j},'_', ...                              Varname.compy{j},'_',  int2str(b(i))];          Varname.fvars{DAE.n+nome(b(i))} = [Varname.fnamey{j},'_{', ...                              Varname.compy{j},' ', int2str(b(i)),'}'];        end      end    end  end  fr = [Line.fr; Ltc.bus1; Phs.bus1; Hvdc.bus1; Lines.bus1];  to = [Line.to; Ltc.bus2; Phs.bus2; Hvdc.bus2; Lines.bus2];  idx1 = DAE.n+DAE.m+2*Bus.n;  idx2 = idx1 + nL;  idx3 = idx2 + nL;  idx4 = idx3 + nL;  idx5 = idx4 + nL;  idx6 = idx5 + nL;  idx7 = idx6 + nL;  idx8 = idx7 + nL;  for j = 1:nL    b = Bus.names{fr(j),1};    d = Bus.names{to(j),1};    % P_ij    Varname.fvars{idx1+j} = ['P_{',b,' ',d,'}'];    Varname.uvars{idx1+j} = ['P_',b,'_',d];    % P_ji    Varname.fvars{idx2+j} = ['P_{',d,' ',b,'}'];    Varname.uvars{idx2+j} = ['P_',d,'_',b];    % Q_ij    Varname.fvars{idx3+j} = ['Q_{',b,' ',d,'}'];    Varname.uvars{idx3+j} = ['Q_',b,'_',d];    % Q_ji    Varname.fvars{idx4+j} = ['Q_{',d,' ',b,'}'];    Varname.uvars{idx4+j} = ['Q_',d,'_',b];    % I_ij    Varname.fvars{idx5+j} = ['I_{',b,' ',d,'}'];    Varname.uvars{idx5+j} = ['I_',b,'_',d];    % I_ji    Varname.fvars{idx6+j} = ['I_{',d,' ',b,'}'];    Varname.uvars{idx6+j} = ['I_',d,'_',b];    % S_ij    Varname.fvars{idx7+j} = ['S_{',b,' ',d,'}'];    Varname.uvars{idx7+j} = ['S_',b,'_',d];    % S_ji    Varname.fvars{idx8+j} = ['S_{',d,' ',b,'}'];    Varname.uvars{idx8+j} = ['S_',d,'_',b];  end  Varname.nvars = length(Varname.uvars);  % plot variables  if isempty(Varname.idx)    % use default variables    Varname.fixed = 1;    Varname.custom = 0;    Varname.x = 1;    Varname.y = 1;    Varname.P = 0;    Varname.Q = 0;    Varname.Pij = 0;    Varname.Qij = 0;    Varname.Iij = 0;    Varname.Sij = 0;    Varname.idx = [1:(DAE.n+DAE.m)]';  else    % check for possible index inconsistency    idx = find(Varname.idx > Varname.nvars);    if ~isempty(idx)      Varname.idx(idx) = [];    end  end case 2 % determinants and eigenvalues  idx0 = DAE.n+DAE.m+2*Bus.n+8*nL;  Varname.fvars{idx0+1} = 'det(J_l_f)';  Varname.fvars{idx0+2} = 'det(J_l_f_v)';  Varname.fvars{idx0+3} = 'det(J_l_f_d)';  Varname.uvars{idx0+1} = 'det(Jlf)';  Varname.uvars{idx0+2} = 'det(Jlfv)';  Varname.uvars{idx0+3} = 'det(Jlfd)';  idx0 = idx0+3;  for i = 1:DAE.n    Varname.fvars{idx0+i} = [char(92),'lambda', '_{As (', int2str(i),')}'];    Varname.uvars{idx0+i} = ['eigenvalue_As', int2str(i)];  end  idx0 = idx0+DAE.n;  for i = 1:Bus.n    Varname.fvars{idx0+i} = [char(92),'lambda','_{Jlfr (', int2str(i),')}'];    Varname.uvars{idx0+i} = ['eigenvalue_Jlfr', int2str(i)];  end  idx0 = idx0+Bus.n;  for i = 1:Bus.n    Varname.fvars{idx0+i} = [char(92),'lambda','_{Jlfvr (', int2str(i),')}'];    Varname.uvars{idx0+i} = ['eigenvalue_Jlfvr', int2str(i)];  end  idx0 = idx0+Bus.n;  for i = 1:Bus.n    Varname.fvars{idx0+i} = [char(92),'lambda','_{Jlfdr (', int2str(i),')}'];    Varname.uvars{idx0+i} = ['eigenvalue_Jlfdr', int2str(i)];  end  Varname.nvars = length(Varname.uvars);end

⌨️ 快捷键说明

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