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

📄 printpf.m

📁 关于电力系统的计算程序!最新的改进法计算潮流程序!用matlab实现的! 适用于电力行业的相关从业人员!
💻 M
📖 第 1 页 / 共 2 页
字号:
	%% bus data
	if OUT_BUS
		fprintf(fd, '\n================================================================================');
		fprintf(fd, '\n|     Bus Data                                                                 |');
		fprintf(fd, '\n================================================================================');
		fprintf(fd, '\nBus      Voltage           Generation             Load        ');
		if isOPF, fprintf(fd, '  Lambda($/MVA-hr)'); end
		fprintf(fd, '\n #   Mag(pu)  Ang(deg)   P (MW)   Q (MVAR)   P (MW)   Q (MVAR)');
		if isOPF, fprintf(fd, '     P        Q   '); end
		fprintf(fd, '\n---  -------  --------  --------  --------  --------  --------');
		if isOPF, fprintf(fd, '  -------  -------'); end
		for i = 1:nb
			fprintf(fd, '\n%3d%8.3f%10.3f', bus(i, [BUS_I, VM, VA]));
			g = find(gen(:, GEN_BUS) == bus(i, BUS_I));
			if gen(g, GEN_STATUS)
				fprintf(fd, '%10.2f%10.2f', gen(g, [PG, QG]));
			else
				fprintf(fd, '       -         -  ');
			end
			if bus(i, PD) | bus(i, QD)
				fprintf(fd, '%10.2f%10.2f', bus(i, [PD, QD]));
			else
				fprintf(fd, '       -         -  ');
			end
			if isOPF
				fprintf(fd, '%10.3f', bus(i, LAM_P));
				if abs(bus(i, LAM_Q)) > 1e-6
					fprintf(fd, '%8.3f', bus(i, LAM_Q));
				else
					fprintf(fd, '     -   ');
				end
			end
		end
		fprintf(fd, '\n                        --------  --------  --------  --------');
		fprintf(fd, '\n               Total: %9.2f %9.2f %9.2f %9.2f', ...
			sum(gen(:, PG)), sum(gen(:, QG)), sum(bus(nzld, PD)), sum(bus(nzld, QD)));
		fprintf(fd, '\n');
	end

	%% branch data
	if OUT_BRANCH
		fprintf(fd, '\n================================================================================');
		fprintf(fd, '\n|     Branch Data                                                              |');
		fprintf(fd, '\n================================================================================');
		fprintf(fd, '\n From   To    From Bus Injection   To Bus Injection     Loss (I^2 * Z)  ');
		fprintf(fd, '\n Bus    Bus    P (MW)   Q (MVAR)   P (MW)   Q (MVAR)   P (MW)   Q (MVAR)');
		fprintf(fd, '\n-----  -----  --------  --------  --------  --------  --------  --------');
		fprintf(fd, '\n%4d%7d%10.2f%10.2f%10.2f%10.2f%10.3f%10.2f', ...
				[	branch(:, [F_BUS, T_BUS]), ...
					branch(:, [PF, QF]), branch(:, [PT, QT]), ...
					real(loss), imag(loss) ...
				]');
		fprintf(fd, '\n                                                      --------  --------');
		fprintf(fd, '\n                                             Total:%10.3f%10.2f', ...
				sum(real(loss)), sum(imag(loss)));
		fprintf(fd, '\n');
	end
		
	%%-----  constraint data  -----
	if isOPF
		%% voltage constraints
		if OUT_V_LIM == 2 | (OUT_V_LIM == 1 & ...
							 (any(bus(:, MU_VMIN) > 1e-6) | any(bus(:, MU_VMAX) > 1e-6)))
			fprintf(fd, '\n================================================================================');
			fprintf(fd, '\n|     Voltage Constraints                                                      |');
			fprintf(fd, '\n================================================================================');
			fprintf(fd, '\nBus');
			fprintf(fd, '\n #   Vmin mu  Vmin    |V|   Vmax   Vmax mu');
			fprintf(fd, '\n---  -------  -----  -----  -----  -------');
			for i = 1:nb
				if OUT_V_LIM == 2 | (OUT_V_LIM == 1 & ...
							 (bus(i, MU_VMIN) > 1e-6 | bus(i, MU_VMAX) > 1e-6))
					fprintf(fd, '\n%3d', bus(i, BUS_I));
					if bus(i, MU_VMIN) > 1e-6
						fprintf(fd, '%8.3f', bus(i, MU_VMIN));
					else
						fprintf(fd, '     -  ');
					end
					fprintf(fd, '%8.3f%7.3f%7.3f', bus(i, [VMIN, VM, VMAX]));
					if bus(i, MU_VMAX) > 1e-6
						fprintf(fd, '%8.3f', bus(i, MU_VMAX));
					else
						fprintf(fd, '     -   ');
					end
				end
			end
			fprintf(fd, '\n');
		end
			
		%% generator P constraints
		if OUT_PG_LIM == 2 | OUT_QG_LIM == 2 | ...
				(OUT_PG_LIM == 1 & (any(gen(:, MU_PMIN) > 1e-6) | any(gen(:, MU_PMAX) > 1e-6))) | ...
				(OUT_QG_LIM == 1 & (any(gen(:, MU_QMIN) > 1e-6) | any(gen(:, MU_QMAX) > 1e-6)))
			fprintf(fd, '\n================================================================================');
			fprintf(fd, '\n|     Generation Constraints                                                   |');
			fprintf(fd, '\n================================================================================');
		end
		if OUT_PG_LIM == 2 | (OUT_PG_LIM == 1 & ...
							 (any(gen(:, MU_PMIN) > 1e-6) | any(gen(:, MU_PMAX) > 1e-6)))
			fprintf(fd, '\nBus             Active Power Limits');
			fprintf(fd, '\n #   Pmin mu    Pmin       P        Pmax    Pmax mu');
			fprintf(fd, '\n---  -------  --------  --------  --------  -------');
			for i = 1:ng
				if OUT_PG_LIM == 2 | (OUT_PG_LIM == 1 & (gen(i, MU_PMIN) > 1e-6 | gen(i, MU_PMAX) > 1e-6))
					fprintf(fd, '\n%3d', gen(i, GEN_BUS));
					if gen(i, MU_PMIN) > 1e-6
						fprintf(fd, '%8.3f', gen(i, MU_PMIN));
					else
						fprintf(fd, '     -  ');
					end
					if gen(i, PG)
						fprintf(fd, '%10.2f%10.2f%10.2f', gen(i, [PMIN, PG, PMAX]));
					else
						fprintf(fd, '%10.2f       -  %10.2f', gen(i, [PMIN, PMAX]));
					end
					if gen(i, MU_PMAX) > 1e-6
						fprintf(fd, '%9.3f', gen(i, MU_PMAX));
					else
						fprintf(fd, '      -  ');
					end
				end
			end
			fprintf(fd, '\n');
		end
			
		%% generator Q constraints
		if OUT_QG_LIM == 2 | (OUT_QG_LIM == 1 & ...
							 (any(gen(:, MU_QMIN) > 1e-6) | any(gen(:, MU_QMAX) > 1e-6)))
			fprintf(fd, '\nBus            Reactive Power Limits');
			fprintf(fd, '\n #   Qmin mu    Qmin       Q        Qmax    Qmax mu');
			fprintf(fd, '\n---  -------  --------  --------  --------  -------');
			for i = 1:ng
				if OUT_QG_LIM == 2 | (OUT_QG_LIM == 1 & (gen(i, MU_QMIN) > 1e-6 | gen(i, MU_QMAX) > 1e-6))
					fprintf(fd, '\n%3d', gen(i, GEN_BUS));
					if gen(i, MU_QMIN) > 1e-6
						fprintf(fd, '%8.3f', gen(i, MU_QMIN));
					else
						fprintf(fd, '     -  ');
					end
					if gen(i, QG)
						fprintf(fd, '%10.2f%10.2f%10.2f', gen(i, [QMIN, QG, QMAX]));
					else
						fprintf(fd, '%10.2f       -  %10.2f', gen(i, [QMIN, QMAX]));
					end
					if gen(i, MU_QMAX) > 1e-6
						fprintf(fd, '%9.3f', gen(i, MU_QMAX));
					else
						fprintf(fd, '      -  ');
					end
				end
			end
			fprintf(fd, '\n');
		end
			
		%% line flow constraints
		if OUT_LINE_LIM == 2 | (OUT_LINE_LIM == 1 & ...
							 (any(branch(:, MU_SF) > 1e-6) | any(branch(:, MU_ST) > 1e-6)))
			fprintf(fd, '\n================================================================================');
			fprintf(fd, '\n|     Line Flow Constraints                                                    |');
			fprintf(fd, '\n================================================================================');
			fprintf(fd, '\n From     "From" End        Limit       "To" End        To');
			fprintf(fd, '\n Bus   |Sf| mu    |Sf|     |Smax|     |St|    |St| mu   Bus');
			fprintf(fd, '\n-----  -------  --------  --------  --------  -------  -----');
			for i = 1:nl
				if OUT_LINE_LIM == 2 | (OUT_LINE_LIM == 1 & ...
							 (branch(i, MU_SF) > 1e-6 | branch(i, MU_ST) > 1e-6))
					fprintf(fd, '\n%4d', branch(i, F_BUS));
					if branch(i, MU_SF) > 1e-6
						fprintf(fd, '%10.3f', branch(i, MU_SF));
					else
						fprintf(fd, '      -   ');
					end
					fprintf(fd, '%9.2f%10.2f%10.2f', ...
						[abs(branch(i, PF) + j * branch(i, QF)), ...
						branch(i, RATE_A), abs(branch(i, PT) + j * branch(i, QT))]);
					if branch(i, MU_ST) > 1e-6
						fprintf(fd, '%10.3f', branch(i, MU_ST));
					else
						fprintf(fd, '      -   ');
					end
					fprintf(fd, '%6d', branch(i, T_BUS));
				end
			end
			fprintf(fd, '\n');
		end
	end

	%% print raw data for Perl database interface
	if OUT_RAW
		fprintf(fd, '----------  raw PB::Soln data below  ----------\n');
		fprintf(fd, 'bus\n');
		if isOPF
			fprintf(fd, '%d\t%d\t%g\t%g\t%g\t%g\t%g\t%g\n', ...
						bus(:, [BUS_I, BUS_TYPE, VM, VA, LAM_P, LAM_Q, MU_VMAX, MU_VMIN])');
		
			fprintf(fd, 'branch\n');
			fprintf(fd, '%d\t%g\t%g\t%g\t%g\t%g\t%g\n', ...
						[[1:nl]' branch(:, [PF, QF, PT, QT, MU_SF, MU_ST])]');
		
			fprintf(fd, 'gen\n');
			fprintf(fd, '%d\t%g\t%g\t%g\t%d\t%g\t%g\t%g\t%g\n', ...
						[[1:ng]' gen(:, [PG, QG, VG, GEN_STATUS, MU_PMAX, MU_PMIN, MU_QMAX, MU_QMIN])]');
		else
			fprintf(fd, '%d\t%d\t%f\t%f\t%d\t%d\t%d\t%d\n', ...
						[bus(:, [BUS_I, BUS_TYPE, VM, VA]) zeros(nb, 4)]');
		
			fprintf(fd, 'branch\n');
			fprintf(fd, '%d\t%f\t%f\t%f\t%f\t%d\t%d\n', ...
						[[1:nl]' branch(:, [PF, QF, PT, QT]) zeros(nl, 2)]');
		
			fprintf(fd, 'gen\n');
			fprintf(fd, '%d\t%f\t%f\t%f\t%d\t%d\t%d\t%d\t%d\n', ...
						[[1:ng]' gen(:, [PG, QG, VG, GEN_STATUS]) zeros(ng, 4)]');
		end
		fprintf(fd, 'end\n');
		fprintf(fd, '----------  raw PB::Soln data above  ----------\n');
	end
else
	%% convergence & elapsed time
	if OUT_SYS_SUM == 1 | OUT_RAW
		fprintf(fd, '\nDid not converge (%.2f seconds)\n', et);
	end
end

return;

⌨️ 快捷键说明

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