📄 fm_idx.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: fmilano@thunderbox.uwaterloo.ca
%Web-site: http://thunderbox.uwaterloo.ca/~fmilano
%
% Copyright (C) 2002-2006 Federico Milano
global Varname DAE Bus Line Syn File Settings Path Exc Oxl
switch flag
case 1 % power flow and state variables
nidx = DAE.n+4*Bus.n+2*Syn.n+Exc.n+Oxl.n+4*Line.n;
% 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.fname)
eval(['global ',Varname.comp{j}]);
nome = eval([Varname.comp{j},'.',Varname.uname{j}]);
if ~isempty(nome)
b = find(nome);
numero = length(b);
for i = 1:numero
Varname.uvars{nome(b(i))} = [Varname.uname{j},'_', ...
Varname.comp{j},'_', int2str(b(i))];
Varname.fvars{nome(b(i))} = [Varname.fname{j},'_{', ...
Varname.comp{j},' ', int2str(b(i)),'}'];
end
end
end
end
idx1 = DAE.n+Bus.n;
idx2 = DAE.n+2*Bus.n+2*Syn.n+Exc.n+Oxl.n;
idx3 = idx2+Bus.n;
for j = 1:Bus.n
b = strrep(Varname.bus{j,1},'_',' ');
% V
Varname.fvars{DAE.n+j} = ['V_{', b,'}'];
Varname.uvars{DAE.n+j} = ['V_', b];
% theta
Varname.fvars{idx1+j} = [char(92),'theta_{', b,'}'];
Varname.uvars{idx1+j} = ['theta_', 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
idx1 = DAE.n+2*Bus.n;
idx2 = DAE.n+2*Bus.n+Syn.n;
for j = 1:Syn.n
b = int2str(j);
% Pm
Varname.fvars{idx1+j} = ['P_{mech ', b,'}'];
Varname.uvars{idx1+j} = ['Pmech_', b];
% Vf
Varname.fvars{idx2+j} = ['V_{fd ', b,'}'];
Varname.uvars{idx2+j} = ['Vfd_', b];
end
idx1 = DAE.n+2*Bus.n+2*Syn.n;
for j = 1:Exc.n
b = int2str(j);
% Vref
Varname.fvars{idx1+j} = ['V_{ref ', b,'}'];
Varname.uvars{idx1+j} = ['Vref_', b];
end
idx1 = DAE.n+2*Bus.n+2*Syn.n+Exc.n;
for j = 1:Oxl.n
b = int2str(j);
% If
Varname.fvars{idx1+j} = ['I_{f ', b,'}'];
Varname.uvars{idx1+j} = ['I_f', b];
end
idx1 = DAE.n+4*Bus.n+2*Syn.n+Exc.n+Oxl.n;
idx2 = idx1 + Line.n;
idx3 = idx2 + Line.n;
idx4 = idx3 + Line.n;
for j = 1:Line.n
b = Varname.bus{Bus.int(Line.con(j,1)),1};
d = Varname.bus{Bus.int(Line.con(j,2)),1};
% P_ij
Varname.fvars{idx1+j} = ['P_{',b,' ',d,'}'];
Varname.uvars{idx1+j} = ['P_',b,'_',d];
% Q_ij
Varname.fvars{idx3+j} = ['Q_{',b,' ',d,'}'];
Varname.uvars{idx3+j} = ['Q_',b,'_',d];
% P_ji
Varname.fvars{idx2+j} = ['P_{',d,' ',b,'}'];
Varname.uvars{idx2+j} = ['P_',d,'_',b];
% Q_ji
Varname.fvars{idx4+j} = ['Q_{',d,' ',b,'}'];
Varname.uvars{idx4+j} = ['Q_',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.V = 1;
Varname.PQ = 0;
Varname.Pij = 0;
Varname.idx = [1:(DAE.n+2*Bus.n)]';
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+4*Bus.n+2*Syn.n+Exc.n+Oxl.n+4*Line.n;
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 + -