74 lines
4.6 KiB
Matlab
74 lines
4.6 KiB
Matlab
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); %节点电压上限
|