資源簡介
bpa文件轉(zhuǎn)化為matpower中mpc結(jié)構(gòu)體
兼容中英文環(huán)境
代碼片段和文件信息
%?讀取BPA格式數(shù)據(jù)文件,生成MATPOWER所需電網(wǎng)對象和母線列表
function?[mpc?buslist]?=?bpa2matpower()
tic;
%?1.?讀入BPA文件的所有內(nèi)容
[FileNamePathName]?=?uigetfile(‘*.dat‘);
bpafile=fullfile(PathNameFileName);
disp([‘讀入原始BPA潮流文件‘?bpafile?‘的內(nèi)容...‘]);
%?1.1.?打開BPA潮流文件
fid?=?fopen(bpafile?‘r+‘‘n‘‘ASCII‘);%打開為ASCII
%?1.2.?將所有內(nèi)容讀入到字符串集合中
bpa_info?=?cell(5000?1);
ii?=?1;
while?(~feof(fid))
????newline?=?fgetl(fid);
????bpa_info(ii)?=?{newline};
????ii?=?ii?+?1;
end
%?1.3.?將未利用到的預(yù)分配數(shù)組元素所占資源釋放掉
for?jj?=?ii?:?5000
????bpa_info(ii)?=?[];
end
%?1.3.?關(guān)閉BPA潮流文件
fclose(fid);
%?2.?生成MatPower電力網(wǎng)絡(luò)對象和母線名稱列表
%?2.1.?得到母線個數(shù),支路個數(shù),基準容量
busNumber?=?0;
genNumber?=?0;
branchNumber?=?0;
disp(‘獲得電網(wǎng)基本參數(shù)(母線個數(shù),支路個數(shù),基準容量)...‘);
for?ii?=?1?:?length(bpa_info)
????thisline?=?bpa_info{ii};
????%?2.1.1.?獲得基準容量
????if?(length(thisline)?>=?13?&&?strcmp(thisline(2?:?9)?‘MVA_base‘))
????????baseMVA?=?str2double(thisline(11?:?13));
????end
????%?2.1.2.?統(tǒng)計母線個數(shù)
????if?(length(thisline)?>?2?&&?strcmp(thisline(1)?‘B‘))
????????busNumber?=?busNumber?+?1;
????????if?(strcmp(thisline(1?:?2)?‘BS‘)?||?strcmp(thisline(1?:?2)?‘BE‘)?||?strcmp(thisline(1?:?2)?‘BQ‘))
????????????genNumber?=?genNumber?+?1;
????????end
????end
????%?2.1.3.?統(tǒng)計支路個數(shù)
????if?(length(thisline)?>?2?&&?(strcmp(thisline(1)?‘L‘)?||?strcmp(thisline(1)?‘T‘)))
????????branchNumber?=?branchNumber?+?1;
????end
end
%?2.2.?得到母線矩陣,發(fā)電機矩陣,支路矩陣,母線列表
%?2.2.1.?得到母線矩陣和母線名稱列表
busMatrix?=?zeros(busNumber?13);
buslist?=?cell(busNumber?1);
busIndex?=?0;
disp(‘獲得母線矩陣和母線名稱列表...‘);
for?ii?=?1?:?length(bpa_info)
????thisline?=?bpa_info{ii};
????if?(length(thisline)?72)??%?在長度不足72的字符串后面補足空格
????????thisline?=?[thisline?blanks(72?-?length(thisline))];
????end
????if?(strcmp(thisline(1)?‘B‘))
????????busIndex?=?busIndex?+?1;
????????busMatrix(busIndex?1)?=?busIndex;??%?母線編號
????????switch?thisline(2)??%?母線類型
????????????case?{‘?‘?‘T‘?‘C‘?‘V‘}???%?PQ節(jié)點
????????????????busMatrix(busIndex?2)?=?1;
????????????case?{‘E‘?‘Q‘?‘G‘}????%?PV節(jié)點
????????????????busMatrix(busIndex?2)?=?2;
????????????case?‘S‘????%?平衡節(jié)點
????????????????busMatrix(busIndex?2)?=?3;
????????end
????????if?(~strcmp(thisline(21?:?25)?blanks(5)))
????????????busMatrix(busIndex?3)?=?str2double(thisline(21?:?25));???%?有功負荷
????????else
????????????busMatrix(busIndex?3)?=?0.0;???%?有功負荷
????????end
????????if?(~strcmp(thisline(26?:?30)?blanks(5)))
????????????busMatrix(busIndex?4)?=?str2double(thisline(26?:?30));???%?無功負荷
????????else
????????????busMatrix(busIndex?4)?=?0.0;???%?無功負荷
????????end
????????if?(~strcmp(thisline(31?:?34)?blanks(4)))
????????????busMatrix(busIndex?5)?=?str2double(thisline(31?:?34));???%?對地電導(dǎo)(用額定電壓下有功來表示)
????????else
????????????busMatrix(busIndex?5)?=?0.0;???%?對地電導(dǎo)(用額定電壓下有功來表示)
????????end
????????if?(~strcmp(thisline(35?:?38)?blanks(4)))
????????????busMatrix(busIndex?6)?=?str2double(thisline(35?:?38));???%?對地電納(用額定電壓下無功來表示,容性為正)
????????else
????????????busMatrix(busInde
- 上一篇:PAM系統(tǒng)仿真matlab版本
- 下一篇:陣列天線方向圖
評論
共有 條評論