📄 pendmenu.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 + -