📄 powerwindowscript.m
字号:
set_param('powerwindow/power_window_control_system/validate_driver','LinkStatus','inactive')
add_block('built-in/Reference','powerwindow/power_window_control_system/validate_passenger', ...
'Position',[210, 225, 330, 355],'SourceBlock','salib/validate_state');
set_param('powerwindow/power_window_control_system/validate_passenger','LinkStatus','inactive')
l = add_line('powerwindow/power_window_control_system','driver_neutral/1','validate_driver/1');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow/power_window_control_system','driver_up/1','validate_driver/2');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow/power_window_control_system','driver_down/1','validate_driver/3');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow/power_window_control_system','driver_reset/1','validate_driver/4');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow/power_window_control_system','passenger_neutral/1','validate_passenger/1');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow/power_window_control_system','passenger_up/1','validate_passenger/2');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow/power_window_control_system','passenger_down/1','validate_passenger/3');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow/power_window_control_system','passenger_reset/1','validate_passenger/4');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow/power_window_control_system','validate_driver/1','control/3','autorouting','on');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow/power_window_control_system','validate_passenger/1','control/4','autorouting','on');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
case 'add continuous'
ret = stepTo(POWERWINDOWDEMO_STEP,3,POWERWINDOWDEMO_STEPS);
if(ret < 0) return; end
POWERWINDOWDEMO_STEP = ret;
% Add the block
add_block('built-in/Switch',sprintf('powerwindow/up signal\nconversion'), ...
'Position',[470, 115, 500, 145],'threshold','0.5');
add_block('built-in/Switch',sprintf('powerwindow/down signal\nconversion'), ...
'Position',[465, 250, 495, 280],'threshold','0.5');
add_block('built-in/Constant',sprintf('powerwindow/up\nrate'), ...
'Position',[415, 105, 435, 125],'NamePlacement','alternate', ...
'Value','1');
add_block('built-in/Constant','powerwindow/c0', ...
'Position',[415, 135, 435, 155],'showName','off', ...
'Value','0');
add_block('built-in/Constant',sprintf('powerwindow/down\nrate'), ...
'Position',[415, 240, 435, 260],'NamePlacement','alternate', ...
'Value','-1');
add_block('built-in/Constant','powerwindow/c1', ...
'Position',[415, 270, 435, 290],'showName','off', ...
'Value','0');
add_block('built-in/Sum','powerwindow/window input', ...
'Position',[540, 185, 560, 205],'showName','off', ...
'Inputs','|++-','IconShape','round');
add_block('built-in/Gain','powerwindow/gain', ...
'Position',[610, 180, 640, 210],'gain','50');
add_block('built-in/Gain','powerwindow/friction', ...
'Position',[620, 235, 650, 265],'gain','10','Orientation','left');
add_block('built-in/Integrator','powerwindow/angular velocity', ...
'Position',[685, 180, 715, 210]);
add_block('built-in/Integrator','powerwindow/window position', ...
'Position',[765, 180, 795, 210]);
% add_block('built-in/Scope','powerwindow/position', ...
% 'Position',[825, 179, 855, 211],'ForegroundColor','gray');
% add_block('built-in/Scope','powerwindow/position', ...
% 'Position',[875, 139, 905, 171],'ForegroundColor','gray');
add_block('built-in/Scope','powerwindow/position', ...
'Position',[875, 179, 905, 211],'Location',[6, 532, 329, 734], ...
'YMin','-0.05','YMax','0.5', ...
'ForegroundColor','gray','LimitDataPoints','off');
add_block('built-in/Relational Operator','powerwindow/top', ...
'Position',[510, 407, 540, 438],'Operator','>','Orientation','left','ForegroundColor','magenta');
add_block('built-in/Relational Operator','powerwindow/obstacle', ...
'Position',[510, 352, 540, 383],'Operator','>','Orientation','left','ForegroundColor','magenta');
add_block('built-in/Constant','powerwindow/c101', ...
'Position',[585, 418, 615, 442],'Value','0.4','Orientation','left','ForegroundColor','magenta');
add_block('built-in/Constant','powerwindow/c102', ...
'Position',[585, 363, 615, 387],'Value','0.3','Orientation','left','ForegroundColor','magenta');
l = add_line('powerwindow','up rate/1','up signal conversion/1');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','c0/1','up signal conversion/3');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','down rate/1','down signal conversion/1');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','c1/1','down signal conversion/3');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','up signal conversion/1','window input/1');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','down signal conversion/1','window input/2');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','control/1','up signal conversion/2');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','control/2','down signal conversion/2');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','window input/1','gain/1');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','gain/1','angular velocity/1');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','angular velocity/1','window position/1');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow',[725 195; 725 250; 650 250]);
% l = add_line('powerwindow','angular velocity/1','friction/1','autorouting','on');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','window position/1','position/1','autorouting','on');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','friction/1','window input/3','autorouting','on');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
%l = add_line('powerwindow','window position/1','top/1','autorouting','on');
l = add_line('powerwindow',[800 195; 800 415; 540 415]);
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
% l = add_line('powerwindow','window position/1','obstacle/1','autorouting','on');
l = add_line('powerwindow',[800 360; 540 360]);
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','c101/1','top/2');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','c102/1','obstacle/2');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','top/1','control/3','autorouting','on');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','obstacle/1','control/4','autorouting','on');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
% Delete the old line
% B = get_param('mergedemo/Discrete Pulse Generator','PortHandles');
% l = get_param(B.Outport,'Line');
% delete_line(l);
% Add the new line
% l = add_line('mergedemo','Discrete Pulse Generator/1','Data Type Conversion/1');
% set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
% l = add_line('mergedemo',[150 135; 190 135]);
% set_param(l,'FontSize',9)
% add_line('mergedemo',[190 135; 190 165]);
% add_line('mergedemo',[190 135; 190 99]);
powerwindowscript('resize for continuous plant');
case 'ode23'
set_param('powerwindow','Solver','ode23')
case 'ode23s'
set_param('powerwindow','Solver','ode23s')
case 'ode23t'
set_param('powerwindow','Solver','ode23t')
set_param('powerwindow','reltol','1e-2')
case 'show sample rates'
powerwindowscript('ode23s');
set_param('powerwindow','SampleTimeColors','on')
% powerwindow( [ ] , [ ], [ ] , 'sizes' );
powerwindow( [ ], [ ], [ ], 'compile')
powerwindow([ ], [ ], [ ], 'term')
case 'RT'
set_param('powerwindow','Solver','ode1')
set_param('powerwindow','FixedStep','0.005')
%set_param('powerwindow','StepSize','0.005')
case 'delete continuous'
ret = stepTo(POWERWINDOWDEMO_STEP,4,POWERWINDOWDEMO_STEPS);
if(ret < 0) return; end
POWERWINDOWDEMO_STEP = ret;
delete_line('powerwindow','control/1','up signal conversion/2');
delete_line('powerwindow','control/2','down signal conversion/2');
delete_line('powerwindow','up rate/1','up signal conversion/1');
delete_line('powerwindow','c0/1','up signal conversion/3');
delete_line('powerwindow','down rate/1','down signal conversion/1');
delete_line('powerwindow','c1/1','down signal conversion/3');
delete_line('powerwindow','up signal conversion/1','window input/1');
delete_line('powerwindow','down signal conversion/1','window input/2');
delete_line('powerwindow','friction/1','window input/3');
delete_line('powerwindow','window input/1','gain/1');
delete_line('powerwindow','gain/1','angular velocity/1');
delete_line('powerwindow','angular velocity/1','friction/1');
delete_line('powerwindow','angular velocity/1','window position/1');
delete_line('powerwindow','window position/1','position/1');
delete_line('powerwindow','window position/1','obstacle/1');
delete_line('powerwindow','window position/1','top/1');
delete_block('powerwindow/up rate');
delete_block('powerwindow/c0');
delete_block('powerwindow/down rate');
delete_block('powerwindow/c1');
delete_block('powerwindow/up signal conversion');
delete_block('powerwindow/down signal conversion');
delete_block('powerwindow/window input');
delete_block('powerwindow/friction');
delete_block('powerwindow/gain');
delete_block('powerwindow/angular velocity');
delete_block('powerwindow/window position');
case 'delete position detection'
ret = stepTo(POWERWINDOWDEMO_STEP,14,POWERWINDOWDEMO_STEPS);
if(ret < 0) return; end
POWERWINDOWDEMO_STEP = ret;
delete_block('powerwindow/power_window_control_system/detect_obstacle_endstop');
case 'include current detection'
if POWERWINDOWDEMO_STEP == 14
hilite_system('powerwindow/power_window_control_system','find');
pause(0.75)
hilite_system('powerwindow/power_window_control_system','none');
open_system('powerwindow/power_window_control_system');
pause(0.75)
end
powerwindowscript('add current detection');
case 'add current detection'
ret = stepTo(POWERWINDOWDEMO_STEP,15,POWERWINDOWDEMO_STEPS);
if(ret < 0) return; end
POWERWINDOWDEMO_STEP = ret;
add_block('built-in/Reference','powerwindow/power_window_control_system/detect_obstacle_endstop', ...
'Position',[510, 24, 635, 96],'SourceBlock','salib/verify_current');
set_param('powerwindow/power_window_control_system/detect_obstacle_endstop','LinkStatus','inactive')
set_param('powerwindow/power_window_control_system/detect_obstacle_endstop','Orientation','left')
set_param('powerwindow/power_window_control_system/detect_obstacle_endstop','Position',[515, 24, 640, 96])
set_param('powerwindow/power_window_control_system/position','Name','armature_current')
case 'add object switch'
ret = stepTo(POWERWINDOWDEMO_STEP,17,POWERWINDOWDEMO_STEPS);
if(ret < 0) return; end
POWERWINDOWDEMO_STEP = ret;
x_offset = 400
add_block('built-in/GoTo','powerwindow/Goto1', ...
'Position',[x_offset+165, 265, x_offset+255, 285],'TagVisibility','global', ...
'ShowName','off','GotoTag','object_present');
add_block('built-in/Constant',sprintf('powerwindow/present'), ...
'Position',[x_offset+35, 258, x_offset+60, 272],'NamePlacement','alternate', ...
'Value','1');
add_block('built-in/Constant','powerwindow/absent', ...
'Position',[x_offset+35, 278, x_offset+60, 292], ...
'Value','0');
add_block('built-in/Reference','powerwindow/object', ...
'Position',[x_offset+105, 255, x_offset+140, 295],'BackgroundColor','cyan', ...
'SourceBlock','simulink3/Nonlinear/Manual Switch');
%For some reason this has to be moved around to make the lines connect.
set_param('powerwindow/object','NamePlacement','normal')
l = add_line('powerwindow','present/1','object/1');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','absent/1','object/2');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
l = add_line('powerwindow','object/1','Goto1/1');
set_param(l,'FontSize',9) % The default fontsize is 18, for some reason
case 'add VR world'
ret = stepTo(POWERWINDOWDEMO_STEP,18,POWERWINDOWDEMO_STEPS);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -