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

📄 pendmenu.m

📁 为了下载东西
💻 M
字号:
%  Pendulum initialisation file.
%
%  Doesn't use the shortcut functions for making frames, labels etc.
%
%  Hordur Kvaran, 20.10.97

%  Simulator menu layout along with Callback function
%
%'Ball Balancing Simulator'
%   'Main'
%      'Save settings','doevent(''MainSave'')'
%      'Load settings','doevent(''MainLoad'')'
%      'Default settings','doevent(''MainDefault'')'
%      'Exit','doevent(''MainExit'')'
%   'Cart'
%      'Edit Gains',''
%      'Default values','doevent(''CartGainDef'')'
%      'Edit Fuzzy Sets...','doevent(''CartSets'')'
%      'Edit Rule Base...','doevent(''CartBase'')'
%      'Build Control Table','doevent(''CartTable'')'
%      'Plot Control Surface...','doevent(''CartSurface'')'
%      'Tune Cart SOC...',''
%      'Default Values','doevent(''CartSOCDef'')'
%   'Ball'
%      'Edit Gains',''
%      'Default Values','doevent(''BallGainDef'')'
%      'Edit Fuzzy Sets...','doevent(''BallSets'')'
%      'Edit Rule Base...','doevent(''BallBase'')'
%      'Build Control Table','doevent(''BallTable'')'
%      'Plot Control Surface...','doevent(''BallSurface'')'
%   'Simulation'
%      'Controller Type',''
%         'Linear Summation','doevent(''SimConLin'')'
%         'Fuzzy Rule Based','doevent(''SimConRul'')'
%         'Fuzzy Table Based','doevent(''SimConTbl'')'
%         'SOC on Cart','doevent(''SimConSOC'')'
%      'Step Size...','doevent(''SimInt'')'
%      'Stop Time...','doevent(''SimPer'')'
%      'Initial Conditions',''
%      'Default Values','doevent(''SimIniDef'')'
%      'Start Simulation','doevent(''SimStart'')'
%      'Replay animation','doevent(''SimReplay'')'
%   'Results'
%      'Cart Position...','doevent(''ResCartPos'')'
%      'Cart Control Signal...','doevent(''ResCartCtrl'')'
%      'Cart Position and Control Signal...','doevent(''ResCartPosCtrl'')'
%      'Cart States and Control Surface...','doevent(''ResCartCtrlSurf'')'
%      'Cart Phase Plot...','doevent(''ResCartPhase'')'
%      'Ball Angle...','doevent(''ResBallAng'')'
%      'Ball Control Signal...','doevent(''ResBallCtrl'')'
%      'Ball Angle and Control Signal...','doevent(''ResBallAngCtrl'')'
%      'Ball States and Control Surface...','doevent(''ResBallCtrlSurf'')'
%      'Ball Phase Plot...','doevent(''ResBallPhase'')'
%      'Control Signals...','doevent(''ResControl'')'
%      'State Variables...','doevent(''ResStates'')'

%##############################################################################
%
%  INITIALIZE MAIN WINDOW
%

hwndMain = figure('Visible','on', 'NumberTitle','off', 'MenuBar','none', ...
       'Name','Ball Balancing Simulator', 'Position',[20 100 600 250], ...
       'Resize','off', 'Color','w','Tag','wndMain');
axes('Position',[0.1 0.5 0.8 0.45],'FontSize',10,'Visible','off','Drawmode','fast');
axis([-0.72 0.72 0 0.35]);

%##############################################################################
%
%  INITIALIZE MAIN MENU
%
h=uimenu(hwndMain,'Label','Main ','Tag','mnuMain');
   uimenu(h,'Label','Save settings', ...
         'Callback','doevent(''MainSave'')','Tag','mnuMainSave');
   uimenu(h,'Label','Load settings', ...
         'Callback','doevent(''MainLoad'')','Tag','mnuMainLoad');
   uimenu(h,'Label','Default settings', ...
         'Callback','doevent(''MainDefault'')','Tag','mnuMainDefault');
   uimenu(h,'Label','Exit', ...
         'Callback','doevent(''MainExit'')','Tag','mnuMainExit', ...
         'Separator','on');    

%##############################################################################
%
%  INITIALIZE CART MENU
%
h=uimenu(hwndMain,'Label','Cart ','Tag','mnuCart');
   uimenu(h,'Label','Edit Gains...','Callback','doevent(''CartGains'')','Tag','mnuCartGains');
   uimenu(h,'Label','Default Gains','Callback','doevent(''CartGainDef'')','Tag','mnuCartGainDef');
   uimenu(h,'Label','Edit Fuzzy Sets...','Callback','doevent(''CartSets'')', ...
         'Separator','on','Tag','mnuCartSets');
   uimenu(h,'Label','Edit Rule Base...','Callback','doevent(''CartBase'')','Tag','mnuCartBase');
%   uimenu(h,'Label','Build Control Table','Callback','doevent(''CartTable'')')         
   uimenu(h,'Label','Plot Control Surface','Callback','doevent(''CartSurface'')','Tag','mnuCartSurface');
   uimenu(h,'Label','Tune Cart SOC...','Callback','doevent(''TuneSOC'');',...
         'Separator','on','Tag','mnuTuneSOC');
   uimenu(h,'Label','Default SOC values','Callback','doevent(''CartSOCDef'');','Tag','mnuCartSOCDef');

%##############################################################################
%
%  INITIALIZE BALL MENU
%
h=uimenu(hwndMain,'Label','Ball ','Tag','mnuBall');
   uimenu(h,'Label','Edit Gains...','Callback','doevent(''BallGains'');','Tag','mnuBallGains');
   uimenu(h,'Label','Default Gains','Callback','doevent(''BallGainDef'');','Tag','mnuBallGainDef');
   uimenu(h,'Label','Edit Fuzzy Sets...','Callback','doevent(''BallSets'')', ...
         'Separator','on','Tag','mnuBallSets');
   uimenu(h,'Label','Edit Rule Base...','Callback','doevent(''BallBase'')','Tag','mnuBallBase');
%   uimenu(h,'Label','Build Control Table','Callback','doevent(''BallTable'')','Tag','mnuBallTable')         
   uimenu(h,'Label','Plot Control Surface','Callback','doevent(''BallSurface'')','Tag','mnuBallSurface');

%##############################################################################
%
%  INITIALIZE SIMULATION MENU
%
h=uimenu(hwndMain,'Label','Simulation ','Tag','mnuSimulation');      
   h2=uimenu(h,'Label','Controller Type','Tag','mnuController');
      uimenu(h2,'Label','Linear Summation','Callback','doevent(''SimConLin'')','Tag','mnuSimConLin');
      uimenu(h2,'Label','Fuzzy Rule Based','Callback','doevent(''SimConRul'')','Tag','mnuSimConRul');
      uimenu(h2,'Label','Fuzzy Table Based','Callback','doevent(''SimConTbl'')','Tag','mnuSimConTbl');
      uimenu(h2,'Label','SOC on Cart','Callback','doevent(''SimConSOC'')','Tag','mnuSimConSOC');
   uimenu(h,'Label','Step Size...','Callback','doevent(''SimInt'')','Tag','mnuSimInt');
   uimenu(h,'Label','Stop Time...','Callback','doevent(''SimPer'')','Tag','mnuSimPer');
   uimenu(h,'Label','Initial Conditions...','Callback','doevent(''SimIni'');','Tag','mnuSimIni');
   uimenu(h,'Label','Default Initial Conditions','Callback','doevent(''SimIniDef'');','Tag','mnuSimIniDef');
   uimenu(h,'Label','Start Simulation','Callback','doevent(''SimStart'')','Tag','mnuSimStart', ...
         'Separator','on');
   uimenu(h,'Label','Replay animation','Callback','doevent(''SimReplay'')',...
         'Enable','off','Tag','mnuSimReplay');

%##############################################################################
%
%  INITIALIZE RESULTS MENU
%
h=uimenu(hwndMain,'Label','Results ','Enable','off','Tag','mnuResults');
   uimenu(h,'Label','Cart Position...','Callback','doevent(''ResCartPos'')','Tag','mnuResCartPos');
   uimenu(h,'Label','Cart Control Signal...','Callback','doevent(''ResCartCtrl'')','Tag','mnuResCartCtrl');
   uimenu(h,'Label','Cart Position and Control Signal...', ...
         'Callback','doevent(''ResCartPosCtrl'')','Tag','mnuResCartPosCtrl');
   uimenu(h,'Label','Cart States and Control Surface...', ...
         'Callback','doevent(''ResCartCtrlSurf'')','Tag','mnuResCart');
   uimenu(h,'Label','Cart Phase Plot...','Callback','doevent(''ResCartPhase'')','Tag','mnuResCartPhase');
   uimenu(h,'Label','Ball Angle...','Callback','doevent(''ResBallAng'')', ...
         'Separator','on','Tag','mnuResBallAng');
   uimenu(h,'Label','Ball Control Signal...','Callback','doevent(''ResBallCtrl'')','Tag','mnuResBallCtrl');
   uimenu(h,'Label','Ball Angle and Control Signal...', ...
         'Callback','doevent(''ResBallAngCtrl'')','Tag','ResBallAngCtrl');
   uimenu(h,'Label','Ball States and Control Surface...', ...
         'Callback','doevent(''ResBallCtrlSurf'')','Tag','ResBallCtrlSurf');
   uimenu(h,'Label','Ball Phase Plot...','Callback','doevent(''ResBallPhase'')','Tag','mnuResBallPhase');
         
   uimenu(h,'Label','Control Signals...','Callback','doevent(''ResControl'')', ...
         'Separator','on','Tag','mnuResControl');
   uimenu(h,'Label','State Variables...','Callback','doevent(''ResStates'')','Tag','mnuResStates');

set(hwndMain,'Visible','on');

clear h h2 hwndMain;

⌨️ 快捷键说明

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