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

📄 fm_threed.m

📁 用于电力系统的一个很好的分析软件
💻 M
字号:
function varargout = fm_threed(varargin)% FM_THREED create GUI for network visualisations%% HDL = FM_THREED()%%Author:    Federico Milano%Date:      21-Aug-2007%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 Settings Theme Varout Path Fig File CPF OPF% check for data fileif isempty(File.data)  fm_disp('Set a data file for running sparse matrix visualisation.',2)  returnend% check for initial power flow solutionif ~Settings.init  fm_disp('Solve base case power flow...')  Settings.show = 0;  fm_set('lf')  Settings.show = 1;  if ~Settings.init, return, endendif nargin  if ~Fig.threed, return, end  hdl1 = findobj(Fig.threed,'Tag','PopupMenu1');  hdl2 = findobj(Fig.threed,'Tag','PopupMenu2');  value1 = get(hdl1,'Value');  value2 = get(hdl2,'Value');  switch varargin{1}   case 'update'    hdl3 = findobj(Fig.threed,'Tag','MenuCaxis');    if value2 == 1      set(hdl3,'Enable','on')    else      set(hdl3,'Enable','off')    end    if (value2 == 6 | value2 == 7) & ~OPF.init      fm_disp(['Run OPF before displaying Locational Marginal ' ...               'Prices'],2)      set(hdl2,'Value',1)      set(hdl3,'Enable','on')      return    end    fm_simrep('DrawModel',value1,value2,0)   case 'init'    Varout.movie = getframe(findobj(Fig.threed,'Tag','Axes1'));    hdl = findobj(Fig.threed,'Tag','Axes1');    togglecontrols(Fig.threed,'off')   case 'newframe'    fm_simrep('DrawModel',value1,value2,1)   case 'finish'    togglecontrols(Fig.threed,'on')   case 'movie'    if isempty(Varout.movie), return, end    axes(findobj(Fig.threed,'Tag','Axes1'));    xlabel('')    %axes('Position',[0 0 1 1])    if Settings.init > 1 & ~CPF.init      fps = round(length(Varout.movie)/(Settings.tf-Settings.t0));      if ~fps, fps = 12; end      movie(Varout.movie,1,fps)    else      movie(Varout.movie)    end   case 'savemovie'    if isempty(Varout.movie), return, end    cd(Path.data)    filedata = strrep(File.data,'@ ','');    filedata = strrep(filedata,'(mdl)','_mdl');    mov = avifile(filedata);    mov = addframe(mov,Varout.movie);    mov = close(mov);    cd(Path.local)   case 'openmovie'    [filename, pathname] = uigetfile('*.avi', 'Pick an AVI-file');    if ~pathname, return, end    cd(pathname)    Varout.movie = aviread(filename);    cd(Path.local)   case 'setcaxis'    switch get(gcbo,'Checked')     case 'on'      set(gcbo,'Checked','off')      Varout.caxis = 0;     case 'off'      set(gcbo,'Checked','on')      Varout.caxis = 1;    end    fm_simrep('DrawModel',value1,value2,0)   case 'printfig'    togglecontrols(Fig.threed,'off')    cd(Path.data)    filedata = strrep(File.data,'@ ','');    filedata = strrep(filedata,'(mdl)','_mdl');    print(Fig.threed,'-dpng',filedata)    cd(Path.local)    togglecontrols(Fig.threed,'on')  end  returnendif Fig.threed, figure(Fig.threed), return, endmaps = {'jet';'hot';'gray';'bone';'copper';'pink';  'hsv';'cool';'autumn';'spring';'winter';'summer'};h0 = figure('Color',Theme.color01, ...  'Units', 'normalized', ...  'CreateFcn','Fig.threed = gcf;', ...  'DeleteFcn','Fig.threed = 0; rotate3d off', ...  'FileName','fm_threed', ...  'MenuBar','none', ...  'Name','Network Visualisation', ...  'NumberTitle','off', ...  'PaperPosition',[18 180 576 432], ...  'PaperUnits','points', ...  'Position',sizefig(0.666,0.74), ...  'Resize','on', ...  'ToolBar','none');% Menu Fileh1 = uimenu('Parent',h0, ...            'Label','File', ...            'Tag','MenuFile');h2 = uimenu('Parent',h1, ...            'Callback','fm_threed openmovie', ...            'Label', 'Open movie', ...            'Tag','OpenMovie', ...            'Accelerator','o');h2 = uimenu('Parent',h1, ...            'Callback','fm_threed savemovie', ...            'Label', 'Save movie', ...            'Tag','SaveMovie', ...            'Accelerator','s');h2 = uimenu('Parent',h1, ...            'Callback','fm_threed printfig', ...            'Label', 'Save frame', ...            'Tag','PrintFig', ...            'Accelerator','p');h2 = uimenu('Parent',h1, ...            'Callback','close(gcf)', ...            'Label','Close', ...            'Tag','FileClose', ...            'Separator','on', ...            'Accelerator','q');% Menu Edith1 = uimenu('Parent',h0, ...            'Label','Edit', ...            'Tag','MenuEdit');h2 = uimenu('Parent',h1, ...            'Callback','fm_threed update', ...            'Label', 'Update', ...            'Accelerator','u', ...            'Tag','MenuUpdate');h2 = uimenu('Parent',h1, ...            'Callback','fm_threed movie', ...            'Label', 'Play movie', ...            'Accelerator','m', ...            'Tag','MenuPlay');% Menu Viewh1 = uimenu('Parent',h0, ...            'Label','View', ...            'Tag','MenuView');h2 = uimenu('Parent',h1, ...            'Callback','fm_threed setcaxis', ...            'Label', 'Use voltage limits', ...            'Accelerator','v', ...            'Tag','MenuCaxis');if Varout.caxis  set(h1,'Checked','on')else  set(h1,'Checked','off')endh2 = uimenu('Parent',h1, ...            'Label', 'Transparency', ...            'Tag','MenuTransparency', ...            'Separator','on');h3 = uimenu('Parent',h2, ...            'Callback','alpha(1), Varout.alpha = 1;', ...            'Label','None', ...            'Tag','alpha1', ...            'Accelerator','0');h3 = uimenu('Parent',h2, ...            'Callback','alpha(0.9), Varout.alpha = 0.9;', ...            'Label','alpha = 0.9', ...            'Tag','alpha1', ...            'Accelerator','9');h3 = uimenu('Parent',h2, ...            'Callback','alpha(0.8), Varout.alpha = 0.8;', ...            'Label','alpha = 0.8', ...            'Tag','alpha1', ...            'Accelerator','8');h3 = uimenu('Parent',h2, ...            'Callback','alpha(0.7), Varout.alpha = 0.7;', ...            'Label','alpha = 0.7', ...            'Tag','alpha1', ...            'Accelerator','7');h3 = uimenu('Parent',h2, ...            'Callback','alpha(0.6), Varout.alpha = 0.6;', ...            'Label','alpha = 0.6', ...            'Tag','alpha1', ...            'Accelerator','6');h3 = uimenu('Parent',h2, ...            'Callback','alpha(0.5), Varout.alpha = 0.5;', ...            'Label','alpha = 0.5', ...            'Tag','alpha1', ...            'Accelerator','5');h3 = uimenu('Parent',h2, ...            'Callback','alpha(0.4), Varout.alpha = 0.4;', ...            'Label','alpha = 0.4', ...            'Tag','alpha1', ...            'Accelerator','4');h3 = uimenu('Parent',h2, ...            'Callback','alpha(0.3), Varout.alpha = 0.3;', ...            'Label','alpha = 0.3', ...            'Tag','alpha1', ...            'Accelerator','3');h3 = uimenu('Parent',h2, ...            'Callback','alpha(0.2), Varout.alpha = 0.2;', ...            'Label','alpha = 0.2', ...            'Tag','alpha1', ...            'Accelerator','2');h3 = uimenu('Parent',h2, ...            'Callback','alpha(0.1), Varout.alpha = 0.1;', ...            'Label','alpha = 0.1', ...            'Tag','alpha1', ...            'Accelerator','1');%fm_set colormaph1 = axes('Parent',h0, ...  'Box','on', ...  'CameraUpVector',[0 1 0], ...  'CameraUpVectorMode','manual', ...  'Color',Theme.color11, ...  'Position',[0.09 0.152 0.85 0.779], ...  'Tag','Axes1', ...  'XColor',[0 0 0], ...  'YColor',[0 0 0], ...  'ZColor',[0 0 0]);set(h0,'UserData',h1);h1 = uicontrol('Parent',h0, ...  'CData',fm_mat('threed_matlab'), ...  'BackgroundColor',Theme.color02, ...  'Units', 'normalized', ...  'Callback','fm_threed update', ...  'Position',[0.673 0.0185 0.06 0.08], ...  'TooltipString','Update', ...  'Tag','Pushbutton1');h1 = uicontrol('Parent',h0, ...  'CData',fm_mat('threed_movie'), ...  'BackgroundColor',Theme.color02, ...  'Units', 'normalized', ...  'Callback','fm_threed movie', ...  'Position',[0.673+0.0650 0.0185 0.06 0.08], ...  'TooltipString','Play Movie', ...  'Tag','Pushbutton2');h1 = uicontrol('Parent',h0, ...  'BackgroundColor',Theme.color02, ...  'Units', 'normalized', ...  'Callback','close(gcf)', ...  'Position',[0.82 0.044 0.121 0.052], ...  'String','Close', ...  'Tag','Pushbutton3');h1 = uicontrol('Parent',h0, ...  'Units', 'normalized', ...  'Callback','String = get(gcbo,''String''); eval([''colormap '',String{get(gcbo,''Value'')}]);', ...  'BackgroundColor',Theme.color04, ...  'Position',[0.488 0.041 0.157 0.056], ...  'String',maps, ...  'Style','popupmenu', ...  'Tag','PopupMenu1', ...  'Value',1);h1 = uicontrol('Parent',h0, ...  'Units', 'normalized', ...  'Callback','fm_threed update', ...  'BackgroundColor',Theme.color04, ...  'Position',[0.27 0.041 0.187 0.056], ...  'String',{'Voltage Magnitudes','Voltage Angles', ...            'Line Flows','Gen. Rotor Angles', ...            'Gen. Rotor Speeds','LMPs','NCPs'}, ...  'Style','popupmenu', ...  'Tag','PopupMenu2', ...  'Value',1);x = 0.02;y = 0.05;% Frame and push buttons for axis manipulationh1 = uicontrol('Parent',h0, ...  'Units', 'normalized', ...  'BackgroundColor',Theme.color02, ...  'ForegroundColor',Theme.color03, ...  'Position',[0.0726-x  0.0638-y  0.2000  0.0893], ...  'Style','frame', ...  'Tag','Frame2');h1 = uicontrol('Parent',h0, ...  'CData',fm_mat('mat_rotate'), ...  'Units', 'normalized', ...  'BackgroundColor',Theme.color02, ...  'Callback','rotate3d(gcf), , if(get(gcbo,''Value'')), set(findobj(gcf,''Tag'',''toggle7''),''Value'',0), zoom(gcf,''off''), end', ...  'Position',[0.0776-x  0.0685-y  0.0600  0.0800], ...  'TooltipString','Rotate graph', ...  'Style','togglebutton', ...  'Tag','toggle5');h1 = uicontrol('Parent',h0, ...  'CData',fm_mat('mat_grid'), ...  'Units', 'normalized', ...  'BackgroundColor',Theme.color02, ...  'Callback','grid(get(Fig.threed,''UserData''))', ...  'Position',[0.1426-x  0.0685-y  0.0600  0.0800], ...  'TooltipString','Grid', ...  'Style','togglebutton', ...  'Tag','toggle6');h1 = uicontrol('Parent',h0, ...  'CData',fm_mat('mat_zoomxy'), ...  'Units', 'normalized', ...  'BackgroundColor',Theme.color02, ...  'Callback','zoom, if(get(gcbo,''Value'')), set(findobj(gcf,''Tag'',''toggle5''),''Value'',0), rotate3d(gcf,''off''), end', ...  'Position',[0.2076-x  0.0685-y  0.0600  0.0800], ...  'TooltipString','Zoom', ...  'Style','togglebutton', ...  'Tag','toggle7');if nargout > 0, fig = h0; endfunction togglecontrols(fig,flag)hdl(1) = findobj(fig,'Tag','PopupMenu1');hdl(2) = findobj(fig,'Tag','PopupMenu2');hdl(3) = findobj(fig,'Tag','Frame2');hdl(4) = findobj(fig,'Tag','toggle5');hdl(5) = findobj(fig,'Tag','toggle6');hdl(6) = findobj(fig,'Tag','toggle7');hdl(7) = findobj(fig,'Tag','Pushbutton1');hdl(8) = findobj(fig,'Tag','Pushbutton2');hdl(9) = findobj(fig,'Tag','Pushbutton3');set(hdl,'Visible',flag)

⌨️ 快捷键说明

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