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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dcopf.m

?? 最優(yōu)潮流計算應(yīng)用matlab程序計算最優(yōu)潮流問題。包括14節(jié)點等。
?? M
字號:
function [buso, geno, brancho, f, success, info, et] = dcopf(baseMVA, ...                   bus, gen, branch, areas, gencost, mpopt)%DCOPF  Solves a DC optimal power flow.%%   [bus, gen, branch, f, success] = dcopf(casefile, mpopt)%%   [bus, gen, branch, f, success] = dcopf(baseMVA, bus, gen, branch, areas, ...%                                    gencost, mpopt)%%   [bus, gen, branch, f, success, info, et] = dcopf(casefile)%%   The data for the problem can be specified in one of 3 ways: (1) the name of%   a case file which defines the data matrices baseMVA, bus, gen, branch,%   areas and gencost, (2) a struct containing the data matrices as fields, or%   (3) the data matrices themselves.%%   The optional mpopt vector specifies MATPOWER options. Type 'help mpoption'%   for details and default values.%%   The solved case is returned in the data matrices, bus, gen and branch. Also,%   returned are the final objective function value (f) and a flag which is%   true if the algorithm was successful in finding a solution (success).%   Additional optional return values are an algorithm specific return status%   (info), elapsed time in seconds (et).%   MATPOWER%   $Id: dcopf.m,v 1.11 2005/01/14 17:20:13 ray Exp $%   by Carlos E. Murillo-Sanchez, PSERC Cornell & Universidad Autonoma de Manizales%   and Ray Zimmerman, PSERC Cornell%   Copyright (c) 1996-2005 by Power System Engineering Research Center (PSERC)%   See http://www.pserc.cornell.edu/matpower/ for more info.%%----- initialization -----%% Sort argumentsif isstr(baseMVA) | isstruct(baseMVA)  casefile = baseMVA;  if nargin == 1    mpopt = mpoption;  elseif nargin == 2    mpopt = bus;  else    error('dcopf.m: Incorrect input parameter order, number or type');  end  [baseMVA, bus, gen, branch, areas, gencost] = loadcase(casefile);else  if nargin == 6    mpopt = mpoption;  elseif nargin ~= 7    error('dcopf.m: Incorrect input parameter order, number or type');  endend%% optionsmpopt(10) = 1;  % force DC treatmentverbose = mpopt(31);npts = mpopt(14);       %% number of points to evaluate when converting                        %% polynomials to piece-wise linear%% define constantsj = 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;[F_BUS, T_BUS, BR_R, BR_X, BR_B, RATE_A, RATE_B, ...    RATE_C, TAP, SHIFT, BR_STATUS, PF, QF, PT, QT, MU_SF, MU_ST] = idx_brch;[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;% If tables do not have multiplier/extra columns, append zero colsif size(bus,2) < MU_VMIN  bus = [bus zeros(size(bus,1),MU_VMIN-size(bus,2)) ];endif size(gen,2) < MU_QMIN  gen = [ gen zeros(size(gen,1),MU_QMIN-size(gen,2)) ];endif size(branch,2) < MU_ST  branch = [ branch zeros(size(branch,1),MU_ST-size(branch,2)) ];end% Filter out inactive generators and branches; save original bus & branchcomgen = find(gen(:,GEN_STATUS) > 0);offgen = find(gen(:,GEN_STATUS) <= 0);onbranch  = find(branch(:,BR_STATUS) ~= 0);offbranch = find(branch(:,BR_STATUS) == 0);genorg = gen;branchorg = branch;ng = size(gen,1);         % original size(gen), at least temporallygen   = gen(comgen, :);branch = branch(onbranch, :);if size(gencost,1) == ng  gencost = gencost(comgen, :);else  gencost = gencost( [comgen; comgen+ng], :);end% Renumber buses consecutively[i2e, bus, gen, branch, areas] = ext2int(bus, gen, branch, areas);%% get bus index lists of each type of bus[ref, pv, pq] = bustypes(bus, gen);%% build B matrices and phase shift injections[B, Bf, Pbusinj, Pfinj] = makeBdc(baseMVA, bus, branch);%%-----  check/convert costs, set default algorithm  -----%% get cost model, check consistencymodel = 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');endif any(i_pwln) | any(find(gencost(:, N) > 3))    formulation = 2;    %% use piecewise linear formulationelse    formulation = 1;    %% use polynomial cost formulation    if any(find(gencost(:, N) ~= 3))        error('DC opf with polynomial costs can only handle quadratic costs.');    endend%% convert polynomials to piece-wise linear (if necessary)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);    tmp = poly2pwl(pcost(i_poly, :), gen(i_poly, PMIN), gen(i_poly, PMAX), npts);    pcost(i_poly, 1:size(tmp,2)) = tmp;    if ~isempty(qcost)        i_poly = find(qcost(:, MODEL) == POLYNOMIAL);        tmp = poly2pwl(qcost(i_poly, :), gen(i_poly, QMIN), gen(i_poly, QMAX), npts);        qcost(i_poly, 1:size(tmp,2)) = tmp;    end    gencost = [pcost; qcost];end%%-----  run opf  -----%% start timert0 = clock;%% gen infoon = find(gen(:, GEN_STATUS) > 0);      %% which generators are on?gbus = gen(on, GEN_BUS);                %% what buses are they at?%% sizes of thingsnb = size(bus, 1);nl = size(branch, 1);ng = length(on);                        %% number of generators that are turned on%% initial stateVa  = bus(:, VA) * (pi/180);Pg  = gen(on, PG) / baseMVA;%% check for costs for Qg[pcost, qcost] = pqcost(gencost, size(gen, 1), on);%% set up x along with indexingj1 = 1;         j2  = nb;               %% j1:j2    - bus V anglesj3 = j2 + 1;    j4  = j2 + ng;          %% j3:j4    - P of generatorsj5 = j4 + 1;    j6  = j4 + ng;          %% j5:j6    - Cp, cost of Pgif formulation == 2             %% piece-wise linear costs    Cp = totcost(pcost, Pg * baseMVA);else                            %% polynomial costs    Cp = [];endnc = length(Cp);                        %% number of cost variables (ng or 0)x = [Va; Pg; Cp];%% set up constraints and indexing where,   AA * x <= bb% i0 = 1;                           %% 1 - voltage angle referencei1 = 2;         i2 = nb + 1;        %% i1:i2 - P mismatch, all busesi3 = i2 + 1;    i4 = i2 + ng;       %% i3:i4 - Pmin, gen busesi5 = i4 + 1;    i6 = i4 + ng;       %% i5:i6 - Pmax, gen busesi7 = i6 + 1;    i8 = i6 + nl;       %% i7:i8 - |Pf| line limiti9 = i8 + 1;    i10 = i8 + nl;      %% i9:i10 - |Pt| line limitif formulation == 2             %% piece-wise linear costs    %% compute cost constraints [ Cp >= m * Pg + b ] => [ m * Pg - Cp <= -b ]    nsegs = pcost(:, N) - 1;            %% number of cost constraints for each gen    ncc = sum(nsegs);                   %% total number of cost constraints    Acc = sparse(ncc, nb+ng+nc);    bcc = zeros(ncc, 1);    for i = 1:ng        xx = pcost(i,       COST:2:( COST + 2*(nsegs(i))    ))';        yy = pcost(i,   (COST+1):2:( COST + 2*(nsegs(i)) + 1))';        k1 = 1:nsegs(i);        k2 = 2:(nsegs(i) + 1);        m = (yy(k2) - yy(k1)) ./ (xx(k2) - xx(k1));        b = yy(k1) - m .* xx(k1);        Acc(sum(nsegs(1:(i-1))) + [1:nsegs(i)], nb+i)       = m * baseMVA;        Acc(sum(nsegs(1:(i-1))) + [1:nsegs(i)], nb+ng+i)    = -ones(nsegs(i), 1);        bcc(sum(nsegs(1:(i-1))) + [1:nsegs(i)])             = -b;    endelse                            %% polynomial costs    Acc = sparse(0, nb+ng+nc);    bcc = zeros(0, 1);endAA = [        sparse(1, ref, 1, 1, nb+ng+nc);                     %% reference angle        B,  -sparse(gen(on, GEN_BUS), 1:ng, ones(ng, 1), nb, ng), sparse(nb, nc);                                                            %% real power flow eqns        sparse(ng, nb), -speye(ng, ng), sparse(ng, nc);     %% lower limit on Pg        sparse(ng, nb), speye(ng, ng), sparse(ng, nc);      %% upper limit on Pg        Bf, sparse(nl, ng+nc);                              %% flow limit on Pf        -Bf, sparse(nl, ng+nc);                             %% flow limit on Pt        Acc;                                                %% cost constraints];bb = [        Va(ref);                                            %% reference angle        -(bus(:, PD) + bus(:, GS)) / baseMVA - Pbusinj;     %% real power flow eqns        -gen(on, PMIN) / baseMVA;                           %% lower limit on Pg        gen(on, PMAX) / baseMVA;                            %% upper limit on Pg        branch(:, RATE_A) / baseMVA - Pfinj;                %% flow limit on Pf        branch(:, RATE_A) / baseMVA + Pfinj;                %% flow limit on Pt        bcc;                                                %% cost constraints];%% set up objective function of the form:  0.5 * x'*H*x + c'*xif formulation == 2             %% piece-wise linear costs    H = sparse(nb+ng+nc, nb+ng+nc);    c = [   zeros(nb+ng, 1);              ones(nc, 1)     ];else                            %% polynomial costs    polycf = pcost(:, COST:COST+2) * diag([ baseMVA^2 baseMVA 1]);  %% coeffs for Pg in p.u.    H = sparse(j3:j4, j3:j4, 2*polycf(:, 1), nb+ng, nb+ng );    c = [   zeros(nb, 1);              polycf(:, 2)    ];end%% run QP solvermpopt(15)   = nb + 1;               %% set number of equality constraintsif verbose > 1                      %% print QP progress for verbose levels 2 & 3    qpverbose = 1;else    qpverbose = -1;endif ~have_fcn('sparse_qp') | mpopt(51) == 0 %% don't use sparse matrices    AA = full(AA);    H = full(H);end[x, lambda, how, success] = mp_qp(H, c, AA, bb, [], [], x, mpopt(15), qpverbose);info = success;%% update solution dataVa = x(j1:j2);Pg = x(j3:j4);f = sum(totcost(pcost, Pg * baseMVA));%%-----  calculate return values  -----%% update voltages & generator outputsbus(:, VM) = ones(nb, 1);bus(:, VA) = Va * 180 / pi;gen(on, PG) = Pg * baseMVA;%% compute flows etc.branch(:, [QF, QT]) = zeros(nl, 2);branch(:, PF) = (Bf * Va + Pfinj) * baseMVA;branch(:, PT) = -branch(:, PF);%% update lambda's and mu'sbus(:, [LAM_P, LAM_Q, MU_VMIN, MU_VMAX]) = zeros(nb, 4);gen(:, [MU_PMIN, MU_PMAX, MU_QMIN, MU_QMAX]) = zeros(size(gen, 1), 4);branch(:, [MU_SF, MU_ST]) = zeros(nl, 2);bus(:, LAM_P)       = lambda(i1:i2) / baseMVA;gen(on, MU_PMIN)    = lambda(i3:i4) / baseMVA;gen(on, MU_PMAX)    = lambda(i5:i6) / baseMVA;branch(:, MU_SF)    = lambda(i7:i8) / baseMVA;branch(:, MU_ST)    = lambda(i9:i10) / baseMVA;% convert to original external bus ordering[bus, gen, branch, areas] = int2ext(i2e, bus, gen, branch, areas);% Now create output matrices with all lines, all generators, committed and% non-committedgeno = genorg;brancho = branchorg;geno(comgen, : ) = gen;brancho(onbranch, :)  = branch;% And zero out appropriate fields of non-comitted generators and linestmp = zeros(length(offgen), 1);geno(offgen, PG) = tmp;geno(offgen, QG) = tmp;geno(offgen, MU_PMAX) = tmp;geno(offgen, MU_PMIN) = tmp;tmp = zeros(length(offbranch), 1);brancho(offbranch, PF) = tmp;brancho(offbranch, QF) = tmp;brancho(offbranch, PT) = tmp;brancho(offbranch, QT) = tmp;brancho(offbranch, MU_SF) = tmp;brancho(offbranch, MU_ST) = tmp;%% compute elapsed timeet = etime(clock, t0);if (nargout == 0) & (info > 0)  printpf(baseMVA, bus, geno, brancho, f, success, et, 1, mpopt);endif nargout, buso = bus; endreturn;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线电影国产精品| 老司机精品视频一区二区三区| 亚洲乱码精品一二三四区日韩在线| 亚洲激情av在线| 午夜精品久久久久| 国产美女精品人人做人人爽| av欧美精品.com| 91精品国产综合久久久久久久| 精品国产精品网麻豆系列| 中文字幕av一区 二区| 一区二区三区日韩| 精品制服美女丁香| 99久久国产免费看| 欧美一级二级三级蜜桃| 国产精品美女久久久久aⅴ | 蜜臀av一级做a爰片久久| 国产精品乡下勾搭老头1| 欧美伊人久久久久久午夜久久久久| 日韩精品一区二区三区老鸭窝| 国产精品无码永久免费888| 亚洲动漫第一页| 国产精品夜夜爽| 欧美日韩综合一区| 国产欧美一区二区三区鸳鸯浴 | 成人夜色视频网站在线观看| 91精彩视频在线观看| 精品久久久久一区二区国产| 一区二区三区在线播| 韩国成人福利片在线播放| 91久久精品网| 国产三级久久久| 香蕉加勒比综合久久| 不卡一区在线观看| 日韩美女一区二区三区四区| 夜夜嗨av一区二区三区中文字幕 | 久久久久国色av免费看影院| 午夜精品123| 99re8在线精品视频免费播放| 日韩欧美一区在线| 亚洲一区二区三区精品在线| 成人激情电影免费在线观看| 日韩欧美国产精品| 亚洲一区二区三区中文字幕在线| 国产激情视频一区二区在线观看| 制服丝袜av成人在线看| 亚洲精品欧美激情| 成人av资源站| 国产日韩精品一区二区三区| 另类小说视频一区二区| 欧美日韩精品一区二区| 亚洲人成影院在线观看| 国产精品亚洲一区二区三区妖精| 日韩免费看的电影| 天堂午夜影视日韩欧美一区二区| 91视频xxxx| 国产精品久久久久久久久晋中| 理论片日本一区| 日韩欧美黄色影院| 日韩电影一区二区三区四区| 欧美私人免费视频| 夜夜嗨av一区二区三区四季av| 成人黄色电影在线| 国产婷婷精品av在线| 精品一区二区三区视频| 日韩女优视频免费观看| 日韩福利视频网| 欧美军同video69gay| 香蕉影视欧美成人| 91超碰这里只有精品国产| 亚洲自拍偷拍图区| 欧美亚洲国产一区二区三区 | 欧美日韩一区在线观看| 亚洲乱码国产乱码精品精小说 | 国产欧美在线观看一区| 国产一区二区三区在线观看免费视频| 91精品国产色综合久久ai换脸| 午夜精品视频一区| 在线播放亚洲一区| 日韩中文字幕不卡| 日韩欧美一区中文| 精品在线观看视频| 国产日韩av一区| 成人性生交大片免费看视频在线 | 亚洲国产欧美在线| 欧美日韩精品一区视频| 日韩精品一级中文字幕精品视频免费观看 | 国产一区久久久| 精品国产91洋老外米糕| 韩国三级中文字幕hd久久精品| 久久―日本道色综合久久| 国产精品一区2区| 国产女人aaa级久久久级| www.日本不卡| 亚洲小少妇裸体bbw| 欧美高清性hdvideosex| 美女国产一区二区| 久久视频一区二区| 成人av动漫在线| 一区二区三区精品在线| 欧美日韩国产一二三| 日韩电影在线一区二区三区| 久久综合一区二区| eeuss影院一区二区三区 | 欧美视频一区二区三区四区| 日韩高清在线观看| 久久久久久久久久美女| 99re成人精品视频| 日韩精品91亚洲二区在线观看 | 麻豆久久一区二区| 中文一区在线播放| 在线视频欧美区| 毛片基地黄久久久久久天堂| 久久久久久久免费视频了| 成人黄色大片在线观看| 婷婷国产在线综合| 国产三级一区二区三区| 在线观看日韩国产| 国产在线视频一区二区三区| 17c精品麻豆一区二区免费| 欧美日韩国产综合一区二区三区| 精品一区二区三区久久久| 国产精品久久777777| 欧美一区二区三区视频在线| 成人在线视频首页| 视频在线观看一区二区三区| 国产欧美一区二区精品性色| 在线看日韩精品电影| 国产在线日韩欧美| 一区二区欧美精品| 国产午夜一区二区三区| 欧美巨大另类极品videosbest | 97精品久久久午夜一区二区三区| 日韩不卡手机在线v区| 亚洲欧洲av在线| 欧美大片日本大片免费观看| 91视频.com| 国产美女在线精品| 日韩精品国产精品| 亚洲免费观看高清完整 | 粉嫩嫩av羞羞动漫久久久| 亚洲va天堂va国产va久| 日本一区二区成人| 91精品国产欧美日韩| 99国产精品久久久| 国内成+人亚洲+欧美+综合在线| 亚洲精品久久久久久国产精华液| 欧美精品一区二区三区一线天视频 | 97久久精品人人爽人人爽蜜臀| 裸体健美xxxx欧美裸体表演| 亚洲精品成a人| 中文字幕乱码久久午夜不卡| 日韩精品一区二区三区在线观看| 一本大道综合伊人精品热热| 国产精品一区二区久激情瑜伽| 天天综合网 天天综合色| 日韩一区在线免费观看| 久久精品一区二区三区四区| 日韩欧美一区在线| 欧美疯狂性受xxxxx喷水图片| 91在线porny国产在线看| 国产一区二区三区高清播放| 日本不卡中文字幕| 亚洲一二三四区不卡| 亚洲欧美综合色| 亚洲国产电影在线观看| 精品国产乱码久久久久久图片| 欧美日韩小视频| 欧美午夜不卡视频| 91热门视频在线观看| 成人avav影音| 国产超碰在线一区| 国产精品夜夜嗨| 国产成人免费视频网站高清观看视频| 久久99久国产精品黄毛片色诱| 日韩精品国产精品| 天天影视色香欲综合网老头| 亚洲摸摸操操av| 亚洲激情在线播放| 一区二区三区免费观看| 亚洲综合久久av| 亚洲尤物视频在线| 亚洲国产毛片aaaaa无费看| 亚洲精品欧美专区| 亚洲综合男人的天堂| 亚洲午夜精品网| 午夜精品一区二区三区免费视频 | 91 com成人网| 欧美一区二区日韩一区二区| 91精品国产综合久久婷婷香蕉| 在线播放一区二区三区| 日韩欧美一级二级三级久久久| 欧美大白屁股肥臀xxxxxx| 日韩欧美国产麻豆| 久久精子c满五个校花| 久久欧美一区二区| 国产精品伦一区| 亚洲你懂的在线视频| 亚洲五码中文字幕| 日日夜夜免费精品视频| 蜜桃一区二区三区在线观看|