📄 s2o.m
字号:
function [ret,x0,str,ts,xts]=s2o(t,x,u,flag);
%s2o is the M-file description of the SIMULINK system named s2o.
% The block-diagram can be displayed by typing: s2o.
%
% SYS=s2o(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 s2o 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 s2o with a FLAG of zero:
% [SIZES]=s2o([],[],[],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',[166,80,961,496])
open_system(sys)
end;
set_param(sys,'algorithm', 'Adams/Gear')
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', '1e-2')
set_param(sys,'Relative error','1e-5')
set_param(sys,'Return vars', '')
% 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','time_tmech\/tmech_tmech\/')
% Finished composite block 'Tmech'.
set_param([sys,'/','Tmech'],...
'position',[410,269,450,291])
add_block('built-in/Sum',[sys,'/','Sum'])
set_param([sys,'/','Sum'],...
'inputs','+++',...
'position',[715,226,735,264])
add_block('built-in/Mux',[sys,'/','Mux1'])
set_param([sys,'/','Mux1'],...
'inputs','2',...
'position',[420,151,440,184])
add_block('built-in/Note',[sys,'/','wr//wb'])
set_param([sys,'/','wr//wb'],...
'position',[445,220,450,225])
add_block('built-in/Fcn',[sys,'/','Fcn'])
set_param([sys,'/','Fcn'],...
'Expr','sqrt(u[1]*u[1]+u[2]*u[2])',...
'position',[465,159,495,181])
add_block('built-in/Product',[sys,'/','Product1'])
set_param([sys,'/','Product1'],...
'orientation',2,...
'position',[340,243,360,267])
add_block('built-in/Product',[sys,'/','Product'])
set_param([sys,'/','Product'],...
'orientation',2,...
'position',[335,199,355,221])
add_block('built-in/Fcn',[sys,'/','Fcn1'])
set_param([sys,'/','Fcn1'],...
'Expr','sqrt(u[1]*u[1]+u[2]*u[2])',...
'position',[640,125,680,145])
add_block('built-in/Mux',[sys,'/','Mux2'])
set_param([sys,'/','Mux2'],...
'inputs','2',...
'position',[595,115,615,155])
% Subsystem 'Qaxis'.
new_system([sys,'/','Qaxis'])
set_param([sys,'/','Qaxis'],'Location',[213,440,1045,854])
add_block('built-in/Fcn',[sys,'/','Qaxis/Fcn'])
set_param([sys,'/','Qaxis/Fcn'],...
'Expr','wb*(u[2]+(rs/xls)*(u[1]-u[3]))',...
'position',[145,135,310,165])
add_block('built-in/Mux',[sys,'/','Qaxis/Mux'])
set_param([sys,'/','Qaxis/Mux'],...
'inputs','3',...
'position',[100,108,120,192])
add_block('built-in/Inport',[sys,'/','Qaxis/in_vqs'])
set_param([sys,'/','Qaxis/in_vqs'],...
'position',[50,140,70,160])
add_block('built-in/Outport',[sys,'/','Qaxis/out_psiqs'])
set_param([sys,'/','Qaxis/out_psiqs'],...
'position',[735,65,755,85])
add_block('built-in/Outport',[sys,'/','Qaxis/out_iqs'])
set_param([sys,'/','Qaxis/out_iqs'],...
'Port','2',...
'position',[735,130,755,150])
add_block('built-in/Fcn',[sys,'/','Qaxis/Fcn4'])
set_param([sys,'/','Qaxis/Fcn4'],...
'Expr','(u[1]-u[2])/xls',...
'position',[495,126,585,154])
add_block('built-in/Mux',[sys,'/','Qaxis/Mux4'])
set_param([sys,'/','Qaxis/Mux4'],...
'inputs','2',...
'position',[450,114,470,161])
add_block('built-in/Note',[sys,'/','Qaxis/iqs'])
set_param([sys,'/','Qaxis/iqs'],...
'position',[600,120,605,125])
add_block('built-in/Integrator',[sys,'/','Qaxis/psiqs_'])
set_param([sys,'/','Qaxis/psiqs_'],...
'Initial','Psiqso',...
'position',[335,137,365,163])
add_block('built-in/Note',[sys,'/','Qaxis/psiqs'])
set_param([sys,'/','Qaxis/psiqs'],...
'position',[380,125,385,130])
add_block('built-in/Note',[sys,'/','Qaxis/psiqm'])
set_param([sys,'/','Qaxis/psiqm'],...
'position',[665,200,670,205])
add_block('built-in/Outport',[sys,'/',['Qaxis/out_iqr''']])
set_param([sys,'/',['Qaxis/out_iqr''']],...
'Port','3',...
'position',[735,305,755,325])
add_block('built-in/Fcn',[sys,'/','Qaxis/Fcn5'])
set_param([sys,'/','Qaxis/Fcn5'],...
'Expr','(u[1]-u[2])/xplr',...
'position',[490,300,585,330])
add_block('built-in/Integrator',[sys,'/',['Qaxis/psiqr''_']])
set_param([sys,'/',['Qaxis/psiqr''_']],...
'Initial','Psipqro',...
'position',[345,287,375,313])
add_block('built-in/Note',[sys,'/',['Qaxis/iqr''']])
set_param([sys,'/',['Qaxis/iqr''']],...
'position',[600,292,605,297])
add_block('built-in/Mux',[sys,'/','Qaxis/Mux1'])
set_param([sys,'/','Qaxis/Mux1'],...
'inputs','3',...
'position',[105,262,125,338])
add_block('built-in/Fcn',[sys,'/','Qaxis/Fcn2'])
set_param([sys,'/','Qaxis/Fcn2'],...
'Expr','wb*(u[2] +(rpr/xplr)*(u[3]-u[1]))',...
'position',[145,284,325,316])
add_block('built-in/Inport',[sys,'/',['Qaxis/in_(wr//wb)*psidr''']])
set_param([sys,'/',['Qaxis/in_(wr//wb)*psidr''']],...
'Port','2',...
'position',[45,290,65,310])
add_block('built-in/Fcn',[sys,'/','Qaxis/Fcn3'])
set_param([sys,'/','Qaxis/Fcn3'],...
'Expr','xM*(u[1]/xls+u[2]/xplr)',...
'position',[485,207,635,243])
add_block('built-in/Mux',[sys,'/','Qaxis/Mux3'])
set_param([sys,'/','Qaxis/Mux3'],...
'inputs','2',...
'position',[445,193,465,257])
add_block('built-in/Mux',[sys,'/','Qaxis/Mux2'])
set_param([sys,'/','Qaxis/Mux2'],...
'inputs','2',...
'position',[450,286,470,339])
add_block('built-in/Note',[sys,'/',['Qaxis/psiqr''']])
set_param([sys,'/',['Qaxis/psiqr''']],...
'position',[390,276,395,281])
add_block('built-in/Outport',[sys,'/',['Qaxis/out_psiqr''']])
set_param([sys,'/',['Qaxis/out_psiqr''']],...
'Port','4',...
'position',[735,260,755,280])
add_line([sys,'/','Qaxis'],[640,225;695,225;695,365;410,365;410,325;445,325])
add_line([sys,'/','Qaxis'],[380,300;445,300])
add_line([sys,'/','Qaxis'],[475,315;485,315])
add_line([sys,'/','Qaxis'],[380,300;415,300;415,240;440,240])
add_line([sys,'/','Qaxis'],[370,150;405,150;405,210;80,210;80,180;95,180])
add_line([sys,'/','Qaxis'],[380,300;415,300;415,240;85,240;85,275;100,275])
add_line([sys,'/','Qaxis'],[130,300;140,300])
add_line([sys,'/','Qaxis'],[640,225;695,225;695,90;80,90;80,120;95,120])
add_line([sys,'/','Qaxis'],[640,225;695,225;695,365;75,365;75,325;100,325])
add_line([sys,'/','Qaxis'],[640,225;695,225;695,180;425,180;425,150;445,150])
add_line([sys,'/','Qaxis'],[370,150;405,150;405,125;445,125])
add_line([sys,'/','Qaxis'],[475,140;490,140])
add_line([sys,'/','Qaxis'],[470,225;480,225])
add_line([sys,'/','Qaxis'],[370,150;405,150;405,210;440,210])
add_line([sys,'/','Qaxis'],[330,300;340,300])
add_line([sys,'/','Qaxis'],[315,150;330,150])
add_line([sys,'/','Qaxis'],[125,150;140,150])
add_line([sys,'/','Qaxis'],[590,140;730,140])
add_line([sys,'/','Qaxis'],[370,150;405,150;405,75;730,75])
add_line([sys,'/','Qaxis'],[75,150;95,150])
add_line([sys,'/','Qaxis'],[70,300;100,300])
add_line([sys,'/','Qaxis'],[590,315;730,315])
add_line([sys,'/','Qaxis'],[380,300;415,300;415,270;730,270])
% Finished composite block 'Qaxis'.
set_param([sys,'/','Qaxis'],...
'position',[320,120,355,175])
add_block('built-in/Note',[sys,'/','ias'])
set_param([sys,'/','ias'],...
'position',[685,190,690,195])
add_block('built-in/Note',[sys,'/','i0s'])
set_param([sys,'/','i0s'],...
'position',[505,340,510,345])
% Subsystem 'Zero_seq'.
new_system([sys,'/','Zero_seq'])
set_param([sys,'/','Zero_seq'],'Location',[160,675,612,861])
add_block('built-in/Gain',[sys,'/','Zero_seq/rs'])
set_param([sys,'/','Zero_seq/rs'],...
'orientation',2,...
'Gain','rs',...
'position',[200,122,245,158])
add_block('built-in/Sum',[sys,'/','Zero_seq/Sum'])
set_param([sys,'/','Zero_seq/Sum'],...
'inputs','+-',...
'position',[140,60,165,100])
add_block('built-in/Gain',[sys,'/','Zero_seq/wb//xls'])
set_param([sys,'/','Zero_seq/wb//xls'],...
'Gain','wb/xls',...
'position',[200,64,240,96])
add_block('built-in/Integrator',[sys,'/','Zero_seq/Integrator'])
set_param([sys,'/','Zero_seq/Integrator'],...
'position',[265,65,295,95])
add_block('built-in/Note',[sys,'/',['Zero_seq/Stator''s zero-sequence circuit']])
set_param([sys,'/',['Zero_seq/Stator''s zero-sequence circuit']],...
'position',[225,20,230,25])
add_block('built-in/Outport',[sys,'/','Zero_seq/i0s'])
set_param([sys,'/','Zero_seq/i0s'],...
'position',[365,70,385,90])
add_block('built-in/Inport',[sys,'/','Zero_seq/v0s'])
set_param([sys,'/','Zero_seq/v0s'],...
'position',[55,60,75,80])
add_block('built-in/Scope',[sys,'/','Zero_seq/Scope1'])
set_param([sys,'/','Zero_seq/Scope1'],...
'Vgain','2.000000',...
'Hgain','0.200000',...
'Vmax','2.000000',...
'Hmax','0.384615',...
'Window',[208,515,1101,682],...
'position',[375,106,405,134])
add_line([sys,'/','Zero_seq'],[195,140;115,140;115,90;135,90])
add_line([sys,'/','Zero_seq'],[300,80;310,80;310,140;250,140])
add_line([sys,'/','Zero_seq'],[170,80;195,80])
add_line([sys,'/','Zero_seq'],[245,80;260,80])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -