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

📄 setx0.m

📁 电力系统分析计算程序
💻 M
字号:
function a = setx0(a)global Line DAE Settingsif ~a.n, return, end% reset transmission line reactance and admittance matrixLine = mulxl(Line,a.line,1./(1-a.u.*a.Cp));if sum(a.u), Line = build_y(Line); endx0 = zeros(a.n,1);if a.ty1  x0(a.ty1) = a.u(a.ty1).*a.Cp(a.ty1).*getxl(Line,a.line(a.ty1));endif a.ty2  af = -pi/2:0.025:pi/2;  for i = 1:length(a.ty2)    % find a "good" initial guess in a brutal way...    B = balpha(a,af,a.ty2(i),1);    B0 = a.B(a.ty2(i));    [val,idx] = min(abs(B-B0));    B1 = B(idx);    af0 = af(idx);    err = a.u(a.ty2(i));    iter = 0;    while abs(B1-B0) > Settings.lftol      if iter > 20, break, end      B1 = balpha(a,af0,a.ty2(i),1);      dB = balpha(a,af0,a.ty2(i),2);      err = -(B1-B0)/dB;      af0 = af0 + err;      iter = iter + 1;    end    if iter > 20      warn(a,a.ty2(i),[': initialization of alpha failed.'])    end    x0(a.ty2(i)) = a.u(a.ty2(i))*af0;   endendjdx = find(x0 > a.con(:,10));if jdx  warn(a,jdx,': state variable is over its maximum limit.')endjdx = find(x0 < a.con(:,11));if jdx  warn(a,jdx,': state variable is under its minimum limit.')endx0 = min(x0,a.u.*a.con(:,10));x0 = max(x0,a.u.*a.con(:,11));ty2 = a.con(:,3) == 2;tyang = a.con(:,4) == 2;% initial state variables and referencea.X0 = x0;DAE.x(a.x1) = x0;if ty2, DAE.x(a.x2(ty2)) = x0(ty2); end% reference power[Ps,Qs,Pr,Qr] = flows(Line,'pq',a.line);[Ps,Qs,Pr,Qr] = flows(a,Ps,Qs,Pr,Qr,'tcsc');a.Pref = Ps + ty2.*tyang.*Pr;DAE.y(a.x0) = a.X0;DAE.y(a.pref) = a.Pref;fm_disp('Initialization of TCSC completed.')

⌨️ 快捷键说明

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