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

📄 fm_opffig.m

📁 电力系统分析计算程序
💻 M
📖 第 1 页 / 共 2 页
字号:
function fig = fm_opffig(varargin)% FM_OPFFIG create GUI for Optimal Power Flow settings%% HDL = FM_OPFFIG%%see OPF structure for settings%%Author:    Federico Milano%Date:      11-Nov-2002%Updte:     08-Feb-2003%Version:   1.0.2%%E-mail:    Federico.Milano@uclm.es%Web-site:  http://www.uclm.es/area/gsee/Web/Federico%% Copyright (C) 2002-2008 Federico Milanoglobal Settings Path OPF Theme Figif nargin  switch varargin{1}   case 'vlimits'    a = fm_input({'Vmax','Vmin'},'Voltage Limits',1, ...                 {num2str(OPF.vmax),num2str(OPF.vmin)},'off');    if ~isempty(a)      try        OPF.vmax = str2num(a{1});      catch        fm_disp('Maximum voltage limit couldn''t be changed')        OPF.vmax = 1.2;      end      try        OPF.vmin = str2num(a{2});      catch        OPF.vmin = 0.8;        fm_disp('Minimum voltage limit couldn''t be changed')      end    end    if isempty(OPF.vmax)      fm_disp('Maximum voltage limit couldn''t be changed')      OPF.vmax = 1.2;    end    if isempty(OPF.vmin)      fm_disp('Minimum voltage limit couldn''t be changed')      OPF.vmax = 0.8;    end   case 'flows'    OPF.enflow = ~OPF.enflow;    hdl = findobj(Fig.opf,'Tag','PopupMenu2');    if OPF.enflow,      set(gcbo,'Checked','on')      set(hdl,'Enable','on');    else      set(gcbo,'Checked','off')      set(hdl,'Enable','off');    end   case 'voltages'    OPF.envolt = ~OPF.envolt;    if OPF.envolt,      set(gcbo,'Checked','on')    else      set(gcbo,'Checked','off')    end   case 'reactive'    OPF.enreac = ~OPF.enreac;    if OPF.enreac,      set(gcbo,'Checked','on')    else      set(gcbo,'Checked','off')    end   case 'tiebreak'    OPF.tiebreak = ~OPF.tiebreak;    if OPF.tiebreak,      set(gcbo,'Checked','on')    else      set(gcbo,'Checked','off')    end   case 'omega'    lasterr('');    hdl_omeg = findobj(Fig.opf,'Tag','EditText1');    s_omega = get(hdl_omeg,'String');    try, eval(['OPFomega = ',s_omega,';'])    catch, fm_disp(lasterr,2), set(hdl_omeg,'String',OPF.omega_s), return, end    if max(OPFomega) > 1 | min(OPFomega) < 0        fm_disp('The weighting factor must be within the range [0,1].',2)        set(hdl_omeg,'String',OPF.omega_s), return    end    [ao,bo] = size(OPFomega);    if ao > 1 & bo > 1        fm_disp('The weighting factor must be a vector.',2)        set(hdl_omeg,'String',OPF.omega_s), return    end    OPF.omega = OPFomega;    OPF.omega_s = s_omega;    fm_disp(['Parameter "OPF.omega" set to "',OPF.omega_s,'".'],1)   case 'lmin'    lasterr('');    hdl_lmin = findobj(Fig.opf,'Tag','EditText2');    s_lmin = get(hdl_lmin,'String');    try      eval(['OPFlmin = ',s_lmin,';'])    catch      fm_disp(lasterr,2),      set(hdl_lmin,'String',OPF.lmin_s)      return    end    if max(OPFlmin) > OPF.lmax      fm_disp('Lambda_min must be less than Lambda_max.',2)      set(hdl_lmin,'String',OPF.lmin_s), return,    end    [al,bl] = size(OPFlmin);    if al > 1 | bl > 1      fm_disp('The loading parameter must be a scalar.',2)      set(hdl_lmin,'String',OPF.lmin_s)      return    end    OPF.lmin = OPFlmin;    OPF.lmin_s = s_lmin;    fm_disp(['Parameter "OPF.lmin" set to "',OPF.lmin_s,'".'],1)  end  returnendif Fig.opf, figure(Fig.opf), return, endrs = 0.4344/0.5;dy = (0.5-0.4344)/0.5;df = 1+1.35*(0.5-0.4344);flussi = {'Currents';          'Active Powers';          'Apparent Powers'};metodi = {'Newton Direction';          'Mehrotra Predictor/Corrector'};tipi   = {'Single OPF';          'Pareto Set';          'Dayly Forecast';          'ATC (by CPF)';          'ATC (by sensitivity analysis)'};guess  = {'Flat Start',          'Actual Power Flow Solution'};if strcmp(Settings.platform,'MAC')  aligntxt = 'center';  dm = 0.0075;else  aligntxt = 'left';  dm = 0;endh0 = figure('Units','normalized', ...            'Color',Theme.color02, ...            'Colormap',[], ...            'CreateFcn', 'Fig.opf = gcf;', ...            'DeleteFcn', 'Fig.opf = 0;', ...            'MenuBar','none', ...            'Name','PSAT-OPF', ...            'NumberTitle','off', ...            'PaperPosition',[18 180 576 432], ...            'PaperUnits','points', ...            'Position',sizefig(0.5686,0.5), ...            'Resize','on', ...            'ToolBar','none', ...            'FileName','fm_opffig');fm_set colormap% Menu Fileh1 = uimenu('Parent',h0, ...            'Label','File', ...            'Tag','MenuFile');h2 = uimenu('Parent',h1, ...            'Callback','close(gcf)', ...            'Label','Exit', ...            'Tag','NetSett', ...            'Accelerator','x');% Menu Edith1 = uimenu('Parent',h0, ...            'Label','Edit', ...            'Tag','MenuEdit');h2 = uimenu('Parent',h1, ...            'Callback','fm_setting', ...            'Label','General Settings', ...            'Tag','ToolSett', ...            'Accelerator','s');% Menu Runh1 = uimenu('Parent',h0, ...            'Label','Run', ...            'Tag','MenuRun');h2 = uimenu('Parent',h1, ...            'Callback','fm_set opf', ...            'Label','Run OPF', ...            'Tag','ToolOPFSett', ...            'Accelerator','z');% Menu Optionsh1 = uimenu('Parent',h0, ...            'Label','Options', ...            'Tag','MenuOpt');h2 = uimenu('Parent',h1, ...            'Callback','fm_opffig flows', ...            'Label','Enable Flow limits', ...            'Tag','Opt1');if OPF.enflow,  set(h2,'Checked','on'),else,  set(h2,'Checked','off'),endh2 = uimenu('Parent',h1, ...            'Callback','fm_opffig voltages', ...            'Label','Enable Voltage Limits', ...            'Tag','Opt2');if OPF.envolt,  set(h2,'Checked','on'),else,  set(h2,'Checked','off'),endh2 = uimenu('Parent',h1, ...            'Callback','fm_opffig reactive', ...            'Label','Enable Reactive Limits', ...            'Tag','Opt3');if OPF.enreac,  set(h2,'Checked','on'),else,  set(h2,'Checked','off'),endh2 = uimenu('Parent',h1, ...            'Callback','fm_opffig tiebreak', ...            'Label','Enforce Tiebreaking', ...            'Tag','Opt3');if OPF.tiebreak,  set(h2,'Checked','on'),else,  set(h2,'Checked','off'),endh2 = uimenu('Parent',h1, ...            'Callback','fm_opffig vlimits', ...            'Label','Set Voltage Limits', ...            'Tag','Opt4');%a = fm_input({'Vmax','Vmin'},'OPF settings',1,{num2str(OPF.vmax),num2str(OPF.vmin)},'off')h1 = uicontrol('Parent',h0, ...               'Units', 'normalized', ...               'BackgroundColor',Theme.color02, ...               'ForegroundColor',Theme.color03, ...               'Position',[0.025 0.275*rs 0.95 0.675*df], ...               'Style','frame', ...               'Tag','Frame1');% Popup Menush1 = uicontrol('Parent',h0, ...               'Units', 'normalized', ...               'BackgroundColor',Theme.color04, ...               'Callback', 'OPF.method = get(gcbo,''Value'');', ...               'FontName', Theme.font01, ...               'ForegroundColor',Theme.color05,  ...               'Position',[0.608  0.79*rs+dy  0.342  0.06*rs], ...               'String',metodi, ...               'Style','popupmenu', ...               'Tag','PopupMenu1', ...               'Value',OPF.method);h1 = uicontrol('Parent',h0, ...               'Units', 'normalized', ...               'BackgroundColor',Theme.color04, ...               'Callback', 'OPF.flow = get(gcbo,''Value'');', ...               'ForegroundColor',Theme.color05, ...               'FontName', Theme.font01,  ...               'Position',[0.608 0.64*rs+dy  0.342  0.06*rs], ...               'String',flussi, ...               'Style','popupmenu', ...               'Tag','PopupMenu2', ...               'Value',OPF.flow);if OPF.enflow  set(h1,'Enable','on')else  set(h1,'Enable','off')endh1 = uicontrol('Parent',h0, ...               'Units', 'normalized', ...               'BackgroundColor',Theme.color02, ...               'HorizontalAlignment','left',  ...               'Position',[0.608  0.71*rs+dy  0.3  0.05*rs], ...               'String','Flow Limits', ...               'Style','text', ...               'Tag','StaticText11');h1 = uicontrol('Parent',h0, ...               'Units', 'normalized', ...               'BackgroundColor',Theme.color02, ...               'HorizontalAlignment','left',  ...               'Position',[0.608  0.86*rs+dy  0.3  0.05*rs], ...               'String','Solving Method', ...               'Style','text', ...               'Tag','StaticText12');h1 = uicontrol('Parent',h0, ...               'Units', 'normalized', ...               'BackgroundColor',Theme.color04, ...

⌨️ 快捷键说明

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