📄 psat2odm.m
字号:
function check = psat2odm(varargin)% PSAT2ODM converts PSAT data file into Open Data Format%% CHECK = PSAT2ODM(FILENAME,PATHNAME)% FILENAME name of the file to be converted% PATHNAME path of the file to be converted%% CHECK = 1 conversion completed% CHECK = 0 problem encountered (no data file created)%%Author: Federico Milano%Date: 24-May-2008%Version: 1.0.0%%E-mail: Federico.Milano@uclm.es%Web-site: http://www.uclm.es/area/gsee/Web/Federico%% Copyright (C) 2002-2008 Federico Milanoglobal DAE Varname SettingsDAE_old = DAE;Varname_old = Varname;Settings_old = Settings;if nargin == 2 filename = varargin{1}; pathname = varargin{2}; nopowers = 0; tag = 'pss';elseif nargin == 3 filename = varargin{1}; pathname = varargin{2}; nopowers = varargin{3}; tag = 'pss';elseif nargin == 4 filename = varargin{1}; pathname = varargin{2}; nopowers = varargin{3}; tag = varargin{4};else check = 0; returnendif strcmp(pathname(end),filesep) pathname = pathname(1:end-1);endif ~strcmp(pathname,pwd) cd(pathname)endfm_dispfm_disp(['Opening PSAT file "',filename,'"...'])% General Settings% ----------------------------------------------------------------check = 1;b128 = [blanks(128),'\n'];b12 = blanks(12);% Setting up local classes% ----------------------------------------------------------------Bus = BUclass;Twt = TWclass;Line = LNclass;Shunt = SHclass;SW = SWclass;PV = PVclass;PQ = PQclass;PQgen = PQclass;% Reading Data from PSAT Data File% ----------------------------------------------------------------a = exist(filename);if a == 2, eval(filename(1:end-2)) if nopowers PQ = pqzero(PQ,'all'); PV = pvzero(PV,'all'); SW = swzero(SW,'all'); endelse, fm_disp(['File "',pathname,filesep,filename,'" not found or not an m-file'],2) check = 0; returnend% Completing data settings% ---------------------------------------------------------------Bus = setup(Bus);Line = setup(Line,Bus);Twt = setup(Twt,Bus,Line);Shunt = setup(Shunt,Bus);PV = setup(PV,Bus);SW = setup(SW,Bus,PV);PQ = setup(PQ,Bus);PQgen = setup(PQgen,Bus);PQ = addgen(PQ,PQgen,Bus);% Opening File% ---------------------------------------------------------------newfile = [filename(1:end-2),'.xml'];fm_disp(['Writing ODM file "',newfile,'"...'])fid = fopen([pathname,filesep, newfile], 'wt');% Header% ---------------------------------------------------------------count = fprintf(fid,'<?xml version="1.0" encoding="UTF-8"?>\n');count = fprintf(fid,'<%s:PSSStudyCase>\n',tag);count = fprintf(fid,' <%s:id>PSAT-%dBus-System</%s:id>\n',tag,Bus.n,tag);count = fprintf(fid,' <%s:schemaVersion>V1.00</%s:schemaVersion>\n',tag,tag);count = fprintf(fid,' <%s:originalFormat>IEEE-ODM-PSS</%s:originalFormat>\n',tag,tag);count = fprintf(fid,' <%s:analysisCategory>Powerflow</%s:analysisCategory>\n',tag,tag);count = fprintf(fid,' <%s:networkCategory>Transmission</%s:networkCategory>\n',tag,tag);count = fprintf(fid,' <%s:baseCase>\n',tag);count = fprintf(fid,' <%s:id>Base-Case</%s:id>\n',tag,tag);count = fprintf(fid,' <%s:basePower>%7.2f</%s:basePower>\n',tag,Settings.mva,tag);count = fprintf(fid,' <%s:basePowerUnit>MVA</%s:basePowerUnit>\n',tag,tag);count = fprintf(fid,' <%s:baseFrequency>%7.2f</%s:baseFrequency>\n',tag,Settings.freq,tag);count = fprintf(fid,' <%s:baseFrequencyUnit>Hz</%s:basePowerFrequency>\n',tag,tag);% Bus List% ---------------------------------------------------------------count = fprintf(fid,' <%s:busList>\n',tag);for idx = 1:Bus.n count = fprintf(fid,' <%s:bus>\n',tag); odm(Bus,fid,tag,idx,' ') count = fprintf(fid,' <%s:loadflowBusData>\n',tag); odm(SW,fid,tag,idx,' ') odm(PV,fid,tag,idx,' ') odm(PQ,fid,tag,idx,' ') count = fprintf(fid,' </%s:loadflowBusData>\n',tag); count = fprintf(fid,' </%s:bus>\n',tag);endcount = fprintf(fid,' </%s:busList>\n',tag);% Branch List% ---------------------------------------------------------------count = fprintf(fid,' <%s:branchList>\n',tag);odm(Line,fid,tag,' ');count = fprintf(fid,' </%s:branchList>\n',tag);% Closing the file% ---------------------------------------------------------------count = fprintf(fid,' </%s:baseCase>\n',tag);count = fprintf(fid,'</%s:PSSStudyCase>\n',tag);fclose(fid);DAE = DAE_old;Varname = Varname_old;Settings = Settings_old;fm_disp('Conversion completed.')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -