📄 fmrtw.m
字号:
function [ret,x0,str,ts,xts]=fmrtw(t,x,u,flag);
%FMRTW is the M-file description of the SIMULINK system named FMRTW.
% The block-diagram can be displayed by typing: FMRTW.
%
% SYS=FMRTW(T,X,U,FLAG) returns depending on FLAG certain
% system values given time point, T, current state vector, X,
% and input vector, U.
% FLAG is used to indicate the type of output to be returned in SYS.
%
% Setting FLAG=1 causes FMRTW to return state derivatives, FLAG=2
% discrete states, FLAG=3 system outputs and FLAG=4 next sample
% time. For more information and other options see SFUNC.
%
% Calling FMRTW with a FLAG of zero:
% [SIZES]=FMRTW([],[],[],0), returns a vector, SIZES, which
% contains the sizes of the state vector and other parameters.
% SIZES(1) number of states
% SIZES(2) number of discrete states
% SIZES(3) number of outputs
% SIZES(4) number of inputs
% SIZES(5) number of roots (currently unsupported)
% SIZES(6) direct feedthrough flag
% SIZES(7) number of sample times
%
% For the definition of other parameters in SIZES, see SFUNC.
% See also, TRIM, LINMOD, LINSIM, EULER, RK23, RK45, ADAMS, GEAR.
% Note: This M-file is only used for saving graphical information;
% after the model is loaded into memory an internal model
% representation is used.
% the system will take on the name of this mfile:
sys = mfilename;
new_system(sys)
simver(1.3)
if (0 == (nargin + nargout))
set_param(sys,'Location',[363,42,1004,193])
open_system(sys)
end;
set_param(sys,'algorithm', 'Euler')
set_param(sys,'Start time', '0.0')
set_param(sys,'Stop time', '300')
set_param(sys,'Min step size', '0.0001')
set_param(sys,'Max step size', '10')
set_param(sys,'Relative error','1e-3')
set_param(sys,'Return vars', '[t,x,y]')
set_param(sys,'AssignSampleTimeColors','on');
set_param(sys,'AssignWideVectorLines','on');
set_param(sys,'Nonreal-time algorithm','None')
set_param(sys,'Nonreal-time min step size','0.001')
set_param(sys,'Nonreal-time stop time','20')
set_param(sys,'Nonreal-time save workspace blocks','off')
set_param(sys,'Real-time algorithm','None')
set_param(sys,'Real-time step size','0.0005')
set_param(sys,'Real-time template makefile','rti31.cmm')
set_param(sys,'Real-time build command','make_rt OPTS=-Dinf=1.e30')
% Subsystem 'DS1102DA'.
new_system([sys,'/','DS1102DA'])
set_param([sys,'/','DS1102DA'],'Location',[12,124,275,390])
% Subsystem 'DS1102DA/DAC_#1'.
new_system([sys,'/','DS1102DA/DAC_#1'])
set_param([sys,'/','DS1102DA/DAC_#1'],'Location',[125,40,274,186])
add_block('built-in/Gain',[sys,'/','DS1102DA/DAC_#1/DS_BOARD'])
set_param([sys,'/','DS1102DA/DAC_#1/DS_BOARD'],...
'Gain','range_key',...
'position',[60,60,80,80])
add_block('built-in/Inport',[sys,'/','DS1102DA/DAC_#1/in_1'])
set_param([sys,'/','DS1102DA/DAC_#1/in_1'],...
'position',[10,60,30,80])
add_block('built-in/Outport',[sys,'/','DS1102DA/DAC_#1/out_1'])
set_param([sys,'/','DS1102DA/DAC_#1/out_1'],...
'position',[110,60,130,80])
add_line([sys,'/','DS1102DA/DAC_#1'],[35,70;55,70])
add_line([sys,'/','DS1102DA/DAC_#1'],[85,70;105,70])
set_param([sys,'/','DS1102DA/DAC_#1'],...
'Mask Display','DA',...
'Mask Type','DA Converter',...
'Mask Dialogue','DA Converter|range_key',...
'Mask Translate','range_key=@1;',...
'Mask Entries','10\/')
% Finished composite block 'DS1102DA/DAC_#1'.
set_param([sys,'/','DS1102DA/DAC_#1'],...
'position',[105,40,145,60])
add_block('built-in/Inport',[sys,'/','DS1102DA/in_1'])
set_param([sys,'/','DS1102DA/in_1'],...
'position',[55,40,75,60])
add_block('built-in/Outport',[sys,'/','DS1102DA/out_1'])
set_param([sys,'/','DS1102DA/out_1'],...
'position',[175,40,195,60])
add_line([sys,'/','DS1102DA'],[80,50;100,50])
add_line([sys,'/','DS1102DA'],[150,50;170,50])
set_param([sys,'/','DS1102DA'],...
'Mask Display','DAC\nUnit',...
'Mask Type','DS1102DA v2.0',...
'Mask Dialogue','Voltage range for all DAC channels:\n\n[-10 +10] Volts',...
'Mask Translate',' ')
% Finished composite block 'DS1102DA'.
set_param([sys,'/','DS1102DA'],...
'ForeGround',4,...
'position',[520,24,550,66])
% Subsystem 'OutPlug'.
new_system([sys,'/','OutPlug'])
set_param([sys,'/','OutPlug'],'Location',[0,0,152,163])
add_block('built-in/Gain',[sys,'/','OutPlug/DS_SOP'])
set_param([sys,'/','OutPlug/DS_SOP'],...
'position',[100,50,120,70])
add_block('built-in/Inport',[sys,'/','OutPlug/input'])
set_param([sys,'/','OutPlug/input'],...
'position',[30,50,50,70])
add_line([sys,'/','OutPlug'],[55,60;95,60])
set_param([sys,'/','OutPlug'],...
'Mask Display',' S ',...
'Mask Type','Single output plug v2.0',...
'Mask Dialogue','Single output plug')
% Finished composite block 'OutPlug'.
set_param([sys,'/','OutPlug'],...
'ForeGround',4,...
'position',[590,39,615,51])
% Subsystem ['FDM',13,'passband'].
new_system([sys,'/',['FDM',13,'passband']])
set_param([sys,'/',['FDM',13,'passband']],'Location',[30,490,489,666])
add_block('built-in/Gain',[sys,'/',['FDM',13,'passband/Sensitivity']])
set_param([sys,'/',['FDM',13,'passband/Sensitivity']],...
'Gain','2',...
'position',[75,25,115,55])
add_block('built-in/Product',[sys,'/',['FDM',13,'passband/Multiplier',13,'phase detector']])
set_param([sys,'/',['FDM',13,'passband/Multiplier',13,'phase detector']],...
'position',[190,35,215,55])
add_block('built-in/Filter',[sys,'/',['FDM',13,'passband/Filter']])
set_param([sys,'/',['FDM',13,'passband/Filter']],...
'Numerator','num',...
'Denominator','den',...
'Sample time','ts',...
'position',[275,26,330,64])
% Subsystem ['FDM',13,'passband/Discrete-time',13,'VCO'].
new_system([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],'Location',[93,129,873,276])
add_block('built-in/Outport',[sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/out_1']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/out_1']],...
'position',[690,35,710,55])
add_block('built-in/Gain',[sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Sensitivity3']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Sensitivity3']],...
'Gain','Ac',...
'position',[605,30,655,60])
add_block('built-in/Fcn',[sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/sin']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/sin']],...
'Expr','cos(u[1])',...
'position',[510,32,585,58])
add_block('built-in/Constant',[sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Phase']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Phase']],...
'Value','Ph',...
'position',[400,100,420,120])
add_block('built-in/Sum',[sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Sum']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Sum']],...
'inputs','+++',...
'position',[465,27,485,63])
add_block('built-in/Gain',[sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Sensitivity2']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Sensitivity2']],...
'Gain','Fc',...
'position',[255,75,300,105])
add_block('built-in/Clock',[sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Clock']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Clock']],...
'position',[180,80,200,100])
add_block('built-in/Gain',[sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Sensitivity']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Sensitivity']],...
'Gain','Kc',...
'position',[105,15,155,45])
add_block('built-in/Sum',[sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Sum1']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Sum1']],...
'position',[230,25,250,45])
add_block('built-in/Unit Delay',[sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Unit Delay']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/Unit Delay']],...
'Sample time','ts',...
'position',[300,25,350,45])
add_block('built-in/Inport',[sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/in_1']])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO/in_1']],...
'position',[35,20,55,40])
add_line([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],[660,45;685,45])
add_line([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],[590,45;600,45])
add_line([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],[425,110;435,110;435,55;460,55])
add_line([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],[355,35;460,35])
add_line([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],[370,35;370,70;205,70;205,40;225,40])
add_line([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],[305,90;425,90;425,45;460,45])
add_line([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],[205,90;250,90])
add_line([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],[490,45;505,45])
add_line([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],[255,35;295,35])
add_line([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],[160,30;225,30])
add_line([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],[60,30;100,30])
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],...
'Mask Display','Discrete\nVCO',...
'Mask Type','VCO')
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],...
'Mask Dialogue','Voltage-Controlled Oscilator:|Amplitude constant:|Carier frequency (Hz):|Sensitivity constant:|Initial phase (rad):|Sample time:')
set_param([sys,'/',['FDM',13,'passband/Discrete-time',13,'VCO']],...
'Mask Translate','Ac=@1;Fc=@2;Kc=@3;Ph=@4;pi2=2*pi;ts=@5;Kc=Kc*pi2*ts(1);Fc=Fc*pi2;')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -