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

📄 fm_opfrep.m

📁 电力系统的psat
💻 M
📖 第 1 页 / 共 2 页
字号:
else  idx = 1;endif ntrasf > 0  idx = idx + 1;  Matrix{2,1}(idx,1) = ntrasf;  Rows{2,1}{idx,1} = 'Transformers:';endMatrix{2,1}(idx+1,1) = SW.n+PV.n;Rows{2,1}{idx+1,1} = 'Generators:';Matrix{2,1}(idx+2,1) = PQ.n;Rows{2,1}{idx+2,1} = 'Loads:';Matrix{2,1}(idx+3,1) = Supply.n;Rows{2,1}{idx+3,1} = 'Supplies:';Matrix{2,1}(idx+4,1) = (~noDem)*Demand.n;Rows{2,1}{idx+4,1} = 'Demands:';% statistics of the current solution algorithmHeader{3,1} = 'SOLUTION STATISTICS';Cols{3,1} = '';bindings = length(find(round(OPF.guess(n_s+1:2*n_s)*1e5)));Rows{3,1} = {'Objective Function [$/h]:'; ...             'Active Limits:'; ...             'Number of Iterations:'; ...	     'Barrier Parameter:'; ...	     'Variable Mismatch:';             'Power Flow Equation Mismatch:';             'Objective Function Mismatch:'};Matrix{3,1} = [OPF.obj*MVA;bindings;OPF.iter;...               OPF.ms;OPF.dy;OPF.dF;OPF.dG];if OPF.init == 2  Rows{3,1}{1,1} = 'Objective Function:';  Rows{3,1}{7,1} = 'Weighting Factor:';  Matrix{3,1}(7,1) = OPF.w;end% Power SuppliesHeader{4,1} = 'POWER SUPPLIES';Cols{4,1} = {'Bus','mu min','Ps min','Ps','Ps max','mu max'; ...             ' ',' ','[MW]','[MW]','[MW]',' '};for kkk = 1:Supply.n  Rows{4,1}{kkk,1} = Varname.bus{Supply.bus(kkk)};endMatrix{4,1} = [mu_Psmin,Psmin*MVA,Ps*MVA,Psmax*MVA,mu_Psmax];idx = 5;% Power Demandsif Demand.n & ~noDem  Header{idx,1} = 'POWER DEMANDS';  Cols{idx,1} = {'Bus','mu min','Pd min','Pd','Pd max','mu max'; ...               ' ',' ','[MW]','[MW]','[MW]',' '};  for kkk = 1:Demand.n    Rows{idx,1}{kkk,1} = Varname.bus{Demand.bus(kkk)};  end  Matrix{idx,1} = [mu_Pdmin,Pdmin*MVA,Pd*MVA,Pdmax*MVA,mu_Pdmax];  idx = idx+1;end% Reactive PowersHeader{idx,1} = 'REACTIVE POWERS';Cols{idx,1} = {'Bus','mu min','Qg min','Qg','Qg max','mu max'; ...               ' ',' ','[MVar]','[MVar]','[MVar]',' '};for kkk = 1:n_gen  Rows{idx,1}{kkk,1} = Varname.bus{busG(kkk)};endMatrix{idx,1} = [mu_Qgmin,Qgmin*MVA,Qg*MVA,Qgmax*MVA,mu_Qgmax];idx = idx+1;if OPF.init == 2  Header{idx,1} = 'CRITICAL REACTIVE POWERS';  Cols{idx,1} = {'Bus','mu min','Qgc min','Qgc','Qgc max','mu max'; ...                 ' ',' ','[MVar]','[MVar]','[MVar]',' '};  for kkk = 1:n_gen    Rows{idx,1}{kkk,1} = Varname.bus{busG(kkk)};  end  Matrix{idx,1} = [mu_Qgcmin,Qgmin*MVA,Qgc*MVA,Qgmax*MVA,mu_Qgcmax];  idx = idx+1;end% Power Reservesif Rsrv.n    Header{idx,1} = 'POWER RESERVES';  Cols{idx,1} = {'Bus','mu min','Pr min','Pr','Pr max','mu max'; ...               ' ',' ','[MW]','[MW]','[MW]',' '};  for kkk = 1:Rsrv.n    Rows{idx,1}{kkk,1} = Varname.bus{Rsrv.bus(kkk)};  end  Matrix{idx,1} = [mu_Prmin,Prmin*MVA,Pr*MVA,Prmax*MVA,mu_Prmax];  idx = idx+1;    Header{idx,1} = 'POWER RESERVE BALANCE';  Cols{idx,1} = {' ','Sum Pr','Sum Pd','mu'; ...                 ' ','[MW]','[MW]',' '};  Rows{idx,1} = {' '};  Matrix{idx,1} = [sum(Pr)*MVA,sum(Pd)*MVA,mu_sumPrd];  idx = idx+1;  endif OPF.init == 2  Header{idx,1} = 'LAMBDA';  Cols{idx,1} = {' ','mu min','lambda min','lambda','lambda max','mu max'};  Rows{idx,1} = {' '};  Matrix{idx,1} = [mu_lcmin, OPF.lmin, lambda, OPF.lmax, mu_lcmin];  idx = idx+1;  endswitch OPF.flow case 1, I = 'I'; case 2, I = 'P'; case 3, I = 'S';end% VoltagesHeader{idx,1} = 'VOLTAGES';Cols{idx,1} = {'Bus','mu min','V min','V','V max','mu max',...               'phase';' ',' ','[p.u.]','[p.u.]','[p.u.]',' ',...               '[rad]'};Rows{idx,1} = Varname.bus;Matrix{idx,1} = [mu_Vmin,Vmin,V,Vmax,mu_Vmax,a];idx = idx+1;if OPF.init == 2  Header{idx,1} = 'CRITICAL VOLTAGES';  Cols{idx,1} = {'Bus','mu min','Vc min','Vc','Vc max','mu max',...                 'phase';' ',' ','[p.u.]','[p.u.]','[p.u.]',' ',...                 '[rad]'};  Rows{idx,1} = Varname.bus;  Matrix{idx,1} = [mu_Vcmin,Vmin,Vc,Vmax,mu_Vcmax,ac];  idx = idx+1;end% Power flowHeader{idx,1} = 'POWER FLOW';Cols{idx,1} = {'Bus','P','Q','rho P','rho Q','NCP','Pay'; ...               ' ','[MW]','[MVar]','[$/MWh]','[$/MVArh]',...               '[$/MWh]','[$/h]'};Rows{idx,1} = Varname.bus;Matrix{idx,1} = [DAE.glfp*MVA,DAE.glfq*MVA,-rhop,...                 -rhoq,OPF.NCP([1:Bus.n]),round(Pay)];idx = idx+1;if OPF.init == 2  Header{idx,1} = 'CRITICAL POWER FLOW';  Cols{idx,1} = {'Bus','Pc','Qc','rho Pc','rho Qc'; ...                 ' ','[MW]','[MVar]',' ',' '};  Rows{idx,1} = Varname.bus;  Matrix{idx,1} = [OPF.gpc*MVA,OPF.gqc*MVA,-rhopc,-rhoqc];  idx = idx+1;end% Flows in transmission linesif OPF.init == 1  Header{idx,1} = 'FLOWS IN TRANSMISSION LINES';  Cols{idx,1} = {'From bus','To bus',[I,'_ij'],[I,'_ij max'], ...                 ['mu ',I,'_ij'];' ',' ','[p.u.]','[p.u.]',' '};  for kkk = 1:Line.n    Rows{idx,1}{kkk,1} = Varname.bus{Line.from(kkk)};    Rows{idx,1}{kkk,2} = Varname.bus{Line.to(kkk)};  end  Matrix{idx,1} = [Iij,Iijmax,mu_Iijmax];  idx = idx+1;    Header{idx,1} = 'FLOWS IN TRANSMISSION LINES';  Cols{idx,1} = {'From bus','To bus',[I,'_ji'],[I,'_ji max'], ...                 ['mu ',I,'_ji'];' ',' ','[p.u.]','[p.u.]',' '};  for kkk = 1:Line.n    Rows{idx,1}{kkk,1} = Varname.bus{Line.to(kkk)};  Rows{idx,1}{kkk,2} = Varname.bus{Line.from(kkk)};  end  Matrix{idx,1} = [Iji,Iijmax,mu_Ijimax];  idx = idx+1;elseif OPF.init == 2  Header{idx,1} = 'FLOWS IN TRANSMISSION LINES';  Cols{idx,1} = {'From bus','To bus',[I,'_ij'],[I,'_ij c'],[I,'_ij max'], ...                 ['mu ',I,'_ij'],['mu ',I,'_ij c']; ...                 ' ',' ','[p.u.]','[p.u.]','[p.u.]',' ',' '};  for kkk = 1:Line.n    Rows{idx,1}{kkk,1} = Varname.bus{Line.from(kkk)};    Rows{idx,1}{kkk,2} = Varname.bus{Line.to(kkk)};  end  Matrix{idx,1} = [Iij,Iijc,Iijmax,mu_Iijmax,mu_Iijcmax];  idx = idx+1;    Header{idx,1} = 'FLOWS IN TRANSMISSION LINES';  Cols{idx,1} = {'From bus','To bus',[I,'_ji'],[I,'_ji c'],[I,'_ji max'], ...                 ['mu ',I,'_ji'],['mu ',I,'_ji c']; ...                 ' ',' ','[p.u.]','[p.u.]','[p.u.]',' ',' '};  for kkk = 1:Line.n    Rows{idx,1}{kkk,1} = Varname.bus{Line.to(kkk)};  Rows{idx,1}{kkk,2} = Varname.bus{Line.from(kkk)};  end  Matrix{idx,1} = [Iji,Ijic,Iijmax,mu_Ijimax,mu_Ijicmax];  idx = idx+1;end% TotalsHeader{idx,1} = 'TOTALS';Cols{idx,1} = '';Rows{idx,1} = {'TOTAL LOSSES [MW]:';'BID LOSSES [MW]';...               'TOTAL DEMAND [MW]:';'TTL [MW]:';'IMO PAY [$/h]:'};tot_loss = 1e-5*round((sum(DAE.glfp))*1e5)*MVA;if OPF.basepg  length(Snapshot.V);  ploss = Snapshot(1).Ploss;else  ploss = 0;endbid_loss = 1e-5*round((sum(DAE.glfp)-ploss)*1e5)*MVA;tot_demd = sum(Pd)*MVA;if ~Demand.n  ttl = tot_demd;else  ttl = sum(Pd)*MVA+OPF.basepl*sum(PQ.con(:,4))*MVA;endMatrix{idx,1} = [tot_loss; bid_loss;...                 tot_demd;ttl;ISOPay];idx = idx + 1;if OPF.init == 2  Header{idx,1} = 'MAXIMUM LOADING CONDITION';  Cols{idx,1} = '';  Rows{idx,1} = {'LAMBDA:';'DISTRIBUTED LOSSES KG:';...                 'MAXIMUM LOADING COND. [MW]:'; ...                 'AVAILABLE LOADING COND. [MW]:'};  if ~Demand.n    MLC = (1+lambda)*sum(Pd)*MVA;    ALC = lambda*sum(Pd)*MVA;  else    MLC = (1+lambda)*(sum(Pd)+sum(PQ.con(:,4)))*MVA;    ALC = lambda*(sum(Pd)+sum(PQ.con(:,4)))*MVA;  end  Matrix{idx,1} = [lambda; kg; MLC; ALC];  endif noDem, Demand.n = 0; end% writing data...filename = [fm_filenum(Settings.export),['.',Settings.export]];switch Settings.export case 'txt'  fm_writetxt(Matrix,Header,Cols,Rows,filename) case 'xls'  fm_writexls(Matrix,Header,Cols,Rows,filename) case 'tex'  fm_writetex(Matrix,Header,Cols,Rows,filename)end

⌨️ 快捷键说明

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