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

📄 f14.m

📁 数字通信第四版原书的例程
💻 M
📖 第 1 页 / 共 2 页
字号:
function [ret,x0,str,ts,xts]=f14(t,x,u,flag);
%F14	is the M-file description of the SIMULINK system named F14.
%	The block-diagram can be displayed by typing: F14.
%
%	SYS=F14(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 F14 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 F14 with a FLAG of zero:
%	[SIZES]=F14([],[],[],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.

% 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,72,698,519])
     open_system(sys)
end;
set_param(sys,'algorithm',     'RK-45')
set_param(sys,'Start time',    '0.0')
set_param(sys,'Stop time',     '10000')
set_param(sys,'Min step size', '0.001')
set_param(sys,'Max step size', '1')
set_param(sys,'Relative error','1e-4')
set_param(sys,'Return vars',   '')
set_param(sys,'Load callback','f14dat');

add_block('built-in/Scope',[sys,'/',['Angle of ',13,'Attack']])
set_param([sys,'/',['Angle of ',13,'Attack']],...
		'Vgain','2.000000',...
		'Hgain','40.000000',...
		'Vmax','4.000000',...
		'Hmax','80.000000',...
		'Window',[365,565,636,707],...
		'position',[605,150,630,180])

add_block('built-in/Scope',[sys,'/',['Pilot G force',13,'Scope']])
set_param([sys,'/',['Pilot G force',13,'Scope']],...
		'Vgain','20.000000',...
		'Hgain','60.000000',...
		'Vmax','40.000000',...
		'Hmax','120.000000',...
		'Window',[533,477,772,611])
open_system([sys,'/',['Pilot G force',13,'Scope']])
set_param([sys,'/',['Pilot G force',13,'Scope']],...
		'position',[605,35,630,65])

add_block('built-in/Outport',[sys,'/','alpha (rad)'])
set_param([sys,'/','alpha (rad)'],...
		'position',[610,220,630,240])

add_block('built-in/Gain',[sys,'/','Gain5'])
set_param([sys,'/','Gain5'],...
		'hide name',0,...
		'Gain','1/Uo',...
		'position',[510,207,560,253])


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

new_system([sys,'/',['Nz pilot',13,'calculation']])
set_param([sys,'/',['Nz pilot',13,'calculation']],'Location',[0,56,459,330])

add_block('built-in/Gain',[sys,'/',['Nz pilot',13,'calculation/Gain1']])
set_param([sys,'/',['Nz pilot',13,'calculation/Gain1']],...
		'Gain','22.8',...
		'position',[190,102,240,148])

add_block('built-in/Gain',[sys,'/',['Nz pilot',13,'calculation/Gain2']])
set_param([sys,'/',['Nz pilot',13,'calculation/Gain2']],...
		'Gain','1/g',...
		'position',[320,102,370,148])

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

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

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

add_block('built-in/Sum',[sys,'/',['Nz pilot',13,'calculation/Sum1']])
set_param([sys,'/',['Nz pilot',13,'calculation/Sum1']],...
		'inputs','-++',...
		'position',[270,95,290,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)']],...
		'position',[400,115,420,135])

add_block('built-in/Derivative',[sys,'/',['Nz pilot',13,'calculation/Derivative1']])
set_param([sys,'/',['Nz pilot',13,'calculation/Derivative1']],...
		'position',[125,112,165,138])

add_block('built-in/Product',[sys,'/',['Nz pilot',13,'calculation/Product']])
set_param([sys,'/',['Nz pilot',13,'calculation/Product']],...
		'position',[145,167,170,198])

add_block('built-in/Note',[sys,'/',['Nz pilot',13,'calculation/Nz pilot calculation']])
set_param([sys,'/',['Nz pilot',13,'calculation/Nz pilot calculation']],...
		'position',[284,195,289,200])

add_block('built-in/Constant',[sys,'/',['Nz pilot',13,'calculation/Constant']])
set_param([sys,'/',['Nz pilot',13,'calculation/Constant']],...
		'Value','Uo',...
		'position',[75,207,100,233])

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']],...
		'position',[283,220,288,225])
add_line([sys,'/',['Nz pilot',13,'calculation']],[50,125;85,125;85,175;140,175])
add_line([sys,'/',['Nz pilot',13,'calculation']],[85,125;120,125])
add_line([sys,'/',['Nz pilot',13,'calculation']],[105,220;115,220;115,190;140,190])
add_line([sys,'/',['Nz pilot',13,'calculation']],[375,125;395,125])
add_line([sys,'/',['Nz pilot',13,'calculation']],[295,125;315,125])
add_line([sys,'/',['Nz pilot',13,'calculation']],[170,45;240,45;240,105;265,105])
add_line([sys,'/',['Nz pilot',13,'calculation']],[50,45;120,45])
add_line([sys,'/',['Nz pilot',13,'calculation']],[170,125;185,125])
add_line([sys,'/',['Nz pilot',13,'calculation']],[245,125;265,125])
add_line([sys,'/',['Nz pilot',13,'calculation']],[175,185;240,185;240,145;265,145])


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

set_param([sys,'/',['Nz pilot',13,'calculation']],...
		'position',[515,20,550,75])


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

new_system([sys,'/',['Aircraft',13,'Dynamics',13,'Model']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],'Location',[15,61,577,448])

add_block('built-in/Gain',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Gain6']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Gain6']],...
		'Gain','Md',...
		'position',[125,330,160,370])

add_block('built-in/Gain',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Gain5']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Gain5']],...
		'Gain','Zd',...
		'position',[120,15,155,55])

add_block('built-in/Transfer Fcn',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Transfer Fcn.1']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Transfer Fcn.1']],...
		'Denominator','[1,-Mq]',...
		'position',[360,250,420,300])

add_block('built-in/Sum',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Sum2']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Sum2']],...
		'inputs','+-+',...
		'position',[260,251,280,299])

add_block('built-in/Sum',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Sum1']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Sum1']],...
		'inputs','+-+',...
		'position',[270,76,290,124])

add_block('built-in/Outport',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Pitch Rate',13,'q (rad//sec)']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Pitch Rate',13,'q (rad//sec)']],...
		'Port','2',...
		'position',[510,266,530,284])

add_block('built-in/Outport',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Vertical Velocity',13,'w (ft//sec)']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Vertical Velocity',13,'w (ft//sec)']],...
		'position',[510,91,530,109])

add_block('built-in/Inport',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Vertical Gust',13,'wGust (ft//sec)']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Vertical Gust',13,'wGust (ft//sec)']],...
		'Port','2',...
		'position',[145,88,170,112])

add_block('built-in/Transfer Fcn',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Transfer Fcn.2']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Transfer Fcn.2']],...
		'Denominator','[1,-Zw]',...
		'position',[360,76,420,124])

add_block('built-in/Gain',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Gain4']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Gain4']],...
		'orientation',2,...
		'Gain','Mw',...
		'position',[300,203,340,247])

add_block('built-in/Gain',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Gain3']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Gain3']],...
		'orientation',2,...
		'Gain','Uo',...
		'position',[300,145,340,185])

add_block('built-in/Inport',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Elevator',13,'Deflection',13,'d (deg)']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Elevator',13,'Deflection',13,'d (deg)']],...
		'position',[25,23,50,47])

add_block('built-in/Inport',[sys,'/',['Aircraft',13,'Dynamics',13,'Model/Rotary Gust',13,'qGust (rad//sec)']])
set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model/Rotary Gust',13,'qGust (rad//sec)']],...
		'Port','3',...
		'position',[145,263,170,287])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[425,100;505,100])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[460,100;460,160;425,225;345,225])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[425,275;505,275])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[460,275;460,225;432,165;345,165])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[165,350;220,350;220,290;255,290])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[160,35;220,35;220,85;265,85])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[295,165;220,165;220,115;265,115])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[175,275;255,275])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[285,275;355,275])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[295,100;355,100])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[295,225;220,225;220,260;255,260])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[175,100;265,100])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[55,35;115,35])
add_line([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],[80,35;80,350;120,350])


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

set_param([sys,'/',['Aircraft',13,'Dynamics',13,'Model']],...
		'position',[405,160,435,210])

add_block('built-in/Gain',[sys,'/','Gain'])
set_param([sys,'/','Gain'],...
		'hide name',0,...
		'Gain','Zw',...
		'position',[260,166,300,204])

add_block('built-in/Sum',[sys,'/','Sum'])
set_param([sys,'/','Sum'],...
		'hide name',0,...
		'position',[345,225,365,265])

add_block('built-in/Gain',[sys,'/','Gain2'])
set_param([sys,'/','Gain2'],...
		'hide name',0,...
		'Gain','Mw',...
		'position',[260,213,300,257])

add_block('built-in/Gain',[sys,'/','Gain1'])
set_param([sys,'/','Gain1'],...
		'hide name',0,...
		'Gain','Mq',...
		'position',[260,265,300,305])


%     Subsystem  ['Dryden Wind',13,'Gust Models'].

new_system([sys,'/',['Dryden Wind',13,'Gust Models']])
set_param([sys,'/',['Dryden Wind',13,'Gust Models']],'Location',[79,145,531,383])

add_block('built-in/Transfer Fcn',[sys,'/',['Dryden Wind',13,'Gust Models/W-gust model']])
set_param([sys,'/',['Dryden Wind',13,'Gust Models/W-gust model']],...
		'Numerator','Swg/sqrt(a^3)*[sqrt(3)*a,1]',...
		'Denominator','[1 (2/a) 1/a^2]',...
		'position',[115,17,335,73])

add_block('built-in/Outport',[sys,'/',['Dryden Wind',13,'Gust Models/Qg']])
set_param([sys,'/',['Dryden Wind',13,'Gust Models/Qg']],...
		'Port','2',...
		'position',[380,160,400,180])

add_block('built-in/Outport',[sys,'/',['Dryden Wind',13,'Gust Models/Wg']])
set_param([sys,'/',['Dryden Wind',13,'Gust Models/Wg']],...
		'position',[380,35,400,55])

add_block('built-in/Transfer Fcn',[sys,'/',['Dryden Wind',13,'Gust Models/Q-gust model']])
set_param([sys,'/',['Dryden Wind',13,'Gust Models/Q-gust model']],...
		'Numerator','pi/(4*b)*[1 0]',...
		'Denominator','[1 pi*Vto/(4*b)]',...
		'position',[155,145,295,195])


%     Subsystem  ['Dryden Wind',13,'Gust Models/Band Limited',13,'White Noise'].

new_system([sys,'/',['Dryden Wind',13,'Gust Models/Band Limited',13,'White Noise']])
set_param([sys,'/',['Dryden Wind',13,'Gust Models/Band Limited',13,'White Noise']],'Location',[0,0,262,236])

add_block('built-in/Outport',[sys,'/',['Dryden Wind',13,'Gust Models/Band Limited',13,'White Noise/out_1']])
set_param([sys,'/',['Dryden Wind',13,'Gust Models/Band Limited',13,'White Noise/out_1']],...
		'position',[235,70,255,90])

add_block('built-in/White Noise',[sys,'/',['Dryden Wind',13,'Gust Models/Band Limited',13,'White Noise/White Noise']])

⌨️ 快捷键说明

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