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

📄 s5.m

📁 Gives all the matlab codes for dynamic simulation of electric machinery by Chee-Mun Ong
💻 M
📖 第 1 页 / 共 4 页
字号:
function [ret,x0,str,ts,xts]=s5(t,x,u,flag);
%s5	is the M-file description of the SIMULINK system named s5.
%	s5 has a the following characteristics:
%		9 continuous states
%		0 discrete states
%		0 outputs
%		0 inputs
%		does not have direct feedthrough
%		1 sample times
%
%	The block-diagram can be displayed by typing: s5.
%
%	SYS=s5(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 s5 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 s5 with a FLAG of zero:
%	[SIZES]=s5([],[],[],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,63,803,536])
     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-6')
set_param(sys,'Max step size', '1e-2')
set_param(sys,'Relative error','1e-6')
set_param(sys,'Return vars',   '')
set_param(sys,'AssignWideVectorLines','on');

add_block('built-in/Gain',[sys,'/','vbg'])
set_param([sys,'/','vbg'],...
		'Gain','400*Zb',...
		'position',[510,190,530,210])

add_block('built-in/Transfer Fcn',[sys,'/',['Flux ',13,'controller']])
set_param([sys,'/',['Flux ',13,'controller']],...
		'Numerator','[16 4]',...
		'Denominator','[1 0]',...
		'position',[160,365,215,405])

add_block('built-in/Sum',[sys,'/','Sum4'])
set_param([sys,'/','Sum4'],...
		'inputs','+-',...
		'position',[130,368,145,397])

add_block('built-in/Fcn',[sys,'/','Vs-Tem'])
set_param([sys,'/','Vs-Tem'],...
		'Expr','VsTem(1)*u[1]*u[1] + VsTem(3)',...
		'position',[60,365,100,385])


%     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',[625,260,650,280])


%     Subsystem  'pm_motor'.

new_system([sys,'/','pm_motor'])
set_param([sys,'/','pm_motor'],'Location',[182,400,716,773])

add_block('built-in/Inport',[sys,'/','pm_motor/vq'])
set_param([sys,'/','pm_motor/vq'],...
		'position',[60,65,80,85])

add_block('built-in/Product',[sys,'/','pm_motor/prod1'])
set_param([sys,'/','pm_motor/prod1'],...
		'orientation',2,...
		'Font Number',3,...
		'position',[165,148,185,172])

add_block('built-in/Product',[sys,'/','pm_motor/prod2'])
set_param([sys,'/','pm_motor/prod2'],...
		'orientation',2,...
		'Font Number',3,...
		'position',[165,193,185,222])

add_block('built-in/Outport',[sys,'/','pm_motor/id_motor'])
set_param([sys,'/','pm_motor/id_motor'],...
		'Port','2',...
		'position',[240,310,260,330])


%     Subsystem  'pm_motor/Rotor'.

new_system([sys,'/','pm_motor/Rotor'])
set_param([sys,'/','pm_motor/Rotor'],'Location',[361,139,920,407])

add_block('built-in/Outport',[sys,'/','pm_motor/Rotor/Tem'])
set_param([sys,'/','pm_motor/Rotor/Tem'],...
		'position',[275,188,300,212])

add_block('built-in/Inport',[sys,'/','pm_motor/Rotor/id'])
set_param([sys,'/','pm_motor/Rotor/id'],...
		'Port','4',...
		'position',[85,200,105,220])

add_block('built-in/Inport',[sys,'/','pm_motor/Rotor/iq'])
set_param([sys,'/','pm_motor/Rotor/iq'],...
		'position',[85,85,105,105])

add_block('built-in/Inport',[sys,'/','pm_motor/Rotor/Tmech'])
set_param([sys,'/','pm_motor/Rotor/Tmech'],...
		'Port','5',...
		'position',[85,45,105,65])

add_block('built-in/Integrator',[sys,'/','pm_motor/Rotor/wr//wb'])
set_param([sys,'/','pm_motor/Rotor/wr//wb'],...
		'Initial','wrbywbo',...
		'position',[410,111,440,149])

add_block('built-in/Note',[sys,'/','pm_motor/Rotor/Tem_'])
set_param([sys,'/','pm_motor/Rotor/Tem_'],...
		'position',[225,130,230,135])

add_block('built-in/Product',[sys,'/','pm_motor/Rotor/Prod'])
set_param([sys,'/','pm_motor/Rotor/Prod'],...
		'position',[145,114,160,136])

add_block('built-in/Inport',[sys,'/','pm_motor/Rotor/psiq'])
set_param([sys,'/','pm_motor/Rotor/psiq'],...
		'Port','3',...
		'position',[85,160,105,180])

add_block('built-in/Product',[sys,'/','pm_motor/Rotor/Prod2'])
set_param([sys,'/','pm_motor/Rotor/Prod2'],...
		'position',[145,165,160,185])

add_block('built-in/Sum',[sys,'/','pm_motor/Rotor/Sum12'])
set_param([sys,'/','pm_motor/Rotor/Sum12'],...
		'inputs','+-',...
		'position',[185,101,205,199])

add_block('built-in/Inport',[sys,'/','pm_motor/Rotor/psid '])
set_param([sys,'/','pm_motor/Rotor/psid '],...
		'Port','2',...
		'position',[85,120,105,140])

add_block('built-in/Gain',[sys,'/','pm_motor/Rotor/D'])
set_param([sys,'/','pm_motor/Rotor/D'],...
		'orientation',2,...
		'Gain','Domega',...
		'position',[320,58,395,92])

add_block('built-in/Sum',[sys,'/','pm_motor/Rotor/Tacc'])
set_param([sys,'/','pm_motor/Rotor/Tacc'],...
		'inputs','-++',...
		'position',[275,100,295,160])

add_block('built-in/Gain',[sys,'/','pm_motor/Rotor/1//2H'])
set_param([sys,'/','pm_motor/Rotor/1//2H'],...
		'Gain','1/(2*H)',...
		'position',[315,110,385,150])

add_block('built-in/Outport',[sys,'/','pm_motor/Rotor/wr//wb '])
set_param([sys,'/','pm_motor/Rotor/wr//wb '],...
		'Port','2',...
		'position',[510,120,530,140])
add_line([sys,'/','pm_motor/Rotor'],[315,75;255,75;255,110;270,110])
add_line([sys,'/','pm_motor/Rotor'],[210,150;270,150])
add_line([sys,'/','pm_motor/Rotor'],[165,175;180,175])
add_line([sys,'/','pm_motor/Rotor'],[390,130;405,130])
add_line([sys,'/','pm_motor/Rotor'],[300,130;310,130])
add_line([sys,'/','pm_motor/Rotor'],[165,125;180,125])
add_line([sys,'/','pm_motor/Rotor'],[110,95;120,95;120,120;140,120])
add_line([sys,'/','pm_motor/Rotor'],[110,130;140,130])
add_line([sys,'/','pm_motor/Rotor'],[110,170;140,170])
add_line([sys,'/','pm_motor/Rotor'],[110,210;120,210;120,180;140,180])
add_line([sys,'/','pm_motor/Rotor'],[210,150;245,150;245,200;270,200])
add_line([sys,'/','pm_motor/Rotor'],[445,130;460,130;460,75;400,75])
add_line([sys,'/','pm_motor/Rotor'],[110,55;240,55;240,130;270,130])
add_line([sys,'/','pm_motor/Rotor'],[445,130;505,130])


%     Finished composite block 'pm_motor/Rotor'.

set_param([sys,'/','pm_motor/Rotor'],...
		'Font Number',3,...
		'position',[345,230,395,330])

add_block('built-in/Inport',[sys,'/','pm_motor/Tmech'])
set_param([sys,'/','pm_motor/Tmech'],...
		'Port','4',...
		'position',[295,310,315,330])


%     Subsystem  'pm_motor/q_cct'.

new_system([sys,'/','pm_motor/q_cct'])
set_param([sys,'/','pm_motor/q_cct'],'Location',[159,307,956,658])

add_block('built-in/Integrator',[sys,'/','pm_motor/q_cct/psiq_'])
set_param([sys,'/','pm_motor/q_cct/psiq_'],...
		'Initial','Psiqo',...
		'position',[390,127,420,153])

add_block('built-in/Fcn',[sys,'/','pm_motor/q_cct/Fcn'])
set_param([sys,'/','pm_motor/q_cct/Fcn'],...
		'Expr','wb*(u[2]-u[3]+(rs/xls)*(u[1]-u[4]))',...
		'position',[180,125,375,155])

add_block('built-in/Inport',[sys,'/','pm_motor/q_cct/In_wrpsid'])
set_param([sys,'/','pm_motor/q_cct/In_wrpsid'],...
		'Port','2',...
		'position',[50,160,70,180])

add_block('built-in/Inport',[sys,'/','pm_motor/q_cct/In_vq'])
set_param([sys,'/','pm_motor/q_cct/In_vq'],...
		'position',[50,105,70,125])

add_block('built-in/Mux',[sys,'/','pm_motor/q_cct/Mux'])
set_param([sys,'/','pm_motor/q_cct/Mux'],...
		'position',[135,86,160,189])

add_block('built-in/Mux',[sys,'/','pm_motor/q_cct/Mux4'])
set_param([sys,'/','pm_motor/q_cct/Mux4'],...
		'inputs','2',...
		'position',[495,179,520,246])

add_block('built-in/Fcn',[sys,'/','pm_motor/q_cct/Fcn4'])
set_param([sys,'/','pm_motor/q_cct/Fcn4'],...
		'Expr','(u[1]-u[2])/xls',...
		'position',[540,202,630,228])

add_block('built-in/Outport',[sys,'/','pm_motor/q_cct/Out_iq'])
set_param([sys,'/','pm_motor/q_cct/Out_iq'],...
		'Port','2',...
		'position',[665,205,685,225])

add_block('built-in/Fcn',[sys,'/','pm_motor/q_cct/Fcn5'])
set_param([sys,'/','pm_motor/q_cct/Fcn5'],...
		'Expr','xMQ*u[1]/xls',...
		'position',[510,127,600,153])

add_block('built-in/Outport',[sys,'/','pm_motor/q_cct/Out_psiq'])
set_param([sys,'/','pm_motor/q_cct/Out_psiq'],...
		'position',[460,90,480,110])

add_block('built-in/Note',[sys,'/','pm_motor/q_cct/psimq'])
set_param([sys,'/','pm_motor/q_cct/psimq'],...
		'position',[645,115,650,120])

add_block('built-in/Outport',[sys,'/','pm_motor/q_cct/Out_psimq'])
set_param([sys,'/','pm_motor/q_cct/Out_psimq'],...
		'Port','3',...
		'position',[725,130,745,150])
add_line([sys,'/','pm_motor/q_cct'],[75,170;95,170;95,150;130,150])
add_line([sys,'/','pm_motor/q_cct'],[75,115;95,115;95,125;130,125])
add_line([sys,'/','pm_motor/q_cct'],[165,140;175,140])
add_line([sys,'/','pm_motor/q_cct'],[380,140;385,140])
add_line([sys,'/','pm_motor/q_cct'],[425,140;435,140;435,205;115,205;115,175;130,175])
add_line([sys,'/','pm_motor/q_cct'],[525,215;535,215])
add_line([sys,'/','pm_motor/q_cct'],[425,140;470,140;470,195;490,195])
add_line([sys,'/','pm_motor/q_cct'],[635,215;660,215])
add_line([sys,'/','pm_motor/q_cct'],[425,140;435,140;435,100;455,100])
add_line([sys,'/','pm_motor/q_cct'],[425,140;505,140])
add_line([sys,'/','pm_motor/q_cct'],[605,140;700,140;700,275;470,275;470,230;490,230])
add_line([sys,'/','pm_motor/q_cct'],[605,140;700,140;700,80;115,80;115,100;130,100])
add_line([sys,'/','pm_motor/q_cct'],[605,140;720,140])


%     Finished composite block 'pm_motor/q_cct'.

set_param([sys,'/','pm_motor/q_cct'],...
		'position',[155,57,195,133])

add_block('built-in/Note',[sys,'/','pm_motor/psid'])
set_param([sys,'/','pm_motor/psid'],...
		'position',[205,240,210,245])

add_block('built-in/Inport',[sys,'/','pm_motor/vd'])
set_param([sys,'/','pm_motor/vd'],...
		'Port','2',...
		'position',[55,250,75,270])

add_block('built-in/Inport',[sys,'/','pm_motor/Ipm'])
set_param([sys,'/','pm_motor/Ipm'],...
		'Port','3',...
		'position',[55,300,75,320])


%     Subsystem  'pm_motor/d_cct'.

new_system([sys,'/','pm_motor/d_cct'])
set_param([sys,'/','pm_motor/d_cct'],'Location',[71,250,938,576])

add_block('built-in/Outport',[sys,'/','pm_motor/d_cct/Out_psid'])
set_param([sys,'/','pm_motor/d_cct/Out_psid'],...
		'position',[585,45,605,65])

add_block('built-in/Fcn',[sys,'/','pm_motor/d_cct/Fcn3'])
set_param([sys,'/','pm_motor/d_cct/Fcn3'],...
		'Expr','xMD*(u[1]/xls+u[2])',...

⌨️ 快捷键说明

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