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

📄 s1o.m

📁 simulink electrical machine(2)
💻 M
📖 第 1 页 / 共 3 页
字号:
function [ret,x0,str,ts,xts]=s1o(t,x,u,flag);
%s1o	is the M-file description of the SIMULINK system named s1o.
%	The block-diagram can be displayed by typing: s1o.
%
%	SYS=s1o(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 s1o 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 s1o with a FLAG of zero:
%	[SIZES]=s1o([],[],[],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',[12,77,800,484])
     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',   '')

add_block('built-in/Sum',[sys,'/','Sum'])
set_param([sys,'/','Sum'],...
		'inputs','+++',...
		'position',[660,216,680,254])

add_block('built-in/Note',[sys,'/','wr//wb'])
set_param([sys,'/','wr//wb'],...
		'position',[400,225,405,230])

add_block('built-in/Note',[sys,'/','Tem'])
set_param([sys,'/','Tem'],...
		'position',[404,197,409,202])

add_block('built-in/Mux',[sys,'/','Mux1'])
set_param([sys,'/','Mux1'],...
		'inputs','2',...
		'position',[395,146,415,179])

add_block('built-in/Fcn',[sys,'/','Fcn1'])
set_param([sys,'/','Fcn1'],...
		'Expr','sqrt(u[1]*u[1]+u[2]*u[2])',...
		'position',[625,125,665,145])

add_block('built-in/Note',[sys,'/','vag'])
set_param([sys,'/','vag'],...
		'position',[107,180,112,185])

add_block('built-in/Note',[sys,'/','vqs'])
set_param([sys,'/','vqs'],...
		'position',[210,185,215,190])

add_block('built-in/Note',[sys,'/','vds'])
set_param([sys,'/','vds'],...
		'position',[210,220,215,225])

add_block('built-in/Note',[sys,'/','v0s'])
set_param([sys,'/','v0s'],...
		'position',[210,255,215,260])


%     Subsystem  'abc2qds'.

new_system([sys,'/','abc2qds'])
set_param([sys,'/','abc2qds'],'Location',[246,146,930,530])

add_block('built-in/Note',[sys,'/','abc2qds/abc to qd0 stationary '])
set_param([sys,'/','abc2qds/abc to qd0 stationary '],...
		'position',[255,45,260,50])

add_block('built-in/Mux',[sys,'/','abc2qds/Mux'])
set_param([sys,'/','abc2qds/Mux'],...
		'inputs','3',...
		'position',[105,81,145,259])

add_block('built-in/Inport',[sys,'/','abc2qds/vag'])
set_param([sys,'/','abc2qds/vag'],...
		'position',[40,100,60,120])

add_block('built-in/Inport',[sys,'/','abc2qds/vbg'])
set_param([sys,'/','abc2qds/vbg'],...
		'Port','2',...
		'position',[40,160,60,180])

add_block('built-in/Inport',[sys,'/','abc2qds/vcg'])
set_param([sys,'/','abc2qds/vcg'],...
		'Port','3',...
		'position',[40,220,60,240])

add_block('built-in/Fcn',[sys,'/','abc2qds/Fcn1'])
set_param([sys,'/','abc2qds/Fcn1'],...
		'Expr','(u[3]-u[2])/sqrt(3)',...
		'position',[210,150,375,190])

add_block('built-in/Fcn',[sys,'/','abc2qds/Fcn'])
set_param([sys,'/','abc2qds/Fcn'],...
		'Expr','(2/3)*(u[1] - (u[2]+u[3])/2)',...
		'position',[210,86,375,124])

add_block('built-in/Fcn',[sys,'/','abc2qds/Fcn2'])
set_param([sys,'/','abc2qds/Fcn2'],...
		'Expr','(u[1]+u[2]+u[3])/3',...
		'position',[210,215,375,255])

add_block('built-in/Inport',[sys,'/','abc2qds/ias+ibs+ics'])
set_param([sys,'/','abc2qds/ias+ibs+ics'],...
		'Port','4',...
		'position',[40,285,60,305])

add_block('built-in/Outport',[sys,'/','abc2qds/vds'])
set_param([sys,'/','abc2qds/vds'],...
		'Port','2',...
		'position',[515,160,535,180])

add_block('built-in/Sum',[sys,'/','abc2qds/Sum'])
set_param([sys,'/','abc2qds/Sum'],...
		'inputs','+-',...
		'position',[465,223,480,267])

add_block('built-in/Outport',[sys,'/','abc2qds/v0s'])
set_param([sys,'/','abc2qds/v0s'],...
		'Port','3',...
		'position',[515,235,535,255])

add_block('built-in/Sum',[sys,'/','abc2qds/Sum1'])
set_param([sys,'/','abc2qds/Sum1'],...
		'inputs','+-',...
		'position',[465,93,480,137])

add_block('built-in/Outport',[sys,'/','abc2qds/vqs'])
set_param([sys,'/','abc2qds/vqs'],...
		'position',[515,105,535,125])

add_block('built-in/Note',[sys,'/','abc2qds/vsg'])
set_param([sys,'/','abc2qds/vsg'],...
		'position',[410,275,415,280])

add_block('built-in/Integrator',[sys,'/','abc2qds/Integrator'])
set_param([sys,'/','abc2qds/Integrator'],...
		'position',[345,280,375,310])

add_block('built-in/Gain',[sys,'/','abc2qds/1//Csg'])
set_param([sys,'/','abc2qds/1//Csg'],...
		'Gain','50*Zb*wb',...
		'position',[150,274,230,316])
add_line([sys,'/','abc2qds'],[65,295;145,295])
add_line([sys,'/','abc2qds'],[65,110;100,110])
add_line([sys,'/','abc2qds'],[65,170;100,170])
add_line([sys,'/','abc2qds'],[65,230;100,230])
add_line([sys,'/','abc2qds'],[150,170;205,170])
add_line([sys,'/','abc2qds'],[150,170;170,170;170,105;205,105])
add_line([sys,'/','abc2qds'],[380,170;510,170])
add_line([sys,'/','abc2qds'],[150,170;170,170;170,235;205,235])
add_line([sys,'/','abc2qds'],[485,245;510,245])
add_line([sys,'/','abc2qds'],[380,235;460,235])
add_line([sys,'/','abc2qds'],[235,295;340,295])
add_line([sys,'/','abc2qds'],[380,295;425,295;425,255;460,255])
add_line([sys,'/','abc2qds'],[380,105;460,105])
add_line([sys,'/','abc2qds'],[485,115;510,115])
add_line([sys,'/','abc2qds'],[380,295;395,295;395,125;460,125])


%     Finished composite block 'abc2qds'.

set_param([sys,'/','abc2qds'],...
		'position',[145,186,190,289])


%     Subsystem  'Var_we_source'.

new_system([sys,'/','Var_we_source'])
set_param([sys,'/','Var_we_source'],'Location',[209,82,897,440])

add_block('built-in/Note',[sys,'/','Var_we_source/variable frequency oscillator'])
set_param([sys,'/','Var_we_source/variable frequency oscillator'],...
		'position',[200,300,205,305])

add_block('built-in/Constant',[sys,'/','Var_we_source/we'])
set_param([sys,'/','Var_we_source/we'],...
		'Value','we',...
		'position',[65,118,90,152])

add_block('built-in/Note',[sys,'/','Var_we_source/Vpk'])
set_param([sys,'/','Var_we_source/Vpk'],...
		'position',[325,50,330,55])

add_block('built-in/Constant',[sys,'/','Var_we_source/Vb'])
set_param([sys,'/','Var_we_source/Vb'],...
		'Value','Vb',...
		'position',[275,59,305,91])

add_block('built-in/Note',[sys,'/','Var_we_source/2-phase to 3-phase '])
set_param([sys,'/','Var_we_source/2-phase to 3-phase '],...
		'position',[510,300,515,305])

add_block('built-in/Outport',[sys,'/','Var_we_source/vbg'])
set_param([sys,'/','Var_we_source/vbg'],...
		'Port','2',...
		'position',[630,135,650,155])

add_block('built-in/Fcn',[sys,'/','Var_we_source/Fcn1'])
set_param([sys,'/','Var_we_source/Fcn1'],...
		'Expr','u[1]*(-u[2]-sqrt(3)*u[3])/2',...
		'position',[425,128,580,162])

add_block('built-in/Outport',[sys,'/','Var_we_source/vag'])
set_param([sys,'/','Var_we_source/vag'],...
		'position',[630,75,650,95])

add_block('built-in/Fcn',[sys,'/','Var_we_source/Fcn2'])
set_param([sys,'/','Var_we_source/Fcn2'],...
		'Expr','u[1]*(-u[2]+sqrt(3)*u[3])/2',...
		'position',[425,190,580,220])

add_block('built-in/Outport',[sys,'/','Var_we_source/vcg'])
set_param([sys,'/','Var_we_source/vcg'],...
		'Port','3',...
		'position',[630,195,650,215])

add_block('built-in/Fcn',[sys,'/','Var_we_source/Fcn'])
set_param([sys,'/','Var_we_source/Fcn'],...
		'Expr','u[1]*u[2]',...
		'position',[425,68,575,102])

add_block('built-in/Mux',[sys,'/','Var_we_source/Mux'])
set_param([sys,'/','Var_we_source/Mux'],...
		'inputs','3',...
		'position',[355,42,380,248])

add_block('built-in/Note',[sys,'/','Var_we_source/-sin_wet'])
set_param([sys,'/','Var_we_source/-sin_wet'],...
		'position',[300,186,305,191])

add_block('built-in/Note',[sys,'/','Var_we_source/cos_wet'])
set_param([sys,'/','Var_we_source/cos_wet'],...
		'position',[315,114,320,119])

add_block('built-in/Gain',[sys,'/','Var_we_source/-1'])
set_param([sys,'/','Var_we_source/-1'],...
		'Gain','-1',...
		'position',[185,238,225,272])

add_block('built-in/Integrator',[sys,'/','Var_we_source/cos'])
set_param([sys,'/','Var_we_source/cos'],...
		'Initial','1',...
		'position',[235,125,270,165])


%     Subsystem  ['Var_we_source/Inner',13,'Product1'].

new_system([sys,'/',['Var_we_source/Inner',13,'Product1']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product1']],'Location',[33,479,253,634])

add_block('built-in/Product',[sys,'/',['Var_we_source/Inner',13,'Product1/Product']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product1/Product']],...
		'position',[65,55,90,75])

add_block('built-in/Sum',[sys,'/',['Var_we_source/Inner',13,'Product1/Sum']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product1/Sum']],...
		'inputs','+',...
		'position',[125,55,145,75])

add_block('built-in/Outport',[sys,'/',['Var_we_source/Inner',13,'Product1/out_1']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product1/out_1']],...
		'position',[185,55,205,75])

add_block('built-in/Inport',[sys,'/',['Var_we_source/Inner',13,'Product1/in_2']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product1/in_2']],...
		'Port','2',...
		'position',[15,90,35,110])

add_block('built-in/Inport',[sys,'/',['Var_we_source/Inner',13,'Product1/in_1']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product1/in_1']],...
		'position',[15,25,35,45])
add_line([sys,'/',['Var_we_source/Inner',13,'Product1']],[40,100;60,70])
add_line([sys,'/',['Var_we_source/Inner',13,'Product1']],[40,35;60,60])
add_line([sys,'/',['Var_we_source/Inner',13,'Product1']],[95,65;120,65])
add_line([sys,'/',['Var_we_source/Inner',13,'Product1']],[150,65;180,65])
set_param([sys,'/',['Var_we_source/Inner',13,'Product1']],...
		'Mask Display','.\n',...
		'Mask Type','Dot Product',...
		'Mask Dialogue','Inner (dot) product.\ny=sum(u1.*u2)')
set_param([sys,'/',['Var_we_source/Inner',13,'Product1']],...
		'Mask Help','Computes the inner (dot) product of the inputs: sum(u1.*u2).  The inputs are vectors of the same length. Output is a scalar.')


%     Finished composite block ['Var_we_source/Inner',13,'Product1'].

set_param([sys,'/',['Var_we_source/Inner',13,'Product1']],...
		'position',[170,125,195,160])


%     Subsystem  ['Var_we_source/Inner',13,'Product'].

new_system([sys,'/',['Var_we_source/Inner',13,'Product']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product']],'Location',[33,479,253,634])

add_block('built-in/Product',[sys,'/',['Var_we_source/Inner',13,'Product/Product']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product/Product']],...
		'position',[65,55,90,75])

add_block('built-in/Sum',[sys,'/',['Var_we_source/Inner',13,'Product/Sum']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product/Sum']],...
		'inputs','+',...
		'position',[125,55,145,75])

add_block('built-in/Outport',[sys,'/',['Var_we_source/Inner',13,'Product/out_1']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product/out_1']],...
		'position',[185,55,205,75])

add_block('built-in/Inport',[sys,'/',['Var_we_source/Inner',13,'Product/in_2']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product/in_2']],...
		'Port','2',...
		'position',[15,90,35,110])

add_block('built-in/Inport',[sys,'/',['Var_we_source/Inner',13,'Product/in_1']])
set_param([sys,'/',['Var_we_source/Inner',13,'Product/in_1']],...
		'position',[15,25,35,45])
add_line([sys,'/',['Var_we_source/Inner',13,'Product']],[40,100;60,70])
add_line([sys,'/',['Var_we_source/Inner',13,'Product']],[40,35;60,60])
add_line([sys,'/',['Var_we_source/Inner',13,'Product']],[95,65;120,65])
add_line([sys,'/',['Var_we_source/Inner',13,'Product']],[150,65;180,65])
set_param([sys,'/',['Var_we_source/Inner',13,'Product']],...
		'Mask Display','.\n',...
		'Mask Type','Dot Product',...
		'Mask Dialogue','Inner (dot) product.\ny=sum(u1.*u2)')
set_param([sys,'/',['Var_we_source/Inner',13,'Product']],...
		'Mask Help','Computes the inner (dot) product of the inputs: sum(u1.*u2).  The inputs are vectors of the same length. Output is a scalar.')


%     Finished composite block ['Var_we_source/Inner',13,'Product'].

set_param([sys,'/',['Var_we_source/Inner',13,'Product']],...
		'position',[135,236,160,269])

⌨️ 快捷键说明

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