├── README.md ├── .gitignore ├── AGTF30 ├── define_inputs.xlsx ├── SimSetup │ ├── Eng_Bus.mat │ ├── SS_Mtrx.mat │ ├── setup_Duct.m │ ├── setup_Sensor.m │ ├── setup_AllEng.m │ ├── setup_Actuators.m │ ├── ReCreateBus.m │ ├── setup_HPT.m │ ├── setup_LPC.m │ ├── setup_FAN.m │ ├── setup_LPT.m │ ├── setup_HPC.m │ ├── setup_InputsSS.m │ └── setup_Controller.m ├── PlotSS.m ├── setup_cleanup.m ├── setup_everything.m ├── PlotDyn.m ├── +AGTF30 │ ├── setup_simulation.m │ ├── InputsFromXLSX.m │ └── inEnvelope.m ├── define_inputs.m └── AGTF30SysLin.mdl └── LICENSE /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/AGTF30/HEAD/README.md -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.zip 2 | *.aux 3 | *.log 4 | *.gz 5 | *.pyc 6 | *.pdf 7 | *.slx 8 | 9 | -------------------------------------------------------------------------------- /AGTF30/define_inputs.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/AGTF30/HEAD/AGTF30/define_inputs.xlsx -------------------------------------------------------------------------------- /AGTF30/SimSetup/Eng_Bus.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/AGTF30/HEAD/AGTF30/SimSetup/Eng_Bus.mat -------------------------------------------------------------------------------- /AGTF30/SimSetup/SS_Mtrx.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nasa/AGTF30/HEAD/AGTF30/SimSetup/SS_Mtrx.mat -------------------------------------------------------------------------------- /AGTF30/PlotSS.m: -------------------------------------------------------------------------------- 1 | % plot using the TMATS TD plot function 2 | TMATS.SSplot('AGTF30SysSS',{'out_S0','out_S2','out_S21','out_S25','out_S36','out_S4','out_S45','out_S5','out_S0'}) -------------------------------------------------------------------------------- /AGTF30/setup_cleanup.m: -------------------------------------------------------------------------------- 1 | %Remove engine path 2 | if exist('MWS','var') 3 | if isfield('MWS','top_level') 4 | rmpath(MWS.top_level); 5 | else 6 | rmpath(pwd) 7 | end 8 | else 9 | rmpath(pwd); 10 | end 11 | -------------------------------------------------------------------------------- /AGTF30/setup_everything.m: -------------------------------------------------------------------------------- 1 | % setup_everything.m 2 | % ************************************************************************* 3 | % written by Jeffryes Chapman 4 | % NASA Glenn Research Center, Cleveland, OH 5 | % Aug 15th, 2016 6 | % 7 | % This function calls all inputs for the AGTF30 engine simulation 8 | % ************************************************************************* 9 | clear MWS 10 | Input.UseExcel = 1; 11 | Input.LoadBus = 1; 12 | % Input.ICPoint = 'auto'; 13 | AGTF30.setup_simulation(Input); 14 | 15 | clear Input; 16 | -------------------------------------------------------------------------------- /AGTF30/SimSetup/setup_Duct.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_Duct(MWS) 2 | % set as a slewing dP defined as dP = dPdes * (MN/MNdes)^2 3 | 4 | % Duct 2 5 | MWS.Duct.D2 = 0.01; 6 | MWS.Duct.MNdes2 = 0.45; 7 | MWS.Duct.Ath2 = 286.9; 8 | % Duct 25 9 | MWS.Duct.D25 = 0.015; 10 | MWS.Duct.MNdes25 = 0.45; 11 | MWS.Duct.Ath25 = 115.6; 12 | % Duct 45 13 | MWS.Duct.D45 = 0.005; 14 | MWS.Duct.MNdes45 = 0.3; 15 | MWS.Duct.Ath45 = 66.3; 16 | % Duct 5 17 | MWS.Duct.D5 = 0.01; 18 | MWS.Duct.MNdes5 = 0.35; 19 | MWS.Duct.Ath5 = 945.0; 20 | % Duct 17 21 | MWS.Duct.D17 = 0.015; 22 | MWS.Duct.MNdes17 = 0.45; 23 | MWS.Duct.Ath17 = 6917.7; 24 | 25 | -------------------------------------------------------------------------------- /AGTF30/PlotDyn.m: -------------------------------------------------------------------------------- 1 | % plot using the TMATS TD plot function 2 | TMATS.TDplot('AGTF30SysDyn') 3 | 4 | % --------------------------------------------------------------- 5 | % plot remaining itemts that do not appear with the TDplot command 6 | 7 | % save figure settings 8 | Temp.set_old = get(0,'DefaultFigureWindowStyle'); 9 | % set figure to place new figures into the same window 10 | set(0,'DefaultFigureWindowStyle','docked'); 11 | 12 | % plot additional engine items, thrust and control inputs 13 | Temp.f = figure; 14 | set(Temp.f,'name','Cntrl,Thrst','numbertitle','off'); 15 | subplot(4,1,1) 16 | plot(out_Dyn.eng.Perf.Fnet) 17 | ylabel('Fnet, lbf') 18 | subplot(4,1,2) 19 | plot(out_Dyn.cntrl.Wfdmd) 20 | ylabel('Wf, pps') 21 | subplot(4,1,3) 22 | plot(out_Dyn.cntrl.VBVdmd) 23 | ylabel('VBV') 24 | subplot(4,1,4) 25 | plot(out_Dyn.cntrl.VAFNdmd) 26 | ylabel('VAFN, in2') 27 | 28 | % plot stall margins 29 | Temp.f = figure; 30 | set(Temp.f,'name','SrgMrgn','numbertitle','off'); 31 | subplot(3,1,1) 32 | plot(out_Dyn.eng.SM.SMFan) 33 | ylabel('SM, %') 34 | subplot(3,1,2) 35 | plot(out_Dyn.eng.SM.SMLPC) 36 | ylabel('SM, %') 37 | subplot(3,1,3) 38 | plot(out_Dyn.eng.SM.SMHPC) 39 | ylabel('SM, %') 40 | 41 | %return settings 42 | set(0,'DefaultFigureWindowStyle',Temp.set_old); 43 | 44 | clear Temp -------------------------------------------------------------------------------- /AGTF30/SimSetup/setup_Sensor.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_Sensor(MWS) 2 | % set sensor responses 3 | 4 | % P2 sensor inputs 5 | MWS.Sensor.P2.Tau = 1/25; 6 | MWS.Sensor.P2.Max = 30; 7 | MWS.Sensor.P2.Min = 1; 8 | 9 | % P25 sensor inputs 10 | MWS.Sensor.P25.Tau = 1/25; 11 | MWS.Sensor.P25.Max = 300; 12 | MWS.Sensor.P25.Min = 1; 13 | 14 | % Ps3 sensor inputs 15 | MWS.Sensor.Ps3.Tau = 1/25; 16 | MWS.Sensor.Ps3.Max = 800; 17 | MWS.Sensor.Ps3.Min = 10; 18 | 19 | % P5 sensor inputs 20 | MWS.Sensor.P5.Tau = 1/25; 21 | MWS.Sensor.P5.Max = 400; 22 | MWS.Sensor.P5.Min = 1; 23 | 24 | % Temperature Sensors 25 | 26 | % T2 sensor inputs 27 | MWS.Sensor.T2.Tau = 1/1.43; 28 | MWS.Sensor.T2.Max = 700; 29 | MWS.Sensor.T2.Min = 300; 30 | 31 | % T25 sensor inputs 32 | MWS.Sensor.T25.Tau = 1/1.43; 33 | MWS.Sensor.T25.Max = 900; 34 | MWS.Sensor.T25.Min = 300; 35 | 36 | % T3 sensor inputs 37 | MWS.Sensor.T3.Tau = 1/1.43; 38 | MWS.Sensor.T3.Max = 2000; 39 | MWS.Sensor.T3.Min = 1; 40 | 41 | % T5 sensor inputs 42 | MWS.Sensor.T45.Tau = 1/1.43; 43 | MWS.Sensor.T45.Max = 3000; 44 | MWS.Sensor.T45.Min = 1; 45 | 46 | 47 | % Speed Sensors 48 | % N1 sensor inputs - Fan speed 49 | MWS.Sensor.N1.Tau = 1/50; 50 | MWS.Sensor.N1.Max = 10000; 51 | MWS.Sensor.N1.Min = 500; 52 | 53 | % N2 sensor inputs - LP shaft speed 54 | MWS.Sensor.N2.Tau = 1/50; 55 | MWS.Sensor.N2.Max = 10000; 56 | MWS.Sensor.N2.Min = 500; 57 | 58 | % N3 sensor inputs - HP shaft speed 59 | MWS.Sensor.N3.Tau = 1/50; 60 | MWS.Sensor.N3.Max = 30000; 61 | MWS.Sensor.N3.Min = 500; 62 | -------------------------------------------------------------------------------- /AGTF30/SimSetup/setup_AllEng.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_AllEng(MWS) 2 | 3 | MWS.iDesign = 2; 4 | 5 | %Inlet 6 | MWS.Inlet.eRam = 1; 7 | % for MN = low, 0.00, 0.10, 0.20, 0.30, 0.40, 0.60, 0.80, 0.90 8 | MWS.Inlet.eRamVec = [0.9 1.0 1.007 1.028 1.065 1.117 1.276 1.525 1.692]; 9 | MWS.Inlet.eRamTBL = [0.995 0.995, 0.996, 0.997, 0.997, 0.998, 0.998, 0.998, 0.998]; 10 | 11 | 12 | %Components 13 | MWS = setup_FAN(MWS); 14 | MWS = setup_LPC(MWS); 15 | MWS = setup_HPC(MWS); 16 | MWS = setup_HPT(MWS); 17 | MWS = setup_LPT(MWS); 18 | 19 | %VBV 20 | MWS.VBV.fullopen = 1; 21 | MWS.VBV.fullclosed = 0; 22 | MWS.VBV.Ae = 4; % effective area (in2) 23 | MWS.VBV.PRVec = [1, 1.1, 2, 5]; % pressure ratio vector 24 | MWS.VBV.Flowe = [0, 0.3, 0.5, 0.99]*10; % effective flow array 25 | 26 | %Burner 27 | MWS.Burn.LHV = 18400; 28 | MWS.Burn.dPqP_dmd = 0.04; 29 | MWS.Burn.Eff = 0.9990; 30 | 31 | %Nozzles 32 | MWS.NozByp.Cfg = 0.9975; 33 | MWS.NozByp.WDes = 780.95; 34 | 35 | MWS.NozCor.Ath = 393.43; 36 | MWS.NozCor.Cfg = 0.9999; 37 | MWS.NozCor.WDes = 33.34; 38 | 39 | %Ducts 40 | MWS = setup_Duct(MWS); 41 | 42 | %Gearbox 43 | MWS.GearBox.GearRatio = 3.1; % Note: NPSS data states this value is 3.0, though 3.1 fits the data better. 44 | MWS.GearBox.Eff = 1.0; 45 | 46 | %Sensors 47 | MWS = setup_Sensor(MWS); 48 | 49 | %Actuators 50 | MWS = setup_Actuators(MWS); 51 | 52 | %Shaft 53 | % Low pressure shaft inertia slugs * ft2 54 | % MWS.Shaft.LPS_Inertia = (484135.-450102.)/32.2/144.; %old 55 | MWS.Shaft.LPS_Inertia = ((450102/(3.1*3.1)) + 17796 + 16237) /32.2/144.; 56 | MWS.Shaft.LPS_Eff = 0.99; 57 | % High pressure shaft inertia, slugs*ft2 58 | MWS.Shaft.HPS_Inertia = 8627/32.2/144.; -------------------------------------------------------------------------------- /AGTF30/+AGTF30/setup_simulation.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_simulation(varargin) 2 | % void setup_simulation() 3 | % MWS = setup_simulation(Input_structure) 4 | % This function defines all inputs for the AGTF30 engine simulation 5 | 6 | % ************************************************************************* 7 | % written by Jeffryes Chapman based on work by Ryan May, Jeff Csank, and 8 | % Dean Fredrick 9 | % NASA Glenn Research Center, Cleveland, OH 10 | % Aug 15th, 2016 11 | % 12 | % ************************************************************************* 13 | 14 | MWS.engName = 'AGTF30'; 15 | 16 | if(nargin == 0) % if engName argument is not passed into setup_everything 17 | inputs = []; % pull inputs from inputs scripted in define inputs 18 | inputs.LoadBus = 1; % Set to load bus objects. 19 | elseif(nargin == 1) 20 | inputs = varargin{1}; 21 | end 22 | 23 | MWS.top_level = pwd; 24 | addpath(MWS.top_level); 25 | MWS.POp = filesep; 26 | 27 | 28 | %------ run various setup files to get tables & constants --------- 29 | % change directory to SimSetup 30 | cd([MWS.top_level,MWS.POp,'SimSetup']); 31 | 32 | MWS = setup_Controller(MWS); % develops inputs for engine controller 33 | MWS = setup_AllEng(MWS); % develops inputs for engine simulation 34 | 35 | %load bus objects 36 | if ~isfield(inputs,'LoadBus') 37 | evalin('base','load(''Eng_Bus.mat'')'); 38 | elseif inputs.LoadBus == 1 39 | evalin('base','load(''Eng_Bus.mat'')'); 40 | end 41 | 42 | %return to base 43 | cd([MWS.top_level]); 44 | 45 | % gather inputs 46 | MWS = define_inputs(MWS,inputs); % develops simulation inputs 47 | 48 | %send inputs to the workspace 49 | if(nargout == 0) 50 | assignin('base','MWS',MWS); 51 | end 52 | 53 | % loading complete 54 | disp('** AGTF30 ready to execute **') -------------------------------------------------------------------------------- /AGTF30/SimSetup/setup_Actuators.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_Actuators(MWS) 2 | % setup actuator variables 3 | 4 | %------------- Fuel Metering Valve ----------------------- 5 | MWS.Act.FMV.min = 0; % min FMV actuator position (pps) 6 | MWS.Act.FMV.max = 2.5; % max FMV actuator postion (pps) 7 | 8 | MWS.Act.FMV.Tau = 0.1; 9 | MWS.Act.FMV.Gain = 1; 10 | 11 | FMV_stepResponseTime = 1.0; % seconds to go from 10% to 90% 12 | MWS.Act.FMV.rateLimit = 0.9*(MWS.Act.FMV.max-MWS.Act.FMV.min)/FMV_stepResponseTime; 13 | 14 | MWS.Act.FMV.TWf_dly = 0.040; % 40 ms fuel flow delay between actuator and combustion 15 | 16 | %------------- Variable Bleed Valve ----------------------- 17 | MWS.Act.VBV.min = 0; % min VBV actuator position, fully closed 18 | MWS.Act.VBV.max = 1; % max VBV actuator position, fully open 19 | 20 | MWS.Act.VBV.Tau = 0.0435; 21 | MWS.Act.VBV.Gain = 1; 22 | 23 | %------------- Variable Area Fan Nozzle ----------------------- 24 | 25 | Type = 'common'; 26 | % -------------Type 1 27 | MWS.Act.VAFN_max = MWS.Cntrl.VAFN_max; 28 | 29 | switch(Type) 30 | case 'advanced' 31 | % theoretical thermal actuation 32 | MWS.Act.VAFN.BW = 0.3; 33 | MWS.Act.VAFN.A = -MWS.Act.VAFN.BW; 34 | MWS.Act.VAFN.B = MWS.Act.VAFN.BW; 35 | MWS.Act.VAFN.C = 1; 36 | MWS.Act.VAFN.D = 0; 37 | case 'common' 38 | % fast actuation 39 | MWS.Act.VAFN.BW = 5; 40 | MWS.Act.VAFN.A = -MWS.Act.VAFN.BW; 41 | MWS.Act.VAFN.B = MWS.Act.VAFN.BW; 42 | MWS.Act.VAFN.C = 1; 43 | MWS.Act.VAFN.D = 0; 44 | otherwise 45 | % default to common type 46 | MWS.Act.VAFN.BW = 10; 47 | MWS.Act.VAFN.A = -MWS.Act.VAFN.BW; 48 | MWS.Act.VAFN.B = MWS.Act.VAFN.BW; 49 | MWS.Act.VAFN.C = 1; 50 | MWS.Act.VAFN.D = 0; 51 | end 52 | 53 | -------------------------------------------------------------------------------- /AGTF30/+AGTF30/InputsFromXLSX.m: -------------------------------------------------------------------------------- 1 | function inputs = InputsFromXLSX(FileName, Default_inputs) 2 | 3 | 4 | % ************************************************************************* 5 | % written by Jeffryes Chapman 6 | % NASA Glenn Research Center, Cleveland, OH 7 | % Aug 15th, 2016 8 | % 9 | % ************************************************************************* 10 | 11 | 12 | inputs = Default_inputs; 13 | 14 | [A,B,C] = xlsread(FileName); 15 | for i = 2:size(C,1) 16 | Nm = C(i,2); 17 | Tm = C(i,3); 18 | Name = Nm{1}; 19 | TVecNm = Tm{1}; 20 | TVGood = 0; 21 | if prod(~isnan(Name)) 22 | Name = strtrim(Name); 23 | end 24 | if prod(~isnan(TVecNm)) 25 | TVecNm = strtrim(TVecNm); 26 | TVGood = 1; 27 | end 28 | 29 | RdNxt = 1; 30 | 31 | if isfield(inputs,Name) 32 | 33 | elseif isvarname(Name) && prod(~isnan(Name)) 34 | Data = C(i,4:end); 35 | for ii = 1: length(Data) 36 | % Begin reading Data 37 | if prod(~isnan(Data{ii})) && RdNxt && isnumeric(Data{ii}) 38 | inputs.(Name)(ii) = Data{ii}; 39 | if TVGood == 1 40 | TStr.(Name) = TVecNm; 41 | else 42 | TStr.(Name) = 'BadName'; 43 | end 44 | elseif prod(~isnan(Data{ii})) && RdNxt && iscellstr(Data(ii)) 45 | inputs.(Name) = char(Data(ii)); 46 | RdNxt = 0; 47 | else 48 | RdNxt = 0; 49 | end 50 | end 51 | end 52 | 53 | end 54 | 55 | List = fields(TStr); 56 | for i = 1: length(List) 57 | ItNm = char(List(i)); 58 | CurTVecNm = TStr.(ItNm); 59 | if isfield('inputs',ItNm) 60 | if length(inputs.(ItNm)) == length(inputs.(CurTVecNm)) 61 | inputs.(ItNm) = [inputs.(ItNm); inputs.(CurTVecNm)]; 62 | else 63 | fprintf('Check time vector length in excel sheet') 64 | end 65 | end 66 | end 67 | 68 | -------------------------------------------------------------------------------- /AGTF30/+AGTF30/inEnvelope.m: -------------------------------------------------------------------------------- 1 | function varargout = inEnvelope(MWS) 2 | % This function determines if the engine is within the flight envelope 3 | % cond = inEvelope(MWS) 4 | % cond = 1 - IC is within the flight envelope 5 | % cond = 0 - IC is not within the flight envelope 6 | 7 | % ************************************************************************* 8 | % written by Jeffryes Chapman 9 | % NASA Glenn Research Center, Cleveland, OH 10 | % Aug 15th, 2016 11 | % 12 | % ************************************************************************* 13 | 14 | cond = 1; 15 | 16 | %High limit 17 | MN_mx = 0.8; 18 | MN_mn = 0; 19 | 20 | MN_hi = [MN_mn, 0.2, 0.5, 0.6, 0.7, MN_mx]; 21 | Alt_hi = [ 1.0, 1.0, 2.5, 3.5, 4.0, 4.0]*10^4; 22 | 23 | MN_low = [MN_mn, 0.5, 0.6, 0.7, MN_mx]; 24 | Alt_low = [ 0.0, 0, 1.0, 2.0, 25]*10^3; 25 | 26 | dT_hi = 30; 27 | dT_low = -30; 28 | 29 | % Gather flight envelope data 30 | Alt = MWS.In.AltIC; 31 | MN = MWS.In.MNIC; 32 | dT = MWS.In.dTambIC; 33 | 34 | % Determine if dT is in bounds 35 | if dT_hi < dT || dT_low > dT 36 | fprintf('dT initial condition is out of the flight envelope\n'); 37 | cond = 0; 38 | dT = max(min(dT,dT_hi),dT_low); 39 | end 40 | 41 | % Determine if MN is in bounds 42 | if MN_mx < MN || MN_mn > MN 43 | fprintf('MN initial condition is out of the flight envelope\n'); 44 | cond = 0; 45 | MN = max(min(MN,MN_mx),MN_mn); 46 | end 47 | 48 | % Determine if Alt is in bounds 49 | if cond == 1 50 | Alt_hi_calc = interp1(MN_hi,Alt_hi,MN); 51 | Alt_low_calc = interp1(MN_low,Alt_low,MN); 52 | if Alt > Alt_hi_calc || Alt < Alt_low_calc; 53 | fprintf('Alt initial condition is out of the flight envelope\n'); 54 | cond = 0; 55 | Alt = max(min(Alt,Alt_hi_calc),Alt_low_calc); 56 | end 57 | end 58 | 59 | if nargout == 1 60 | varargout = {cond}; 61 | elseif nargout == 2 62 | varargout = {cond,Alt}; 63 | elseif nargout == 3 64 | varargout = {cond,Alt,MN}; 65 | elseif nargout == 4 66 | varargout = {cond,Alt,MN,dT}; 67 | else 68 | varargout = {cond}; 69 | end 70 | 71 | 72 | -------------------------------------------------------------------------------- /AGTF30/SimSetup/ReCreateBus.m: -------------------------------------------------------------------------------- 1 | % To create all buses for the model call. 2 | % 1) Enter AGTF30_eng.slx (make sure to create the MWS variable first with 3 | % setup_everything. 4 | % 2) remove bus outport from model (Sys_Out in top level of AGTF30_eng.slx) 5 | % 3) select bus creator you wish to generate the bus objects for (marked as 6 | % BusCreatorHere in AGTF30_eng.slx -> AGT30F_eng/Engine/EngData) 7 | % 4) run the command below 8 | % 5) put outport back into model 9 | % 6) go into model to the bus editor. Here there will be all the bus 10 | % objects... export the bus objects to a .mat file. Overwrite the current 11 | % mat file located in the SimSetup folder (Eng_Bus.mat). 12 | %------------------------------------------------------------------------ 13 | % Automated Version 14 | clear all 15 | cd .. 16 | % Generate MWS variable so system can be run, use the known cruise IC so the 17 | % simulation does not run the SS solver to determine ICs (this is bad 18 | % because the bus files may not work). 19 | Input.ICPoint = 'cruise'; 20 | run('setup_everything.m'); 21 | % separate MWS variable from bus objects. 22 | save('MWS.mat','MWS'); 23 | % clear bus variables 24 | clear all; 25 | % Load MWS variable back into system 26 | load('MWS.mat'); 27 | 28 | % Remove Eng_Out outport from AGTF30_eng, for some reason the auto bus 29 | % creation script doesn't work with this block here. Then create bus 30 | % objects and close system w/o saving. 31 | % open system 32 | open_system('AGTF30_eng'); 33 | try 34 | % delete the outport file that uses the buses... auto bus generator 35 | % doesn't like it. 36 | Temp.OffendingBlockString=['AGTF30_eng','/','Eng_Out']; 37 | delete_block(Temp.OffendingBlockString); 38 | 39 | % Create bus files based on final mux location within the file. 40 | Temp.MuxBlockString = ['AGTF30_eng','/','Engine','/','EngData','/','BusCreatorHere']; 41 | Simulink.Bus.createObject('AGTF30_eng', Temp.MuxBlockString,'AGTF30_Bus'); 42 | catch 43 | % something went wrong 44 | disp('bus objects not created') 45 | end 46 | % close w/o saving 47 | bdclose('AGTF30_eng'); 48 | 49 | % Adjust file format to meet current AGTF30 format. A .m was created AGTF30 50 | % needs a .mat file. 51 | % remove all workspace vars 52 | clear all 53 | if exist('AGTF30_Bus.m', 'file') == 2 54 | % create bus files 55 | run('AGTF30_Bus.m'); 56 | % save the buf files as a .mat 57 | save('Eng_Bus.mat','-regexp','^(?!(ans)$).'); 58 | % clean up files MWS and Buf file 59 | delete('AGTF30_Bus.m'); 60 | if exist('MWS.mat', 'file') == 2 61 | delete('MWS.mat'); 62 | end 63 | % move file to proper destination 64 | Temp.Dest = fullfile(pwd,'SimSetup'); 65 | movefile('Eng_Bus.mat',Temp.Dest); 66 | end 67 | cd SimSetup 68 | clear all; 69 | disp('Bus generation complete, run AGTF30 setup as normal to begin') 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /AGTF30/SimSetup/setup_HPT.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_HPT(MWS) %Scalars MWS.HPT.s_Nc = 3.708724; MWS.HPT.s_Wc = 0.1951; MWS.HPT.s_PR = 0.773898; MWS.HPT.s_Eff = 0.998392; %Design Point Data MWS.HPT.NcMapDes = 100; MWS.HPT.EffDes = 0.9313; MWS.HPT.PRMapDes = 5.0; MWS.HPT.NDes = 20871.0; % Cooling Flows MWS.HPT.CWPos = [1 0]; %Map Data alphaMapDes = 1.0; MWS.HPT.NcVec = [ 60 70 80 90 100 110]; MWS.HPT.PRVec(1,:) = [ 3.000 3.250 3.500 3.750 4.000 4.250 4.500... 4.750 5.000 5.250 5.500 5.750 6.000 6.250... 6.500 6.750 7.000 7.250 7.500 8.000 ]; MWS.HPT.effArray(1,:) = [ 0.8460 0.8405 0.8349 0.8296 0.8249 0.8206 0.8165... 0.8127 0.8092 0.8060 0.8030 0.8002 0.7976 0.7953... 0.7931 0.7911 0.7892 0.7875 0.7858 0.7826 ]; MWS.HPT.effArray(2,:) = [ 0.8879 0.8842 0.8804 0.8769 0.8735 0.8701 0.8670... 0.8640 0.8614 0.8590 0.8568 0.8548 0.8529 0.8511... 0.8495 0.8479 0.8460 0.8436 0.8414 0.8373 ]; MWS.HPT.effArray(3,:) = [ 0.9125 0.9111 0.9096 0.9078 0.9055 0.9034 0.9014... 0.8995 0.8979 0.8964 0.8950 0.8936 0.8924 0.8903... 0.8877 0.8853 0.8830 0.8808 0.8787 0.8749 ]; MWS.HPT.effArray(4,:) = [ 0.9228 0.9242 0.9250 0.9247 0.9240 0.9232 0.9224... 0.9217 0.9210 0.9203 0.9197 0.9188 0.9162 0.9137... 0.9113 0.9091 0.9070 0.9050 0.9031 0.8980 ]; MWS.HPT.effArray(5,:) = [ 0.9215 0.9258 0.9289 0.9304 0.9313 0.9319 0.9323... 0.9326 0.9328 0.9329 0.9330 0.9311 0.9288 0.9266... 0.9245 0.9225 0.9206 0.9188 0.9161 0.9107 ]; MWS.HPT.effArray(6,:) = [ 0.9106 0.9176 0.9232 0.9267 0.9292 0.9312 0.9327... 0.9340 0.9351 0.9361 0.9369 0.9349 0.9329 0.9311... 0.9293 0.9276 0.9259 0.9239 0.9212 0.9161 ]; MWS.HPT.WcArray(1,:) = [ 30.446 30.533 30.568 30.572 30.572 30.572 30.572... 30.572 30.572 30.572 30.572 30.572 30.572 30.572... 30.572 30.572 30.572 30.572 30.572 30.572 ]; MWS.HPT.WcArray(2,:) = [ 30.299 30.413 30.480 30.516 30.529 30.530 30.530... 30.530 30.530 30.530 30.530 30.530 30.530 30.530... 30.530 30.530 30.530 30.530 30.530 30.530 ]; MWS.HPT.WcArray(3,:) = [ 30.120 30.239 30.317 30.368 30.398 30.415 30.421... 30.421 30.421 30.421 30.421 30.421 30.421 30.421... 30.421 30.421 30.421 30.421 30.421 30.421 ]; MWS.HPT.WcArray(4,:) = [ 30.014 30.124 30.201 30.253 30.288 30.311 30.325... 30.333 30.337 30.337 30.337 30.337 30.337 30.337... 30.337 30.337 30.337 30.337 30.337 30.337 ]; MWS.HPT.WcArray(5,:) = [ 29.856 29.948 30.013 30.059 30.091 30.113 30.128... 30.139 30.145 30.149 30.150 30.150 30.150 30.150... 30.150 30.150 30.150 30.150 30.150 30.150 ]; MWS.HPT.WcArray(6,:) = [ 29.799 29.870 29.920 29.955 29.979 29.997 30.009... 30.017 30.023 30.026 30.028 30.029 30.029 30.029... 30.029 30.029 30.029 30.029 30.029 30.029 ]; % % Extrapolated map values. Note, these map values are for convergence % % purposes and were defined by extrapolatoin off the generic map above. NcE = [120 130]; MWS.HPT.NcVec = [MWS.HPT.NcVec NcE]; MWS.HPT.effArray(7,:) = [ 0.8997 0.9094 0.9175 0.9230 0.9271 0.9305 0.9331... 0.9354 0.9374 0.9393 0.9408 0.9387 0.9370 0.9356... 0.9341 0.9327 0.9312 0.9290 0.9263 0.9215]; MWS.HPT.effArray(8,:) = [ 0.8888 0.9012 0.9118 0.9193 0.9250 0.9298... 0.9335 0.9368 0.9397 0.9425 0.9447 0.9425 0.9411 0.9401... 0.9389 0.9378 0.9365 0.9341 0.9314 0.9269]; MWS.HPT.WcArray(7,:) = [ 29.7420 29.7920 29.8270 29.8510 29.8670 29.8810... 29.8900 29.8950 29.9010 29.9030 29.9060 29.9080 29.9080... 29.9080 29.9080 29.9080 29.9080 29.9080 29.9080 29.9080]; MWS.HPT.WcArray(8,:) = [ 29.6850 29.7140 29.7340 29.7470 29.7550 29.7650... 29.7710 29.7730 29.7790 29.7800 29.7840 29.7870 29.7870... 29.7870 29.7870 29.7870 29.7870 29.7870 29.7870 29.7870]; -------------------------------------------------------------------------------- /AGTF30/SimSetup/setup_LPC.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_LPC(MWS) %Scalars MWS.LPC.s_Nc = 6398.399938; MWS.LPC.s_Wc = 0.300704; MWS.LPC.s_PR = 4.374453; MWS.LPC.s_Eff = 1.019486; %Design Point Data MWS.LPC.NcDesMap = 1.1; MWS.LPC.EffDes = 0.8894; MWS.LPC.PRDes = 3.0; MWS.LPC.RlineDesMap = 2.2; %Map Data alphaMapDes = 0.0; MWS.LPC.RVec(1,:) = [ 1.000 1.200 1.400 1.600 1.800 2.000... 2.200 2.400 2.600 2.800 3.000 3.200 ]; MWS.LPC.WcArray(1,:) = [ 38.0744 42.9399 47.7510 52.5016 57.1863 61.7994... 66.3359 70.7905 75.1584 76.5663 76.5663 76.5663 ]; MWS.LPC.WcArray(2,:) = [ 54.0383 60.0388 65.9233 71.6816 77.3038 82.7808... 88.1038 93.2648 98.2565 101.0545 101.0545 101.0545 ]; MWS.LPC.WcArray(3,:) = [ 70.3200 77.5153 84.4949 91.2421 97.7419 103.9805... 109.9459 115.6273 121.0156 124.6409 124.6409 124.6409 ]; MWS.LPC.WcArray(4,:) = [ 87.4860 95.6896 103.5393 111.0128 118.0907 124.7566... 130.9971 136.8019 142.1633 146.2312 146.2312 146.2312 ]; MWS.LPC.WcArray(5,:) = [ 105.8588 114.8071 123.2285 131.0978 138.3948 145.1045... 151.2169 156.7268 161.6340 165.7319 165.7319 165.7319 ]; MWS.LPC.WcArray(6,:) = [ 125.1164 134.6062 143.3572 151.3454 158.5548 164.9773... 170.6127 175.4677 179.5554 182.8951 183.0717 183.0717 ]; MWS.LPC.WcArray(7,:) = [ 144.4910 154.5703 163.6243 171.6346 178.5959 184.5149... 189.4099 193.3090 196.2491 198.2745 198.4155 198.4155 ]; MWS.LPC.WcArray(8,:) = [ 165.9141 176.2228 185.1849 192.7986 199.0806 204.0644... 207.7979 210.3410 211.7638 212.1506 212.1506 212.1506 ]; MWS.LPC.WcArray(9,:) = [ 188.5677 198.3532 206.6834 213.5745 219.0613 223.1942... 226.0370 227.6647 228.1611 228.1611 228.1611 228.1611 ]; MWS.LPC.WcArray(10,:) = [ 214.1402 222.1943 228.9021 234.2963 238.4220 241.3359... 243.1030 243.7959 243.8124 243.8124 243.8124 243.8124 ]; MWS.LPC.WcArray(11,:) = [ 227.8569 234.5820 240.1193 244.5040 247.7802 250.0000... 251.2213 251.5216 251.5216 251.5216 251.5216 251.5216 ]; MWS.LPC.EffArray(1,:) = [ .7256 .7656 .7978 .8195 .8274 .8164 .7494... .5651 .1931 .0000 .0000 .0000 ]; MWS.LPC.EffArray(2,:) = [ .7474 .7848 .8147 .8351 .8430 .8339 .7757... .6161 .3003 .0000 .0000 .0000 ]; MWS.LPC.EffArray(3,:) = [ .7610 .7984 .8286 .8496 .8586 .8516 .7977... .6479 .3526 .0000 .0000 .0000 ]; MWS.LPC.EffArray(4,:) = [ .7744 .8117 .8421 .8637 .8738 .8685 .8183... .6765 .3970 .0000 .0000 .0000 ]; MWS.LPC.EffArray(5,:) = [ .7872 .8240 .8542 .8759 .8866 .8827 .8360... .7028 .4407 .0000 .0000 .0000 ]; MWS.LPC.EffArray(6,:) = [ .7965 .8329 .8627 .8843 .8953 .8924 .8485... .7222 .4748 .0391 .0000 .0000 ]; MWS.LPC.EffArray(7,:) = [ .7997 .8368 .8673 .8896 .9013 .8991 .8561... .7310 .4858 .0551 .0000 .0000 ]; MWS.LPC.EffArray(8,:) = [ .8034 .8405 .8712 .8937 .9058 .9042 .8628... .7420 .5068 .0979 .0000 .0000 ]; MWS.LPC.EffArray(9,:) = [ .8214 .8533 .8793 .8981 .9079 .9062 .8724... .7766 .5961 .2955 .0000 .0000 ]; MWS.LPC.EffArray(10,:) = [ .8425 .8663 .8853 .8985 .9047 .9025 .8778... .8117 .6929 .5052 .2255 .0000 ]; MWS.LPC.EffArray(11,:) = [ .8540 .8731 .8880 .8981 .9024 .9000 .8800... .8286 .7386 .6003 .4004 .1206 ]; MWS.LPC.PRArray(1,:) = [ 1.0423 1.0412 1.0393 1.0367 1.0333 1.0292 1.0234... 1.0151 1.0043 1.0000 1.0000 1.0000 ]; MWS.LPC.PRArray(2,:) = [ 1.0760 1.0738 1.0704 1.0658 1.0600 1.0530 1.0434... 1.0297 1.0122 1.0000 1.0000 1.0000 ]; MWS.LPC.PRArray(3,:) = [ 1.1215 1.1180 1.1127 1.1055 1.0965 1.0856 1.0707... 1.0497 1.0228 1.0000 1.0000 1.0000 ]; MWS.LPC.PRArray(4,:) = [ 1.1789 1.1738 1.1660 1.1555 1.1423 1.1266 1.1052... 1.0753 1.0374 1.0000 1.0000 1.0000 ]; MWS.LPC.PRArray(5,:) = [ 1.2494 1.2422 1.2312 1.2167 1.1986 1.1771 1.1481... 1.1078 1.0572 1.0000 1.0000 1.0000 ]; MWS.LPC.PRArray(6,:) = [ 1.3353 1.3253 1.3105 1.2910 1.2669 1.2384 1.2002... 1.1476 1.0822 1.0056 1.0000 1.0000 ]; MWS.LPC.PRArray(7,:) = [ 1.4411 1.4282 1.4088 1.3830 1.3512 1.3136 1.2632... 1.1942 1.1088 1.0101 1.0000 1.0000 ]; MWS.LPC.PRArray(8,:) = [ 1.5724 1.5561 1.5313 1.4982 1.4572 1.4088 1.3440... 1.2556 1.1472 1.0233 1.0000 1.0000 ]; MWS.LPC.PRArray(9,:) = [ 1.7323 1.7101 1.6785 1.6379 1.5888 1.5318 1.4572... 1.3572 1.2358 1.0982 1.0000 1.0000 ]; MWS.LPC.PRArray(10,:) = [ 1.9360 1.9056 1.8662 1.8184 1.7625 1.6991 1.6190... 1.5142 1.3887 1.2471 1.0944 1.0000 ]; MWS.LPC.PRArray(11,:) = [ 2.0507 2.0158 1.9729 1.9223 1.8645 1.8000 1.7201... 1.6176 1.4958 1.3584 1.2098 1.0546 ]; MWS.LPC.NcVec = [ 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.25]; % expand Rline = 1 to generate the stall margin vectors PRSMVec = MWS.LPC.PRArray(:,1)'; WcSMVec = MWS.LPC.WcArray(:,1)'; WcSMmx = max(max(MWS.LPC.WcArray)); MWS.LPC.SM_WcVec = [WcSMVec, WcSMmx]; PRex = PRSMVec(end) + (WcSMmx - WcSMVec(end))*(PRSMVec(end) - PRSMVec(end - 1))/(WcSMVec(end) - WcSMVec(end - 1)); MWS.LPC.SM_PRVec = [PRSMVec, PRex]; -------------------------------------------------------------------------------- /AGTF30/define_inputs.m: -------------------------------------------------------------------------------- 1 | function MWS = define_inputs(MWS,inputs) 2 | % define_inputs.m 3 | % ************************************************************************* 4 | % written by Jeff Chapman 5 | % NASA Glenn Research Center, Cleveland, OH 6 | % Aug 15th, 2016 7 | % 8 | % This file contains the user defined inputs for AGTF30 simulation 9 | % ************************************************************************* 10 | 11 | MWS.In.Ts = 0.015; 12 | %% If UseExel is set to 1, set input vector to coincide with data 13 | % within "define_inputs.slx", note if any other inputs are being set by 14 | % inputing to define_inputs.m, they will not be changed. Note: using Excel inputs 15 | % will greatly increase the run time of this script. When running this 16 | % script many times it is recommended to turn this feature off. 17 | if isfield(inputs,'UseExcel') 18 | if inputs.UseExcel == 1 19 | inputs = AGTF30.InputsFromXLSX('define_inputs.xlsx', inputs); 20 | fprintf('Inputs gathered from define_inputs.xlsx\n') 21 | else 22 | inputs.UseExcel = 0; 23 | end 24 | end 25 | 26 | cd([MWS.top_level,MWS.POp,'SimSetup']) 27 | %% Set default time vector name 28 | DefTVNm = 't'; 29 | % Set default time vector values 30 | MWS = SetInput(MWS,DefTVNm, [0 10 300 600],inputs); 31 | 32 | %% Environmental Inputs (t , Alt, MN, dT, PLA) 33 | % altitude (0 to 40,000 ft) 34 | MWS = SetTVec(MWS, 'Alt',0,DefTVNm,inputs); 35 | % Mach Number (0 to 0.8) 36 | MWS = SetTVec(MWS, 'MN',0,DefTVNm,inputs); 37 | % Delta Temperature (-30 to +50) 38 | MWS = SetTVec(MWS, 'dT',0,DefTVNm,inputs); 39 | % PLA or Power Code (40 to 80.5), not used if N1ManEn == 1 or WfManEn == 1 40 | MWS = SetTVec(MWS, 'PLA',[40 40 80 80],DefTVNm,inputs); 41 | 42 | %% Corrected N1 manual request ( N1creq, N1ManEn) 43 | % Corrected N1 request (rpm) 44 | MWS = SetTVec(MWS, 'N1creq',6079,DefTVNm,inputs); 45 | % Enable N1 cntrl (1 enabled, 0 disabled) 46 | MWS = SetInput(MWS,'N1ManEn', 0,inputs); 47 | 48 | %% Wf manual request (Wf, WfManEn) 49 | % Wf request (pps) 50 | MWS = SetTVec(MWS, 'Wfreq',0.78110,DefTVNm,inputs); 51 | % Enable Wf cntrl (1 enabled, 0 disabled), this will over ride manual N1 cntrl 52 | MWS = SetInput(MWS,'WfManEn', 0,inputs); 53 | 54 | %% VBV manual request (VBVreq, VBVManEn) 55 | % VBV request (closed(1) - open(2)) 56 | MWS = SetTVec(MWS, 'VBVreq',1,DefTVNm,inputs); 57 | % Enable VBV cntrl (1 enabled, 0 disabled) 58 | MWS = SetInput(MWS,'VBVManEn', 0,inputs); 59 | 60 | %% VAFN manual request (VAFNreq, VAFNManEn) 61 | % bypass nozzle area (in2) 62 | MWS = SetTVec(MWS, 'VAFNreq',6314,DefTVNm, inputs); 63 | % Enable VAFN cntrl (1 enabled, 0 disabled) 64 | MWS = SetInput(MWS,'VAFNManEn', 0,inputs); 65 | 66 | %% Generate Values for Initial Conditions or Steady State simulation. 67 | % by default this script will generate ICs/SS position based on first point 68 | % of test vector above. 69 | MWS = SetInput(MWS,'ICPoint', 'cruise',inputs); 70 | MWS = setup_InputsSS(MWS); 71 | 72 | %% end 73 | cd(MWS.top_level) 74 | end 75 | 76 | function MWS = SetInput(MWS,name,Value, inputs) 77 | % Set to default if inputs does not contain value 78 | if isfield(inputs,name) 79 | Value = inputs.(name); 80 | end 81 | 82 | MWS.In.(name) = Value; 83 | end 84 | 85 | function MWS = SetTVec(MWS, name, Values , tname, inputs) 86 | % Ensure all data is properly formatted 87 | % If Values input is a single number, value will be expanded to the size of 88 | % the defined default time vector MWS.In.t 89 | % If Values is a single row the time vector will then be added to the 90 | % second row of the matrix. 91 | % MWS - Engine Input structure 92 | % name - name of engine input, Will be set to MWS.In.name 93 | % Values - values to be set to name 94 | % tname - time vector associated with name, must already be located at 95 | % MWS.In.tname 96 | % InVec - inputs vector, these will overwrite the input if they exist. 97 | % 98 | % example usage: 99 | % if t = [0 10 20] 100 | % Values = 1 101 | % return: MWS.In.Name = [1 1 1; 0 10 20] 102 | % Values = [1 2 3] 103 | % return: MWS.In.Name = [1 2 3; 0 10 20] 104 | % Values = [1 2 3;0 100 200] 105 | % return: MWS.In.Name = [1 2 3;0 100 200] 106 | 107 | % If the input vector is defined use it instead of the value defined in 108 | % Values 109 | if isfield(inputs,name) 110 | Values = inputs.(name); 111 | end 112 | 113 | % format Values 114 | if size(Values,1) == 1 && size(Values,2) == 1 % if only 1 element, then assume that value is valid for all time steps 115 | MWS.In.(name) = Values *ones(1,length(MWS.In.(tname))); %create a vector of appropriate length with the specified value at every element 116 | MWS.In.(name)(2,:) = MWS.In.(tname); 117 | elseif size(Values,2) == length(MWS.In.(tname)) && size(Values,1) == 1 % number of entries is the same as time, but there is no specific time associated with it. 118 | MWS.In.(name)(1,:) = Values; 119 | MWS.In.(name)(2,:) = MWS.In.(tname); 120 | elseif size(Values,2) > 1 && size(Values,1) == 2 %Use defined parameter and time vector 121 | MWS.In.(name) = Values; 122 | else 123 | fprintf('Error writing inputs, check MWS.In for size of input vectors to match appropriate time vectors') 124 | 125 | end 126 | end -------------------------------------------------------------------------------- /AGTF30/SimSetup/setup_FAN.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_FAN(MWS) %Scalars MWS.FAN.s_Nc = 2359.983186; MWS.FAN.s_Wc = 0.768426; MWS.FAN.s_PR = 0.769231; MWS.FAN.s_Eff = 1.036257; %Design Point Data MWS.FAN.NcDesMap = 1.0; MWS.FAN.EffDes = 0.9689; MWS.FAN.PRDes = 1.3; MWS.FAN.RlineDesMap = 2.0; %Map Definition %----------------------------------------------------------------------------- alpha1 = 0; MWS.FAN.NcVec = [ 0.5 0.6 0.7 0.8 0.9 0.95 1 1.05 1.1]; MWS.FAN.RVec(1,:) = [ 1.000 1.250 1.500 1.750 2.000... 2.250 2.500 2.750 3.000 3.200... 3.250 3.500 ]; MWS.FAN.WcArray(1,:) = [ 1104.3380 1247.2229 1384.7280 1514.7731 1635.3656... 1742.0557 1829.9553 1866.5565 1866.5565 1866.5565... 1866.5565 1866.5565 ]; MWS.FAN.WcArray(2,:) = [ 1369.0782 1519.3645 1661.7891 1793.9161 1913.4485... 2012.9872 2084.3818 2125.0225 2126.4814 2126.4814... 2126.4814 2126.4814 ]; MWS.FAN.WcArray(3,:) = [ 1644.4929 1791.9211 1929.5121 2054.8865 2165.8337... 2252.1497 2302.7083 2315.6926 2315.6926 2315.6926... 2315.6926 2315.6926 ]; MWS.FAN.WcArray(4,:) = [ 1919.7177 2054.9785 2179.5896 2291.5830 2389.1497... 2460.2048 2491.7344 2493.1619 2493.1619 2493.1619... 2493.1619 2493.1619 ]; MWS.FAN.WcArray(5,:) = [ 2191.8401 2304.7476 2407.9941 2500.2908 2580.4556... 2636.5833 2655.9902 2655.9902 2655.9902 2655.9902... 2655.9902 2655.9902 ]; MWS.FAN.WcArray(6,:) = [ 2324.3926 2422.7034 2512.5652 2593.0525 2663.3154... 2712.5415 2729.2681 2729.2681 2729.2681 2729.2681... 2729.2681 2729.2681 ]; MWS.FAN.WcArray(7,:) = [ 2446.8806 2530.6360 2607.3428 2676.3726 2737.1450... 2780.9336 2798.5239 2798.8225 2798.8225 2798.8225... 2798.8225 2798.8225 ]; MWS.FAN.WcArray(8,:) = [ 2564.0947 2632.0720 2694.6523 2751.4587 2802.1399... 2840.2256 2858.9136 2860.8069 2860.8069 2860.8069... 2860.8069 2860.8069 ]; MWS.FAN.WcArray(9,:) = [ 2675.1184 2726.3958 2774.0383 2817.8599 2857.6853... 2889.2947 2908.2825 2914.2979 2914.2979 2914.2979... 2914.2979 2914.2979 ]; MWS.FAN.EffArray(1,:) = [ 0.6585 0.7756 0.8552 0.8821 0.8316 0.6642... 0.3039 0.0010 0.0010 0.0010 0.0010 0.0010 ]; MWS.FAN.EffArray(2,:) = [ 0.7145 0.8102 0.8747 0.8970 0.8603 0.7400... 0.4938 0.0386 0.0005 0.0005 0.0005 0.0005 ]; MWS.FAN.EffArray(3,:) = [ 0.7692 0.8439 0.8942 0.9128 0.8896 0.8113... 0.6571 0.4108 0.1588 0.0046 0.0046 0.0046 ]; MWS.FAN.EffArray(4,:) = [ 0.8178 0.8734 0.9113 0.9273 0.9159 0.8710... 0.7838 0.6910 0.5830 0.4661 0.4314 0.2151 ]; MWS.FAN.EffArray(5,:) = [ 0.8588 0.8965 0.9227 0.9356 0.9327 0.9118... 0.8700 0.8384 0.7979 0.7568 0.7451 0.6766 ]; MWS.FAN.EffArray(6,:) = [ 0.8749 0.9042 0.9250 0.9359 0.9357 0.9232... 0.8968 0.8791 0.8568 0.8345 0.8282 0.7920 ]; MWS.FAN.EffArray(7,:) = [ 0.8857 0.9081 0.9242 0.9334 0.9350 0.9283... 0.9127 0.9016 0.8903 0.8791 0.8759 0.8579 ]; MWS.FAN.EffArray(8,:) = [ 0.8926 0.9086 0.9204 0.9278 0.9302 0.9275... 0.9195 0.9118 0.9072 0.9026 0.9012 0.8936 ]; MWS.FAN.EffArray(9,:) = [ 0.8945 0.9049 0.9128 0.9182 0.9207 0.9204... 0.9172 0.9109 0.9099 0.9088 0.9085 0.9063 ]; MWS.FAN.PRArray(1,:) = [ 1.0760 1.0811 1.0799 1.0724 1.0588 1.0394... 1.0146 1.0000 1.0000 1.0000 1.0000 1.0000 ]; MWS.FAN.PRArray(2,:) = [ 1.1171 1.1214 1.1186 1.1085 1.0914 1.0676... 1.0379 1.0024 1.0000 1.0000 1.0000 1.0000 ]; MWS.FAN.PRArray(3,:) = [ 1.1703 1.1730 1.1682 1.1559 1.1363 1.1100... 1.0776 1.0414 1.0133 1.0003 1.0003 1.0003 ]; MWS.FAN.PRArray(4,:) = [ 1.2381 1.2386 1.2320 1.2185 1.1981 1.1715... 1.1390 1.1094 1.0814 1.0582 1.0523 1.0222 ]; MWS.FAN.PRArray(5,:) = [ 1.3234 1.3215 1.3138 1.3004 1.2814 1.2572... 1.2282 1.2039 1.1789 1.1584 1.1531 1.1265 ]; MWS.FAN.PRArray(6,:) = [ 1.3734 1.3703 1.3624 1.3497 1.3323 1.3104... 1.2845 1.2628 1.2404 1.2221 1.2174 1.1937 ]; MWS.FAN.PRArray(7,:) = [ 1.4288 1.4250 1.4172 1.4055 1.3900 1.3709... 1.3484 1.3284 1.3090 1.2931 1.2891 1.2686 ]; MWS.FAN.PRArray(8,:) = [ 1.4898 1.4854 1.4780 1.4677 1.4545 1.4386... 1.4201 1.4022 1.3862 1.3731 1.3698 1.3530 ]; MWS.FAN.PRArray(9,:) = [ 1.5553 1.5507 1.5441 1.5356 1.5251 1.5128... 1.4988 1.4831 1.4708 1.4608 1.4583 1.4455 ]; % Extrapolated map values. Note, these map values are for convergence % purposes and were defined by extrapolatoin off the generic map above. NcE = [0.3 0.4]; WcE = 10^3 *[ 0.5749 0.7029 0.8306 0.9565 1.0792 1.2002 1.3211 1.3496 1.3467 1.3467 1.3467 1.3467; 0.8396 0.9751 1.1077 1.2356 1.3573 1.4711 1.5755 1.6081 1.6066 1.6066 1.6066 1.6066]; EffE = [0.5465 0.7064 0.8162 0.8523 0.7742 0.5126 0.0005 0.0005 0.0020 0.0020 0.0020 0.0020; 0.6025 0.7410 0.8357 0.8672 0.8029 0.5884 0.1140 0.0005 0.0015 0.0015 0.0015 0.0015]; PRE = [1.0000 1.0005 1.0025 1.0002 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000; 1.0349 1.0408 1.0412 1.0363 1.0262 1.0112 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000]; % Add extrapolted values to maps. MWS.FAN.NcVec = [NcE MWS.FAN.NcVec]; MWS.FAN.WcArray = [WcE; MWS.FAN.WcArray]; MWS.FAN.EffArray = [EffE; MWS.FAN.EffArray]; MWS.FAN.PRArray = [PRE; MWS.FAN.PRArray]; % expand Rline = 1 to generate the stall margin vectors PRSMVec = MWS.FAN.PRArray(:,1)'; WcSMVec = MWS.FAN.WcArray(:,1)'; WcSMmx = max(max(MWS.FAN.WcArray)); MWS.FAN.SM_WcVec = [WcSMVec, WcSMmx]; PRex = PRSMVec(end) + (WcSMmx - WcSMVec(end))*(PRSMVec(end) - PRSMVec(end - 1))/(WcSMVec(end) - WcSMVec(end - 1)); MWS.FAN.SM_PRVec = [PRSMVec, PRex]; -------------------------------------------------------------------------------- /AGTF30/SimSetup/setup_LPT.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_LPT(MWS) %Scalars MWS.LPT.s_Nc = 1.430948; MWS.LPT.s_Wc = 0.1573; MWS.LPT.s_PR = 1.540753; MWS.LPT.s_Eff = 1.028756; %Design Point Data MWS.LPT.NcMapDes = 100; MWS.LPT.EffDes = 0.9409; MWS.LPT.PRMapDes = 7.5; MWS.LPT.NDes = 6772.0; % Cooling Flows MWS.LPT.CWPos = 1; %Map Data alphaMapDes = 1.0; MWS.LPT.NcVec = [ 60 70 80 90 100 110 120]; MWS.LPT.PRVec(1,:) = [ 3.000 3.250 3.500 3.750 4.000 4.250 4.500... 4.750 5.000 5.250 5.500 5.750 6.000 6.250... 6.500 6.750 7.000 7.250 7.500 8.000 ]; MWS.LPT.effArray(1,:) = [ 0.8388 0.8309 0.8234 0.8159 0.8091 0.8030 0.7975... 0.7924 0.7876 0.7832 0.7791 0.7753 0.7717 0.7684... 0.7652 0.7623 0.7595 0.7568 0.7542 0.7495 ]; MWS.LPT.effArray(2,:) = [ 0.8878 0.8813 0.8745 0.8685 0.8629 0.8577 0.8528... 0.8484 0.8443 0.8404 0.8368 0.8334 0.8302 0.8272... 0.8242 0.8210 0.8179 0.8150 0.8122 0.8071 ]; MWS.LPT.effArray(3,:) = [ 0.9201 0.9152 0.9105 0.9061 0.9018 0.8978 0.8940... 0.8905 0.8872 0.8840 0.8810 0.8776 0.8741 0.8707... 0.8676 0.8646 0.8618 0.8590 0.8565 0.8516 ]; MWS.LPT.effArray(4,:) = [ 0.9381 0.9360 0.9336 0.9310 0.9283 0.9257 0.9231... 0.9206 0.9182 0.9153 0.9119 0.9087 0.9056 0.9027... 0.8999 0.8973 0.8948 0.8924 0.8901 0.8858 ]; MWS.LPT.effArray(5,:) = [ 0.9447 0.9455 0.9456 0.9450 0.9440 0.9429 0.9417... 0.9404 0.9383 0.9355 0.9327 0.9301 0.9276 0.9252... 0.9229 0.9207 0.9186 0.9165 0.9146 0.9099 ]; MWS.LPT.effArray(6,:) = [ 0.9415 0.9454 0.9479 0.9495 0.9504 0.9510 0.9512... 0.9511 0.9492 0.9472 0.9452 0.9433 0.9414 0.9396... 0.9378 0.9361 0.9344 0.9326 0.9304 0.9262 ]; MWS.LPT.effArray(7,:) = [ 0.9295 0.9366 0.9419 0.9458 0.9487 0.9509 0.9526... 0.9538 0.9528 0.9517 0.9505 0.9493 0.9481 0.9468... 0.9456 0.9444 0.9432 0.9413 0.9395 0.9360 ]; MWS.LPT.WcArray(1,:) = [ 153.812 153.812 153.812 153.812 153.812 153.812 153.812... 153.812 153.812 153.812 153.812 153.812 153.812 153.812... 153.812 153.812 153.812 153.812 153.812 153.812 ]; MWS.LPT.WcArray(2,:) = [ 153.511 153.511 153.511 153.511 153.511 153.511 153.511... 153.511 153.511 153.511 153.511 153.511 153.511 153.511... 153.511 153.511 153.511 153.511 153.511 153.511 ]; MWS.LPT.WcArray(3,:) = [ 152.799 152.982 153.052 153.061 153.061 153.061 153.061... 153.061 153.061 153.061 153.061 153.061 153.061 153.061... 153.061 153.061 153.061 153.061 153.061 153.061 ]; MWS.LPT.WcArray(4,:) = [ 150.995 151.316 151.518 151.647 151.729 151.781 151.814... 151.834 151.846 151.852 151.856 151.858 151.859 151.859... 151.859 151.859 151.859 151.859 151.859 151.859 ]; MWS.LPT.WcArray(5,:) = [ 148.751 149.107 149.349 149.517 149.635 149.719 149.779... 149.822 149.852 149.872 149.885 149.894 149.898 149.899... 149.899 149.899 149.899 149.899 149.899 149.899 ]; MWS.LPT.WcArray(6,:) = [ 145.352 145.680 145.905 146.061 146.169 146.244 146.293... 146.324 146.339 146.344 146.344 146.344 146.344 146.344... 146.344 146.344 146.344 146.344 146.344 146.344 ]; MWS.LPT.WcArray(7,:) = [ 140.863 141.131 141.310 141.428 141.503 141.547 141.567... 141.569 141.569 141.569 141.569 141.569 141.569 141.569... 141.569 141.569 141.569 141.569 141.569 141.569 ]; % Extrapolated map values. Note, these map values are for convergence % purposes and were defined by extrapolatoin off the generic map above. NcE = [20 30 40 50]; PRE = 1:0.25:2.75; WcErw(1,:) = 155.016 * ones(28,1)'; WcErw(2,:) = 154.715 * ones(28,1)'; WcErw(3,:) = 154.414 * ones(28,1)'; WcErw(4,:) = 154.113 * ones(28,1)'; WcEcol(:,1) = [153.8120 153.5110 151.3350 148.4270 145.9030 142.7280 138.7190]'; WcEcol(:,2) = [153.8120 153.5110 151.5180 148.7480 146.2590 143.0560 138.9870]'; WcEcol(:,3) = [153.8120 153.5110 151.7010 149.0690 146.6150 143.3840 139.2550]'; WcEcol(:,4) = [153.8120 153.5110 151.8840 149.3900 146.9710 143.7120 139.5230]'; WcEcol(:,5) = [153.8120 153.5110 152.0670 149.7110 147.3270 144.0400 139.7910]'; WcEcol(:,6) = [153.8120 153.5110 152.2500 150.0320 147.6830 144.3680 140.0590]'; WcEcol(:,7) = [153.8120 153.5110 152.4330 150.3530 148.0390 144.6960 140.3270]'; WcEcol(:,8) = [153.8120 153.5110 152.6160 150.6740 148.3950 145.0240 140.5950]'; effErw1 = [0.7508 0.7373 0.7238 0.7103 0.6968 0.6833 0.6698 0.6563 0.6428 0.6293 0.6190 0.6055 0.5939 0.5842 0.5763; 0.7886 0.7765 0.7644 0.7523 0.7402 0.7281 0.7160 0.7039 0.6918 0.6797 0.6701 0.6581 0.6477 0.6389 0.6316; 0.8264 0.8157 0.8050 0.7943 0.7836 0.7729 0.7622 0.7515 0.7408 0.7301 0.7212 0.7107 0.7015 0.6936 0.6869; 0.8642 0.8549 0.8456 0.8363 0.8270 0.8177 0.8084 0.7991 0.7898 0.7805 0.7723 0.7633 0.7553 0.7483 0.7422]; effErw2 = [0.5684 0.5608 0.5544 0.5483 0.5429 0.5377 0.5332 0.5292 0.5275 0.5259 0.5240 0.5222 0.5191; 0.6244 0.6175 0.6116 0.6060 0.6010 0.5962 0.5920 0.5882 0.5862 0.5843 0.5822 0.5802 0.5767; 0.6804 0.6742 0.6688 0.6637 0.6591 0.6547 0.6508 0.6472 0.6449 0.6427 0.6404 0.6382 0.6343; 0.7364 0.7309 0.7260 0.7214 0.7172 0.7132 0.7096 0.7062 0.7036 0.7011 0.6986 0.6962 0.6919]; effErw = [effErw1 effErw2]; effEcol = [0.9020 0.8941 0.8862 0.8783 0.8704 0.8625 0.8546 0.8467; 0.9398 0.9333 0.9268 0.9203 0.9138 0.9073 0.9008 0.8943; 0.9593 0.9544 0.9495 0.9446 0.9397 0.9348 0.9299 0.9250; 0.9549 0.9528 0.9507 0.9486 0.9465 0.9444 0.9423 0.9402; 0.9383 0.9391 0.9399 0.9407 0.9415 0.9423 0.9431 0.9439; 0.9103 0.9142 0.9181 0.9220 0.9259 0.9298 0.9337 0.9376; 0.8727 0.8798 0.8869 0.8940 0.9011 0.9082 0.9153 0.9224]; % Add extrapolated portions to the map MWS.LPT.NcVec = [NcE MWS.LPT.NcVec]; MWS.LPT.PRVec = [PRE MWS.LPT.PRVec]; MWS.LPT.WcArray = [WcErw; [WcEcol MWS.LPT.WcArray]]; MWS.LPT.effArray = [effErw; [effEcol MWS.LPT.effArray]]; -------------------------------------------------------------------------------- /AGTF30/SimSetup/setup_HPC.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_HPC(MWS) % Scalars MWS.HPC.s_Nc = 18242.834381; MWS.HPC.s_Wc = 0.132800; MWS.HPC.s_PR = 0.595594; MWS.HPC.s_Eff = 0.994014; % Design Point Data MWS.HPC.NcDesMap = 1.0; MWS.HPC.EffDes = 0.8469; MWS.HPC.PRDes = 14.103; MWS.HPC.RlineDesMap = 2.0; % Fractional Bleed Data % fraction bleed flow [LPT exit] MWS.HPC.FBD = [0.02 0.0693 0.0625]; % fractional bleed enthalpy MWS.HPC.BFht = [0.4997 1 1]; % fractional bleed total pressure MWS.HPC.BFPt = [0.146498 1 1]; % compressor effective throat area MWS.HPC.Ath = 17.2; % HPC Map Data alphaMapDes = 0.0; MWS.HPC.RVec(1,:) = [ 1.000 1.200 1.400 1.600 1.800 2.000... 2.200 2.400 2.600 2.800 3.000 ]; MWS.HPC.WcArray(1,:) = [ 22.7411 24.0487 25.1548 26.0615 26.7738 27.2992... 27.6470 27.8286 27.8634 27.8634 27.8634 ]; MWS.HPC.WcArray(2,:) = [ 31.7548 33.1181 34.2670 35.2054 35.9397 36.4783... 36.8308 37.0085 37.0362 37.0362 37.0362 ]; MWS.HPC.WcArray(3,:) = [ 46.1066 47.4088 48.5066 49.4046 50.1096 50.6291... 50.9717 51.1469 51.1757 51.1757 51.1757 ]; MWS.HPC.WcArray(4,:) = [ 56.7268 58.0480 59.1608 60.0704 60.7837 61.3084... 61.6527 61.8260 61.8517 61.8517 61.8517 ]; MWS.HPC.WcArray(5,:) = [ 70.1448 71.5163 72.6688 73.6088 74.3429 74.8795... 75.2269 75.3943 75.4134 75.4134 75.4134 ]; MWS.HPC.WcArray(6,:) = [ 89.3764 90.9746 92.3098 93.3900 94.2232 94.8199... 95.1897 95.3442 95.3504 95.3504 95.3504 ]; MWS.HPC.WcArray(7,:) = [ 118.0620 120.1207 121.8253 123.1867 124.2166 124.9292... 125.3385 125.4609 125.4609 125.4609 125.4609 ]; MWS.HPC.WcArray(8,:) = [ 138.5093 140.8966 142.8639 144.4238 145.5916 146.3836... 146.8174 146.9192 146.9192 146.9192 146.9192 ]; MWS.HPC.WcArray(9,:) = [ 160.6243 162.5676 164.1805 165.4722 166.4536 167.1370... 167.5334 167.6563 167.6563 167.6563 167.6563 ]; MWS.HPC.WcArray(10,:) = [ 181.7993 183.4993 184.9150 186.0545 186.9260 187.5389... 187.9029 188.0273 188.0271 188.0271 188.0271 ]; MWS.HPC.WcArray(11,:) = [ 202.6315 203.5858 204.3958 205.0661 205.5998 206.0000... 206.2702 206.4145 206.4418 206.4418 206.4418 ]; MWS.HPC.WcArray(12,:) = [ 209.9986 210.5917 211.1029 211.5321 211.8825 212.1554... 212.3516 212.4735 212.5220 212.5227 212.5227 ]; MWS.HPC.WcArray(13,:) = [ 216.6847 217.0279 217.3287 217.5860 217.8015 217.9767... 218.1106 218.2041 218.2586 218.2739 218.2739 ]; MWS.HPC.EffArray(1,:) = [ 0.6753 0.6913 0.7016 0.7050 0.7004 0.6864 0.6570... 0.6044 0.5236 0.4075 0.2467 ]; MWS.HPC.EffArray(2,:) = [ 0.6953 0.7094 0.7184 0.7214 0.7176 0.7058 0.6812... 0.6378 0.5717 0.4783 0.3512 ]; MWS.HPC.EffArray(3,:) = [ 0.7248 0.7359 0.7429 0.7452 0.7424 0.7335 0.7154... 0.6838 0.6366 0.5713 0.4848 ]; MWS.HPC.EffArray(4,:) = [ 0.7427 0.7533 0.7600 0.7627 0.7606 0.7533 0.7379... 0.7108 0.6703 0.6147 0.5414 ]; MWS.HPC.EffArray(5,:) = [ 0.7634 0.7736 0.7804 0.7834 0.7822 0.7762 0.7630... 0.7394 0.7041 0.6556 0.5920 ]; MWS.HPC.EffArray(6,:) = [ 0.7891 0.8008 0.8090 0.8134 0.8136 0.8092 0.7974... 0.7754 0.7417 0.6950 0.6335 ]; MWS.HPC.EffArray(7,:) = [ 0.8139 0.8280 0.8385 0.8449 0.8469 0.8439 0.8333... 0.8117 0.7779 0.7303 0.6671 ]; MWS.HPC.EffArray(8,:) = [ 0.8206 0.8356 0.8469 0.8541 0.8567 0.8544 0.8442... 0.8229 0.7892 0.7416 0.6783 ]; MWS.HPC.EffArray(9,:) = [ 0.8403 0.8512 0.8593 0.8643 0.8660 0.8641 0.8566... 0.8415 0.8179 0.7852 0.7423 ]; MWS.HPC.EffArray(10,:) = [ 0.8408 0.8492 0.8552 0.8588 0.8597 0.8578 0.8516... 0.8394 0.8209 0.7954 0.7624 ]; MWS.HPC.EffArray(11,:) = [ 0.8470 0.8505 0.8529 0.8539 0.8536 0.8520 0.8483... 0.8418 0.8324 0.8200 0.8043 ]; MWS.HPC.EffArray(12,:) = [ 0.8350 0.8364 0.8371 0.8370 0.8362 0.8346 0.8318... 0.8275 0.8217 0.8141 0.8049 ]; MWS.HPC.EffArray(13,:) = [ 0.8202 0.8203 0.8201 0.8195 0.8185 0.8171 0.8152... 0.8124 0.8088 0.8045 0.7992 ]; MWS.HPC.PRArray(1,:) = [ 2.4769 2.4288 2.3620 2.2778 2.1774 2.0627... 1.9284 1.7711 1.5958 1.4083 1.2146 ]; MWS.HPC.PRArray(2,:) = [ 3.4633 3.3778 3.2643 3.1248 2.9619 2.7787... 2.5679 2.3253 2.0595 1.7802 1.4973 ]; MWS.HPC.PRArray(3,:) = [ 5.0821 4.9375 4.7554 4.5391 4.2923 4.0194... 3.7106 3.3602 2.9800 2.5826 2.1813 ]; MWS.HPC.PRArray(4,:) = [ 6.3490 6.1658 5.9371 5.6667 5.3594 5.0204... 4.6377 4.2042 3.7342 3.2431 2.7467 ]; MWS.HPC.PRArray(5,:) = [ 8.0021 7.7686 7.4792 7.1388 6.7532 6.3287... 5.8504 5.3097 4.7237 4.1114 3.4919 ]; MWS.HPC.PRArray(6,:) = [ 10.4899 10.1976 9.8249 9.3786 8.8669 8.2989... 7.6539 6.9201 6.1229 5.2899 4.4495 ]; MWS.HPC.PRArray(7,:) = [ 14.4564 14.0970 13.6074 12.9977 12.2808 11.4715... 10.5377 9.4621 8.2878 7.0614 5.8306 ]; MWS.HPC.PRArray(8,:) = [ 17.4426 17.0500 16.4870 15.7661 14.9034 13.9183... 12.7692 11.4347 9.9718 8.4425 6.9104 ]; MWS.HPC.PRArray(9,:) = [ 20.7403 20.2486 19.6093 18.8329 17.9324 16.9227... 15.7626 14.4263 12.9562 11.3983 9.8011 ]; MWS.HPC.PRArray(10,:) = [ 23.8298 23.2601 22.5536 21.7200 20.7705 19.7178... 18.5212 17.1524 15.6466 14.0424 12.3810 ]; MWS.HPC.PRArray(11,:) = [ 26.6962 26.0933 25.4175 24.6733 23.8656 22.9999... 22.0495 20.9930 19.8436 18.6163 17.3267 ]; MWS.HPC.PRArray(12,:) = [ 27.6439 27.0687 26.4522 25.7969 25.1052 24.3798... 23.6033 22.7614 21.8600 20.9058 19.9057 ]; MWS.HPC.PRArray(13,:) = [ 28.4663 27.9667 27.4460 26.9054 26.3460 25.7690... 25.1640 24.5225 23.8472 23.1399 22.4038 ]; MWS.HPC.NcVec = [ 0.5 0.6 0.7 0.75 0.8 0.85 0.9 0.925 0.95 0.975 1 1.025 1.05]; % expand Rline = 1 to generate the stall margin vectors PRSMVec = MWS.HPC.PRArray(:,1)'; WcSMVec = MWS.HPC.WcArray(:,1)'; WcSMmx = max(max(MWS.HPC.WcArray)); MWS.HPC.SM_WcVec = [WcSMVec, WcSMmx]; PRex = PRSMVec(end) + (WcSMmx - WcSMVec(end))*(PRSMVec(end) - PRSMVec(end - 1))/(WcSMVec(end) - WcSMVec(end - 1)); MWS.HPC.SM_PRVec = [PRSMVec, PRex]; -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /AGTF30/SimSetup/setup_InputsSS.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_InputsSS(MWS) 2 | % This function set model IC and Solver inputs. For the Steady-state and dynamic models 3 | % The steady-state point will act as the inputs for the system N3SysSS and 4 | % as the initial conditions (ICs) for the dynamic model, system N3SysDyn 5 | % A Test vector input is then used to set the dynamic system only inputs. 6 | 7 | %% Set Model inputs: 8 | %-------------------------------------------------- 9 | % Use Predetermined initial condition/steady-state point 10 | % cruise 11 | % takeoff 12 | % none - autogen IC 13 | 14 | % Choose steady-state starting conditions 15 | switch(MWS.In.ICPoint) 16 | case('cruise') 17 | %% Cruise Steady State point 18 | % set Engine inputs 19 | MWS.In.ssNc1 = 1.0 * MWS.FAN.s_Nc; % Corrected FAN speed for solving steady state 20 | %Environmental inputs 21 | MWS.In.AltIC = 35000; %ft 22 | MWS.In.dTambIC = 0.0; % deg F 23 | MWS.In.MNIC = 0.8; 24 | % Fuel Flow (pps) 25 | MWS.In.WfIC = 0.7837; 26 | % desired shaft speed and ICs for dynamic operation 27 | MWS.In.N2IC = 6772.0; 28 | MWS.In.N3IC = 20796; 29 | % VBV value ranges from 0 to 1, 0: VBV fully closed, 1: VBV fully open 30 | MWS.In.VBVIC = 0; 31 | % Fan nozzle area (in^2) 32 | MWS.In.VAFNIC = 4775.22; 33 | 34 | %set Engine initial conditions 35 | 36 | % ICs may be updated for new operating points by running 37 | % the steady state simulation at alternate operating points and 38 | % recording the new independents accordingly. 39 | 40 | % Independents are broken into two types, for Dyanmic 41 | % simulation and steady-state simulation. In 42 | % general, independents in the dynamic simulation are in the 43 | % steady-state simulation as well, however not all steady-state 44 | % independents will be in the dynamic simulation. 45 | 46 | % Common ICs 47 | MWS.In.ICcom(1) = 815.48; % Flow (pps) 48 | MWS.In.ICcom(2) = 4.0955; % HPT Pressure Ratio 49 | MWS.In.ICcom(3) = 1.994; % HPC Rline 50 | MWS.In.ICcom(4) = 2.0007; % Fan_Rline 51 | MWS.In.ICcom(5) = 23.19937; % Branch Pressure Ratio 52 | MWS.In.ICcom(6) = 2.19956; % LPC_Rline 53 | MWS.In.ICcom(7) = 11.0178; % LPT Pressure Ratio 54 | 55 | % steady state only Independents, Dynamic ICs 56 | % Shaft speed independents must be the first two items. 57 | MWS.In.ICss(1) = MWS.In.N2IC; % Low Pressure Shaft Speed (rpm) 58 | MWS.In.ICss(2) = MWS.In.N3IC; % High Pressure Shaft Speed (rpm) 59 | MWS.In.ICss(3) = MWS.In.WfIC; % Fuel Flow (pps) 60 | MWS.In.ICss(4) = MWS.In.VAFNIC; % VAFN area (in2) 61 | MWS.In.ICss(5) = MWS.In.VBVIC + 1; % VBV position plus 1 (1- closed, 2 - open) 62 | 63 | MWS = SetSolverVars(MWS); 64 | 65 | % Set Sensor ICs 66 | MWS.In.Sensor.ICN1 = MWS.In.N2IC/3.1; 67 | MWS.In.Sensor.ICN2 = MWS.In.N2IC; 68 | MWS.In.Sensor.ICN3 = MWS.In.N3IC; 69 | 70 | MWS.In.Sensor.ICPa = 3.468; 71 | MWS.In.Sensor.ICP2 = 5.2758; 72 | MWS.In.Sensor.ICP21 = 6.8616; 73 | MWS.In.Sensor.ICP25 = 20.1392; 74 | MWS.In.Sensor.ICPs3 = 270.75; 75 | MWS.In.Sensor.ICP5 = 5.8981; 76 | 77 | MWS.In.Sensor.ICT2 = 444.6128; 78 | MWS.In.Sensor.ICT25 = 679.6378; 79 | MWS.In.Sensor.ICT3 = 1531.3; 80 | MWS.In.Sensor.ICT45 = 2237.2; 81 | 82 | case('takeoff') 83 | %% Takeoff hot day Steady State point 84 | % set Engine inputs 85 | MWS.In.ssNc1 = 0.810 * MWS.FAN.s_Nc; % Corrected FAN speed for solving steady state 86 | %Environmental inputs 87 | MWS.In.AltIC = 0.0; %ft 88 | MWS.In.dTambIC = 27.0; % deg F 89 | MWS.In.MNIC = 0.0; 90 | % Fuel Flow (pps) 91 | MWS.In.WfIC = 1.3896; 92 | % desired shaft speed and ICs for dynamic operation 93 | MWS.In.N2IC = 6079.0; 94 | MWS.In.N3IC = 21583.2; 95 | % VBV value ranges from 0 to 1, 0: VBV fully closed, 1: VBV fully open 96 | MWS.In.VBVIC = 0; 97 | % Fan nozzle area (in^2) 98 | MWS.In.VAFNIC = 6314.82; 99 | %set Engine initial conditions 100 | % Common ICs 101 | MWS.In.ICcom(1) = 1723.81; % Flow (pps) 102 | MWS.In.ICcom(2) = 4.17; % HPT Pressure Ratio 103 | MWS.In.ICcom(3) = 2.0325; % HPC Rline 104 | MWS.In.ICcom(4) = 1.75; % Fan_Rline 105 | MWS.In.ICcom(5) = 27.5078; % Branch Pressure Ratio 106 | MWS.In.ICcom(6) = 1.8740; % LPC_Rline 107 | MWS.In.ICcom(7) = 7.15; % LPT Pressure Ratio 108 | 109 | % steady state only Independents, Dynamic ICs 110 | % Shaft speed independents must be the first two items. 111 | MWS.In.ICss(1) = MWS.In.N2IC; % Low Pressure Shaft Speed (rpm) 112 | MWS.In.ICss(2) = MWS.In.N3IC; % High Pressure Shaft Speed (rpm) 113 | MWS.In.ICss(3) = MWS.In.WfIC; % Fuel Flow (pps) 114 | MWS.In.ICss(4) = MWS.In.VAFNIC; % VAFN area (in2) 115 | MWS.In.ICss(5) = MWS.In.VBVIC + 1; % VBVIC (0-closed, 1-open) + 1 116 | 117 | MWS = SetSolverVars(MWS); 118 | 119 | % Set Sensor ICs 120 | MWS.In.Sensor.ICN1 = MWS.In.N2IC/3.1; 121 | MWS.In.Sensor.ICN2 = MWS.In.N2IC; 122 | MWS.In.Sensor.ICN3 = MWS.In.N3IC; 123 | 124 | MWS.In.Sensor.ICPa = 14.69; 125 | MWS.In.Sensor.ICP2 = 14.6225; 126 | MWS.In.Sensor.ICP21 = 17.1725; 127 | MWS.In.Sensor.ICP25 = 42.2446; 128 | MWS.In.Sensor.ICPs3 = 524.5709; 129 | MWS.In.Sensor.ICP5 = 16.7761; 130 | 131 | MWS.In.Sensor.ICT2 = 545.67; 132 | MWS.In.Sensor.ICT25 = 758.4; 133 | MWS.In.Sensor.ICT3 = 1631.6; 134 | MWS.In.Sensor.ICT45 = 2258; 135 | 136 | otherwise 137 | %% use the IC generator 138 | % Gather desired starting point 139 | MWS.In.AltIC = MWS.In.Alt(1,1); 140 | MWS.In.MNIC = MWS.In.MN(1,1); 141 | MWS.In.dTambIC = MWS.In.dT(1,1); 142 | 143 | % gather start points for Alt and MN 144 | [cond,MWS.In.AltIC,MWS.In.MNIC,MWS.In.dTambIC] = AGTF30.inEnvelope(MWS); 145 | Alt = MWS.In.AltIC; 146 | MN = MWS.In.MNIC; 147 | dT = MWS.In.dTambIC; 148 | 149 | % Get IC points 150 | load('SS_Mtrx.mat'); 151 | 152 | % create Alt and MN axis 153 | AltVec = SS.Alt; 154 | NcVec = SS.Nc; 155 | MNVec = SS.MN; 156 | 157 | % Verify table inputs are within bounds 158 | Alt = CheckMnMx(Alt ,min(AltVec) , max(AltVec),'Alt'); 159 | MN = CheckMnMx(MN ,min(MNVec) , max(MNVec) ,'MN'); 160 | 161 | if MWS.In.WfManEn % base input speed request on manual fuel flow request 162 | % perform backwards table lookup 163 | Nc_guess = 1500; 164 | Wfguess = interpn(AltVec,NcVec,MNVec,SS.Ind{10}{1},Alt,Nc_guess,MN); 165 | Wf_Er = MWS.In.Wfreq(1,1) - Wfguess; 166 | Nc_guessNew = 1501; 167 | iter = 1; 168 | Er_T = 0.001; 169 | while ((abs(Wf_Er) > Er_T) && (iter < 200)) 170 | % gather Error and iteration info 171 | Wf_ErOld = Wf_Er; 172 | Nc_guessOld = Nc_guess; 173 | Nc_guess = Nc_guessNew; 174 | % Perform table lookup with new values 175 | Wfguess = interpn(AltVec,NcVec,MNVec,SS.Ind{10}{1},Alt,Nc_guess,MN); 176 | Wf_Er = MWS.In.Wfreq(1,1) - Wfguess; 177 | % if error is large use secant algorithm to guess a new Nc 178 | % value 179 | if abs(Wf_Er) > Er_T 180 | if abs(Wf_Er - Wf_ErOld) < 0.000001 181 | Wf_Er = Wf_Er*1.01; 182 | end 183 | Nc_guessNew = Nc_guess - Wf_Er * (Nc_guess - Nc_guessOld)/(Wf_Er - Wf_ErOld); 184 | end 185 | 186 | iter = iter + 1; 187 | end 188 | 189 | if iter >= 200 190 | fprintf(['Can not automatically determine corrected speed that matches with specified fuel flow, Wfref\n']); 191 | end 192 | Nc = Nc_guess; 193 | 194 | elseif MWS.In.N1ManEn % based on manual N1 request 195 | Nc = MWS.In.N1creq(1,1); 196 | else % based on PLA input 197 | PLA = MWS.In.PLA(1,1); 198 | % Determine thrust fraction based on PLA max = 80 and min = 40 199 | TF = (PLA - 40)/(80-40); 200 | % Look up corrected speed based on PLA, Alt, and MN 201 | Nc = interp3(MWS.Cntrl.PM_AltVec,MWS.Cntrl.PM_TF,MWS.Cntrl.PM_MNVec,MWS.Cntrl.PM_NcArray,Alt,TF,MN); 202 | end 203 | 204 | % check speed meets vector requirements 205 | Nc = CheckMnMx(Nc,min(NcVec), max(NcVec) ,'Nc'); 206 | % check speed meets limiter requirements 207 | NcMin = interp2(MNVec,AltVec,SS.Ncmin,MN,Alt); 208 | NcMax = interp2(MNVec,AltVec,SS.Ncmax,MN,Alt); 209 | Nc = CheckMnMx(Nc,NcMin, NcMax,'Nc'); 210 | 211 | % Set final and limited corrected speed value 212 | MWS.In.ssNc1 = Nc; 213 | 214 | % Set VAFN throat area 215 | if MWS.In.VAFNManEn % if manually set, set to input value. 216 | MWS.In.VAFNIC = MWS.In.VAFNreq(1,1); 217 | else % set based on control system table lookup 218 | MWS.In.VAFNIC = interp2(MWS.Cntrl.VAFN_MN,MWS.Cntrl.VAFN_Nc1,MWS.Cntrl.VAFN_sch, MN, Nc); 219 | end 220 | 221 | % Set VBV open position 222 | if MWS.In.VBVManEn % if manually set, set to input value. 223 | MWS.In.VBVIC = MWS.In.VBVreq(1,1); 224 | else % set based on control system table lookup 225 | MWS.In.VBVIC = interp2(MWS.Cntrl.VBV_MN,MWS.Cntrl.VBV_Nc1,MWS.Cntrl.VBV_sch, MN, Nc); 226 | end 227 | 228 | 229 | % Read starting points for IC generation 230 | % dT adjustment 231 | dT_adj = 1 + dT/1000; % rule of thumb adjustment 232 | 233 | MWS.In.ICcom(1) = interpn(AltVec,NcVec,MNVec,SS.Ind{1}{1},Alt,Nc,MN)/ dT_adj; % Flow (pps) 234 | MWS.In.ICcom(2) = interpn(AltVec,NcVec,MNVec,SS.Ind{2}{1},Alt,Nc,MN)/ (1 + (dT_adj-1) * MN); % HPT Pressure Ratio 235 | MWS.In.ICcom(3) = interpn(AltVec,NcVec,MNVec,SS.Ind{3}{1},Alt,Nc,MN)/ (1 + (dT_adj-1) * MN); % HPC Rline 236 | MWS.In.ICcom(4) = interpn(AltVec,NcVec,MNVec,SS.Ind{4}{1},Alt,Nc,MN); % Fan_Rline 237 | MWS.In.ICcom(5) = interpn(AltVec,NcVec,MNVec,SS.Ind{5}{1},Alt,Nc,MN); % Branch Pressure Ratio 238 | MWS.In.ICcom(6) = interpn(AltVec,NcVec,MNVec,SS.Ind{6}{1},Alt,Nc,MN); % LPC_Rline 239 | MWS.In.ICcom(7) = interpn(AltVec,NcVec,MNVec,SS.Ind{7}{1},Alt,Nc,MN); % LPT Pressure Ratio 240 | 241 | MWS.In.ICss(1) = interpn(AltVec,NcVec,MNVec,SS.Ind{8}{1},Alt,Nc,MN)* dT_adj; % Low Pressure Shaft Speed (rpm) 242 | MWS.In.ICss(2) = interpn(AltVec,NcVec,MNVec,SS.Ind{9}{1},Alt,Nc,MN)* dT_adj; % High Pressure Shaft Speed (rpm) 243 | MWS.In.ICss(3) = interpn(AltVec,NcVec,MNVec,SS.Ind{10}{1},Alt,Nc,MN)* dT_adj; % Fuel Flow (pps) 244 | MWS.In.ICss(4) = interpn(AltVec,NcVec,MNVec,SS.Ind{11}{1},Alt,Nc,MN); % VAFN area, VAFN (in2) 245 | MWS.In.ICss(5) = interpn(AltVec,NcVec,MNVec,SS.Ind{12}{1},Alt,Nc,MN) + 1; % VBV position plus 1 (1-closed, 2-open) 246 | 247 | MWS.In.N2IC = MWS.In.ICss(1); 248 | MWS.In.N3IC = MWS.In.ICss(2); 249 | MWS.In.WfIC = MWS.In.ICss(3); 250 | 251 | 252 | MWS = SetSolverVars(MWS); 253 | 254 | % run steady state solver to determine final convergence. 255 | cd(MWS.top_level) 256 | assignin('base', 'MWS',MWS); 257 | fprintf(['Generating ICs with steady-state solver...\n']); 258 | sim('AGTF30SysSS.mdl'); 259 | close_system('AGTF30SysSS.mdl'); 260 | close_system('AGTF30_eng.mdl'); 261 | fprintf(['IC generation complete\n']); 262 | 263 | SSconv = out_SS.converged.Data(end); 264 | 265 | if SSconv == 0 266 | fprintf(['Auto initial condition generator failed, please specify ICs via setup_InputsSS\n']); 267 | else 268 | try 269 | MWS.In.ICcom = out_SS.independents.Data(end,1:7); 270 | MWS.In.ICss = out_SS.independents.Data(end,8:end); 271 | MWS.In.N2IC = MWS.In.ICss(1); 272 | MWS.In.N3IC = MWS.In.ICss(2); 273 | MWS.In.WfIC = MWS.In.ICss(3); 274 | catch 275 | fprintf(['Sensor initial condtions were not fully generated\n']); 276 | end 277 | end 278 | try 279 | % Set Sensor ICs 280 | MWS.In.Sensor.ICN1 = MWS.In.N2IC/3.1; 281 | MWS.In.Sensor.ICN2 = MWS.In.N2IC; 282 | MWS.In.Sensor.ICN3 = MWS.In.N3IC; 283 | 284 | MWS.In.Sensor.ICPa = out_SS.Pa.Data(end); 285 | MWS.In.Sensor.ICP2 = out_SS.S2.Pt.Data(end); 286 | MWS.In.Sensor.ICP21 = out_SS.S21.Pt.Data(end); 287 | MWS.In.Sensor.ICP25 = out_SS.S25.Pt.Data(end); 288 | MWS.In.Sensor.ICPs3 = out_SS.S36.Pt.Data(end); 289 | MWS.In.Sensor.ICP5 = out_SS.S5.Pt.Data(end); 290 | 291 | MWS.In.Sensor.ICT2 = out_SS.S2.Tt.Data(end); 292 | MWS.In.Sensor.ICT25 = out_SS.S25.Tt.Data(end); 293 | MWS.In.Sensor.ICT3 = out_SS.S36.Tt.Data(end); 294 | MWS.In.Sensor.ICT45 = out_SS.S45.Tt.Data(end); 295 | catch 296 | fprintf(['Sensor initial condtions were not fully generated\n']); 297 | end 298 | cd([MWS.top_level,MWS.POp,'SimSetup']); 299 | 300 | end 301 | end 302 | 303 | function MWS = SetSolverVars(MWS) 304 | %% Solver Input Settings (for SS and dyn) 305 | %--------------------------------- 306 | %Solver inputs 307 | ICnumCom = length(MWS.In.ICcom); 308 | ICnumTot = ICnumCom + length(MWS.In.ICss); 309 | %set solver perturbation sizes 310 | MWS.In.JPerSS = [0.001*ones(ICnumTot,1) -0.001*ones(ICnumTot,1)]'; 311 | MWS.In.JPerDyn = [0.001*ones(ICnumCom,1) -0.001*ones(ICnumCom,1)]'; 312 | %set Condition limit 313 | MWS.In.Lim = 1e-5; 314 | %set max number of solver iterations 315 | %for run (steady-state) or per time step (dyn) 316 | MWS.In.Max_IterDyn = numel(MWS.In.JPerDyn) + 50; 317 | MWS.In.Max_IterSS = 2*(numel(MWS.In.JPerSS) + 40); 318 | % set number of consecuative time steps for determining a dynamic run is 319 | % failing to converge. Once limit is reached the dynamic simulation will 320 | % stop 321 | MWS.In.DynRunNonConv = 400; 322 | %set number of solver attempts before Jacobian re-calc. 323 | MWS.In.NRADyn = 25; 324 | MWS.In.NRASS = MWS.In.Max_IterSS/2; 325 | %set max % step change for solver 326 | MWS.In.dX = 1; 327 | %set Perturbation values for X in the linear solver 328 | FracStep = [0.01; 0.005;-0.005;-0.01]; 329 | MWS.In.XPerLin = [MWS.In.N2IC*FracStep,MWS.In.N3IC*FracStep]; 330 | % Set Perturabation steps for u in the linear solver 331 | MWS.In.UPerLin = MWS.In.WfIC * FracStep; 332 | end 333 | 334 | function Vf = CheckMnMx(Vo, Mn, Mx,VarName) 335 | %% Check input value by min and max values producing an error message and 336 | % limiting the value if it fails the check 337 | %------------------------------------------------------------------------- 338 | if Vo < Mn 339 | Vf = Mn; 340 | fprintf(['Initial condition ',VarName,' too low, updating to %d \n'],Mn) 341 | elseif Vo > Mx 342 | Vf = Mx; 343 | fprintf(['Initial condition ',VarName,' too high, updating to %d \n'],Mx) 344 | else 345 | Vf = Vo; 346 | end 347 | 348 | end 349 | 350 | -------------------------------------------------------------------------------- /AGTF30/SimSetup/setup_Controller.m: -------------------------------------------------------------------------------- 1 | function MWS = setup_Controller(MWS) 2 | % setup variables for controller 3 | 4 | %------------------------------------------------------------------ 5 | %----------- Calculations------------------- 6 | %------------------------------------------------------------------ 7 | 8 | % Altitude table lookup 9 | MWS.Cntrl.AltCalc_PaVec = [0.4060 0.6510 1.0490 1.6920 2.1490 2.7300 3.4680 ... 10 | 4.3730 5.4610 6.7590 8.2970 10.1080 12.2280 14.6960 17.5540]; 11 | MWS.Cntrl.AltCalc_AltVec = 1e3 *[80 70 60 50 45 40 35 30 25 20 ... 12 | 15 10 5 0 -5]; 13 | 14 | MWS.Cntrl.AltCalc_Altmax = 4e4; 15 | MWS.Cntrl.AltCalc_Altmin = 0; 16 | 17 | % MN table lookup 18 | MWS.Cntrl.MNCalc_P2qPa = [0.0, 0.9950, 1.0030, 1.0252, 1.0612, 1.1143, 1.1838 ... 19 | 1.2730, 1.3843, 1.5213, 2.0]; 20 | MWS.Cntrl.MNCalc_MNVec = [0, 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.8]; 21 | 22 | MWS.Cntrl.MNCalc_MNmax = 0.8; 23 | MWS.Cntrl.MNCalc_MNmin = 0; 24 | 25 | %------------------------------------------------------------------ 26 | %---------------- Fuel Control------------------------------------ 27 | %------------------------------------------------------------------ 28 | 29 | % --Limiter Values-- 30 | % Enable [WfqPs3mx, T45mx, N1mx, N3mx, Ps3mx, Ps3mn, WfqPs3min] 31 | MWS.Cntrl.Limit_En = [1, 1, 1, 1, 1, 1, 1]; % enable limits 32 | MWS.Cntrl.Limit_Types = [1, 1, 1, 1, 1, -1, -1]; % limit types 33 | 34 | % max limiters 35 | % N1 max 36 | MWS.Cntrl.N1_MAX = 2300; % fan speed RPM 37 | MWS.Cntrl.N1mx_Kp = 1.5442*10^-5; 38 | MWS.Cntrl.N1mx_Ki = 0.0045/8; 39 | 40 | % N3 max 41 | MWS.Cntrl.N3_MAX = 22500; % core speed RPM 42 | MWS.Cntrl.N3mx_Kp = 3.3333e-4; 43 | MWS.Cntrl.N3mx_Ki = 4.7500e-04; 44 | 45 | % Ps3 max 46 | MWS.Cntrl.Ps3_MAX = 790; % psia 47 | MWS.Cntrl.Ps3mx_Kp = 0.1 * 10 ^-4; 48 | MWS.Cntrl.Ps3mx_Ki = 0.0126/4; 49 | 50 | % T45 max 51 | MWS.Cntrl.T45_MAX = 2414; % degR 52 | MWS.Cntrl.T45_BET = 2241; % degR 53 | MWS.Cntrl.T45mx_Kp = 5 * 10 ^-5; 54 | MWS.Cntrl.T45mx_Ki = 0.0095 / 8; 55 | 56 | % Wf/Ps3 max controller schedule 57 | MWS.Cntrl.RU_Nc = [0.0 9.0 10.0 12.0 14.0 15.0 16.0 18.0 21.0 30.0]*100; 58 | MWS.Cntrl.RUmx = [0.95 0.95 0.95 0.93 0.87 1.15 1.15 1.2 1.2 1.2]*3e-3; 59 | 60 | % Min Limiters 61 | 62 | % Wf/Ps3 min contorller 63 | MWS.Cntrl.RUmn = 1.4e-3; 64 | 65 | % Ps3 min controller 66 | MWS.Cntrl.Ps3mn_Kp = (0.1 * 10 ^-4)/5; 67 | MWS.Cntrl.Ps3mn_Ki = 0.0126/4/5; 68 | % Ps3 min limit set as function altitude 69 | MWS.Cntrl.Ps3mn_AltVec = [0 40000]; 70 | MWS.Cntrl.Ps3mn_Ps3Lim = [120 40]; 71 | 72 | % ---Fuel Controller Gain scheduling-- 73 | % Set fuel Kp 74 | 75 | MWS.Cntrl.Kp_NcVec = 2360 *[0 0.4:0.1:1.0 1.3]; 76 | MWS.Cntrl.Kp_AltVec = [0 3.0 7.0 15.0 20.0 30.0 35.0 40.0] * 1000; 77 | 78 | MWS.Cntrl.Kp_sch = 0.05*10^-4 * [... 79 | 3.778 3.778 3.805886264 3.526317692 2.943726129 1.976778338 0.544141078 0 0; % 0k Alt 80 | 3.778 3.778 3.83770153 3.632851458 3.155075311 2.306706798 0.990079627 0 0; % 3k Alt 81 | 3.778 3.778 3.980801396 3.905653943 3.544790857 2.800378654 1.574583846 0 0; % 7k Alt 82 | 3.778 3.778 4.189076859 4.352795708 4.249873673 3.745811103 2.706108346 0.996265753 0.996265753; % 15k Alt 83 | 3.778 3.778 4.272713871 4.551356573 4.569189789 4.170213546 3.198427869 1.497832786 1.497832786; % 20k Alt 84 | 3.778 3.778 4.422360115 4.847863121 5.045915202 4.930016639 4.413667714 3.410368704 3.410368704; % 30k Alt 85 | 3.778 3.778 4.399043306 4.904968647 5.242321382 5.27743468 4.87664171 3.906275641 3.906275641; % 35k Alt 86 | 3.778 3.778 4.399043306 4.904968647 5.242321382 5.27743468 4.87664171 3.906275641 3.906275641]; % 40k Alt 87 | 88 | % Set fuel Ki 89 | MWS.Cntrl.Ki_NcVec = 2360 *[0 0.5:0.1:1, 1.3]; 90 | MWS.Cntrl.Ki_AltVec = [0 3.0 7.0 15.0 20.0 30.0 40.0] * 1000; 91 | 92 | MWS.Cntrl.Ki_sch = 10^-4 *[... 93 | 39.5847394 39.5847394 45.65290174 53.57032602 65.33701226 80.95296046 100.4181706 100.4181706; % 0k Alt 94 | 38.5847394 38.5847394 42.65290174 50.57032602 62.33701226 77.95296046 97.4181706 97.4181706; % 3k Alt 95 | 35.95624115 35.95624115 39.66043013 47.0392184 58.09260597 72.82059283 91.22317899 91.22317899; % 7k Alt 96 | 29.70842024 29.70842024 34.54355981 39.39600523 47.30760025 61.32018857 84.47561392 84.47561392; % 15k Alt 97 | 26.6543216 26.6543216 32.18721812 36.22104567 42.99877007 56.76335717 81.7577728 81.7577728; % 20k Alt 98 | 21.86620259 21.86620259 26.01366174 28.44637481 32.76156452 42.55645358 61.4282647 61.4282647; % 30k Alt 99 | 21.04716387 21.04716387 24.29497879 25.99101403 29.68421871 38.92354196 57.2579329 57.2579329]; % 40k Alt 100 | 101 | % Set Ki MN adjustment multiplier 102 | % Note: final Ki_final = Ki x KiX 103 | MWS.Cntrl.Ki_AltVecX = [0 1 3 5 7 10 15 20 25 30 35 40] * 1000; 104 | MWS.Cntrl.Ki_MNVecX = 0:0.1:0.8; 105 | 106 | MWS.Cntrl.KiX_sch = 0.15 *[... 107 | 1.0000 1.0039 1.0146 1.0323 1.0603 1.1081 1.1747 1.0156 1.4283; % 0k Alt 108 | 1.0000 1.0038 1.0145 1.0322 1.0605 1.1088 1.1664 1.0172 1.4162; % 1k Alt 109 | 0.9689 0.9725 0.9829 1.0000 1.0287 1.0761 1.1496 1.0203 1.3920; % 3k Alt 110 | 0.9684 0.9720 0.9824 1.0000 1.0299 1.0775 1.1329 1.0235 1.3677; % 5k Alt 111 | 0.9387 0.9422 0.9521 0.9699 1.0000 1.0462 1.1162 1.0266 1.3435; % 7k Alt 112 | 0.9368 0.9398 0.9487 0.9677 1.0000 1.0457 1.0911 1.0313 1.3071; % 10k Alt 113 | 0.9337 0.9358 0.9430 0.9352 0.9611 1.0000 1.0492 1.0391 1.2465; % 15k Alt 114 | 0.9305 0.9317 0.9373 0.9027 0.9232 0.9540 1.0000 1.0470 1.1859; % 20k Alt 115 | 0.9273 0.9277 0.9316 0.8702 0.8853 0.9339 1.0000 1.0548 1.1253; % 25k Alt 116 | 0.9242 0.9237 0.9259 0.8377 0.8474 0.9138 0.9372 1.0000 1.0647; % 30k Alt 117 | 0.9210 0.9196 0.9202 0.8052 0.8095 0.8937 0.8857 0.9420 1.0000; % 35k Alt 118 | 0.9179 0.9156 0.9146 0.7727 0.7716 0.8737 0.8342 0.9569 1.0000];% 40k Alt 119 | 120 | 121 | 122 | 123 | %------------------------------------------------------------------ 124 | %----------------- Variable Area Fan Nozzle (VAFN) schedule-------- 125 | %------------------------------------------------------------------ 126 | 127 | MWS.Cntrl.VAFN_MN = 0:0.1:0.8; 128 | MWS.Cntrl.VAFN_Nc1 = [800:100:2200, 2250, 2350, 2450, 2550, 2650]; 129 | 130 | % Baseline VAFN schedule 131 | VAFN_sch = 10^4 * [... 132 | 1.2050 0.9162 0.6187 0.4563 0.3557 0.3063 0.2789 0.2499 0.2468; %Nc = 800 133 | 1.0400 0.8400 0.6100 0.4700 0.3800 0.3300 0.3000 0.2750 0.2670; %Nc = 900 134 | 0.8750 0.7638 0.6013 0.4837 0.4043 0.3537 0.3211 0.3001 0.2872; %Nc = 1000 135 | 0.7969 0.7231 0.5994 0.4979 0.4242 0.3752 0.3428 0.3217 0.3089; %Nc = 1100 136 | 0.7574 0.7023 0.6021 0.5125 0.4435 0.3960 0.3639 0.3429 0.3302; %Nc = 1200 137 | 0.7362 0.6923 0.6077 0.5272 0.4622 0.4162 0.3845 0.3637 0.3511; %Nc = 1300 138 | 0.7253 0.6887 0.6153 0.5420 0.4805 0.4358 0.4046 0.3840 0.3716; %Nc = 1400 139 | 0.7041 0.6747 0.6132 0.5487 0.4924 0.4504 0.4206 0.4008 0.3891; %Nc = 1500 140 | 0.6888 0.6645 0.6121 0.5549 0.5033 0.4640 0.4356 0.4167 0.4057; %Nc = 1600 141 | 0.6707 0.6507 0.6066 0.5567 0.5104 0.4741 0.4476 0.4300 0.4199; %Nc = 1700 142 | 0.6505 0.6343 0.5976 0.5547 0.5137 0.4809 0.4567 0.4406 0.4317; %Nc = 1800 143 | 0.6347 0.6212 0.5902 0.5531 0.5167 0.4871 0.4650 0.4505 0.4428; %Nc = 1900 144 | 0.6111 0.6003 0.5751 0.5441 0.5130 0.4874 0.4681 0.4556 0.4495; %Nc = 2000 145 | 0.5939 0.5851 0.5641 0.5377 0.5109 0.4885 0.4717 0.4610 0.4563; %Nc = 2100 146 | 0.5898 0.5806 0.5624 0.5393 0.5155 0.4954 0.4804 0.4712 0.4677; %Nc = 2200 147 | 0.5857 0.5761 0.5613 0.5397 0.5173 0.4984 0.4843 0.4758 0.4728; %Nc = 2300 148 | 0.5815 0.5717 0.5520 0.5320 0.5131 0.4972 0.4854 0.4788 0.4771; %Nc = 2350 149 | 0.5615 0.5517 0.5336 0.5145 0.4995 0.4860 0.4786 0.4742 0.4736; %Nc = 2450 150 | 0.5415 0.5317 0.5226 0.5035 0.4875 0.4740 0.4710 0.4685 0.4680; %Nc = 2550 151 | 0.5215 0.5117 0.5116 0.4925 0.4755 0.4620 0.4634 0.4628 0.4624];%Nc = 2650 152 | 153 | % Limited VAFN schedule 154 | MWS.Cntrl.VAFN_max = 8000; 155 | MWS.Cntrl.VAFN_sch = min(VAFN_sch,MWS.Cntrl.VAFN_max); 156 | 157 | %------------------------------------------------------------------ 158 | %---------------------- VBV schedule------------------------------- 159 | %------------------------------------------------------------------ 160 | 161 | MWS.Cntrl.VBV_MN = [0 0.2 0.3 0.4 0.5 0.6 0.7 0.8]; 162 | MWS.Cntrl.VBV_Nc1 = [800, 900, 950, 1000:100:1900, 2650]; 163 | 164 | MWS.Cntrl.VBV_sch = [... 165 | 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00;... % Nc2 = 800 166 | 0.54, 0.54, 0.61, 0.68, 0.77, 0.95, 1.00, 1.00;... % Nc2 = 900 167 | 0.46, 0.46, 0.52, 0.58, 0.66, 0.84, 1.00, 1.00;... % Nc2 = 950 168 | 0.37, 0.37, 0.42, 0.48, 0.54, 0.73, 0.84, 0.84;... % Nc2 = 1000 169 | 0.24, 0.24, 0.28, 0.33, 0.39, 0.52, 0.62, 0.62;... % Nc2 = 1100 170 | 0.15, 0.15, 0.19, 0.23, 0.28, 0.39, 0.47, 0.47;... % Nc2 = 1200 171 | 0.08, 0.08, 0.10, 0.14, 0.18, 0.27, 0.34, 0.34;... % Nc2 = 1300 172 | 0.02, 0.02, 0.05, 0.08, 0.12, 0.19, 0.25, 0.25;... % Nc2 = 1400 173 | 0.00, 0.00, 0.00, 0.00, 0.05, 0.11, 0.16, 0.16;... % Nc2 = 1500 174 | 0.00, 0.00, 0.00, 0.00, 0.00, 0.04, 0.08, 0.08;... % Nc2 = 1600 175 | 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.02, 0.02;... % Nc2 = 1700 176 | 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00;... % Nc2 = 1800 177 | 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00;... % Nc2 = 1900 178 | 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00]; % Nc2 = 2650 179 | 180 | %------------------------------------------------------------------ 181 | %-------------------- Power Management----------------------------- 182 | %------------------------------------------------------------------ 183 | 184 | MWS.Cntrl.Fn_AltVec = 1e3 *[0,1,3,5,7,10,15,20,25,30,35,40]; 185 | MWS.Cntrl.Fn_MNVec = 0:0.1:0.8; 186 | 187 | MWS.Cntrl.Fn_mx = 1e4 * [... 188 | 3.1745 2.8526 2.6236 2.3650 2.1091 1.9080 0 0 0; 189 | 3.1167 2.8004 2.5751 2.3238 2.0737 1.8786 0 0 0; 190 | 2.9935 2.6904 2.4727 2.2362 1.9981 1.8120 0 0 0; 191 | 2.8502 2.5659 2.3603 2.1392 1.9157 1.7390 0 0 0; 192 | 2.7308 2.4599 2.2648 2.0562 1.8488 1.6800 0 0 0; 193 | 2.5314 2.2818 2.1036 1.9125 1.7255 1.5785 1.4624 0 0; 194 | 0 0 0 1.6905 1.5340 1.4135 1.3207 0 0; 195 | 0 0 0 0 1.3443 1.2451 1.1737 1.1195 0; 196 | 0 0 0 0 0 1.0831 1.0229 0.9818 0.9557; 197 | 0 0 0 0 0 0 0.8865 0.8510 0.8287; 198 | 0 0 0 0 0 0 0.7613 0.7327 0.7143; 199 | 0 0 0 0 0 0 0 0.5874 0.5731]; 200 | 201 | MWS.Cntrl.Fn_mn = 1e3 *[... 202 | 3.7792 2.1145 1.3150 0.8105 0.5518 0.3084 0 0 0; 203 | 3.8415 2.1657 1.3522 0.8443 0.5751 0.3321 0 0 0; 204 | 3.9133 2.2467 1.4084 0.9172 0.6294 0.3814 0 0 0; 205 | 3.9589 2.3240 1.4802 0.9710 0.6966 0.4355 0 0 0; 206 | 3.9592 2.3587 1.5222 1.0126 0.7335 0.4774 0 0 0; 207 | 3.9276 2.4142 1.5875 1.0784 0.7880 0.5478 0.3432 0 0; 208 | 0 0 0 1.1388 0.8476 0.6077 0.4277 0 0; 209 | 0 0 0 0 0.8707 0.6411 0.4690 0.3278 0; 210 | 0 0 0 0 0 0.6446 0.4850 0.3507 0.2252; 211 | 0 0 0 0 0 0 0.4718 0.3545 0.2431; 212 | 0 0 0 0 0 0 0.4369 0.3375 0.2405; 213 | 0 0 0 0 0 0 0 0.2871 0.2155]; 214 | 215 | 216 | % Determine Nc1 speed based on table lookup. 217 | MWS.Cntrl.PM_AltVec =1e3 * [0,1,3,5,7,10,15,20,25,30,35,40]; 218 | MWS.Cntrl.PM_MNVec = 0:0.1:0.8; 219 | MWS.Cntrl.PM_TF = 0:(1/10): 1; 220 | 221 | NcArray(:,:,1) = 1e3 *[... 222 | 0.8644 0.8704 0.8828 0.8956 0.9105 0.9413 0.9926 1.0440 1.0953 1.1466 1.1980 1.2493; 223 | 0.9893 1.0002 1.0222 1.0438 1.0648 1.1001 1.1589 1.2178 1.2766 1.3354 1.3943 1.4531; 224 | 1.1329 1.1454 1.1707 1.1950 1.2192 1.2587 1.3245 1.3904 1.4562 1.5220 1.5879 1.6537; 225 | 1.2747 1.2884 1.3163 1.3430 1.3694 1.4119 1.4827 1.5536 1.6244 1.6952 1.7661 1.8369; 226 | 1.4122 1.4256 1.4516 1.4763 1.5013 1.5412 1.6077 1.6742 1.7407 1.8072 1.8737 1.9402; 227 | 1.5286 1.5426 1.5710 1.5976 1.6248 1.6655 1.7333 1.8012 1.8690 1.9368 2.0047 2.0725; 228 | 1.6428 1.6570 1.6832 1.7079 1.7334 1.7732 1.8395 1.9059 1.9722 2.0385 2.1049 2.1712; 229 | 1.7410 1.7550 1.7835 1.8102 1.8377 1.8806 1.9521 2.0236 2.0951 2.1666 2.2381 2.3096; 230 | 1.8377 1.8527 1.8835 1.9086 1.9344 1.9742 2.0405 2.1069 2.1732 2.2395 2.3059 2.3722; 231 | 1.9277 1.9417 1.9702 1.9968 2.0244 2.0670 2.1380 2.2090 2.2800 2.3510 2.4220 2.4930; 232 | 2.0178 2.0306 2.0570 2.0849 2.1145 2.1598 2.2353 2.3108 2.3863 2.4618 2.5373 2.6128]; 233 | 234 | NcArray(:,:,2) = 1e3 *[... 235 | 0.8547 0.8636 0.8814 0.9008 0.9174 0.9475 0.9977 1.0478 1.0980 1.1482 1.1983 1.2485; 236 | 1.0304 1.0392 1.0603 1.0817 1.1006 1.1350 1.1923 1.2497 1.3070 1.3643 1.4217 1.4790; 237 | 1.1938 1.2029 1.2284 1.2529 1.2748 1.3125 1.3753 1.4382 1.5010 1.5638 1.6267 1.6895; 238 | 1.3499 1.3594 1.3882 1.4146 1.4354 1.4705 1.5290 1.5875 1.6460 1.7045 1.7630 1.8215; 239 | 1.4857 1.4941 1.5219 1.5467 1.5696 1.6079 1.6717 1.7356 1.7994 1.8632 1.9271 1.9909; 240 | 1.6081 1.6168 1.6477 1.6711 1.6925 1.7283 1.7880 1.8476 1.9073 1.9670 2.0266 2.0863; 241 | 1.7160 1.7238 1.7531 1.7780 1.8015 1.8405 1.9055 1.9705 2.0355 2.1005 2.1655 2.2305; 242 | 1.8162 1.8245 1.8567 1.8837 1.9062 1.9425 2.0030 2.0635 2.1240 2.1845 2.2450 2.3055; 243 | 1.9114 1.9188 1.9490 1.9739 1.9978 2.0371 2.1026 2.1681 2.2336 2.2991 2.3646 2.4301; 244 | 1.9957 2.0036 2.0365 2.0634 2.0892 2.1313 2.2015 2.2716 2.3418 2.4120 2.4821 2.5523; 245 | 2.0801 2.0884 2.1240 2.1529 2.1806 2.2255 2.3003 2.3752 2.4500 2.5248 2.5997 2.6745]; 246 | 247 | NcArray(:,:,3) = 1e3 *[... 248 | 0.8612 0.8677 0.8828 0.9011 0.9171 0.9458 0.9936 1.0415 1.0893 1.1371 1.1850 1.2328; 249 | 1.0691 1.0771 1.0954 1.1164 1.1356 1.1680 1.2220 1.2760 1.3300 1.3840 1.4380 1.4920; 250 | 1.2550 1.2645 1.2860 1.3094 1.3314 1.3673 1.4271 1.4870 1.5468 1.6066 1.6665 1.7263; 251 | 1.4229 1.4321 1.4525 1.4743 1.4951 1.5286 1.5844 1.6403 1.6961 1.7519 1.8078 1.8636; 252 | 1.5566 1.5670 1.5901 1.6141 1.6372 1.6705 1.7260 1.7815 1.8370 1.8925 1.9480 2.0035; 253 | 1.6790 1.6889 1.7106 1.7331 1.7551 1.7893 1.8463 1.9033 1.9603 2.0173 2.0743 2.1313; 254 | 1.7837 1.7946 1.8187 1.8434 1.8677 1.9027 1.9610 2.0194 2.0777 2.1360 2.1944 2.2527; 255 | 1.8862 1.8967 1.9192 1.9421 1.9647 1.9995 2.0575 2.1155 2.1735 2.2315 2.2895 2.3475; 256 | 1.9721 1.9832 2.0079 2.0328 2.0577 2.0956 2.1588 2.2219 2.2851 2.3483 2.4114 2.4746; 257 | 2.0570 2.0692 2.0960 2.1235 2.1489 2.1873 2.2513 2.3153 2.3793 2.4433 2.5073 2.5713; 258 | 2.1419 2.1551 2.1841 2.2141 2.2400 2.2789 2.3437 2.4086 2.4734 2.5382 2.6031 2.6679]; 259 | 260 | NcArray(:,:,4) = 1e3 *[... 261 | 0.8581 0.8652 0.8790 0.8966 0.9119 0.9396 0.9853 1.0310 1.0767 1.1224 1.1681 1.2138; 262 | 1.0946 1.1033 1.1207 1.1409 1.1593 1.1902 1.2417 1.2932 1.3447 1.3962 1.4477 1.4992; 263 | 1.2940 1.3043 1.3250 1.3479 1.3694 1.4036 1.4535 1.5034 1.5533 1.6032 1.6531 1.7030; 264 | 1.4612 1.4710 1.4910 1.5126 1.5332 1.5654 1.6194 1.6734 1.7274 1.7814 1.8354 1.8894; 265 | 1.5975 1.6085 1.6311 1.6545 1.6741 1.7043 1.7550 1.8057 1.8564 1.9071 1.9578 2.0085; 266 | 1.7140 1.7245 1.7460 1.7685 1.7905 1.8239 1.8803 1.9367 1.9931 2.0495 2.1059 2.1623; 267 | 1.8180 1.8297 1.8537 1.8786 1.9008 1.9317 1.9842 2.0367 2.0892 2.1417 2.1942 2.2467; 268 | 1.9143 1.9251 1.9474 1.9704 1.9931 2.0272 2.0850 2.1428 2.2006 2.2584 2.3162 2.3740; 269 | 1.9976 2.0095 2.0341 2.0593 2.0843 2.1221 2.1816 2.2411 2.3006 2.3601 2.4196 2.4791; 270 | 2.0800 2.0929 2.1202 2.1463 2.1719 2.2097 2.2706 2.3315 2.3924 2.4533 2.5142 2.5751; 271 | 2.1624 2.1764 2.2063 2.2333 2.2595 2.2973 2.3595 2.4217 2.4839 2.5461 2.6083 2.6705]; 272 | 273 | NcArray(:,:,5) = 1e3 *[... 274 | 0.8498 0.8568 0.8718 0.8877 0.9018 0.9285 0.9731 1.0194 1.0657 1.1120 1.1583 1.2046; 275 | 1.1042 1.1128 1.1297 1.1484 1.1674 1.1974 1.2471 1.2986 1.3501 1.4016 1.4531 1.5046; 276 | 1.3082 1.3183 1.3377 1.3595 1.3830 1.4163 1.4635 1.5117 1.5599 1.6081 1.6563 1.7045; 277 | 1.4731 1.4828 1.5011 1.5219 1.5452 1.5772 1.6307 1.6794 1.7281 1.7768 1.8255 1.8742; 278 | 1.6075 1.6184 1.6387 1.6604 1.6830 1.7130 1.7637 1.8144 1.8651 1.9158 1.9665 2.0172; 279 | 1.7198 1.7301 1.7492 1.7712 1.7967 1.8302 1.8869 1.9344 1.9819 2.0294 2.0769 2.1244; 280 | 1.8203 1.8317 1.8528 1.8772 1.9031 1.9340 1.9866 2.0389 2.0912 2.1435 2.1958 2.2481; 281 | 1.9126 1.9232 1.9425 1.9650 1.9916 2.0257 2.0838 2.1411 2.1984 2.2557 2.3130 2.3703; 282 | 1.9916 2.0032 2.0244 2.0491 2.0784 2.1163 2.1768 2.2354 2.2940 2.3526 2.4112 2.4698; 283 | 2.0694 2.0820 2.1050 2.1319 2.1622 2.2003 2.2625 2.3191 2.3757 2.4323 2.4889 2.5455; 284 | 2.1471 2.1608 2.1856 2.2148 2.2459 2.2843 2.3483 2.4028 2.4573 2.5118 2.5663 2.6208]; 285 | 286 | NcArray(:,:,6) = 1e3 *[... 287 | 0.8410 0.8475 0.8625 0.8789 0.8918 0.9159 0.9586 1.0021 1.0456 1.0891 1.1326 1.1761; 288 | 1.1066 1.1149 1.1314 1.1519 1.1690 1.1983 1.2475 1.2971 1.3468 1.3965 1.4462 1.4959; 289 | 1.3129 1.3228 1.3417 1.3662 1.3871 1.4201 1.4677 1.5149 1.5625 1.6101 1.6577 1.7053; 290 | 1.4760 1.4857 1.5035 1.5271 1.5476 1.5810 1.6351 1.6827 1.7280 1.7733 1.8186 1.8639; 291 | 1.6080 1.6190 1.6385 1.6631 1.6827 1.7143 1.7660 1.8165 1.8677 1.9189 1.9701 2.0213; 292 | 1.7172 1.7276 1.7459 1.7712 1.7933 1.8287 1.8867 1.9342 1.9819 2.0296 2.0773 2.1250; 293 | 1.8142 1.8257 1.8458 1.8739 1.8969 1.9297 1.9834 2.0357 2.0889 2.1421 2.1953 2.2485; 294 | 1.9041 1.9147 1.9330 1.9587 1.9814 2.0177 2.0771 2.1350 2.1901 2.2452 2.3003 2.3554; 295 | 1.9791 1.9907 2.0106 2.0389 2.0639 2.1037 2.1669 2.2258 2.2811 2.3364 2.3917 2.4470; 296 | 2.0525 2.0652 2.0867 2.1180 2.1442 2.1849 2.2502 2.3069 2.3632 2.4195 2.4758 2.5321; 297 | 2.1259 2.1396 2.1628 2.1971 2.2245 2.2661 2.3336 2.3880 2.4453 2.5026 2.5599 2.6172]; 298 | 299 | NcArray(:,:,7) = 1e3 *[... 300 | 0.8343 0.8415 0.8559 0.8703 0.8847 0.9063 0.9423 0.9837 1.0241 1.0623 1.0951 1.1279; 301 | 1.1013 1.1107 1.1294 1.1482 1.1670 1.1951 1.2420 1.2914 1.3386 1.3865 1.4242 1.4619; 302 | 1.3236 1.3330 1.3519 1.3707 1.3895 1.4178 1.4649 1.5131 1.5587 1.6064 1.6463 1.6862; 303 | 1.4680 1.4789 1.5006 1.5224 1.5442 1.5768 1.6312 1.6807 1.7245 1.7711 1.8104 1.8497; 304 | 1.6030 1.6135 1.6345 1.6555 1.6765 1.7080 1.7605 1.8128 1.8620 1.9112 1.9489 1.9866; 305 | 1.7000 1.7119 1.7356 1.7593 1.7830 1.8186 1.8779 1.9286 1.9746 2.0252 2.0680 2.1108; 306 | 1.8080 1.8190 1.8409 1.8629 1.8849 1.9178 1.9727 2.0271 2.0784 2.1354 2.1807 2.2260; 307 | 1.8799 1.8921 1.9164 1.9408 1.9652 2.0017 2.0626 2.1236 2.1769 2.2355 2.2805 2.3255; 308 | 1.9512 1.9644 1.9909 2.0173 2.0437 2.0834 2.1495 2.2111 2.2659 2.3229 2.3692 2.4155; 309 | 2.0258 2.0394 2.0665 2.0937 2.1209 2.1616 2.2295 2.2903 2.3454 2.4010 2.4475 2.4940; 310 | 2.1007 2.1146 2.1425 2.1703 2.1981 2.2399 2.3095 2.3694 2.4248 2.4792 2.5258 2.5724]; 311 | 312 | NcArray(:,:,8) = 1e3 *[... 313 | 0.8060 0.8138 0.8294 0.8450 0.8606 0.8840 0.9230 0.9620 1.0010 1.0361 1.0645 1.0877; 314 | 1.0938 1.1031 1.1218 1.1404 1.1590 1.1870 1.2336 1.2802 1.3268 1.3716 1.4136 1.4305; 315 | 1.3223 1.3314 1.3497 1.3679 1.3861 1.4135 1.4591 1.5047 1.5503 1.5958 1.6407 1.6565; 316 | 1.4949 1.5038 1.5215 1.5392 1.5569 1.5835 1.6278 1.6721 1.7164 1.7604 1.8064 1.8210; 317 | 1.6032 1.6131 1.6330 1.6528 1.6726 1.7024 1.7520 1.8016 1.8512 1.8999 1.9447 1.9577; 318 | 1.7306 1.7399 1.7584 1.7770 1.7956 1.8234 1.8698 1.9162 1.9626 2.0104 2.0620 2.0760; 319 | 1.8034 1.8138 1.8345 1.8553 1.8761 1.9072 1.9591 2.0110 2.0629 2.1172 2.1728 2.1868; 320 | 1.8787 1.8899 1.9123 1.9347 1.9571 1.9907 2.0467 2.1027 2.1587 2.2142 2.2712 2.2844; 321 | 1.9569 1.9685 1.9916 2.0148 2.0380 2.0727 2.1306 2.1885 2.2464 2.2999 2.3583 2.3708; 322 | 2.0432 2.0544 2.0767 2.0990 2.1213 2.1548 2.2106 2.2664 2.3222 2.3770 2.4333 2.4465; 323 | 2.1291 2.1399 2.1614 2.1829 2.2044 2.2367 2.2905 2.3443 2.3981 2.4541 2.5082 2.5222]; 324 | 325 | NcArray(:,:,9) = 1e3 *[... 326 | 0.8146 0.8211 0.8340 0.8469 0.8598 0.8792 0.9115 0.9438 0.9761 1.0084 1.0369 1.0544; 327 | 1.1018 1.1102 1.1269 1.1437 1.1605 1.1856 1.2275 1.2694 1.3113 1.3532 1.3956 1.4111; 328 | 1.3231 1.3317 1.3488 1.3660 1.3832 1.4089 1.4518 1.4947 1.5376 1.5805 1.6244 1.6388; 329 | 1.4957 1.5040 1.5207 1.5373 1.5539 1.5789 1.6205 1.6621 1.7037 1.7453 1.7899 1.8028; 330 | 1.5953 1.6049 1.6241 1.6433 1.6625 1.6913 1.7393 1.7873 1.8353 1.8833 1.9275 1.9394; 331 | 1.7216 1.7306 1.7485 1.7665 1.7845 1.8114 1.8563 1.9012 1.9461 1.9910 2.0405 2.0535; 332 | 1.7916 1.8016 1.8217 1.8418 1.8619 1.8920 1.9422 1.9924 2.0426 2.0928 2.1481 2.1614; 333 | 1.8742 1.8847 1.9056 1.9265 1.9474 1.9788 2.0311 2.0834 2.1357 2.1880 2.2454 2.2581; 334 | 1.9553 1.9659 1.9870 2.0082 2.0294 2.0611 2.1140 2.1669 2.2198 2.2727 2.3283 2.3418; 335 | 2.0246 2.0354 2.0570 2.0786 2.1002 2.1326 2.1866 2.2406 2.2946 2.3486 2.4020 2.4148; 336 | 2.0939 2.1049 2.1270 2.1490 2.1710 2.2041 2.2592 2.3143 2.3694 2.4245 2.4758 2.4878]; 337 | 338 | 339 | MWS.Cntrl.PM_NcArray = NcArray; 340 | -------------------------------------------------------------------------------- /AGTF30/AGTF30SysLin.mdl: -------------------------------------------------------------------------------- 1 | Model { 2 | Name "AGTF30SysLin" 3 | Version 8.5 4 | MdlSubVersion 0 5 | SavedCharacterEncoding "windows-1252" 6 | GraphicalInterface { 7 | NumRootInports 0 8 | NumRootOutports 0 9 | ParameterArgumentNames "" 10 | ComputedModelVersion "1.41" 11 | NumModelReferences 1 12 | ModelReference { 13 | ModelRefBlockPath "AGTF30SysLin/EngineDW/Engine Model|AGTF30_eng" 14 | } 15 | NumTestPointedSignals 0 16 | } 17 | ScopeRefreshTime 0.035000 18 | OverrideScopeRefreshTime on 19 | DisableAllScopes on 20 | DataTypeOverride "UseLocalSettings" 21 | DataTypeOverrideAppliesTo "AllNumericTypes" 22 | MinMaxOverflowLogging "UseLocalSettings" 23 | MinMaxOverflowArchiveMode "Overwrite" 24 | FPTRunName "Run 1" 25 | MaxMDLFileLineLength 120 26 | Object { 27 | $PropName "BdWindowsInfo" 28 | $ObjectID 1 29 | $ClassName "Simulink.BDWindowsInfo" 30 | Object { 31 | $PropName "WindowsInfo" 32 | $ObjectID 2 33 | $ClassName "Simulink.WindowInfo" 34 | IsActive [1] 35 | Location [350.0, 211.0, 1271.0, 779.0] 36 | Object { 37 | $PropName "ModelBrowserInfo" 38 | $ObjectID 3 39 | $ClassName "Simulink.ModelBrowserInfo" 40 | Visible [0] 41 | DockPosition "Left" 42 | Width [50] 43 | Height [50] 44 | Filter [59] 45 | } 46 | Object { 47 | $PropName "ExplorerBarInfo" 48 | $ObjectID 4 49 | $ClassName "Simulink.ExplorerBarInfo" 50 | Visible [1] 51 | } 52 | Object { 53 | $PropName "EditorsInfo" 54 | $ObjectID 5 55 | $ClassName "Simulink.EditorInfo" 56 | IsActive [1] 57 | ViewObjType "SimulinkTopLevel" 58 | LoadSaveID "0" 59 | Extents [1219.0, 577.0] 60 | ZoomFactor [0.81398809523809534] 61 | Offset [-132.2824497257767, -0.19926873857406235] 62 | } 63 | } 64 | } 65 | Created "Tue Aug 23 13:24:42 2016" 66 | Creator "jwchapm2" 67 | UpdateHistory "UpdateHistoryNever" 68 | ModifiedByFormat "%" 69 | LastModifiedBy "jwchapm2" 70 | ModifiedDateFormat "%" 71 | LastModifiedDate "Fri May 29 16:26:34 2020" 72 | RTWModifiedTimeStamp 512670388 73 | ModelVersionFormat "1.%" 74 | ConfigurationManager "none" 75 | SampleTimeColors off 76 | SampleTimeAnnotations off 77 | LibraryLinkDisplay "disabled" 78 | WideLines off 79 | ShowLineDimensions off 80 | ShowPortDataTypes off 81 | ShowDesignRanges off 82 | ShowLoopsOnError on 83 | IgnoreBidirectionalLines off 84 | ShowStorageClass off 85 | ShowTestPointIcons on 86 | ShowSignalResolutionIcons on 87 | ShowViewerIcons on 88 | SortedOrder off 89 | ExecutionContextIcon off 90 | ShowLinearizationAnnotations on 91 | ShowMarkup on 92 | BlockNameDataTip off 93 | BlockParametersDataTip off 94 | BlockDescriptionStringDataTip off 95 | ToolBar on 96 | StatusBar on 97 | BrowserShowLibraryLinks on 98 | BrowserLookUnderMasks on 99 | SimulationMode "normal" 100 | PauseTimes "5" 101 | NumberOfSteps 1 102 | SnapshotBufferSize 10 103 | SnapshotInterval 10 104 | NumberOfLastSnapshots 0 105 | LinearizationMsg "none" 106 | Profile off 107 | ParamWorkspaceSource "MATLABWorkspace" 108 | AccelSystemTargetFile "accel.tlc" 109 | AccelTemplateMakefile "accel_default_tmf" 110 | AccelMakeCommand "make_rtw" 111 | TryForcingSFcnDF off 112 | Object { 113 | $PropName "DataLoggingOverride" 114 | $ObjectID 6 115 | $ClassName "Simulink.SimulationData.ModelLoggingInfo" 116 | model_ "AGTF30SysLin_new" 117 | overrideMode_ [0.0] 118 | Array { 119 | Type "Cell" 120 | Dimension 1 121 | Cell "AGTF30SysLin_new" 122 | PropName "logAsSpecifiedByModels_" 123 | } 124 | Array { 125 | Type "Cell" 126 | Dimension 1 127 | Cell [] 128 | PropName "logAsSpecifiedByModelsSSIDs_" 129 | } 130 | } 131 | RecordCoverage off 132 | CovPath "/" 133 | CovSaveName "covdata" 134 | CovMetricSettings "dw" 135 | CovNameIncrementing off 136 | CovHtmlReporting on 137 | CovForceBlockReductionOff on 138 | CovEnableCumulative on 139 | covSaveCumulativeToWorkspaceVar on 140 | CovSaveSingleToWorkspaceVar on 141 | CovCumulativeVarName "covCumulativeData" 142 | CovCumulativeReport off 143 | CovReportOnPause on 144 | CovModelRefEnable "Off" 145 | CovExternalEMLEnable off 146 | CovSFcnEnable on 147 | CovBoundaryAbsTol 0.000010 148 | CovBoundaryRelTol 0.010000 149 | CovUseTimeInterval off 150 | CovStartTime 0 151 | CovStopTime 0 152 | ExtModeBatchMode off 153 | ExtModeEnableFloating on 154 | ExtModeTrigType "manual" 155 | ExtModeTrigMode "normal" 156 | ExtModeTrigPort "1" 157 | ExtModeTrigElement "any" 158 | ExtModeTrigDuration 1000 159 | ExtModeTrigDurationFloating "auto" 160 | ExtModeTrigHoldOff 0 161 | ExtModeTrigDelay 0 162 | ExtModeTrigDirection "rising" 163 | ExtModeTrigLevel 0 164 | ExtModeArchiveMode "off" 165 | ExtModeAutoIncOneShot off 166 | ExtModeIncDirWhenArm off 167 | ExtModeAddSuffixToVar off 168 | ExtModeWriteAllDataToWs off 169 | ExtModeArmWhenConnect on 170 | ExtModeSkipDownloadWhenConnect off 171 | ExtModeLogAll on 172 | ExtModeAutoUpdateStatusClock on 173 | ShowModelReferenceBlockVersion off 174 | ShowModelReferenceBlockIO off 175 | Array { 176 | Type "Handle" 177 | Dimension 1 178 | Simulink.ConfigSet { 179 | $ObjectID 7 180 | Version "1.15.0" 181 | Array { 182 | Type "Handle" 183 | Dimension 8 184 | Simulink.SolverCC { 185 | $ObjectID 8 186 | Version "1.15.0" 187 | StartTime "0.0" 188 | StopTime "MWS.In.Max_IterSS" 189 | AbsTol "auto" 190 | FixedStep "1" 191 | InitialStep "auto" 192 | MaxNumMinSteps "-1" 193 | MaxOrder 5 194 | ZcThreshold "auto" 195 | ConsecutiveZCsStepRelTol "10*128*eps" 196 | MaxConsecutiveZCs "1000" 197 | ExtrapolationOrder 4 198 | NumberNewtonIterations 1 199 | MaxStep "auto" 200 | MinStep "auto" 201 | MaxConsecutiveMinStep "1" 202 | RelTol "1e-3" 203 | SolverMode "Auto" 204 | EnableConcurrentExecution off 205 | ConcurrentTasks off 206 | Solver "FixedStepDiscrete" 207 | SolverName "FixedStepDiscrete" 208 | SolverJacobianMethodControl "auto" 209 | ShapePreserveControl "DisableAll" 210 | ZeroCrossControl "UseLocalSettings" 211 | ZeroCrossAlgorithm "Nonadaptive" 212 | AlgebraicLoopSolver "TrustRegion" 213 | SolverResetMethod "Fast" 214 | PositivePriorityOrder off 215 | AutoInsertRateTranBlk off 216 | SampleTimeConstraint "Unconstrained" 217 | InsertRTBMode "Whenever possible" 218 | } 219 | Simulink.DataIOCC { 220 | $ObjectID 9 221 | Version "1.15.0" 222 | Decimation "1" 223 | ExternalInput "[t, u]" 224 | FinalStateName "xFinal" 225 | InitialState "xInitial" 226 | LimitDataPoints on 227 | MaxDataPoints "1000" 228 | LoadExternalInput off 229 | LoadInitialState off 230 | SaveFinalState off 231 | SaveCompleteFinalSimState off 232 | SaveFormat "Array" 233 | SignalLoggingSaveFormat "Dataset" 234 | SaveOutput on 235 | SaveState off 236 | SignalLogging on 237 | DSMLogging on 238 | InspectSignalLogs off 239 | VisualizeSimOutput on 240 | SaveTime on 241 | ReturnWorkspaceOutputs off 242 | StateSaveName "xout" 243 | TimeSaveName "tout" 244 | OutputSaveName "yout" 245 | SignalLoggingName "logsout" 246 | DSMLoggingName "dsmout" 247 | OutputOption "RefineOutputTimes" 248 | OutputTimes "[]" 249 | ReturnWorkspaceOutputsName "out" 250 | Refine "1" 251 | } 252 | Simulink.OptimizationCC { 253 | $ObjectID 10 254 | Version "1.15.0" 255 | Array { 256 | Type "Cell" 257 | Dimension 8 258 | Cell "BooleansAsBitfields" 259 | Cell "PassReuseOutputArgsAs" 260 | Cell "PassReuseOutputArgsThreshold" 261 | Cell "ZeroExternalMemoryAtStartup" 262 | Cell "ZeroInternalMemoryAtStartup" 263 | Cell "OptimizeModelRefInitCode" 264 | Cell "NoFixptDivByZeroProtection" 265 | Cell "UseSpecifiedMinMax" 266 | PropName "DisabledProps" 267 | } 268 | BlockReduction on 269 | BooleanDataType on 270 | ConditionallyExecuteInputs on 271 | InlineParams off 272 | UseDivisionForNetSlopeComputation "off" 273 | UseFloatMulNetSlope off 274 | DefaultUnderspecifiedDataType "double" 275 | UseSpecifiedMinMax off 276 | InlineInvariantSignals off 277 | OptimizeBlockIOStorage on 278 | BufferReuse on 279 | EnhancedBackFolding off 280 | CachingGlobalReferences off 281 | GlobalBufferReuse on 282 | StrengthReduction off 283 | ExpressionFolding on 284 | BooleansAsBitfields off 285 | BitfieldContainerType "uint_T" 286 | EnableMemcpy on 287 | MemcpyThreshold 64 288 | PassReuseOutputArgsAs "Structure reference" 289 | PassReuseOutputArgsThreshold 12 290 | ExpressionDepthLimit 128 291 | LocalBlockOutputs on 292 | RollThreshold 5 293 | StateBitsets off 294 | DataBitsets off 295 | ActiveStateOutputEnumStorageType "Native Integer" 296 | ZeroExternalMemoryAtStartup on 297 | ZeroInternalMemoryAtStartup on 298 | InitFltsAndDblsToZero off 299 | NoFixptDivByZeroProtection off 300 | EfficientFloat2IntCast off 301 | EfficientMapNaN2IntZero on 302 | OptimizeModelRefInitCode off 303 | LifeSpan "inf" 304 | MaxStackSize "Inherit from target" 305 | BufferReusableBoundary on 306 | SimCompilerOptimization "off" 307 | AccelVerboseBuild off 308 | } 309 | Simulink.DebuggingCC { 310 | $ObjectID 11 311 | Version "1.15.0" 312 | RTPrefix "error" 313 | ConsistencyChecking "none" 314 | ArrayBoundsChecking "none" 315 | SignalInfNanChecking "none" 316 | SignalRangeChecking "none" 317 | ReadBeforeWriteMsg "UseLocalSettings" 318 | WriteAfterWriteMsg "UseLocalSettings" 319 | WriteAfterReadMsg "UseLocalSettings" 320 | AlgebraicLoopMsg "warning" 321 | ArtificialAlgebraicLoopMsg "warning" 322 | SaveWithDisabledLinksMsg "warning" 323 | SaveWithParameterizedLinksMsg "warning" 324 | CheckSSInitialOutputMsg on 325 | UnderspecifiedInitializationDetection "Simplified" 326 | MergeDetectMultiDrivingBlocksExec "error" 327 | CheckExecutionContextPreStartOutputMsg off 328 | CheckExecutionContextRuntimeOutputMsg off 329 | SignalResolutionControl "UseLocalSettings" 330 | BlockPriorityViolationMsg "warning" 331 | MinStepSizeMsg "warning" 332 | TimeAdjustmentMsg "none" 333 | MaxConsecutiveZCsMsg "error" 334 | MaskedZcDiagnostic "warning" 335 | IgnoredZcDiagnostic "warning" 336 | SolverPrmCheckMsg "none" 337 | InheritedTsInSrcMsg "warning" 338 | DiscreteInheritContinuousMsg "warning" 339 | MultiTaskDSMMsg "error" 340 | MultiTaskCondExecSysMsg "error" 341 | MultiTaskRateTransMsg "error" 342 | SingleTaskRateTransMsg "none" 343 | TasksWithSamePriorityMsg "warning" 344 | SigSpecEnsureSampleTimeMsg "warning" 345 | CheckMatrixSingularityMsg "none" 346 | IntegerOverflowMsg "warning" 347 | Int32ToFloatConvMsg "warning" 348 | ParameterDowncastMsg "error" 349 | ParameterOverflowMsg "error" 350 | ParameterUnderflowMsg "none" 351 | ParameterPrecisionLossMsg "warning" 352 | ParameterTunabilityLossMsg "warning" 353 | FixptConstUnderflowMsg "none" 354 | FixptConstOverflowMsg "none" 355 | FixptConstPrecisionLossMsg "none" 356 | UnderSpecifiedDataTypeMsg "none" 357 | UnnecessaryDatatypeConvMsg "none" 358 | VectorMatrixConversionMsg "none" 359 | InvalidFcnCallConnMsg "error" 360 | FcnCallInpInsideContextMsg "EnableAllAsError" 361 | SignalLabelMismatchMsg "none" 362 | UnconnectedInputMsg "warning" 363 | UnconnectedOutputMsg "warning" 364 | UnconnectedLineMsg "warning" 365 | SFcnCompatibilityMsg "none" 366 | FrameProcessingCompatibilityMsg "error" 367 | UniqueDataStoreMsg "none" 368 | BusObjectLabelMismatch "warning" 369 | RootOutportRequireBusObject "warning" 370 | AssertControl "UseLocalSettings" 371 | ModelReferenceIOMsg "none" 372 | ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error" 373 | ModelReferenceVersionMismatchMessage "none" 374 | ModelReferenceIOMismatchMessage "none" 375 | UnknownTsInhSupMsg "warning" 376 | ModelReferenceDataLoggingMessage "warning" 377 | ModelReferenceSymbolNameMessage "warning" 378 | ModelReferenceExtraNoncontSigs "error" 379 | StateNameClashWarn "none" 380 | SimStateInterfaceChecksumMismatchMsg "warning" 381 | SimStateOlderReleaseMsg "error" 382 | InitInArrayFormatMsg "warning" 383 | StrictBusMsg "ErrorLevel1" 384 | BusNameAdapt "WarnAndRepair" 385 | NonBusSignalsTreatedAsBus "none" 386 | BlockIODiagnostic "none" 387 | SFUnusedDataAndEventsDiag "warning" 388 | SFUnexpectedBacktrackingDiag "warning" 389 | SFInvalidInputDataAccessInChartInitDiag "warning" 390 | SFNoUnconditionalDefaultTransitionDiag "warning" 391 | SFTransitionOutsideNaturalParentDiag "warning" 392 | SFUnconditionalTransitionShadowingDiag "warning" 393 | SFUndirectedBroadcastEventsDiag "warning" 394 | SFTransitionActionBeforeConditionDiag "warning" 395 | SFOutputUsedAsStateInMooreChartDiag "error" 396 | IntegerSaturationMsg "warning" 397 | } 398 | Simulink.HardwareCC { 399 | $ObjectID 12 400 | Version "1.15.0" 401 | ProdBitPerChar 8 402 | ProdBitPerShort 16 403 | ProdBitPerInt 32 404 | ProdBitPerLong 32 405 | ProdBitPerLongLong 64 406 | ProdBitPerFloat 32 407 | ProdBitPerDouble 64 408 | ProdBitPerPointer 32 409 | ProdLargestAtomicInteger "Char" 410 | ProdLargestAtomicFloat "None" 411 | ProdIntDivRoundTo "Undefined" 412 | ProdEndianess "Unspecified" 413 | ProdWordSize 32 414 | ProdShiftRightIntArith on 415 | ProdLongLongMode off 416 | ProdHWDeviceType "32-bit Generic" 417 | TargetBitPerChar 8 418 | TargetBitPerShort 16 419 | TargetBitPerInt 32 420 | TargetBitPerLong 32 421 | TargetBitPerLongLong 64 422 | TargetBitPerFloat 32 423 | TargetBitPerDouble 64 424 | TargetBitPerPointer 32 425 | TargetLargestAtomicInteger "Char" 426 | TargetLargestAtomicFloat "None" 427 | TargetShiftRightIntArith on 428 | TargetLongLongMode off 429 | TargetIntDivRoundTo "Undefined" 430 | TargetEndianess "Unspecified" 431 | TargetWordSize 32 432 | TargetPreprocMaxBitsSint 32 433 | TargetPreprocMaxBitsUint 32 434 | TargetHWDeviceType "Specified" 435 | TargetUnknown off 436 | ProdEqTarget on 437 | } 438 | Simulink.ModelReferenceCC { 439 | $ObjectID 13 440 | Version "1.15.0" 441 | UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" 442 | CheckModelReferenceTargetMessage "error" 443 | EnableParallelModelReferenceBuilds off 444 | ParallelModelReferenceErrorOnInvalidPool on 445 | ParallelModelReferenceMATLABWorkerInit "None" 446 | ModelReferenceNumInstancesAllowed "Multi" 447 | PropagateVarSize "Infer from blocks in model" 448 | ModelReferencePassRootInputsByReference on 449 | ModelReferenceMinAlgLoopOccurrences off 450 | PropagateSignalLabelsOutOfModel off 451 | SupportModelReferenceSimTargetCustomCode off 452 | } 453 | Simulink.SFSimCC { 454 | $ObjectID 14 455 | Version "1.15.0" 456 | SFSimOverflowDetection on 457 | SFSimEcho on 458 | SimCtrlC on 459 | SimIntegrity on 460 | SimUseLocalCustomCode off 461 | SimParseCustomCode on 462 | SimBuildMode "sf_incremental_build" 463 | SimGenImportedTypeDefs off 464 | } 465 | Simulink.RTWCC { 466 | $BackupClass "Simulink.RTWCC" 467 | $ObjectID 15 468 | Version "1.15.0" 469 | Array { 470 | Type "Cell" 471 | Dimension 16 472 | Cell "IncludeHyperlinkInReport" 473 | Cell "GenerateTraceInfo" 474 | Cell "GenerateTraceReport" 475 | Cell "GenerateTraceReportSl" 476 | Cell "GenerateTraceReportSf" 477 | Cell "GenerateTraceReportEml" 478 | Cell "PortableWordSizes" 479 | Cell "GenerateWebview" 480 | Cell "GenerateCodeMetricsReport" 481 | Cell "GenerateCodeReplacementReport" 482 | Cell "GenerateMissedCodeReplacementReport" 483 | Cell "GenerateErtSFunction" 484 | Cell "CreateSILPILBlock" 485 | Cell "CodeExecutionProfiling" 486 | Cell "CodeProfilingSaveOptions" 487 | Cell "CodeProfilingInstrumentation" 488 | PropName "DisabledProps" 489 | } 490 | SystemTargetFile "grt.tlc" 491 | TLCOptions "" 492 | GenCodeOnly off 493 | MakeCommand "make_rtw" 494 | GenerateMakefile on 495 | PackageGeneratedCodeAndArtifacts off 496 | PackageName "" 497 | TemplateMakefile "grt_default_tmf" 498 | PostCodeGenCommand "" 499 | Description "" 500 | GenerateReport off 501 | SaveLog off 502 | RTWVerbose on 503 | RetainRTWFile off 504 | ProfileTLC off 505 | TLCDebug off 506 | TLCCoverage off 507 | TLCAssert off 508 | RTWUseLocalCustomCode off 509 | RTWUseSimCustomCode off 510 | CustomSourceCode "" 511 | CustomHeaderCode "" 512 | CustomInclude "" 513 | CustomSource "" 514 | CustomLibrary "" 515 | CustomInitializer "" 516 | CustomTerminator "" 517 | Toolchain "Automatically locate an installed toolchain" 518 | BuildConfiguration "Faster Builds" 519 | IncludeHyperlinkInReport off 520 | LaunchReport off 521 | PortableWordSizes off 522 | CreateSILPILBlock "None" 523 | CodeExecutionProfiling off 524 | CodeExecutionProfileVariable "executionProfile" 525 | CodeProfilingSaveOptions "SummaryOnly" 526 | CodeProfilingInstrumentation off 527 | SILDebugging off 528 | TargetLang "C" 529 | IncludeBusHierarchyInRTWFileBlockHierarchyMap off 530 | GenerateTraceInfo off 531 | GenerateTraceReport off 532 | GenerateTraceReportSl off 533 | GenerateTraceReportSf off 534 | GenerateTraceReportEml off 535 | GenerateWebview off 536 | GenerateCodeMetricsReport off 537 | GenerateCodeReplacementReport off 538 | GenerateMissedCodeReplacementReport off 539 | RTWCompilerOptimization "off" 540 | RTWCustomCompilerOptimizations "" 541 | CheckMdlBeforeBuild "Off" 542 | SharedConstantsCachingThreshold 1024 543 | Array { 544 | Type "Handle" 545 | Dimension 2 546 | Simulink.CodeAppCC { 547 | $ObjectID 16 548 | Version "1.15.0" 549 | Array { 550 | Type "Cell" 551 | Dimension 24 552 | Cell "IgnoreCustomStorageClasses" 553 | Cell "ParameterTuningSideEffectCode" 554 | Cell "IgnoreTestpoints" 555 | Cell "InsertBlockDesc" 556 | Cell "InsertPolySpaceComments" 557 | Cell "SFDataObjDesc" 558 | Cell "MATLABFcnDesc" 559 | Cell "SimulinkDataObjDesc" 560 | Cell "DefineNamingRule" 561 | Cell "SignalNamingRule" 562 | Cell "ParamNamingRule" 563 | Cell "InternalIdentifier" 564 | Cell "InlinedPrmAccess" 565 | Cell "CustomSymbolStr" 566 | Cell "CustomSymbolStrGlobalVar" 567 | Cell "CustomSymbolStrType" 568 | Cell "CustomSymbolStrField" 569 | Cell "CustomSymbolStrFcn" 570 | Cell "CustomSymbolStrFcnArg" 571 | Cell "CustomSymbolStrBlkIO" 572 | Cell "CustomSymbolStrTmpVar" 573 | Cell "CustomSymbolStrMacro" 574 | Cell "CustomSymbolStrUtil" 575 | Cell "ReqsInCode" 576 | PropName "DisabledProps" 577 | } 578 | ForceParamTrailComments off 579 | GenerateComments on 580 | CommentStyle "Auto" 581 | IgnoreCustomStorageClasses on 582 | IgnoreTestpoints off 583 | IncHierarchyInIds off 584 | MaxIdLength 31 585 | PreserveName off 586 | PreserveNameWithParent off 587 | ShowEliminatedStatement off 588 | OperatorAnnotations off 589 | IncAutoGenComments off 590 | SimulinkDataObjDesc off 591 | SFDataObjDesc off 592 | MATLABFcnDesc off 593 | IncDataTypeInIds off 594 | MangleLength 1 595 | CustomSymbolStrGlobalVar "$R$N$M" 596 | CustomSymbolStrType "$N$R$M_T" 597 | CustomSymbolStrField "$N$M" 598 | CustomSymbolStrFcn "$R$N$M$F" 599 | CustomSymbolStrFcnArg "rt$I$N$M" 600 | CustomSymbolStrBlkIO "rtb_$N$M" 601 | CustomSymbolStrTmpVar "$N$M" 602 | CustomSymbolStrMacro "$R$N$M" 603 | CustomSymbolStrUtil "$N$C" 604 | DefineNamingRule "None" 605 | ParamNamingRule "None" 606 | SignalNamingRule "None" 607 | InsertBlockDesc off 608 | InsertPolySpaceComments off 609 | SimulinkBlockComments on 610 | MATLABSourceComments off 611 | EnableCustomComments off 612 | InternalIdentifier "Shortened" 613 | InlinedPrmAccess "Literals" 614 | ReqsInCode off 615 | UseSimReservedNames off 616 | } 617 | Simulink.GRTTargetCC { 618 | $BackupClass "Simulink.TargetCC" 619 | $ObjectID 17 620 | Version "1.15.0" 621 | Array { 622 | Type "Cell" 623 | Dimension 13 624 | Cell "GeneratePreprocessorConditionals" 625 | Cell "IncludeMdlTerminateFcn" 626 | Cell "SuppressErrorStatus" 627 | Cell "ERTCustomFileBanners" 628 | Cell "GenerateSampleERTMain" 629 | Cell "GenerateTestInterfaces" 630 | Cell "ModelStepFunctionPrototypeControlCompliant" 631 | Cell "GenerateAllocFcn" 632 | Cell "PurelyIntegerCode" 633 | Cell "SupportComplex" 634 | Cell "SupportAbsoluteTime" 635 | Cell "SupportContinuousTime" 636 | Cell "SupportNonInlinedSFcns" 637 | PropName "DisabledProps" 638 | } 639 | TargetFcnLib "ansi_tfl_table_tmw.mat" 640 | TargetLibSuffix "" 641 | TargetPreCompLibLocation "" 642 | GenFloatMathFcnCalls "NOT IN USE" 643 | TargetLangStandard "C89/C90 (ANSI)" 644 | CodeReplacementLibrary "None" 645 | UtilityFuncGeneration "Auto" 646 | ERTMultiwordTypeDef "System defined" 647 | ERTMultiwordLength 256 648 | MultiwordLength 2048 649 | GenerateFullHeader on 650 | InferredTypesCompatibility off 651 | GenerateSampleERTMain off 652 | GenerateTestInterfaces off 653 | ModelReferenceCompliant on 654 | ParMdlRefBuildCompliant on 655 | CompOptLevelCompliant on 656 | ConcurrentExecutionCompliant on 657 | IncludeMdlTerminateFcn on 658 | GeneratePreprocessorConditionals "Disable all" 659 | CombineOutputUpdateFcns on 660 | CombineSignalStateStructs off 661 | SuppressErrorStatus off 662 | ERTFirstTimeCompliant off 663 | IncludeFileDelimiter "Auto" 664 | ERTCustomFileBanners off 665 | SupportAbsoluteTime on 666 | LogVarNameModifier "rt_" 667 | MatFileLogging on 668 | MultiInstanceERTCode off 669 | CodeInterfacePackaging "Nonreusable function" 670 | SupportNonFinite on 671 | SupportComplex on 672 | PurelyIntegerCode off 673 | SupportContinuousTime on 674 | SupportNonInlinedSFcns on 675 | SupportVariableSizeSignals off 676 | ParenthesesLevel "Nominal" 677 | CastingMode "Nominal" 678 | MATLABClassNameForMDSCustomization "Simulink.SoftwareTarget.GRTCustomization" 679 | ModelStepFunctionPrototypeControlCompliant off 680 | CPPClassGenCompliant on 681 | AutosarCompliant off 682 | GRTInterface off 683 | GenerateAllocFcn off 684 | GenerateSharedConstants on 685 | UseMalloc off 686 | ExtMode off 687 | ExtModeStaticAlloc off 688 | ExtModeTesting off 689 | ExtModeStaticAllocSize 1000000 690 | ExtModeTransport 0 691 | ExtModeMexFile "ext_comm" 692 | ExtModeIntrfLevel "Level1" 693 | RTWCAPISignals off 694 | RTWCAPIParams off 695 | RTWCAPIStates off 696 | RTWCAPIRootIO off 697 | GenerateASAP2 off 698 | MultiInstanceErrorCode "Error" 699 | } 700 | PropName "Components" 701 | } 702 | } 703 | PropName "Components" 704 | } 705 | Name "Configuration" 706 | CurrentDlgPage "Solver" 707 | ConfigPrmDlgPosition [ 251, 94, 1349, 779 ] 708 | } 709 | PropName "ConfigurationSets" 710 | } 711 | Simulink.ConfigSet { 712 | $PropName "ActiveConfigurationSet" 713 | $ObjectID 7 714 | } 715 | Object { 716 | $PropName "DataTransfer" 717 | $ObjectID 18 718 | $ClassName "Simulink.GlobalDataTransfer" 719 | DefaultTransitionBetweenSyncTasks "Ensure deterministic transfer (maximum delay)" 720 | DefaultTransitionBetweenAsyncTasks "Ensure data integrity only" 721 | DefaultTransitionBetweenContTasks "Ensure deterministic transfer (minimum delay)" 722 | DefaultExtrapolationMethodBetweenContTasks "None" 723 | AutoInsertRateTranBlk [0] 724 | } 725 | ExplicitPartitioning off 726 | BlockDefaults { 727 | ForegroundColor "black" 728 | BackgroundColor "white" 729 | DropShadow off 730 | NamePlacement "normal" 731 | FontName "Helvetica" 732 | FontSize 10 733 | FontWeight "normal" 734 | FontAngle "normal" 735 | ShowName on 736 | BlockRotation 0 737 | BlockMirror off 738 | } 739 | AnnotationDefaults { 740 | HorizontalAlignment "center" 741 | VerticalAlignment "middle" 742 | ForegroundColor "black" 743 | BackgroundColor "white" 744 | DropShadow off 745 | FontName "Helvetica" 746 | FontSize 10 747 | FontWeight "normal" 748 | FontAngle "normal" 749 | UseDisplayTextAsClickCallback off 750 | } 751 | LineDefaults { 752 | FontName "Helvetica" 753 | FontSize 9 754 | FontWeight "normal" 755 | FontAngle "normal" 756 | } 757 | MaskDefaults { 758 | SelfModifiable "off" 759 | IconFrame "on" 760 | IconOpaque "on" 761 | RunInitForIconRedraw "off" 762 | IconRotate "none" 763 | PortRotate "default" 764 | IconUnits "autoscale" 765 | } 766 | MaskParameterDefaults { 767 | Evaluate "on" 768 | Tunable "on" 769 | NeverSave "off" 770 | Internal "off" 771 | ReadOnly "off" 772 | Enabled "on" 773 | Visible "on" 774 | ToolTip "on" 775 | } 776 | BlockParameterDefaults { 777 | Block { 778 | BlockType BusCreator 779 | Inputs "4" 780 | DisplayOption "none" 781 | OutDataTypeStr "Inherit: auto" 782 | NonVirtualBus off 783 | InheritFromInputs on 784 | } 785 | Block { 786 | BlockType BusSelector 787 | OutputSignals "signal1,signal2,signal3" 788 | OutputAsBus off 789 | } 790 | Block { 791 | BlockType Constant 792 | Value "1" 793 | VectorParams1D on 794 | SamplingMode "Sample based" 795 | OutMin "[]" 796 | OutMax "[]" 797 | OutDataTypeStr "Inherit: Inherit from 'Constant value'" 798 | LockScale off 799 | SampleTime "inf" 800 | FramePeriod "inf" 801 | PreserveConstantTs off 802 | } 803 | Block { 804 | BlockType Demux 805 | Outputs "4" 806 | DisplayOption "none" 807 | BusSelectionMode off 808 | } 809 | Block { 810 | BlockType From 811 | GotoTag "A" 812 | IconDisplay "Tag" 813 | TagVisibility "local" 814 | } 815 | Block { 816 | BlockType Goto 817 | GotoTag "A" 818 | IconDisplay "Tag" 819 | TagVisibility "local" 820 | } 821 | Block { 822 | BlockType Inport 823 | Port "1" 824 | OutputFunctionCall off 825 | OutMin "[]" 826 | OutMax "[]" 827 | OutDataTypeStr "Inherit: auto" 828 | LockScale off 829 | BusOutputAsStruct off 830 | PortDimensions "-1" 831 | VarSizeSig "Inherit" 832 | SampleTime "-1" 833 | SignalType "auto" 834 | SamplingMode "auto" 835 | LatchByDelayingOutsideSignal off 836 | LatchInputForFeedbackSignals off 837 | Interpolate on 838 | } 839 | Block { 840 | BlockType Logic 841 | Operator "AND" 842 | Inputs "2" 843 | IconShape "rectangular" 844 | AllPortsSameDT on 845 | OutDataTypeStr "Inherit: Logical (see Configuration Parameters: Optimization)" 846 | SampleTime "-1" 847 | } 848 | Block { 849 | BlockType ModelReference 850 | ModelNameDialog "" 851 | SimulationMode "Accelerator" 852 | CodeInterface "Model reference" 853 | Variant off 854 | GeneratePreprocessorConditionals off 855 | ContentPreviewEnabled off 856 | CopyOfModelProtected off 857 | DefaultDataLogging off 858 | } 859 | Block { 860 | BlockType Mux 861 | Inputs "4" 862 | DisplayOption "none" 863 | UseBusObject off 864 | BusObject "BusObject" 865 | NonVirtualBus off 866 | } 867 | Block { 868 | BlockType Outport 869 | Port "1" 870 | OutMin "[]" 871 | OutMax "[]" 872 | OutDataTypeStr "Inherit: auto" 873 | LockScale off 874 | BusOutputAsStruct off 875 | PortDimensions "-1" 876 | VarSizeSig "Inherit" 877 | SampleTime "-1" 878 | SignalType "auto" 879 | SamplingMode "auto" 880 | SourceOfInitialOutputValue "Dialog" 881 | OutputWhenDisabled "held" 882 | InitialOutput "[]" 883 | } 884 | Block { 885 | BlockType SignalConversion 886 | ConversionOutput "Signal copy" 887 | OutDataTypeStr "Inherit: auto" 888 | OverrideOpt off 889 | } 890 | Block { 891 | BlockType Stop 892 | } 893 | Block { 894 | BlockType SubSystem 895 | ShowPortLabels "FromPortIcon" 896 | Permissions "ReadWrite" 897 | PermitHierarchicalResolution "All" 898 | TreatAsAtomicUnit off 899 | MinAlgLoopOccurrences off 900 | PropExecContextOutsideSubsystem off 901 | CheckFcnCallInpInsideContextMsg off 902 | SystemSampleTime "-1" 903 | RTWSystemCode "Auto" 904 | RTWFcnNameOpts "Auto" 905 | RTWFileNameOpts "Auto" 906 | FunctionInterfaceSpec "void_void" 907 | FunctionWithSeparateData off 908 | RTWMemSecFuncInitTerm "Inherit from model" 909 | RTWMemSecFuncExecute "Inherit from model" 910 | RTWMemSecDataConstants "Inherit from model" 911 | RTWMemSecDataInternal "Inherit from model" 912 | RTWMemSecDataParameters "Inherit from model" 913 | SimViewingDevice off 914 | DataTypeOverride "UseLocalSettings" 915 | DataTypeOverrideAppliesTo "AllNumericTypes" 916 | MinMaxOverflowLogging "UseLocalSettings" 917 | Opaque off 918 | MaskHideContents off 919 | SFBlockType "NONE" 920 | Variant off 921 | GeneratePreprocessorConditionals off 922 | ContentPreviewEnabled off 923 | IsWebBlock off 924 | } 925 | Block { 926 | BlockType Sum 927 | IconShape "rectangular" 928 | Inputs "++" 929 | CollapseMode "All dimensions" 930 | CollapseDim "1" 931 | InputSameDT on 932 | AccumDataTypeStr "Inherit: Inherit via internal rule" 933 | OutMin "[]" 934 | OutMax "[]" 935 | OutDataTypeStr "Inherit: Same as first input" 936 | LockScale off 937 | RndMeth "Floor" 938 | SaturateOnIntegerOverflow on 939 | SampleTime "-1" 940 | } 941 | Block { 942 | BlockType Terminator 943 | } 944 | Block { 945 | BlockType ToWorkspace 946 | VariableName "simulink_output" 947 | MaxDataPoints "1000" 948 | Decimation "1" 949 | SaveFormat "Array" 950 | Save2DSignal "Inherit from input (this choice will be removed - see release notes)" 951 | FixptAsFi off 952 | NumInputs "1" 953 | SampleTime "0" 954 | } 955 | Block { 956 | BlockType WhileIterator 957 | MaxIters "5" 958 | WhileBlockType "while" 959 | ResetStates "held" 960 | ShowIterationPort off 961 | OutputDataType "int32" 962 | } 963 | } 964 | System { 965 | Name "AGTF30SysLin" 966 | Location [350, 211, 1621, 990] 967 | Open on 968 | ModelBrowserVisibility off 969 | ModelBrowserWidth 200 970 | ScreenColor "white" 971 | PaperOrientation "landscape" 972 | PaperPositionMode "auto" 973 | PaperType "usletter" 974 | PaperUnits "inches" 975 | TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] 976 | TiledPageScale 1 977 | ShowPageBoundaries off 978 | ZoomFactor "81" 979 | ReportName "simulink-default.rpt" 980 | SIDHighWatermark "134" 981 | Block { 982 | BlockType BusCreator 983 | Name "Bus\nCreator" 984 | SID "34" 985 | Ports [3, 1] 986 | Position [605, 146, 610, 204] 987 | ZOrder 1883 988 | ShowName off 989 | Inputs "3" 990 | DisplayOption "bar" 991 | } 992 | Block { 993 | BlockType BusCreator 994 | Name "Bus\nCreator2" 995 | SID "60" 996 | Ports [3, 1] 997 | Position [1055, 223, 1060, 547] 998 | ZOrder 1912 999 | ShowName off 1000 | Inputs "3" 1001 | DisplayOption "bar" 1002 | Port { 1003 | PortNumber 1 1004 | Name "LinOut" 1005 | RTWStorageClass "Auto" 1006 | DataLoggingNameMode "SignalName" 1007 | } 1008 | } 1009 | Block { 1010 | BlockType Constant 1011 | Name "Constant4" 1012 | SID "48" 1013 | Position [175, 412, 225, 428] 1014 | ZOrder 1901 1015 | ShowName off 1016 | } 1017 | Block { 1018 | BlockType Constant 1019 | Name "Constant5" 1020 | SID "49" 1021 | Position [175, 442, 225, 458] 1022 | ZOrder 1902 1023 | ShowName off 1024 | Value "0" 1025 | } 1026 | Block { 1027 | BlockType Demux 1028 | Name "Demux" 1029 | SID "42" 1030 | Ports [1, 2] 1031 | Position [605, 385, 610, 545] 1032 | ZOrder 1895 1033 | ShowName off 1034 | Outputs "2" 1035 | DisplayOption "bar" 1036 | } 1037 | Block { 1038 | BlockType SubSystem 1039 | Name "Eng_Y_Select" 1040 | SID "54" 1041 | Ports [1, 1] 1042 | Position [80, 377, 165, 403] 1043 | ZOrder 1911 1044 | RequestExecContextInheritance off 1045 | System { 1046 | Name "Eng_Y_Select" 1047 | Location [350, 211, 1621, 990] 1048 | Open off 1049 | ModelBrowserVisibility off 1050 | ModelBrowserWidth 200 1051 | ScreenColor "white" 1052 | PaperOrientation "landscape" 1053 | PaperPositionMode "auto" 1054 | PaperType "usletter" 1055 | PaperUnits "inches" 1056 | TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] 1057 | TiledPageScale 1 1058 | ShowPageBoundaries off 1059 | ZoomFactor "305" 1060 | Block { 1061 | BlockType Inport 1062 | Name "Eng" 1063 | SID "55" 1064 | Position [5, 128, 35, 142] 1065 | ZOrder 1910 1066 | IconDisplay "Port number" 1067 | } 1068 | Block { 1069 | BlockType BusSelector 1070 | Name "Bus\nSelector" 1071 | SID "56" 1072 | Ports [1, 8] 1073 | Position [80, 77, 85, 188] 1074 | ZOrder 1908 1075 | ShowName off 1076 | OutputSignals "Perf.Fnet,SM.SMFan,S36.Ps,S45.Tt,Shaft.N_Fan,Shaft.N_HPC,Shaft.Ndot_LPC,Shaft.Ndot_HPC" 1077 | Port { 1078 | PortNumber 1 1079 | Name "" 1080 | RTWStorageClass "Auto" 1081 | DataLoggingNameMode "SignalName" 1082 | } 1083 | Port { 1084 | PortNumber 2 1085 | Name "" 1086 | RTWStorageClass "Auto" 1087 | DataLoggingNameMode "SignalName" 1088 | } 1089 | Port { 1090 | PortNumber 3 1091 | Name "" 1092 | RTWStorageClass "Auto" 1093 | DataLoggingNameMode "SignalName" 1094 | } 1095 | Port { 1096 | PortNumber 4 1097 | Name "" 1098 | RTWStorageClass "Auto" 1099 | DataLoggingNameMode "SignalName" 1100 | } 1101 | Port { 1102 | PortNumber 5 1103 | Name "" 1104 | RTWStorageClass "Auto" 1105 | DataLoggingNameMode "SignalName" 1106 | } 1107 | Port { 1108 | PortNumber 6 1109 | Name "" 1110 | RTWStorageClass "Auto" 1111 | DataLoggingNameMode "SignalName" 1112 | } 1113 | Port { 1114 | PortNumber 7 1115 | Name "" 1116 | RTWStorageClass "Auto" 1117 | DataLoggingNameMode "SignalName" 1118 | } 1119 | Port { 1120 | PortNumber 8 1121 | Name "" 1122 | RTWStorageClass "Auto" 1123 | DataLoggingNameMode "SignalName" 1124 | } 1125 | } 1126 | Block { 1127 | BlockType Mux 1128 | Name "Mux1" 1129 | SID "57" 1130 | Ports [8, 1] 1131 | Position [170, 70, 175, 195] 1132 | ZOrder 1909 1133 | ShowName off 1134 | Inputs "8" 1135 | DisplayOption "bar" 1136 | } 1137 | Block { 1138 | BlockType Outport 1139 | Name "Y" 1140 | SID "58" 1141 | Position [195, 128, 225, 142] 1142 | ZOrder 1911 1143 | IconDisplay "Port number" 1144 | } 1145 | Line { 1146 | Name "" 1147 | ZOrder 1 1148 | Labels [0, 0] 1149 | SrcBlock "Bus\nSelector" 1150 | SrcPort 6 1151 | DstBlock "Mux1" 1152 | DstPort 6 1153 | } 1154 | Line { 1155 | Name "" 1156 | ZOrder 2 1157 | Labels [0, 0] 1158 | SrcBlock "Bus\nSelector" 1159 | SrcPort 5 1160 | DstBlock "Mux1" 1161 | DstPort 5 1162 | } 1163 | Line { 1164 | Name "" 1165 | ZOrder 3 1166 | Labels [0, 0] 1167 | SrcBlock "Bus\nSelector" 1168 | SrcPort 4 1169 | DstBlock "Mux1" 1170 | DstPort 4 1171 | } 1172 | Line { 1173 | Name "" 1174 | ZOrder 4 1175 | Labels [0, 0] 1176 | SrcBlock "Bus\nSelector" 1177 | SrcPort 3 1178 | DstBlock "Mux1" 1179 | DstPort 3 1180 | } 1181 | Line { 1182 | ZOrder 5 1183 | SrcBlock "Eng" 1184 | SrcPort 1 1185 | DstBlock "Bus\nSelector" 1186 | DstPort 1 1187 | } 1188 | Line { 1189 | Name "" 1190 | ZOrder 6 1191 | Labels [0, 0] 1192 | SrcBlock "Bus\nSelector" 1193 | SrcPort 1 1194 | DstBlock "Mux1" 1195 | DstPort 1 1196 | } 1197 | Line { 1198 | ZOrder 7 1199 | SrcBlock "Mux1" 1200 | SrcPort 1 1201 | DstBlock "Y" 1202 | DstPort 1 1203 | } 1204 | Line { 1205 | Name "" 1206 | ZOrder 8 1207 | Labels [0, 0] 1208 | SrcBlock "Bus\nSelector" 1209 | SrcPort 2 1210 | DstBlock "Mux1" 1211 | DstPort 2 1212 | } 1213 | Line { 1214 | Name "" 1215 | ZOrder 9 1216 | Labels [0, 0] 1217 | SrcBlock "Bus\nSelector" 1218 | SrcPort 7 1219 | DstBlock "Mux1" 1220 | DstPort 7 1221 | } 1222 | Line { 1223 | Name "" 1224 | ZOrder 10 1225 | Labels [0, 0] 1226 | SrcBlock "Bus\nSelector" 1227 | SrcPort 8 1228 | DstBlock "Mux1" 1229 | DstPort 8 1230 | } 1231 | Annotation { 1232 | SID "59" 1233 | Name "Number of elements must match \nnumber of elements linearization\n block is expecting" 1234 | Position [56, 20, 214, 61] 1235 | InternalMargins [0, 0, 0, 0] 1236 | FixedHeight off 1237 | FixedWidth off 1238 | HorizontalAlignment "left" 1239 | VerticalAlignment "top" 1240 | ZOrder -1 1241 | } 1242 | } 1243 | } 1244 | Block { 1245 | BlockType SubSystem 1246 | Name "EngineDW" 1247 | SID "1" 1248 | Ports [4, 3] 1249 | Position [670, 221, 840, 549] 1250 | ZOrder 838 1251 | RequestExecContextInheritance off 1252 | Port { 1253 | PortNumber 1 1254 | Name "Solver" 1255 | RTWStorageClass "Auto" 1256 | DataLoggingNameMode "SignalName" 1257 | } 1258 | Port { 1259 | PortNumber 2 1260 | Name "EngBus" 1261 | RTWStorageClass "Auto" 1262 | DataLoggingNameMode "SignalName" 1263 | } 1264 | System { 1265 | Name "EngineDW" 1266 | Location [350, 211, 1621, 990] 1267 | Open off 1268 | ModelBrowserVisibility off 1269 | ModelBrowserWidth 200 1270 | ScreenColor "white" 1271 | PaperOrientation "landscape" 1272 | PaperPositionMode "auto" 1273 | PaperType "usletter" 1274 | PaperUnits "inches" 1275 | TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] 1276 | TiledPageScale 1 1277 | ShowPageBoundaries off 1278 | ZoomFactor "89" 1279 | Block { 1280 | BlockType Inport 1281 | Name "EngSysInp" 1282 | SID "2" 1283 | Position [765, 53, 795, 67] 1284 | ZOrder 837 1285 | IconDisplay "Port number" 1286 | } 1287 | Block { 1288 | BlockType Inport 1289 | Name "Effectors" 1290 | SID "3" 1291 | Position [765, 113, 795, 127] 1292 | ZOrder 836 1293 | Port "2" 1294 | IconDisplay "Port number" 1295 | } 1296 | Block { 1297 | BlockType Inport 1298 | Name "N2" 1299 | SID "4" 1300 | Position [965, 308, 995, 322] 1301 | ZOrder 846 1302 | Port "3" 1303 | IconDisplay "Port number" 1304 | } 1305 | Block { 1306 | BlockType Inport 1307 | Name "N3" 1308 | SID "5" 1309 | Position [965, 343, 995, 357] 1310 | ZOrder 894 1311 | Port "4" 1312 | IconDisplay "Port number" 1313 | } 1314 | Block { 1315 | BlockType SubSystem 1316 | Name "All Dep" 1317 | SID "113" 1318 | Ports [3, 1] 1319 | Position [1370, 325, 1445, 385] 1320 | ZOrder 1916 1321 | RequestExecContextInheritance off 1322 | Port { 1323 | PortNumber 1 1324 | Name "Dependents" 1325 | RTWStorageClass "Auto" 1326 | DataLoggingNameMode "SignalName" 1327 | } 1328 | System { 1329 | Name "All Dep" 1330 | Location [350, 211, 1621, 990] 1331 | Open off 1332 | ModelBrowserVisibility off 1333 | ModelBrowserWidth 200 1334 | ScreenColor "white" 1335 | PaperOrientation "landscape" 1336 | PaperPositionMode "auto" 1337 | PaperType "usletter" 1338 | PaperUnits "inches" 1339 | TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] 1340 | TiledPageScale 1 1341 | ShowPageBoundaries off 1342 | ZoomFactor "176" 1343 | Block { 1344 | BlockType Inport 1345 | Name "EngDep" 1346 | SID "114" 1347 | Position [20, 78, 50, 92] 1348 | ZOrder 1916 1349 | IconDisplay "Port number" 1350 | } 1351 | Block { 1352 | BlockType Inport 1353 | Name "EngBus" 1354 | SID "115" 1355 | Position [90, 98, 120, 112] 1356 | ZOrder 1917 1357 | Port "2" 1358 | IconDisplay "Port number" 1359 | } 1360 | Block { 1361 | BlockType Inport 1362 | Name "InputBus" 1363 | SID "116" 1364 | Position [155, 118, 185, 132] 1365 | ZOrder 1918 1366 | Port "3" 1367 | IconDisplay "Port number" 1368 | } 1369 | Block { 1370 | BlockType Mux 1371 | Name "Mux" 1372 | SID "112" 1373 | Ports [3, 1] 1374 | Position [455, 66, 460, 164] 1375 | ZOrder 1915 1376 | ShowName off 1377 | Inputs "3" 1378 | DisplayOption "bar" 1379 | Port { 1380 | PortNumber 1 1381 | Name "Dependents" 1382 | RTWStorageClass "Auto" 1383 | DataLoggingNameMode "SignalName" 1384 | } 1385 | } 1386 | Block { 1387 | BlockType SubSystem 1388 | Name "VAFN Error Term" 1389 | SID "67" 1390 | Ports [2, 1] 1391 | Position [245, 177, 350, 213] 1392 | ZOrder 1087 1393 | RequestExecContextInheritance off 1394 | Port { 1395 | PortNumber 1 1396 | Name "VAFN_Er" 1397 | PropagatedSignals "VBV_Er" 1398 | RTWStorageClass "Auto" 1399 | DataLoggingNameMode "SignalName" 1400 | } 1401 | System { 1402 | Name "VAFN Error Term" 1403 | Location [1674, 261, 2945, 1040] 1404 | Open off 1405 | ModelBrowserVisibility off 1406 | ModelBrowserWidth 200 1407 | ScreenColor "white" 1408 | PaperOrientation "landscape" 1409 | PaperPositionMode "auto" 1410 | PaperType "usletter" 1411 | PaperUnits "inches" 1412 | TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] 1413 | TiledPageScale 1 1414 | ShowPageBoundaries off 1415 | ZoomFactor "125" 1416 | Block { 1417 | BlockType Inport 1418 | Name "EngBus" 1419 | SID "68" 1420 | Position [20, 298, 50, 312] 1421 | ZOrder 1087 1422 | IconDisplay "Port number" 1423 | } 1424 | Block { 1425 | BlockType Inport 1426 | Name "InputBus" 1427 | SID "69" 1428 | Position [70, 323, 100, 337] 1429 | ZOrder 1085 1430 | Port "2" 1431 | IconDisplay "Port number" 1432 | } 1433 | Block { 1434 | BlockType BusSelector 1435 | Name "Bus\nSelector" 1436 | SID "70" 1437 | Ports [1, 1] 1438 | Position [355, 292, 360, 318] 1439 | ZOrder 1073 1440 | ShowName off 1441 | OutputSignals "Data.FAN_Data.Nc" 1442 | Port { 1443 | PortNumber 1 1444 | Name "" 1445 | RTWStorageClass "Auto" 1446 | DataLoggingNameMode "SignalName" 1447 | } 1448 | } 1449 | Block { 1450 | BlockType BusSelector 1451 | Name "Bus\nSelector1" 1452 | SID "71" 1453 | Ports [1, 1] 1454 | Position [340, 319, 345, 341] 1455 | ZOrder 1081 1456 | ShowName off 1457 | OutputSignals "MN" 1458 | Port { 1459 | PortNumber 1 1460 | Name "" 1461 | RTWStorageClass "Auto" 1462 | DataLoggingNameMode "SignalName" 1463 | } 1464 | } 1465 | Block { 1466 | BlockType BusSelector 1467 | Name "Bus\nSelector2" 1468 | SID "72" 1469 | Ports [1, 1] 1470 | Position [340, 439, 345, 461] 1471 | ZOrder 1082 1472 | ShowName off 1473 | OutputSignals "VAFN" 1474 | Port { 1475 | PortNumber 1 1476 | Name "" 1477 | RTWStorageClass "Auto" 1478 | DataLoggingNameMode "SignalName" 1479 | } 1480 | } 1481 | Block { 1482 | BlockType Sum 1483 | Name "Sum" 1484 | SID "73" 1485 | Ports [2, 1] 1486 | Position [635, 335, 655, 355] 1487 | ZOrder 1083 1488 | ShowName off 1489 | IconShape "round" 1490 | Inputs "|+-" 1491 | InputSameDT off 1492 | OutDataTypeStr "Inherit: Inherit via internal rule" 1493 | SaturateOnIntegerOverflow off 1494 | Port { 1495 | PortNumber 1 1496 | Name "VAFN_Er" 1497 | RTWStorageClass "Auto" 1498 | DataLoggingNameMode "SignalName" 1499 | } 1500 | } 1501 | Block { 1502 | BlockType Constant 1503 | Name "Tstd1" 1504 | SID "74" 1505 | Position [215, 372, 310, 388] 1506 | ZOrder 1078 1507 | ShowName off 1508 | Value "MWS.In.VAFNIC" 1509 | } 1510 | Block { 1511 | BlockType Constant 1512 | Name "Tstd2" 1513 | SID "75" 1514 | Position [215, 347, 330, 363] 1515 | ZOrder 1079 1516 | ShowName off 1517 | Value "MWS.In.VAFNManEn" 1518 | } 1519 | Block { 1520 | BlockType Reference 1521 | Name "VAFN Set Point Calculation (Tbl)" 1522 | SID "76" 1523 | Ports [4, 1] 1524 | Position [400, 287, 560, 398] 1525 | ZOrder 1088 1526 | LibraryVersion "1.349" 1527 | SourceBlock "Lib_Cntrl_SetPoint_TMATS/Set Point Calculation (Tbl)" 1528 | SourceType "T-MATS: Set Point Calculation (Tbl)" 1529 | ContentPreviewEnabled off 1530 | ERVec_M "MWS.Cntrl.VAFN_Nc1" 1531 | DSVec_M "MWS.Cntrl.VAFN_MN" 1532 | SPArray_M "MWS.Cntrl.VAFN_sch" 1533 | } 1534 | Block { 1535 | BlockType Outport 1536 | Name "VAFNEr" 1537 | SID "77" 1538 | Position [740, 338, 770, 352] 1539 | ZOrder 1086 1540 | IconDisplay "Port number" 1541 | } 1542 | Line { 1543 | Name "" 1544 | ZOrder 1 1545 | Labels [0, 0] 1546 | SrcBlock "Bus\nSelector1" 1547 | SrcPort 1 1548 | DstBlock "VAFN Set Point Calculation (Tbl)" 1549 | DstPort 2 1550 | } 1551 | Line { 1552 | ZOrder 2 1553 | SrcBlock "EngBus" 1554 | SrcPort 1 1555 | DstBlock "Bus\nSelector" 1556 | DstPort 1 1557 | } 1558 | Line { 1559 | ZOrder 3 1560 | SrcBlock "VAFN Set Point Calculation (Tbl)" 1561 | SrcPort 1 1562 | DstBlock "Sum" 1563 | DstPort 1 1564 | } 1565 | Line { 1566 | ZOrder 4 1567 | SrcBlock "Tstd2" 1568 | SrcPort 1 1569 | DstBlock "VAFN Set Point Calculation (Tbl)" 1570 | DstPort 3 1571 | } 1572 | Line { 1573 | ZOrder 5 1574 | SrcBlock "Tstd1" 1575 | SrcPort 1 1576 | DstBlock "VAFN Set Point Calculation (Tbl)" 1577 | DstPort 4 1578 | } 1579 | Line { 1580 | Name "" 1581 | ZOrder 6 1582 | Labels [0, 0] 1583 | SrcBlock "Bus\nSelector" 1584 | SrcPort 1 1585 | DstBlock "VAFN Set Point Calculation (Tbl)" 1586 | DstPort 1 1587 | } 1588 | Line { 1589 | Name "VAFN_Er" 1590 | ZOrder 7 1591 | Labels [1, 1] 1592 | SrcBlock "Sum" 1593 | SrcPort 1 1594 | DstBlock "VAFNEr" 1595 | DstPort 1 1596 | } 1597 | Line { 1598 | ZOrder 8 1599 | SrcBlock "InputBus" 1600 | SrcPort 1 1601 | Points [100, 0] 1602 | Branch { 1603 | ZOrder 9 1604 | Points [0, 120] 1605 | DstBlock "Bus\nSelector2" 1606 | DstPort 1 1607 | } 1608 | Branch { 1609 | ZOrder 10 1610 | DstBlock "Bus\nSelector1" 1611 | DstPort 1 1612 | } 1613 | } 1614 | Line { 1615 | Name "" 1616 | ZOrder 11 1617 | Labels [0, 0] 1618 | SrcBlock "Bus\nSelector2" 1619 | SrcPort 1 1620 | Points [295, 0] 1621 | DstBlock "Sum" 1622 | DstPort 2 1623 | } 1624 | Annotation { 1625 | SID "119" 1626 | Name "\n\n

Compile engine internal and external dependents

" 1982 | Position [203, 17, 617, 42] 1983 | InternalMargins [0, 0, 0, 0] 1984 | FixedHeight off 1985 | FixedWidth off 1986 | HorizontalAlignment "left" 1987 | VerticalAlignment "top" 1988 | Interpreter "rich" 1989 | ZOrder -1 1990 | } 1991 | } 1992 | } 1993 | Block { 1994 | BlockType SubSystem 1995 | Name "All Ind" 1996 | SID "126" 1997 | Ports [1, 3] 1998 | Position [845, 230, 925, 290] 1999 | ZOrder 1917 2000 | RequestExecContextInheritance off 2001 | Port { 2002 | PortNumber 1 2003 | Name "VAFN" 2004 | RTWStorageClass "Auto" 2005 | DataLoggingNameMode "SignalName" 2006 | } 2007 | Port { 2008 | PortNumber 2 2009 | Name "VBV" 2010 | RTWStorageClass "Auto" 2011 | DataLoggingNameMode "SignalName" 2012 | } 2013 | System { 2014 | Name "All Ind" 2015 | Location [350, 211, 1621, 990] 2016 | Open off 2017 | ModelBrowserVisibility off 2018 | ModelBrowserWidth 200 2019 | ScreenColor "white" 2020 | PaperOrientation "landscape" 2021 | PaperPositionMode "auto" 2022 | PaperType "usletter" 2023 | PaperUnits "inches" 2024 | TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] 2025 | TiledPageScale 1 2026 | ShowPageBoundaries off 2027 | ZoomFactor "323" 2028 | Block { 2029 | BlockType Inport 2030 | Name "IndVec" 2031 | SID "131" 2032 | Position [20, 118, 50, 132] 2033 | ZOrder 1897 2034 | IconDisplay "Port number" 2035 | } 2036 | Block { 2037 | BlockType Constant 2038 | Name "Constant" 2039 | SID "134" 2040 | Position [190, 197, 220, 213] 2041 | ZOrder 1899 2042 | ShowName off 2043 | } 2044 | Block { 2045 | BlockType Demux 2046 | Name "Demux" 2047 | SID "89" 2048 | Ports [1, 3] 2049 | Position [140, 56, 145, 194] 2050 | ZOrder 1892 2051 | ShowName off 2052 | Outputs "[7 1 1]" 2053 | DisplayOption "bar" 2054 | Port { 2055 | PortNumber 2 2056 | Name "VAFN" 2057 | RTWStorageClass "Auto" 2058 | DataLoggingNameMode "SignalName" 2059 | } 2060 | Port { 2061 | PortNumber 3 2062 | Name "VBVp1" 2063 | RTWStorageClass "Auto" 2064 | DataLoggingNameMode "SignalName" 2065 | } 2066 | } 2067 | Block { 2068 | BlockType Sum 2069 | Name "Sum" 2070 | SID "133" 2071 | Ports [2, 1] 2072 | Position [235, 160, 255, 180] 2073 | ZOrder 1898 2074 | ShowName off 2075 | IconShape "round" 2076 | Inputs "|+-" 2077 | InputSameDT off 2078 | OutDataTypeStr "Inherit: Inherit via internal rule" 2079 | SaturateOnIntegerOverflow off 2080 | Port { 2081 | PortNumber 1 2082 | Name "VBV" 2083 | RTWStorageClass "Auto" 2084 | DataLoggingNameMode "SignalName" 2085 | } 2086 | } 2087 | Block { 2088 | BlockType Outport 2089 | Name "VAFNInd" 2090 | SID "128" 2091 | Position [290, 118, 320, 132] 2092 | ZOrder 1894 2093 | IconDisplay "Port number" 2094 | } 2095 | Block { 2096 | BlockType Outport 2097 | Name "VBVInd" 2098 | SID "129" 2099 | Position [355, 163, 385, 177] 2100 | ZOrder 1895 2101 | Port "2" 2102 | IconDisplay "Port number" 2103 | } 2104 | Block { 2105 | BlockType Outport 2106 | Name "EngInd" 2107 | SID "130" 2108 | Position [225, 73, 255, 87] 2109 | ZOrder 1896 2110 | Port "3" 2111 | IconDisplay "Port number" 2112 | } 2113 | Line { 2114 | ZOrder 120 2115 | SrcBlock "Demux" 2116 | SrcPort 1 2117 | DstBlock "EngInd" 2118 | DstPort 1 2119 | } 2120 | Line { 2121 | ZOrder 121 2122 | SrcBlock "IndVec" 2123 | SrcPort 1 2124 | DstBlock "Demux" 2125 | DstPort 1 2126 | } 2127 | Line { 2128 | Name "VBVp1" 2129 | ZOrder 125 2130 | Labels [0, 0] 2131 | SrcBlock "Demux" 2132 | SrcPort 3 2133 | DstBlock "Sum" 2134 | DstPort 1 2135 | } 2136 | Line { 2137 | Name "VAFN" 2138 | ZOrder 118 2139 | Labels [0, 0] 2140 | SrcBlock "Demux" 2141 | SrcPort 2 2142 | DstBlock "VAFNInd" 2143 | DstPort 1 2144 | } 2145 | Line { 2146 | Name "VBV" 2147 | ZOrder 126 2148 | Labels [1, 1] 2149 | SrcBlock "Sum" 2150 | SrcPort 1 2151 | DstBlock "VBVInd" 2152 | DstPort 1 2153 | } 2154 | Line { 2155 | ZOrder 127 2156 | SrcBlock "Constant" 2157 | SrcPort 1 2158 | Points [20, 0] 2159 | DstBlock "Sum" 2160 | DstPort 2 2161 | } 2162 | } 2163 | } 2164 | Block { 2165 | BlockType BusCreator 2166 | Name "Bus\nCreator" 2167 | SID "108" 2168 | Ports [6, 1] 2169 | Position [1005, 7, 1010, 203] 2170 | ZOrder 1911 2171 | ShowName off 2172 | Inputs "6" 2173 | DisplayOption "bar" 2174 | } 2175 | Block { 2176 | BlockType BusCreator 2177 | Name "Bus\nCreator1" 2178 | SID "6" 2179 | Ports [3, 1] 2180 | Position [1485, 23, 1490, 147] 2181 | ZOrder 900 2182 | ShowName off 2183 | Inputs "3" 2184 | DisplayOption "bar" 2185 | Port { 2186 | PortNumber 1 2187 | Name "Solver" 2188 | RTWStorageClass "Auto" 2189 | DataLoggingNameMode "SignalName" 2190 | } 2191 | } 2192 | Block { 2193 | BlockType BusSelector 2194 | Name "Bus\nSelector" 2195 | SID "7" 2196 | Ports [1, 3] 2197 | Position [900, 15, 905, 105] 2198 | ZOrder 897 2199 | ShowName off 2200 | OutputSignals "Altitude,dTamb,MN" 2201 | Port { 2202 | PortNumber 1 2203 | Name "" 2204 | RTWStorageClass "Auto" 2205 | DataLoggingNameMode "SignalName" 2206 | } 2207 | Port { 2208 | PortNumber 2 2209 | Name "" 2210 | RTWStorageClass "Auto" 2211 | DataLoggingNameMode "SignalName" 2212 | } 2213 | Port { 2214 | PortNumber 3 2215 | Name "" 2216 | RTWStorageClass "Auto" 2217 | DataLoggingNameMode "SignalName" 2218 | } 2219 | } 2220 | Block { 2221 | BlockType Constant 2222 | Name "Constant" 2223 | SID "9" 2224 | Position [1240, 572, 1270, 588] 2225 | ZOrder 814 2226 | BlockMirror on 2227 | ShowName off 2228 | } 2229 | Block { 2230 | BlockType ModelReference 2231 | Name "Engine Model" 2232 | SID "11" 2233 | Ports [3, 3] 2234 | Position [1080, 197, 1220, 363] 2235 | ZOrder 810 2236 | ModelNameDialog "AGTF30_eng.mdl" 2237 | SimulationMode "Normal" 2238 | ModelReferenceVersion "1.306" 2239 | List { 2240 | ListType InputPortNames 2241 | port0 "Sys_In" 2242 | port1 "Ind_vec" 2243 | port2 "N_vec" 2244 | } 2245 | List { 2246 | ListType OutputPortNames 2247 | port0 "Eng_Out" 2248 | port1 "Ndot_vec" 2249 | port2 "Dep_vec" 2250 | } 2251 | List { 2252 | ListType OutputPortBusObjects 2253 | port0 "Eng_Bus" 2254 | port1 "" 2255 | port2 "" 2256 | } 2257 | List { 2258 | ListType OutputPortOutputBusAsStructs 2259 | port0 "off" 2260 | port1 "off" 2261 | port2 "off" 2262 | } 2263 | List { 2264 | ListType InputPortLatchByCopyingInsideSignal 2265 | port0 "off" 2266 | port1 "off" 2267 | port2 "off" 2268 | } 2269 | CopyOfModelName "AGTF30_eng.mdl" 2270 | DefaultDataLogging on 2271 | List { 2272 | ListType InputPortLatchByDelayingOutsideSignal 2273 | port0 "off" 2274 | port1 "off" 2275 | port2 "off" 2276 | } 2277 | Port { 2278 | PortNumber 1 2279 | Name "EngBus" 2280 | RTWStorageClass "Auto" 2281 | DataLoggingNameMode "SignalName" 2282 | } 2283 | } 2284 | Block { 2285 | BlockType From 2286 | Name "From" 2287 | SID "12" 2288 | Position [1305, 38, 1365, 52] 2289 | ZOrder 901 2290 | ShowName off 2291 | GotoTag "Iterations" 2292 | Port { 2293 | PortNumber 1 2294 | Name "Iterations" 2295 | RTWStorageClass "Auto" 2296 | DataLoggingNameMode "SignalName" 2297 | } 2298 | } 2299 | Block { 2300 | BlockType Goto 2301 | Name "From1" 2302 | SID "13" 2303 | Position [1270, 503, 1330, 517] 2304 | ZOrder 907 2305 | ShowName off 2306 | GotoTag "Iterations" 2307 | } 2308 | Block { 2309 | BlockType Goto 2310 | Name "From12" 2311 | SID "104" 2312 | Position [1305, 193, 1365, 207] 2313 | ZOrder 1907 2314 | ShowName off 2315 | GotoTag "EngBus" 2316 | } 2317 | Block { 2318 | BlockType From 2319 | Name "From13" 2320 | SID "106" 2321 | Position [1295, 348, 1355, 362] 2322 | ZOrder 1909 2323 | ShowName off 2324 | GotoTag "EngBus" 2325 | } 2326 | Block { 2327 | BlockType Goto 2328 | Name "From14" 2329 | SID "109" 2330 | Position [1070, 98, 1130, 112] 2331 | ZOrder 1912 2332 | ShowName off 2333 | GotoTag "InpBus" 2334 | } 2335 | Block { 2336 | BlockType From 2337 | Name "From15" 2338 | SID "111" 2339 | Position [1295, 368, 1355, 382] 2340 | ZOrder 1914 2341 | ShowName off 2342 | GotoTag "InpBus" 2343 | } 2344 | Block { 2345 | BlockType Goto 2346 | Name "From2" 2347 | SID "14" 2348 | Position [1500, 533, 1560, 547] 2349 | ZOrder 909 2350 | ShowName off 2351 | GotoTag "Dep" 2352 | } 2353 | Block { 2354 | BlockType Goto 2355 | Name "From3" 2356 | SID "15" 2357 | Position [845, 548, 905, 562] 2358 | ZOrder 910 2359 | ShowName off 2360 | GotoTag "Indep" 2361 | } 2362 | Block { 2363 | BlockType From 2364 | Name "From4" 2365 | SID "16" 2366 | Position [1305, 78, 1365, 92] 2367 | ZOrder 913 2368 | ShowName off 2369 | GotoTag "Dep" 2370 | } 2371 | Block { 2372 | BlockType From 2373 | Name "From5" 2374 | SID "17" 2375 | Position [1305, 118, 1365, 132] 2376 | ZOrder 914 2377 | ShowName off 2378 | GotoTag "Indep" 2379 | } 2380 | Block { 2381 | BlockType Reference 2382 | Name "Iterative NR Solver w JacobianCalc" 2383 | SID "18" 2384 | Ports [3, 3] 2385 | Position [1080, 549, 1220, 611] 2386 | ZOrder 835 2387 | BlockMirror on 2388 | LibraryVersion "1.381" 2389 | SourceBlock "Lib_Solve_IterNRSolverJC_TMATS/Iterative NR Solver w JacobianCalc" 2390 | SourceType "T-MATS: Iterative NR Solver w Jacobian Calc Library Block" 2391 | ContentPreviewEnabled off 2392 | SJac_Per_M "[MWS.In.JPerDyn MWS.In.JPerSS(:,10:11)] " 2393 | SNR_IC_M "[MWS.In.ICcom MWS.In.ICss(4:5)]" 2394 | SNR_DX_M "MWS.In.dX" 2395 | SNR_Mx_M "100000" 2396 | SNR_Mn_M "0.0001" 2397 | SJacobianAttempts_M "MWS.In.NRASS" 2398 | Cond_Limits_M "MWS.In.Lim" 2399 | Port { 2400 | PortNumber 2 2401 | Name "Independents" 2402 | RTWStorageClass "Auto" 2403 | DataLoggingNameMode "SignalName" 2404 | } 2405 | } 2406 | Block { 2407 | BlockType Mux 2408 | Name "Mux2" 2409 | SID "20" 2410 | Ports [2, 1] 2411 | Position [1025, 298, 1030, 367] 2412 | ZOrder 893 2413 | ShowName off 2414 | Inputs "2" 2415 | DisplayOption "bar" 2416 | } 2417 | Block { 2418 | BlockType SignalConversion 2419 | Name "Signal\nConversion" 2420 | SID "21" 2421 | Position [1390, 116, 1405, 134] 2422 | ZOrder 917 2423 | ShowName off 2424 | Port { 2425 | PortNumber 1 2426 | Name "Independents" 2427 | RTWStorageClass "Auto" 2428 | DataLoggingNameMode "SignalName" 2429 | } 2430 | } 2431 | Block { 2432 | BlockType SignalConversion 2433 | Name "Signal\nConversion1" 2434 | SID "22" 2435 | Position [1390, 76, 1405, 94] 2436 | ZOrder 918 2437 | ShowName off 2438 | Port { 2439 | PortNumber 1 2440 | Name "Dependents" 2441 | RTWStorageClass "Auto" 2442 | DataLoggingNameMode "SignalName" 2443 | } 2444 | } 2445 | Block { 2446 | BlockType Terminator 2447 | Name "Terminator" 2448 | SID "23" 2449 | Position [965, 590, 985, 610] 2450 | ZOrder 849 2451 | BlockMirror on 2452 | ShowName off 2453 | } 2454 | Block { 2455 | BlockType WhileIterator 2456 | Name "While Iterator" 2457 | SID "24" 2458 | Ports [1, 1] 2459 | Position [1100, 456, 1205, 524] 2460 | ZOrder 844 2461 | MaxIters "MWS.In.Max_IterSS" 2462 | WhileBlockType "do-while" 2463 | ShowIterationPort on 2464 | } 2465 | Block { 2466 | BlockType Outport 2467 | Name "Solver" 2468 | SID "26" 2469 | Position [1575, 78, 1605, 92] 2470 | ZOrder 892 2471 | IconDisplay "Port number" 2472 | } 2473 | Block { 2474 | BlockType Outport 2475 | Name "EngOut" 2476 | SID "25" 2477 | Position [1350, 218, 1380, 232] 2478 | ZOrder 891 2479 | Port "2" 2480 | IconDisplay "Port number" 2481 | } 2482 | Block { 2483 | BlockType Outport 2484 | Name "Ndot" 2485 | SID "27" 2486 | Position [1350, 273, 1380, 287] 2487 | ZOrder 845 2488 | Port "3" 2489 | IconDisplay "Port number" 2490 | } 2491 | Line { 2492 | Name "Dependents" 2493 | ZOrder 1 2494 | Labels [1, 1] 2495 | SrcBlock "Signal\nConversion1" 2496 | SrcPort 1 2497 | DstBlock "Bus\nCreator1" 2498 | DstPort 2 2499 | } 2500 | Line { 2501 | Name "Independents" 2502 | ZOrder 2 2503 | Labels [1, 1] 2504 | SrcBlock "Signal\nConversion" 2505 | SrcPort 1 2506 | DstBlock "Bus\nCreator1" 2507 | DstPort 3 2508 | } 2509 | Line { 2510 | ZOrder 3 2511 | SrcBlock "From5" 2512 | SrcPort 1 2513 | DstBlock "Signal\nConversion" 2514 | DstPort 1 2515 | } 2516 | Line { 2517 | ZOrder 4 2518 | SrcBlock "From4" 2519 | SrcPort 1 2520 | DstBlock "Signal\nConversion1" 2521 | DstPort 1 2522 | } 2523 | Line { 2524 | Name "Solver" 2525 | ZOrder 5 2526 | Labels [1, 1] 2527 | SrcBlock "Bus\nCreator1" 2528 | SrcPort 1 2529 | DstBlock "Solver" 2530 | DstPort 1 2531 | } 2532 | Line { 2533 | Name "Iterations" 2534 | ZOrder 6 2535 | Labels [1, 1] 2536 | SrcBlock "From" 2537 | SrcPort 1 2538 | DstBlock "Bus\nCreator1" 2539 | DstPort 1 2540 | } 2541 | Line { 2542 | ZOrder 88 2543 | SrcBlock "Effectors" 2544 | SrcPort 1 2545 | DstBlock "Bus\nCreator" 2546 | DstPort 4 2547 | } 2548 | Line { 2549 | Name "" 2550 | ZOrder 83 2551 | Labels [0, 0] 2552 | SrcBlock "Bus\nSelector" 2553 | SrcPort 3 2554 | DstBlock "Bus\nCreator" 2555 | DstPort 3 2556 | } 2557 | Line { 2558 | Name "" 2559 | ZOrder 87 2560 | Labels [0, 0] 2561 | SrcBlock "Bus\nSelector" 2562 | SrcPort 2 2563 | DstBlock "Bus\nCreator" 2564 | DstPort 2 2565 | } 2566 | Line { 2567 | Name "" 2568 | ZOrder 85 2569 | Labels [0, 0] 2570 | SrcBlock "Bus\nSelector" 2571 | SrcPort 1 2572 | DstBlock "Bus\nCreator" 2573 | DstPort 1 2574 | } 2575 | Line { 2576 | ZOrder 35 2577 | SrcBlock "Engine Model" 2578 | SrcPort 2 2579 | DstBlock "Ndot" 2580 | DstPort 1 2581 | } 2582 | Line { 2583 | ZOrder 15 2584 | SrcBlock "N3" 2585 | SrcPort 1 2586 | DstBlock "Mux2" 2587 | DstPort 2 2588 | } 2589 | Line { 2590 | ZOrder 16 2591 | SrcBlock "N2" 2592 | SrcPort 1 2593 | DstBlock "Mux2" 2594 | DstPort 1 2595 | } 2596 | Line { 2597 | ZOrder 17 2598 | SrcBlock "Iterative NR Solver w JacobianCalc" 2599 | SrcPort 3 2600 | DstBlock "Terminator" 2601 | DstPort 1 2602 | } 2603 | Line { 2604 | ZOrder 18 2605 | SrcBlock "Mux2" 2606 | SrcPort 1 2607 | DstBlock "Engine Model" 2608 | DstPort 3 2609 | } 2610 | Line { 2611 | ZOrder 20 2612 | SrcBlock "Iterative NR Solver w JacobianCalc" 2613 | SrcPort 1 2614 | Points [-9, 0; 0, -70] 2615 | DstBlock "While Iterator" 2616 | DstPort 1 2617 | } 2618 | Line { 2619 | ZOrder 21 2620 | SrcBlock "While Iterator" 2621 | SrcPort 1 2622 | Points [33, 0; 0, 20] 2623 | Branch { 2624 | ZOrder 22 2625 | Points [0, 50] 2626 | DstBlock "Iterative NR Solver w JacobianCalc" 2627 | DstPort 1 2628 | } 2629 | Branch { 2630 | ZOrder 23 2631 | DstBlock "From1" 2632 | DstPort 1 2633 | } 2634 | } 2635 | Line { 2636 | Name "Independents" 2637 | ZOrder 27 2638 | Labels [0, 1] 2639 | SrcBlock "Iterative NR Solver w JacobianCalc" 2640 | SrcPort 2 2641 | Points [-256, 0; 0, -25] 2642 | Branch { 2643 | ZOrder 121 2644 | Points [0, -295] 2645 | DstBlock "All Ind" 2646 | DstPort 1 2647 | } 2648 | Branch { 2649 | ZOrder 28 2650 | DstBlock "From3" 2651 | DstPort 1 2652 | } 2653 | } 2654 | Line { 2655 | ZOrder 30 2656 | SrcBlock "Constant" 2657 | SrcPort 1 2658 | DstBlock "Iterative NR Solver w JacobianCalc" 2659 | DstPort 2 2660 | } 2661 | Line { 2662 | ZOrder 32 2663 | SrcBlock "EngSysInp" 2664 | SrcPort 1 2665 | DstBlock "Bus\nSelector" 2666 | DstPort 1 2667 | } 2668 | Line { 2669 | ZOrder 82 2670 | SrcBlock "Bus\nCreator" 2671 | SrcPort 1 2672 | Points [18, 0] 2673 | Branch { 2674 | ZOrder 90 2675 | DstBlock "From14" 2676 | DstPort 1 2677 | } 2678 | Branch { 2679 | ZOrder 89 2680 | Points [0, 120] 2681 | DstBlock "Engine Model" 2682 | DstPort 1 2683 | } 2684 | } 2685 | Line { 2686 | Name "EngBus" 2687 | ZOrder 34 2688 | SrcBlock "Engine Model" 2689 | SrcPort 1 2690 | Points [56, 0] 2691 | Branch { 2692 | ZOrder 81 2693 | Points [0, -25] 2694 | DstBlock "From12" 2695 | DstPort 1 2696 | } 2697 | Branch { 2698 | ZOrder 80 2699 | Labels [1, 1] 2700 | DstBlock "EngOut" 2701 | DstPort 1 2702 | } 2703 | } 2704 | Line { 2705 | Name "Dependents" 2706 | ZOrder 109 2707 | SrcBlock "All Dep" 2708 | SrcPort 1 2709 | Points [19, 0; 0, 185] 2710 | Branch { 2711 | ZOrder 108 2712 | Labels [-1, 1] 2713 | Points [0, 60] 2714 | DstBlock "Iterative NR Solver w JacobianCalc" 2715 | DstPort 3 2716 | } 2717 | Branch { 2718 | ZOrder 61 2719 | DstBlock "From2" 2720 | DstPort 1 2721 | } 2722 | } 2723 | Line { 2724 | ZOrder 104 2725 | SrcBlock "Engine Model" 2726 | SrcPort 3 2727 | DstBlock "All Dep" 2728 | DstPort 1 2729 | } 2730 | Line { 2731 | ZOrder 105 2732 | SrcBlock "From13" 2733 | SrcPort 1 2734 | DstBlock "All Dep" 2735 | DstPort 2 2736 | } 2737 | Line { 2738 | ZOrder 106 2739 | SrcBlock "From15" 2740 | SrcPort 1 2741 | DstBlock "All Dep" 2742 | DstPort 3 2743 | } 2744 | Line { 2745 | Name "VAFN" 2746 | ZOrder 118 2747 | Labels [3, 1] 2748 | SrcBlock "All Ind" 2749 | SrcPort 1 2750 | Points [12, 0; 0, -90] 2751 | DstBlock "Bus\nCreator" 2752 | DstPort 5 2753 | } 2754 | Line { 2755 | Name "VBV" 2756 | ZOrder 119 2757 | Labels [3, 1] 2758 | SrcBlock "All Ind" 2759 | SrcPort 2 2760 | Points [19, 0; 0, -80] 2761 | DstBlock "Bus\nCreator" 2762 | DstPort 6 2763 | } 2764 | Line { 2765 | ZOrder 120 2766 | SrcBlock "All Ind" 2767 | SrcPort 3 2768 | DstBlock "Engine Model" 2769 | DstPort 2 2770 | } 2771 | Annotation { 2772 | SID "30" 2773 | Name "\n\n" 3207 | "

AGTF30 Linearization

\n

Advanced Geared Turbofan Engine System

\n


" 3213 | Position [185, 17, 807, 106] 3214 | InternalMargins [0, 0, 0, 0] 3215 | FixedHeight off 3216 | FixedWidth off 3217 | HorizontalAlignment "left" 3218 | VerticalAlignment "top" 3219 | Interpreter "rich" 3220 | ZOrder -2 3221 | } 3222 | } 3223 | } 3224 | #Finite State Machines 3225 | # 3226 | # Stateflow 80000005 3227 | # 3228 | # 3229 | Stateflow { 3230 | machine { 3231 | id 1 3232 | name "AGTF30SysLin" 3233 | created "23-Aug-2016 13:29:48" 3234 | isLibrary 0 3235 | firstTarget 2 3236 | sfVersion 80000005 3237 | } 3238 | target { 3239 | id 2 3240 | name "sfun" 3241 | description "Default Simulink S-Function Target." 3242 | machine 1 3243 | linkNode [1 0 0] 3244 | } 3245 | } 3246 | --------------------------------------------------------------------------------