📄 fm_lines.m
字号:
function fm_lines(flag)
% FM_LINES define transmission lines (PI circuit model)
%
% FM_LINES(FLAG)
% FLAG 1 -> Algebraic Equations
% 2 -> Algebraic Jacobians
%
%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 Lines Bus DAE
V1 = DAE.V(Lines.bus1);
V2 = DAE.V(Lines.bus2);
theta1 = DAE.a(Lines.bus1);
theta2 = DAE.a(Lines.bus2);
rl = Lines.con(:,6);
xl = Lines.con(:,7);
bl = Lines.con(:,8);
cos12 = cos(theta1-theta2);
sin12 = sin(theta1-theta2);
zl = rl.*rl+xl.*xl;
g12 = rl./zl;
b12 = -xl./zl;
bl2 = 0.5*bl;
V12 = V1.*V2;
% Algebraic Equations:
switch flag
case 1
for i = 1:Lines.n
DAE.gp(Lines.bus1(i)) = DAE.gp(Lines.bus1(i)) + (V1(i)*V1(i)*g12(i) - V12(i)*(g12(i)*cos12(i) + b12(i)*sin12(i)));
DAE.gq(Lines.bus1(i)) = DAE.gq(Lines.bus1(i)) + (-V1(i)*V1(i)*(b12(i)+bl2(i)) - V12(i)*(g12(i)*sin12(i) - b12(i)*cos12(i)));
DAE.gp(Lines.bus2(i)) = DAE.gp(Lines.bus2(i)) + (V2(i)*V2(i)*g12(i) - V12(i)*(g12(i)*cos12(i) - b12(i)*sin12(i)));
DAE.gq(Lines.bus2(i)) = DAE.gq(Lines.bus2(i)) + (-V2(i)*V2(i)*(b12(i)+bl2(i)) + V12(i)*(g12(i)*sin12(i) + b12(i)*cos12(i)));
end
% Algebraic Jacobians:
case 2
for i = 1:Lines.n
a = g12(i)*cos12(i)+b12(i)*sin12(i);
b = g12(i)*sin12(i)-b12(i)*cos12(i);
c = g12(i)*cos12(i)-b12(i)*sin12(i);
d = g12(i)*sin12(i)+b12(i)*cos12(i);
e = b12(i)+bl2(i);
DAE.J12(Lines.bus1(i),Lines.bus1(i)) = DAE.J12(Lines.bus1(i),Lines.bus1(i)) + 2*V1(i)*g12(i) - V2(i)*a;
DAE.J12(Lines.bus1(i),Lines.bus2(i)) = DAE.J12(Lines.bus1(i),Lines.bus2(i)) - V1(i)*a;
DAE.J11(Lines.bus1(i),Lines.bus1(i)) = DAE.J11(Lines.bus1(i),Lines.bus1(i)) + V12(i)*b;
DAE.J11(Lines.bus1(i),Lines.bus2(i)) = DAE.J11(Lines.bus1(i),Lines.bus2(i)) - V12(i)*b;
DAE.J22(Lines.bus1(i),Lines.bus1(i)) = DAE.J22(Lines.bus1(i),Lines.bus1(i)) - 2*V1(i)*e - V2(i)*b;
DAE.J22(Lines.bus1(i),Lines.bus2(i)) = DAE.J22(Lines.bus1(i),Lines.bus2(i)) - V1(i)*b;
DAE.J21(Lines.bus1(i),Lines.bus1(i)) = DAE.J21(Lines.bus1(i),Lines.bus1(i)) - V12(i)*a;
DAE.J21(Lines.bus1(i),Lines.bus2(i)) = DAE.J21(Lines.bus1(i),Lines.bus2(i)) + V12(i)*a;
DAE.J12(Lines.bus2(i),Lines.bus1(i)) = DAE.J12(Lines.bus2(i),Lines.bus1(i)) + (-V2(i)*c);
DAE.J12(Lines.bus2(i),Lines.bus2(i)) = DAE.J12(Lines.bus2(i),Lines.bus2(i)) + 2*V2(i)*g12(i) - V1(i)*c;
DAE.J11(Lines.bus2(i),Lines.bus1(i)) = DAE.J11(Lines.bus2(i),Lines.bus1(i)) + V12(i)*d;
DAE.J11(Lines.bus2(i),Lines.bus2(i)) = DAE.J11(Lines.bus2(i),Lines.bus2(i)) - V12(i)*d;
DAE.J22(Lines.bus2(i),Lines.bus1(i)) = DAE.J22(Lines.bus2(i),Lines.bus1(i)) + V2(i)*d;
DAE.J22(Lines.bus2(i),Lines.bus2(i)) = DAE.J22(Lines.bus2(i),Lines.bus2(i)) - 2*V2(i)*e + V1(i)*d;
DAE.J21(Lines.bus2(i),Lines.bus1(i)) = DAE.J21(Lines.bus2(i),Lines.bus1(i)) + V12(i)*c;
DAE.J21(Lines.bus2(i),Lines.bus2(i)) = DAE.J21(Lines.bus2(i),Lines.bus2(i)) - V12(i)*c;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -