ncp_sigmoid/Sigmoid函数法/readData.m

74 lines
4.6 KiB
Mathematica
Raw Normal View History

function [nodeNum,lineNum,capacity,kmax,centrPara,accuracy,opfGoal,balNum,balNode,mtrLine,mtrGround,mtrTrans,runPara,Pg,Qg,Pd,Qd,pvNum,pvNode,pvV,...
pvQmin,pvQmax,pgNumall,pgNodeall,pgNum,pgNode,a,b,c,Pmin,Pmax,capNum,capI,capGi,capBi,capK,capKmin,capKmax,Vmax,Vmin]=readData(filename)
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
%<EFBFBD><EFBFBD>дʱ<EFBFBD>2010<EFBFBD><EFBFBD>10<EFBFBD><EFBFBD>
%% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
data=dlmread(filename);
%% <EFBFBD><EFBFBD>ȡϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nodeNum=data(1,1); %ϵͳ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>
lineNum=data(1,2); %<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
capacity=data(1,3); %<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
kmax=data(1,4); %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
centrPara=data(1,5); %<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>
accuracy=data(2,1); %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
opfGoal=data(2,2); %Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
balNum=data(3,1); %ƽ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>
balNode=data(3,2); %ƽ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
%% <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>Ϊ0<EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
zeroIndex=find(data(:,1)==0);
%% <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mtrLine=data(zeroIndex(1)+1:zeroIndex(2)-1,:);
%% <EFBFBD><EFBFBD>ȡ<EFBFBD>ӵ<EFBFBD>֧·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mtrGround=data(zeroIndex(2)+1:zeroIndex(3)-1,:);
%% <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>֧·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mtrTrans=data(zeroIndex(3)+1:zeroIndex(4)-1,:);
%% <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD>
runPara=data(zeroIndex(4)+1:zeroIndex(5)-1,:);
pqNode=runPara(:,1);
Pg=sparse(nodeNum,1);
Qg=Pg;Pd=Pg;Qd=Pg;
Pg(pqNode)=runPara(:,2)/capacity; %<EFBFBD>ڵ<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Qg(pqNode)=runPara(:,3)/capacity; %<EFBFBD>ڵ<EFBFBD><EFBFBD>޹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Pd(pqNode)=runPara(:,4)/capacity; %<EFBFBD>ڵ<EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Qd(pqNode)=runPara(:,5)/capacity; %<EFBFBD>ڵ<EFBFBD><EFBFBD>޹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
%% <EFBFBD><EFBFBD>ȡPV<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mtrPV=data(zeroIndex(5)+1:zeroIndex(6)-1,:);
pvNum=zeroIndex(6)-zeroIndex(5)-1;
pvNode=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,1),nodeNum,1);
pvNode=find(pvNode); %PV<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pvV=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,2),nodeNum,1); %PV<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ
pvQmin=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,3),nodeNum,1)/capacity; %<EFBFBD>޹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pvQmax=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,4),nodeNum,1)/capacity; %<EFBFBD>޹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
%% <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD>
economyPara=data(zeroIndex(6)+1:zeroIndex(7)-1,:);
[ecoRow,ecoCol]=size(economyPara);
if ecoCol>=7
pgctrl=find(economyPara(:,7)); %<EFBFBD>ɵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>
if isempty(pgctrl)
pgctrl=1:ecoRow;
end
else
pgctrl=1:ecoRow;
end
pgNumall=zeroIndex(7)-zeroIndex(6)-1; %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD>
pgNodeall=economyPara(:,1); %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>
pgNum=length(pgctrl); %<EFBFBD>ɵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><EFBFBD>
pgNode=pgNodeall(pgctrl); %<EFBFBD>ɵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>
c=sparse(economyPara(:,1),ones(pgNumall,1),economyPara(:,2),nodeNum,1);
b=sparse(economyPara(:,1),ones(pgNumall,1),economyPara(:,3),nodeNum,1);
a=sparse(economyPara(:,1),ones(pgNumall,1),economyPara(:,4),nodeNum,1);
Pmin=sparse(economyPara(:,1),ones(pgNumall,1),economyPara(:,5),nodeNum,1)/capacity;%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Pmax=sparse(economyPara(:,1),ones(pgNumall,1),economyPara(:,6),nodeNum,1)/capacity;%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
%% <EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
capPara=data(zeroIndex(7)+1:zeroIndex(8)-1,:);
capNum=zeroIndex(8)-zeroIndex(7)-1;
capI=capPara(:,2); %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
capGi=capPara(:,3); %<EFBFBD>ɵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>
capBi=capPara(:,4); %<EFBFBD>ɵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
capK=capPara(:,5); %<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>λֵ
capKmin=capPara(:,6); %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>λ
capKmax=capPara(:,7); %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
Vmax=1.07*ones(nodeNum,1); %<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Vmin=0.9*ones(nodeNum,1); %<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>