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

📄 f14o.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 2 页
字号:
function [ret,x0,str]=f14o(t,x,u,flag);
%F14O	is the M-file description of the SIMULINK system named F14O.
%	F14O has a total of 0 states, 13 discrete states, 4 outputs and 3 inputs.
%	The block-diagram can be displayed by typing: F14O.
%
%	SYS=F14O(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 F14O to return state derivitives, FLAG=2
%	discrete states, FLAG=3 system outputs and FLAG=4 next sample
%	time. For more information and other options see SFUNC.
%
%	Calling F14O with a FLAG of zero:
%	[SIZES]=F14O([],[],[],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.
%	For the definition of other parameters in SIZES, see SFUNC.
%	See also, TRIM, LINMOD, LINSIM, EULER, RK23, RK45, ADAMS, GEAR.

%	Copyright (c) 1990-94 by The MathWorks, Inc.

% 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',[31,66,679,554])
     open_system(sys)
end;
set_param(sys,'algorithm',		'Linear')
set_param(sys,'Start time',	'0.0')
set_param(sys,'Stop time',		'2')
set_param(sys,'Min step size',	'1e-8')
set_param(sys,'Max step size',	'.01')
set_param(sys,'Relative error','1e-4')
set_param(sys,'Return vars',	'')

add_block('built-in/To Workspace',[sys,'/','To Workspace2'])
set_param([sys,'/','To Workspace2'],...
		'Font Number',3,...
		'mat-name','t',...
		'position',[370,42,415,68])

add_block('built-in/Outport',[sys,'/',['Open Loop',13,'Output']])
set_param([sys,'/',['Open Loop',13,'Output']],...
		'Font Number',3,...
		'Port','3',...
		'position',[230,185,250,205])

add_block('built-in/Outport',[sys,'/','q (rad//sec)'])
set_param([sys,'/','q (rad//sec)'],...
		'Font Number',3,...
		'Port','2',...
		'position',[775,345,795,365])

add_block('built-in/To Workspace',[sys,'/','To Workspace1'])
set_param([sys,'/','To Workspace1'],...
		'Font Number',3,...
		'mat-name','q',...
		'position',[760,288,800,312])

add_block('built-in/To Workspace',[sys,'/','To Workspace'])
set_param([sys,'/','To Workspace'],...
		'Font Number',3,...
		'mat-name','Nzp',...
		'position',[730,47,775,73])

add_block('built-in/Constant',[sys,'/','Constant'])
set_param([sys,'/','Constant'],...
		'orientation',2,...
		'Font Number',3,...
		'Value','0',...
		'position',[405,402,430,428])

add_block('built-in/Inport',[sys,'/',['Open Loop',13,'Input']])
set_param([sys,'/',['Open Loop',13,'Input']],...
		'orientation',2,...
		'Font Number',3,...
		'Port','2',...
		'position',[150,210,170,230])

add_block('built-in/Sum',[sys,'/','Sum2'])
set_param([sys,'/','Sum2'],...
		'orientation',2,...
		'hide name',0,...
		'Font Number',3,...
		'position',[155,385,175,425])

add_block('built-in/Transfer Fcn',[sys,'/',['Alpha-sensor',13,'error model']])
set_param([sys,'/',['Alpha-sensor',13,'error model']],...
		'orientation',2,...
		'Font Number',3,...
		'Numerator','[Sa*sqrt(2*Wa)]',...
		'Denominator','[1 Wa]',...
		'position',[250,389,350,441])

add_block('built-in/Note',[sys,'/','qGust'])
set_param([sys,'/','qGust'],...
		'Font Number',3,...
		'position',[295,280,296,281])

add_block('built-in/Note',[sys,'/','wGust'])
set_param([sys,'/','wGust'],...
		'Font Number',3,...
		'position',[296,255,297,256])

add_block('built-in/Transfer Fcn',[sys,'/',['Actuator',13,'Model']])
set_param([sys,'/',['Actuator',13,'Model']],...
		'Font Number',3,...
		'Denominator','[ Ta, 1]',...
		'position',[285,117,345,163])


%     Subsystem  ['Aircraft Dynamics ',13,'Model'].

new_system([sys,'/',['Aircraft Dynamics ',13,'Model']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model']],'Location',[50,50,630,485])

add_block('built-in/Note',[sys,'/',['Aircraft Dynamics ',13,'Model/Aircraft Dynamics']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Aircraft Dynamics']],...
		'position',[390,380,391,381])

add_block('built-in/Gain',[sys,'/',['Aircraft Dynamics ',13,'Model/Gain6']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Gain6']],...
		'Font Number',3,...
		'Gain','Md',...
		'position',[135,355,170,395])

add_block('built-in/Gain',[sys,'/',['Aircraft Dynamics ',13,'Model/Gain5']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Gain5']],...
		'Font Number',3,...
		'Gain','Zd',...
		'position',[130,15,165,55])

add_block('built-in/Transfer Fcn',[sys,'/',['Aircraft Dynamics ',13,'Model/Transfer Ftn.2']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Transfer Ftn.2']],...
		'Font Number',3,...
		'Denominator','[1,-Mq]',...
		'position',[365,280,425,330])

add_block('built-in/Sum',[sys,'/',['Aircraft Dynamics ',13,'Model/Sum2']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Sum2']],...
		'Font Number',3,...
		'inputs','+-+',...
		'position',[270,281,290,329])

add_block('built-in/Sum',[sys,'/',['Aircraft Dynamics ',13,'Model/Sum1']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Sum1']],...
		'Font Number',3,...
		'inputs','+-+',...
		'position',[270,106,290,154])

add_block('built-in/Outport',[sys,'/',['Aircraft Dynamics ',13,'Model/Pitch Rate',13,'q (rad//sec)']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Pitch Rate',13,'q (rad//sec)']],...
		'Font Number',3,...
		'Port','2',...
		'position',[515,296,535,314])

add_block('built-in/Outport',[sys,'/',['Aircraft Dynamics ',13,'Model/Vertical Velocity',13,'w (ft//sec)']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Vertical Velocity',13,'w (ft//sec)']],...
		'Font Number',3,...
		'position',[510,121,530,139])

add_block('built-in/Inport',[sys,'/',['Aircraft Dynamics ',13,'Model/Vertical Gust',13,'wGust (ft//sec)']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Vertical Gust',13,'wGust (ft//sec)']],...
		'Font Number',3,...
		'Port','2',...
		'position',[155,118,180,142])

add_block('built-in/Transfer Fcn',[sys,'/',['Aircraft Dynamics ',13,'Model/Transfer Ftn.1 ']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Transfer Ftn.1 ']],...
		'Font Number',3,...
		'Denominator','[1,-Zw]',...
		'position',[365,106,425,154])

add_block('built-in/Gain',[sys,'/',['Aircraft Dynamics ',13,'Model/Gain4']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Gain4']],...
		'orientation',2,...
		'Font Number',3,...
		'Gain','Mw',...
		'position',[305,233,345,277])

add_block('built-in/Gain',[sys,'/',['Aircraft Dynamics ',13,'Model/Gain3']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Gain3']],...
		'orientation',2,...
		'Font Number',3,...
		'Gain','Uo',...
		'position',[305,175,345,215])

add_block('built-in/Inport',[sys,'/',['Aircraft Dynamics ',13,'Model/Elevator',13,'Deflection',13,'d (deg)']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Elevator',13,'Deflection',13,'d (deg)']],...
		'Font Number',3,...
		'position',[35,23,60,47])

add_block('built-in/Inport',[sys,'/',['Aircraft Dynamics ',13,'Model/Rotary Gust',13,'qGust (rad//sec)']])
set_param([sys,'/',['Aircraft Dynamics ',13,'Model/Rotary Gust',13,'qGust (rad//sec)']],...
		'Font Number',3,...
		'Port','3',...
		'position',[160,293,185,317])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[430,130;500,130])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[465,130;465,190;430,255;355,255])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[430,305;505,305])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[465,305;465,255;430,195;355,195])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[175,375;235,375;235,320;260,320])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[170,35;235,35;235,115;260,115])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[300,195;235,195;235,145;260,145])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[190,305;260,305])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[295,305;355,305])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[295,130;355,130])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[300,255;235,255;235,290;260,290])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[185,130;260,130])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[65,35;120,35])
add_line([sys,'/',['Aircraft Dynamics ',13,'Model']],[90,35;90,375;125,375])


%     Finished composite block ['Aircraft Dynamics ',13,'Model'].

set_param([sys,'/',['Aircraft Dynamics ',13,'Model']],...
		'Font Number',3,...
		'position',[530,200,560,250])

add_block('built-in/Note',[sys,'/','q'])
set_param([sys,'/','q'],...
		'Font Number',3,...
		'position',[590,220,591,221])

add_block('built-in/Sum',[sys,'/','Sum'])
set_param([sys,'/','Sum'],...
		'hide name',0,...
		'Font Number',3,...
		'position',[450,280,470,320])

add_block('built-in/Clock',[sys,'/','Clock'])
set_param([sys,'/','Clock'],...
		'Font Number',3,...
		'position',[310,42,335,68])


%     Subsystem  ['Nz pilot ',13,'calculation'].

new_system([sys,'/',['Nz pilot ',13,'calculation']])
set_param([sys,'/',['Nz pilot ',13,'calculation']],'Location',[50,50,587,397])

add_block('built-in/Note',[sys,'/',['Nz pilot ',13,'calculation/Nz = (dq//dt*22.8 + q*Uo - dw//dt)//g']])
set_param([sys,'/',['Nz pilot ',13,'calculation/Nz = (dq//dt*22.8 + q*Uo - dw//dt)//g']],...
		'Font Number',3,...
		'position',[368,295,369,296])

add_block('built-in/Constant',[sys,'/',['Nz pilot ',13,'calculation/Constant']])
set_param([sys,'/',['Nz pilot ',13,'calculation/Constant']],...
		'Font Number',3,...
		'Value','Uo',...
		'position',[25,252,50,278])

add_block('built-in/Gain',[sys,'/',['Nz pilot ',13,'calculation/Gain1']])
set_param([sys,'/',['Nz pilot ',13,'calculation/Gain1']],...
		'Font Number',3,...
		'Gain','22.8',...
		'position',[215,102,265,148])

add_block('built-in/Gain',[sys,'/',['Nz pilot ',13,'calculation/Gain2']])
set_param([sys,'/',['Nz pilot ',13,'calculation/Gain2']],...
		'Font Number',3,...
		'Gain','1/32.2',...
		'position',[390,102,440,148])

add_block('built-in/Inport',[sys,'/',['Nz pilot ',13,'calculation/q']])
set_param([sys,'/',['Nz pilot ',13,'calculation/q']],...
		'Font Number',3,...
		'Port','2',...
		'position',[25,115,45,135])

add_block('built-in/Note',[sys,'/',['Nz pilot ',13,'calculation/Nz pilot calculation']])
set_param([sys,'/',['Nz pilot ',13,'calculation/Nz pilot calculation']],...
		'Font Number',3,...
		'position',[369,270,370,271])

add_block('built-in/Product',[sys,'/',['Nz pilot ',13,'calculation/Product']])
set_param([sys,'/',['Nz pilot ',13,'calculation/Product']],...
		'Font Number',3,...
		'position',[160,242,185,273])

add_block('built-in/Inport',[sys,'/',['Nz pilot ',13,'calculation/w']])
set_param([sys,'/',['Nz pilot ',13,'calculation/w']],...
		'Font Number',3,...
		'position',[25,35,45,55])

add_block('built-in/Derivative',[sys,'/',['Nz pilot ',13,'calculation/Derivative']])
set_param([sys,'/',['Nz pilot ',13,'calculation/Derivative']],...
		'Font Number',3,...
		'position',[125,32,165,58])

add_block('built-in/Sum',[sys,'/',['Nz pilot ',13,'calculation/Sum1']])
set_param([sys,'/',['Nz pilot ',13,'calculation/Sum1']],...
		'Font Number',3,...
		'inputs','-++',...
		'position',[340,95,360,155])

add_block('built-in/Outport',[sys,'/',['Nz pilot ',13,'calculation/Pilot',13,'g force (g)']])
set_param([sys,'/',['Nz pilot ',13,'calculation/Pilot',13,'g force (g)']],...
		'Font Number',3,...
		'position',[470,115,490,135])

add_block('built-in/Derivative',[sys,'/',['Nz pilot ',13,'calculation/Derivative1']])
set_param([sys,'/',['Nz pilot ',13,'calculation/Derivative1']],...
		'Font Number',3,...
		'position',[125,112,165,138])
add_line([sys,'/',['Nz pilot ',13,'calculation']],[50,125;85,125;85,250;150,250])
add_line([sys,'/',['Nz pilot ',13,'calculation']],[85,125;115,125])
add_line([sys,'/',['Nz pilot ',13,'calculation']],[55,265;150,265])
add_line([sys,'/',['Nz pilot ',13,'calculation']],[445,125;460,125])
add_line([sys,'/',['Nz pilot ',13,'calculation']],[365,125;380,125])
add_line([sys,'/',['Nz pilot ',13,'calculation']],[170,45;290,45;290,105;330,105])
add_line([sys,'/',['Nz pilot ',13,'calculation']],[50,45;115,45])
add_line([sys,'/',['Nz pilot ',13,'calculation']],[170,125;205,125])
add_line([sys,'/',['Nz pilot ',13,'calculation']],[270,125;330,125])
add_line([sys,'/',['Nz pilot ',13,'calculation']],[190,260;290,260;290,145;330,145])


%     Finished composite block ['Nz pilot ',13,'calculation'].

set_param([sys,'/',['Nz pilot ',13,'calculation']],...
		'Font Number',3,...
		'position',[655,30,690,85])

add_block('built-in/Gain',[sys,'/','Gain5'])
set_param([sys,'/','Gain5'],...
		'Font Number',3,...
		'Gain','1/Uo',...

⌨️ 快捷键说明

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