📄 setx0.m
字号:
function a = setx0(a)global Bus DAE PV Synif ~a.n, return, endV = DAE.V(a.bus);% eliminate PV components used for initializing SVC'sfor i = 1:a.n idxg = find(Syn.bus == a.bus(i)); if ~isempty(idxg) svcwarn(i,[' SVC cannot be connected at the same bus as ' ... 'synchronous machines.']) continue end idx = findbus(PV,a.bus(i)); PV = remove(PV,idx); if isempty(idx) svcwarn(i,' no PV generator found at the bus.') endendif a.ty1 Kr = a.con(a.ty1,7); bcv_max = a.con(a.ty1,9); bcv_min = a.con(a.ty1,10); DAE.x(a.bcv) = Bus.Qg(a.bus(a.ty1))./V(a.ty1)./V(a.ty1); a.con(a.ty1,8) = DAE.x(a.bcv)./Kr + V(a.ty1); idx = find(DAE.x(a.bcv) > bcv_max); if idx, svcwarn(a,a.ty1(idx),' b_svc is over its max limit.'), end idx = find(DAE.x(a.bcv) < bcv_min); if idx, svcwarn(a,a.ty1(idx),' b_svc is under its min limit.'), end DAE.x(a.bcv) = max(DAE.x(a.bcv),bcv_min); DAE.x(a.bcv) = min(DAE.x(a.bcv),bcv_max); a.Be(a.ty1) = DAE.x(a.bcv);endif a.ty2 a_max = a.con(a.ty2,9); a_min = a.con(a.ty2,10); T2 = a.con(a.ty2,6); K = a.con(a.ty2,7); Kd = a.con(a.ty2,11); T1 = a.con(a.ty2,12); Km = a.con(a.ty2,13); Tm = a.con(a.ty2,14); xl = a.con(a.ty2,15); xc = a.con(a.ty2,16); DAE.x(a.vm) = V(a.ty2)./Km; b = pi*(2-xl./xc)+pi*xl.*Bus.Qg(a.bus(a.ty2))./V(a.ty2)./V(a.ty2); % numeric solution for alpha for i = 1:length(a.ty2) err = 1; % first guess is the expansion of a 3rd order Taylor series s = sign(b(i))*((6*abs(b(i)))^(1/3))/2; iter = 0; while abs(err) > 1e-8 if iter > 20, svcwarn(a.ty2(i),' convergence not reached in computing alpha') break, end ga = 2*s - sin(2*s) - b(i); ja = 2*(1-cos(2*s)); err = -ga/ja; s = s + err; iter = iter + 1; end DAE.x(a.alpha(i)) = s; end a.con(a.ty2,8) = DAE.x(a.vm) + Kd./K.*DAE.x(a.alpha); idx = find(DAE.x(a.alpha) > a_max); if idx, svcwarn(a,a.ty2(idx),' alpha is over its max limit.'), end idx = find(DAE.x(a.alpha) < a_min); if idx, svcwarn(a,a.ty2(idx),' alpha is under its min limit.'), end DAE.x(a.alpha) = max(DAE.x(a.alpha),a_min); DAE.x(a.alpha) = min(DAE.x(a.alpha),a_max); a.Be(a.ty2) = (2*DAE.x(a.alpha) - sin(2*DAE.x(a.alpha)) - ... pi*(2-xl./xc))./(pi*xl);end% reference voltagesa.Vref = a.con(:,8);fm_disp('Initialization of SVCs completed.')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -