Model { Name "dap3dof" Version 4.00 Description "This model was featured in \"Fly Me to the Moon - T" "hen and Now\", the story of the digital autopilot in the Lunar Module from th" "e Summer 1999 issue of \"MATLAB News & Notes\". You can read the article at:" "\n \n http://www.mathworks.com/company/newsletter/sum99/lunar_module.shtml\n" RequirementInfo "9" SampleTimeColors off LibraryLinkDisplay "none" WideLines on ShowLineDimensions off ShowPortDataTypes off RecordCoverage off CovPath "/" CovSaveName "covdata" CovNameIncrementing off CovHtmlReporting on BlockNameDataTip off BlockParametersDataTip on BlockDescriptionStringDataTip off ToolBar on StatusBar on BrowserShowLibraryLinks off BrowserLookUnderMasks off PreLoadFcn "dap3dofdata" Created "Mon Mar 15 01:15:24 1999" Creator "barnard" UpdateHistory "UpdateHistoryNever" ModifiedByFormat "%" LastModifiedBy "batserve" ModifiedDateFormat "%" LastModifiedDate "Wed Oct 4 19:38:22 2000" ModelVersionFormat "1.%" ConfigurationManager "none" SimParamPage "Solver" StartTime "0" StopTime "25" SolverMode "SingleTasking" Solver "ode45" RelTol "1e-3" AbsTol "1e-6" Refine "1" MaxStep "auto" MinStep "auto" MaxNumMinSteps "-1" InitialStep "auto" FixedStep "clockt/4" MaxOrder 5 OutputOption "RefineOutputTimes" OutputTimes "[]" LoadExternalInput off ExternalInput "[t, u]" SaveTime on TimeSaveName "tout" SaveState off StateSaveName "xout" SaveOutput on OutputSaveName "yout" LoadInitialState off InitialState "xInitial" SaveFinalState off FinalStateName "xFinal" SaveFormat "Array" LimitDataPoints off MaxDataPoints "1000" Decimation "1" AlgebraicLoopMsg "warning" MinStepSizeMsg "warning" UnconnectedInputMsg "warning" UnconnectedOutputMsg "warning" UnconnectedLineMsg "warning" InheritedTsInSrcMsg "warning" SingleTaskRateTransMsg "none" MultiTaskRateTransMsg "error" IntegerOverflowMsg "warning" CheckForMatrixSingularity "none" UnnecessaryDatatypeConvMsg "none" Int32ToFloatConvMsg "warning" SignalLabelMismatchMsg "none" LinearizationMsg "none" VectorMatrixConversionMsg "none" SfunCompatibilityCheckMsg "none" BlockPriorityViolationMsg "warning" ArrayBoundsChecking "none" ConsistencyChecking "none" ZeroCross on Profile off SimulationMode "normal" RTWSystemTargetFile "grt.tlc" RTWInlineParameters off RTWRetainRTWFile off RTWTemplateMakefile "grt_vc.tmf" RTWMakeCommand "make_rtw" RTWGenerateCodeOnly off TLCProfiler off TLCDebug off TLCCoverage off AccelSystemTargetFile "accel.tlc" AccelTemplateMakefile "accel_default_tmf" AccelMakeCommand "make_rtw" ExtModeMexFile "ext_comm" ExtModeBatchMode off ExtModeTrigType "manual" ExtModeTrigMode "oneshot" ExtModeTrigPort "1" ExtModeTrigElement "any" ExtModeTrigDuration 1000 ExtModeTrigHoldOff 0 ExtModeTrigDelay 0 ExtModeTrigDirection "rising" ExtModeTrigLevel 0 ExtModeArchiveMode "off" ExtModeAutoIncOneShot off ExtModeIncDirWhenArm off ExtModeAddSuffixToVar off ExtModeWriteAllDataToWs off ExtModeArmWhenConnect off ExtModeLogAll on OptimizeBlockIOStorage on BufferReuse on ParameterPooling on BlockReductionOpt off BooleanDataType off BlockDefaults { Orientation "right" ForegroundColor "black" BackgroundColor "white" DropShadow off NamePlacement "normal" FontName "Helvetica" FontSize 10 FontWeight "normal" FontAngle "normal" ShowName on } AnnotationDefaults { HorizontalAlignment "center" VerticalAlignment "middle" ForegroundColor "black" BackgroundColor "white" DropShadow off FontName "Helvetica" FontSize 10 FontWeight "normal" FontAngle "normal" } LineDefaults { FontName "Helvetica" FontSize 9 FontWeight "normal" FontAngle "normal" } System { Name "dap3dof" Location [119, 176, 1067, 725] Open on ModelBrowserVisibility off ModelBrowserWidth 209 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom off ReportName "simulink-default.rpt" Block { BlockType Constant Name "Ascent Single\nJets" Position [490, 455, 510, 475] BackgroundColor "orange" Value "1" VectorParams1D on } Block { BlockType SubSystem Name "Astronaut Attitude\nCommand\nto Autopilot" Ports [0, 1] Position [45, 145, 85, 185] FontName "Arial" FontSize 12 FontWeight "bold" FontAngle "italic" ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Astronaut Attitude\nCommand\nto Autopilot" Location [58, 198, 479, 412] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Constant Name "Attitude\nCmd at t=0" Position [80, 128, 165, 152] BackgroundColor "cyan" Value "[0 0 0]'" VectorParams1D off } Block { BlockType Constant Name "Attitude\nCmd at t=step" Position [80, 44, 165, 66] BackgroundColor "cyan" NamePlacement "alternate" Value "[0.03 0.05 0.1]'" VectorParams1D off } Block { BlockType Step Name "Step" Position [135, 80, 165, 110] Time "0.25" Before "0" After "1" SampleTime "0" VectorParams1D on } Block { BlockType Switch Name "Switch" Position [205, 80, 235, 110] Threshold "0.5" } Block { BlockType Outport Name "Cmd." Position [310, 87, 345, 103] Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock "Step" SrcPort 1 DstBlock "Switch" DstPort 2 } Line { SrcBlock "Attitude\nCmd at t=step" SrcPort 1 Points [20, 0] DstBlock "Switch" DstPort 1 } Line { SrcBlock "Attitude\nCmd at t=0" SrcPort 1 Points [20, 0] DstBlock "Switch" DstPort 3 } Line { SrcBlock "Switch" SrcPort 1 DstBlock "Cmd." DstPort 1 } } } Block { BlockType Scope Name "Attitudes" Ports [1] Position [885, 194, 915, 226] Floating off Location [528, 30, 1147, 338] Open off NumInputPorts "1" TickLabels "OneTimeTick" ZoomMode "on" List { ListType AxesTitles axes1 "%" } Grid "on" TimeRange "auto" YMin "0" YMax "0.12" SaveToWorkspace off SaveName "ScopeData" DataFormat "StructureWithTime" LimitDataPoints off MaxDataPoints "5000" Decimation "1" SampleInput off SampleTime "0" } Block { BlockType DataStoreMemory Name "Data Store\nMemory" Position [790, 455, 844, 481] ShowName off DataStoreName "e_edot" InitialValue "[0 0]" VectorParams1D on } Block { BlockType DataStoreMemory Name "Data Store\nMemory1" Position [755, 490, 809, 516] ShowName off DataStoreName "NofJets" InitialValue "2" VectorParams1D on } Block { BlockType DataStoreMemory Name "Data Store\nMemory2" Position [823, 490, 899, 515] ShowName off DataStoreName "PitchRollJets" InitialValue "2" VectorParams1D on } Block { BlockType Constant Name "Four Jet" Position [250, 455, 270, 475] BackgroundColor "orange" Value "4" VectorParams1D on } Block { BlockType SubSystem Name "H x Omega" Ports [2, 1] Position [465, 337, 515, 368] Orientation "left" BackgroundColor "lightBlue" NamePlacement "alternate" ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" MaskType "Vector Cross Product" MaskDescription "This block computes the vector cross product of" " the first input with the second input. The output is then z= v1 x v2." MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" System { Name "H x Omega" Location [128, 207, 736, 594] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "v1" Position [25, 60, 45, 80] Port "1" Interpolate on } Block { BlockType Inport Name "v2" Position [25, 255, 45, 275] Port "2" Interpolate on } Block { BlockType Demux Name "Demux" Ports [1, 3] Position [95, 44, 140, 96] Outputs "3" BusSelectionMode off } Block { BlockType Demux Name "Demux1" Ports [1, 3] Position [95, 239, 140, 291] Outputs "3" BusSelectionMode off } Block { BlockType Mux Name "Mux" Ports [3, 1] Position [465, 137, 500, 173] Inputs "3" DisplayOption "none" } Block { BlockType Sum Name "Sum" Ports [2, 1] Position [380, 52, 410, 83] IconShape "rectangular" Inputs "+-" SaturateOnIntegerOverflow on } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [380, 137, 410, 168] IconShape "rectangular" Inputs "+-" SaturateOnIntegerOverflow on } Block { BlockType Sum Name "Sum2" Ports [2, 1] Position [380, 232, 410, 263] IconShape "rectangular" Inputs "+-" SaturateOnIntegerOverflow on } Block { BlockType Product Name "v1(1)*v2(2)" Ports [2, 1] Position [260, 12, 290, 43] Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Product Name "v1(1)*v2(3)" Ports [2, 1] Position [260, 77, 290, 108] Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Product Name "v1(2)*v2(1)" Ports [2, 1] Position [260, 152, 290, 183] Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Product Name "v1(2)*v2(3)" Ports [2, 1] Position [260, 207, 290, 238] Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Product Name "v1(3)*v2(1)" Ports [2, 1] Position [260, 267, 290, 298] Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Product Name "v1(3)*v2(2)" Ports [2, 1] Position [260, 327, 290, 358] Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Outport Name "v1 x v2" Position [540, 145, 560, 165] Port "1" OutputWhenDisabled "held" InitialOutput "0" } Line { SrcBlock "v1" SrcPort 1 DstBlock "Demux" DstPort 1 } Line { SrcBlock "Demux" SrcPort 3 Points [45, 0; 0, 190] Branch { DstBlock "v1(3)*v2(1)" DstPort 1 } Branch { Points [0, 60] DstBlock "v1(3)*v2(2)" DstPort 1 } } Line { SrcBlock "v2" SrcPort 1 DstBlock "Demux1" DstPort 1 } Line { SrcBlock "Demux1" SrcPort 1 Points [10, 0] Branch { Points [0, -75] DstBlock "v1(2)*v2(1)" DstPort 2 } Branch { Points [0, 40] DstBlock "v1(3)*v2(1)" DstPort 2 } } Line { SrcBlock "Demux1" SrcPort 2 Points [20, 0] Branch { Points [0, 85] DstBlock "v1(3)*v2(2)" DstPort 2 } Branch { Points [0, -230] DstBlock "v1(1)*v2(2)" DstPort 2 } } Line { SrcBlock "Demux1" SrcPort 3 Points [30, 0; 0, -50] Branch { DstBlock "v1(2)*v2(3)" DstPort 2 } Branch { Points [0, -130] DstBlock "v1(1)*v2(3)" DstPort 2 } } Line { SrcBlock "Demux" SrcPort 1 Points [65, 0] Branch { Points [0, -35] DstBlock "v1(1)*v2(2)" DstPort 1 } Branch { Points [0, 30] DstBlock "v1(1)*v2(3)" DstPort 1 } } Line { SrcBlock "Demux" SrcPort 2 Points [55, 0; 0, 90] Branch { DstBlock "v1(2)*v2(1)" DstPort 1 } Branch { Points [0, 55] DstBlock "v1(2)*v2(3)" DstPort 1 } } Line { SrcBlock "Mux" SrcPort 1 DstBlock "v1 x v2" DstPort 1 } Line { SrcBlock "Sum" SrcPort 1 Points [35, 0] DstBlock "Mux" DstPort 1 } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Mux" DstPort 2 } Line { SrcBlock "Sum2" SrcPort 1 Points [35, 0] DstBlock "Mux" DstPort 3 } Line { SrcBlock "v1(2)*v2(3)" SrcPort 1 Points [40, 0; 0, -165] DstBlock "Sum" DstPort 1 } Line { SrcBlock "v1(3)*v2(2)" SrcPort 1 Points [50, 0; 0, -270] DstBlock "Sum" DstPort 2 } Line { SrcBlock "v1(3)*v2(1)" SrcPort 1 Points [60, 0; 0, -140] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "v1(1)*v2(3)" SrcPort 1 Points [70, 0] DstBlock "Sum1" DstPort 2 } Line { SrcBlock "v1(1)*v2(2)" SrcPort 1 Points [30, 0; 0, 210] DstBlock "Sum2" DstPort 1 } Line { SrcBlock "v1(2)*v2(1)" SrcPort 1 Points [20, 0; 0, 85] DstBlock "Sum2" DstPort 2 } } } Block { BlockType Product Name "I Omega" Ports [2, 1] Position [565, 300, 615, 335] Orientation "left" BackgroundColor "lightBlue" Inputs "2" Multiplication "Matrix(*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "Momentum (H)" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Product Name "I inverse times\nTorque" Ports [2, 1] Position [540, 169, 590, 211] BackgroundColor "lightBlue" Inputs "2" Multiplication "Matrix(*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "Omega dot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Constant Name "Inertia Matrix" Position [565, 270, 615, 290] BackgroundColor "cyan" NamePlacement "alternate" Value "[I]" VectorParams1D off Port { PortNumber 1 Name "Inertia" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Constant Name "Initial Position" Position [805, 255, 850, 275] Orientation "left" BackgroundColor "cyan" Value "[0 0 0]'" VectorParams1D off } Block { BlockType Constant Name "Initial Rate" Position [670, 235, 715, 255] Orientation "left" BackgroundColor "cyan" Value "[10 1 1]'/100" VectorParams1D off } Block { BlockType Integrator Name "Integrator" Ports [2, 1] Position [670, 181, 715, 214] BackgroundColor "yellow" ExternalReset "none" InitialConditionSource "external" InitialCondition "0" LimitOutput off UpperSaturationLimit "inf" LowerSaturationLimit "-inf" ShowSaturationPort off ShowStatePort off AbsoluteTolerance "auto" Port { PortNumber 1 Name "Omega" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Constant Name "Inverse of the\nInertia Matrix" Position [540, 140, 590, 160] Orientation "left" BackgroundColor "cyan" NamePlacement "alternate" Value "inv(I)" VectorParams1D off } Block { BlockType Scope Name "Jet Commands" Ports [2] Position [330, 280, 365, 315] Orientation "down" BackgroundColor "yellow" NamePlacement "alternate" Floating off Location [904, 376, 1260, 881] Open off NumInputPorts "2" TickLabels "on" ZoomMode "on" List { ListType AxesTitles axes1 "%" axes2 "%" } Grid "on" TimeRange "9.999999999999998" YMin "-3~-3" YMax "3~3" SaveToWorkspace off SaveName "ScopeData" DataFormat "Array" LimitDataPoints off MaxDataPoints "10000" Decimation "1" SampleInput off SampleTime "0" } Block { BlockType Mux Name "Mux" Ports [2, 1] Position [375, 139, 380, 241] BackgroundColor "black" Inputs "2" DisplayOption "none" } Block { BlockType Constant Name "Nominal Two Jet Couples" Position [490, 435, 510, 455] BackgroundColor "green" NamePlacement "alternate" Value "2" VectorParams1D on } Block { BlockType SubSystem Name "Phase Plane \nPlot" Ports [1] Position [110, 456, 165, 484] BackgroundColor "yellow" NamePlacement "alternate" ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Phase Plane \nPlot" Location [671, 359, 963, 565] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "Pos. Error" Position [40, 33, 70, 47] NamePlacement "alternate" Port "1" Interpolate on } Block { BlockType Constant Name "Constant" Position [35, 99, 70, 121] ShowName off Value "alph1" VectorParams1D on } Block { BlockType Constant Name "Constant1" Position [35, 119, 70, 141] ShowName off Value "alphs1" VectorParams1D on } Block { BlockType Constant Name "Constants for Plot" Position [35, 142, 70, 158] Value "DB" VectorParams1D on } Block { BlockType DigitalClock Name "Digital Clock" Position [20, 53, 85, 77] SampleTime "delt" } Block { BlockType MATLABFcn Name "MATLAB Fcn" Position [180, 70, 240, 100] MATLABFcn "phaseplane" OutputDimensions "0" OutputSignalType "auto" Output1D on } Block { BlockType Mux Name "Mux1" Ports [5, 1] Position [130, 28, 135, 142] ShowName off Inputs "5" DisplayOption "bar" } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "MATLAB Fcn" DstPort 1 } Line { SrcBlock "Pos. Error" SrcPort 1 Points [40, 0] DstBlock "Mux1" DstPort 1 } Line { SrcBlock "Digital Clock" SrcPort 1 DstBlock "Mux1" DstPort 2 } Line { SrcBlock "Constants for Plot" SrcPort 1 Points [40, 0] DstBlock "Mux1" DstPort 5 } Line { SrcBlock "Constant" SrcPort 1 Points [30, 0; 0, -25] DstBlock "Mux1" DstPort 3 } Line { SrcBlock "Constant1" SrcPort 1 Points [35, 0; 0, -25] DstBlock "Mux1" DstPort 4 } } } Block { BlockType Gain Name "Pitch Accleration" Position [400, 173, 455, 207] BackgroundColor "yellow" NamePlacement "alternate" Gain "Force*L_arm" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Scope Name "Rates" Ports [1] Position [885, 134, 915, 166] Floating off Location [28, 53, 585, 351] Open off NumInputPorts "1" TickLabels "OneTimeTick" ZoomMode "on" List { ListType AxesTitles axes1 "%" } Grid "on" TimeRange "auto" YMin "-0.075" YMax "0.125" SaveToWorkspace off SaveName "ScopeData" DataFormat "StructureWithTime" LimitDataPoints off MaxDataPoints "5000" Decimation "1" SampleInput off SampleTime "0" } Block { BlockType SubSystem Name "Reaction Jet Control" Ports [2, 2] Position [170, 139, 325, 241] BackgroundColor "cyan" DropShadow on AncestorBlock "librcs/Reaction Jet Control" FontName "Arial" FontSize 12 ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Reaction Jet Control" Location [63, 93, 1003, 648] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "Attitude\nCmd." Position [20, 373, 50, 387] BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "Attitude\nMeas." Position [20, 138, 50, 152] BackgroundColor "cyan" Port "2" Interpolate on } Block { BlockType Product Name "Convert Attitude to\nUV coords." Ports [2, 1] Position [380, 360, 435, 400] BackgroundColor "cyan" Inputs "2" Multiplication "Matrix(*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "(u,v)" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Product Name "Convert Rate to\nUV coords." Ports [2, 1] Position [430, 145, 485, 185] BackgroundColor "cyan" Inputs "2" Multiplication "Matrix(*)" SaturateOnIntegerOverflow on } Block { BlockType Product Name "Convert u,v to\nq,r coords." Ports [2, 1] Position [790, 300, 845, 340] BackgroundColor "cyan" Inputs "2" Multiplication "Matrix(*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "Pitch and Roll Jets" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Demux Name "Demux" Ports [1, 3] Position [135, 50, 140, 240] BackgroundColor "black" ShowName off Outputs "3" BusSelectionMode off } Block { BlockType Demux Name "Demux1" Ports [1, 3] Position [135, 348, 140, 412] BackgroundColor "black" ShowName off Outputs "3" BusSelectionMode off Port { PortNumber 1 Name "Yaw error" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } Port { PortNumber 2 Name "Roll error" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } Port { PortNumber 3 Name "Pitch Error" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Demux Name "Demux2" Ports [1, 2] Position [510, 251, 515, 289] BackgroundColor "black" ShowName off Outputs "2" BusSelectionMode off } Block { BlockType Demux Name "Demux3" Ports [1, 2] Position [510, 361, 515, 399] BackgroundColor "black" ShowName off Outputs "2" BusSelectionMode off Port { PortNumber 1 Name "u" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } Port { PortNumber 2 Name "v" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType From Name "From" Position [485, 39, 560, 61] BackgroundColor "yellow" ShowName off CloseFcn "tagdialog Close" GotoTag "Yaw_error" } Block { BlockType Goto Name "Goto" Position [265, 349, 330, 371] BackgroundColor "yellow" ShowName off GotoTag "Yaw_error" TagVisibility "local" } Block { BlockType Mux Name "Mux" Ports [2, 1] Position [375, 156, 380, 194] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux2" Ports [2, 1] Position [245, 371, 250, 409] ShowName off Inputs "2" DisplayOption "bar" Port { PortNumber 1 Name "<" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Mux Name "Mux3" Ports [2, 1] Position [760, 311, 765, 349] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType DiscreteZeroPole Name "Rate Derivation (Pitch)" Position [205, 191, 315, 229] BackgroundColor "cyan" Zeros "[1]" Poles "[0]" Gain "1/delt " SampleTime "-1" Port { PortNumber 1 Name "Pitch Rate" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType DiscreteZeroPole Name "Rate Derivation (Roll)" Position [205, 126, 315, 164] BackgroundColor "cyan" Zeros "[1]" Poles "[0]" Gain "1/delt " SampleTime "-1" Port { PortNumber 1 Name "Roll Rate" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType DiscreteZeroPole Name "Rate Derivation (Yaw)" Position [205, 61, 315, 99] BackgroundColor "cyan" Zeros "[1]" Poles "[0]" Gain "1/delt " SampleTime "-1" Port { PortNumber 1 Name "Yaw Rate" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum" Ports [2, 1] Position [80, 365, 110, 395] BackgroundColor "cyan" IconShape "round" Inputs "+-|" SaturateOnIntegerOverflow on } Block { BlockType SubSystem Name "Yaw Control Law" Ports [2, 1] Position [595, 37, 720, 93] BackgroundColor "cyan" NamePlacement "alternate" AncestorBlock "libdap/Yaw Control Law" ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" MaskType "Control Law" MaskDescription "Implements Control Law for the LM. Works fo" "r yaw, u and v jet axes." MaskPromptString "Single Jet Accel:|Single Jet Switch Curve A" "ccel:|Dead Band:|Min Jet On Time:|Sample Time:" MaskStyleString "edit,edit,edit,edit,edit" MaskTunableValueString "on,on,on,on,on" MaskCallbackString "||||" MaskEnableString "on,on,on,on,on" MaskVisibilityString "on,on,on,on,on" MaskToolTipString "on,on,on,on,on" MaskVariables "alph=@1;alphs=@2;DB=@3;tmin=@4;delt=@5;" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" MaskValueString "alph1|alphs1|DB|tmin|delt" MaskVariableAliases ",,,," Port { PortNumber 1 Name "Yaw Jets" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } System { Name "Yaw Control Law" Location [48, 95, 1138, 650] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "Position" Position [15, 83, 45, 97] Port "1" Interpolate on Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Inport Name "Rate" Position [15, 118, 45, 132] Port "2" Interpolate on Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Gain Name "2*alphs/( alph + alphs )" Position [450, 365, 490, 405] Orientation "up" BackgroundColor "cyan" Gain "2*alphs/( alph + alphs )" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Fcn Name ">= 0" Position [485, 274, 510, 306] BackgroundColor "cyan" Expr "u*( u >= 0 )" } Block { BlockType Abs Name "Abs" Position [345, 410, 375, 440] BackgroundColor "cyan" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Accleration\nfrom a Single Jet" Position [35, 252, 80, 268] BackgroundColor "cyan" NamePlacement "alternate" Value "alph" VectorParams1D on } Block { BlockType SubSystem Name "Chart" Ports [8, 3] Position [570, 57, 685, 313] ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" MaskType "Stateflow" MaskDescription "Stateflow diagram" MaskDisplay "plot(sf('Private','sfblk','xIcon'),sf('" "Private','sfblk','yIcon'));text(0.5,0,sf('Private', 'sfblk', 'tIcon'),'Horizo" "ntalAl','Center','VerticalAl','Bottom');" MaskSelfModifiable on MaskIconFrame off MaskIconOpaque off MaskIconRotate "none" MaskIconUnits "autoscale" Port { PortNumber 1 Name "Jet Command" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } Port { PortNumber 2 Name "enable" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } Port { PortNumber 3 Name "ton" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } System { Name "Chart" Location [257, 457, 812, 717] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "Nofjets" Position [20, 101, 40, 119] Port "1" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "e" Position [20, 136, 40, 154] Port "2" PortDimensions "2" Interpolate on } Block { BlockType Inport Name "Firefct1" Position [20, 171, 40, 189] Port "3" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "Coastfct1" Position [20, 206, 40, 224] Port "4" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "Firefct2" Position [20, 246, 40, 264] Port "5" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "Coastfct2" Position [20, 281, 40, 299] Port "6" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "tjcalc1" Position [20, 316, 40, 334] Port "7" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "tjcalc" Position [20, 351, 40, 369] Port "8" PortDimensions "1" Interpolate on } Block { BlockType Demux Name " Demux " Ports [1, 1] Position [270, 285, 320, 325] Outputs "1" BusSelectionMode off } Block { BlockType "S-Function" Name " SFunction " Tag "Stateflow S-Function dap3dof 4" Ports [8, 4] Position [180, 105, 230, 285] FunctionName "sf_sfun" PortCounts "[8 4]" SFunctionModules "''" } Block { BlockType Terminator Name " Terminator " Position [460, 296, 480, 314] } Block { BlockType Outport Name "jets" Position [460, 101, 480, 119] Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Block { BlockType Outport Name "enable" Position [460, 136, 480, 154] Port "2" OutputWhenDisabled "held" InitialOutput "[]" } Block { BlockType Outport Name "ton" Position [460, 171, 480, 189] Port "3" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock " SFunction " SrcPort 4 DstBlock "ton" DstPort 1 } Line { SrcBlock " SFunction " SrcPort 3 DstBlock "enable" DstPort 1 } Line { SrcBlock " SFunction " SrcPort 2 DstBlock "jets" DstPort 1 } Line { SrcBlock "tjcalc" SrcPort 1 DstBlock " SFunction " DstPort 8 } Line { SrcBlock "tjcalc1" SrcPort 1 DstBlock " SFunction " DstPort 7 } Line { SrcBlock "Coastfct2" SrcPort 1 DstBlock " SFunction " DstPort 6 } Line { SrcBlock "Firefct2" SrcPort 1 DstBlock " SFunction " DstPort 5 } Line { SrcBlock "Coastfct1" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { SrcBlock "Firefct1" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { SrcBlock "e" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { SrcBlock "Nofjets" SrcPort 1 Points [120, 0] DstBlock " SFunction " DstPort 1 } Line { SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { SrcBlock " SFunction " SrcPort 1 Points [0, 175] DstBlock " Demux " DstPort 1 } } } Block { BlockType DigitalClock Name "Clock at counter\ntime tic (0.000625) c" "lockt" Position [590, 416, 640, 434] BackgroundColor "yellow" NamePlacement "alternate" SampleTime "0.000625" } Block { BlockType DigitalClock Name "Clock at time\ndelt (Sample time)" Position [590, 436, 640, 454] BackgroundColor "yellow" SampleTime "delt" } Block { BlockType DataStoreRead Name "Data Store\nRead" Position [110, 350, 155, 380] ShowName off DataStoreName "NofJets" SampleTime "delt" } Block { BlockType DataStoreRead Name "Data Store\nRead1" Position [322, 30, 368, 60] Orientation "down" ShowName off DataStoreName "NofJets" SampleTime "delt" } Block { BlockType DataStoreWrite Name "Data Store\nWrite" Position [195, 30, 245, 60] ShowName off DataStoreName "e_edot" SampleTime "-1" } Block { BlockType Constant Name "Dead Zone" Position [40, 470, 70, 500] BackgroundColor "cyan" Value "DB" VectorParams1D on } Block { BlockType Product Name "Divide\ne and edot\nby N*alph" Ports [3, 1] Position [200, 236, 220, 284] BackgroundColor "cyan" Inputs "*//" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Product Name "Divide DB\nby N*alph" Ports [3, 1] Position [185, 447, 205, 493] BackgroundColor "cyan" Inputs "//*" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType SubSystem Name "Jet On TIme Counter" Ports [3, 1, 1] Position [705, 394, 810, 456] BackgroundColor "yellow" ShowPortLabels on TreatAsAtomicUnit on RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" Port { PortNumber 1 Name "Counter\nOutput" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } System { Name "Jet On TIme Counter" Location [299, 76, 1239, 615] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "ton" Position [50, 93, 80, 107] Port "1" Interpolate on Port { PortNumber 1 Name "ton" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Inport Name "Clock at tics" Position [50, 153, 80, 167] Port "2" Interpolate on Port { PortNumber 1 Name "Time in clockt\nmultiples" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Inport Name "Clock at\nSample Time" Position [50, 218, 80, 232] Port "3" Interpolate on Port { PortNumber 1 Name "Time in delt\nmultiples" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType EnablePort Name "Enable" Ports [] Position [480, 15, 500, 35] StatesWhenEnabling "reset" ShowOutputPort off } Block { BlockType Constant Name "Constant" Position [400, 170, 430, 200] Orientation "left" NamePlacement "alternate" Value "0" VectorParams1D on } Block { BlockType RelationalOperator Name "Relational\nOperator" Position [400, 92, 430, 123] Operator ">" Port { PortNumber 1 Name "Stop Command" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum" Ports [2, 1] Position [260, 90, 280, 110] ShowName off IconShape "round" Inputs "|+-" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "Count down of ton" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [190, 150, 210, 170] ShowName off IconShape "round" Inputs "|+-" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "Time after last\nsample in clock " "tics" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Stop jets" Position [555, 103, 585, 117] Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock "Constant" SrcPort 1 Points [-15, 0; 0, -70] DstBlock "Relational\nOperator" DstPort 2 } Line { Name "ton" Labels [0, 0] SrcBlock "ton" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { Name "Time in clockt\nmultiples" Labels [0, 1] SrcBlock "Clock at tics" SrcPort 1 DstBlock "Sum1" DstPort 1 } Line { Name "Time in delt\nmultiples" Labels [0, 1] SrcBlock "Clock at\nSample Time" SrcPort 1 Points [115, 0] DstBlock "Sum1" DstPort 2 } Line { Name "Time after last\nsample in clock ti" "cs" SrcBlock "Sum1" SrcPort 1 Points [55, 0] DstBlock "Sum" DstPort 2 } Line { Name "Count down of ton" Labels [1, 0] SrcBlock "Sum" SrcPort 1 DstBlock "Relational\nOperator" DstPort 1 } Line { Name "Stop Command" Labels [1, 0] SrcBlock "Relational\nOperator" SrcPort 1 DstBlock "Stop jets" DstPort 1 } } } Block { BlockType Logic Name "Logical\nOperator" Ports [2, 1] Position [840, 229, 865, 256] BackgroundColor "yellow" Operator "NOR" Inputs "2" } Block { BlockType Logic Name "Logical\nOperator1" Ports [2, 1] Position [900, 238, 920, 262] BackgroundColor "yellow" Operator "OR" Inputs "2" } Block { BlockType Mux Name "Mux3" Ports [2, 1] Position [135, 73, 140, 142] ShowName off Inputs "2" DisplayOption "bar" Port { PortNumber 1 Name "<" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Product Name "Product" Ports [2, 1] Position [945, 226, 975, 259] BackgroundColor "yellow" Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Selector Name "Select e/alph" Ports [1, 1] Position [265, 413, 295, 437] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e/alph" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot/alph" Ports [1, 1] Position [300, 247, 335, 273] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" } Block { BlockType Product Name "Square" Ports [2, 1] Position [413, 295, 437, 315] Orientation "down" BackgroundColor "cyan" NamePlacement "alternate" Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "(edot/alph)^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Math Name "Square root" Ports [1, 1] Position [525, 275, 555, 305] BackgroundColor "cyan" Operator "sqrt" OutputSignalType "auto" } Block { BlockType SubSystem Name "Subsystem" Ports [2, 1] Position [400, 123, 500, 152] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem" Location [303, 80, 1243, 619] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [135, 95, 165, 115] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alph)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "-++" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Firefct1" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { DstBlock "edot^2" DstPort 2 } Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } } Line { SrcBlock "NofJets" SrcPort 1 Points [10, 0] DstBlock "edot^2" DstPort 1 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { DstBlock "Select e" DstPort 1 } Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Firefct1" DstPort 1 } Annotation { Position [275, 209] Text "Firefct1\nThis function establishes" " when the jets are to be fired in a negative sense\nFirefct1 = e + edot ^2/(2" "*N*alph) - DB" } } } Block { BlockType SubSystem Name "Subsystem1" Ports [2, 1] Position [400, 153, 500, 182] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem1" Location [301, 78, 1241, 617] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [135, 90, 165, 110] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alphs)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "-+-" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Coastfct1" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Coastfct1" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } Branch { DstBlock "Select e" DstPort 1 } } Line { SrcBlock "NofJets" SrcPort 1 Points [10, 0] DstBlock "edot^2" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } Branch { DstBlock "edot^2" DstPort 2 } } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Annotation { Position [275, 209] Text "Coastfct1\nThis function establishe" "s when the jets are to be turned off (coasting)\nCoastfct1 = e - edot ^2/(2*N" "*alphs) - DB" } } } Block { BlockType SubSystem Name "Subsystem2" Ports [2, 1] Position [400, 183, 500, 212] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem2" Location [301, 78, 1241, 617] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [130, 90, 160, 110] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alph)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "++-" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Firefct2" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { DstBlock "edot^2" DstPort 2 } Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } } Line { SrcBlock "NofJets" SrcPort 1 Points [15, 0] DstBlock "edot^2" DstPort 1 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { DstBlock "Select e" DstPort 1 } Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Firefct2" DstPort 1 } Annotation { Position [275, 209] Text "Firefct2\nThis function establishes" " when the jets are to be fired in a positive sense\nFirefct2 = e - edot ^2/(2" "*N*alph) + DB" } } } Block { BlockType SubSystem Name "Subsystem3" Ports [2, 1] Position [400, 213, 500, 242] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem3" Location [301, 78, 1241, 617] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [135, 90, 165, 110] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alphs)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "+++" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Coastfct2" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { DstBlock "edot^2" DstPort 2 } Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } } Line { SrcBlock "NofJets" SrcPort 1 Points [10, 0] DstBlock "edot^2" DstPort 1 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { DstBlock "Select e" DstPort 1 } Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Coastfct2" DstPort 1 } Annotation { Position [275, 209] Text "Coastfct2\nThis function establishe" "s when the jets are to be turned off (coasting)\nCoastfct1 = e + edot ^2/(2*N" "*alphs) + DB" } } } Block { BlockType Sum Name "Sum" Ports [3, 1] Position [415, 415, 435, 435] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "++-" SaturateOnIntegerOverflow on } Block { BlockType Gain Name "divide by 2" Position [406, 355, 444, 385] Orientation "down" BackgroundColor "cyan" NamePlacement "alternate" Gain "0.5" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Outport Name "Jet\nCommand" Position [1020, 240, 1050, 250] BackgroundColor "yellow" Port "1" OutputWhenDisabled "held" InitialOutput "0" } Line { SrcBlock ">= 0" SrcPort 1 DstBlock "Square root" DstPort 1 } Line { SrcBlock "2*alphs/( alph + alphs )" SrcPort 1 DstBlock ">= 0" DstPort 1 } Line { SrcBlock "Data Store\nRead1" SrcPort 1 Points [0, 15] Branch { Points [0, 65] Branch { Points [0, 30] Branch { Points [0, 30] Branch { Points [0, 30] DstBlock "Subsystem3" DstPort 2 } Branch { DstBlock "Subsystem2" DstPort 2 } } Branch { DstBlock "Subsystem1" DstPort 2 } } Branch { DstBlock "Subsystem" DstPort 2 } } Branch { DstBlock "Chart" DstPort 1 } } Line { Name "edot" Labels [0, 1] SrcBlock "Rate" SrcPort 1 DstBlock "Mux3" DstPort 2 } Line { Name "e" Labels [0, 1] SrcBlock "Position" SrcPort 1 DstBlock "Mux3" DstPort 1 } Line { Name "<" SrcBlock "Mux3" SrcPort 1 Points [20, 0] Branch { Points [0, -65] DstBlock "Data Store\nWrite" DstPort 1 } Branch { Labels [-1, 1] DstBlock "Chart" DstPort 2 } Branch { Labels [1, 0] Points [80, 0] Branch { Points [-80, 0; 0, 135] DstBlock "Divide\ne and edot\nby N*alph" DstPort 1 } Branch { Points [0, 20] Branch { DstBlock "Subsystem" DstPort 1 } Branch { Points [0, 30] Branch { DstBlock "Subsystem1" DstPort 1 } Branch { Points [0, 30] Branch { DstBlock "Subsystem2" DstPort 1 } Branch { Points [0, 30] DstBlock "Subsystem3" DstPort 1 } } } } } } Line { Name "(edot/alph)^2" Labels [0, 0] SrcBlock "Square" SrcPort 1 DstBlock "divide by 2" DstPort 1 } Line { SrcBlock "Square root" SrcPort 1 DstBlock "Chart" DstPort 8 } Line { Name "Jet Command" Labels [0, 0] SrcBlock "Chart" SrcPort 1 Points [235, 0; 0, 135] DstBlock "Product" DstPort 1 } Line { SrcBlock "Select edot/alph" SrcPort 1 Points [80, 0] Branch { DstBlock "Square" DstPort 1 } Branch { Points [10, 0] Branch { DstBlock "Chart" DstPort 7 } Branch { DstBlock "Square" DstPort 2 } } } Line { Name "e/alph" Labels [0, 0] SrcBlock "Select e/alph" SrcPort 1 DstBlock "Abs" DstPort 1 } Line { SrcBlock "divide by 2" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { SrcBlock "Sum" SrcPort 1 Points [30, 0] DstBlock "2*alphs/( alph + alphs )" DstPort 1 } Line { SrcBlock "Abs" SrcPort 1 DstBlock "Sum" DstPort 2 } Line { Labels [0, 0] SrcBlock "Divide\ne and edot\nby N*alph" SrcPort 1 Points [20, 0] Branch { DstBlock "Select edot/alph" DstPort 1 } Branch { Points [0, 165] DstBlock "Select e/alph" DstPort 1 } } Line { SrcBlock "Data Store\nRead" SrcPort 1 Points [10, 0] Branch { Points [0, -90] DstBlock "Divide\ne and edot\nby N*alph" DstPort 3 } Branch { DstBlock "Divide DB\nby N*alph" DstPort 1 } } Line { Labels [1, 0] SrcBlock "Accleration\nfrom a Single Jet" SrcPort 1 Points [10, 0] Branch { DstBlock "Divide\ne and edot\nby N*alph" DstPort 2 } Branch { Points [0, 210] DstBlock "Divide DB\nby N*alph" DstPort 2 } } Line { SrcBlock "Dead Zone" SrcPort 1 DstBlock "Divide DB\nby N*alph" DstPort 3 } Line { SrcBlock "Divide DB\nby N*alph" SrcPort 1 Points [215, 0] DstBlock "Sum" DstPort 3 } Line { Name "enable" Labels [1, 0] SrcBlock "Chart" SrcPort 2 Points [65, 0; 0, 50] Branch { DstBlock "Jet On TIme Counter" DstPort enable } Branch { Labels [1, 0] DstBlock "Logical\nOperator" DstPort 1 } } Line { SrcBlock "Logical\nOperator1" SrcPort 1 DstBlock "Product" DstPort 2 } Line { Name "ton" SrcBlock "Chart" SrcPort 3 DstBlock "Jet On TIme Counter" DstPort 1 } Line { SrcBlock "Clock at counter\ntime tic (0.000625) c" "lockt" SrcPort 1 DstBlock "Jet On TIme Counter" DstPort 2 } Line { SrcBlock "Clock at time\ndelt (Sample time)" SrcPort 1 DstBlock "Jet On TIme Counter" DstPort 3 } Line { Name "Counter\nOutput" Labels [0, 0] SrcBlock "Jet On TIme Counter" SrcPort 1 Points [10, 0] Branch { Labels [-1, 0] DstBlock "Logical\nOperator" DstPort 2 } Branch { Points [60, 0] DstBlock "Logical\nOperator1" DstPort 2 } } Line { SrcBlock "Logical\nOperator" SrcPort 1 DstBlock "Logical\nOperator1" DstPort 1 } Line { SrcBlock "Subsystem3" SrcPort 1 DstBlock "Chart" DstPort 6 } Line { SrcBlock "Subsystem2" SrcPort 1 DstBlock "Chart" DstPort 5 } Line { SrcBlock "Subsystem1" SrcPort 1 DstBlock "Chart" DstPort 4 } Line { SrcBlock "Subsystem" SrcPort 1 DstBlock "Chart" DstPort 3 } Line { Labels [0, 0] SrcBlock "Product" SrcPort 1 DstBlock "Jet\nCommand" DstPort 1 } Annotation { Position [974, 315] BackgroundColor "yellow" Text "Logic implements:\n~(enable | stopjets)" " | stopjets" } } } Block { BlockType Constant Name "q,r to u,v \nconversion1" Position [430, 114, 485, 136] Orientation "left" BackgroundColor "cyan" NamePlacement "alternate" Value "[sqrt(2) sqrt(2); -sqrt(2) sqrt(2)]/2" VectorParams1D off } Block { BlockType Constant Name "q,r to u,v \nconversion2" Position [380, 329, 435, 351] Orientation "left" BackgroundColor "cyan" NamePlacement "alternate" Value "[sqrt(2) sqrt(2); -sqrt(2) sqrt(2)]/2" VectorParams1D off } Block { BlockType SubSystem Name "u Control Law" Ports [2, 1] Position [595, 217, 720, 273] BackgroundColor "cyan" NamePlacement "alternate" AncestorBlock "libdap/Pitch Roll Control Law" ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" MaskType "Control Law" MaskDescription "Implements Control Law for the LM. Works fo" "r yaw, u and v jet axes." MaskPromptString "Single Jet Accel:|Single Jet Switch Curve A" "ccel:|Dead Band:|Min. Jet On Time:|Sample Time:" MaskStyleString "edit,edit,edit,edit,edit" MaskTunableValueString "on,on,on,on,on" MaskCallbackString "||||" MaskEnableString "on,on,on,on,on" MaskVisibilityString "on,on,on,on,on" MaskToolTipString "on,on,on,on,on" MaskVariables "alph=@1;alphs=@2;DB=@3;tmin=@4;delt=@5;" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" MaskValueString "alphu|alphsu|DB|tmin|delt" MaskVariableAliases ",,,," Port { PortNumber 1 Name "u Jets" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } System { Name "u Control Law" Location [92, 139, 1182, 694] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "Position" Position [15, 83, 45, 97] Port "1" Interpolate on Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Inport Name "Rate" Position [15, 118, 45, 132] Port "2" Interpolate on Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Gain Name "2*alphs/( alph + alphs )" Position [445, 370, 485, 410] Orientation "up" BackgroundColor "cyan" Gain "2*alphs/( alph + alphs )" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Fcn Name ">= 0" Position [480, 275, 505, 305] BackgroundColor "cyan" Expr "u*( u >= 0 )" } Block { BlockType Abs Name "Abs" Position [345, 410, 375, 440] BackgroundColor "cyan" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Accleration\nfrom a Single Jet" Position [35, 252, 80, 268] BackgroundColor "cyan" NamePlacement "alternate" Value "alph" VectorParams1D on } Block { BlockType SubSystem Name "Chart" Ports [8, 3] Position [570, 57, 685, 313] ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" MaskType "Stateflow" MaskDescription "Stateflow diagram" MaskDisplay "plot(sf('Private','sfblk','xIcon'),sf('" "Private','sfblk','yIcon'));text(0.5,0,sf('Private', 'sfblk', 'tIcon'),'Horizo" "ntalAl','Center','VerticalAl','Bottom');" MaskSelfModifiable on MaskIconFrame off MaskIconOpaque off MaskIconRotate "none" MaskIconUnits "autoscale" Port { PortNumber 1 Name "Jet Command" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } Port { PortNumber 2 Name "enable" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } Port { PortNumber 3 Name "ton" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } System { Name "Chart" Location [257, 457, 812, 717] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "Nofjets" Position [20, 101, 40, 119] Port "1" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "e" Position [20, 136, 40, 154] Port "2" PortDimensions "2" Interpolate on } Block { BlockType Inport Name "Firefct1" Position [20, 171, 40, 189] Port "3" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "Coastfct1" Position [20, 206, 40, 224] Port "4" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "Firefct2" Position [20, 246, 40, 264] Port "5" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "Coastfct2" Position [20, 281, 40, 299] Port "6" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "tjcalc1" Position [20, 316, 40, 334] Port "7" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "tjcalc" Position [20, 351, 40, 369] Port "8" PortDimensions "1" Interpolate on } Block { BlockType Demux Name " Demux " Ports [1, 1] Position [270, 285, 320, 325] Outputs "1" BusSelectionMode off } Block { BlockType "S-Function" Name " SFunction " Tag "Stateflow S-Function dap3dof 1" Ports [8, 4] Position [180, 105, 230, 285] FunctionName "sf_sfun" PortCounts "[8 4]" SFunctionModules "''" } Block { BlockType Terminator Name " Terminator " Position [460, 296, 480, 314] } Block { BlockType Outport Name "jets" Position [460, 101, 480, 119] Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Block { BlockType Outport Name "enable" Position [460, 136, 480, 154] Port "2" OutputWhenDisabled "held" InitialOutput "[]" } Block { BlockType Outport Name "ton" Position [460, 171, 480, 189] Port "3" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock " SFunction " SrcPort 4 DstBlock "ton" DstPort 1 } Line { SrcBlock " SFunction " SrcPort 3 DstBlock "enable" DstPort 1 } Line { SrcBlock " SFunction " SrcPort 2 DstBlock "jets" DstPort 1 } Line { SrcBlock "tjcalc" SrcPort 1 DstBlock " SFunction " DstPort 8 } Line { SrcBlock "tjcalc1" SrcPort 1 DstBlock " SFunction " DstPort 7 } Line { SrcBlock "Coastfct2" SrcPort 1 DstBlock " SFunction " DstPort 6 } Line { SrcBlock "Firefct2" SrcPort 1 DstBlock " SFunction " DstPort 5 } Line { SrcBlock "Coastfct1" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { SrcBlock "Firefct1" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { SrcBlock "e" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { SrcBlock "Nofjets" SrcPort 1 Points [120, 0] DstBlock " SFunction " DstPort 1 } Line { SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { SrcBlock " SFunction " SrcPort 1 Points [0, 175] DstBlock " Demux " DstPort 1 } } } Block { BlockType DigitalClock Name "Clock at counter\ntime tic (0.000625) c" "lockt" Position [590, 416, 640, 434] BackgroundColor "yellow" NamePlacement "alternate" SampleTime "0.000625" } Block { BlockType DigitalClock Name "Clock at time\ndelt (Sample time)" Position [590, 436, 640, 454] BackgroundColor "yellow" SampleTime "delt" } Block { BlockType DataStoreRead Name "Data Store\nRead" Position [100, 349, 165, 381] ShowName off DataStoreName "PitchRollJets" SampleTime "delt" } Block { BlockType DataStoreRead Name "Data Store\nRead1" Position [312, 30, 378, 60] Orientation "down" ShowName off DataStoreName "PitchRollJets" SampleTime "delt" } Block { BlockType Constant Name "Dead Zone" Position [40, 470, 70, 500] BackgroundColor "cyan" Value "DB" VectorParams1D on } Block { BlockType Product Name "Divide\ne and edot\nby N*alph" Ports [3, 1] Position [200, 236, 220, 284] BackgroundColor "cyan" Inputs "*//" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Product Name "Divide DB\nby N*alph" Ports [3, 1] Position [185, 447, 205, 493] BackgroundColor "cyan" Inputs "//*" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType SubSystem Name "Jet On TIme Counter" Ports [3, 1, 1] Position [705, 394, 810, 456] BackgroundColor "yellow" ShowPortLabels on TreatAsAtomicUnit on RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" Port { PortNumber 1 Name "Counter\nOutput" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } System { Name "Jet On TIme Counter" Location [297, 74, 1237, 613] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "ton" Position [50, 93, 80, 107] Port "1" Interpolate on Port { PortNumber 1 Name "ton" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Inport Name "Clock at tics" Position [50, 153, 80, 167] Port "2" Interpolate on Port { PortNumber 1 Name "Time in clockt\nmultiples" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Inport Name "Clock at\nSample Time" Position [50, 218, 80, 232] Port "3" Interpolate on Port { PortNumber 1 Name "Time in delt\nmultiples" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType EnablePort Name "Enable" Ports [] Position [480, 15, 500, 35] StatesWhenEnabling "reset" ShowOutputPort off } Block { BlockType Constant Name "Constant" Position [400, 170, 430, 200] Orientation "left" NamePlacement "alternate" Value "0" VectorParams1D on } Block { BlockType RelationalOperator Name "Relational\nOperator" Position [400, 92, 430, 123] Operator ">" Port { PortNumber 1 Name "Stop Command" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum" Ports [2, 1] Position [260, 90, 280, 110] ShowName off IconShape "round" Inputs "|+-" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "Count down of ton" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [190, 150, 210, 170] ShowName off IconShape "round" Inputs "|+-" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "Time after last\nsample in clock " "tics" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Stop jets" Position [555, 103, 585, 117] Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { Name "Stop Command" Labels [1, 0] SrcBlock "Relational\nOperator" SrcPort 1 DstBlock "Stop jets" DstPort 1 } Line { Name "Count down of ton" Labels [1, 0] SrcBlock "Sum" SrcPort 1 DstBlock "Relational\nOperator" DstPort 1 } Line { Name "Time after last\nsample in clock ti" "cs" SrcBlock "Sum1" SrcPort 1 Points [55, 0] DstBlock "Sum" DstPort 2 } Line { Name "Time in delt\nmultiples" Labels [0, 1] SrcBlock "Clock at\nSample Time" SrcPort 1 Points [115, 0] DstBlock "Sum1" DstPort 2 } Line { Name "Time in clockt\nmultiples" Labels [0, 1] SrcBlock "Clock at tics" SrcPort 1 DstBlock "Sum1" DstPort 1 } Line { Name "ton" Labels [0, 0] SrcBlock "ton" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { SrcBlock "Constant" SrcPort 1 Points [-15, 0; 0, -70] DstBlock "Relational\nOperator" DstPort 2 } } } Block { BlockType Logic Name "Logical\nOperator" Ports [2, 1] Position [840, 229, 865, 256] BackgroundColor "yellow" Operator "NOR" Inputs "2" } Block { BlockType Logic Name "Logical\nOperator1" Ports [2, 1] Position [900, 238, 920, 262] BackgroundColor "yellow" Operator "OR" Inputs "2" } Block { BlockType Mux Name "Mux3" Ports [2, 1] Position [135, 73, 140, 142] ShowName off Inputs "2" DisplayOption "bar" Port { PortNumber 1 Name "<" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Product Name "Product" Ports [2, 1] Position [945, 226, 975, 259] BackgroundColor "yellow" Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Selector Name "Select e/alph" Ports [1, 1] Position [265, 413, 295, 437] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e/alph" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot/alph" Ports [1, 1] Position [300, 247, 335, 273] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" } Block { BlockType Product Name "Square" Ports [2, 1] Position [413, 295, 437, 315] Orientation "down" BackgroundColor "cyan" NamePlacement "alternate" Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "(edot/alph)^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Math Name "Square root" Ports [1, 1] Position [520, 275, 550, 305] BackgroundColor "cyan" Operator "sqrt" OutputSignalType "auto" } Block { BlockType SubSystem Name "Subsystem" Ports [2, 1] Position [400, 123, 500, 152] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem" Location [303, 80, 1243, 619] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [135, 95, 165, 115] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alph)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "-++" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Firefct1" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Firefct1" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } Branch { DstBlock "Select e" DstPort 1 } } Line { SrcBlock "NofJets" SrcPort 1 Points [10, 0] DstBlock "edot^2" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } Branch { DstBlock "edot^2" DstPort 2 } } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Annotation { Position [275, 209] Text "Firefct1\nThis function establishes" " when the jets are to be fired in a negative sense\nFirefct1 = e + edot ^2/(2" "*N*alph) - DB" } } } Block { BlockType SubSystem Name "Subsystem1" Ports [2, 1] Position [400, 153, 500, 182] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem1" Location [301, 78, 1241, 617] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [135, 90, 165, 110] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alphs)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "-+-" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Coastfct1" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { DstBlock "edot^2" DstPort 2 } Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } } Line { SrcBlock "NofJets" SrcPort 1 Points [10, 0] DstBlock "edot^2" DstPort 1 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { DstBlock "Select e" DstPort 1 } Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Coastfct1" DstPort 1 } Annotation { Position [275, 209] Text "Coastfct1\nThis function establishe" "s when the jets are to be turned off (coasting)\nCoastfct1 = e - edot ^2/(2*N" "*alphs) - DB" } } } Block { BlockType SubSystem Name "Subsystem2" Ports [2, 1] Position [400, 183, 500, 212] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem2" Location [301, 78, 1241, 617] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [130, 90, 160, 110] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alph)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "++-" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Firefct2" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Firefct2" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } Branch { DstBlock "Select e" DstPort 1 } } Line { SrcBlock "NofJets" SrcPort 1 Points [15, 0] DstBlock "edot^2" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } Branch { DstBlock "edot^2" DstPort 2 } } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Annotation { Position [275, 209] Text "Firefct2\nThis function establishes" " when the jets are to be fired in a positive sense\nFirefct2 = e - edot ^2/(2" "*N*alph) + DB" } } } Block { BlockType SubSystem Name "Subsystem3" Ports [2, 1] Position [400, 213, 500, 242] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem3" Location [301, 78, 1241, 617] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [135, 90, 165, 110] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alphs)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "+++" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Coastfct2" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Coastfct2" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } Branch { DstBlock "Select e" DstPort 1 } } Line { SrcBlock "NofJets" SrcPort 1 Points [10, 0] DstBlock "edot^2" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } Branch { DstBlock "edot^2" DstPort 2 } } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Annotation { Position [275, 209] Text "Coastfct2\nThis function establishe" "s when the jets are to be turned off (coasting)\nCoastfct1 = e + edot ^2/(2*N" "*alphs) + DB" } } } Block { BlockType Sum Name "Sum" Ports [3, 1] Position [415, 415, 435, 435] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "++-" SaturateOnIntegerOverflow on } Block { BlockType Gain Name "divide by 2" Position [406, 355, 444, 385] Orientation "down" BackgroundColor "cyan" NamePlacement "alternate" Gain "0.5" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Outport Name "Jet\nCommand" Position [1020, 240, 1050, 250] BackgroundColor "yellow" Port "1" OutputWhenDisabled "held" InitialOutput "0" } Line { SrcBlock ">= 0" SrcPort 1 DstBlock "Square root" DstPort 1 } Line { SrcBlock "2*alphs/( alph + alphs )" SrcPort 1 DstBlock ">= 0" DstPort 1 } Line { Labels [0, 0] SrcBlock "Product" SrcPort 1 DstBlock "Jet\nCommand" DstPort 1 } Line { SrcBlock "Subsystem" SrcPort 1 DstBlock "Chart" DstPort 3 } Line { SrcBlock "Subsystem1" SrcPort 1 DstBlock "Chart" DstPort 4 } Line { SrcBlock "Subsystem2" SrcPort 1 DstBlock "Chart" DstPort 5 } Line { SrcBlock "Subsystem3" SrcPort 1 DstBlock "Chart" DstPort 6 } Line { SrcBlock "Logical\nOperator" SrcPort 1 DstBlock "Logical\nOperator1" DstPort 1 } Line { Name "Counter\nOutput" Labels [0, 0] SrcBlock "Jet On TIme Counter" SrcPort 1 Points [10, 0] Branch { Points [60, 0] DstBlock "Logical\nOperator1" DstPort 2 } Branch { Labels [-1, 0] DstBlock "Logical\nOperator" DstPort 2 } } Line { SrcBlock "Clock at time\ndelt (Sample time)" SrcPort 1 DstBlock "Jet On TIme Counter" DstPort 3 } Line { SrcBlock "Clock at counter\ntime tic (0.000625) c" "lockt" SrcPort 1 DstBlock "Jet On TIme Counter" DstPort 2 } Line { Name "ton" SrcBlock "Chart" SrcPort 3 DstBlock "Jet On TIme Counter" DstPort 1 } Line { SrcBlock "Logical\nOperator1" SrcPort 1 DstBlock "Product" DstPort 2 } Line { Name "enable" Labels [1, 0] SrcBlock "Chart" SrcPort 2 Points [65, 0; 0, 50] Branch { Labels [1, 0] DstBlock "Logical\nOperator" DstPort 1 } Branch { DstBlock "Jet On TIme Counter" DstPort enable } } Line { SrcBlock "Divide DB\nby N*alph" SrcPort 1 Points [215, 0] DstBlock "Sum" DstPort 3 } Line { SrcBlock "Dead Zone" SrcPort 1 DstBlock "Divide DB\nby N*alph" DstPort 3 } Line { Labels [1, 0] SrcBlock "Accleration\nfrom a Single Jet" SrcPort 1 Points [10, 0] Branch { Points [0, 210] DstBlock "Divide DB\nby N*alph" DstPort 2 } Branch { DstBlock "Divide\ne and edot\nby N*alph" DstPort 2 } } Line { SrcBlock "Data Store\nRead" SrcPort 1 Points [0, 0] Branch { DstBlock "Divide DB\nby N*alph" DstPort 1 } Branch { Points [0, -90] DstBlock "Divide\ne and edot\nby N*alph" DstPort 3 } } Line { Labels [0, 0] SrcBlock "Divide\ne and edot\nby N*alph" SrcPort 1 Points [20, 0] Branch { Points [0, 165] DstBlock "Select e/alph" DstPort 1 } Branch { DstBlock "Select edot/alph" DstPort 1 } } Line { SrcBlock "Abs" SrcPort 1 DstBlock "Sum" DstPort 2 } Line { SrcBlock "Sum" SrcPort 1 DstBlock "2*alphs/( alph + alphs )" DstPort 1 } Line { SrcBlock "divide by 2" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { Name "e/alph" Labels [0, 0] SrcBlock "Select e/alph" SrcPort 1 DstBlock "Abs" DstPort 1 } Line { SrcBlock "Select edot/alph" SrcPort 1 Points [80, 0] Branch { Points [10, 0] Branch { DstBlock "Square" DstPort 2 } Branch { DstBlock "Chart" DstPort 7 } } Branch { DstBlock "Square" DstPort 1 } } Line { Name "Jet Command" Labels [0, 0] SrcBlock "Chart" SrcPort 1 Points [235, 0; 0, 135] DstBlock "Product" DstPort 1 } Line { SrcBlock "Square root" SrcPort 1 DstBlock "Chart" DstPort 8 } Line { Name "(edot/alph)^2" Labels [0, 0] SrcBlock "Square" SrcPort 1 DstBlock "divide by 2" DstPort 1 } Line { Name "<" SrcBlock "Mux3" SrcPort 1 Points [20, 0] Branch { Labels [1, 0] Points [80, 0] Branch { Points [0, 20] Branch { Points [0, 30] Branch { Points [0, 30] Branch { Points [0, 30] DstBlock "Subsystem3" DstPort 1 } Branch { DstBlock "Subsystem2" DstPort 1 } } Branch { DstBlock "Subsystem1" DstPort 1 } } Branch { DstBlock "Subsystem" DstPort 1 } } Branch { Points [-80, 0; 0, 135] DstBlock "Divide\ne and edot\nby N*alph" DstPort 1 } } Branch { Labels [-1, 1] DstBlock "Chart" DstPort 2 } } Line { Name "e" Labels [0, 1] SrcBlock "Position" SrcPort 1 DstBlock "Mux3" DstPort 1 } Line { Name "edot" Labels [0, 1] SrcBlock "Rate" SrcPort 1 DstBlock "Mux3" DstPort 2 } Line { SrcBlock "Data Store\nRead1" SrcPort 1 Points [0, 15] Branch { DstBlock "Chart" DstPort 1 } Branch { Points [0, 65] Branch { DstBlock "Subsystem" DstPort 2 } Branch { Points [0, 30] Branch { DstBlock "Subsystem1" DstPort 2 } Branch { Points [0, 30] Branch { DstBlock "Subsystem2" DstPort 2 } Branch { Points [0, 30] DstBlock "Subsystem3" DstPort 2 } } } } } Annotation { Position [974, 315] BackgroundColor "yellow" Text "Logic implements:\n~(enable | stopjets)" " | stopjets" } } } Block { BlockType Constant Name "u,v to q,r\nconversion matrix" Position [790, 269, 845, 291] Orientation "left" BackgroundColor "cyan" NamePlacement "alternate" Value "[1 -1; 1 1]" VectorParams1D off } Block { BlockType SubSystem Name "v Control Law" Ports [2, 1] Position [595, 377, 720, 433] BackgroundColor "cyan" NamePlacement "alternate" AncestorBlock "libdap/Pitch Roll Control Law" ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" MaskType "Control Law" MaskDescription "Implements Control Law for the LM. Works fo" "r yaw, u and v jet axes." MaskPromptString "Single Jet Accel:|Single Jet Switch Curve A" "ccel:|Dead Band:|Min. Jet On Time:|Sample Time:" MaskStyleString "edit,edit,edit,edit,edit" MaskTunableValueString "on,on,on,on,on" MaskCallbackString "||||" MaskEnableString "on,on,on,on,on" MaskVisibilityString "on,on,on,on,on" MaskToolTipString "on,on,on,on,on" MaskVariables "alph=@1;alphs=@2;DB=@3;tmin=@4;delt=@5;" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" MaskValueString "alphv|alphsv|DB|tmin|delt" MaskVariableAliases ",,,," Port { PortNumber 1 Name "v Jets" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } System { Name "v Control Law" Location [92, 139, 1182, 694] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "Position" Position [15, 83, 45, 97] Port "1" Interpolate on Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Inport Name "Rate" Position [15, 118, 45, 132] Port "2" Interpolate on Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Gain Name "2*alphs/( alph + alphs )" Position [445, 370, 485, 410] Orientation "up" BackgroundColor "cyan" Gain "2*alphs/( alph + alphs )" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Fcn Name ">= 0" Position [480, 275, 505, 305] BackgroundColor "cyan" Expr "u*( u >= 0 )" } Block { BlockType Abs Name "Abs" Position [345, 410, 375, 440] BackgroundColor "cyan" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Accleration\nfrom a Single Jet" Position [35, 252, 80, 268] BackgroundColor "cyan" NamePlacement "alternate" Value "alph" VectorParams1D on } Block { BlockType SubSystem Name "Chart" Ports [8, 3] Position [570, 57, 685, 313] ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" MaskType "Stateflow" MaskDescription "Stateflow diagram" MaskDisplay "plot(sf('Private','sfblk','xIcon'),sf('" "Private','sfblk','yIcon'));text(0.5,0,sf('Private', 'sfblk', 'tIcon'),'Horizo" "ntalAl','Center','VerticalAl','Bottom');" MaskSelfModifiable on MaskIconFrame off MaskIconOpaque off MaskIconRotate "none" MaskIconUnits "autoscale" Port { PortNumber 1 Name "Jet Command" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } Port { PortNumber 2 Name "enable" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } Port { PortNumber 3 Name "ton" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } System { Name "Chart" Location [257, 457, 812, 717] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "Nofjets" Position [20, 101, 40, 119] Port "1" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "e" Position [20, 136, 40, 154] Port "2" PortDimensions "2" Interpolate on } Block { BlockType Inport Name "Firefct1" Position [20, 171, 40, 189] Port "3" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "Coastfct1" Position [20, 206, 40, 224] Port "4" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "Firefct2" Position [20, 246, 40, 264] Port "5" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "Coastfct2" Position [20, 281, 40, 299] Port "6" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "tjcalc1" Position [20, 316, 40, 334] Port "7" PortDimensions "1" Interpolate on } Block { BlockType Inport Name "tjcalc" Position [20, 351, 40, 369] Port "8" PortDimensions "1" Interpolate on } Block { BlockType Demux Name " Demux " Ports [1, 1] Position [270, 285, 320, 325] Outputs "1" BusSelectionMode off } Block { BlockType "S-Function" Name " SFunction " Tag "Stateflow S-Function dap3dof 2" Ports [8, 4] Position [180, 105, 230, 285] FunctionName "sf_sfun" PortCounts "[8 4]" SFunctionModules "''" } Block { BlockType Terminator Name " Terminator " Position [460, 296, 480, 314] } Block { BlockType Outport Name "jets" Position [460, 101, 480, 119] Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Block { BlockType Outport Name "enable" Position [460, 136, 480, 154] Port "2" OutputWhenDisabled "held" InitialOutput "[]" } Block { BlockType Outport Name "ton" Position [460, 171, 480, 189] Port "3" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock " SFunction " SrcPort 4 DstBlock "ton" DstPort 1 } Line { SrcBlock " SFunction " SrcPort 3 DstBlock "enable" DstPort 1 } Line { SrcBlock " SFunction " SrcPort 2 DstBlock "jets" DstPort 1 } Line { SrcBlock "tjcalc" SrcPort 1 DstBlock " SFunction " DstPort 8 } Line { SrcBlock "tjcalc1" SrcPort 1 DstBlock " SFunction " DstPort 7 } Line { SrcBlock "Coastfct2" SrcPort 1 DstBlock " SFunction " DstPort 6 } Line { SrcBlock "Firefct2" SrcPort 1 DstBlock " SFunction " DstPort 5 } Line { SrcBlock "Coastfct1" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { SrcBlock "Firefct1" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { SrcBlock "e" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { SrcBlock "Nofjets" SrcPort 1 Points [120, 0] DstBlock " SFunction " DstPort 1 } Line { SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { SrcBlock " SFunction " SrcPort 1 Points [0, 175] DstBlock " Demux " DstPort 1 } } } Block { BlockType DigitalClock Name "Clock at counter\ntime tic (0.000625) c" "lockt" Position [590, 416, 640, 434] BackgroundColor "yellow" NamePlacement "alternate" SampleTime "0.000625" } Block { BlockType DigitalClock Name "Clock at time\ndelt (Sample time)" Position [590, 436, 640, 454] BackgroundColor "yellow" SampleTime "delt" } Block { BlockType DataStoreRead Name "Data Store\nRead" Position [100, 349, 165, 381] ShowName off DataStoreName "PitchRollJets" SampleTime "delt" } Block { BlockType DataStoreRead Name "Data Store\nRead1" Position [312, 30, 378, 60] Orientation "down" ShowName off DataStoreName "PitchRollJets" SampleTime "delt" } Block { BlockType Constant Name "Dead Zone" Position [40, 470, 70, 500] BackgroundColor "cyan" Value "DB" VectorParams1D on } Block { BlockType Product Name "Divide\ne and edot\nby N*alph" Ports [3, 1] Position [200, 236, 220, 284] BackgroundColor "cyan" Inputs "*//" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Product Name "Divide DB\nby N*alph" Ports [3, 1] Position [185, 447, 205, 493] BackgroundColor "cyan" Inputs "//*" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType SubSystem Name "Jet On TIme Counter" Ports [3, 1, 1] Position [705, 394, 810, 456] BackgroundColor "yellow" ShowPortLabels on TreatAsAtomicUnit on RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" Port { PortNumber 1 Name "Counter\nOutput" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } System { Name "Jet On TIme Counter" Location [297, 74, 1237, 613] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "ton" Position [50, 93, 80, 107] Port "1" Interpolate on Port { PortNumber 1 Name "ton" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Inport Name "Clock at tics" Position [50, 153, 80, 167] Port "2" Interpolate on Port { PortNumber 1 Name "Time in clockt\nmultiples" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Inport Name "Clock at\nSample Time" Position [50, 218, 80, 232] Port "3" Interpolate on Port { PortNumber 1 Name "Time in delt\nmultiples" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType EnablePort Name "Enable" Ports [] Position [480, 15, 500, 35] StatesWhenEnabling "reset" ShowOutputPort off } Block { BlockType Constant Name "Constant" Position [400, 170, 430, 200] Orientation "left" NamePlacement "alternate" Value "0" VectorParams1D on } Block { BlockType RelationalOperator Name "Relational\nOperator" Position [400, 92, 430, 123] Operator ">" Port { PortNumber 1 Name "Stop Command" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum" Ports [2, 1] Position [260, 90, 280, 110] ShowName off IconShape "round" Inputs "|+-" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "Count down of ton" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [190, 150, 210, 170] ShowName off IconShape "round" Inputs "|+-" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "Time after last\nsample in clock " "tics" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Stop jets" Position [555, 103, 585, 117] Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { Name "Stop Command" Labels [1, 0] SrcBlock "Relational\nOperator" SrcPort 1 DstBlock "Stop jets" DstPort 1 } Line { Name "Count down of ton" Labels [1, 0] SrcBlock "Sum" SrcPort 1 DstBlock "Relational\nOperator" DstPort 1 } Line { Name "Time after last\nsample in clock ti" "cs" SrcBlock "Sum1" SrcPort 1 Points [55, 0] DstBlock "Sum" DstPort 2 } Line { Name "Time in delt\nmultiples" Labels [0, 1] SrcBlock "Clock at\nSample Time" SrcPort 1 Points [115, 0] DstBlock "Sum1" DstPort 2 } Line { Name "Time in clockt\nmultiples" Labels [0, 1] SrcBlock "Clock at tics" SrcPort 1 DstBlock "Sum1" DstPort 1 } Line { Name "ton" Labels [0, 0] SrcBlock "ton" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { SrcBlock "Constant" SrcPort 1 Points [-15, 0; 0, -70] DstBlock "Relational\nOperator" DstPort 2 } } } Block { BlockType Logic Name "Logical\nOperator" Ports [2, 1] Position [840, 229, 865, 256] BackgroundColor "yellow" Operator "NOR" Inputs "2" } Block { BlockType Logic Name "Logical\nOperator1" Ports [2, 1] Position [900, 238, 920, 262] BackgroundColor "yellow" Operator "OR" Inputs "2" } Block { BlockType Mux Name "Mux3" Ports [2, 1] Position [135, 73, 140, 142] ShowName off Inputs "2" DisplayOption "bar" Port { PortNumber 1 Name "<" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Product Name "Product" Ports [2, 1] Position [945, 226, 975, 259] BackgroundColor "yellow" Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on } Block { BlockType Selector Name "Select e/alph" Ports [1, 1] Position [265, 413, 295, 437] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e/alph" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot/alph" Ports [1, 1] Position [300, 247, 335, 273] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" } Block { BlockType Product Name "Square" Ports [2, 1] Position [413, 295, 437, 315] Orientation "down" BackgroundColor "cyan" NamePlacement "alternate" Inputs "2" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "(edot/alph)^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Math Name "Square root" Ports [1, 1] Position [520, 275, 550, 305] BackgroundColor "cyan" Operator "sqrt" OutputSignalType "auto" } Block { BlockType SubSystem Name "Subsystem" Ports [2, 1] Position [400, 123, 500, 152] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem" Location [303, 80, 1243, 619] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [135, 95, 165, 115] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alph)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "-++" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Firefct1" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Firefct1" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } Branch { DstBlock "Select e" DstPort 1 } } Line { SrcBlock "NofJets" SrcPort 1 Points [10, 0] DstBlock "edot^2" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } Branch { DstBlock "edot^2" DstPort 2 } } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Annotation { Position [275, 209] Text "Firefct1\nThis function establishes" " when the jets are to be fired in a negative sense\nFirefct1 = e + edot ^2/(2" "*N*alph) - DB" } } } Block { BlockType SubSystem Name "Subsystem1" Ports [2, 1] Position [400, 153, 500, 182] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem1" Location [301, 78, 1241, 617] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [135, 90, 165, 110] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alphs)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "-+-" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Coastfct1" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { DstBlock "edot^2" DstPort 2 } Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } } Line { SrcBlock "NofJets" SrcPort 1 Points [10, 0] DstBlock "edot^2" DstPort 1 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { DstBlock "Select e" DstPort 1 } Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Coastfct1" DstPort 1 } Annotation { Position [275, 209] Text "Coastfct1\nThis function establishe" "s when the jets are to be turned off (coasting)\nCoastfct1 = e - edot ^2/(2*N" "*alphs) - DB" } } } Block { BlockType SubSystem Name "Subsystem2" Ports [2, 1] Position [400, 183, 500, 212] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem2" Location [301, 78, 1241, 617] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [130, 90, 160, 110] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alph)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "++-" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Firefct2" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Firefct2" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } Branch { DstBlock "Select e" DstPort 1 } } Line { SrcBlock "NofJets" SrcPort 1 Points [15, 0] DstBlock "edot^2" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } Branch { DstBlock "edot^2" DstPort 2 } } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Annotation { Position [275, 209] Text "Firefct2\nThis function establishes" " when the jets are to be fired in a positive sense\nFirefct2 = e - edot ^2/(2" "*N*alph) + DB" } } } Block { BlockType SubSystem Name "Subsystem3" Ports [2, 1] Position [400, 213, 500, 242] BackgroundColor "cyan" ShowName off ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" System { Name "Subsystem3" Location [301, 78, 1241, 617] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on Block { BlockType Inport Name "e and edot" Position [30, 15, 60, 30] Orientation "down" BackgroundColor "cyan" Port "1" Interpolate on } Block { BlockType Inport Name "NofJets" Position [135, 90, 165, 110] BackgroundColor "cyan" NamePlacement "alternate" Port "2" Interpolate on } Block { BlockType Gain Name "1/(2*alph)" Position [280, 113, 370, 167] BackgroundColor "cyan" Gain "1/(2*alphs)" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Constant2" Position [315, 15, 345, 45] BackgroundColor "cyan" ShowName off Value "DB" VectorParams1D on } Block { BlockType Selector Name "Select e" Ports [1, 1] Position [75, 48, 105, 72] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[1]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "e" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Selector Name "Select edot" Ports [1, 1] Position [75, 129, 105, 151] BackgroundColor "cyan" InputType "Vector" ElementSrc "Internal" Elements "[2]" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "2" Port { PortNumber 1 Name "edot" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Sum Name "Sum1" Ports [3, 1] Position [385, 50, 405, 70] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "+++" SaturateOnIntegerOverflow on } Block { BlockType Product Name "edot^2" Ports [3, 1] Position [195, 121, 220, 159] BackgroundColor "cyan" Inputs "/**" Multiplication "Element-wise(.*)" SaturateOnIntegerOverflow on Port { PortNumber 1 Name "edot^2" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType Outport Name "Coastfct2" Position [430, 53, 460, 67] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "[]" } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Coastfct2" DstPort 1 } Line { Name "e" Labels [0, 0] SrcBlock "Select e" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Constant2" SrcPort 1 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "1/(2*alph)" SrcPort 1 Points [20, 0] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "e and edot" SrcPort 1 Points [0, 25] Branch { Points [0, 80] DstBlock "Select edot" DstPort 1 } Branch { DstBlock "Select e" DstPort 1 } } Line { SrcBlock "NofJets" SrcPort 1 Points [10, 0] DstBlock "edot^2" DstPort 1 } Line { Name "edot" Labels [0, 0] SrcBlock "Select edot" SrcPort 1 Points [35, 0] Branch { Points [0, 10] DstBlock "edot^2" DstPort 3 } Branch { DstBlock "edot^2" DstPort 2 } } Line { Name "edot^2" Labels [0, 0] SrcBlock "edot^2" SrcPort 1 DstBlock "1/(2*alph)" DstPort 1 } Annotation { Position [275, 209] Text "Coastfct2\nThis function establishe" "s when the jets are to be turned off (coasting)\nCoastfct1 = e + edot ^2/(2*N" "*alphs) + DB" } } } Block { BlockType Sum Name "Sum" Ports [3, 1] Position [415, 415, 435, 435] BackgroundColor "cyan" ShowName off IconShape "round" Inputs "++-" SaturateOnIntegerOverflow on } Block { BlockType Gain Name "divide by 2" Position [406, 355, 444, 385] Orientation "down" BackgroundColor "cyan" NamePlacement "alternate" Gain "0.5" Multiplication "Element-wise(K.*u)" SaturateOnIntegerOverflow on } Block { BlockType Outport Name "Jet\nCommand" Position [1020, 240, 1050, 250] BackgroundColor "yellow" Port "1" OutputWhenDisabled "held" InitialOutput "0" } Line { SrcBlock ">= 0" SrcPort 1 DstBlock "Square root" DstPort 1 } Line { SrcBlock "2*alphs/( alph + alphs )" SrcPort 1 DstBlock ">= 0" DstPort 1 } Line { Labels [0, 0] SrcBlock "Product" SrcPort 1 DstBlock "Jet\nCommand" DstPort 1 } Line { SrcBlock "Subsystem" SrcPort 1 DstBlock "Chart" DstPort 3 } Line { SrcBlock "Subsystem1" SrcPort 1 DstBlock "Chart" DstPort 4 } Line { SrcBlock "Subsystem2" SrcPort 1 DstBlock "Chart" DstPort 5 } Line { SrcBlock "Subsystem3" SrcPort 1 DstBlock "Chart" DstPort 6 } Line { SrcBlock "Logical\nOperator" SrcPort 1 DstBlock "Logical\nOperator1" DstPort 1 } Line { Name "Counter\nOutput" Labels [0, 0] SrcBlock "Jet On TIme Counter" SrcPort 1 Points [10, 0] Branch { Points [60, 0] DstBlock "Logical\nOperator1" DstPort 2 } Branch { Labels [-1, 0] DstBlock "Logical\nOperator" DstPort 2 } } Line { SrcBlock "Clock at time\ndelt (Sample time)" SrcPort 1 DstBlock "Jet On TIme Counter" DstPort 3 } Line { SrcBlock "Clock at counter\ntime tic (0.000625) c" "lockt" SrcPort 1 DstBlock "Jet On TIme Counter" DstPort 2 } Line { Name "ton" SrcBlock "Chart" SrcPort 3 DstBlock "Jet On TIme Counter" DstPort 1 } Line { SrcBlock "Logical\nOperator1" SrcPort 1 DstBlock "Product" DstPort 2 } Line { Name "enable" Labels [1, 0] SrcBlock "Chart" SrcPort 2 Points [65, 0; 0, 50] Branch { Labels [1, 0] DstBlock "Logical\nOperator" DstPort 1 } Branch { DstBlock "Jet On TIme Counter" DstPort enable } } Line { SrcBlock "Divide DB\nby N*alph" SrcPort 1 Points [215, 0] DstBlock "Sum" DstPort 3 } Line { SrcBlock "Dead Zone" SrcPort 1 DstBlock "Divide DB\nby N*alph" DstPort 3 } Line { Labels [1, 0] SrcBlock "Accleration\nfrom a Single Jet" SrcPort 1 Points [10, 0] Branch { Points [0, 210] DstBlock "Divide DB\nby N*alph" DstPort 2 } Branch { DstBlock "Divide\ne and edot\nby N*alph" DstPort 2 } } Line { SrcBlock "Data Store\nRead" SrcPort 1 Points [0, 0] Branch { DstBlock "Divide DB\nby N*alph" DstPort 1 } Branch { Points [0, -90] DstBlock "Divide\ne and edot\nby N*alph" DstPort 3 } } Line { Labels [0, 0] SrcBlock "Divide\ne and edot\nby N*alph" SrcPort 1 Points [20, 0] Branch { Points [0, 165] DstBlock "Select e/alph" DstPort 1 } Branch { DstBlock "Select edot/alph" DstPort 1 } } Line { SrcBlock "Abs" SrcPort 1 DstBlock "Sum" DstPort 2 } Line { SrcBlock "Sum" SrcPort 1 DstBlock "2*alphs/( alph + alphs )" DstPort 1 } Line { SrcBlock "divide by 2" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { Name "e/alph" Labels [0, 0] SrcBlock "Select e/alph" SrcPort 1 DstBlock "Abs" DstPort 1 } Line { SrcBlock "Select edot/alph" SrcPort 1 Points [80, 0] Branch { Points [10, 0] Branch { DstBlock "Square" DstPort 2 } Branch { DstBlock "Chart" DstPort 7 } } Branch { DstBlock "Square" DstPort 1 } } Line { Name "Jet Command" Labels [0, 0] SrcBlock "Chart" SrcPort 1 Points [235, 0; 0, 135] DstBlock "Product" DstPort 1 } Line { SrcBlock "Square root" SrcPort 1 DstBlock "Chart" DstPort 8 } Line { Name "(edot/alph)^2" Labels [0, 0] SrcBlock "Square" SrcPort 1 DstBlock "divide by 2" DstPort 1 } Line { Name "<" SrcBlock "Mux3" SrcPort 1 Points [20, 0] Branch { Labels [1, 0] Points [80, 0] Branch { Points [0, 20] Branch { Points [0, 30] Branch { Points [0, 30] Branch { Points [0, 30] DstBlock "Subsystem3" DstPort 1 } Branch { DstBlock "Subsystem2" DstPort 1 } } Branch { DstBlock "Subsystem1" DstPort 1 } } Branch { DstBlock "Subsystem" DstPort 1 } } Branch { Points [-80, 0; 0, 135] DstBlock "Divide\ne and edot\nby N*alph" DstPort 1 } } Branch { Labels [-1, 1] DstBlock "Chart" DstPort 2 } } Line { Name "e" Labels [0, 1] SrcBlock "Position" SrcPort 1 DstBlock "Mux3" DstPort 1 } Line { Name "edot" Labels [0, 1] SrcBlock "Rate" SrcPort 1 DstBlock "Mux3" DstPort 2 } Line { SrcBlock "Data Store\nRead1" SrcPort 1 Points [0, 15] Branch { DstBlock "Chart" DstPort 1 } Branch { Points [0, 65] Branch { DstBlock "Subsystem" DstPort 2 } Branch { Points [0, 30] Branch { DstBlock "Subsystem1" DstPort 2 } Branch { Points [0, 30] Branch { DstBlock "Subsystem2" DstPort 2 } Branch { Points [0, 30] DstBlock "Subsystem3" DstPort 2 } } } } } Annotation { Position [974, 315] BackgroundColor "yellow" Text "Logic implements:\n~(enable | stopjets)" " | stopjets" } } } Block { BlockType Outport Name "Yaw Jets" Position [785, 58, 815, 72] BackgroundColor "cyan" Port "1" OutputWhenDisabled "held" InitialOutput "0" } Block { BlockType Outport Name "Pitch/Roll Jets" Position [880, 378, 910, 392] BackgroundColor "cyan" Port "2" OutputWhenDisabled "held" InitialOutput "0" } Line { SrcBlock "q,r to u,v \nconversion2" SrcPort 1 Points [-15, 0; 0, 30] DstBlock "Convert Attitude to\nUV coords." DstPort 1 } Line { SrcBlock "q,r to u,v \nconversion1" SrcPort 1 Points [-15, 0; 0, 30] DstBlock "Convert Rate to\nUV coords." DstPort 1 } Line { Name "Pitch Rate" Labels [1, 1] SrcBlock "Rate Derivation (Pitch)" SrcPort 1 Points [40, 0] DstBlock "Mux" DstPort 2 } Line { Name "Roll Rate" Labels [1, 0] SrcBlock "Rate Derivation (Roll)" SrcPort 1 Points [40, 0] DstBlock "Mux" DstPort 1 } Line { SrcBlock "Demux" SrcPort 2 DstBlock "Rate Derivation (Roll)" DstPort 1 } Line { SrcBlock "Demux" SrcPort 3 DstBlock "Rate Derivation (Pitch)" DstPort 1 } Line { SrcBlock "Demux" SrcPort 1 DstBlock "Rate Derivation (Yaw)" DstPort 1 } Line { SrcBlock "Mux" SrcPort 1 DstBlock "Convert Rate to\nUV coords." DstPort 2 } Line { SrcBlock "Attitude\nMeas." SrcPort 1 Points [40, 0] Branch { DstBlock "Demux" DstPort 1 } Branch { DstBlock "Sum" DstPort 1 } } Line { Name "Yaw Rate" Labels [-1, 0] SrcBlock "Rate Derivation (Yaw)" SrcPort 1 DstBlock "Yaw Control Law" DstPort 2 } Line { Name "Yaw Jets" Labels [0, 0] SrcBlock "Yaw Control Law" SrcPort 1 DstBlock "Yaw Jets" DstPort 1 } Line { SrcBlock "From" SrcPort 1 DstBlock "Yaw Control Law" DstPort 1 } Line { SrcBlock "Sum" SrcPort 1 DstBlock "Demux1" DstPort 1 } Line { Name "Roll error" Labels [0, 0] SrcBlock "Demux1" SrcPort 2 DstBlock "Mux2" DstPort 1 } Line { Name "Pitch Error" Labels [0, 0] SrcBlock "Demux1" SrcPort 3 DstBlock "Mux2" DstPort 2 } Line { SrcBlock "Convert Rate to\nUV coords." SrcPort 1 Points [5, 0] DstBlock "Demux2" DstPort 1 } Line { Name "(u,v)" Labels [0, 0] SrcBlock "Convert Attitude to\nUV coords." SrcPort 1 DstBlock "Demux3" DstPort 1 } Line { Name "<" Labels [0, 0] SrcBlock "Mux2" SrcPort 1 DstBlock "Convert Attitude to\nUV coords." DstPort 2 } Line { SrcBlock "Attitude\nCmd." SrcPort 1 DstBlock "Sum" DstPort 2 } Line { Name "v Jets" Labels [0, 0] SrcBlock "v Control Law" SrcPort 1 Points [20, 0] DstBlock "Mux3" DstPort 2 } Line { Name "u Jets" Labels [0, 1] SrcBlock "u Control Law" SrcPort 1 Points [20, 0] DstBlock "Mux3" DstPort 1 } Line { Name "v" Labels [0, 0] SrcBlock "Demux3" SrcPort 2 DstBlock "v Control Law" DstPort 1 } Line { SrcBlock "Demux2" SrcPort 1 DstBlock "u Control Law" DstPort 2 } Line { Name "Yaw error" Labels [0, 0] SrcBlock "Demux1" SrcPort 1 DstBlock "Goto" DstPort 1 } Line { SrcBlock "Demux2" SrcPort 2 Points [15, 0; 33, 88; 0, 52] DstBlock "v Control Law" DstPort 2 } Line { SrcBlock "Mux3" SrcPort 1 DstBlock "Convert u,v to\nq,r coords." DstPort 2 } Line { SrcBlock "u,v to q,r\nconversion matrix" SrcPort 1 Points [-10, 0] DstBlock "Convert u,v to\nq,r coords." DstPort 1 } Line { Name "Pitch and Roll Jets" Labels [0, 1] SrcBlock "Convert u,v to\nq,r coords." SrcPort 1 Points [15, 0] DstBlock "Pitch/Roll Jets" DstPort 1 } Line { Name "u" Labels [0, 0] SrcBlock "Demux3" SrcPort 1 Points [15, 0; 34, -88; 0, -52] DstBlock "u Control Law" DstPort 1 } } } Block { BlockType DataStoreRead Name "Read data" Position [35, 455, 80, 485] DataStoreName "e_edot" SampleTime "delt" } Block { BlockType Reference Name "Single Jet (Ascent)\nor Two Jet Yaw\nCouples" Ports [2, 1] Position [570, 436, 600, 474] SourceBlock "simulink3/Nonlinear/Manual Switch" SourceType "Manual Switch" sw "1" action "0" } Block { BlockType Integrator Name "Small Angle\nPosition" Ports [2, 1] Position [805, 191, 850, 224] BackgroundColor "yellow" ExternalReset "none" InitialConditionSource "external" InitialCondition "0" LimitOutput off UpperSaturationLimit "inf" LowerSaturationLimit "-inf" ShowSaturationPort off ShowStatePort off AbsoluteTolerance "auto" Port { PortNumber 1 Name "Position" TestPoint off LinearAnalysisOutput off LinearAnalysisInput off RTWStorageClass "Auto" } } Block { BlockType SubSystem Name "SubSystem" Ports [] Position [651, 67, 903, 119] BackgroundColor "yellow" ShowName off OpenFcn "web http://www.mathworks.com/company/newsletter" "/sum99/lunar_module.shtml" FontName "Arial" ShowPortLabels on TreatAsAtomicUnit off RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" MaskInitialization "dispstr = sprintf('Read the \"News & Notes\" ar" "ticle\\nabout this model over the web.\\n(Double-Click Here)');" MaskDisplay "disp(dispstr)" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" System { Name "SubSystem" Location [261, 459, 759, 759] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" AutoZoom on } } Block { BlockType Sum Name "Sum" Ports [2, 1] Position [475, 182, 505, 213] BackgroundColor "lightBlue" IconShape "rectangular" Inputs "++" SaturateOnIntegerOverflow on } Block { BlockType Constant Name "Two Jet" Position [250, 435, 270, 455] BackgroundColor "green" NamePlacement "alternate" Value "2" VectorParams1D on } Block { BlockType Reference Name "Two Jet or\nFour Jet Yaw\nCouples" Ports [2, 1] Position [330, 436, 360, 474] SourceBlock "simulink3/Nonlinear/Manual Switch" SourceType "Manual Switch" sw "1" action "0" } Block { BlockType DataStoreWrite Name "Write\nPitchRoll Var" Position [630, 438, 700, 472] DataStoreName "PitchRollJets" SampleTime "-1" } Block { BlockType DataStoreWrite Name "Write Var" Position [390, 439, 440, 471] DataStoreName "NofJets" SampleTime "-1" } Block { BlockType ZeroOrderHold Name "Zero-Order\nHold at delt" Position [130, 200, 155, 230] BackgroundColor "cyan" SampleTime "delt" } Block { BlockType ZeroOrderHold Name "zoh" Position [130, 150, 155, 180] BackgroundColor "cyan" NamePlacement "alternate" ShowName off SampleTime "delt" } Line { SrcBlock "Inverse of the\nInertia Matrix" SrcPort 1 Points [-20, 0; 0, 30] DstBlock "I inverse times\nTorque" DstPort 1 } Line { Name "Omega dot" Labels [0, 1] SrcBlock "I inverse times\nTorque" SrcPort 1 DstBlock "Integrator" DstPort 1 } Line { Name "Inertia" Labels [2, 0] SrcBlock "Inertia Matrix" SrcPort 1 Points [10, 0] DstBlock "I Omega" DstPort 1 } Line { SrcBlock "Initial Rate" SrcPort 1 Points [-20, 0; 0, -40] DstBlock "Integrator" DstPort 2 } Line { SrcBlock "Initial Position" SrcPort 1 Points [-15, 0; 0, -50] DstBlock "Small Angle\nPosition" DstPort 2 } Line { Name "Omega" Labels [0, 0] SrcBlock "Integrator" SrcPort 1 Points [35, 0] Branch { Labels [-1, 1] DstBlock "Small Angle\nPosition" DstPort 1 } Branch { Points [0, 125] Branch { Labels [-1, 0] DstBlock "I Omega" DstPort 2 } Branch { Labels [-1, 1] Points [0, 35] DstBlock "H x Omega" DstPort 2 } } Branch { Points [0, -50] DstBlock "Rates" DstPort 1 } } Line { Name "Position" SrcBlock "Small Angle\nPosition" SrcPort 1 Points [10, 0] Branch { DstBlock "Attitudes" DstPort 1 } Branch { Labels [1, 1] Points [0, 185; -760, 0; 0, -180] DstBlock "Zero-Order\nHold at delt" DstPort 1 } } Line { SrcBlock "Sum" SrcPort 1 DstBlock "I inverse times\nTorque" DstPort 2 } Line { Name "Momentum (H)" Labels [0, 0] SrcBlock "I Omega" SrcPort 1 Points [-30, 0] DstBlock "H x Omega" DstPort 1 } Line { SrcBlock "H x Omega" SrcPort 1 Points [-15, 0; 0, -150] DstBlock "Sum" DstPort 2 } Line { Labels [1, 0] SrcBlock "Astronaut Attitude\nCommand\nto Autopilot" SrcPort 1 DstBlock "zoh" DstPort 1 } Line { SrcBlock "Pitch Accleration" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { SrcBlock "Mux" SrcPort 1 DstBlock "Pitch Accleration" DstPort 1 } Line { SrcBlock "Reaction Jet Control" SrcPort 1 Points [10, 0] Branch { DstBlock "Mux" DstPort 1 } Branch { DstBlock "Jet Commands" DstPort 1 } } Line { SrcBlock "Reaction Jet Control" SrcPort 2 Points [25, 0] Branch { DstBlock "Mux" DstPort 2 } Branch { DstBlock "Jet Commands" DstPort 2 } } Line { SrcBlock "zoh" SrcPort 1 DstBlock "Reaction Jet Control" DstPort 1 } Line { SrcBlock "Zero-Order\nHold at delt" SrcPort 1 DstBlock "Reaction Jet Control" DstPort 2 } Line { SrcBlock "Ascent Single\nJets" SrcPort 1 DstBlock "Single Jet (Ascent)\nor Two Jet Yaw\nCouples" DstPort 2 } Line { SrcBlock "Nominal Two Jet Couples" SrcPort 1 DstBlock "Single Jet (Ascent)\nor Two Jet Yaw\nCouples" DstPort 1 } Line { SrcBlock "Single Jet (Ascent)\nor Two Jet Yaw\nCouples" SrcPort 1 DstBlock "Write\nPitchRoll Var" DstPort 1 } Line { SrcBlock "Four Jet" SrcPort 1 DstBlock "Two Jet or\nFour Jet Yaw\nCouples" DstPort 2 } Line { SrcBlock "Two Jet" SrcPort 1 DstBlock "Two Jet or\nFour Jet Yaw\nCouples" DstPort 1 } Line { SrcBlock "Two Jet or\nFour Jet Yaw\nCouples" SrcPort 1 DstBlock "Write Var" DstPort 1 } Line { SrcBlock "Read data" SrcPort 1 DstBlock "Phase Plane \nPlot" DstPort 1 } Annotation { Position [449, 37] BackgroundColor "cyan" Text "The Lunar Module Digital Autopilot Design" FontName "Arial" FontSize 28 FontWeight "bold" FontAngle "italic" } Annotation { Position [443, 80] Text "How it Would be Done Today!" FontName "Arial" FontSize 18 FontWeight "bold" FontAngle "italic" } Annotation { Position [823, 438] Text "Initialize Data Stores" } } } # Finite State Machines # -- File save dated 04-Oct-2000 19:38:22 # # Stateflow Version 4.0 (R12) dated Oct 4 2000, 19:34:51 # # Stateflow { machine { id 1 name "dap3dof" created "17-Sep-1997 12:07:59" firstTarget 149 debug { breakOn [1 1 0] runTimeCheck [0 0 0 0] } sfVersion 40012071 } chart { id 2 name "Reaction Jet Control/u Control Law/Chart" windowPosition [163.8 28.2 802.56 583.68] viewLimits [0 1000.174 15.334 734.021] zoomFactor 1.339 screen [1 1 1600 1200 1.041666666666667] treeNode [0 3 0 0] firstTransition 13 firstJunction 11 viewObj 2 machine 1 decomposition CLUSTER_CHART firstData 36 updateMethod DISCRETE sampleTime "delt" chartFileNumber 1 } state { id 3 labelString "Wait_for_stable_rate" position [83.525 93.999 153.009 50.315] fontSize 14 arrowSize 16.511 chart 2 treeNode [2 0 0 4] subviewer 2 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 4 labelString "Start" position [511.941 154.84 126.031 94.794] fontSize 14 arrowSize 11.145 chart 2 treeNode [2 0 3 5] subviewer 2 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 5 labelString "Fire_region_1\n" "en: jets=-Nofjets;\n" "ton=tjcalc+tjcalc1;" position [327.51 329.367 138.909 60.375] fontSize 14 arrowSize 16.511 chart 2 treeNode [2 0 4 6] subviewer 2 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 6 labelString "Coast_region_2\n" "en: jets=0;\n" "ton=0;\n" "enable=0;" position [751.507 342.931 113.217 73.567] fontSize 14 arrowSize 16.511 chart 2 treeNode [2 0 5 7] subviewer 2 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 7 labelString "Skip_a_Sample_2\n" "en:count--;" position [482.593 484.99 176.921 38.349] fontSize 14 arrowSize 8.16 chart 2 treeNode [2 0 6 8] subviewer 2 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 8 labelString "Skip_a_Sample_1\n" "en:count--;" position [83.44 486.573 155.316 41.961] fontSize 14 arrowSize 8.16 chart 2 treeNode [2 0 7 9] subviewer 2 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 9 labelString "Coast_region_1\n" "en: jets=0;\n" "ton=0;\n" "enable=0;" position [328.385 579.061 115.934 73.943] fontSize 14 arrowSize 16.511 chart 2 treeNode [2 0 8 10] subviewer 2 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 10 labelString "Fire_region_2\n" "en: jets=Nofjets;\n" "ton=tjcalc-tjcalc1;" position [739.644 582.184 142.381 61.414] fontSize 14 arrowSize 16.511 chart 2 treeNode [2 0 9 0] subviewer 2 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } junction { id 11 position [280.4678040210363 456.3571640090672 7.845383944584719] arrowSize 8.966 chart 2 linkNode [2 0 12] subviewer 2 type CONNECTIVE_JUNCTION } junction { id 12 position [684.1191488882689 536.3828068311653 7.845383944584719] arrowSize 8.966 chart 2 linkNode [2 11 0] subviewer 2 type CONNECTIVE_JUNCTION } transition { id 13 labelString "[count==0]" labelPosition [280.104 57.788 64.279 19.251] fontSize 14 arrowSize 11.145 src { id 3 intersection [2 1 0 0.525185123245093 236.5349552109389 120.4236395460176 0] } dst { id 4 intersection [1 0 -1 0.4317943817241134 566.3604810479719 154.8403175688534 0] } midPoint [351.845147761782 74.29948436942504] chart 2 linkNode [2 0 14] dataLimits [236.535 569.704 58.521 154.84] subviewer 2 } transition { id 14 labelString "/count=2;" labelPosition [63.106 74.61 57.851 19.251] fontSize 14 arrowSize 16.511 src { intersection [0 0 0 0.4625 42.40782946576184 70.06349161005863 0] } dst { id 3 intersection [1 0 -1 0.3345342032418852 134.7123770096945 93.99919448992384 0] } midPoint [81.79676764675128 68.15056297989045] chart 2 linkNode [2 13 15] dataLimits [42.408 139.666 64.845 93.999] subviewer 2 } transition { id 15 labelString "/count--;" labelPosition [142.768 180.921 61.707 19.251] fontSize 14 arrowSize 16.511 src { id 3 intersection [3 0 1 0.263394136726765 196.233154253979 144.3137290921578 0] } dst { id 3 intersection [3 0 1 0.6654657967581148 134.7123770096945 144.3137290921578 0] } midPoint [181.8533401009667 175.419981033864] chart 2 linkNode [2 14 16] dataLimits [129.759 196.233 144.314 179.794] subviewer 2 } transition { id 16 labelString "[ (e[1]<0 & Firefct2<0) | (e[1]>0 & Coastfct2>0) ]" labelPosition [711.33 153.107 298.252 19.251] fontSize 14 arrowSize 16.511 src { id 4 intersection [2 1 0 0.1988163105578124 637.9717523091094 173.6868280036249 0] } dst { id 10 intersection [2 1 0 0.5667049915126292 882.024953166185 616.9873474094528 0] } midPoint [986.9430440137872 500.3482053540687] chart 2 linkNode [2 15 17] dataLimits [637.972 994.737 172.383 621.941] subviewer 2 } transition { id 17 labelString "[ (e[1]<0 & Coastfct1<=0 & Firefct2>0) ]" labelPosition [261.835 161.396 245.544 19.251] fontSize 14 arrowSize 16.511 src { id 4 intersection [4 -1 0 0.7690323022713463 511.9411940783963 176.7345731916709 0] } dst { id 9 intersection [3 0 1 0.5768004578970466 377.4486643683964 653.0038000496705 0] } midPoint [81.40380961776395 571.0610975383665] chart 2 linkNode [2 16 18] dataLimits [24.953 511.941 176.735 691.567] subviewer 2 } transition { id 18 labelString "[ (e[1]>0 & Coastfct2>=0 & Firefct1<0) ]" labelPosition [648.968 291.156 245.544 19.251] fontSize 14 arrowSize 16.511 src { id 4 intersection [2 1 0 0.5652173913043463 637.9717523091094 208.4192992592623 0] } dst { id 6 intersection [1 0 -1 0.5508750929072579 813.8753254705059 342.9313728620731 0] } midPoint [717.8013310371048 220.2549059662833] chart 2 linkNode [2 17 19] dataLimits [637.972 818.829 208.419 342.931] subviewer 2 } transition { id 19 labelString "[ (e[1]>0 & Firefct1>0) | (e[1]<0 & Coastfct1<0) ]" labelPosition [249.265 278.195 298.252 19.251] fontSize 14 arrowSize 16.511 src { id 4 intersection [4 -1 0 0.3695652173913059 511.9411940783963 214.6014894543095 0] } dst { id 5 intersection [1 0 -1 0.3761968529639385 379.7673355518524 329.3670925684118 0] } midPoint [446.6595660919443 233.8833886047286] chart 2 linkNode [2 18 20] dataLimits [374.814 511.941 214.601 329.367] subviewer 2 } transition { id 20 labelString "[e[1]>0 & Firefct1>0]" labelPosition [589.328 342.147 127.271 19.251] fontSize 14 arrowSize 16.511 src { id 6 intersection [4 -1 0 0.7362480538433518 751.5069339248726 362.3348696909194 0] } dst { id 5 intersection [2 1 0 0.5333296594174887 466.4194240239923 361.5666511312382 0] } midPoint [656.9490632928854 362.1207004335479] chart 2 linkNode [2 19 21] dataLimits [466.419 751.507 356.613 366.52] subviewer 2 } transition { id 21 labelString "[count==0]" labelPosition [582.373 377.752 64.279 19.251] fontSize 14 arrowSize 16.511 src { id 7 intersection [1 0 -1 0.3974806243417 552.9153328946444 484.9900134854526 0] } dst { id 6 intersection [4 -1 0 0.3890013329289441 751.5069339248726 387.8808447871118 0] } midPoint [602.857707609433 415.1109615864685] chart 2 linkNode [2 20 23] dataLimits [552.915 751.507 382.928 484.99] subviewer 2 } transition { id 22 labelPosition [435.114 395.669 10.285 19.251] fontSize 14 arrowSize 16.511 src { id 5 intersection [3 0 1 0.1354358187105796 447.6061227430236 389.7416807696292 0] } dst { id 5 intersection [3 0 1 0.417416269173039 408.4364022038062 389.7416807696292 0] } midPoint [436.2451597016932 413.9739498060508] chart 2 linkNode [2 24 25] dataLimits [403.483 447.606 389.742 416.107] subviewer 2 } transition { id 23 labelString "[ton<2*delt]/enable=1;" labelPosition [165.24 395.69 132.414 19.251] fontSize 14 arrowSize 8.966 src { id 5 intersection [3 0 1 0.8171093294538161 352.9152997763635 389.7416807696292 0] } dst { id 11 intersection [0 -0.06266134173901142 -0.9980348472129954 -1 279.9762017366109 448.5271974426063 0] } midPoint [332.0687172536699 405.3811533211255] chart 2 linkNode [2 21 24] dataLimits [276.73 352.915 389.742 448.527] subviewer 2 } transition { id 24 labelString "[e[1]<0 & Coastfct1<=0]" labelPosition [395.899 441.789 147.841 19.251] fontSize 14 arrowSize 16.511 src { id 5 intersection [3 0 1 0.5403308245028291 391.3624214559421 389.7416807696292 0] } dst { id 9 intersection [1 0 -1 0.5432136847716925 391.3624214559421 579.0607512492447 0] } midPoint [391.3624214559421 450.9887184048741] chart 2 linkNode [2 23 22] dataLimits [386.409 396.316 389.742 579.061] subviewer 2 } transition { id 25 labelString "/enable=0;" labelPosition [755.253 496.795 61.707 19.251] fontSize 14 arrowSize 16.511 src { id 12 intersection [0 0.6479256044709076 -0.7617036241682252 -1 689.2023740228703 530.406949447584 0] } dst { id 6 intersection [3 0 1 0.5347501214302841 804.1811008400202 416.4985905133209 0] } midPoint [733.6918201430535 507.9745253099256] chart 2 linkNode [2 22 26] dataLimits [689.202 809.134 416.499 530.407] subviewer 2 } transition { id 26 labelString "[e[1]>0 & Coastfct2>0]" labelPosition [847.181 463.119 141.413 19.251] fontSize 14 arrowSize 16.511 src { id 10 intersection [1 0 -1 0.721109506225036 842.316383561292 582.1839579011951 0] } dst { id 6 intersection [3 0 1 0.1937695855286671 842.785873221937 416.4985905133209 0] } midPoint [842.4472711201732 529.1572928093711] chart 2 linkNode [2 25 27] dataLimits [837.833 847.739 416.499 582.184] subviewer 2 } transition { id 27 labelString "/enable=0;" labelPosition [283.082 498.081 61.707 19.251] fontSize 14 arrowSize 16.511 src { id 11 intersection [0 0.9647936871459627 0.2630078729682792 -1 288.0369809240079 458.4205617529519 0] } dst { id 9 intersection [1 0 -1 0.3424431610482048 368.0862288730527 579.0607512492447 0] } midPoint [329.1979416071953 478.1175390963088] chart 2 linkNode [2 26 28] dataLimits [288.037 373.04 458.421 579.061] subviewer 2 } transition { id 28 labelString "/ton=ton-delt;" labelPosition [624.384 443.256 88.704 19.251] fontSize 14 arrowSize 8.16 src { id 7 intersection [1 0 -1 0.7956952487411242 623.3676892651533 484.9900134854526 0] } dst { id 7 intersection [1 0 -1 0.5171316910308433 574.0840672253046 484.9900134854526 0] } midPoint [619.3502820303618 467.2045956670385] chart 2 linkNode [2 27 29] dataLimits [571.636 623.368 458.923 484.99] subviewer 2 } transition { id 29 labelString "[ton>tmin]/count=2;" labelPosition [148.457 440.09 119.558 19.251] fontSize 14 arrowSize 8.16 src { id 11 intersection [0 -0.884861949510788 0.4658533356196645 -1 273.5257222891704 460.011962288869 0] } dst { id 8 intersection [1 0 -1 0.4369093656796391 151.2989537012356 486.5732036682836 0] } midPoint [223.0766576909866 463.8933576485423] chart 2 linkNode [2 28 30] dataLimits [148.851 273.526 460.012 486.573] subviewer 2 } transition { id 30 labelString "[ton>tmin]/count=2;" labelPosition [565.989 560.17 119.558 19.251] fontSize 14 arrowSize 8.16 src { id 12 intersection [0 -0.8215086678225626 0.5701960265491146 -1 677.6740979753966 540.8562135831197 0] } dst { id 7 intersection [3 0 1 0.6089666989588906 551.7746688130725 523.3394415770878 0] } midPoint [626.5954795239023 557.6248087309327] chart 2 linkNode [2 29 31] dataLimits [549.327 677.674 523.339 558.238] subviewer 2 } transition { id 31 labelString "/ton=ton-delt;" labelPosition [113.395 550.915 88.704 19.251] fontSize 14 arrowSize 8.16 src { id 8 intersection [3 0 1 0.353485917412915 183.8540214485592 528.5339897857547 0] } dst { id 8 intersection [3 0 1 0.8070940722001382 113.4011975440418 528.5339897857547 0] } midPoint [164.2126983052928 546.7905798200061] chart 2 linkNode [2 30 32] dataLimits [110.953 183.854 528.534 550.976] subviewer 2 } transition { id 32 labelString "[count==0]" labelPosition [245.797 560.855 64.279 19.251] fontSize 14 arrowSize 16.511 src { id 8 intersection [3 0 1 0.2320842377109423 202.7097035422106 528.5339897857547 0] } dst { id 9 intersection [4 -1 0 0.654380122185806 328.3853165208529 604.6169387408569 0] } midPoint [223.8028807511219 573.0825432250441] chart 2 linkNode [2 31 33] dataLimits [202.71 328.385 528.534 609.57] subviewer 2 } transition { id 33 labelString "[ton<2*delt]/enable=1;" labelPosition [712.526 533.075 132.414 19.251] fontSize 14 arrowSize 8.966 src { id 10 intersection [1 0 -1 0.3957005362151458 795.9844897746195 582.1839579011951 0] } dst { id 12 intersection [0 0.730382581933701 0.6830382741895658 -1 689.8492806699759 541.741504341029 0] } midPoint [775.1933705184292 562.3350382711062] chart 2 linkNode [2 32 34] dataLimits [689.849 795.984 541.742 582.184] subviewer 2 } transition { id 34 labelString "[e[1]<0 & Firefct2<0]" labelPosition [537.893 621.306 127.271 19.251] fontSize 14 arrowSize 16.511 src { id 9 intersection [2 1 0 0.5464109369798621 444.3196287456229 619.4640418274331 0] } dst { id 10 intersection [4 -1 0 0.3864206431410968 739.6444472284898 619.8660705891168 0] } midPoint [541.9047598321011 619.5737157335113] chart 2 linkNode [2 33 35] dataLimits [444.32 739.644 614.913 624.819] subviewer 2 } transition { id 35 labelPosition [810.996 659.502 10.285 19.251] fontSize 14 arrowSize 16.511 src { id 10 intersection [3 0 1 0.2788904937749639 842.316383561292 643.5975505631579 0] } dst { id 10 intersection [3 0 1 0.6133659435852477 794.6935997935656 643.5975505631579 0] } midPoint [828.2554582395217 670.0836610240111] chart 2 linkNode [2 34 0] dataLimits [789.74 842.316 643.598 672.627] subviewer 2 } data { id 36 name "jets" linkNode [2 0 37] scope OUTPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 37 name "Nofjets" linkNode [2 36 38] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } } data { id 38 name "e" linkNode [2 37 39] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } array { size "2" } } debug [1] } data { id 39 name "enable" linkNode [2 38 40] scope OUTPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 40 name "ton" linkNode [2 39 41] scope OUTPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 41 name "Firefct1" linkNode [2 40 42] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 42 name "Coastfct1" linkNode [2 41 43] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 43 name "Firefct2" linkNode [2 42 44] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 44 name "Coastfct2" linkNode [2 43 45] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 45 name "tjcalc1" linkNode [2 44 46] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 46 name "tjcalc" linkNode [2 45 47] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 47 name "tmin" linkNode [2 46 48] scope CONSTANT_DATA initFromWorkspace 1 machine 1 dataType "double" props { range { minimum "" maximum "" } } } data { id 48 name "delt" linkNode [2 47 49] scope CONSTANT_DATA initFromWorkspace 1 machine 1 dataType "double" props { range { minimum "" maximum "" } } } data { id 49 name "count" linkNode [2 48 0] scope LOCAL_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } instance { id 50 name "Reaction Jet Control/u Control Law/Chart" machine 1 chart 2 } chart { id 51 name "Reaction Jet Control/v Control Law/Chart" windowPosition [163.8 28.2 802.56 583.68] viewLimits [0 1000.174 15.334 734.021] zoomFactor 1.339 screen [1 1 1600 1200 1.041666666666667] treeNode [0 52 0 0] firstTransition 62 firstJunction 60 viewObj 51 machine 1 decomposition CLUSTER_CHART firstData 85 updateMethod DISCRETE sampleTime "delt" chartFileNumber 2 } state { id 52 labelString "Wait_for_stable_rate" position [83.525 93.999 153.009 50.315] fontSize 14 arrowSize 16.511 chart 51 treeNode [51 0 0 53] subviewer 51 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 53 labelString "Start" position [511.941 154.84 126.031 94.794] fontSize 14 arrowSize 11.145 chart 51 treeNode [51 0 52 54] subviewer 51 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 54 labelString "Fire_region_1\n" "en: jets=-Nofjets;\n" "ton=tjcalc+tjcalc1;" position [327.51 329.367 138.909 60.375] fontSize 14 arrowSize 16.511 chart 51 treeNode [51 0 53 55] subviewer 51 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 55 labelString "Coast_region_2\n" "en: jets=0;\n" "ton=0;\n" "enable=0;" position [751.507 342.931 113.217 73.567] fontSize 14 arrowSize 16.511 chart 51 treeNode [51 0 54 56] subviewer 51 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 56 labelString "Skip_a_Sample_2\n" "en:count--;" position [482.593 484.99 176.921 38.349] fontSize 14 arrowSize 8.16 chart 51 treeNode [51 0 55 57] subviewer 51 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 57 labelString "Skip_a_Sample_1\n" "en:count--;" position [83.44 486.573 155.316 41.961] fontSize 14 arrowSize 8.16 chart 51 treeNode [51 0 56 58] subviewer 51 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 58 labelString "Coast_region_1\n" "en: jets=0;\n" "ton=0;\n" "enable=0;" position [328.385 579.061 115.934 73.943] fontSize 14 arrowSize 16.511 chart 51 treeNode [51 0 57 59] subviewer 51 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 59 labelString "Fire_region_2\n" "en: jets=Nofjets;\n" "ton=tjcalc-tjcalc1;" position [739.644 582.184 142.381 61.414] fontSize 14 arrowSize 16.511 chart 51 treeNode [51 0 58 0] subviewer 51 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } junction { id 60 position [280.4678040210363 456.3571640090672 7.845383944584719] arrowSize 8.966 chart 51 linkNode [51 0 61] subviewer 51 type CONNECTIVE_JUNCTION } junction { id 61 position [684.1191488882689 536.3828068311653 7.845383944584719] arrowSize 8.966 chart 51 linkNode [51 60 0] subviewer 51 type CONNECTIVE_JUNCTION } transition { id 62 labelString "[count==0]" labelPosition [280.104 57.788 64.279 19.251] fontSize 14 arrowSize 11.145 src { id 52 intersection [2 1 0 0.525185123245093 236.5349552109389 120.4236395460176 0] } dst { id 53 intersection [1 0 -1 0.4317943817241134 566.3604810479719 154.8403175688534 0] } midPoint [351.845147761782 74.29948436942504] chart 51 linkNode [51 0 63] dataLimits [236.535 569.704 58.521 154.84] subviewer 51 } transition { id 63 labelString "/count=2;" labelPosition [63.106 74.61 57.851 19.251] fontSize 14 arrowSize 16.511 src { intersection [0 0 0 0.4625 42.40782946576184 70.06349161005863 0] } dst { id 52 intersection [1 0 -1 0.3345342032418852 134.7123770096945 93.99919448992384 0] } midPoint [81.79676764675128 68.15056297989045] chart 51 linkNode [51 62 64] dataLimits [42.408 139.666 64.845 93.999] subviewer 51 } transition { id 64 labelString "/count--;" labelPosition [142.768 180.921 61.707 19.251] fontSize 14 arrowSize 16.511 src { id 52 intersection [3 0 1 0.263394136726765 196.233154253979 144.3137290921578 0] } dst { id 52 intersection [3 0 1 0.6654657967581148 134.7123770096945 144.3137290921578 0] } midPoint [181.8533401009667 175.419981033864] chart 51 linkNode [51 63 65] dataLimits [129.759 196.233 144.314 179.794] subviewer 51 } transition { id 65 labelString "[ (e[1]<0 & Firefct2<0) | (e[1]>0 & Coastfct2>0) ]" labelPosition [711.33 153.107 298.252 19.251] fontSize 14 arrowSize 16.511 src { id 53 intersection [2 1 0 0.1988163105578124 637.9717523091094 173.6868280036249 0] } dst { id 59 intersection [2 1 0 0.5667049915126292 882.024953166185 616.9873474094528 0] } midPoint [986.9430440137872 500.3482053540687] chart 51 linkNode [51 64 66] dataLimits [637.972 994.737 172.383 621.941] subviewer 51 } transition { id 66 labelString "[ (e[1]<0 & Coastfct1<=0 & Firefct2>0) ]" labelPosition [261.835 161.396 245.544 19.251] fontSize 14 arrowSize 16.511 src { id 53 intersection [4 -1 0 0.7690323022713463 511.9411940783963 176.7345731916709 0] } dst { id 58 intersection [3 0 1 0.5768004578970466 377.4486643683964 653.0038000496705 0] } midPoint [81.40380961776395 571.0610975383665] chart 51 linkNode [51 65 67] dataLimits [24.953 511.941 176.735 691.567] subviewer 51 } transition { id 67 labelString "[ (e[1]>0 & Coastfct2>=0 & Firefct1<0) ]" labelPosition [648.968 291.156 245.544 19.251] fontSize 14 arrowSize 16.511 src { id 53 intersection [2 1 0 0.5652173913043463 637.9717523091094 208.4192992592623 0] } dst { id 55 intersection [1 0 -1 0.5508750929072579 813.8753254705059 342.9313728620731 0] } midPoint [717.8013310371048 220.2549059662833] chart 51 linkNode [51 66 68] dataLimits [637.972 818.829 208.419 342.931] subviewer 51 } transition { id 68 labelString "[ (e[1]>0 & Firefct1>0) | (e[1]<0 & Coastfct1<0) ]" labelPosition [249.265 278.195 298.252 19.251] fontSize 14 arrowSize 16.511 src { id 53 intersection [4 -1 0 0.3695652173913059 511.9411940783963 214.6014894543095 0] } dst { id 54 intersection [1 0 -1 0.3761968529639385 379.7673355518524 329.3670925684118 0] } midPoint [446.6595660919443 233.8833886047286] chart 51 linkNode [51 67 69] dataLimits [374.814 511.941 214.601 329.367] subviewer 51 } transition { id 69 labelString "[e[1]>0 & Firefct1>0]" labelPosition [589.328 342.147 127.271 19.251] fontSize 14 arrowSize 16.511 src { id 55 intersection [4 -1 0 0.7362480538433518 751.5069339248726 362.3348696909194 0] } dst { id 54 intersection [2 1 0 0.5333296594174887 466.4194240239923 361.5666511312382 0] } midPoint [656.9490632928854 362.1207004335479] chart 51 linkNode [51 68 70] dataLimits [466.419 751.507 356.613 366.52] subviewer 51 } transition { id 70 labelString "[count==0]" labelPosition [582.373 377.752 64.279 19.251] fontSize 14 arrowSize 16.511 src { id 56 intersection [1 0 -1 0.3974806243417 552.9153328946444 484.9900134854526 0] } dst { id 55 intersection [4 -1 0 0.3890013329289441 751.5069339248726 387.8808447871118 0] } midPoint [602.857707609433 415.1109615864685] chart 51 linkNode [51 69 72] dataLimits [552.915 751.507 382.928 484.99] subviewer 51 } transition { id 71 labelPosition [435.114 395.669 10.285 19.251] fontSize 14 arrowSize 16.511 src { id 54 intersection [3 0 1 0.1354358187105796 447.6061227430236 389.7416807696292 0] } dst { id 54 intersection [3 0 1 0.417416269173039 408.4364022038062 389.7416807696292 0] } midPoint [436.2451597016932 413.9739498060508] chart 51 linkNode [51 73 74] dataLimits [403.483 447.606 389.742 416.107] subviewer 51 } transition { id 72 labelString "[ton<2*delt]/enable=1;" labelPosition [165.24 395.69 132.414 19.251] fontSize 14 arrowSize 8.966 src { id 54 intersection [3 0 1 0.8171093294538161 352.9152997763635 389.7416807696292 0] } dst { id 60 intersection [0 -0.06266134173901142 -0.9980348472129954 -1 279.9762017366109 448.5271974426063 0] } midPoint [332.0687172536699 405.3811533211255] chart 51 linkNode [51 70 73] dataLimits [276.73 352.915 389.742 448.527] subviewer 51 } transition { id 73 labelString "[e[1]<0 & Coastfct1<=0]" labelPosition [395.899 441.789 147.841 19.251] fontSize 14 arrowSize 16.511 src { id 54 intersection [3 0 1 0.5403308245028291 391.3624214559421 389.7416807696292 0] } dst { id 58 intersection [1 0 -1 0.5432136847716925 391.3624214559421 579.0607512492447 0] } midPoint [391.3624214559421 450.9887184048741] chart 51 linkNode [51 72 71] dataLimits [386.409 396.316 389.742 579.061] subviewer 51 } transition { id 74 labelString "/enable=0;" labelPosition [755.253 496.795 61.707 19.251] fontSize 14 arrowSize 16.511 src { id 61 intersection [0 0.6479256044709076 -0.7617036241682252 -1 689.2023740228703 530.406949447584 0] } dst { id 55 intersection [3 0 1 0.5347501214302841 804.1811008400202 416.4985905133209 0] } midPoint [733.6918201430535 507.9745253099256] chart 51 linkNode [51 71 75] dataLimits [689.202 809.134 416.499 530.407] subviewer 51 } transition { id 75 labelString "[e[1]>0 & Coastfct2>0]" labelPosition [847.181 463.119 141.413 19.251] fontSize 14 arrowSize 16.511 src { id 59 intersection [1 0 -1 0.721109506225036 842.316383561292 582.1839579011951 0] } dst { id 55 intersection [3 0 1 0.1937695855286671 842.785873221937 416.4985905133209 0] } midPoint [842.4472711201732 529.1572928093711] chart 51 linkNode [51 74 76] dataLimits [837.833 847.739 416.499 582.184] subviewer 51 } transition { id 76 labelString "/enable=0;" labelPosition [283.082 498.081 61.707 19.251] fontSize 14 arrowSize 16.511 src { id 60 intersection [0 0.9647936871459627 0.2630078729682792 -1 288.0369809240079 458.4205617529519 0] } dst { id 58 intersection [1 0 -1 0.3424431610482048 368.0862288730527 579.0607512492447 0] } midPoint [329.1979416071953 478.1175390963088] chart 51 linkNode [51 75 77] dataLimits [288.037 373.04 458.421 579.061] subviewer 51 } transition { id 77 labelString "/ton=ton-delt;" labelPosition [624.384 443.256 88.704 19.251] fontSize 14 arrowSize 8.16 src { id 56 intersection [1 0 -1 0.7956952487411242 623.3676892651533 484.9900134854526 0] } dst { id 56 intersection [1 0 -1 0.5171316910308433 574.0840672253046 484.9900134854526 0] } midPoint [619.3502820303618 467.2045956670385] chart 51 linkNode [51 76 78] dataLimits [571.636 623.368 458.923 484.99] subviewer 51 } transition { id 78 labelString "[ton>tmin]/count=2;" labelPosition [148.457 440.09 119.558 19.251] fontSize 14 arrowSize 8.16 src { id 60 intersection [0 -0.884861949510788 0.4658533356196645 -1 273.5257222891704 460.011962288869 0] } dst { id 57 intersection [1 0 -1 0.4369093656796391 151.2989537012356 486.5732036682836 0] } midPoint [223.0766576909866 463.8933576485423] chart 51 linkNode [51 77 79] dataLimits [148.851 273.526 460.012 486.573] subviewer 51 } transition { id 79 labelString "[ton>tmin]/count=2;" labelPosition [565.989 560.17 119.558 19.251] fontSize 14 arrowSize 8.16 src { id 61 intersection [0 -0.8215086678225626 0.5701960265491146 -1 677.6740979753966 540.8562135831197 0] } dst { id 56 intersection [3 0 1 0.6089666989588906 551.7746688130725 523.3394415770878 0] } midPoint [626.5954795239023 557.6248087309327] chart 51 linkNode [51 78 80] dataLimits [549.327 677.674 523.339 558.238] subviewer 51 } transition { id 80 labelString "/ton=ton-delt;" labelPosition [113.395 550.915 88.704 19.251] fontSize 14 arrowSize 8.16 src { id 57 intersection [3 0 1 0.353485917412915 183.8540214485592 528.5339897857547 0] } dst { id 57 intersection [3 0 1 0.8070940722001382 113.4011975440418 528.5339897857547 0] } midPoint [164.2126983052928 546.7905798200061] chart 51 linkNode [51 79 81] dataLimits [110.953 183.854 528.534 550.976] subviewer 51 } transition { id 81 labelString "[count==0]" labelPosition [245.797 560.855 64.279 19.251] fontSize 14 arrowSize 16.511 src { id 57 intersection [3 0 1 0.2320842377109423 202.7097035422106 528.5339897857547 0] } dst { id 58 intersection [4 -1 0 0.654380122185806 328.3853165208529 604.6169387408569 0] } midPoint [223.8028807511219 573.0825432250441] chart 51 linkNode [51 80 82] dataLimits [202.71 328.385 528.534 609.57] subviewer 51 } transition { id 82 labelString "[ton<2*delt]/enable=1;" labelPosition [712.526 533.075 132.414 19.251] fontSize 14 arrowSize 8.966 src { id 59 intersection [1 0 -1 0.3957005362151458 795.9844897746195 582.1839579011951 0] } dst { id 61 intersection [0 0.730382581933701 0.6830382741895658 -1 689.8492806699759 541.741504341029 0] } midPoint [775.1933705184292 562.3350382711062] chart 51 linkNode [51 81 83] dataLimits [689.849 795.984 541.742 582.184] subviewer 51 } transition { id 83 labelString "[e[1]<0 & Firefct2<0]" labelPosition [537.893 621.306 127.271 19.251] fontSize 14 arrowSize 16.511 src { id 58 intersection [2 1 0 0.5464109369798621 444.3196287456229 619.4640418274331 0] } dst { id 59 intersection [4 -1 0 0.3864206431410968 739.6444472284898 619.8660705891168 0] } midPoint [541.9047598321011 619.5737157335113] chart 51 linkNode [51 82 84] dataLimits [444.32 739.644 614.913 624.819] subviewer 51 } transition { id 84 labelPosition [810.996 659.502 10.285 19.251] fontSize 14 arrowSize 16.511 src { id 59 intersection [3 0 1 0.2788904937749639 842.316383561292 643.5975505631579 0] } dst { id 59 intersection [3 0 1 0.6133659435852477 794.6935997935656 643.5975505631579 0] } midPoint [828.2554582395217 670.0836610240111] chart 51 linkNode [51 83 0] dataLimits [789.74 842.316 643.598 672.627] subviewer 51 } data { id 85 name "jets" linkNode [51 0 86] scope OUTPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 86 name "Nofjets" linkNode [51 85 87] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } } data { id 87 name "e" linkNode [51 86 88] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } array { size "2" } } debug [1] } data { id 88 name "enable" linkNode [51 87 89] scope OUTPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 89 name "ton" linkNode [51 88 90] scope OUTPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 90 name "Firefct1" linkNode [51 89 91] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 91 name "Coastfct1" linkNode [51 90 92] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 92 name "Firefct2" linkNode [51 91 93] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 93 name "Coastfct2" linkNode [51 92 94] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 94 name "tjcalc1" linkNode [51 93 95] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 95 name "tjcalc" linkNode [51 94 96] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 96 name "tmin" linkNode [51 95 97] scope CONSTANT_DATA initFromWorkspace 1 machine 1 dataType "double" props { range { minimum "" maximum "" } } } data { id 97 name "delt" linkNode [51 96 98] scope CONSTANT_DATA initFromWorkspace 1 machine 1 dataType "double" props { range { minimum "" maximum "" } } } data { id 98 name "count" linkNode [51 97 0] scope LOCAL_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } instance { id 99 name "Reaction Jet Control/v Control Law/Chart" machine 1 chart 51 } chart { id 100 name "Reaction Jet Control/Yaw Control Law/Chart" windowPosition [96.6 11.88 802.56 583.68] viewLimits [9.758 1009.932 15.334 734.021] zoomFactor 1.339 screen [1 1 1600 1200 1.041666666666667] treeNode [0 101 0 0] firstTransition 111 firstJunction 109 viewObj 100 machine 1 decomposition CLUSTER_CHART firstData 134 updateMethod DISCRETE sampleTime "delt" chartFileNumber 4 } state { id 101 labelString "Wait_for_stable_rate" position [83.525 93.999 153.009 50.315] fontSize 14 arrowSize 16.511 chart 100 treeNode [100 0 0 102] subviewer 100 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 102 labelString "Start" position [511.941 154.84 126.031 94.794] fontSize 14 arrowSize 11.145 chart 100 treeNode [100 0 101 103] subviewer 100 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 103 labelString "Fire_region_1\n" "en: jets=-Nofjets;\n" "ton=tjcalc+tjcalc1;" position [327.51 329.367 138.909 60.375] fontSize 14 arrowSize 16.511 chart 100 treeNode [100 0 102 104] subviewer 100 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 104 labelString "Coast_region_2\n" "en: jets=0;\n" "ton=0;\n" "enable=0;" position [751.507 342.931 113.217 73.567] fontSize 14 arrowSize 16.511 chart 100 treeNode [100 0 103 105] subviewer 100 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 105 labelString "Skip_a_Sample_2\n" "en:count--;" position [482.593 484.99 176.921 38.349] fontSize 14 arrowSize 8.16 chart 100 treeNode [100 0 104 106] subviewer 100 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 106 labelString "Skip_a_Sample_1\n" "en:count--;" position [83.44 486.573 155.316 41.961] fontSize 14 arrowSize 8.16 chart 100 treeNode [100 0 105 107] subviewer 100 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 107 labelString "Coast_region_1\n" "en: jets=0;\n" "ton=0;\n" "enable=0;" position [328.385 579.061 115.934 73.943] fontSize 14 arrowSize 16.511 chart 100 treeNode [100 0 106 108] subviewer 100 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } state { id 108 labelString "Fire_region_2\n" "en: jets=Nofjets;\n" "ton=tjcalc-tjcalc1;" position [739.644 582.184 142.381 61.414] fontSize 14 arrowSize 16.511 chart 100 treeNode [100 0 107 0] subviewer 100 subviewS { pos [0 0 0 0] fontSize 2 } type OR_STATE decomposition CLUSTER_STATE } junction { id 109 position [280.4678040210363 456.3571640090672 7.845383944584719] arrowSize 8.966 chart 100 linkNode [100 0 110] subviewer 100 type CONNECTIVE_JUNCTION } junction { id 110 position [684.1191488882689 536.3828068311653 7.845383944584719] arrowSize 8.966 chart 100 linkNode [100 109 0] subviewer 100 type CONNECTIVE_JUNCTION } transition { id 111 labelString "[count==0]" labelPosition [280.104 57.788 64.279 19.251] fontSize 14 arrowSize 11.145 src { id 101 intersection [2 1 0 0.525185123245093 236.5349552109389 120.4236395460176 0] } dst { id 102 intersection [1 0 -1 0.4317943817241134 566.3604810479719 154.8403175688534 0] } midPoint [351.845147761782 74.29948436942504] chart 100 linkNode [100 0 112] dataLimits [236.535 569.704 58.521 154.84] subviewer 100 } transition { id 112 labelString "/count=2;" labelPosition [63.106 74.61 57.851 19.251] fontSize 14 arrowSize 16.511 src { intersection [0 0 0 0.4625 42.40782946576184 70.06349161005863 0] } dst { id 101 intersection [1 0 -1 0.3345342032418852 134.7123770096945 93.99919448992384 0] } midPoint [81.79676764675128 68.15056297989045] chart 100 linkNode [100 111 113] dataLimits [42.408 139.666 64.845 93.999] subviewer 100 } transition { id 113 labelString "/count--;" labelPosition [142.768 180.921 61.707 19.251] fontSize 14 arrowSize 16.511 src { id 101 intersection [3 0 1 0.263394136726765 196.233154253979 144.3137290921578 0] } dst { id 101 intersection [3 0 1 0.6654657967581148 134.7123770096945 144.3137290921578 0] } midPoint [181.8533401009667 175.419981033864] chart 100 linkNode [100 112 114] dataLimits [129.759 196.233 144.314 179.794] subviewer 100 } transition { id 114 labelString "[ (e[1]<0 & Firefct2<0) | (e[1]>0 & Coastfct2>0) ]" labelPosition [711.33 153.107 298.252 19.251] fontSize 14 arrowSize 16.511 src { id 102 intersection [2 1 0 0.1988163105578124 637.9717523091094 173.6868280036249 0] } dst { id 108 intersection [2 1 0 0.5667049915126292 882.024953166185 616.9873474094528 0] } midPoint [986.9430440137872 500.3482053540687] chart 100 linkNode [100 113 115] dataLimits [637.972 994.737 172.383 621.941] subviewer 100 } transition { id 115 labelString "[ (e[1]<0 & Coastfct1<=0 & Firefct2>0) ]" labelPosition [261.835 161.396 245.544 19.251] fontSize 14 arrowSize 16.511 src { id 102 intersection [4 -1 0 0.7690323022713463 511.9411940783963 176.7345731916709 0] } dst { id 107 intersection [3 0 1 0.5768004578970466 377.4486643683964 653.0038000496705 0] } midPoint [81.40380961776395 571.0610975383665] chart 100 linkNode [100 114 116] dataLimits [24.953 511.941 176.735 691.567] subviewer 100 } transition { id 116 labelString "[ (e[1]>0 & Coastfct2>=0 & Firefct1<0) ]" labelPosition [648.968 291.156 245.544 19.251] fontSize 14 arrowSize 16.511 src { id 102 intersection [2 1 0 0.5652173913043463 637.9717523091094 208.4192992592623 0] } dst { id 104 intersection [1 0 -1 0.5508750929072579 813.8753254705059 342.9313728620731 0] } midPoint [717.8013310371048 220.2549059662833] chart 100 linkNode [100 115 117] dataLimits [637.972 818.829 208.419 342.931] subviewer 100 } transition { id 117 labelString "[ (e[1]>0 & Firefct1>0) | (e[1]<0 & Coastfct1<0) ]" labelPosition [249.265 278.195 298.252 19.251] fontSize 14 arrowSize 16.511 src { id 102 intersection [4 -1 0 0.3695652173913059 511.9411940783963 214.6014894543095 0] } dst { id 103 intersection [1 0 -1 0.3761968529639385 379.7673355518524 329.3670925684118 0] } midPoint [446.6595660919443 233.8833886047286] chart 100 linkNode [100 116 118] dataLimits [374.814 511.941 214.601 329.367] subviewer 100 } transition { id 118 labelString "[e[1]>0 & Firefct1>0]" labelPosition [589.328 342.147 127.271 19.251] fontSize 14 arrowSize 16.511 src { id 104 intersection [4 -1 0 0.7362480538433518 751.5069339248726 362.3348696909194 0] } dst { id 103 intersection [2 1 0 0.5333296594174887 466.4194240239923 361.5666511312382 0] } midPoint [656.9490632928854 362.1207004335479] chart 100 linkNode [100 117 119] dataLimits [466.419 751.507 356.613 366.52] subviewer 100 } transition { id 119 labelString "[count==0]" labelPosition [582.373 377.752 64.279 19.251] fontSize 14 arrowSize 16.511 src { id 105 intersection [1 0 -1 0.3974806243417 552.9153328946444 484.9900134854526 0] } dst { id 104 intersection [4 -1 0 0.3890013329289441 751.5069339248726 387.8808447871118 0] } midPoint [602.857707609433 415.1109615864685] chart 100 linkNode [100 118 121] dataLimits [552.915 751.507 382.928 484.99] subviewer 100 } transition { id 120 labelPosition [435.114 395.669 10.285 19.251] fontSize 14 arrowSize 16.511 src { id 103 intersection [3 0 1 0.1354358187105796 447.6061227430236 389.7416807696292 0] } dst { id 103 intersection [3 0 1 0.417416269173039 408.4364022038062 389.7416807696292 0] } midPoint [436.2451597016932 413.9739498060508] chart 100 linkNode [100 122 123] dataLimits [403.483 447.606 389.742 416.107] subviewer 100 } transition { id 121 labelString "[ton<2*delt]/enable=1;" labelPosition [165.24 395.69 132.414 19.251] fontSize 14 arrowSize 8.966 src { id 103 intersection [3 0 1 0.8171093294538161 352.9152997763635 389.7416807696292 0] } dst { id 109 intersection [0 -0.06266134173901142 -0.9980348472129954 -1 279.9762017366109 448.5271974426063 0] } midPoint [332.0687172536699 405.3811533211255] chart 100 linkNode [100 119 122] dataLimits [276.73 352.915 389.742 448.527] subviewer 100 } transition { id 122 labelString "[e[1]<0 & Coastfct1<=0]" labelPosition [395.899 441.789 147.841 19.251] fontSize 14 arrowSize 16.511 src { id 103 intersection [3 0 1 0.5403308245028291 391.3624214559421 389.7416807696292 0] } dst { id 107 intersection [1 0 -1 0.5432136847716925 391.3624214559421 579.0607512492447 0] } midPoint [391.3624214559421 450.9887184048741] chart 100 linkNode [100 121 120] dataLimits [386.409 396.316 389.742 579.061] subviewer 100 } transition { id 123 labelString "/enable=0;" labelPosition [755.253 496.795 61.707 19.251] fontSize 14 arrowSize 16.511 src { id 110 intersection [0 0.6479256044709076 -0.7617036241682252 -1 689.2023740228703 530.406949447584 0] } dst { id 104 intersection [3 0 1 0.5347501214302841 804.1811008400202 416.4985905133209 0] } midPoint [733.6918201430535 507.9745253099256] chart 100 linkNode [100 120 124] dataLimits [689.202 809.134 416.499 530.407] subviewer 100 } transition { id 124 labelString "[e[1]>0 & Coastfct2>0]" labelPosition [847.181 463.119 141.413 19.251] fontSize 14 arrowSize 16.511 src { id 108 intersection [1 0 -1 0.721109506225036 842.316383561292 582.1839579011951 0] } dst { id 104 intersection [3 0 1 0.1937695855286671 842.785873221937 416.4985905133209 0] } midPoint [842.4472711201732 529.1572928093711] chart 100 linkNode [100 123 125] dataLimits [837.833 847.739 416.499 582.184] subviewer 100 } transition { id 125 labelString "/enable=0;" labelPosition [283.082 498.081 61.707 19.251] fontSize 14 arrowSize 16.511 src { id 109 intersection [0 0.9647936871459627 0.2630078729682792 -1 288.0369809240079 458.4205617529519 0] } dst { id 107 intersection [1 0 -1 0.3424431610482048 368.0862288730527 579.0607512492447 0] } midPoint [329.1979416071953 478.1175390963088] chart 100 linkNode [100 124 126] dataLimits [288.037 373.04 458.421 579.061] subviewer 100 } transition { id 126 labelString "/ton=ton-delt;" labelPosition [624.384 443.256 88.704 19.251] fontSize 14 arrowSize 8.16 src { id 105 intersection [1 0 -1 0.7956952487411242 623.3676892651533 484.9900134854526 0] } dst { id 105 intersection [1 0 -1 0.5171316910308433 574.0840672253046 484.9900134854526 0] } midPoint [619.3502820303618 467.2045956670385] chart 100 linkNode [100 125 127] dataLimits [571.636 623.368 458.923 484.99] subviewer 100 } transition { id 127 labelString "[ton>tmin]/count=2;" labelPosition [148.457 440.09 119.558 19.251] fontSize 14 arrowSize 8.16 src { id 109 intersection [0 -0.884861949510788 0.4658533356196645 -1 273.5257222891704 460.011962288869 0] } dst { id 106 intersection [1 0 -1 0.4369093656796391 151.2989537012356 486.5732036682836 0] } midPoint [223.0766576909866 463.8933576485423] chart 100 linkNode [100 126 128] dataLimits [148.851 273.526 460.012 486.573] subviewer 100 } transition { id 128 labelString "[ton>tmin]/count=2;" labelPosition [565.989 560.17 119.558 19.251] fontSize 14 arrowSize 8.16 src { id 110 intersection [0 -0.8215086678225626 0.5701960265491146 -1 677.6740979753966 540.8562135831197 0] } dst { id 105 intersection [3 0 1 0.6089666989588906 551.7746688130725 523.3394415770878 0] } midPoint [626.5954795239023 557.6248087309327] chart 100 linkNode [100 127 129] dataLimits [549.327 677.674 523.339 558.238] subviewer 100 } transition { id 129 labelString "/ton=ton-delt;" labelPosition [113.395 550.915 88.704 19.251] fontSize 14 arrowSize 8.16 src { id 106 intersection [3 0 1 0.353485917412915 183.8540214485592 528.5339897857547 0] } dst { id 106 intersection [3 0 1 0.8070940722001382 113.4011975440418 528.5339897857547 0] } midPoint [164.2126983052928 546.7905798200061] chart 100 linkNode [100 128 130] dataLimits [110.953 183.854 528.534 550.976] subviewer 100 } transition { id 130 labelString "[count==0]" labelPosition [245.797 560.855 64.279 19.251] fontSize 14 arrowSize 16.511 src { id 106 intersection [3 0 1 0.2320842377109423 202.7097035422106 528.5339897857547 0] } dst { id 107 intersection [4 -1 0 0.654380122185806 328.3853165208529 604.6169387408569 0] } midPoint [223.8028807511219 573.0825432250441] chart 100 linkNode [100 129 131] dataLimits [202.71 328.385 528.534 609.57] subviewer 100 } transition { id 131 labelString "[ton<2*delt]/enable=1;" labelPosition [712.526 533.075 132.414 19.251] fontSize 14 arrowSize 8.966 src { id 108 intersection [1 0 -1 0.3957005362151458 795.9844897746195 582.1839579011951 0] } dst { id 110 intersection [0 0.730382581933701 0.6830382741895658 -1 689.8492806699759 541.741504341029 0] } midPoint [775.1933705184292 562.3350382711062] chart 100 linkNode [100 130 132] dataLimits [689.849 795.984 541.742 582.184] subviewer 100 } transition { id 132 labelString "[e[1]<0 & Firefct2<0]" labelPosition [537.893 621.306 127.271 19.251] fontSize 14 arrowSize 16.511 src { id 107 intersection [2 1 0 0.5464109369798621 444.3196287456229 619.4640418274331 0] } dst { id 108 intersection [4 -1 0 0.3864206431410968 739.6444472284898 619.8660705891168 0] } midPoint [541.9047598321011 619.5737157335113] chart 100 linkNode [100 131 133] dataLimits [444.32 739.644 614.913 624.819] subviewer 100 } transition { id 133 labelPosition [810.996 659.502 10.285 19.251] fontSize 14 arrowSize 16.511 src { id 108 intersection [3 0 1 0.2788904937749639 842.316383561292 643.5975505631579 0] } dst { id 108 intersection [3 0 1 0.6133659435852477 794.6935997935656 643.5975505631579 0] } midPoint [828.2554582395217 670.0836610240111] chart 100 linkNode [100 132 0] dataLimits [789.74 842.316 643.598 672.627] subviewer 100 } data { id 134 name "jets" linkNode [100 0 135] scope OUTPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 135 name "Nofjets" linkNode [100 134 136] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } } data { id 136 name "e" linkNode [100 135 137] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } array { size "2" } } debug [1] } data { id 137 name "enable" linkNode [100 136 138] scope OUTPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 138 name "ton" linkNode [100 137 139] scope OUTPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 139 name "Firefct1" linkNode [100 138 140] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 140 name "Coastfct1" linkNode [100 139 141] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 141 name "Firefct2" linkNode [100 140 142] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 142 name "Coastfct2" linkNode [100 141 143] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 143 name "tjcalc1" linkNode [100 142 144] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 144 name "tjcalc" linkNode [100 143 145] scope INPUT_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } data { id 145 name "tmin" linkNode [100 144 146] scope CONSTANT_DATA initFromWorkspace 1 machine 1 dataType "double" props { range { minimum "" maximum "" } } } data { id 146 name "delt" linkNode [100 145 147] scope CONSTANT_DATA initFromWorkspace 1 machine 1 dataType "double" props { range { minimum "" maximum "" } } } data { id 147 name "count" linkNode [100 146 0] scope LOCAL_DATA machine 1 dataType "double" props { range { minimum "" maximum "" } } debug [1] } instance { id 148 name "Reaction Jet Control/Yaw Control Law/Chart" machine 1 chart 100 } target { id 149 name "sfun" description "Default Simulink S-Function Target." codeFlags "-sfun-debug-consistency-range-conflict" machine 1 linkNode [1 0 150] checksumOld [3519414036 451097640 917818198 2368130067] } target { id 150 name "rtw" description "Default RTW target." codeCommand "sfc -rtw" codeFlags "" makeCommand "" machine 1 linkNode [1 149 151] } target { id 151 codeFlags "-consistency-range-conflict" machine 1 linkNode [1 150 0] } }