将openfile2.m修改为可以读取中调的格式

Signed-off-by: unknown <dmy@dmy-PC.(none)>
This commit is contained in:
unknown 2012-07-30 15:57:40 +08:00
parent 798e1e88ac
commit cf14e01a87
4 changed files with 174 additions and 4 deletions

8
OPF.m
View File

@ -1,12 +1,14 @@
tic
clc
clear
[kmax,Precision,UAngel,Volt,Busnum,PVi,PVu,Balance,Y,Angle,P0,Q0,r,c,GB,Linei,Linej,Transfori,Transforj,GenU,GenL,GenC,PG,QG,PD,QD,CenterA,PGi,PVQU,PVQL]= ...
pf('D:\Project\\\9242-1_0.5_85%.txt');
pf('D:\Project\×îС»¯³±Á÷\×îС³±Á÷ËãÀý\ԭʼ\standard.txt');
%pf('D:\Project\×îС»¯³±Á÷\×îС³±Á÷ËãÀý\Ïɺ£919.txt');
%pf('c:/file31.txt');
%pf('ieee118PG.dat');
%%
atan(PD(QD~=0 | PD~=0)./QD(QD~=0 | PD~=0))
%atan(PD(QD~=0 | PD~=0)./QD(QD~=0 | PD~=0));
Volt;
UAngel*180/3.1415926;
%% PG
@ -18,7 +20,7 @@ PG0=PG;
PD0=PD;
PDReal=PD;%
PD0(12)=PD0(12)+0.001;
%PD0(12)=PD0(12)+0.001;
%%
PG0(Balance)=PGBal(Balance);
%%

84
openfile2.asv Normal file
View File

@ -0,0 +1,84 @@
function [Busnum,Balance,PQstandard,Precision,Linei,Linej,Liner,Linex,Lineb,kmax,Transfori ,...
Transforj,Transforr,Transforx,Transfork0,Branchi,Branchb,Pointpoweri,PG,QG,PD,QD,PVi,PVu,GenU,GenL,GenC,CenterA,PGi,PVQU,PVQL] = openfile2(FileName)
%**************************************************************************
% 程序简介 : 子函数——读取潮流计算所需数据
% 编 者:
% 编制时间 2010.12
%**************************************************************************
data = dlmread(FileName); % 一次读入全部数据
zeroRow = find(data(:,1)==0);
Busnum= data(1,1); % 节点数
PQstandard = data(1,3); % 基准容量
kmax = data(1,4); %最大迭代次数
Precision = data(1,4); % 精度
%Balance = data(3,2);
Balance=data(3:zeroRow(2)-1,2);% 生成1到节点号的列向量
%CenterA=data(1,5); %中心参数
%LineNum=data(1,2); %支路数
Base=data(1,3);
%% 各参数矩阵分块
line = data(zeroRow(2)+1:zeroRow(3)-1,:); % 形成线路参数矩阵
ground = data(zeroRow(5)+1:zeroRow(6)-1,:); % 形成对地支路参数矩阵
tran = data(zeroRow(3)+1:zeroRow(4)-1,:); % 形成变压器参数矩阵
buspq = data(zeroRow(8)+1:zeroRow(9)-1,:); % 形成节点功率参数矩阵
PV = data(zeroRow(11)+1:zeroRow(12)-1,:); % 形成pv节点功率参数矩阵
GenP=data(zeroRow(9)+1:zeroRow(10)-1,:);
GenQ=data(zeroRow(11)+1:zeroRow(12)-1,:);
%% 线路参数矩阵分块
Linei = line(:,2); % 节点i
Linej= line(:,3); % 节点j
Liner = line(:,4); % 线路电阻
Linex = line(:,5); % 线路电抗
Lineb = line(:,6); % b/2
%% 对地支路参数矩阵
Branchi = ground(:,2); % 对地支路节点号
Branchb = ground(:,4); % 对地支路的导纳
%% 变压器参数矩阵
Transfori = tran(:,3); % 节点i
Transforj= tran(:,4); % 节点j
Transforr = tran(:,5); % 变压器电阻
Transforx= tran(:,6); % 变压器电抗
Transfork0 = tran(:,7); % 变压器变比
%% 节点功率参数矩阵
Pointpoweri = buspq(:,3);
PG=buspq(:,5); % 发电机有功
QG=buspq(:,6); % 发电机无功
PD=buspq(:,7); % 负荷有功
QD=buspq(:,8); % 负荷无功
%%除以基值
PG=PG/Base;
QG=QG/Base;
PD=PD/Base;
QD=QD/Base;
%%
PD=sparse(PD);
QD=sparse(QD);
PG=sparse(PG);
QG=sparse(QG);
%% pv节点功率参数矩阵
PVi = PV(:,3); % PV节点的节点号
PVu = PV(:,5); % PV节点电压
PVQL=PV(:,6);%PV节点无功下限
PVQL=PVQL/Base;
PVQU=PV(:,7); %PV节点无功上限
PVQU=PVQU/Base;
%% 发电机参数
%GenU=Gen(:,[1 5 6]);
%GenL=Gen(:,[1 7 8]);
GenC=GenP(:,[3 7:9]);
t=GenC(:,2);
GenC(:,2)=GenC(:,4);
GenC(:,4)=t;
%%%%%%%%%%%%%%%%%%%%
%GenC(:,2:4)=100*GenC(:,2:4);
t=GenP(:,[3 5]);
%GenL=[t,PVQL(PVi)];
GenL=t;%有功下界
GenL(:,2)=GenL(:,2)/Base;
t=GenP(:,[3 6]);
%GenU=[t,PVQU(PVi)];
GenU=t;%有功上届
GenU(:,2)=GenU(:,2)/Base;
PGi=GenP(:,3);%发电机节点号
end

84
openfile2.m Normal file
View File

@ -0,0 +1,84 @@
function [Busnum,Balance,PQstandard,Precision,Linei,Linej,Liner,Linex,Lineb,kmax,Transfori ,...
Transforj,Transforr,Transforx,Transfork0,Branchi,Branchb,Pointpoweri,PG,QG,PD,QD,PVi,PVu,GenU,GenL,GenC,CenterA,PGi,PVQU,PVQL] = openfile2(FileName)
%**************************************************************************
% :
%
% 2010.12
%**************************************************************************
data = dlmread(FileName); %
zeroRow = find(data(:,1)==0);
Busnum= data(1,1); %
PQstandard = data(1,3); %
kmax = 60;%data(1,4); %
Precision = data(1,4); %
%Balance = data(3,2);
Balance=data(3:zeroRow(2)-1,2);% 1
CenterA=0.1;%data(1,5); %
LineNum=data(1,2); %
Base=data(1,3);
%%
line = data(zeroRow(2)+1:zeroRow(3)-1,:); % 线
ground = data(zeroRow(5)+1:zeroRow(6)-1,:); %
tran = data(zeroRow(3)+1:zeroRow(4)-1,:); %
buspq = data(zeroRow(8)+1:zeroRow(9)-1,:); %
PV = data(zeroRow(11)+1:zeroRow(12)-1,:); % pv
GenP=data(zeroRow(9)+1:zeroRow(10)-1,:);
GenQ=data(zeroRow(11)+1:zeroRow(12)-1,:);
%% 线
Linei = line(:,2); % i
Linej= line(:,3); % j
Liner = line(:,4); % 线
Linex = line(:,5); % 线
Lineb = line(:,6); % b/2
%%
Branchi = ground(:,2); %
Branchb = ground(:,4); %
%%
Transfori = tran(:,3); % i
Transforj= tran(:,4); % j
Transforr = tran(:,5); %
Transforx= tran(:,6); %
Transfork0 = tran(:,7); %
%%
Pointpoweri = buspq(:,3);
PG=buspq(:,5); %
QG=buspq(:,6); %
PD=buspq(:,7); %
QD=buspq(:,8); %
%%
PG=PG/Base;
QG=QG/Base;
PD=PD/Base;
QD=QD/Base;
%%
PD=sparse(PD);
QD=sparse(QD);
PG=sparse(PG);
QG=sparse(QG);
%% pv
PVi = PV(:,3); % PV
PVu = PV(:,5); % PV
PVQL=PV(:,6);%PV
PVQL=PVQL/Base;
PVQU=PV(:,7); %PV
PVQU=PVQU/Base;
%%
%GenU=Gen(:,[1 5 6]);
%GenL=Gen(:,[1 7 8]);
GenC=GenP(:,[3 7:9]);
t=GenC(:,2);
GenC(:,2)=GenC(:,4);
GenC(:,4)=t;
%%%%%%%%%%%%%%%%%%%%
%GenC(:,2:4)=100*GenC(:,2:4);
t=GenP(:,[3 5]);
%GenL=[t,PVQL(PVi)];
GenL=t;%
GenL(:,2)=GenL(:,2)/Base;
t=GenP(:,[3 6]);
%GenU=[t,PVQU(PVi)];
GenU=t;%
GenU(:,2)=GenU(:,2)/Base;
PGi=GenP(:,3);%
end

2
pf.m
View File

@ -10,7 +10,7 @@ function [kmax,Precision,Uangle,U,Busnum,PVi,PVu,Balance,Y,Angle,P0,Q0,r,c,GB,Li
tic;
%%
[Busnum,Balance,PQstandard,Precision,Linei,Linej,Liner,Linex,Lineb,kmax,Transfori ,...
Transforj,Transforr,Transforx,Transfork0,Branchi,Branchb,Pointpoweri,PG,QG,PD,QD,PVi,PVu,GenU,GenL,GenC,CenterA,PGi,PVQU,PVQL]= openfile(FileName);
Transforj,Transforr,Transforx,Transfork0,Branchi,Branchb,Pointpoweri,PG,QG,PD,QD,PVi,PVu,GenU,GenL,GenC,CenterA,PGi,PVQU,PVQL]= openfile2(FileName);
%%
[GB,Y,r,c,Angle] = admmatrix(Busnum,Linei,Linej,Liner,Linex,Lineb,Transfori,Transforj,Transforr,...
Transforx,Transfork0,Branchi,Branchb);