📄 s1.m
字号:
function [ret,x0,str,ts,xts]=s1(t,x,u,flag);
%s1 is the M-file description of the SIMULINK system named s1.
% The block-diagram can be displayed by typing: s1.
%
% SYS=s1(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 s1 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 s1 with a FLAG of zero:
% [SIZES]=s1([],[],[],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',[16,40,762,502])
open_system(sys)
end;
set_param(sys,'algorithm', 'RK-45')
set_param(sys,'Start time', '0.0')
set_param(sys,'Stop time', 'tstop')
set_param(sys,'Min step size', '1e-4')
set_param(sys,'Max step size', '5e-3')
set_param(sys,'Relative error','5e-6')
set_param(sys,'Return vars', '')
% Subsystem 'osc'.
new_system([sys,'/','osc'])
set_param([sys,'/','osc'],'Location',[280,55,870,299])
add_block('built-in/Gain',[sys,'/','osc/Gain'])
set_param([sys,'/','osc/Gain'],...
'Gain','-wb',...
'position',[135,63,180,97])
add_block('built-in/Product',[sys,'/','osc/Product'])
set_param([sys,'/','osc/Product'],...
'position',[370,43,390,92])
add_block('built-in/Integrator',[sys,'/','osc/cos'])
set_param([sys,'/','osc/cos'],...
'Initial','cos(thetaro)',...
'position',[215,63,245,97])
add_block('built-in/Inport',[sys,'/','osc/wr//wb'])
set_param([sys,'/','osc/wr//wb'],...
'position',[30,45,50,65])
add_block('built-in/Integrator',[sys,'/','osc/sin'])
set_param([sys,'/','osc/sin'],...
'orientation',2,...
'Initial','sin(thetaro)',...
'position',[265,123,295,157])
add_block('built-in/Gain',[sys,'/','osc/Gain1'])
set_param([sys,'/','osc/Gain1'],...
'orientation',2,...
'Gain','wb',...
'position',[340,120,385,160])
add_block('built-in/Product',[sys,'/','osc/Product1'])
set_param([sys,'/','osc/Product1'],...
'orientation',2,...
'position',[140,128,160,172])
add_block('built-in/Outport',[sys,'/','osc/cos_thetar'])
set_param([sys,'/','osc/cos_thetar'],...
'position',[470,105,490,125])
add_block('built-in/Outport',[sys,'/','osc/sin_thetar'])
set_param([sys,'/','osc/sin_thetar'],...
'Port','2',...
'position',[470,160,490,180])
add_line([sys,'/','osc'],[260,140;165,140])
add_line([sys,'/','osc'],[250,80;270,80;270,115;465,115])
add_line([sys,'/','osc'],[395,70;415,70;415,140;390,140])
add_line([sys,'/','osc'],[55,55;365,55])
add_line([sys,'/','osc'],[250,80;365,80])
add_line([sys,'/','osc'],[185,80;210,80])
add_line([sys,'/','osc'],[135,150;115,150;115,80;130,80])
add_line([sys,'/','osc'],[335,140;300,140])
add_line([sys,'/','osc'],[55,55;90,55;90,190;200,190;200,160;165,160])
add_line([sys,'/','osc'],[260,140;230,140;230,170;465,170])
% Finished composite block 'osc'.
set_param([sys,'/','osc'],...
'position',[605,276,640,314])
add_block('built-in/Note',[sys,'/','vcg'])
set_param([sys,'/','vcg'],...
'position',[215,320,220,325])
add_block('built-in/Note',[sys,'/','vbg'])
set_param([sys,'/','vbg'],...
'position',[205,275,210,280])
add_block('built-in/Fcn',[sys,'/','Fcn'])
set_param([sys,'/','Fcn'],...
'Expr','u[2]*cos(u[1] )',...
'position',[65,237,180,263])
% Subsystem 'Tmech'.
new_system([sys,'/','Tmech'])
set_param([sys,'/','Tmech'],'Location',[5,40,315,196])
add_block('built-in/Outport',[sys,'/','Tmech/out_1'])
set_param([sys,'/','Tmech/out_1'],...
'position',[285,60,305,80])
add_block('built-in/Look Up Table',[sys,'/','Tmech/Look-Up Table'])
set_param([sys,'/','Tmech/Look-Up Table'],...
'Input_Values','t',...
'Output_Values','y',...
'position',[210,58,250,82])
add_block('built-in/Fcn',[sys,'/','Tmech/Fcn1'])
set_param([sys,'/','Tmech/Fcn1'],...
'Expr','rem(u[1],period)',...
'position',[110,60,150,80])
add_block('built-in/Clock',[sys,'/','Tmech/Clock'])
set_param([sys,'/','Tmech/Clock'],...
'position',[45,60,65,80])
add_line([sys,'/','Tmech'],[255,70;280,70])
add_line([sys,'/','Tmech'],[70,70;105,70])
add_line([sys,'/','Tmech'],[155,70;205,70])
set_param([sys,'/','Tmech'],...
'Mask Display','plot([t,t+period,t+2*period],[y,y,y])',...
'Mask Type','Repeating table',...
'Mask Dialogue','Repeating table.\nEnter values of time and output for first cycle.|Time values:|Output values:')
set_param([sys,'/','Tmech'],...
'Mask Translate','period = max(@1); t = @1; y = @2;',...
'Mask Help','Repeats cycle given in table. Time values should be monotonically increasing.',...
'Mask Entries','tmech_time\/tmech_value\/')
% Finished composite block 'Tmech'.
set_param([sys,'/','Tmech'],...
'position',[320,340,345,360])
add_block('built-in/Note',[sys,'/','vd'])
set_param([sys,'/','vd'],...
'position',[345,270,350,275])
add_block('built-in/Note',[sys,'/','vq'])
set_param([sys,'/','vq'],...
'position',[355,240,360,245])
% Subsystem 'abc2qd0'.
new_system([sys,'/','abc2qd0'])
set_param([sys,'/','abc2qd0'],'Location',[454,254,1125,632])
add_block('built-in/Outport',[sys,'/','abc2qd0/vq'])
set_param([sys,'/','abc2qd0/vq'],...
'position',[595,70,615,90])
add_block('built-in/Outport',[sys,'/','abc2qd0/vd'])
set_param([sys,'/','abc2qd0/vd'],...
'Port','2',...
'position',[590,145,610,165])
add_block('built-in/Outport',[sys,'/','abc2qd0/vd0'])
set_param([sys,'/','abc2qd0/vd0'],...
'Port','3',...
'position',[590,225,610,245])
add_block('built-in/Fcn',[sys,'/','abc2qd0/abc2q'])
set_param([sys,'/','abc2qd0/abc2q'],...
'Expr','(2*u[1]- u[2] - u[3])/3',...
'position',[150,129,290,151])
add_block('built-in/Fcn',[sys,'/','abc2qd0/abc20'])
set_param([sys,'/','abc2qd0/abc20'],...
'Expr','(u[1] + u[2] + u[3])/3',...
'position',[150,224,290,246])
add_block('built-in/Fcn',[sys,'/','abc2qd0/abc2d'])
set_param([sys,'/','abc2qd0/abc2d'],...
'Expr','(u[3] -u[2])/sqrt(3)',...
'position',[150,174,290,196])
add_block('built-in/Inport',[sys,'/','abc2qd0/vc'])
set_param([sys,'/','abc2qd0/vc'],...
'Port','3',...
'position',[40,210,60,230])
add_block('built-in/Inport',[sys,'/','abc2qd0/vb'])
set_param([sys,'/','abc2qd0/vb'],...
'Port','2',...
'position',[40,175,60,195])
add_block('built-in/Inport',[sys,'/','abc2qd0/va'])
set_param([sys,'/','abc2qd0/va'],...
'position',[40,140,60,160])
add_block('built-in/Mux',[sys,'/','abc2qd0/Mux'])
set_param([sys,'/','abc2qd0/Mux'],...
'inputs','3',...
'position',[90,129,115,241])
add_block('built-in/Note',[sys,'/','abc2qd0/vds'])
set_param([sys,'/','abc2qd0/vds'],...
'position',[325,150,330,155])
add_block('built-in/Inport',[sys,'/','abc2qd0/cos_thetar'])
set_param([sys,'/','abc2qd0/cos_thetar'],...
'Port','4',...
'position',[40,60,60,80])
add_block('built-in/Mux',[sys,'/','abc2qd0/Mux1'])
set_param([sys,'/','abc2qd0/Mux1'],...
'position',[375,56,400,189])
add_block('built-in/Inport',[sys,'/','abc2qd0/sin_thetar'])
set_param([sys,'/','abc2qd0/sin_thetar'],...
'Port','5',...
'position',[40,95,60,115])
add_block('built-in/Note',[sys,'/','abc2qd0/abc2qd0'])
set_param([sys,'/','abc2qd0/abc2qd0'],...
'position',[205,275,210,280])
add_block('built-in/Note',[sys,'/','abc2qd0/qds2qdr'])
set_param([sys,'/','abc2qd0/qds2qdr'],...
'position',[470,275,475,280])
add_block('built-in/Fcn',[sys,'/','abc2qd0/qds2dr'])
set_param([sys,'/','abc2qd0/qds2dr'],...
'Expr','u[2]*u[3] + u[1]*u[4] ',...
'position',[425,143,560,167])
add_block('built-in/Fcn',[sys,'/','abc2qd0/qds2qr'])
set_param([sys,'/','abc2qd0/qds2qr'],...
'Expr','u[1]*u[3] - u[2]*u[4]',...
'position',[425,68,560,92])
add_block('built-in/Note',[sys,'/','abc2qd0/vqs'])
set_param([sys,'/','abc2qd0/vqs'],...
'position',[325,118,330,123])
add_line([sys,'/','abc2qd0'],[120,185;125,185;125,140;145,140])
add_line([sys,'/','abc2qd0'],[120,185;145,185])
add_line([sys,'/','abc2qd0'],[405,125;405,80;420,80])
add_line([sys,'/','abc2qd0'],[405,125;405,155;420,155])
add_line([sys,'/','abc2qd0'],[65,150;85,150])
add_line([sys,'/','abc2qd0'],[65,185;85,185])
add_line([sys,'/','abc2qd0'],[65,220;85,220])
add_line([sys,'/','abc2qd0'],[565,80;590,80])
add_line([sys,'/','abc2qd0'],[565,155;585,155])
add_line([sys,'/','abc2qd0'],[120,185;125,185;125,235;145,235])
add_line([sys,'/','abc2qd0'],[65,70;370,70])
add_line([sys,'/','abc2qd0'],[65,105;370,105])
add_line([sys,'/','abc2qd0'],[295,140;370,140])
add_line([sys,'/','abc2qd0'],[295,185;325,185;325,175;370,175])
add_line([sys,'/','abc2qd0'],[295,235;585,235])
% Finished composite block 'abc2qd0'.
set_param([sys,'/','abc2qd0'],...
'Font Number',3,...
'position',[270,242,310,338])
add_block('built-in/Note',[sys,'/','sin (wrt)'])
set_param([sys,'/','sin (wrt)'],...
'position',[590,365,595,370])
add_block('built-in/Note',[sys,'/','cos (wrt)'])
set_param([sys,'/','cos (wrt)'],...
'position',[590,385,595,390])
add_block('built-in/Clock',[sys,'/','Clock'])
set_param([sys,'/','Clock'],...
'orientation',3,...
'position',[214,165,236,185])
add_block('built-in/Note',[sys,'/','Tem'])
set_param([sys,'/','Tem'],...
'position',[470,295,475,300])
add_block('built-in/Note',[sys,'/','delta'])
set_param([sys,'/','delta'],...
'position',[470,255,475,260])
add_block('built-in/Note',[sys,'/','id_gen'])
set_param([sys,'/','id_gen'],...
'position',[475,335,480,340])
add_block('built-in/Note',[sys,'/','wr//wb'])
set_param([sys,'/','wr//wb'],...
'position',[475,275,480,280])
% Subsystem 'Ef'.
new_system([sys,'/','Ef'])
set_param([sys,'/','Ef'],'Location',[5,40,315,196])
add_block('built-in/Outport',[sys,'/','Ef/out_1'])
set_param([sys,'/','Ef/out_1'],...
'position',[285,60,305,80])
add_block('built-in/Look Up Table',[sys,'/','Ef/Look-Up Table'])
set_param([sys,'/','Ef/Look-Up Table'],...
'Input_Values','t',...
'Output_Values','y',...
'position',[210,58,250,82])
add_block('built-in/Fcn',[sys,'/','Ef/Fcn1'])
set_param([sys,'/','Ef/Fcn1'],...
'Expr','rem(u[1],period)',...
'position',[110,60,150,80])
add_block('built-in/Clock',[sys,'/','Ef/Clock'])
set_param([sys,'/','Ef/Clock'],...
'position',[45,60,65,80])
add_line([sys,'/','Ef'],[255,70;280,70])
add_line([sys,'/','Ef'],[70,70;105,70])
add_line([sys,'/','Ef'],[155,70;205,70])
set_param([sys,'/','Ef'],...
'Mask Display','plot([t,t+period,t+2*period],[y,y,y])',...
'Mask Type','Repeating table',...
'Mask Dialogue','Repeating table.\nEnter values of time and output for first cycle.|Time values:|Output values:')
set_param([sys,'/','Ef'],...
'Mask Translate','period = max(@1); t = @1; y = @2;',...
'Mask Help','Repeats cycle given in table. Time values should be monotonically increasing.',...
'Mask Entries','Ex_time\/Ex_value\/')
% Finished composite block 'Ef'.
set_param([sys,'/','Ef'],...
'position',[345,310,375,330])
% Subsystem 'qd_gen'.
new_system([sys,'/','qd_gen'])
set_param([sys,'/','qd_gen'],'Location',[165,178,780,654])
add_block('built-in/Outport',[sys,'/','qd_gen/iq_gen'])
set_param([sys,'/','qd_gen/iq_gen'],...
'position',[340,80,360,100])
add_block('built-in/Inport',[sys,'/','qd_gen/vq'])
set_param([sys,'/','qd_gen/vq'],...
'position',[60,65,80,85])
add_block('built-in/Product',[sys,'/','qd_gen/prod1'])
set_param([sys,'/','qd_gen/prod1'],...
'orientation',2,...
'Font Number',3,...
'position',[165,148,185,172])
add_block('built-in/Product',[sys,'/','qd_gen/prod2'])
set_param([sys,'/','qd_gen/prod2'],...
'orientation',2,...
'Font Number',3,...
'position',[165,193,185,222])
add_block('built-in/Outport',[sys,'/','qd_gen/id_gen'])
set_param([sys,'/','qd_gen/id_gen'],...
'Port','6',...
'position',[240,310,260,330])
% Subsystem 'qd_gen/d_cct'.
new_system([sys,'/','qd_gen/d_cct'])
set_param([sys,'/','qd_gen/d_cct'],'Location',[148,276,1097,793])
add_block('built-in/Outport',[sys,'/','qd_gen/d_cct/Out_psid'])
set_param([sys,'/','qd_gen/d_cct/Out_psid'],...
'position',[585,45,605,65])
add_block('built-in/Inport',[sys,'/','qd_gen/d_cct/In_Ef'])
set_param([sys,'/','qd_gen/d_cct/In_Ef'],...
'Port','3',...
'position',[50,250,70,270])
add_block('built-in/Outport',[sys,'/','qd_gen/d_cct/Out_ipf'])
set_param([sys,'/','qd_gen/d_cct/Out_ipf'],...
'Port','4',...
'position',[835,335,855,355])
add_block('built-in/Outport',[sys,'/','qd_gen/d_cct/Out_-id'])
set_param([sys,'/','qd_gen/d_cct/Out_-id'],...
'Port','2',...
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -