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) %程序功能:读取数据 %编写时间:2010年10月 %% 将数据整块读入 data=dlmread(filename); %% 读取系统参数 nodeNum=data(1,1); %系统节点数 lineNum=data(1,2); %线路变压器数 capacity=data(1,3); %基准容量 kmax=data(1,4); %最大迭代次数 centrPara=data(1,5); %中心参数 accuracy=data(2,1); %计算精度 opfGoal=data(2,2); %目标函数类型 balNum=data(3,1); %平衡节点数 balNode=data(3,2); %平衡节点编号 %% 获取首列元素为0的行号 zeroIndex=find(data(:,1)==0); %% 读取线路参数 mtrLine=data(zeroIndex(1)+1:zeroIndex(2)-1,:); %% 读取接地支路参数 mtrGround=data(zeroIndex(2)+1:zeroIndex(3)-1,:); %% 读取变压器支路参数 mtrTrans=data(zeroIndex(3)+1:zeroIndex(4)-1,:); %% 读取运行参数 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; %节点有功出力 Qg(pqNode)=runPara(:,3)/capacity; %节点无功出力 Pd(pqNode)=runPara(:,4)/capacity; %节点有功负荷 Qd(pqNode)=runPara(:,5)/capacity; %节点无功负荷 %% 读取PV节点和平衡节点参数 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节点和平衡节点编号 pvV=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,2),nodeNum,1); %PV节点和平衡节点给定电压 pvQmin=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,3),nodeNum,1)/capacity; %无功出力下限 pvQmax=sparse(mtrPV(:,1),ones(pvNum,1),mtrPV(:,4),nodeNum,1)/capacity; %无功出力上限 %% 读取经济参数 economyPara=data(zeroIndex(6)+1:zeroIndex(7)-1,:); [ecoRow,ecoCol]=size(economyPara); if ecoCol>=7 pgctrl=find(economyPara(:,7)); %可调发电机的下标 if isempty(pgctrl) pgctrl=1:ecoRow; end else pgctrl=1:ecoRow; end pgNumall=zeroIndex(7)-zeroIndex(6)-1; %发电机台数 pgNodeall=economyPara(:,1); %发电机节点号 pgNum=length(pgctrl); %可调发电机台数 pgNode=pgNodeall(pgctrl); %可调发电机节点号 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;%发电机有功出力下限 Pmax=sparse(economyPara(:,1),ones(pgNumall,1),economyPara(:,6),nodeNum,1)/capacity;%发电机有功出力上限 %% 读可调电容器组参数 capPara=data(zeroIndex(7)+1:zeroIndex(8)-1,:); capNum=zeroIndex(8)-zeroIndex(7)-1; capI=capPara(:,2); %电容器投入节点编号 capGi=capPara(:,3); %可调电容器单位电导 capBi=capPara(:,4); %可调电容器单位电纳 capK=capPara(:,5); %初始档位值 capKmin=capPara(:,6); %电容器最小档位 capKmax=capPara(:,7); %电容器最大档位 Vmax=1.07*ones(nodeNum,1); %节点电压下限 Vmin=0.9*ones(nodeNum,1); %节点电压上限