亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? opf.m

?? 比較經典的matlab的電力系統潮流計算程序
?? M
字號:
function [bus, gen, branch, f, success, et] = opf(baseMVA, bus, gen, gencost, ...
					branch, Ybus, Yf, Yt, ref, pv, pq, mpopt)
%OPF  Solves an optimal power flow.
%   [bus, gen, branch, f, success, et] = opf(baseMVA, bus, gen, gencost, ...
%                   branch, Ybus, Yf, Yt, ref, pv, pq, mpopt)
%   Assumes that Ybus, Yf, Yt, V, ref, pv, pq are consistent with
%   (or override) data in bus, gen, branch.

%   MATPOWER Version 2.0
%   by Ray Zimmerman & David Gan, PSERC Cornell    12/24/97
%   Copyright (c) 1996, 1997 by Power System Engineering Research Center (PSERC)
%   See http://www.pserc.cornell.edu/ for more info.

%%----- initialization -----
%% default arguments
if nargin < 12
	mpopt = mpoption;		%% use default options
end

%% options
verbose	= mpopt(31);
npts = mpopt(14);		%% number of points to evaluate when converting
						%% polynomials to piece-wise linear

%% define constants
j = sqrt(-1);

%% define named indices into data matrices
[PQ, PV, REF, NONE, BUS_I, BUS_TYPE, PD, QD, GS, BS, BUS_AREA, VM, ...
	VA, BASE_KV, ZONE, VMAX, VMIN, LAM_P, LAM_Q, MU_VMAX, MU_VMIN] = idx_bus;
[GEN_BUS, PG, QG, QMAX, QMIN, VG, MBASE, ...
	GEN_STATUS, PMAX, PMIN, MU_PMAX, MU_PMIN, MU_QMAX, MU_QMIN] = idx_gen;
[PW_LINEAR, POLYNOMIAL, MODEL, STARTUP, SHUTDOWN, N, COST] = idx_cost;

%%-----  check/convert costs, set default algorithm  -----
%% get cost model, check consistency
model = gencost(:, MODEL);
i_pwln = find(model == PW_LINEAR);
i_poly = find(model == POLYNOMIAL);
if any(i_pwln) & any(i_poly) & verbose
	fprintf('not all generators use same cost model, all will be converted to piece-wise linear\n');
end

%% set algorithm
if mpopt(11) == 0
	%% use default for this cost model
	if find(model ~= PW_LINEAR & model ~= POLYNOMIAL)
		error('unknown generator cost model');
	elseif any(i_pwln)		%% some piece-wise linear, use appropriate alg
		mpopt(11) = mpopt(13);
	else					%% must all be polynomial
		mpopt(11) = mpopt(12);
	end
end
alg = mpopt(11);
formulation = opf_form(alg);

%% move Pmin and Pmax limits out slightly to avoid problems
%% caused by rounding errors when corner point of cost
%% function lies at exactly Pmin or Pmax
if any(i_pwln)
	ng = size(gen, 1);
	gen(:, PMIN) = gen(:, PMIN) - 1e-6 * ones(ng, 1);
	gen(:, PMAX) = gen(:, PMAX) + 1e-6 * ones(ng, 1);
end

%% check cost model/algorithm consistency
if any( i_pwln ) & formulation == 1
	error(sprintf('algorithm %d does not handle piece-wise linear cost functions', alg));
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	%%	Eventually put code here to fit polynomials to piece-wise linear as needed.
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
%% convert polynomials to piece-wise linear
if any(i_poly)  & formulation == 2
	if verbose
		fprintf('converting from polynomial to piece-wise linear cost model\n');
	end
	[pcost, qcost] = pqcost(gencost, size(gen, 1));
	i_poly = find(pcost(:, MODEL) == POLYNOMIAL);
	pcost = poly2pwl(pcost(i_poly, :), gen(i_poly, PMIN), gen(i_poly, PMAX), npts);
	if ~isempty(qcost)
		i_poly = find(qcost(:, MODEL) == POLYNOMIAL);
		qcost = poly2pwl(qcost(i_poly, :), gen(i_poly, QMIN), gen(i_poly, QMAX), npts);
	end
	gencost = [pcost; qcost];
end

%%-----  run opf  -----
%% start timer
t0 = clock;

%% sizes of things
nb = size(bus, 1);
nl = size(branch, 1);
npv	= length(pv);
npq	= length(pq);
ng = npv + 1;			%% number of generators that are turned on

%% initial state
on = find(gen(:, GEN_STATUS));				%% which generators are on?
V	= bus(:, VM) .* exp(sqrt(-1) * pi/180 * bus(:, VA));
V(gen(on, GEN_BUS)) = gen(on, VG) ./ abs(V(gen(on, GEN_BUS))).* V(gen(on, GEN_BUS));
Pg	= gen(on, PG) / baseMVA;
Qg	= gen(on, QG) / baseMVA;

%% check for costs for Qg
[pcost, qcost] = pqcost(gencost, size(gen, 1), on);

%% set up indexing for x
j1 = 1;			j2	= npv;				%% j1:j2	- V angle of pv buses
j3 = j2 + 1;	j4	= j2 + npq;			%% j3:j4	- V angle of pq buses
j5 = j4 + 1;	j6	= j4 + nb;			%% j5:j6	- V mag of all buses
j7 = j6 + 1;	j8	= j6 + npv + 1;		%% j7:j8	- P of generators
j9 = j8 + 1;	j10	= j8 + npv + 1;		%% j9:j10	- Q of generators
% j11 = j10 + 1;	j12	= j10 + npv + 1;	%% j11:j12	- Cp, cost of Pg
% j13 = j12 + 1;	j14	= j12 + npv + 1;	%% j13:j14	- Cq, cost of Qg

%% set up x
if formulation == 1
	Cp = [];
	Cq = [];
else
	Cp = totcost(pcost, Pg * baseMVA);
	Cq = totcost(qcost, Qg * baseMVA);	%% empty if qcost is empty
end
x = [angle(V([pv; pq])); abs(V); Pg; Qg; Cp; Cq];

%% run constrained optimization
[fun, grad]	= fg_names(alg);
mpopt(15)	= 2 * nb;				%% set number of equality constraints

if opf_slvr(alg) == 0			%% use CONSTR
	%% set some options
	if mpopt(19) == 0
		mpopt(19) = 2 * nb + 150;	%% set max number of iterations for constr
	end

	%% set up options for Optim Tbx's constr
	otopt = foptions;				%% get default options for constr
	otopt(1) = (verbose > 0);		%% set verbose flag appropriately
	% otopt(9) = 1;					%% check user supplied gradients?
	otopt(13) = mpopt(15);			%% number of equality constraints
	otopt(14) = mpopt(19);			%% maximum number of iterations
	
	%% run optimization
	[x, otopt, lambda] = constr(fun, x, otopt, [], [], grad, ...
						baseMVA, bus, gen, gencost, branch, Ybus, Yf, Yt, V, ref, pv, pq, mpopt);
	
	%% get final objective function value & constraint values
	[f, g] = feval(fun, x, baseMVA, bus, gen, gencost, branch, Ybus, Yf, Yt, V, ref, pv, pq, mpopt);
	
	%% check for convergence
	if otopt(10) >= otopt(14)	| max(abs(g(1:otopt(13))))			> otopt(4) ...
								| max(g((otopt(13)+1):length(g)))	> otopt(4)
		success = 0;				%% did NOT converge
	else
		success = 1;				%% DID converge
	end
else							%% use LPCONSTR
	%% run load flow to get starting point
	[x, success_lf] = LPeqslvr(x, baseMVA, bus, gen, gencost, branch, Ybus, Yf, Yt, V, ref, pv, pq, mpopt);
	if success_lf ~= 1
		error('Sorry, cannot find a starting point using power flow, please check data!'); 
	end
	
	%% set step size
	cstep = 0;
	if ~isempty(Cp)
		cstep = max(abs(Cp));
		if cstep < 1.0e6, cstep = 1.0e6; end
	end
	step0=[2*ones(nb-1,1);					%% starting stepsize for Vangle
			ones(nb,1);						%% Vmag
			0.6*ones(ng,1);					%% Pg
			0.3*ones(ng,1);					%% Qg
			cstep*ones(length(Cp),1);		%% Cp
			cstep*ones(length(Cq),1)];		%% Cq
	idx_xi = [];

	%% run optimization
	[x, lambda, success] = LPconstr(fun, x, idx_xi, mpopt, step0, [], [], grad, 'LPeqslvr', ...
						baseMVA, bus, gen, gencost, branch, Ybus, Yf, Yt, V, ref, pv, pq, mpopt);

	%% get final objective function value & constraint values
	f = feval(fun, x, baseMVA, bus, gen, gencost, branch, Ybus, Yf, Yt, V, ref, pv, pq, mpopt);
end

%%-----  calculate return values  -----
%% reconstruct V
Va = zeros(nb, 1);
Va([ref; pv; pq]) = [angle(V(ref)); x(j1:j2); x(j3:j4)];
Vm = x(j5:j6);
V = Vm .* exp(j * Va);

%% grab Pg & Qg
Sg = x(j7:j8) + j * x(j9:j10);		%% complex power generation in p.u.

%% update bus, gen, branch with solution info
[bus, gen, branch] = opfsoln(baseMVA, bus, gen, branch, ...
						Ybus, Yf, Yt, V, Sg, lambda, ref, pv, pq, mpopt);

%% compute elapsed time
et = etime(clock, t0);

return;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文子幕无线码一区tr| 国产精品一区二区久久不卡| 蓝色福利精品导航| 99精品视频一区| 久久亚洲一区二区三区四区| 亚洲综合视频网| 成人免费观看av| 久久精品夜色噜噜亚洲aⅴ| 亚洲成人自拍偷拍| 91麻豆成人久久精品二区三区| 欧美大胆人体bbbb| 亚洲高清免费视频| 92国产精品观看| 国产精品污网站| 国产剧情av麻豆香蕉精品| 日韩一区二区免费在线观看| 亚洲综合色成人| 色猫猫国产区一区二在线视频| 久久久久青草大香线综合精品| 日韩av午夜在线观看| 欧美日韩精品福利| 亚洲第一二三四区| 色婷婷狠狠综合| 亚洲男人电影天堂| 色天使色偷偷av一区二区| 国产精品福利av| 成人97人人超碰人人99| 国产精品萝li| 92精品国产成人观看免费| 国产精品国产三级国产有无不卡| 国产精品 欧美精品| 久久亚洲捆绑美女| 国产成人午夜片在线观看高清观看 | 免费精品视频在线| 欧美精品vⅰdeose4hd| 偷窥少妇高潮呻吟av久久免费| 色婷婷av一区二区三区大白胸| 成人欧美一区二区三区白人| 99精品久久久久久| 一区二区三区**美女毛片| 欧日韩精品视频| 日本不卡在线视频| 欧美大胆人体bbbb| 成人性生交大合| 亚洲美女在线国产| 欧美日韩黄色影视| 韩国一区二区视频| 中文乱码免费一区二区| 91黄视频在线观看| 蜜桃久久久久久| 国产精品毛片高清在线完整版 | 久久久久久久久久看片| 国产福利一区二区三区在线视频| 国产日韩精品一区二区三区 | 国产精品一区专区| 国产欧美1区2区3区| 99久久99久久免费精品蜜臀| 一区二区三区在线影院| 91精品国产综合久久香蕉的特点| 麻豆成人免费电影| 中文字幕一区在线观看视频| 欧美性生活一区| 国产一区三区三区| 亚洲精品日韩一| 91精品国产综合久久久久| 国产精一区二区三区| 亚洲黄色av一区| 337p粉嫩大胆噜噜噜噜噜91av| aaa欧美色吧激情视频| 日韩成人一区二区三区在线观看| 欧美激情资源网| 欧美日韩一区二区三区四区五区| 国产一区二区三区高清播放| 亚洲综合视频在线观看| 2021久久国产精品不只是精品| 色网综合在线观看| 激情成人午夜视频| 亚洲成av人片在线| 中文字幕中文字幕中文字幕亚洲无线| 欧美精品18+| 91麻豆免费看片| 一本一本大道香蕉久在线精品| 视频一区视频二区在线观看| 国产精品区一区二区三区| 欧美人牲a欧美精品| 成人国产电影网| 精品无码三级在线观看视频| 亚洲一区二区在线观看视频 | 大胆亚洲人体视频| 久久99精品久久久久久久久久久久 | 亚洲国产一区二区三区青草影视| 久久日韩精品一区二区五区| 884aa四虎影成人精品一区| 波多野结衣欧美| 国产精品一二三区| 韩国在线一区二区| 日本中文字幕一区二区视频| 一区二区成人在线观看| 国产精品久久夜| 国产日韩欧美在线一区| 久久夜色精品国产噜噜av| 欧美成人一区二区三区在线观看 | 久久理论电影网| 91精品国产色综合久久不卡蜜臀| 欧美午夜不卡视频| 91日韩一区二区三区| 成人精品小蝌蚪| 豆国产96在线|亚洲| 国产高清视频一区| 粉嫩绯色av一区二区在线观看| 激情六月婷婷久久| 国产一区二区毛片| 国产精品白丝jk黑袜喷水| 国内成人精品2018免费看| 狠狠久久亚洲欧美| 国产一区中文字幕| 国产自产视频一区二区三区 | 国产成人精品影院| 国产精品一二三区| 成人精品视频网站| 99re在线视频这里只有精品| 91在线观看视频| 色婷婷综合久久久久中文一区二区| 91丨porny丨蝌蚪视频| 色播五月激情综合网| 精品视频在线看| 日韩一级大片在线| 欧美xxx久久| 国产精品欧美综合在线| 中文字幕日韩欧美一区二区三区| 最新不卡av在线| 亚洲国产精品嫩草影院| 久久国内精品自在自线400部| 麻豆久久久久久久| 成人在线视频一区| 色吊一区二区三区| 日韩视频一区二区三区| 国产亲近乱来精品视频| 自拍偷拍亚洲激情| 日韩成人dvd| 风间由美一区二区av101 | 国产成人av电影免费在线观看| 国产成人啪免费观看软件| 91在线免费播放| 日韩一区二区免费在线观看| 国产欧美日韩视频在线观看| 一区二区三区四区在线播放 | 福利一区福利二区| 欧美色手机在线观看| 精品日韩av一区二区| 日韩理论电影院| 美女视频一区在线观看| 丁香婷婷综合激情五月色| 欧美影院一区二区三区| 精品国产一区二区三区四区四| 国产精品久久久久久久久图文区 | 制服丝袜激情欧洲亚洲| 欧美国产日韩在线观看| 亚洲国产欧美在线| 成人综合在线视频| 日韩欧美中文一区| 亚洲一区二区三区影院| 国产精品一区2区| 91精品国产免费久久综合| 国产精品久久午夜夜伦鲁鲁| 免费观看30秒视频久久| 在线亚洲一区二区| 久久久国产精品麻豆| 日本成人超碰在线观看| 欧美中文字幕一二三区视频| 国产欧美日韩在线| 久久国产综合精品| 91视频国产观看| 国产午夜精品一区二区三区四区| 五月天国产精品| 91猫先生在线| 中文字幕日韩欧美一区二区三区| 精品亚洲porn| 欧美一区二区三区思思人| 亚洲激情中文1区| 97久久精品人人做人人爽| 久久亚洲精品小早川怜子| 蜜桃精品视频在线观看| 欧美日韩在线免费视频| 中文一区二区完整视频在线观看| 久久精品av麻豆的观看方式| 欧美精品国产精品| 午夜视频久久久久久| 欧美专区亚洲专区| 亚洲欧美日本在线| 色8久久精品久久久久久蜜| 中文字幕在线不卡一区二区三区| 丁香另类激情小说| 国产网站一区二区三区| 国产剧情一区二区| 国产女主播在线一区二区| 国产成人av在线影院| 国产欧美精品一区二区色综合 | 中国色在线观看另类| 国产乱码精品一区二区三区av|