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

📄 simulink.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 4 页
字号:
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Relational',13,'operator2']],...
		'hide name',0,...
		'Operator','<=',...
		'position',[415,231,445,284])

add_block('built-in/Logical Operator',[sys,'/',['Nonlinear/Limited',13,'Integrator/Logical',13,'Operator1']])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Logical',13,'Operator1']],...
		'hide name',0,...
		'Operator','OR',...
		'position',[490,200,525,235])

add_block('built-in/Logical Operator',[sys,'/',['Nonlinear/Limited',13,'Integrator/Logical',13,'Operator2']])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Logical',13,'Operator2']],...
		'hide name',0,...
		'Operator','OR',...
		'position',[490,360,525,395])

add_block('built-in/Logical Operator',[sys,'/',['Nonlinear/Limited',13,'Integrator/Logical',13,'Operator']])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Logical',13,'Operator']],...
		'hide name',0,...
		'Operator','AND',...
		'position',[570,280,605,315])

add_block('built-in/Constant',[sys,'/',['Nonlinear/Limited',13,'Integrator/Constant3']])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Constant3']],...
		'hide name',0,...
		'Value','0',...
		'position',[355,260,375,280])

add_block('built-in/Constant',[sys,'/',['Nonlinear/Limited',13,'Integrator/Constant4']])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Constant4']],...
		'hide name',0,...
		'Value','0',...
		'position',[355,425,375,445])

add_block('built-in/Outport',[sys,'/',['Nonlinear/Limited',13,'Integrator/Outport']])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Outport']],...
		'position',[515,110,535,130])

add_block('built-in/Inport',[sys,'/',['Nonlinear/Limited',13,'Integrator/Inport']])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Inport']],...
		'position',[25,85,45,105])

add_block('built-in/Constant',[sys,'/',['Nonlinear/Limited',13,'Integrator/Constant2']])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Constant2']],...
		'Value','0',...
		'position',[20,135,40,155])

add_block('built-in/Integrator',[sys,'/',['Nonlinear/Limited',13,'Integrator/Integrator']])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Integrator']],...
		'Initial','X0',...
		'position',[165,99,200,141])

add_block('built-in/Switch',[sys,'/',['Nonlinear/Limited',13,'Integrator/Switch']])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Switch']],...
		'Threshold','0.5',...
		'position',[110,80,135,160])

add_block('built-in/Saturation',[sys,'/',['Nonlinear/Limited',13,'Integrator/Saturation']])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator/Saturation']],...
		'Lower Limit','lower_limit',...
		'Upper Limit','upper_limit',...
		'position',[325,110,350,130])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[205,120;245,120;245,165;315,165;315,325;410,325])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[315,165;410,165])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[380,435;410,435])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[380,270;410,270])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[530,380;540,380;540,305;565,305])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[450,425;460,425;460,385;485,385])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[450,340;460,340;460,370;485,370])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[530,220;540,220;540,290;565,290])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[450,260;465,260;465,225;485,225])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[450,180;465,180;465,210;485,210])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[45,145;105,145])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[610,300;625,300;625,490;85,490;85,120;105,120])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[395,355;410,355])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[400,190;410,190])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[140,120;160,120])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[50,95;105,95])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[65,95;65,245;410,245])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[65,245;65,410;410,410])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[205,120;320,120])
add_line([sys,'/',['Nonlinear/Limited',13,'Integrator']],[355,120;510,120])
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator']],...
		'Mask Display','plot(-1,-0.2,3.5,1.2,[0.05,1,2,2.9],[0,0,1,1]); 1/s    ',...
		'Mask Type','Limited Integrator.')
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator']],...
		'Mask Dialogue','Limited Integrator|Lower bound:|Upper bound:|Initial condition:',...
		'Mask Translate','lower_limit=@1;upper_limit=@2;X0=@3;')
set_param([sys,'/',['Nonlinear/Limited',13,'Integrator']],...
		'Mask Help','Implements a limited integrator with \nan expression of the form:\n\nif(x<=lb and u<0) or (x>=ub and u>0)\n   xdot=0\nelse\n   xdot=u',...
		'Mask Entries','-.5\/.5\/0\/')


%     Finished composite block ['Nonlinear/Limited',13,'Integrator'].

set_param([sys,'/',['Nonlinear/Limited',13,'Integrator']],...
		'position',[255,325,295,355])


%     Finished composite block 'Nonlinear'.

set_param([sys,'/','Nonlinear'],...
		'position',[275,5,304,55])


%     Subsystem  'Sinks'.

new_system([sys,'/','Sinks'])
set_param([sys,'/','Sinks'],'Location',[57,236,239,545])

add_block('built-in/Note',[sys,'/','Sinks/Signal Sinks Library'])
set_param([sys,'/','Sinks/Signal Sinks Library'],...
		'position',[95,5,100,10])

add_block('built-in/Stop Simulation',[sys,'/','Sinks/Stop Simulation'])
set_param([sys,'/','Sinks/Stop Simulation'],...
		'position',[105,158,145,192])


%     Subsystem  'Sinks/XY Graph'.

new_system([sys,'/','Sinks/XY Graph'])
set_param([sys,'/','Sinks/XY Graph'],'Location',[8,52,282,245])

add_block('built-in/S-Function',[sys,'/',['Sinks/XY Graph/S-function',13,'M-file which plots',13,'lines',13,'']])
set_param([sys,'/',['Sinks/XY Graph/S-function',13,'M-file which plots',13,'lines',13,'']],...
		'function name','sfunxy',...
		'parameters','ax, st',...
		'position',[185,70,235,90])

add_block('built-in/Mux',[sys,'/','Sinks/XY Graph/Mux'])
set_param([sys,'/','Sinks/XY Graph/Mux'],...
		'inputs','2',...
		'position',[100,61,130,94])

add_block('built-in/Inport',[sys,'/','Sinks/XY Graph/x'])
set_param([sys,'/','Sinks/XY Graph/x'],...
		'position',[10,30,30,50])

add_block('built-in/Inport',[sys,'/','Sinks/XY Graph/y'])
set_param([sys,'/','Sinks/XY Graph/y'],...
		'Port','2',...
		'position',[10,100,30,120])
add_line([sys,'/','Sinks/XY Graph'],[135,80;180,80])
add_line([sys,'/','Sinks/XY Graph'],[35,40;70,40;70,70;95,70])
add_line([sys,'/','Sinks/XY Graph'],[35,110;70,110;70,85;95,85])
set_param([sys,'/','Sinks/XY Graph'],...
		'Mask Display','plot(0,0,100,100,[12,91,91,12,12],[90,90,45,45,90],[51,57,65,75,80,79,75,67,60,54,51,48,42,34,28,27,31,42,51],[71,68,66,66,72,79,83,84,81,77,71,60,54,54,58,65,71,74,71])')
set_param([sys,'/','Sinks/XY Graph'],...
		'Mask Type','XY scope.',...
		'Mask Dialogue','XY scope using MATLAB graph window.\nFirst input is used as time base.\nEnter plotting ranges.|x-min:|x-max:|y-min:|y-max:')
set_param([sys,'/','Sinks/XY Graph'],...
		'Mask Translate','ax = [@1, @2, @3, @4];st=-1;',...
		'Mask Help','This block can be used to explore limit cycles. Look at the m-file sfunxy.m to see how it works.')
set_param([sys,'/','Sinks/XY Graph'],...
		'Mask Entries','-10\/10\/-10\/10\/')


%     Finished composite block 'Sinks/XY Graph'.

set_param([sys,'/','Sinks/XY Graph'],...
		'position',[30,236,60,274])


%     Subsystem  'Sinks/Graph'.

new_system([sys,'/','Sinks/Graph'])
set_param([sys,'/','Sinks/Graph'],'Location',[0,59,274,252])

add_block('built-in/S-Function',[sys,'/',['Sinks/Graph/S-function',13,'M-file which plots',13,'lines',13,'']])
set_param([sys,'/',['Sinks/Graph/S-function',13,'M-file which plots',13,'lines',13,'']],...
		'function name','sfuny',...
		'parameters','ax, color,dt',...
		'position',[130,55,180,75])

add_block('built-in/Inport',[sys,'/','Sinks/Graph/x'])
set_param([sys,'/','Sinks/Graph/x'],...
		'position',[65,55,85,75])
add_line([sys,'/','Sinks/Graph'],[90,65;125,65])
set_param([sys,'/','Sinks/Graph'],...
		'Mask Display','plot(0,0,100,100,[90,10,10,10,90,90,10],[65,65,90,40,40,90,90],[90,78,69,54,40,31,25,10],[77,60,48,46,56,75,81,84])',...
		'Mask Type','Graph scope.')
set_param([sys,'/','Sinks/Graph'],...
		'Mask Dialogue','Graph scope using MATLAB graph window.\nEnter plotting ranges and line type.|Time range:|y-min:|y-max:|Line type (rgbw-:*). Seperate each plot by ''/'':')
set_param([sys,'/','Sinks/Graph'],...
		'Mask Translate','color = @4; ax = [0, @1, @2, @3]; dt = -1;')
set_param([sys,'/','Sinks/Graph'],...
		'Mask Help','This block plots to the MATLAB graph window and can be used as an improved version of the Scope block. Look at the m-file sfuny.m to see how it works. This block can take scalar or vector input signal.')
set_param([sys,'/','Sinks/Graph'],...
		'Mask Entries','20\/-1.1\/1.2\/''y-/g--/c-./w:/m*/ro/b+''\/')


%     Finished composite block 'Sinks/Graph'.

set_param([sys,'/','Sinks/Graph'],...
		'position',[30,91,60,129])

add_block('built-in/To Workspace',[sys,'/','Sinks/To Workspace'])
set_param([sys,'/','Sinks/To Workspace'],...
		'mat-name','yout',...
		'position',[100,37,150,53])

add_block('built-in/To File',[sys,'/','Sinks/To File'])
set_param([sys,'/','Sinks/To File'],...
		'position',[90,90,165,120])

add_block('built-in/Scope',[sys,'/','Sinks/Scope'])
set_param([sys,'/','Sinks/Scope'],...
		'Vgain','1.000000',...
		'Hgain','1.000000',...
		'Vmax','2.000000',...
		'Hmax','2.000000',...
		'Window',[112,160,443,474],...
		'position',[30,35,60,65])


%     Subsystem  ['Sinks/Auto-Scale',13,'Graph'].

new_system([sys,'/',['Sinks/Auto-Scale',13,'Graph']])
set_param([sys,'/',['Sinks/Auto-Scale',13,'Graph']],'Location',[0,59,274,252])

add_block('built-in/S-Function',[sys,'/',['Sinks/Auto-Scale',13,'Graph/S-function',13,'M-file which plots',13,'lines',13,'']])
set_param([sys,'/',['Sinks/Auto-Scale',13,'Graph/S-function',13,'M-file which plots',13,'lines',13,'']],...
		'function name','sfunyst',...
		'parameters','ax, color, npts, dt',...
		'position',[130,55,180,75])

add_block('built-in/Inport',[sys,'/',['Sinks/Auto-Scale',13,'Graph/x']])
set_param([sys,'/',['Sinks/Auto-Scale',13,'Graph/x']],...
		'position',[65,55,85,75])
add_line([sys,'/',['Sinks/Auto-Scale',13,'Graph']],[90,65;125,65])
set_param([sys,'/',['Sinks/Auto-Scale',13,'Graph']],...
		'Mask Display','plot(0,0,100,100,[83,76,63,52,42,38,28,16,11,84,11,11,11,90,90,11],[75,58,47,54,72,80,84,74,65,65,65,90,40,40,90,90])',...
		'Mask Type','Storage scope.')
set_param([sys,'/',['Sinks/Auto-Scale',13,'Graph']],...
		'Mask Dialogue','Storage scope using MATLAB graph window.\nEnter plotting ranges and line type.|Initial Time Range:|Initial y-min:|Initial y-max:|Storage pts.:|Line type (rgbw-.:xo):')
set_param([sys,'/',['Sinks/Auto-Scale',13,'Graph']],...
		'Mask Translate','npts = @4; color = @5; ax = [0, @1, @2, @3]; dt=-1;')
set_param([sys,'/',['Sinks/Auto-Scale',13,'Graph']],...
		'Mask Help','This block uses a MATLAB figure window to plot the input signal.  The graph limits are automatically scaled to the min and max values of the signal stored in the scope''s signal buffer.  Line type must be in quotes.  See the M-file sfunyst.m.')
set_param([sys,'/',['Sinks/Auto-Scale',13,'Graph']],...
		'Mask Entries','5\/-10\/10\/200\/''y-/g--/c-./w:/m*/ro/b+''\/')


%     Finished composite block ['Sinks/Auto-Scale',13,'Graph'].

set_param([sys,'/',['Sinks/Auto-Scale',13,'Graph']],...
		'position',[30,155,60,195])


%     Subsystem  'Sinks/Hit Crossing'.

new_system([sys,'/','Sinks/Hit Crossing'])
set_param([sys,'/','Sinks/Hit Crossing'],'Location',[90,259,548,551])

add_block('built-in/Note',[sys,'/',['Sinks/Hit Crossing/Places discontinuity into integrator',13,'which slows the simulation down. ']])
set_param([sys,'/',['Sinks/Hit Crossing/Places discontinuity into integrator',13,'which slows the simulation down. ']],...
		'position',[145,180,150,185])

add_block('built-in/Reset Integrator',[sys,'/',['Sinks/Hit Crossing/Resetable',13,'Integrator',13,'to stop integral ',13,'wind-up']])
set_param([sys,'/',['Sinks/Hit Crossing/Resetable',13,'Integrator',13,'to stop integral ',13,'wind-up']],...
		'position',[350,37,380,153])

add_block('built-in/Relational Operator',[sys,'/',['Sinks/Hit Crossing/Relational',13,'Operator']])
set_param([sys,'/',['Sinks/Hit Crossing/Relational',13,'Operator']],...
		'Operator','<',...
		'position',[190,37,220,68])

add_block('built-in/Gain',[sys,'/','Sinks/Hit Crossing/Gain'])
set_param([sys,'/','Sinks/Hit Crossing/Gain'],...
		'Gain','1/tol',...
		'position',[265,45,285,65])

add_block('built-in/Inport',[sys,'/','Sinks/Hit Crossing/in_1'])
set_param([sys,'/','Sinks/Hit Crossing/in_1'],...
		'position',[50,35,70,55])

add_block('built-in/Constant',[sys,'/','Sinks/Hit Crossing/Constant1'])
set_param([sys,'/','Sinks/Hit Crossing/Constant1'],...
		'Value','cross',...
		'position',[35,80,85,100])

add_block('built-in/Constant',[sys,'/','Sinks/Hit Crossing/Constant'])
set_param([sys,'/','Sinks/Hit Crossing/Constant'],...
		'Value','0',...
		'position',[235,125,285,145])
add_line([sys,'/','Sinks/Hit Crossing'],[385,95;415,95;415,230;305,230;305,95;345,95])
add_line([sys,'/','Sinks/Hit Crossing'],[290,135;345,135])
add_line([sys,'/','Sinks/Hit Crossing'],[75,45;185,45])
add_line([sys,'/','Sinks/Hit Crossing'],[290,55;345,55])
add_line([sys,'/','Sinks/Hit Crossing'],[90,90;145,90;145,60;185,60])
add_line([sys,'/','Sinks/Hit Crossing'],[225,55;260,55])
set_param([sys,'/','Sinks/Hit Crossing'],...
		'Mask Display','plot(-0.2,-0.2,3.45,1.2,dvec,abs(cos(dvec)),[.6 2.5],[0 0])',...
		'Mask Type','Crossing')
set_param([sys,'/','Sinks/Hit Crossing'],...
		'Mask Dialogue','Causes simulation to take smaller steps at the crossing value (for instance, near a discontinuity). |Crossing Value:|Tol: (typically square simulation tol)')
set_param([sys,'/','Sinks/Hit Crossing'],...
		'Mask Translate','cross=@1; tol=@2;dvec=-.3:.03:(pi+.3);')
set_param([sys,'/','Sinks/Hit Crossing'],...
		'Mask Help','This block causes the simulator to take smaller steps near a crossing point. Systems with discontinuities can be more accurately modeled with this block. Use in conjunction with derivative blocks to stop at rising or falling crossing points.')
set_param([sys,'/','Sinks/Hit Crossing'],...
		'Mask Entries','0\/1e-6\/')


%     Finished composite block 'Sinks/Hit Crossing'.

set_param([sys,'/','Sinks/Hit Crossing'],...
		'position',[105,235,145,275])


%     Finished composite block 'Sinks'.

set_param([sys,'/','Sinks'],...
		'position',[79,5,109,55])

drawnow

% Return any arguments.
if (nargin | nargout)
	% Must use feval here to access system in memory
	if (nargin > 3)
		if (flag == 0)
			eval(['[ret,x0,str,ts,xts]=',sys,'(t,x,u,flag);'])
		else
			eval(['ret =', sys,'(t,x,u,flag);'])
		end
	else
		[ret,x0,str,ts,xts] = feval(sys);
	end
else
	drawnow % Flash up the model and execute load callback
end

⌨️ 快捷键说明

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