⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fm_equivfig.m

📁 电力系统分析计算程序
💻 M
📖 第 1 页 / 共 2 页
字号:
function varargout = fm_equivfig(varargin)% FM_EQUIVFIG graphical user interface for the network equivalent%             function.%%see lso the function FM_EQUIV and FM_BUSFIG%%Author:    Federico Milano%Update:    02-Apr-2008%Version:   0.1%%E-mail:    Federico.Milano@uclm.es%Web-site:  http://www.uclm.es/area/gsee/Web/Federico%% Copyright (C) 2002-2008 Federico Milanoglobal Theme Settings EQUIV File Path Fig Busequivalent_methods = { ...    'Thevenin equivalent', ...    'Dynamic equivalent'};bus_selection_methods = { ...    'Voltage level', ...    'Area', ...    'Region', ...    'Voltage threshold', ...    'Custom bus list'};if ~autorun('Network Equivalent',1)  returnendif nargin  ht = findobj(gcf,'Tag','MsgText');  switch varargin{1}   case 'run'    if EQUIV.bus_selection == 4 & isempty(EQUIV.custom_file)      fm_disp('A bus list file must be defined.',2)      return    end    check = fm_equiv;    if check      set(ht,'String','Equivalencing procedure completed.')      fm_disp('Equivalencing procedure completed.')    else      set(ht,'String','Equivalencing procedure failed.')      fm_disp('Equivalencing procedure failed.',2)    end    hdl = findobj(gcf,'Tag','OpenMatlab');    set(hdl,'Enable','On');   case 'setdata'    % adjusting voltage edit box    hdl = findobj(gcf,'Tag','EditVoltage');    value = str2num(get(hdl,'String'));    kv = getkv(Bus,0,0);    idx = find(kv == value);    if isempty(idx)      [a,b] = min(abs(kv-value));      set(hdl,'String',num2str(kv(b(1))))      EQUIV.bus_voltage = kv(b(1));    end    % adjusting area edit box    hdl = findobj(gcf,'Tag','EditArea');    value = str2num(get(hdl,'String'));    as = getarea(Bus,0,0);    idx = find(as == value);    if isempty(idx)      [a,b] = min(abs(as-value));      set(hdl,'String',num2str(as(b(1))))      EQUIV.area_num = as(b(1));    end    % adjusting region edit box    hdl = findobj(gcf,'Tag','EditRegion');    value = str2num(get(hdl,'String'));    as = getregion(Bus,0,0);    idx = find(as == value);    if isempty(idx)      [a,b] = min(abs(as-value));      set(hdl,'String',num2str(as(b(1))))      EQUIV.region_num = as(b(1));    end    hdl = findobj(gcf,'Tag','OpenMatlab');    set(hdl,'Enable','Off');   case 'clearbuslist'    EQUIV.custom_file = '';    EQUIV.custom_path = '';    set(ht,'String','Clear bus list file')    hdl = findobj(gcf,'Tag','edit_bus_list');    set(hdl,'String','<No bus list>')   case 'setbuslist'    fileformat = Settings.format;    if Fig.dir      set(Fig.dir,'Name','Load Data File')      hdl = findobj(Fig.dir,'Tag','Pushbutton1');      set(hdl,'String','Load','Callback','fm_dirset openfile')      hdl = findobj(Fig.dir,'Tag','Listbox2');      set(hdl,'Max',0,'ButtonDownFcn','fm_dirset openfile','Value',1)      hdl = findobj(Fig.dir,'Tag','PopupMenu1');      set(hdl,'Enbale','inactive','Value',length(get(hdl,'String')))      hdl = findobj(Fig.dir,'Tag','Pushbutton3');      set(hdl,'Callback','fm_dirset cancel','String','Cancel')    else      fm_dir(3)    end    uiwait(Fig.dir);    Settings.format = fileformat;    if ~Path.temp      if isempty(EQUIV.custom_file)        set(ht,'String','No file set. No bus list file.')      else        set(ht,'String',['No file set. Current bus list file <',EQUIV.custom_file,'>'])      end    else      EQUIV.custom_file = File.temp;      EQUIV.custom_path = Path.temp;      set(ht,'String',['Set custom bus list <',File.temp,'>'])      hdl = findobj(gcf,'Tag','edit_bus_list');      set(hdl,'String',File.temp)    end   case 'equivalent'    value = get(gcbo,'Value');    set(ht,'String',['Equivalencing method: ',equivalent_methods{value}])    EQUIV.equivalent_method = value;   case 'gentypepv'    hdl = findobj(Fig.equiv,'Tag','GenTypePQ');    switch get(gcbo,'Checked')     case 'on'      set(gcbo,'Checked','off')      EQUIV.gentype = 2;      set(hdl,'Checked','on');     case 'off'      set(gcbo,'Checked','on')      EQUIV.gentype = 1;      set(hdl,'Checked','off');    end   case 'gentypepq'    hdl = findobj(Fig.equiv,'Tag','GenTypePV');    switch get(gcbo,'Checked')     case 'on'      set(gcbo,'Checked','off')      EQUIV.gentype = 1;      set(hdl,'Checked','on');     case 'off'      set(gcbo,'Checked','on')      EQUIV.gentype = 2;      set(hdl,'Checked','off');    end   case 'checkdepth'    value = get(gcbo,'Value');    if value      set(findobj(gcf,'Tag','EditDepth'),'Enable','On')      set(findobj(gcf,'Tag','TextDepth'),'Enable','On')      EQUIV.bus_depth = get(findobj(gcf,'Tag','EditDepth'),'Value')-1;    else      set(findobj(gcf,'Tag','EditDepth'),'Enable','Off')      set(findobj(gcf,'Tag','TextDepth'),'Enable','Off')      EQUIV.bus_depth = 0;    end   case 'bus'    value = get(findobj(Fig.equiv,'Tag','popupmenu3'),'Value');    EQUIV.bus_selection = value;    switch value     case 1 % voltage level      set(findobj(gcf,'Tag','EditVoltage'),'Enable','On')      set(findobj(gcf,'Tag','EditArea'),'Enable','Off')      set(findobj(gcf,'Tag','EditRegion'),'Enable','Off')      set(findobj(gcf,'Tag','edit_bus_list'),'Enable','Off')      set(findobj(gcf,'Tag','buttonbus'),'Enable','Off')      hdl = findobj(gcf,'Tag','TextVoltage');      set(hdl,'String','Bus Voltage Threshold [kV]','Enable','On')      set(findobj(gcf,'Tag','TextArea'),'Enable','Off')      set(findobj(gcf,'Tag','TextRegion'),'Enable','Off')     case 2 % area      set(findobj(gcf,'Tag','EditVoltage'),'Enable','Off')      set(findobj(gcf,'Tag','EditArea'),'Enable','On')      set(findobj(gcf,'Tag','EditRegion'),'Enable','Off')      set(findobj(gcf,'Tag','edit_bus_list'),'Enable','Off')      set(findobj(gcf,'Tag','buttonbus'),'Enable','Off')      set(findobj(gcf,'Tag','TextVoltage'),'Enable','Off')      set(findobj(gcf,'Tag','TextArea'),'Enable','On')      set(findobj(gcf,'Tag','TextRegion'),'Enable','Off')     case 3 % region      set(findobj(gcf,'Tag','EditVoltage'),'Enable','Off')      set(findobj(gcf,'Tag','EditArea'),'Enable','Off')      set(findobj(gcf,'Tag','EditRegion'),'Enable','On')      set(findobj(gcf,'Tag','edit_bus_list'),'Enable','Off')      set(findobj(gcf,'Tag','buttonbus'),'Enable','Off')      set(findobj(gcf,'Tag','TextVoltage'),'Enable','Off')      set(findobj(gcf,'Tag','TextArea'),'Enable','Off')      set(findobj(gcf,'Tag','TextRegion'),'Enable','On')     case 4 % threshold      set(findobj(gcf,'Tag','EditVoltage'),'Enable','On')      set(findobj(gcf,'Tag','EditArea'),'Enable','Off')      set(findobj(gcf,'Tag','EditRegion'),'Enable','Off')      set(findobj(gcf,'Tag','edit_bus_list'),'Enable','Off')      set(findobj(gcf,'Tag','buttonbus'),'Enable','Off')      hdl = findobj(gcf,'Tag','TextVoltage');      set(hdl,'String','Bus Voltage Threshold [kV]','Enable','On')      set(findobj(gcf,'Tag','TextArea'),'Enable','Off')      set(findobj(gcf,'Tag','TextRegion'),'Enable','Off')     case 5 % custom bus list      set(findobj(gcf,'Tag','EditVoltage'),'Enable','Off')      set(findobj(gcf,'Tag','EditArea'),'Enable','Off')      set(findobj(gcf,'Tag','EditRegion'),'Enable','Off')      set(findobj(gcf,'Tag','edit_bus_list'),'Enable','Inactive')      set(findobj(gcf,'Tag','buttonbus'),'Enable','On')      set(findobj(gcf,'Tag','TextVoltage'),'Enable','Off')      set(findobj(gcf,'Tag','TextArea'),'Enable','Off')      set(findobj(gcf,'Tag','TextRegion'),'Enable','Off')    end   case 'busvoltage'    lasterr('');    try      [value,ok] = str2num(get(gcbo,'String'));      if ok        EQUIV.bus_voltage = value;        set(ht,'String',['Bus voltage: ',num2str(value)])      else        set(ht,'String',['<',get(gcbo,'String'),'> is not a valid voltage value!'])        set(gcbo,'String',num2str(EQUIV.bus_voltage))      end    catch      set(ht,'String',lasterr)      set(gcbo,'String',num2str(EQUIV.bus_voltage))    end   case 'area'    lasterr('');    try      [value,ok] = str2num(get(gcbo,'String'));      if ok & round(value) > 0        EQUIV.area_num = round(value);        set(ht,'String',['Area id: ', num2str(EQUIV.area_num)])        set(gcbo,'String',num2str(EQUIV.area_num))      else        set(ht,'String',['<',get(gcbo,'String'),'> is not a valid area number!'])        set(gcbo,'String',num2str(EQUIV.area_num))      end    catch      set(ht,'String',lasterr)      set(gcbo,'String',num2str(EQUIV.area_num))    end   case 'region'    lasterr('');    try      [value,ok] = str2num(get(gcbo,'String'));      if ok & round(value) > 0        EQUIV.region_num = round(value);        set(ht,'String',['Region id: ', num2str(EQUIV.region_num)])        set(gcbo,'String',num2str(EQUIV.region_num))      else        set(ht,'String',['<',get(gcbo,'String'),'> is not a valid region number!'])        set(gcbo,'String',num2str(EQUIV.region_num))      end    catch      set(ht,'String',lasterr)      set(gcbo,'String',num2str(EQUIV.region_num))    end   case 'busdepth'    EQUIV.bus_depth = get(gcbo,'Value')-1;   case 'view'    filedata = strrep(File.data,'(mdl)','');    switch varargin{2}     case 'mfile'      filename = [Path.data,filedata,'.m'];     case 'finalmfile'      filename = [Path.data,filedata,'_equiv.m'];     case 'buslist'      if isempty(EQUIV.custom_file)        cd(Path.data)        a = dir([filedata,'.lst']);        if ~isempty(a)          listfile = [Path.data,a.name];        end        cd(Path.local)      else        listfile = [EQUIV.custom_path,EQUIV.custom_file];      end      filename = listfile;     otherwise      set(ht,'String','Unknown file...')    end    fm_text(13,filename)   case 'createlist'    cd(Path.data)    filedata = strrep(File.data,'(mdl)','');    b = dir([filedata,'.lst']);    if isempty(b)      bdate = '0';    else      bdate = b.date;    end    uiwait(fm_busfig)    a = dir([filedata,'.lst']);    if ~isempty(a) & isempty(EQUIV.custom_file)      if a.date ~= bdate        EQUIV.custom_file = a.name;        EQUIV.custom_path = Path.data;        hdl = findobj(Fig.equiv,'Tag','edit_bus_list');        set(hdl,'String',a.name)      end    end    cd(Path.local)    set(ht,'String','Editing bus list completed.')   otherwise    set(ht,'String','Unknown command...')  end  returnendif Fig.cpf, figure(Fig.cpf), return, endh1 = figure(...    'Units','normalized',...    'Color',Theme.color01, ...    'Colormap',[], ...    'MenuBar','none',...    'Name','Network Equivalents',...    'NumberTitle','off',...    'PaperPosition',[18 180 576 432], ...    'Position',sizefig(0.525,0.55),...    'Resize','on', ...    'Toolbar','none', ...    'FileName','fm_equivfig',...    'CreateFcn','Fig.equiv = gcf;', ...    'DeleteFcn','Fig.equiv = 0;');fm_set colormap

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -