Model { Name "Quadcopter_Model_R2015_A" Version 8.5 SavedCharacterEncoding "windows-1252" GraphicalInterface { NumRootInports 0 NumRootOutports 0 ParameterArgumentNames "" ComputedModelVersion "1.351" NumModelReferences 0 NumTestPointedSignals 0 } ScopeRefreshTime 0.035000 OverrideScopeRefreshTime on DisableAllScopes off DataTypeOverride "UseLocalSettings" DataTypeOverrideAppliesTo "AllNumericTypes" MinMaxOverflowLogging "UseLocalSettings" MinMaxOverflowArchiveMode "Overwrite" FPTRunName "Run 1" MaxMDLFileLineLength 120 Object { $PropName "BdWindowsInfo" $ObjectID 1 $ClassName "Simulink.BDWindowsInfo" Object { $PropName "WindowsInfo" $ObjectID 2 $ClassName "Simulink.WindowInfo" IsActive [1] Location [-8.0, -8.0, 1936.0, 1056.0] Object { $PropName "ModelBrowserInfo" $ObjectID 3 $ClassName "Simulink.ModelBrowserInfo" Visible [0] DockPosition "Left" Width [50] Height [50] Filter [9] } Object { $PropName "ExplorerBarInfo" $ObjectID 4 $ClassName "Simulink.ExplorerBarInfo" Visible [1] } Array { Type "Simulink.EditorInfo" Dimension 2 Object { $ObjectID 5 IsActive [0] ViewObjType "SimulinkSubsys" LoadSaveID "541" Extents [1755.0, 874.0] ZoomFactor [1.5] Offset [-408.3367559523798, 164.59047619047868] } Object { $ObjectID 6 IsActive [1] ViewObjType "SimulinkTopLevel" LoadSaveID "0" Extents [1755.0, 874.0] ZoomFactor [1.5] Offset [661.09523809523807, 324.57142857142884] } PropName "EditorsInfo" } } } Created "Mon Oct 17 15:29:19 2016" Creator "Andy" UpdateHistory "UpdateHistoryNever" ModifiedByFormat "%<Auto>" LastModifiedBy "Andy" ModifiedDateFormat "%<Auto>" LastModifiedDate "Mon Dec 05 22:25:03 2016" RTWModifiedTimeStamp 402877502 ModelVersionFormat "1.%<AutoIncrement:351>" ConfigurationManager "none" SampleTimeColors off SampleTimeAnnotations off LibraryLinkDisplay "disabled" WideLines off ShowLineDimensions off ShowPortDataTypes off ShowDesignRanges off ShowLoopsOnError on IgnoreBidirectionalLines off ShowStorageClass off ShowTestPointIcons on ShowSignalResolutionIcons on ShowViewerIcons on SortedOrder off ExecutionContextIcon off ShowLinearizationAnnotations on ShowMarkup on BlockNameDataTip off BlockParametersDataTip off BlockDescriptionStringDataTip off ToolBar on StatusBar on BrowserShowLibraryLinks off BrowserLookUnderMasks off SimulationMode "normal" PauseTimes "5" NumberOfSteps 1 SnapshotBufferSize 10 SnapshotInterval 10 NumberOfLastSnapshots 0 LinearizationMsg "none" Profile off ParamWorkspaceSource "MATLABWorkspace" AccelSystemTargetFile "accel.tlc" AccelTemplateMakefile "accel_default_tmf" AccelMakeCommand "make_rtw" TryForcingSFcnDF off Object { $PropName "DataLoggingOverride" $ObjectID 8 $ClassName "Simulink.SimulationData.ModelLoggingInfo" model_ "Quadcopter_Model_R2015_A" overrideMode_ [0.0] Array { Type "Cell" Dimension 1 Cell "Quadcopter_Model_R2015_A" PropName "logAsSpecifiedByModels_" } Array { Type "Cell" Dimension 1 Cell [] PropName "logAsSpecifiedByModelsSSIDs_" } } Object { $PropName "InstrumentedSignals" $ObjectID 9 $ClassName "Simulink.HMI.InstrumentedSignals" Persistence [] } RecordCoverage off CovPath "/" CovSaveName "covdata" CovMetricSettings "dwe" CovNameIncrementing off CovHtmlReporting off CovForceBlockReductionOff on CovEnableCumulative on covSaveCumulativeToWorkspaceVar off CovSaveSingleToWorkspaceVar off CovCumulativeVarName "covCumulativeData" CovCumulativeReport off CovReportOnPause on CovModelRefEnable "Off" CovExternalEMLEnable on CovSFcnEnable on CovBoundaryAbsTol 0.000010 CovBoundaryRelTol 0.010000 CovUseTimeInterval off CovStartTime 0 CovStopTime 0 ExtModeBatchMode off ExtModeEnableFloating on ExtModeTrigType "manual" ExtModeTrigMode "normal" ExtModeTrigPort "1" ExtModeTrigElement "any" ExtModeTrigDuration 1000 ExtModeTrigDurationFloating "auto" ExtModeTrigHoldOff 0 ExtModeTrigDelay 0 ExtModeTrigDirection "rising" ExtModeTrigLevel 0 ExtModeArchiveMode "off" ExtModeAutoIncOneShot off ExtModeIncDirWhenArm off ExtModeAddSuffixToVar off ExtModeWriteAllDataToWs off ExtModeArmWhenConnect on ExtModeSkipDownloadWhenConnect off ExtModeLogAll on ExtModeAutoUpdateStatusClock on ShowModelReferenceBlockVersion off ShowModelReferenceBlockIO off Array { Type "Handle" Dimension 1 Simulink.ConfigSet { $ObjectID 10 Version "1.15.0" Array { Type "Handle" Dimension 8 Simulink.SolverCC { $ObjectID 11 Version "1.15.0" StartTime "0.0" StopTime "20" AbsTol "auto" FixedStep "auto" InitialStep "auto" MaxNumMinSteps "-1" MaxOrder 5 ZcThreshold "auto" ConsecutiveZCsStepRelTol "10*128*eps" MaxConsecutiveZCs "1000" ExtrapolationOrder 4 NumberNewtonIterations 1 MaxStep "auto" MinStep "auto" MaxConsecutiveMinStep "1" RelTol "1e-3" SolverMode "SingleTasking" EnableConcurrentExecution off ConcurrentTasks off Solver ode45 SolverName ode45 SolverJacobianMethodControl "auto" ShapePreserveControl "DisableAll" ZeroCrossControl "UseLocalSettings" ZeroCrossAlgorithm "Nonadaptive" AlgebraicLoopSolver "TrustRegion" SolverResetMethod "Fast" PositivePriorityOrder off AutoInsertRateTranBlk off SampleTimeConstraint "Unconstrained" InsertRTBMode "Whenever possible" } Simulink.DataIOCC { $ObjectID 12 Version "1.15.0" Decimation "1" ExternalInput "[t, u]" FinalStateName "xFinal" InitialState "xInitial" LimitDataPoints off MaxDataPoints "1000" LoadExternalInput off LoadInitialState off SaveFinalState off SaveCompleteFinalSimState off SaveFormat "Dataset" SignalLoggingSaveFormat "Dataset" SaveOutput on SaveState off SignalLogging on DSMLogging on InspectSignalLogs off VisualizeSimOutput on SaveTime on ReturnWorkspaceOutputs off StateSaveName "xout" TimeSaveName "tout" OutputSaveName "yout" SignalLoggingName "logsout" DSMLoggingName "dsmout" OutputOption "RefineOutputTimes" OutputTimes "[]" ReturnWorkspaceOutputsName "out" Refine "1" } Simulink.OptimizationCC { $ObjectID 13 Version "1.15.0" Array { Type "Cell" Dimension 8 Cell "BooleansAsBitfields" Cell "PassReuseOutputArgsAs" Cell "PassReuseOutputArgsThreshold" Cell "ZeroExternalMemoryAtStartup" Cell "ZeroInternalMemoryAtStartup" Cell "OptimizeModelRefInitCode" Cell "NoFixptDivByZeroProtection" Cell "UseSpecifiedMinMax" PropName "DisabledProps" } BlockReduction on BooleanDataType on ConditionallyExecuteInputs on InlineParams off UseDivisionForNetSlopeComputation "off" UseFloatMulNetSlope off DefaultUnderspecifiedDataType "double" UseSpecifiedMinMax off InlineInvariantSignals off OptimizeBlockIOStorage on BufferReuse on EnhancedBackFolding off CachingGlobalReferences off GlobalBufferReuse on StrengthReduction off ExpressionFolding on BooleansAsBitfields off BitfieldContainerType "uint_T" EnableMemcpy on MemcpyThreshold 64 PassReuseOutputArgsAs "Structure reference" PassReuseOutputArgsThreshold 12 ExpressionDepthLimit 128 LocalBlockOutputs on RollThreshold 5 StateBitsets off DataBitsets off ActiveStateOutputEnumStorageType "Native Integer" ZeroExternalMemoryAtStartup on ZeroInternalMemoryAtStartup on InitFltsAndDblsToZero off NoFixptDivByZeroProtection off EfficientFloat2IntCast off EfficientMapNaN2IntZero on OptimizeModelRefInitCode off LifeSpan "inf" MaxStackSize "Inherit from target" BufferReusableBoundary on SimCompilerOptimization "off" AccelVerboseBuild off } Simulink.DebuggingCC { $ObjectID 14 Version "1.15.0" RTPrefix "error" ConsistencyChecking "none" ArrayBoundsChecking "none" SignalInfNanChecking "none" SignalRangeChecking "none" ReadBeforeWriteMsg "UseLocalSettings" WriteAfterWriteMsg "UseLocalSettings" WriteAfterReadMsg "UseLocalSettings" AlgebraicLoopMsg "warning" ArtificialAlgebraicLoopMsg "warning" SaveWithDisabledLinksMsg "warning" SaveWithParameterizedLinksMsg "warning" CheckSSInitialOutputMsg on UnderspecifiedInitializationDetection "Simplified" MergeDetectMultiDrivingBlocksExec "error" CheckExecutionContextPreStartOutputMsg off CheckExecutionContextRuntimeOutputMsg off SignalResolutionControl "UseLocalSettings" BlockPriorityViolationMsg "warning" MinStepSizeMsg "warning" TimeAdjustmentMsg "none" MaxConsecutiveZCsMsg "error" MaskedZcDiagnostic "warning" IgnoredZcDiagnostic "warning" SolverPrmCheckMsg "none" InheritedTsInSrcMsg "warning" MultiTaskDSMMsg "error" MultiTaskCondExecSysMsg "error" MultiTaskRateTransMsg "error" SingleTaskRateTransMsg "none" TasksWithSamePriorityMsg "warning" SigSpecEnsureSampleTimeMsg "warning" CheckMatrixSingularityMsg "none" IntegerOverflowMsg "warning" Int32ToFloatConvMsg "warning" ParameterDowncastMsg "error" ParameterOverflowMsg "error" ParameterUnderflowMsg "none" ParameterPrecisionLossMsg "warning" ParameterTunabilityLossMsg "warning" FixptConstUnderflowMsg "none" FixptConstOverflowMsg "none" FixptConstPrecisionLossMsg "none" UnderSpecifiedDataTypeMsg "none" UnnecessaryDatatypeConvMsg "none" VectorMatrixConversionMsg "none" InvalidFcnCallConnMsg "error" FcnCallInpInsideContextMsg "EnableAllAsError" SignalLabelMismatchMsg "none" UnconnectedInputMsg "warning" UnconnectedOutputMsg "warning" UnconnectedLineMsg "warning" SFcnCompatibilityMsg "none" FrameProcessingCompatibilityMsg "error" UniqueDataStoreMsg "none" BusObjectLabelMismatch "warning" RootOutportRequireBusObject "warning" AssertControl "UseLocalSettings" ModelReferenceIOMsg "none" ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error" ModelReferenceVersionMismatchMessage "none" ModelReferenceIOMismatchMessage "none" UnknownTsInhSupMsg "warning" ModelReferenceDataLoggingMessage "warning" ModelReferenceSymbolNameMessage "warning" ModelReferenceExtraNoncontSigs "error" StateNameClashWarn "none" SimStateInterfaceChecksumMismatchMsg "warning" SimStateOlderReleaseMsg "error" InitInArrayFormatMsg "warning" StrictBusMsg "ErrorLevel1" BusNameAdapt "WarnAndRepair" NonBusSignalsTreatedAsBus "none" BlockIODiagnostic "none" SFUnusedDataAndEventsDiag "warning" SFUnexpectedBacktrackingDiag "error" SFInvalidInputDataAccessInChartInitDiag "warning" SFNoUnconditionalDefaultTransitionDiag "error" SFTransitionOutsideNaturalParentDiag "warning" SFUnconditionalTransitionShadowingDiag "warning" SFUndirectedBroadcastEventsDiag "warning" SFTransitionActionBeforeConditionDiag "warning" SFOutputUsedAsStateInMooreChartDiag "error" IntegerSaturationMsg "warning" } Simulink.HardwareCC { $ObjectID 15 Version "1.15.0" ProdBitPerChar 8 ProdBitPerShort 16 ProdBitPerInt 32 ProdBitPerLong 32 ProdBitPerLongLong 64 ProdBitPerFloat 32 ProdBitPerDouble 64 ProdBitPerPointer 64 ProdLargestAtomicInteger "Char" ProdLargestAtomicFloat "Float" ProdIntDivRoundTo "Zero" ProdEndianess "LittleEndian" ProdWordSize 32 ProdShiftRightIntArith on ProdLongLongMode off ProdHWDeviceType "Specified" TargetBitPerChar 8 TargetBitPerShort 16 TargetBitPerInt 32 TargetBitPerLong 32 TargetBitPerLongLong 64 TargetBitPerFloat 32 TargetBitPerDouble 64 TargetBitPerPointer 32 TargetLargestAtomicInteger "Char" TargetLargestAtomicFloat "None" TargetShiftRightIntArith on TargetLongLongMode off TargetIntDivRoundTo "Undefined" TargetEndianess "Unspecified" TargetWordSize 32 TargetPreprocMaxBitsSint 32 TargetPreprocMaxBitsUint 32 TargetHWDeviceType "Specified" TargetUnknown off ProdEqTarget on } Simulink.ModelReferenceCC { $ObjectID 16 Version "1.15.0" UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" CheckModelReferenceTargetMessage "error" EnableParallelModelReferenceBuilds off ParallelModelReferenceErrorOnInvalidPool on ParallelModelReferenceMATLABWorkerInit "None" ModelReferenceNumInstancesAllowed "Multi" PropagateVarSize "Infer from blocks in model" ModelReferencePassRootInputsByReference on ModelReferenceMinAlgLoopOccurrences off PropagateSignalLabelsOutOfModel on SupportModelReferenceSimTargetCustomCode off } Simulink.SFSimCC { $ObjectID 17 Version "1.15.0" SFSimEcho on SimCtrlC on SimIntegrity on SimUseLocalCustomCode off SimParseCustomCode on SimBuildMode "sf_incremental_build" SimGenImportedTypeDefs off } Simulink.RTWCC { $BackupClass "Simulink.RTWCC" $ObjectID 18 Version "1.15.0" Array { Type "Cell" Dimension 13 Cell "IncludeHyperlinkInReport" Cell "GenerateTraceInfo" Cell "GenerateTraceReport" Cell "GenerateTraceReportSl" Cell "GenerateTraceReportSf" Cell "GenerateTraceReportEml" Cell "PortableWordSizes" Cell "GenerateWebview" Cell "GenerateCodeMetricsReport" Cell "GenerateCodeReplacementReport" Cell "GenerateMissedCodeReplacementReport" Cell "GenerateErtSFunction" Cell "CreateSILPILBlock" PropName "DisabledProps" } SystemTargetFile "grt.tlc" TLCOptions "" GenCodeOnly off MakeCommand "make_rtw" GenerateMakefile on PackageGeneratedCodeAndArtifacts off TemplateMakefile "grt_default_tmf" PostCodeGenCommand "" GenerateReport off SaveLog off RTWVerbose on RetainRTWFile off ProfileTLC off TLCDebug off TLCCoverage off TLCAssert off RTWUseLocalCustomCode off RTWUseSimCustomCode off Toolchain "Automatically locate an installed toolchain" BuildConfiguration "Faster Builds" IncludeHyperlinkInReport off LaunchReport off PortableWordSizes off CreateSILPILBlock "None" CodeExecutionProfiling off CodeExecutionProfileVariable "executionProfile" CodeProfilingSaveOptions "SummaryOnly" CodeProfilingInstrumentation off SILDebugging off TargetLang "C" IncludeBusHierarchyInRTWFileBlockHierarchyMap off GenerateTraceInfo off GenerateTraceReport off GenerateTraceReportSl off GenerateTraceReportSf off GenerateTraceReportEml off GenerateWebview off GenerateCodeMetricsReport off GenerateCodeReplacementReport off GenerateMissedCodeReplacementReport off RTWCompilerOptimization "off" RTWCustomCompilerOptimizations "" CheckMdlBeforeBuild "Off" SharedConstantsCachingThreshold 1024 Array { Type "Handle" Dimension 2 Simulink.CodeAppCC { $ObjectID 19 Version "1.15.0" Array { Type "Cell" Dimension 25 Cell "IgnoreCustomStorageClasses" Cell "IgnoreTestpoints" Cell "InsertBlockDesc" Cell "InsertPolySpaceComments" Cell "SFDataObjDesc" Cell "MATLABFcnDesc" Cell "SimulinkDataObjDesc" Cell "DefineNamingRule" Cell "SignalNamingRule" Cell "ParamNamingRule" Cell "InternalIdentifier" Cell "InlinedPrmAccess" Cell "CustomSymbolStr" Cell "CustomSymbolStrGlobalVar" Cell "CustomSymbolStrType" Cell "CustomSymbolStrField" Cell "CustomSymbolStrFcn" Cell "CustomSymbolStrModelFcn" Cell "CustomSymbolStrFcnArg" Cell "CustomSymbolStrBlkIO" Cell "CustomSymbolStrTmpVar" Cell "CustomSymbolStrMacro" Cell "CustomSymbolStrUtil" Cell "CustomUserTokenString" Cell "ReqsInCode" PropName "DisabledProps" } ForceParamTrailComments off GenerateComments on CommentStyle "Auto" IgnoreCustomStorageClasses on IgnoreTestpoints off IncHierarchyInIds off MaxIdLength 31 PreserveName off PreserveNameWithParent off ShowEliminatedStatement off OperatorAnnotations off IncAutoGenComments off SimulinkDataObjDesc off SFDataObjDesc off MATLABFcnDesc off IncDataTypeInIds off MangleLength 1 CustomSymbolStrGlobalVar "$R$N$M" CustomSymbolStrType "$N$R$M_T" CustomSymbolStrField "$N$M" CustomSymbolStrFcn "$R$N$M$F" CustomSymbolStrFcnArg "rt$I$N$M" CustomSymbolStrBlkIO "rtb_$N$M" CustomSymbolStrTmpVar "$N$M" CustomSymbolStrMacro "$R$N$M" CustomSymbolStrUtil "$N$C" DefineNamingRule "None" ParamNamingRule "None" SignalNamingRule "None" InsertBlockDesc off InsertPolySpaceComments off SimulinkBlockComments on MATLABSourceComments off EnableCustomComments off InternalIdentifier "Shortened" InlinedPrmAccess "Literals" ReqsInCode off UseSimReservedNames off } Simulink.GRTTargetCC { $BackupClass "Simulink.TargetCC" $ObjectID 20 Version "1.15.0" Array { Type "Cell" Dimension 15 Cell "IncludeMdlTerminateFcn" Cell "SuppressErrorStatus" Cell "ERTCustomFileBanners" Cell "GenerateSampleERTMain" Cell "ExistingSharedCode" Cell "GenerateTestInterfaces" Cell "ModelStepFunctionPrototypeControlCompliant" Cell "GenerateAllocFcn" Cell "PurelyIntegerCode" Cell "SupportComplex" Cell "SupportAbsoluteTime" Cell "SupportContinuousTime" Cell "SupportNonInlinedSFcns" Cell "RemoveDisableFunc" Cell "RemoveResetFunc" PropName "DisabledProps" } TargetFcnLib "ansi_tfl_table_tmw.mat" TargetLibSuffix "" TargetPreCompLibLocation "" GenFloatMathFcnCalls "NOT IN USE" TargetLangStandard "C99 (ISO)" CodeReplacementLibrary "None" UtilityFuncGeneration "Auto" ERTMultiwordTypeDef "System defined" ERTMultiwordLength 256 MultiwordLength 2048 GenerateFullHeader on InferredTypesCompatibility off GenerateSampleERTMain off GenerateTestInterfaces off ModelReferenceCompliant on ParMdlRefBuildCompliant on CompOptLevelCompliant on ConcurrentExecutionCompliant on IncludeMdlTerminateFcn on GeneratePreprocessorConditionals "Use local settings" CombineOutputUpdateFcns on CombineSignalStateStructs off SuppressErrorStatus off ERTFirstTimeCompliant off IncludeFileDelimiter "Auto" ERTCustomFileBanners off SupportAbsoluteTime on LogVarNameModifier "rt_" MatFileLogging on MultiInstanceERTCode off CodeInterfacePackaging "Nonreusable function" SupportNonFinite on SupportComplex on PurelyIntegerCode off SupportContinuousTime on SupportNonInlinedSFcns on SupportVariableSizeSignals off ParenthesesLevel "Nominal" CastingMode "Nominal" MATLABClassNameForMDSCustomization "Simulink.SoftwareTarget.GRTCustomization" ModelStepFunctionPrototypeControlCompliant off CPPClassGenCompliant on AutosarCompliant off GRTInterface off GenerateAllocFcn off GenerateSharedConstants on UseMalloc off ExtMode off ExtModeStaticAlloc off ExtModeTesting off ExtModeStaticAllocSize 1000000 ExtModeTransport 0 ExtModeMexFile "ext_comm" ExtModeIntrfLevel "Level1" RTWCAPISignals off RTWCAPIParams off RTWCAPIStates off RTWCAPIRootIO off GenerateASAP2 off MultiInstanceErrorCode "Error" } PropName "Components" } } PropName "Components" } Name "Configuration" CurrentDlgPage "Solver" ConfigPrmDlgPosition [ 195, 142, 1085, 882 ] } PropName "ConfigurationSets" } Simulink.ConfigSet { $PropName "ActiveConfigurationSet" $ObjectID 10 } Object { $PropName "DataTransfer" $ObjectID 22 $ClassName "Simulink.GlobalDataTransfer" DefaultTransitionBetweenSyncTasks "Ensure deterministic transfer (maximum delay)" DefaultTransitionBetweenAsyncTasks "Ensure data integrity only" DefaultTransitionBetweenContTasks "Ensure deterministic transfer (minimum delay)" DefaultExtrapolationMethodBetweenContTasks "None" AutoInsertRateTranBlk [0] } ExplicitPartitioning off BlockDefaults { ForegroundColor "black" BackgroundColor "white" DropShadow off NamePlacement "normal" FontName "Helvetica" FontSize 10 FontWeight "normal" FontAngle "normal" ShowName on BlockRotation 0 BlockMirror off } AnnotationDefaults { HorizontalAlignment "center" VerticalAlignment "middle" ForegroundColor "black" BackgroundColor "white" DropShadow off FontName "Helvetica" FontSize 10 FontWeight "normal" FontAngle "normal" UseDisplayTextAsClickCallback off } LineDefaults { FontName "Helvetica" FontSize 9 FontWeight "normal" FontAngle "normal" } MaskDefaults { SelfModifiable "off" IconFrame "on" IconOpaque "on" RunInitForIconRedraw "off" IconRotate "none" PortRotate "default" IconUnits "autoscale" } MaskParameterDefaults { Evaluate "on" Tunable "on" NeverSave "off" Internal "off" ReadOnly "off" Enabled "on" Visible "on" ToolTip "on" } BlockParameterDefaults { Block { BlockType BusCreator DisplayOption "none" OutDataTypeStr "Inherit: auto" NonVirtualBus off } Block { BlockType BusSelector OutputSignals "signal1,signal2,signal3" OutputAsBus off } Block { BlockType Constant Value "1" VectorParams1D on SamplingMode "Sample based" OutMin "[]" OutMax "[]" OutDataTypeStr "Inherit: Inherit from 'Constant value'" LockScale off SampleTime "inf" FramePeriod "inf" PreserveConstantTs off } Block { BlockType Delay DelayLengthSource "Dialog" DelayLength "2" DelayLengthUpperLimit "100" InitialConditionSource "Dialog" InitialCondition "0.0" ExternalReset "None" ShowEnablePort off PreventDirectFeedthrough off DiagnosticForOutOfRangeDelayLength "None" RemoveProtectionDelayLength off InputProcessing "Elements as channels (sample based)" UseCircularBuffer off SampleTime "-1" StateMustResolveToSignalObject off CodeGenStateStorageClass "Auto" } Block { BlockType Demux Outputs "4" DisplayOption "none" BusSelectionMode off } Block { BlockType Gain Gain "1" Multiplication "Element-wise(K.*u)" ParamMin "[]" ParamMax "[]" ParamDataTypeStr "Inherit: Same as input" OutMin "[]" OutMax "[]" OutDataTypeStr "Inherit: Same as input" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType Ground } Block { BlockType Inport Port "1" OutputFunctionCall off OutMin "[]" OutMax "[]" OutDataTypeStr "Inherit: auto" LockScale off BusOutputAsStruct off PortDimensions "-1" VarSizeSig "Inherit" SampleTime "-1" SignalType "auto" SamplingMode "auto" LatchByDelayingOutsideSignal off LatchInputForFeedbackSignals off Interpolate on } Block { BlockType Integrator ExternalReset "none" InitialConditionSource "internal" InitialCondition "0" LimitOutput off UpperSaturationLimit "inf" LowerSaturationLimit "-inf" WrapState off WrappedStateUpperValue "pi" WrappedStateLowerValue "-pi" ShowSaturationPort off ShowStatePort off AbsoluteTolerance "auto" IgnoreLimit off ZeroCross on ContinuousStateAttributes "''" } Block { BlockType Mux Inputs "4" DisplayOption "none" UseBusObject off BusObject "BusObject" NonVirtualBus off } Block { BlockType Outport Port "1" OutMin "[]" OutMax "[]" OutDataTypeStr "Inherit: auto" LockScale off BusOutputAsStruct off PortDimensions "-1" VarSizeSig "Inherit" SampleTime "-1" SignalType "auto" SamplingMode "auto" SourceOfInitialOutputValue "Dialog" OutputWhenDisabled "held" InitialOutput "[]" } Block { BlockType Quantizer QuantizationInterval "0.5" LinearizeAsGain on SampleTime "-1" } Block { BlockType RandomNumber Mean "0" Variance "1" Seed "0" SampleTime "-1" VectorParams1D on } Block { BlockType RateTransition Integrity on Deterministic on X0 "0" OutPortSampleTimeOpt "Specify" OutPortSampleTimeMultiple "1" OutPortSampleTime "-1" } Block { BlockType S-Function FunctionName "system" SFunctionModules "''" PortCounts "[]" } Block { BlockType Scope Floating off } Block { BlockType Step Time "1" Before "0" After "1" SampleTime "-1" VectorParams1D on ZeroCross on } Block { BlockType SubSystem ShowPortLabels "FromPortIcon" Permissions "ReadWrite" PermitHierarchicalResolution "All" TreatAsAtomicUnit off MinAlgLoopOccurrences off PropExecContextOutsideSubsystem off SystemSampleTime "-1" RTWSystemCode "Auto" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" FunctionInterfaceSpec "void_void" FunctionWithSeparateData off RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" RTWMemSecDataInternal "Inherit from model" RTWMemSecDataParameters "Inherit from model" SimViewingDevice off DataTypeOverride "UseLocalSettings" DataTypeOverrideAppliesTo "AllNumericTypes" MinMaxOverflowLogging "UseLocalSettings" Opaque off MaskHideContents off SFBlockType "NONE" GeneratePreprocessorConditionals off PropagateVariantConditions off TreatAsGroupedWhenPropagatingVariantConditions on ContentPreviewEnabled off IsWebBlock off } Block { BlockType Sum IconShape "rectangular" Inputs "++" CollapseMode "All dimensions" CollapseDim "1" InputSameDT on AccumDataTypeStr "Inherit: Inherit via internal rule" OutMin "[]" OutMax "[]" OutDataTypeStr "Inherit: Same as first input" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType Terminator } Block { BlockType ZeroOrderHold SampleTime "1" } } System { Name "Quadcopter_Model_R2015_A" Location [-8, -8, 1928, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "150" ReportName "simulink-default.rpt" SIDHighWatermark "1020" Block { BlockType SubSystem Name "\n\n\n\n\n\n" SID "541" Ports [4, 6] Position [1155, 479, 1350, 711] ZOrder 67 RequestExecContextInheritance off Variant off Object { $PropName "MaskObject" $ObjectID 23 $ClassName "Simulink.Mask" Display "port_label('input', 1, 'Rotor 1 Duty Cycle', 'texmode', 'on');\nport_label('input', 2, 'Rotor 2 Duty Cycle" "', 'texmode', 'on');\nport_label('input', 3, 'Rotor 3 Duty Cycle', 'texmode', 'on');\nport_label('input', 4, 'Rotor 4" " Duty Cycle', 'texmode', 'on');\nport_label('output', 1, '^{B}Omega', 'texmode', 'on');\nport_label('output', 2, '\\T" "heta', 'texmode', 'on');\nport_label('output', 3, '^{B}v_o', 'texmode', 'on');\nport_label('output', 4, '^{E}r_o', 't" "exmode', 'on');\nport_label('output', 5, '^{B}dv_o/dt', 'texmode', 'on');\nport_label('output', 6, '^{B}g', 'texmode'" ", 'on');\ndisp('Actuation', 'texmode', 'on'); " } System { Name "\n\n\n\n\n\n" Location [-8, -8, 1928, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "150" Block { BlockType Inport Name "Rotor 0 Duty Cycle" SID "542" Position [-225, 303, -195, 317] ZOrder -1 IconDisplay "Port number" } Block { BlockType Inport Name "Rotor 1 Duty Cycle" SID "543" Position [-225, 363, -195, 377] ZOrder 2 Port "2" IconDisplay "Port number" } Block { BlockType Inport Name "Rotor 2 Duty Cycle" SID "544" Position [-225, 423, -195, 437] ZOrder 1 Port "3" IconDisplay "Port number" } Block { BlockType Inport Name "Rotor 3 Duty Cycle" SID "545" Position [-225, 483, -195, 497] ZOrder 3 Port "4" IconDisplay "Port number" } Block { BlockType SubSystem Name "\n" SID "546" Ports [2, 1] Position [420, 280, 640, 520] ZOrder 48 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off Object { $PropName "MaskObject" $ObjectID 24 $ClassName "Simulink.Mask" Display "port_label('input', 1, 'Vb_{eff}', 'texmode', 'on');\nport_label('input', 2, '\\omega', 'texmode', " "'on');\nport_label('output', 1, '\\alpha', 'texmode', 'on');\ndisp('Motor System');\n" } System { Name "\n" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "33" Block { BlockType Inport Name "Vb_eff" SID "546::1" Position [20, 101, 40, 119] ZOrder -1 IconDisplay "Port number" } Block { BlockType Inport Name "angular_velocity" SID "546::24" Position [20, 136, 40, 154] ZOrder 15 Port "2" IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "546::32" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 17 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "546::31" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 5" Ports [2, 2] Position [180, 100, 230, 160] ZOrder 16 FunctionName "sf_sfun" Parameters "If,Jreq,Kd,Kq,Kv,Rm" PortCounts "[2 2]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "angular_acceleration" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "546::33" Position [460, 241, 480, 259] ZOrder 18 } Block { BlockType Outport Name "angular_acceleration" SID "546::23" Position [460, 101, 480, 119] ZOrder 14 IconDisplay "Port number" } Line { ZOrder 1 SrcBlock "Vb_eff" SrcPort 1 Points [120, 0] DstBlock " SFunction " DstPort 1 } Line { ZOrder 2 SrcBlock "angular_velocity" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { Name "angular_acceleration" ZOrder 3 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "angular_acceleration" DstPort 1 } Line { ZOrder 4 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 5 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType SubSystem Name "\n\n" SID "547" Ports [4, 1] Position [55, 282, 290, 518] ZOrder 36 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off Object { $PropName "MaskObject" $ObjectID 25 $ClassName "Simulink.Mask" Display "port_label('input', 1, 'Rotor 0 Duty Cycle', 'texmode', 'on');\nport_label('input', 2, 'Rotor 1 Dut" "y Cycle', 'texmode', 'on');\nport_label('input', 3, 'Rotor 2 Duty Cycle', 'texmode', 'on');\nport_label('input', " "4, 'Rotor 3 Duty Cycle', 'texmode', 'on');\nport_label('output', 1, 'Vb_{eff}', 'texmode', 'on');\ndisp('ESC Syst" "em');" } System { Name "\n\n" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "37" Block { BlockType Inport Name "rotor_0_duty_cycle" SID "547::1" Position [20, 101, 40, 119] ZOrder -1 IconDisplay "Port number" } Block { BlockType Inport Name "rotor_1_duty_cycle" SID "547::22" Position [20, 136, 40, 154] ZOrder 13 Port "2" IconDisplay "Port number" } Block { BlockType Inport Name "rotor_2_duty_cycle" SID "547::23" Position [20, 171, 40, 189] ZOrder 14 Port "3" IconDisplay "Port number" } Block { BlockType Inport Name "rotor_3_duty_cycle" SID "547::24" Position [20, 206, 40, 224] ZOrder 15 Port "4" IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "547::36" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 17 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "547::35" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 4" Ports [4, 2] Position [180, 102, 230, 203] ZOrder 16 FunctionName "sf_sfun" Parameters "Pmax,Pmin,Vb" PortCounts "[4 2]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "Vb_eff" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "547::37" Position [460, 241, 480, 259] ZOrder 18 } Block { BlockType Outport Name "Vb_eff" SID "547::5" Position [460, 101, 480, 119] ZOrder -5 IconDisplay "Port number" } Line { ZOrder 1 SrcBlock "rotor_0_duty_cycle" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { ZOrder 2 SrcBlock "rotor_1_duty_cycle" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { ZOrder 3 SrcBlock "rotor_2_duty_cycle" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { ZOrder 4 SrcBlock "rotor_3_duty_cycle" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { Name "Vb_eff" ZOrder 5 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "Vb_eff" DstPort 1 } Line { ZOrder 6 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 7 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType SubSystem Name "\n\n\n\n" SID "548" Ports [0, 1] Position [335, 664, 485, 786] ZOrder 96 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off Object { $PropName "MaskObject" $ObjectID 26 $ClassName "Simulink.Mask" Display "port_label('output', 1, '^EF_g', 'texmode', 'on');\nfprintf('Gravity');\n" } System { Name "\n\n\n\n" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "30" Block { BlockType Demux Name " Demux " SID "548::28" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 19 Outputs "1" } Block { BlockType Ground Name " Ground " SID "548::30" Position [20, 121, 40, 139] ZOrder 21 } Block { BlockType S-Function Name " SFunction " SID "548::27" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 1" Ports [1, 2] Position [180, 100, 230, 160] ZOrder 18 FunctionName "sf_sfun" Parameters "g,m" PortCounts "[1 2]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "E_Fg" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "548::29" Position [460, 241, 480, 259] ZOrder 20 } Block { BlockType Outport Name "E_Fg" SID "548::5" Position [460, 101, 480, 119] ZOrder -5 IconDisplay "Port number" } Line { Name "E_Fg" ZOrder 1 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "E_Fg" DstPort 1 } Line { ZOrder 2 SrcBlock " Ground " SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { ZOrder 3 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 4 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType SubSystem Name "\n\n\n\n\n\n\n" SID "549" Ports [2, 1] Position [1395, 499, 1630, 706] ZOrder 75 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off Object { $PropName "MaskObject" $ObjectID 27 $ClassName "Simulink.Mask" Display "port_label('input', 1, '^Bv_o', 'texmode', 'on');\nport_label('input', 2, '\\Theta', 'texmode', 'on" "');\nport_label('output', 1, '^Er_o', 'texmode', 'on');\ndisp('L_{EB}', 'texmode', 'on');" } System { Name "\n\n\n\n\n\n\n" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "31" Block { BlockType Inport Name "B_vo" SID "549::24" Position [20, 101, 40, 119] ZOrder 15 IconDisplay "Port number" } Block { BlockType Inport Name "euler_angles" SID "549::28" Position [20, 136, 40, 154] ZOrder 19 Port "2" IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "549::30" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 21 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "549::29" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 2" Ports [2, 2] Position [180, 100, 230, 160] ZOrder 20 FunctionName "sf_sfun" PortCounts "[2 2]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "E_ro" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "549::31" Position [460, 241, 480, 259] ZOrder 22 } Block { BlockType Outport Name "E_ro" SID "549::26" Position [460, 101, 480, 119] ZOrder 17 IconDisplay "Port number" } Line { ZOrder 1 SrcBlock "B_vo" SrcPort 1 Points [120, 0] DstBlock " SFunction " DstPort 1 } Line { ZOrder 2 SrcBlock "euler_angles" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { Name "E_ro" ZOrder 3 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "E_ro" DstPort 1 } Line { ZOrder 4 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 5 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType SubSystem Name "\n\n\n\n\n\n\n\n" SID "550" Ports [5, 2] Position [950, 281, 1150, 519] ZOrder 52 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off Object { $PropName "MaskObject" $ObjectID 28 $ClassName "Simulink.Mask" Display "port_label('input', 1, '\\alpha', 'texmode', 'on');\nport_label('input', 2, '\\omega', 'texmode', '" "on');\nport_label('input', 3, '^BF_g', 'texmode', 'on');\nport_label('input', 4, '^B\\Omega', 'texmode', 'on');\n" "port_label('input', 5, '^Bv_o', 'texmode', 'on');\nport_label('output', 1, '^Bd\\Omega/dt', 'texmode', 'on');\npo" "rt_label('output', 2, '^Bdv_o/dt', 'texmode', 'on');\ndisp('Rotor System', 'texmode', 'on');" } System { Name "\n\n\n\n\n\n\n\n" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "50" Block { BlockType Inport Name "angular_acceleration" SID "550::27" Position [20, 101, 40, 119] ZOrder 18 IconDisplay "Port number" } Block { BlockType Inport Name "angular_velocity" SID "550::28" Position [20, 136, 40, 154] ZOrder 19 Port "2" IconDisplay "Port number" } Block { BlockType Inport Name "B_Fg" SID "550::47" Position [20, 171, 40, 189] ZOrder 20 Port "3" IconDisplay "Port number" } Block { BlockType Inport Name "B_omega" SID "550::25" Position [20, 206, 40, 224] ZOrder 16 Port "4" IconDisplay "Port number" } Block { BlockType Inport Name "B_vo" SID "550::24" Position [20, 246, 40, 264] ZOrder 15 Port "5" IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "550::49" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 22 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "550::48" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 6" Ports [5, 3] Position [180, 100, 230, 220] ZOrder 21 FunctionName "sf_sfun" Parameters "Jreq,Jxx,Jyy,Jzz,Kd,Kt,m,rhx,rhy,rhz" PortCounts "[5 3]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "B_omega_dot" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "B_vo_dot" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "550::50" Position [460, 241, 480, 259] ZOrder 23 } Block { BlockType Outport Name "B_omega_dot" SID "550::22" Position [460, 101, 480, 119] ZOrder 13 IconDisplay "Port number" } Block { BlockType Outport Name "B_vo_dot" SID "550::5" Position [460, 136, 480, 154] ZOrder -5 Port "2" IconDisplay "Port number" } Line { ZOrder 1 SrcBlock "angular_acceleration" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { ZOrder 2 SrcBlock "angular_velocity" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { ZOrder 3 SrcBlock "B_Fg" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { ZOrder 4 SrcBlock "B_omega" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { ZOrder 5 SrcBlock "B_vo" SrcPort 1 DstBlock " SFunction " DstPort 5 } Line { Name "B_omega_dot" ZOrder 6 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "B_omega_dot" DstPort 1 } Line { Name "B_vo_dot" ZOrder 7 Labels [0, 0] SrcBlock " SFunction " SrcPort 3 DstBlock "B_vo_dot" DstPort 1 } Line { ZOrder 8 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 9 SrcBlock " SFunction " SrcPort 1 Points [20, 0] DstBlock " Demux " DstPort 1 } } } Block { BlockType SubSystem Name "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" SID "551" Ports [2, 1] Position [1395, 303, 1630, 452] ZOrder 81 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off Object { $PropName "MaskObject" $ObjectID 29 $ClassName "Simulink.Mask" Display "port_label('input', 1, '^B\\Omega', 'texmode', 'on');\nport_label('input', 2, '\\Theta', 'texmode'," " 'on');\nport_label('output', 1, 'd\\Theta/dt', 'texmode', 'on');\ndisp('A_{EB}', 'texmode', 'on');" } System { Name "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "25" Block { BlockType Inport Name "B_omega" SID "551::1" Position [20, 101, 40, 119] ZOrder -1 IconDisplay "Port number" } Block { BlockType Inport Name "euler_angles" SID "551::22" Position [20, 136, 40, 154] ZOrder 13 Port "2" IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "551::24" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 15 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "551::23" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 7" Ports [2, 2] Position [180, 100, 230, 160] ZOrder 14 FunctionName "sf_sfun" PortCounts "[2 2]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "euler_rates" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "551::25" Position [460, 241, 480, 259] ZOrder 16 } Block { BlockType Outport Name "euler_rates" SID "551::5" Position [460, 101, 480, 119] ZOrder -5 IconDisplay "Port number" } Line { ZOrder 1 SrcBlock "B_omega" SrcPort 1 Points [120, 0] DstBlock " SFunction " DstPort 1 } Line { ZOrder 2 SrcBlock "euler_angles" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { Name "euler_rates" ZOrder 3 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "euler_rates" DstPort 1 } Line { ZOrder 4 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 5 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType SubSystem Name "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" SID "552" Ports [2, 2] Position [600, 694, 770, 816] ZOrder 97 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off Object { $PropName "MaskObject" $ObjectID 30 $ClassName "Simulink.Mask" Display "port_label('input', 1, '^EF_g', 'texmode', 'on');\nport_label('input', 2, '\\Theta', 'texmode', 'on" "');\nport_label('output', 1, '^BF_g', 'texmode', 'on');\ndisp('L_{BE}', 'texmode', 'on');" } System { Name "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "33" Block { BlockType Inport Name "E_Fg" SID "552::24" Position [20, 101, 40, 119] ZOrder 15 IconDisplay "Port number" } Block { BlockType Inport Name "euler_angles" SID "552::28" Position [20, 136, 40, 154] ZOrder 19 Port "2" IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "552::30" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 21 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "552::29" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 8" Ports [2, 3] Position [180, 100, 230, 180] ZOrder 20 FunctionName "sf_sfun" Parameters "m" PortCounts "[2 3]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "B_Fg" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "B_g" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "552::31" Position [460, 241, 480, 259] ZOrder 22 } Block { BlockType Outport Name "B_Fg" SID "552::26" Position [460, 101, 480, 119] ZOrder 17 IconDisplay "Port number" } Block { BlockType Outport Name "B_g" SID "552::32" Position [460, 136, 480, 154] ZOrder 23 Port "2" IconDisplay "Port number" } Line { ZOrder 19 SrcBlock "E_Fg" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { ZOrder 20 SrcBlock "euler_angles" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { Name "B_Fg" ZOrder 21 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "B_Fg" DstPort 1 } Line { Name "B_g" ZOrder 22 Labels [0, 0] SrcBlock " SFunction " SrcPort 3 DstBlock "B_g" DstPort 1 } Line { ZOrder 23 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 24 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType Demux Name "Demux" SID "934" Ports [1, 4] Position [-60, 321, -55, 454] ZOrder 105 ShowName off DisplayOption "bar" } Block { BlockType Demux Name "Demux1" SID "954" Ports [1, 3] Position [1830, 526, 1835, 574] ZOrder 107 ShowName off Outputs "3" DisplayOption "bar" Port { PortNumber 1 Name "x position" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 2 Name "y position" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "z position" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Demux Name "Demux2" SID "955" Ports [1, 3] Position [1830, 301, 1835, 349] ZOrder 109 ShowName off Outputs "3" DisplayOption "bar" Port { PortNumber 1 Name "Roll" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 2 Name "Pitch" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "Yaw" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Demux Name "Demux3" SID "957" Ports [1, 3] Position [1830, 406, 1835, 454] ZOrder 117 ShowName off Outputs "3" DisplayOption "bar" Port { PortNumber 1 Name "Body x velocity" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 2 Name "Body y velocity" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "Body z velocity" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Demux Name "Demux4" SID "959" Ports [1, 3] Position [1830, 161, 1835, 209] ZOrder 115 ShowName off Outputs "3" DisplayOption "bar" Port { PortNumber 1 Name "Body roll velocity" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 2 Name "Body pitch velocity" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "Body yaw velocity" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Demux Name "Demux5" SID "961" Ports [1, 3] Position [1830, 641, 1835, 689] ZOrder 119 ShowName off Outputs "3" DisplayOption "bar" Port { PortNumber 1 Name "Body x acceleration" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 2 Name "Body y acceleration" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "Body z acceleration" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Integrator Name "Integrator" SID "553" Ports [1, 1] Position [730, 340, 760, 370] ZOrder 49 } Block { BlockType Integrator Name "Integrator1" SID "554" Ports [1, 1] Position [1225, 445, 1255, 475] ZOrder 53 } Block { BlockType Integrator Name "Integrator2" SID "555" Ports [1, 1] Position [1225, 325, 1255, 355] ZOrder 54 } Block { BlockType Integrator Name "Integrator3" SID "556" Ports [1, 1] Position [1685, 590, 1715, 620] ZOrder 98 } Block { BlockType Integrator Name "Integrator4" SID "557" Ports [1, 1] Position [1685, 365, 1715, 395] ZOrder 77 ContinuousStateAttributes "['phi' 'theta' 'psi']" } Block { BlockType Scope Name "Scope" SID "558" Ports [1] Position [350, 279, 380, 311] ZOrder 46 NumInputPorts "1" Open off TimeRange auto TickLabels OneTimeTick ShowLegends off LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData YMin 10.94391 YMax 11.11734 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1921 1039] } Block { BlockType Scope Name "Scope1" SID "559" Ports [1] Position [740, 229, 770, 261] ZOrder 50 NumInputPorts "1" Open off TimeRange auto TickLabels OneTimeTick ShowLegends off LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData1 YMin -1469.49513 YMax 13225.4562 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1921 1039] } Block { BlockType Scope Name "Scope10" SID "956" Ports [3] Position [1935, 303, 1975, 347] ZOrder 108 NumInputPorts "3" Open off TimeRange auto TickLabels OneTimeTick ShowLegends on LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData1 YMin -1.00000~-1.00000~-1.00000 YMax 1.00000~1.00000~1.00000 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" axes2 "%<SignalLabel>" axes3 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [643 335 1366 766] } Block { BlockType Scope Name "Scope11" SID "960" Ports [3] Position [1935, 163, 1975, 207] ZOrder 114 NumInputPorts "3" Open off TimeRange auto TickLabels OneTimeTick ShowLegends on LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData3 YMin -1.00000~-1.00000~-1.00000 YMax 1.00000~1.00000~1.00000 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" axes2 "%<SignalLabel>" axes3 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [643 335 1366 766] } Block { BlockType Scope Name "Scope2" SID "560" Ports [1] Position [890, 229, 920, 261] ZOrder 51 NumInputPorts "1" Open off TimeRange auto TickLabels OneTimeTick ShowLegends off LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData2 YMin -100.77485 YMax 906.97366 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1921 1039] } Block { BlockType Scope Name "Scope3" SID "958" Ports [3] Position [1935, 408, 1975, 452] ZOrder 116 NumInputPorts "3" Open off TimeRange auto TickLabels OneTimeTick ShowLegends on LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData2 YMin -1.00000~-71.40595~-81.80792 YMax 1.00000~93.1255~67.47699 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" axes2 "%<SignalLabel>" axes3 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1921 1039] } Block { BlockType Scope Name "Scope4" SID "962" Ports [3] Position [1935, 643, 1975, 687] ZOrder 118 NumInputPorts "3" Open off TimeRange auto TickLabels OneTimeTick ShowLegends on LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData4 YMin -1019.9483~-1019.9483~-1019.9483 YMax 1049.2638~1049.2638~1049.2638 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" axes2 "%<SignalLabel>" axes3 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1921 1039] } Block { BlockType Scope Name "Scope6" SID "564" Ports [3] Position [1935, 528, 1975, 572] ZOrder 79 NumInputPorts "3" Open off TimeRange auto TickLabels OneTimeTick ShowLegends on LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData4 YMin -1.00000~-1.00000~-980.09781 YMax 1.00000~1.00000~109.0196 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" axes2 "%<SignalLabel>" axes3 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [643 335 1366 766] } Block { BlockType Scope Name "Scope7" SID "565" Ports [1] Position [535, 644, 565, 676] ZOrder 99 NumInputPorts "1" Open off TimeRange auto TickLabels OneTimeTick ShowLegends off LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData1 YMin -1.45924 YMax 13.13314 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1921 1039] } Block { BlockType Scope Name "Scope8" SID "566" Ports [1] Position [820, 629, 850, 661] ZOrder 100 NumInputPorts "1" Open off TimeRange auto TickLabels OneTimeTick ShowLegends off LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData2 YMin -14.59237 YMax 14.59237 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1921 1039] } Block { BlockType Scope Name "Scope9" SID "567" Ports [1] Position [1225, 229, 1255, 261] ZOrder 102 NumInputPorts "1" Open off TimeRange auto TickLabels OneTimeTick ShowLegends off LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData3 YMin -0.0198 YMax 0.17819 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1909 1039] } Block { BlockType Step Name "Step" SID "935" Position [-150, 375, -120, 405] ZOrder 106 Before "68.25*ones(4,1)" After "[ 68.25; 69.25; 69.25; 68.25 ]" SampleTime "0" } Block { BlockType Outport Name "B_omega" SID "568" Position [1815, 238, 1845, 252] ZOrder 61 IconDisplay "Port number" } Block { BlockType Outport Name "euler_angles" SID "569" Position [1815, 373, 1845, 387] ZOrder 91 Port "2" IconDisplay "Port number" } Block { BlockType Outport Name "B_vo" SID "570" Position [1815, 468, 1845, 482] ZOrder 58 Port "3" IconDisplay "Port number" } Block { BlockType Outport Name "E_ro" SID "571" Position [1830, 598, 1860, 612] ZOrder 88 Port "4" IconDisplay "Port number" } Block { BlockType Outport Name "B_vo_dot" SID "572" Position [1830, 718, 1860, 732] ZOrder 103 Port "5" IconDisplay "Port number" } Block { BlockType Outport Name "B_g" SID "573" Position [1830, 778, 1860, 792] ZOrder 104 Port "6" IconDisplay "Port number" } Line { ZOrder 5 SrcBlock "\n\n" SrcPort 1 Points [23, 0; 0, -59] Branch { ZOrder 6 Points [2, 0; 0, -46] DstBlock "Scope" DstPort 1 } Branch { ZOrder 7 Points [0, -1] DstBlock "\n" DstPort 1 } } Line { ZOrder 8 SrcBlock "\n" SrcPort 1 Points [40, 0; 0, -45] Branch { ZOrder 9 DstBlock "Integrator" DstPort 1 } Branch { ZOrder 10 Points [0, -45] Branch { ZOrder 11 Points [0, -65] DstBlock "Scope1" DstPort 1 } Branch { ZOrder 12 DstBlock "\n\n\n\n\n\n\n\n" DstPort 1 } } } Line { ZOrder 13 SrcBlock "Integrator" SrcPort 1 Points [8, 0] Branch { ZOrder 14 Points [60, 0] Branch { ZOrder 15 Points [0, -110] DstBlock "Scope2" DstPort 1 } Branch { ZOrder 16 DstBlock "\n\n\n\n\n\n\n\n" DstPort 2 } } Branch { ZOrder 17 Points [0, 210; -396, 0; 0, -105] DstBlock "\n" DstPort 2 } } Line { ZOrder 18 SrcBlock "\n\n\n\n\n\n\n\n" SrcPort 1 Points [34, 0] Branch { ZOrder 19 Points [0, -95] DstBlock "Scope9" DstPort 1 } Branch { ZOrder 20 DstBlock "Integrator2" DstPort 1 } } Line { ZOrder 21 SrcBlock "\n\n\n\n\n\n\n\n" SrcPort 2 Points [32, 0] Branch { ZOrder 22 Points [0, 265; 600, 0] Branch { ZOrder 199 Points [0, -60] DstBlock "Demux5" DstPort 1 } Branch { ZOrder 198 DstBlock "B_vo_dot" DstPort 1 } } Branch { ZOrder 23 DstBlock "Integrator1" DstPort 1 } } Line { ZOrder 24 SrcBlock "Integrator2" SrcPort 1 Points [55, 0] Branch { ZOrder 25 Points [0, -95; 454, 0] Branch { ZOrder 117 DstBlock "B_omega" DstPort 1 } Branch { ZOrder 115 Points [0, -60] DstBlock "Demux4" DstPort 1 } } Branch { ZOrder 28 Points [0, 226; -422, 0; 0, -121] DstBlock "\n\n\n\n\n\n\n\n" DstPort 4 } Branch { ZOrder 29 DstBlock "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" DstPort 1 } } Line { ZOrder 37 SrcBlock "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" SrcPort 1 DstBlock "Integrator4" DstPort 1 } Line { ZOrder 47 SrcBlock "\n\n\n\n" SrcPort 1 Points [7, 0] Branch { ZOrder 64 Points [0, -65] DstBlock "Scope7" DstPort 1 } Branch { ZOrder 49 DstBlock "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" DstPort 1 } } Line { ZOrder 50 SrcBlock "\n\n\n\n\n\n\n" SrcPort 1 DstBlock "Integrator3" DstPort 1 } Line { ZOrder 51 SrcBlock "Integrator3" SrcPort 1 Points [64, 0] Branch { ZOrder 88 Points [0, -55] DstBlock "Demux1" DstPort 1 } Branch { ZOrder 87 DstBlock "E_ro" DstPort 1 } } Line { ZOrder 54 SrcBlock "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" SrcPort 1 Points [24, 0; 0, -30] Branch { ZOrder 55 Points [0, -50] DstBlock "Scope8" DstPort 1 } Branch { ZOrder 56 Points [74, 0; 0, -295] DstBlock "\n\n\n\n\n\n\n\n" DstPort 3 } } Line { ZOrder 61 SrcBlock "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" SrcPort 2 DstBlock "B_g" DstPort 1 } Line { ZOrder 71 SrcBlock "Demux" SrcPort 1 Points [50, 0; 0, -25] DstBlock "\n\n" DstPort 1 } Line { ZOrder 72 SrcBlock "Demux" SrcPort 2 DstBlock "\n\n" DstPort 2 } Line { ZOrder 73 SrcBlock "Demux" SrcPort 3 Points [50, 0; 0, 25] DstBlock "\n\n" DstPort 3 } Line { ZOrder 74 SrcBlock "Demux" SrcPort 4 Points [50, 0; 0, 50] DstBlock "\n\n" DstPort 4 } Line { ZOrder 70 SrcBlock "Step" SrcPort 1 DstBlock "Demux" DstPort 1 } Line { Name "y position" ZOrder 89 Labels [0, 0] SrcBlock "Demux1" SrcPort 2 DstBlock "Scope6" DstPort 2 } Line { Name "x position" ZOrder 90 Labels [0, 0] SrcBlock "Demux1" SrcPort 1 DstBlock "Scope6" DstPort 1 } Line { Name "z position" ZOrder 91 Labels [0, 0] SrcBlock "Demux1" SrcPort 3 DstBlock "Scope6" DstPort 3 } Line { ZOrder 38 SrcBlock "Integrator4" SrcPort 1 Points [20, 0] Branch { ZOrder 39 Points [30, 0] Branch { ZOrder 97 Points [0, -55] DstBlock "Demux2" DstPort 1 } Branch { ZOrder 96 DstBlock "euler_angles" DstPort 1 } } Branch { ZOrder 42 Points [0, 460; -385, 0] Branch { ZOrder 65 Points [0, -185] Branch { ZOrder 44 DstBlock "\n\n\n\n\n\n\n" DstPort 2 } Branch { ZOrder 45 Points [0, -240] DstBlock "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" DstPort 2 } } Branch { ZOrder 46 Points [-787, 0; 0, -55] DstBlock "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" DstPort 2 } } } Line { Name "Pitch" ZOrder 93 Labels [0, 0] SrcBlock "Demux2" SrcPort 2 DstBlock "Scope10" DstPort 2 } Line { Name "Roll" ZOrder 94 Labels [0, 0] SrcBlock "Demux2" SrcPort 1 DstBlock "Scope10" DstPort 1 } Line { Name "Yaw" ZOrder 95 Labels [0, 0] SrcBlock "Demux2" SrcPort 3 DstBlock "Scope10" DstPort 3 } Line { Name "Body pitch velocity" ZOrder 111 Labels [0, 0] SrcBlock "Demux4" SrcPort 2 DstBlock "Scope11" DstPort 2 } Line { Name "Body roll velocity" ZOrder 112 Labels [0, 0] SrcBlock "Demux4" SrcPort 1 DstBlock "Scope11" DstPort 1 } Line { Name "Body yaw velocity" ZOrder 113 Labels [0, 0] SrcBlock "Demux4" SrcPort 3 DstBlock "Scope11" DstPort 3 } Line { Name "Body y velocity" ZOrder 118 Labels [0, 0] SrcBlock "Demux3" SrcPort 2 DstBlock "Scope3" DstPort 2 } Line { Name "Body x velocity" ZOrder 119 Labels [0, 0] SrcBlock "Demux3" SrcPort 1 DstBlock "Scope3" DstPort 1 } Line { Name "Body z velocity" ZOrder 120 Labels [0, 0] SrcBlock "Demux3" SrcPort 3 DstBlock "Scope3" DstPort 3 } Line { Name "Body y acceleration" ZOrder 124 Labels [0, 0] SrcBlock "Demux5" SrcPort 2 DstBlock "Scope4" DstPort 2 } Line { Name "Body x acceleration" ZOrder 125 Labels [0, 0] SrcBlock "Demux5" SrcPort 1 DstBlock "Scope4" DstPort 1 } Line { Name "Body z acceleration" ZOrder 126 Labels [0, 0] SrcBlock "Demux5" SrcPort 3 DstBlock "Scope4" DstPort 3 } Line { ZOrder 30 SrcBlock "Integrator1" SrcPort 1 Points [34, 0; 0, 90] Branch { ZOrder 195 Points [-383, 0; 0, -60] DstBlock "\n\n\n\n\n\n\n\n" DstPort 5 } Branch { ZOrder 194 Points [76, 0] Branch { ZOrder 196 DstBlock "\n\n\n\n\n\n\n" DstPort 1 } Branch { ZOrder 192 Points [0, -75; 401, 0] Branch { ZOrder 201 Points [0, -45] DstBlock "Demux3" DstPort 1 } Branch { ZOrder 200 DstBlock "B_vo" DstPort 1 } } } } } } Block { BlockType SubSystem Name " " SID "601" Ports [6, 3] Position [1445, 477, 1665, 713] ZOrder 68 RequestExecContextInheritance off Variant off Object { $PropName "MaskObject" $ObjectID 31 $ClassName "Simulink.Mask" Display "port_label('input', 1, '^{B}Omega', 'texmode', 'on');\nport_label('input', 2, '\\Theta', 'texmode', 'on');" "\nport_label('input', 3, '^{B}v_o', 'texmode', 'on');\nport_label('input', 4, '^{E}r_o', 'texmode', 'on');\nport_labe" "l('input', 5, '^{B}dv_o/dt', 'texmode', 'on');\nport_label('input', 6, '^{B}g', 'texmode', 'on');\nport_label('output" "', 1, 'Euler Angles Filtered', 'texmode', 'on');\nport_label('output', 2, 'Euler Rates', 'texmode', 'on');\nport_labe" "l('output', 3, 'Current Position', 'texmode', 'on');\ndisp('Sensors', 'texmode', 'on'); " } System { Name " " Location [-8, -8, 1928, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "80" Block { BlockType Inport Name "B_Omega" SID "863" Position [1015, 678, 1045, 692] ZOrder 265 IconDisplay "Port number" } Block { BlockType Inport Name "euler_angles" SID "864" Position [1720, 1043, 1750, 1057] ZOrder 266 Port "2" IconDisplay "Port number" } Block { BlockType Inport Name "B_vo" SID "865" Position [1015, 613, 1045, 627] ZOrder 267 Port "3" IconDisplay "Port number" } Block { BlockType Inport Name "E_ro" SID "866" Position [1720, 963, 1750, 977] ZOrder 268 Port "4" IconDisplay "Port number" } Block { BlockType Inport Name "B_vo_dot" SID "867" Position [1015, 548, 1045, 562] ZOrder 269 Port "5" IconDisplay "Port number" } Block { BlockType Inport Name "B_g" SID "868" Position [1015, 743, 1045, 757] ZOrder 273 Port "6" IconDisplay "Port number" } Block { BlockType SubSystem Name "\n\n\n\n\n\n\n\n" SID "869" Ports [4, 1] Position [2025, 483, 2210, 782] ZOrder 274 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off Object { $PropName "MaskObject" $ObjectID 32 $ClassName "Simulink.Mask" Display "port_label('input', 1, '\\theta_{accel}', 'texmode', 'on');\nport_label('input', 2, '\\phi_{accel}'" ", 'texmode', 'on');\nport_label('input', 3, 'd\\Theta_{IMU}/dt', 'texmode', 'on');\nport_label('input', 4, '\\The" "ta_{IMU}', 'texmode', 'on');\nport_label('output', 1, '\\Theta_{IMU}', 'texmode', 'on');\ndisp('Complimentary Fil" "ter', 'texmode', 'on');" } System { Name "\n\n\n\n\n\n\n\n" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "32" Block { BlockType Inport Name "accel_pitch" SID "869::1" Position [20, 101, 40, 119] ZOrder -1 IconDisplay "Port number" } Block { BlockType Inport Name "accel_roll" SID "869::29" Position [20, 136, 40, 154] ZOrder 20 Port "2" IconDisplay "Port number" } Block { BlockType Inport Name "euler_angles_gyro" SID "869::22" Position [20, 171, 40, 189] ZOrder 13 Port "3" IconDisplay "Port number" } Block { BlockType Inport Name "prev_euler_angles_IMU" SID "869::28" Position [20, 206, 40, 224] ZOrder 19 Port "4" IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "869::20" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 11 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "869::19" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 9" Ports [4, 2] Position [180, 132, 230, 233] ZOrder 10 FunctionName "sf_sfun" PortCounts "[4 2]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "euler_angles_IMU" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "869::21" Position [460, 241, 480, 259] ZOrder 12 } Block { BlockType Outport Name "euler_angles_IMU" SID "869::5" Position [460, 101, 480, 119] ZOrder -5 IconDisplay "Port number" } Line { ZOrder 1 SrcBlock "accel_pitch" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { ZOrder 2 SrcBlock "accel_roll" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { ZOrder 3 SrcBlock "euler_angles_gyro" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { ZOrder 4 SrcBlock "prev_euler_angles_IMU" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { Name "euler_angles_IMU" ZOrder 5 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "euler_angles_IMU" DstPort 1 } Line { ZOrder 6 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 7 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType SubSystem Name "\n\n\n\n\n\n\n\n\n\n" SID "870" Ports [4, 2] Position [1145, 520, 1340, 785] ZOrder 272 RequestExecContextInheritance off Variant off Object { $PropName "MaskObject" $ObjectID 33 $ClassName "Simulink.Mask" Display "port_label('input', 1, '^{B}dv_o/dt', 'texmode', 'on')\nport_label('input', 2, '^{B}v_o', 'texmode'" ", 'on')\nport_label('input', 3, '^{B}\\Omega', 'texmode', 'on')\nport_label('input', 4, '^{B}g', 'texmode', 'on')" "\nport_label('output', 1, 'Accelerometer Reading', 'texmode', 'on')\nport_label('output', 2, 'Gyroscope Reading'," " 'texmode', 'on')\ndisp('IMU', 'texmode', 'on');" } System { Name "\n\n\n\n\n\n\n\n\n\n" Location [-8, -8, 1928, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "B_vo_dot" SID "871" Position [110, 173, 140, 187] ZOrder 17 IconDisplay "Port number" } Block { BlockType Inport Name "B_vo" SID "872" Position [110, 208, 140, 222] ZOrder 25 Port "2" IconDisplay "Port number" } Block { BlockType Inport Name "B_Omega" SID "873" Position [110, 243, 140, 257] ZOrder 26 Port "3" IconDisplay "Port number" } Block { BlockType Inport Name "B_g" SID "874" Position [110, 278, 140, 292] ZOrder 27 Port "4" IconDisplay "Port number" } Block { BlockType SubSystem Name "\n\n\n\n\n\n\n" SID "875" Ports [5, 2] Position [250, 165, 445, 335] ZOrder 1 LibraryVersion "1.32" ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off Object { $PropName "MaskObject" $ObjectID 34 $ClassName "Simulink.Mask" Display "port_label('input', 1, '^{B}dv_o/dt', 'texmode', 'on')\nport_label('input', 2, '^{B}v_o', 'texmode', 'on'" ")\nport_label('input', 3, '^{B}\\Omega', 'texmode', 'on')\nport_label('input', 4, '^{B}g', 'texmode', 'on')\nport_la" "bel('input', 5, 'r_{oc}', 'texmode', 'on')\nport_label('output', 1, 'Accelerometer Reading', 'texmode', 'on')\nport_" "label('output', 2, 'Gyroscope Reading', 'texmode', 'on')\ndisp('Ideal IMU', 'texmode', 'on');" } System { Name "\n\n\n\n\n\n\n" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "31" Block { BlockType Inport Name "B_vo_dot" SID "875::1" Position [20, 101, 40, 119] ZOrder -1 IconDisplay "Port number" } Block { BlockType Inport Name "B_vo" SID "875::22" Position [20, 136, 40, 154] ZOrder 13 Port "2" IconDisplay "Port number" } Block { BlockType Inport Name "B_Omega" SID "875::19" Position [20, 171, 40, 189] ZOrder 10 Port "3" IconDisplay "Port number" } Block { BlockType Inport Name "B_g" SID "875::20" Position [20, 206, 40, 224] ZOrder 11 Port "4" IconDisplay "Port number" } Block { BlockType Inport Name "r_oc" SID "875::23" Position [20, 246, 40, 264] ZOrder 14 Port "5" IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "875::25" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 16 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "875::24" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 10" Ports [5, 3] Position [180, 110, 230, 230] ZOrder 15 FunctionName "sf_sfun" Parameters "g" PortCounts "[5 3]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "accelReading" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "gyroReading" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "875::26" Position [460, 241, 480, 259] ZOrder 17 } Block { BlockType Outport Name "accelReading" SID "875::5" Position [460, 101, 480, 119] ZOrder -5 IconDisplay "Port number" } Block { BlockType Outport Name "gyroReading" SID "875::21" Position [460, 136, 480, 154] ZOrder 12 Port "2" IconDisplay "Port number" } Line { ZOrder 57 SrcBlock "B_vo_dot" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { ZOrder 58 SrcBlock "B_vo" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { ZOrder 59 SrcBlock "B_Omega" SrcPort 1 DstBlock " SFunction " DstPort 3 } Line { ZOrder 60 SrcBlock "B_g" SrcPort 1 DstBlock " SFunction " DstPort 4 } Line { ZOrder 61 SrcBlock "r_oc" SrcPort 1 DstBlock " SFunction " DstPort 5 } Line { Name "accelReading" ZOrder 62 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "accelReading" DstPort 1 } Line { Name "gyroReading" ZOrder 63 Labels [0, 0] SrcBlock " SFunction " SrcPort 3 DstBlock "gyroReading" DstPort 1 } Line { ZOrder 64 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 65 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType Ground Name "Ground" SID "876" Position [550, 340, 570, 360] ZOrder 23 } Block { BlockType Ground Name "Ground1" SID "877" Position [550, 145, 570, 165] ZOrder 24 } Block { BlockType Sum Name "Sum" SID "878" Ports [2, 1] Position [690, 285, 710, 305] ZOrder 7 ShowName off IconShape "round" Inputs "|++" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum1" SID "879" Ports [2, 1] Position [690, 200, 710, 220] ZOrder 8 ShowName off IconShape "round" Inputs "++|" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum2" SID "880" Ports [2, 1] Position [570, 285, 590, 305] ZOrder 11 ShowName off IconShape "round" Inputs "|++" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum3" SID "881" Ports [2, 1] Position [570, 200, 590, 220] ZOrder 12 ShowName off IconShape "round" Inputs "++|" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType RandomNumber Name "accelerometer_noise" SID "882" Position [630, 140, 660, 170] ZOrder 2 Mean "zeros(3,1)" Variance "[ 3e-7 ; 3.3e-7 ; 7.2e-7 ] " Seed "[0,1,2]" SampleTime "6.1e-3" } Block { BlockType Quantizer Name "accelerometer_quantizer" SID "883" Position [770, 195, 800, 225] ZOrder 9 QuantizationInterval "2.4400e-04" } Block { BlockType ZeroOrderHold Name "accelerometer_sampling" SID "884" Position [495, 195, 530, 225] ZOrder 15 SampleTime "6.1e-3" } Block { BlockType RandomNumber Name "gyroscope_noise" SID "885" Position [630, 315, 660, 345] ZOrder 6 Mean "zeros(3,1)" Variance "[ 2.2e-8 ; 1.1e-7 ; 2.4e-8 ]" Seed "[0,1,2]" SampleTime "6.1e-3" } Block { BlockType Quantizer Name "gyroscope_qunatizer" SID "886" Position [770, 280, 800, 310] ZOrder 10 QuantizationInterval "1.1e-3" } Block { BlockType ZeroOrderHold Name "gyroscope_sampling" SID "887" Position [495, 280, 530, 310] ZOrder 16 SampleTime "6.1e-3" } Block { BlockType Constant Name "r_oc" SID "888" Position [30, 307, 95, 333] ZOrder 28 Value "zeros(3,1)" } Block { BlockType Outport Name "accelerometer" SID "889" Position [885, 203, 915, 217] ZOrder 29 IconDisplay "Port number" } Block { BlockType Outport Name "gyroscope" SID "890" Position [885, 288, 915, 302] ZOrder 21 Port "2" IconDisplay "Port number" } Line { ZOrder 1 SrcBlock "gyroscope_qunatizer" SrcPort 1 DstBlock "gyroscope" DstPort 1 } Line { ZOrder 2 SrcBlock "accelerometer_quantizer" SrcPort 1 DstBlock "accelerometer" DstPort 1 } Line { ZOrder 3 SrcBlock "accelerometer_noise" SrcPort 1 Points [35, 0] DstBlock "Sum1" DstPort 1 } Line { ZOrder 4 SrcBlock "Sum" SrcPort 1 DstBlock "gyroscope_qunatizer" DstPort 1 } Line { ZOrder 5 SrcBlock "Sum2" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { ZOrder 6 SrcBlock "Sum3" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { ZOrder 7 SrcBlock "\n\n\n\n\n\n\n" SrcPort 2 DstBlock "gyroscope_sampling" DstPort 1 } Line { ZOrder 8 SrcBlock "gyroscope_noise" SrcPort 1 Points [35, 0] DstBlock "Sum" DstPort 2 } Line { ZOrder 9 SrcBlock "\n\n\n\n\n\n\n" SrcPort 1 DstBlock "accelerometer_sampling" DstPort 1 } Line { ZOrder 10 SrcBlock "Sum1" SrcPort 1 DstBlock "accelerometer_quantizer" DstPort 1 } Line { ZOrder 11 SrcBlock "gyroscope_sampling" SrcPort 1 DstBlock "Sum2" DstPort 1 } Line { ZOrder 12 SrcBlock "accelerometer_sampling" SrcPort 1 DstBlock "Sum3" DstPort 2 } Line { ZOrder 13 SrcBlock "Ground" SrcPort 1 Points [5, 0] DstBlock "Sum2" DstPort 2 } Line { ZOrder 14 SrcBlock "Ground1" SrcPort 1 Points [5, 0] DstBlock "Sum3" DstPort 1 } Line { ZOrder 15 SrcBlock "B_vo_dot" SrcPort 1 DstBlock "\n\n\n\n\n\n\n" DstPort 1 } Line { ZOrder 16 SrcBlock "B_vo" SrcPort 1 DstBlock "\n\n\n\n\n\n\n" DstPort 2 } Line { ZOrder 17 SrcBlock "B_Omega" SrcPort 1 DstBlock "\n\n\n\n\n\n\n" DstPort 3 } Line { ZOrder 18 SrcBlock "B_g" SrcPort 1 DstBlock "\n\n\n\n\n\n\n" DstPort 4 } Line { ZOrder 19 SrcBlock "r_oc" SrcPort 1 DstBlock "\n\n\n\n\n\n\n" DstPort 5 } } } Block { BlockType SubSystem Name "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" SID "892" Ports [2, 1] Position [1470, 689, 1885, 811] ZOrder 275 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off Object { $PropName "MaskObject" $ObjectID 35 $ClassName "Simulink.Mask" Display "port_label('input', 1, 'Gyroscope Reading', 'texmode', 'on');\nport_label('input', 2, '\\Theta_{IMU" "}', 'texmode', 'on');\nport_label('output', 1, 'd\\Theta_{IMU}/dt', 'texmode', 'on');\ndisp('A_{EB}', 'texmode', " "'on');" } System { Name "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "25" Block { BlockType Inport Name "gyro_reading" SID "892::1" Position [20, 101, 40, 119] ZOrder -1 IconDisplay "Port number" } Block { BlockType Inport Name "euler_angles_IMU" SID "892::22" Position [20, 136, 40, 154] ZOrder 13 Port "2" IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "892::24" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 15 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "892::23" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 12" Ports [2, 2] Position [180, 100, 230, 160] ZOrder 14 FunctionName "sf_sfun" PortCounts "[2 2]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "euler_rates_IMU" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "892::25" Position [460, 241, 480, 259] ZOrder 16 } Block { BlockType Outport Name "euler_rates_IMU" SID "892::5" Position [460, 101, 480, 119] ZOrder -5 IconDisplay "Port number" } Line { ZOrder 1 SrcBlock "gyro_reading" SrcPort 1 Points [120, 0] DstBlock " SFunction " DstPort 1 } Line { ZOrder 2 SrcBlock "euler_angles_IMU" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { Name "euler_rates_IMU" ZOrder 3 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "euler_rates_IMU" DstPort 1 } Line { ZOrder 4 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 5 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType SubSystem Name "\n\n\n\n\n\n\n\n\n\n\n\n1" SID "908" Ports [2, 2] Position [1480, 484, 1875, 631] ZOrder 284 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off Object { $PropName "MaskObject" $ObjectID 36 $ClassName "Simulink.Mask" Display "port_label('input', 1, 'Accelerometer Reading', 'texmode', 'on');\nport_label('output', 1, '\\theta" "_{accel}', 'texmode', 'on');\nport_label('output', 2, '\\phi_{accel}', 'texmode', 'on');\ndisp('Calculate Pitch a" "nd Roll', 'texmode', 'on');" } System { Name "\n\n\n\n\n\n\n\n\n\n\n\n1" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "26" Block { BlockType Inport Name "accel_reading" SID "908::1" Position [20, 101, 40, 119] ZOrder -1 IconDisplay "Port number" } Block { BlockType Inport Name "accel_roll_prev" SID "908::23" Position [20, 136, 40, 154] ZOrder 14 Port "2" IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "908::20" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 11 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "908::19" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 13" Ports [2, 3] Position [180, 105, 230, 185] ZOrder 10 FunctionName "sf_sfun" PortCounts "[2 3]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "accel_pitch" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "accel_roll" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "908::21" Position [460, 241, 480, 259] ZOrder 12 } Block { BlockType Outport Name "accel_pitch" SID "908::5" Position [460, 101, 480, 119] ZOrder -5 IconDisplay "Port number" } Block { BlockType Outport Name "accel_roll" SID "908::22" Position [460, 136, 480, 154] ZOrder 13 Port "2" IconDisplay "Port number" } Line { ZOrder 14 SrcBlock "accel_reading" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { ZOrder 15 SrcBlock "accel_roll_prev" SrcPort 1 DstBlock " SFunction " DstPort 2 } Line { Name "accel_pitch" ZOrder 16 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "accel_pitch" DstPort 1 } Line { Name "accel_roll" ZOrder 17 Labels [0, 0] SrcBlock " SFunction " SrcPort 3 DstBlock "accel_roll" DstPort 1 } Line { ZOrder 18 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 19 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType SubSystem Name "\n\n " SID "989" Ports [2, 2] Position [1990, 946, 2230, 1039] ZOrder 299 RequestExecContextInheritance off Variant off Object { $PropName "MaskObject" $ObjectID 37 $ClassName "Simulink.Mask" Display "port_label('input', 1, '^{E}r_o', 'texmode', 'on');\nport_label('input', 2, '\\psi', 'texmode', 'on" "');\nport_label('output', 1, '^{E}r_o camera', 'texmode', 'on');\nport_label('output', 2, '\\psi camera', 'texmod" "e', 'on');\ndisp('OptiTrack Camera System', 'texmode', 'on');" } System { Name "\n\n " Location [-8, -8, 1928, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "E_ro" SID "990" Position [295, 238, 325, 252] ZOrder -1 IconDisplay "Port number" } Block { BlockType Inport Name "yaw" SID "991" Position [295, 338, 325, 352] ZOrder 4 Port "2" IconDisplay "Port number" } Block { BlockType RandomNumber Name "E_ro_noise" SID "992" Position [545, 175, 575, 205] ZOrder 30 Mean "zeros(3,1)" Variance "[ 7.9664e-10 ; 1.1928e-10 ; 5.0636e-10 ] " Seed "[0,1,2]" SampleTime "6.1e-3" } Block { BlockType Quantizer Name "E_ro_quantizer" SID "993" Position [685, 230, 715, 260] ZOrder 34 QuantizationInterval "2.4400e-04" } Block { BlockType ZeroOrderHold Name "E_ro_sampling" SID "994" Position [410, 230, 445, 260] ZOrder 38 SampleTime "6.1e-3" } Block { BlockType Ground Name "Ground1" SID "995" Position [465, 180, 485, 200] ZOrder 42 } Block { BlockType Ground Name "Ground2" SID "996" Position [465, 390, 485, 410] ZOrder 56 } Block { BlockType Sum Name "Sum1" SID "997" Ports [2, 1] Position [605, 235, 625, 255] ZOrder 33 ShowName off IconShape "round" Inputs "++|" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum3" SID "998" Ports [2, 1] Position [485, 235, 505, 255] ZOrder 37 ShowName off IconShape "round" Inputs "++|" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum4" SID "999" Ports [2, 1] Position [605, 335, 625, 355] ZOrder 47 ShowName off IconShape "round" Inputs "|++" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum6" SID "1000" Ports [2, 1] Position [485, 335, 505, 355] ZOrder 51 ShowName off IconShape "round" Inputs "|++" InputSameDT off OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType RandomNumber Name "yaw_noise" SID "1001" Position [545, 365, 575, 395] ZOrder 46 Variance "1.0783e-9" SampleTime "6.1e-3" } Block { BlockType Quantizer Name "yaw_quantizer" SID "1002" Position [685, 330, 715, 360] ZOrder 50 QuantizationInterval "1.1e-3" } Block { BlockType ZeroOrderHold Name "yaw_sampling" SID "1003" Position [410, 330, 445, 360] ZOrder 54 SampleTime "6.1e-3" } Block { BlockType Outport Name "E_ro_camera" SID "1004" Position [800, 238, 830, 252] ZOrder 43 IconDisplay "Port number" } Block { BlockType Outport Name "yaw_camera" SID "1005" Position [800, 338, 830, 352] ZOrder 55 Port "2" IconDisplay "Port number" } Line { ZOrder 1 SrcBlock "E_ro_quantizer" SrcPort 1 DstBlock "E_ro_camera" DstPort 1 } Line { ZOrder 2 SrcBlock "E_ro_noise" SrcPort 1 Points [35, 0] DstBlock "Sum1" DstPort 1 } Line { ZOrder 3 SrcBlock "Sum3" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { ZOrder 4 SrcBlock "Sum1" SrcPort 1 DstBlock "E_ro_quantizer" DstPort 1 } Line { ZOrder 5 SrcBlock "E_ro_sampling" SrcPort 1 DstBlock "Sum3" DstPort 2 } Line { ZOrder 6 SrcBlock "Ground1" SrcPort 1 Points [5, 0] DstBlock "Sum3" DstPort 1 } Line { ZOrder 7 SrcBlock "yaw_quantizer" SrcPort 1 DstBlock "yaw_camera" DstPort 1 } Line { ZOrder 8 SrcBlock "Sum4" SrcPort 1 DstBlock "yaw_quantizer" DstPort 1 } Line { ZOrder 9 SrcBlock "Sum6" SrcPort 1 DstBlock "Sum4" DstPort 1 } Line { ZOrder 10 SrcBlock "yaw_noise" SrcPort 1 Points [35, 0] DstBlock "Sum4" DstPort 2 } Line { ZOrder 11 SrcBlock "yaw_sampling" SrcPort 1 DstBlock "Sum6" DstPort 1 } Line { ZOrder 12 SrcBlock "Ground2" SrcPort 1 Points [5, 0] DstBlock "Sum6" DstPort 2 } Line { ZOrder 13 SrcBlock "yaw" SrcPort 1 DstBlock "yaw_sampling" DstPort 1 } Line { ZOrder 14 SrcBlock "E_ro" SrcPort 1 DstBlock "E_ro_sampling" DstPort 1 } } } Block { BlockType SubSystem Name "3D Graphical Simulation" SID "911" Ports [2] Position [2005, 1075, 2155, 1135] ZOrder 287 Commented "on" RequestExecContextInheritance off Variant off Object { $PropName "MaskObject" $ObjectID 38 $ClassName "Simulink.Mask" Display "port_label('input',1,'r_{o}','texmode','on')\nport_label('input',2,'\\Theta','texmode','on')" } System { Name "3D Graphical Simulation" Location [-8, -8, 1928, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "60" Block { BlockType Inport Name "Displacement" SID "912" Position [110, 218, 140, 232] ZOrder -1 IconDisplay "Port number" } Block { BlockType Inport Name "Euler Angles" SID "913" Position [125, 108, 155, 122] ZOrder -2 Port "2" IconDisplay "Port number" } Block { BlockType BusCreator Name "Bus\nCreator" SID "914" Ports [3, 1] Position [600, 76, 610, 154] ZOrder -3 ShowName off Inputs "3" DisplayOption "bar" InheritFromInputs on } Block { BlockType BusCreator Name "Bus\nCreator1" SID "915" Ports [3, 1] Position [630, 191, 640, 269] ZOrder -4 ShowName off Inputs "3" DisplayOption "bar" InheritFromInputs on } Block { BlockType BusCreator Name "Bus\nCreator2" SID "916" Ports [3, 1] Position [385, 75, 390, 155] ZOrder -5 ShowName off Inputs "3" DisplayOption "bar" InheritFromInputs on } Block { BlockType BusSelector Name "Bus\nSelector" SID "917" Ports [1, 3] Position [500, 77, 505, 153] ZOrder -6 ShowName off OutputSignals "phi,theta,psi" Port { PortNumber 1 Name "<phi>" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 2 Name "<theta>" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "<psi>" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Demux Name "Demux" SID "918" Ports [1, 3] Position [440, 183, 450, 267] ZOrder -7 BackgroundColor "black" ShowName off Outputs "3" DisplayOption "bar" } Block { BlockType Demux Name "Demux1" SID "919" Ports [1, 3] Position [290, 75, 295, 155] ZOrder -8 ShowName off Outputs "3" DisplayOption "bar" Port { PortNumber 1 Name "phi" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 2 Name "theta" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "psi" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Gain Name "Gain" SID "920" Position [550, 240, 580, 270] ZOrder -10 Gain "-1" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain1" SID "921" Position [670, 208, 710, 252] ZOrder -11 Gain "eye(3)*1" Multiplication "Matrix(K*u)" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain2" SID "922" Position [550, 190, 580, 220] ZOrder -12 Gain "-1" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType SubSystem Name "MATLAB Function" SID "923" Ports [1, 1] Position [655, 92, 725, 138] ZOrder 5 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off System { Name "MATLAB Function" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "21" Block { BlockType Inport Name "u" SID "923::1" Position [20, 101, 40, 119] ZOrder -1 IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "923::20" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 11 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "923::19" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 11" Ports [1, 2] Position [180, 100, 230, 160] ZOrder 10 FunctionName "sf_sfun" PortCounts "[1 2]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "y" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "923::21" Position [460, 241, 480, 259] ZOrder 12 } Block { BlockType Outport Name "y" SID "923::5" Position [460, 101, 480, 119] ZOrder -5 IconDisplay "Port number" } Line { ZOrder 1 SrcBlock "u" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { Name "y" ZOrder 2 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "y" DstPort 1 } Line { ZOrder 3 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 4 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType RateTransition Name "Rate Transition" SID "924" Position [755, 94, 795, 136] ZOrder -13 NamePlacement "alternate" OutPortSampleTime "0.06" } Block { BlockType RateTransition Name "Rate Transition1" SID "925" Position [735, 210, 770, 250] ZOrder -14 OutPortSampleTime "0.06" } Block { BlockType Reference Name "VR Sink" SID "926" Ports [2] Position [865, 76, 1055, 234] ZOrder -15 LibraryVersion "1.36" SourceBlock "vrlib/VR Sink" SourceType "Virtual Reality Sink" InstantiateOnLoad on SampleTime "-1" ViewEnable on RemoteChange off RemoteView off FieldsWritten "Helicopter.rotation.4.1.1.double#Helicopter.translation.3.1.1.double" WorldFileName "quadrotor_world_ucart.wrl" AutoView on VideoDimensions "[]" AllowVariableSize off } Line { ZOrder 1 SrcBlock "Displacement" SrcPort 1 DstBlock "Demux" DstPort 1 } Line { ZOrder 2 SrcBlock "Bus\nCreator2" SrcPort 1 DstBlock "Bus\nSelector" DstPort 1 } Line { ZOrder 3 SrcBlock "Demux" SrcPort 1 Points [40, 0; 0, 40; 120, 0] DstBlock "Bus\nCreator1" DstPort 3 } Line { ZOrder 4 SrcBlock "Gain" SrcPort 1 Points [5, 0; 0, -25] DstBlock "Bus\nCreator1" DstPort 2 } Line { ZOrder 5 SrcBlock "Gain2" SrcPort 1 DstBlock "Bus\nCreator1" DstPort 1 } Line { ZOrder 6 SrcBlock "Rate Transition1" SrcPort 1 Points [35, 0; 0, -35] DstBlock "VR Sink" DstPort 2 } Line { ZOrder 7 SrcBlock "Rate Transition" SrcPort 1 DstBlock "VR Sink" DstPort 1 } Line { ZOrder 8 SrcBlock "Demux" SrcPort 3 DstBlock "Gain" DstPort 1 } Line { ZOrder 9 SrcBlock "Demux" SrcPort 2 Points [80, 0] DstBlock "Gain2" DstPort 1 } Line { ZOrder 10 SrcBlock "Bus\nCreator1" SrcPort 1 DstBlock "Gain1" DstPort 1 } Line { Name "<phi>" ZOrder 11 Labels [0, 0] SrcBlock "Bus\nSelector" SrcPort 1 Points [0, -10; 45, 0; 0, 60] DstBlock "Bus\nCreator" DstPort 3 } Line { Name "<psi>" ZOrder 12 Labels [0, 0] SrcBlock "Bus\nSelector" SrcPort 3 Points [0, -10; 75, 0] DstBlock "Bus\nCreator" DstPort 2 } Line { Name "<theta>" ZOrder 13 Labels [0, 0] SrcBlock "Bus\nSelector" SrcPort 2 Points [30, 0; 0, -25] DstBlock "Bus\nCreator" DstPort 1 } Line { ZOrder 14 SrcBlock "Gain1" SrcPort 1 DstBlock "Rate Transition1" DstPort 1 } Line { Name "psi" ZOrder 15 Labels [0, 0] SrcBlock "Demux1" SrcPort 3 DstBlock "Bus\nCreator2" DstPort 3 } Line { Name "theta" ZOrder 16 Labels [0, 0] SrcBlock "Demux1" SrcPort 2 DstBlock "Bus\nCreator2" DstPort 2 } Line { Name "phi" ZOrder 17 Labels [0, 0] SrcBlock "Demux1" SrcPort 1 DstBlock "Bus\nCreator2" DstPort 1 } Line { ZOrder 18 SrcBlock "Euler Angles" SrcPort 1 DstBlock "Demux1" DstPort 1 } Line { ZOrder 19 SrcBlock "Bus\nCreator" SrcPort 1 DstBlock "MATLAB Function" DstPort 1 } Line { ZOrder 20 SrcBlock "MATLAB Function" SrcPort 1 DstBlock "Rate Transition" DstPort 1 } } } Block { BlockType SubSystem Name "3D Graphical Simulation1" SID "936" Ports [2] Position [2635, 815, 2785, 875] ZOrder 290 RequestExecContextInheritance off Variant off Object { $PropName "MaskObject" $ObjectID 39 $ClassName "Simulink.Mask" Display "port_label('input',1, '\\Theta','texmode','on')\nport_label('input',2,'r_{o}','texmode','on')" } System { Name "3D Graphical Simulation1" Location [-8, -8, 1928, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "80" Block { BlockType Inport Name "Euler Angles\n" SID "937" Position [180, 108, 210, 122] ZOrder -1 IconDisplay "Port number" } Block { BlockType Inport Name "Displacement" SID "938" Position [180, 218, 210, 232] ZOrder -2 Port "2" IconDisplay "Port number" } Block { BlockType BusCreator Name "Bus\nCreator" SID "939" Ports [3, 1] Position [600, 76, 610, 154] ZOrder -3 ShowName off Inputs "3" DisplayOption "bar" InheritFromInputs on } Block { BlockType BusCreator Name "Bus\nCreator1" SID "940" Ports [3, 1] Position [630, 191, 640, 269] ZOrder -4 ShowName off Inputs "3" DisplayOption "bar" InheritFromInputs on } Block { BlockType BusCreator Name "Bus\nCreator2" SID "941" Ports [3, 1] Position [385, 75, 390, 155] ZOrder -5 ShowName off Inputs "3" DisplayOption "bar" InheritFromInputs on } Block { BlockType BusSelector Name "Bus\nSelector" SID "942" Ports [1, 3] Position [500, 77, 505, 153] ZOrder -6 ShowName off OutputSignals "phi,theta,psi" Port { PortNumber 1 Name "<phi>" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 2 Name "<theta>" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "<psi>" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Demux Name "Demux" SID "943" Ports [1, 3] Position [440, 183, 450, 267] ZOrder -7 BackgroundColor "black" ShowName off Outputs "3" DisplayOption "bar" } Block { BlockType Demux Name "Demux1" SID "944" Ports [1, 3] Position [290, 75, 295, 155] ZOrder -8 ShowName off Outputs "3" DisplayOption "bar" Port { PortNumber 1 Name "phi" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 2 Name "theta" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } Port { PortNumber 3 Name "psi" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Gain Name "Gain" SID "945" Position [550, 240, 580, 270] ZOrder -10 Gain "-1" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain1" SID "946" Position [670, 208, 710, 252] ZOrder -11 Gain "eye(3)*1" Multiplication "Matrix(K*u)" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain2" SID "947" Position [550, 190, 580, 220] ZOrder -12 Gain "-1" ParamDataTypeStr "Inherit: Inherit via internal rule" OutDataTypeStr "Inherit: Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType SubSystem Name "MATLAB Function" SID "948" Ports [1, 1] Position [655, 92, 725, 138] ZOrder 5 ErrorFcn "Stateflow.Translate.translate" PermitHierarchicalResolution "ParametersOnly" TreatAsAtomicUnit on RequestExecContextInheritance off SFBlockType "MATLAB Function" Variant off System { Name "MATLAB Function" Location [223, 338, 826, 833] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" SIDHighWatermark "21" Block { BlockType Inport Name "u" SID "948::1" Position [20, 101, 40, 119] ZOrder -1 IconDisplay "Port number" } Block { BlockType Demux Name " Demux " SID "948::20" Ports [1, 1] Position [270, 230, 320, 270] ZOrder 11 Outputs "1" } Block { BlockType S-Function Name " SFunction " SID "948::19" Tag "Stateflow S-Function Quadcopter_Model_R2015_A 3" Ports [1, 2] Position [180, 100, 230, 160] ZOrder 10 FunctionName "sf_sfun" PortCounts "[1 2]" SFunctionDeploymentMode off EnableBusSupport on Port { PortNumber 2 Name "y" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Terminator Name " Terminator " SID "948::21" Position [460, 241, 480, 259] ZOrder 12 } Block { BlockType Outport Name "y" SID "948::5" Position [460, 101, 480, 119] ZOrder -5 IconDisplay "Port number" } Line { ZOrder 1 SrcBlock "u" SrcPort 1 DstBlock " SFunction " DstPort 1 } Line { Name "y" ZOrder 2 Labels [0, 0] SrcBlock " SFunction " SrcPort 2 DstBlock "y" DstPort 1 } Line { ZOrder 3 SrcBlock " Demux " SrcPort 1 DstBlock " Terminator " DstPort 1 } Line { ZOrder 4 SrcBlock " SFunction " SrcPort 1 DstBlock " Demux " DstPort 1 } } } Block { BlockType RateTransition Name "Rate Transition" SID "949" Position [755, 94, 795, 136] ZOrder -13 NamePlacement "alternate" OutPortSampleTime "0.06" } Block { BlockType RateTransition Name "Rate Transition1" SID "950" Position [735, 210, 770, 250] ZOrder -14 OutPortSampleTime "0.06" } Block { BlockType Reference Name "VR Sink" SID "951" Ports [2] Position [865, 76, 1055, 234] ZOrder -15 LibraryVersion "1.36" SourceBlock "vrlib/VR Sink" SourceType "Virtual Reality Sink" InstantiateOnLoad on SampleTime "-1" ViewEnable on RemoteChange off RemoteView off FieldsWritten "Helicopter.rotation.4.1.1.double#Helicopter.translation.3.1.1.double" WorldFileName "quadrotor_world_ucart.wrl" AutoView on VideoDimensions "[]" AllowVariableSize off } Line { ZOrder 2 SrcBlock "Bus\nCreator2" SrcPort 1 DstBlock "Bus\nSelector" DstPort 1 } Line { ZOrder 3 SrcBlock "Demux" SrcPort 1 Points [40, 0; 0, 40; 120, 0] DstBlock "Bus\nCreator1" DstPort 3 } Line { ZOrder 4 SrcBlock "Gain" SrcPort 1 Points [5, 0; 0, -25] DstBlock "Bus\nCreator1" DstPort 2 } Line { ZOrder 5 SrcBlock "Gain2" SrcPort 1 DstBlock "Bus\nCreator1" DstPort 1 } Line { ZOrder 6 SrcBlock "Rate Transition1" SrcPort 1 Points [35, 0; 0, -35] DstBlock "VR Sink" DstPort 2 } Line { ZOrder 7 SrcBlock "Rate Transition" SrcPort 1 DstBlock "VR Sink" DstPort 1 } Line { ZOrder 8 SrcBlock "Demux" SrcPort 3 DstBlock "Gain" DstPort 1 } Line { ZOrder 9 SrcBlock "Demux" SrcPort 2 Points [80, 0] DstBlock "Gain2" DstPort 1 } Line { ZOrder 10 SrcBlock "Bus\nCreator1" SrcPort 1 DstBlock "Gain1" DstPort 1 } Line { Name "<phi>" ZOrder 11 Labels [0, 0] SrcBlock "Bus\nSelector" SrcPort 1 Points [0, -10; 45, 0; 0, 60] DstBlock "Bus\nCreator" DstPort 3 } Line { Name "<psi>" ZOrder 12 Labels [0, 0] SrcBlock "Bus\nSelector" SrcPort 3 Points [0, -10; 75, 0] DstBlock "Bus\nCreator" DstPort 2 } Line { Name "<theta>" ZOrder 13 Labels [0, 0] SrcBlock "Bus\nSelector" SrcPort 2 Points [30, 0; 0, -25] DstBlock "Bus\nCreator" DstPort 1 } Line { ZOrder 14 SrcBlock "Gain1" SrcPort 1 DstBlock "Rate Transition1" DstPort 1 } Line { Name "psi" ZOrder 15 Labels [0, 0] SrcBlock "Demux1" SrcPort 3 DstBlock "Bus\nCreator2" DstPort 3 } Line { Name "theta" ZOrder 16 Labels [0, 0] SrcBlock "Demux1" SrcPort 2 DstBlock "Bus\nCreator2" DstPort 2 } Line { Name "phi" ZOrder 17 Labels [0, 0] SrcBlock "Demux1" SrcPort 1 DstBlock "Bus\nCreator2" DstPort 1 } Line { ZOrder 19 SrcBlock "Bus\nCreator" SrcPort 1 DstBlock "MATLAB Function" DstPort 1 } Line { ZOrder 20 SrcBlock "MATLAB Function" SrcPort 1 DstBlock "Rate Transition" DstPort 1 } Line { ZOrder 21 SrcBlock "Displacement" SrcPort 1 DstBlock "Demux" DstPort 1 } Line { ZOrder 22 SrcBlock "Euler Angles\n" SrcPort 1 DstBlock "Demux1" DstPort 1 } } } Block { BlockType Delay Name "Delay" SID "910" Ports [1, 1] Position [2090, 843, 2125, 877] ZOrder 286 BlockMirror on InputPortMap "u0" DelayLength "1" InitialCondition "0" } Block { BlockType Delay Name "Delay1" SID "909" Ports [1, 1] Position [1660, 638, 1695, 672] ZOrder 285 BlockMirror on InputPortMap "u0" DelayLength "1" InitialCondition "0" } Block { BlockType Demux Name "Demux" SID "984" Ports [1, 3] Position [1810, 1023, 1815, 1077] ZOrder 294 ShowName off Outputs "3" DisplayOption "bar" } Block { BlockType Demux Name "Demux1" SID "1006" Ports [1, 2] Position [2280, 605, 2285, 660] ZOrder 300 ShowName off Outputs "2" DisplayOption "bar" } Block { BlockType Reference Name "First-Order\nHold" SID "953" Ports [1, 1] Position [2530, 780, 2565, 810] ZOrder 292 LibraryVersion "1.388" DisableCoverage on SourceBlock "simulink/Discrete/First-Order\nHold" SourceType "First-Order Hold" ContentPreviewEnabled off Ts "6.1e-3" } Block { BlockType Reference Name "First-Order\nHold1" SID "986" Ports [1, 1] Position [2530, 875, 2565, 905] ZOrder 296 LibraryVersion "1.388" DisableCoverage on SourceBlock "simulink/Discrete/First-Order\nHold" SourceType "First-Order Hold" ContentPreviewEnabled off Ts "6.1e-3" } Block { BlockType Mux Name "Mux" SID "1007" Ports [3, 1] Position [2455, 608, 2460, 682] ZOrder 301 ShowName off Inputs "3" DisplayOption "bar" } Block { BlockType Scope Name "Scope" SID "894" Ports [1] Position [1385, 669, 1415, 701] ZOrder 270 NumInputPorts "1" Open off TimeRange auto TickLabels OneTimeTick ShowLegends off LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData1 YMin -10 YMax 10 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [680 330 1240 750] } Block { BlockType Scope Name "Scope1" SID "895" Ports [1] Position [1385, 599, 1415, 631] ZOrder 271 NumInputPorts "1" Open off TimeRange auto TickLabels OneTimeTick ShowLegends off LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData2 YMin -1.18227 YMax 0.1338 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1921 1039] } Block { BlockType Scope Name "Scope3" SID "897" Ports [1] Position [2255, 534, 2285, 566] ZOrder 278 NumInputPorts "1" Open off TimeRange auto TickLabels OneTimeTick ShowLegends off LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData4 YMin -1.66746 YMax 0.20394 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat Array Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1921 1039] } Block { BlockType Scope Name "Scope6" SID "898" Ports [1] Position [1955, 469, 1985, 501] ZOrder 280 NumInputPorts "1" Open off TimeRange auto TickLabels OneTimeTick ShowLegends off LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData5 YMin -0.10821 YMax 0.91739 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1921 1039] } Block { BlockType Scope Name "Scope7" SID "899" Ports [1] Position [1955, 544, 1985, 576] ZOrder 281 NumInputPorts "1" Open off TimeRange auto TickLabels OneTimeTick ShowLegends off LimitDataPoints off MaxDataPoints 5000 SaveToWorkspace off SaveName ScopeData6 YMin -2.66218 YMax 0.34207 SampleInput off SampleTime -1 ZoomMode on Grid on DataFormat StructureWithTime Decimation 1 List { ListType AxesTitles axes1 "%<SignalLabel>" } List { ListType ScopeGraphics FigureColor "[0.156862745098039 0.156862745098039 0.156862745098039]" AxesColor "[0 0 0]" AxesTickColor "[0.686274509803922 0.686274509803922 0.686274509803922]" LineColors "[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]" LineStyles "-|-|-|-|-|-" LineWidths "[0.5 0.5 0.5 0.5 0.5 0.5]" MarkerStyles "none|none|none|none|none|none" } Location [1 76 1909 1039] } Block { BlockType S-Function Name "Soft Real Time" SID "927" Ports [] Position [2033, 1185, 2120, 1216] ZOrder 288 ShowName off Commented "on" FunctionName "sfun_time" Parameters "x" SFunctionDeploymentMode off EnableBusSupport off Object { $PropName "MaskObject" $ObjectID 40 $ClassName "Simulink.Mask" Display "color('red')\ndisp('Soft Real Time')\n" Object { $PropName "Parameters" $ObjectID 41 $ClassName "Simulink.MaskParameter" Type "edit" Name "x" Prompt "Time Scaling Factor" Value "1" } } } Block { BlockType Outport Name "euler_angles_filtered" SID "901" Position [2540, 638, 2570, 652] ZOrder 262 IconDisplay "Port number" } Block { BlockType Outport Name "euler_rates" SID "904" Position [2005, 903, 2035, 917] ZOrder 259 Port "2" IconDisplay "Port number" } Block { BlockType Outport Name "current_position" SID "928" Position [2335, 963, 2365, 977] ZOrder 289 Port "3" IconDisplay "Port number" } Line { ZOrder 170 SrcBlock "\n\n\n\n\n\n\n\n\n\n" SrcPort 1 Points [23, 0] Branch { ZOrder 199 Points [0, -70] DstBlock "\n\n\n\n\n\n\n\n\n\n\n\n1" DstPort 1 } Branch { ZOrder 198 Points [0, 25] DstBlock "Scope1" DstPort 1 } } Line { ZOrder 173 SrcBlock "\n\n\n\n\n\n\n\n\n\n" SrcPort 2 Points [15, 0] Branch { ZOrder 172 Points [0, -35] DstBlock "Scope" DstPort 1 } Branch { ZOrder 171 DstBlock "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" DstPort 1 } } Line { ZOrder 174 SrcBlock "B_vo_dot" SrcPort 1 DstBlock "\n\n\n\n\n\n\n\n\n\n" DstPort 1 } Line { ZOrder 175 SrcBlock "B_vo" SrcPort 1 DstBlock "\n\n\n\n\n\n\n\n\n\n" DstPort 2 } Line { ZOrder 176 SrcBlock "B_Omega" SrcPort 1 DstBlock "\n\n\n\n\n\n\n\n\n\n" DstPort 3 } Line { ZOrder 177 SrcBlock "B_g" SrcPort 1 DstBlock "\n\n\n\n\n\n\n\n\n\n" DstPort 4 } Line { ZOrder 197 SrcBlock "\n\n\n\n\n\n\n\n\n\n\n\n1" SrcPort 2 Points [17, 0] Branch { ZOrder 207 Points [0, 60] DstBlock "Delay1" DstPort 1 } Branch { ZOrder 202 Points [31, 0] Branch { ZOrder 201 DstBlock "\n\n\n\n\n\n\n\n" DstPort 2 } Branch { ZOrder 180 Points [0, -35] DstBlock "Scope7" DstPort 1 } } } Line { ZOrder 195 SrcBlock "\n\n\n\n\n\n\n\n\n\n\n\n1" SrcPort 1 Points [47, 0] Branch { ZOrder 205 DstBlock "\n\n\n\n\n\n\n\n" DstPort 1 } Branch { ZOrder 183 Points [0, -35] DstBlock "Scope6" DstPort 1 } } Line { ZOrder 209 SrcBlock "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" SrcPort 1 Points [58, 0] Branch { ZOrder 221 Points [0, 160] DstBlock "euler_rates" DstPort 1 } Branch { ZOrder 220 Points [0, -80] DstBlock "\n\n\n\n\n\n\n\n" DstPort 3 } } Line { ZOrder 208 SrcBlock "Delay" SrcPort 1 Points [-102, 0] Branch { ZOrder 191 Points [0, -115] DstBlock "\n\n\n\n\n\n\n\n" DstPort 4 } Branch { ZOrder 190 Points [-566, 0; 0, -80] DstBlock "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" DstPort 2 } } Line { ZOrder 204 SrcBlock "Delay1" SrcPort 1 Points [-199, 0; 0, -60] DstBlock "\n\n\n\n\n\n\n\n\n\n\n\n1" DstPort 2 } Line { ZOrder 211 SrcBlock "euler_angles" SrcPort 1 Points [23, 0] Branch { ZOrder 332 Points [0, 70] DstBlock "3D Graphical Simulation" DstPort 2 } Branch { ZOrder 293 DstBlock "Demux" DstPort 1 } } Line { ZOrder 189 SrcBlock "\n\n\n\n\n\n\n\n" SrcPort 1 Points [16, 0] Branch { ZOrder 327 DstBlock "Demux1" DstPort 1 } Branch { ZOrder 216 Points [0, 225] DstBlock "Delay" DstPort 1 } Branch { ZOrder 187 Points [0, -85] DstBlock "Scope3" DstPort 1 } } Line { ZOrder 243 SrcBlock "First-Order\nHold" SrcPort 1 Points [50, 0] DstBlock "3D Graphical Simulation1" DstPort 1 } Line { ZOrder 212 SrcBlock "E_ro" SrcPort 1 Points [196, 0] Branch { ZOrder 331 Points [0, 120] DstBlock "3D Graphical Simulation" DstPort 1 } Branch { ZOrder 304 DstBlock "\n\n " DstPort 1 } } Line { ZOrder 305 SrcBlock "Demux" SrcPort 3 Points [23, 0; 0, -55] DstBlock "\n\n " DstPort 2 } Line { ZOrder 290 SrcBlock "First-Order\nHold1" SrcPort 1 Points [30, 0; 0, -30] DstBlock "3D Graphical Simulation1" DstPort 2 } Line { ZOrder 333 SrcBlock "Demux1" SrcPort 1 DstBlock "Mux" DstPort 1 } Line { ZOrder 334 SrcBlock "Demux1" SrcPort 2 DstBlock "Mux" DstPort 2 } Line { ZOrder 335 SrcBlock "\n\n " SrcPort 2 Points [195, 0; 0, -345] DstBlock "Mux" DstPort 3 } Line { ZOrder 336 SrcBlock "Mux" SrcPort 1 Points [21, 0] Branch { ZOrder 339 Points [0, 150] DstBlock "First-Order\nHold" DstPort 1 } Branch { ZOrder 338 DstBlock "euler_angles_filtered" DstPort 1 } } Line { ZOrder 306 SrcBlock "\n\n " SrcPort 1 Points [70, 0] Branch { ZOrder 341 Points [0, -80] DstBlock "First-Order\nHold1" DstPort 1 } Branch { ZOrder 340 DstBlock "current_position" DstPort 1 } } } } Block { BlockType SubSystem Name " \n" SID "583" Ports [4, 4] Position [895, 478, 1075, 712] ZOrder 65 RequestExecContextInheritance off Variant off Object { $PropName "MaskObject" $ObjectID 42 $ClassName "Simulink.Mask" Display "port_label('input', 1, 'Setpoints', 'texmode', 'on');\nport_label('input', 2, '\\Theta_{filtered}', 'texmo" "de', 'on');\nport_label('input', 3, 'd\\Theta_{gyro}/dt', 'texmode', 'on');\nport_label('input', 4, '^{E}r_o', 'texmo" "de', 'on');\nport_label('output', 1, 'Rotor 1 Duty Cycle', 'texmode', 'on');\nport_label('output', 2, 'Rotor 2 Duty C" "ycle', 'texmode', 'on');\nport_label('output', 3, 'Rotor 3 Duty Cycle', 'texmode', 'on');\nport_label('output', 4, 'R" "otor 4 Duty Cycle', 'texmode', 'on');\ndisp('Control System', 'texmode', 'on');" } System { Name " \n" Location [-8, -8, 1928, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "125" Block { BlockType Inport Name "setpoints" SID "585" Position [110, 348, 140, 362] ZOrder 2 IconDisplay "Port number" } Block { BlockType Inport Name "euler_angles_filtered" SID "591" Position [110, 403, 140, 417] ZOrder 9 Port "2" IconDisplay "Port number" } Block { BlockType Inport Name "euler_rates" SID "592" Position [110, 448, 140, 462] ZOrder 11 Port "3" IconDisplay "Port number" } Block { BlockType Inport Name "current_position" SID "584" Position [110, 493, 140, 507] ZOrder -1 Port "4" IconDisplay "Port number" } Block { BlockType Outport Name "Rotor 0 Duty Cycle" SID "597" Position [480, 348, 510, 362] ZOrder -2 IconDisplay "Port number" } Block { BlockType Outport Name "Rotor 1 Duty Cycle" SID "598" Position [480, 403, 510, 417] ZOrder 6 Port "2" IconDisplay "Port number" } Block { BlockType Outport Name "Rotor 2 Duty Cycle" SID "599" Position [480, 448, 510, 462] ZOrder 7 Port "3" IconDisplay "Port number" } Block { BlockType Outport Name "Rotor 3 Duty Cycle" SID "600" Position [480, 493, 510, 507] ZOrder 8 Port "4" IconDisplay "Port number" } } } Block { BlockType SubSystem Name "Communication System" SID "574" Ports [0, 1] Position [760, 482, 815, 528] ZOrder 66 RequestExecContextInheritance off Variant off Object { $PropName "MaskObject" $ObjectID 43 $ClassName "Simulink.Mask" Display "port_label('output', 1, 'Setpoints', 'texmode', 'on');" } System { Name "Communication System" Location [-8, -8, 1928, 1048] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "300" Block { BlockType Step Name "Step" SID "929" Position [925, 390, 955, 420] ZOrder 32 Before "zeros(4,1)" After "[0; 0; 0; 0]" SampleTime "0" } Block { BlockType Outport Name "setpoints" SID "577" Position [1050, 398, 1080, 412] ZOrder 6 IconDisplay "Port number" } Line { ZOrder 8 SrcBlock "Step" SrcPort 1 DstBlock "setpoints" DstPort 1 } } } Line { ZOrder 172 SrcBlock " \n" SrcPort 1 DstBlock "\n\n\n\n\n\n" DstPort 1 } Line { ZOrder 260 SrcBlock " " SrcPort 2 Points [23, 0; 0, 147; -843, 0; 0, -117] DstBlock " \n" DstPort 3 } Line { ZOrder 233 SrcBlock " " SrcPort 1 Points [40, 0; 0, 246; -885, 0; 0, -196] DstBlock " \n" DstPort 2 } Line { ZOrder 180 SrcBlock "Communication System" SrcPort 1 DstBlock " \n" DstPort 1 } Line { ZOrder 186 SrcBlock " \n" SrcPort 2 DstBlock "\n\n\n\n\n\n" DstPort 2 } Line { ZOrder 187 SrcBlock " \n" SrcPort 3 DstBlock "\n\n\n\n\n\n" DstPort 3 } Line { ZOrder 188 SrcBlock " \n" SrcPort 4 DstBlock "\n\n\n\n\n\n" DstPort 4 } Line { ZOrder 227 SrcBlock "\n\n\n\n\n\n" SrcPort 1 DstBlock " " DstPort 1 } Line { ZOrder 229 SrcBlock "\n\n\n\n\n\n" SrcPort 2 DstBlock " " DstPort 2 } Line { ZOrder 230 SrcBlock "\n\n\n\n\n\n" SrcPort 3 DstBlock " " DstPort 3 } Line { ZOrder 228 SrcBlock "\n\n\n\n\n\n" SrcPort 4 DstBlock " " DstPort 4 } Line { ZOrder 231 SrcBlock "\n\n\n\n\n\n" SrcPort 5 DstBlock " " DstPort 5 } Line { ZOrder 232 SrcBlock "\n\n\n\n\n\n" SrcPort 6 DstBlock " " DstPort 6 } Line { ZOrder 261 SrcBlock " " SrcPort 3 Points [9, 0; 0, 51; -804, 0; 0, -41] DstBlock " \n" DstPort 4 } } } #Finite State Machines # # Stateflow 80000010 # # Stateflow { machine { id 1 name "Quadcopter_Model_R2015_A" created "27-Oct-2016 22:17:19" isLibrary 0 sfVersion 80000006 firstTarget 139 } chart { id 2 machine 1 name "\n\n\n\n\n\n/\n\n\n\n" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 3 0 0] viewObj 2 ssIdHighWaterMark 7 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 1 disableImplicitCasting 1 eml { name "gravity" } firstData 4 firstTransition 8 firstJunction 7 } state { id 3 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 2 treeNode [2 0 0 0] superState SUBCHART subviewer 2 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function E_Fg = gravity( m, g)\n\nE_Fg = [0; 0; m*g];\n" editorLayout "100 M4x1[10 5 700 500]" } } data { id 4 ssIdNumber 5 name "E_Fg" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [2 0 5] } data { id 5 ssIdNumber 6 name "m" scope PARAMETER_DATA paramIndexForInitFromWorkspace 1 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [2 4 6] } data { id 6 ssIdNumber 7 name "g" scope PARAMETER_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [2 5 0] } junction { id 7 position [23.5747 49.5747 7] chart 2 subviewer 2 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [2 0 0] } transition { id 8 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 7 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 2 dataLimits [21.175 25.975 14.625 42.575] subviewer 2 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [2 0 0] } instance { id 9 machine 1 name "\n\n\n\n\n\n/\n\n\n\n" chart 2 } chart { id 10 machine 1 name "\n\n\n\n\n\n/\n\n\n\n\n\n\n" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 11 0 0] viewObj 10 ssIdHighWaterMark 11 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 2 disableImplicitCasting 1 eml { name "linear_body_earth_conversion" } firstData 12 firstTransition 16 firstJunction 15 } state { id 11 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 10 treeNode [10 0 0 0] superState SUBCHART subviewer 10 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function E_ro = linear_body_earth_conversion(B_vo, euler_angles)\n\neuler_rates = zeros(3,1);\nE" "_ro = zeros(3,1);\n\nphi = euler_angles(1);\ntheta = euler_angles(2);\npsi = euler_angles(3);\n\nLeb = [cos(thet" "a)*cos(psi), sin(phi)*sin(theta)*cos(psi)-cos(phi)*sin(psi), cos(phi)*sin(theta)*cos(psi)+sin(phi)*sin(psi); ..." "\n cos(theta)*sin(psi), sin(phi)*sin(theta)*sin(psi)+cos(phi)*cos(psi), cos(phi)*sin(theta)*sin(psi)-sin(p" "hi)*cos(psi); ...\n -sin(theta) , sin(phi)*cos(theta) , c" "os(phi)*cos(theta) ];\n\nE_ro = Leb * B_vo;" editorLayout "100 M4x1[10 5 700 500]" } } data { id 12 ssIdNumber 7 name "B_vo" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [10 0 13] } data { id 13 ssIdNumber 11 name "euler_angles" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [10 12 14] } data { id 14 ssIdNumber 9 name "E_ro" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [10 13 0] } junction { id 15 position [23.5747 49.5747 7] chart 10 subviewer 10 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [10 0 0] } transition { id 16 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 15 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 10 dataLimits [21.175 25.975 14.625 42.575] subviewer 10 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [10 0 0] } instance { id 17 machine 1 name "\n\n\n\n\n\n/\n\n\n\n\n\n\n" chart 10 } chart { id 18 machine 1 name " /3D Graphical Simulation1/MATLAB Function" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 19 0 0] viewObj 18 ssIdHighWaterMark 5 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 3 disableImplicitCasting 1 eml { name "eigenaxis_ucart" } firstData 20 firstTransition 23 firstJunction 22 } state { id 19 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 18 treeNode [18 0 0 0] superState SUBCHART subviewer 18 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function y = eigenaxis_ucart(u)\n\n\nif abs(u(1))< 0.0001\n u(1) = 0.0001;\nend\n\nif abs(u(2)" ")< 0.0001\n u(2) = 0.0001;\nend\n\nif abs(u(3))< 0.0001\n u(3) = 0.0001;\nend\n\nu = [ -u(1); -u(2); u(3) " "];% [Pitch, Yaw, Roll] \n\nC11 = cos(u(2))*cos(u(3));\nC12 = cos(u(2))*sin(u(3));\nC13 = -sin(u(2));\nC21 = sin(" "u(1))*sin(u(2))*cos(u(3))-cos(u(1))*sin(u(3));\nC22 = sin(u(1))*sin(u(2))*sin(u(3))+cos(u(1))*cos(u(3));\nC23 = " "sin(u(1))*cos(u(2));\nC31 = cos(u(1))*sin(u(2))*cos(u(3))+sin(u(1))*sin(u(3));\nC32 = cos(u(1))*sin(u(2))*sin(u(" "3))-sin(u(1))*cos(u(3));\nC33 = cos(u(1))*cos(u(2));\n \ntheta = acos(0.5*(C11+C22+C33-1));\n\ne = [C23-C32; " "C31-C13; C12-C21]/(2*sin(theta));\n \ny = [e; theta];\n\n" editorLayout "100 M4x1[10 5 700 500]" } } data { id 20 ssIdNumber 4 name "u" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED } dataType "Inherit: Same as Simulink" linkNode [18 0 21] } data { id 21 ssIdNumber 5 name "y" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [18 20 0] } junction { id 22 position [23.5747 49.5747 7] chart 18 subviewer 18 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [18 0 0] } transition { id 23 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 22 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 18 dataLimits [21.175 25.975 14.625 42.575] subviewer 18 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [18 0 0] } instance { id 24 machine 1 name " /3D Graphical Simulation1/MATLAB Function" chart 18 } chart { id 25 machine 1 name "\n\n\n\n\n\n/\n\n" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 26 0 0] viewObj 25 ssIdHighWaterMark 18 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 4 disableImplicitCasting 1 eml { name "ESC" } firstData 27 firstTransition 36 firstJunction 35 } state { id 26 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 25 treeNode [25 0 0 0] superState SUBCHART subviewer 25 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function Vb_eff = ESC(rotor_0_duty_cycle, rotor_1_duty_cycle, rotor_2_duty_cycle, rotor_3_duty_" "cycle, Pmin, Pmax, Vb)\n\n% Define u_Pi for each of the rotors\nu_P0 = (rotor_0_duty_cycle/100 - Pmin) / (Pmax -" " Pmin);\nu_P1 = (rotor_1_duty_cycle/100 - Pmin) / (Pmax - Pmin);\nu_P2 = (rotor_2_duty_cycle/100 - Pmin) / (Pmax" " - Pmin);\nu_P3 = (rotor_3_duty_cycle/100 - Pmin) / (Pmax - Pmin);\n\n% Determine the effective battery voltage " "from each ESC\nVb_eff_0 = u_P0 * Vb;\nVb_eff_1 = u_P1 * Vb;\nVb_eff_2 = u_P2 * Vb;\nVb_eff_3 = u_P3 * Vb;\n\nVb_" "eff = [Vb_eff_0, Vb_eff_1, Vb_eff_2, Vb_eff_3];\n" editorLayout "100 M4x1[10 5 700 500]" } } data { id 27 ssIdNumber 4 name "rotor_0_duty_cycle" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED } dataType "Inherit: Same as Simulink" linkNode [25 0 28] } data { id 28 ssIdNumber 5 name "Vb_eff" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [25 27 29] } data { id 29 ssIdNumber 6 name "rotor_1_duty_cycle" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [25 28 30] } data { id 30 ssIdNumber 7 name "rotor_2_duty_cycle" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [25 29 31] } data { id 31 ssIdNumber 8 name "rotor_3_duty_cycle" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [25 30 32] } data { id 32 ssIdNumber 16 name "Pmin" scope PARAMETER_DATA paramIndexForInitFromWorkspace 1 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [25 31 33] } data { id 33 ssIdNumber 17 name "Pmax" scope PARAMETER_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [25 32 34] } data { id 34 ssIdNumber 18 name "Vb" scope PARAMETER_DATA paramIndexForInitFromWorkspace 2 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [25 33 0] } junction { id 35 position [23.5747 49.5747 7] chart 25 subviewer 25 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [25 0 0] } transition { id 36 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 35 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 25 dataLimits [21.175 25.975 14.625 42.575] subviewer 25 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [25 0 0] } instance { id 37 machine 1 name "\n\n\n\n\n\n/\n\n" chart 25 } chart { id 38 machine 1 name "\n\n\n\n\n\n/\n" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 39 0 0] viewObj 38 ssIdHighWaterMark 14 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 5 disableImplicitCasting 1 eml { name "motor" } firstData 40 firstTransition 50 firstJunction 49 } state { id 39 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 38 treeNode [38 0 0 0] superState SUBCHART subviewer 38 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function angular_acceleration = motor(Vb_eff, angular_velocity, Rm, Kv, Kq, Kd, If, Jreq)\n\n% D" "efine each motors effective battery voltage\nVb_eff_0 = Vb_eff(1);\nVb_eff_1 = Vb_eff(2);\nVb_eff_2 = Vb_eff(3);" "\nVb_eff_3 = Vb_eff(4);\n\n% Determine the angular velocity of each rotor from feedback\nw_0 = angular_velocity(" "1);\nw_1 = angular_velocity(2);\nw_2 = angular_velocity(3);\nw_3 = angular_velocity(4);\n\n% Determine angular a" "cceleration of each rotor\nw_0_dot = 1/(Jreq*Rm*Kq) * Vb_eff_0 - 1/(Jreq*Rm*Kq*Kv) * w_0 - 1/(Jreq*Kq)*If - (Kd/" "Jreq) * w_0^2;\nw_1_dot = 1/(Jreq*Rm*Kq) * Vb_eff_1 - 1/(Jreq*Rm*Kq*Kv) * w_1 - 1/(Jreq*Kq)*If - (Kd/Jreq) * w_1" "^2;\nw_2_dot = 1/(Jreq*Rm*Kq) * Vb_eff_2 - 1/(Jreq*Rm*Kq*Kv) * w_2 - 1/(Jreq*Kq)*If - (Kd/Jreq) * w_2^2;\nw_3_do" "t = 1/(Jreq*Rm*Kq) * Vb_eff_3 - 1/(Jreq*Rm*Kq*Kv) * w_3 - 1/(Jreq*Kq)*If - (Kd/Jreq) * w_3^2;\n\nangular_acceler" "ation = [w_0_dot, w_1_dot, w_2_dot, w_3_dot]; " editorLayout "100 M4x1[10 5 700 500]" } } data { id 40 ssIdNumber 4 name "Vb_eff" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED } dataType "Inherit: Same as Simulink" linkNode [38 0 41] } data { id 41 ssIdNumber 8 name "angular_velocity" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [38 40 42] } data { id 42 ssIdNumber 7 name "angular_acceleration" scope OUTPUT_DATA machine 1 props { array { size "1,4" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [38 41 43] } data { id 43 ssIdNumber 9 name "Rm" scope PARAMETER_DATA paramIndexForInitFromWorkspace 5 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [38 42 44] } data { id 44 ssIdNumber 10 name "Kv" scope PARAMETER_DATA paramIndexForInitFromWorkspace 4 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [38 43 45] } data { id 45 ssIdNumber 11 name "Kq" scope PARAMETER_DATA paramIndexForInitFromWorkspace 3 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [38 44 46] } data { id 46 ssIdNumber 12 name "Kd" scope PARAMETER_DATA paramIndexForInitFromWorkspace 2 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [38 45 47] } data { id 47 ssIdNumber 13 name "If" scope PARAMETER_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [38 46 48] } data { id 48 ssIdNumber 14 name "Jreq" scope PARAMETER_DATA paramIndexForInitFromWorkspace 1 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [38 47 0] } junction { id 49 position [23.5747 49.5747 7] chart 38 subviewer 38 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [38 0 0] } transition { id 50 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 49 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 38 dataLimits [21.175 25.975 14.625 42.575] subviewer 38 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [38 0 0] } instance { id 51 machine 1 name "\n\n\n\n\n\n/\n" chart 38 } chart { id 52 machine 1 name "\n\n\n\n\n\n/\n\n\n\n\n\n\n\n" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 53 0 0] viewObj 52 ssIdHighWaterMark 30 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 6 disableImplicitCasting 1 eml { name "rotor" } firstData 54 firstTransition 72 firstJunction 71 } state { id 53 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 52 treeNode [52 0 0 0] superState SUBCHART subviewer 52 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function [B_omega_dot, B_vo_dot]= rotor(angular_acceleration, angular_velocity, B_Fg, B_omega, B_" "vo, m, Kt, Kd, rhx, rhy, rhz, Jreq, Jxx, Jyy, Jzz)\n\nB_vo_dot = zeros(3,1);\nB_omega_dot = zeros(3,1);\n\n% Cre" "ate J vector\nJ = [Jxx, 0 , 0 ; ...\n 0 , Jyy, 0 ; ...\n 0 , 0 , Jzz;];\n\n% Create r_hi vector\nr" "h_0 = [-rhx; rhy; rhz];\nrh_1 = [rhx; rhy; rhz];\nrh_2 = [-rhx; -rhy; rhz];\nrh_3 = [rhx; -rhy; rhz];\n\n% Defin" "e vector from body frame origin to center of mass\nbr_oc = [0; 0; 0];\n\n% Define 3x3 Identity Matrix\nI = eye(3" ");\n\n% Create gamma vectors\ngamma_Ti = [0; 0; -1];\ngamma_omega_03 = [0; 0; -1]; %Rotors 0 and 3 use this gam" "ma_omega vector\ngamma_omega_12 = [0; 0; 1]; %Rotors 1 and 2 use this gamma_omega vector\n\n% Define angular vel" "ocities for each rotor\nw_0 = angular_velocity(1);\nw_1 = angular_velocity(2);\nw_2 = angular_velocity(3);\nw_3 " "= angular_velocity(4);\n\n% Define angular acceleration for each rotor\nw_0_dot = angular_acceleration(1);\nw_1_" "dot = angular_acceleration(2);\nw_2_dot = angular_acceleration(3);\nw_3_dot = angular_acceleration(4);\n\n% Defi" "ne the rotor force in the z-direction from each rotor\nB_Fr_0 = Kt * w_0 * w_0 * gamma_Ti;\nB_Fr_1 = Kt * w_1 * " "w_1 * gamma_Ti;\nB_Fr_2 = Kt * w_2 * w_2 * gamma_Ti;\nB_Fr_3 = Kt * w_3 * w_3 * gamma_Ti;\n\n% Sum up the rotor " "forces in the z-direction from each vector to get the\n% total body force in the z-direction\nB_Fr = B_Fr_0 + B_" "Fr_1 + B_Fr_2 + B_Fr_3;\n\n% Define the in-plane drag and induced torque produced by each rotor\n B_Q_d0 = -1 * " "Kd * w_0 * w_0 * gamma_omega_03;\n B_Q_d1 = -1 * Kd * w_1 * w_1 * gamma_omega_12;\n B_Q_d2 = -1 * Kd * w_2 * w_2" " * gamma_omega_12;\n B_Q_d3 = -1 * Kd * w_3 * w_3 * gamma_omega_03;\n\n% Sum up the total in-plane drag and indu" "ced torque to get the total\n% in-plane drag and induced torque on the body\nB_Q_d = B_Q_d0 + B_Q_d1 + B_Q_d2 + " "B_Q_d3;\n\n% Define the force lever arm torque created from the force produced by each\n% rotor in the z-directi" "on\nB_Q_F0 = cross( rh_0, B_Fr_0 );\nB_Q_F1 = cross( rh_1, B_Fr_1 );\nB_Q_F2 = cross( rh_2, B_Fr_2 );\nB_Q_F3 = " "cross( rh_3, B_Fr_3 );\n\nB_Q_F = B_Q_F0 + B_Q_F1 + B_Q_F2 + B_Q_F3;\n\n%Define the change in angular momentum t" "orque produced by each rotor \nB_Q_L0 = -1 * Jreq * ( cross(B_omega, w_0 * gamma_omega_03) + w_0_dot * gamma_ome" "ga_03 );\nB_Q_L1 = -1 * Jreq * ( cross(B_omega, w_1 * gamma_omega_12) + w_1_dot * gamma_omega_12 ); \nB_Q_L2 = -" "1 * Jreq * ( cross(B_omega, w_2 * gamma_omega_12) + w_2_dot * gamma_omega_12 ); \nB_Q_L3 = -1 * Jreq * ( cross(B" "_omega, w_3 * gamma_omega_03) + w_3_dot * gamma_omega_03 );\n\n% Sum up the total change in angular momentum tor" "que produced by each rotor\nB_Q_L = B_Q_L0 + B_Q_L1 + B_Q_L2 + B_Q_L3;\n\n% Define the total rotor system torque" " as the sum of the in-plane drag and\n% induced torque, force lever arm torque, and change in angular momentum\n" "% torques\nB_Q = B_Q_d + B_Q_F + B_Q_L;\n\n% Define the body forces in the z-direction from each vector to get t" "he\n% total body force in the z-direction\nB_F = B_Fr + B_Fg; \n\n% Define the body frame linear velocities\nB_v" "o_dot = (m*I)^(-1) * ( B_F - cross( B_omega, m*(B_vo + cross(B_omega, br_oc)) ) );\n\n% Define the body frame an" "gular velocities\nB_omega_dot = J ^(-1) * ( B_Q - cross(B_omega, J * B_omega) - cross(br_oc, B_F) );\n\n" editorLayout "100 M4x1[10 5 700 500]" } } data { id 54 ssIdNumber 6 name "B_omega_dot" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [52 0 55] } data { id 55 ssIdNumber 10 name "angular_acceleration" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 54 56] } data { id 56 ssIdNumber 11 name "angular_velocity" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 55 57] } data { id 57 ssIdNumber 30 name "B_Fg" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 56 58] } data { id 58 ssIdNumber 8 name "B_omega" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 57 59] } data { id 59 ssIdNumber 5 name "B_vo_dot" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [52 58 60] } data { id 60 ssIdNumber 7 name "B_vo" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 59 61] } data { id 61 ssIdNumber 12 name "m" scope PARAMETER_DATA paramIndexForInitFromWorkspace 6 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 60 62] } data { id 62 ssIdNumber 14 name "Kt" scope PARAMETER_DATA paramIndexForInitFromWorkspace 5 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 61 63] } data { id 63 ssIdNumber 13 name "Kd" scope PARAMETER_DATA paramIndexForInitFromWorkspace 4 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 62 64] } data { id 64 ssIdNumber 15 name "rhx" scope PARAMETER_DATA paramIndexForInitFromWorkspace 7 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 63 65] } data { id 65 ssIdNumber 16 name "rhy" scope PARAMETER_DATA paramIndexForInitFromWorkspace 8 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 64 66] } data { id 66 ssIdNumber 17 name "rhz" scope PARAMETER_DATA paramIndexForInitFromWorkspace 9 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 65 67] } data { id 67 ssIdNumber 18 name "Jreq" scope PARAMETER_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 66 68] } data { id 68 ssIdNumber 19 name "Jxx" scope PARAMETER_DATA paramIndexForInitFromWorkspace 1 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 67 69] } data { id 69 ssIdNumber 20 name "Jyy" scope PARAMETER_DATA paramIndexForInitFromWorkspace 2 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 68 70] } data { id 70 ssIdNumber 21 name "Jzz" scope PARAMETER_DATA paramIndexForInitFromWorkspace 3 machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [52 69 0] } junction { id 71 position [23.5747 49.5747 7] chart 52 subviewer 52 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [52 0 0] } transition { id 72 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 71 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 52 dataLimits [21.175 25.975 14.625 42.575] subviewer 52 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [52 0 0] } instance { id 73 machine 1 name "\n\n\n\n\n\n/\n\n\n\n\n\n\n\n" chart 52 } chart { id 74 machine 1 name "\n\n\n\n\n\n/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 75 0 0] viewObj 74 ssIdHighWaterMark 6 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 7 disableImplicitCasting 1 eml { name "angular_body_earth_conversion" } firstData 76 firstTransition 80 firstJunction 79 } state { id 75 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 74 treeNode [74 0 0 0] superState SUBCHART subviewer 74 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function euler_rates = angular_body_earth_conversion(B_omega, euler_angles)\n\neuler_rates = zero" "s(3,1);\n\nphi = euler_angles(1);\ntheta = euler_angles(2);\n\nAeb = [1, sin(phi)*tan(theta), cos(phi)*tan(theta" "); ...\n 0, cos(phi) , -sin(phi) ; ...\n 0, sin(phi)/cos(theta), cos(phi)/cos(th" "eta)];\n\n \neuler_rates = Aeb * B_omega;\n " editorLayout "100 M4x1[10 5 700 500]" } } data { id 76 ssIdNumber 4 name "B_omega" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED } dataType "Inherit: Same as Simulink" linkNode [74 0 77] } data { id 77 ssIdNumber 5 name "euler_rates" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [74 76 78] } data { id 78 ssIdNumber 6 name "euler_angles" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [74 77 0] } junction { id 79 position [23.5747 49.5747 7] chart 74 subviewer 74 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [74 0 0] } transition { id 80 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 79 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 74 dataLimits [21.175 25.975 14.625 42.575] subviewer 74 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [74 0 0] } instance { id 81 machine 1 name "\n\n\n\n\n\n/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" chart 74 } chart { id 82 machine 1 name "\n\n\n\n\n\n/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 83 0 0] viewObj 82 ssIdHighWaterMark 13 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 8 disableImplicitCasting 1 eml { name "linear_earth_body_conversion" } firstData 84 firstTransition 90 firstJunction 89 } state { id 83 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 82 treeNode [82 0 0 0] superState SUBCHART subviewer 82 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function [B_Fg, B_g] = linear_earth_body_conversion(E_Fg, euler_angles, m)\n\nphi = euler_angles" "(1);\ntheta = euler_angles(2);\npsi = euler_angles(3);\n\nLbe = [ cos(theta)*cos(psi) ," " cos(theta)*sin(psi) , -sin(theta) ; ...\n sin(phi)*sin(theta)*cos(psi)-c" "os(phi)*sin(psi), sin(phi)*sin(theta)*sin(psi)+cos(phi)*cos(psi), sin(phi)*cos(theta); ...\n cos(phi)*sin(" "theta)*cos(psi)+sin(phi)*sin(psi), cos(phi)*sin(theta)*sin(psi)-sin(phi)*cos(psi), cos(phi)*cos(theta)];\n\nB_Fg" " = Lbe * E_Fg;\n\nB_g = B_Fg/m;" editorLayout "100 M4x1[10 5 700 500]" } } data { id 84 ssIdNumber 7 name "E_Fg" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [82 0 85] } data { id 85 ssIdNumber 11 name "euler_angles" scope INPUT_DATA machine 1 props { array { size "3" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [82 84 86] } data { id 86 ssIdNumber 9 name "B_Fg" scope OUTPUT_DATA machine 1 props { array { size "3" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [82 85 87] } data { id 87 ssIdNumber 12 name "B_g" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [82 86 88] } data { id 88 ssIdNumber 13 name "m" scope PARAMETER_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [82 87 0] } junction { id 89 position [23.5747 49.5747 7] chart 82 subviewer 82 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [82 0 0] } transition { id 90 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 89 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 82 dataLimits [21.175 25.975 14.625 42.575] subviewer 82 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [82 0 0] } instance { id 91 machine 1 name "\n\n\n\n\n\n/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" chart 82 } chart { id 92 machine 1 name " /\n\n\n\n\n\n\n\n" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 93 0 0] viewObj 92 ssIdHighWaterMark 14 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 9 disableImplicitCasting 1 eml { name "complimentaryFilter" } firstData 94 firstTransition 100 firstJunction 99 } state { id 93 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 92 treeNode [92 0 0 0] superState SUBCHART subviewer 92 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function euler_angles_IMU = complimentaryFilter(accel_pitch, accel_roll, euler_angles_gyro, prev" "_euler_angles_IMU)\n\nLOOP_TIME = 6.1*10^-3;\n\nprev_phi = prev_euler_angles_IMU(1);\nprev_theta = prev_euler_an" "gles_IMU(2);\n\nphi_dot_gyro = euler_angles_gyro(1);\ntheta_dot_gyro = euler_angles_gyro(2);\n\nphi = 0.98 * (pr" "ev_phi + phi_dot_gyro * LOOP_TIME ) + 0.02 * accel_roll;\ntheta = 0.98 * (prev_theta + theta_dot_gyro * LOOP_TIM" "E) + 0.02 * accel_pitch;\n\neuler_angles_IMU = [phi; theta];\n" editorLayout "100 M4x1[10 5 700 500]" } } data { id 94 ssIdNumber 4 name "accel_pitch" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED } dataType "Inherit: Same as Simulink" linkNode [92 0 95] } data { id 95 ssIdNumber 13 name "accel_roll" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [92 94 96] } data { id 96 ssIdNumber 5 name "euler_angles_IMU" scope OUTPUT_DATA machine 1 props { array { size "[2,1]" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [92 95 97] } data { id 97 ssIdNumber 6 name "euler_angles_gyro" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [92 96 98] } data { id 98 ssIdNumber 12 name "prev_euler_angles_IMU" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [92 97 0] } junction { id 99 position [23.5747 49.5747 7] chart 92 subviewer 92 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [92 0 0] } transition { id 100 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 99 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 92 dataLimits [21.175 25.975 14.625 42.575] subviewer 92 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [92 0 0] } instance { id 101 machine 1 name " /\n\n\n\n\n\n\n\n" chart 92 } chart { id 102 machine 1 name " /\n\n\n\n\n\n\n\n\n\n/\n\n\n\n\n\n\n" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 103 0 0] viewObj 102 ssIdHighWaterMark 15 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 10 disableImplicitCasting 1 eml { name "idealIMU" } firstData 104 firstTransition 113 firstJunction 112 } state { id 103 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 102 treeNode [102 0 0 0] superState SUBCHART subviewer 102 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function [accelReading,gyroReading] = idealIMU(B_vo_dot, B_vo, B_Omega, B_g, r_oc, g)\n%#codegen\n" "\na = B_vo_dot + cross(B_Omega,B_vo) ; % body frame acceleration \n\naccelReading = (a - B_g)/g ; % acceleromete" "r reading (ideal)\n\ngyroReading = B_Omega ; % gyroscope reading (ideal) \n\nend\n\n" editorLayout "100 M4x1[10 5 700 500]" } } data { id 104 ssIdNumber 4 name "B_vo_dot" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED } dataType "Inherit: Same as Simulink" linkNode [102 0 105] } data { id 105 ssIdNumber 9 name "B_vo" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [102 104 106] } data { id 106 ssIdNumber 5 name "accelReading" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [102 105 107] } data { id 107 ssIdNumber 6 name "B_Omega" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [102 106 108] } data { id 108 ssIdNumber 7 name "B_g" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [102 107 109] } data { id 109 ssIdNumber 8 name "gyroReading" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [102 108 110] } data { id 110 ssIdNumber 10 name "r_oc" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [102 109 111] } data { id 111 ssIdNumber 12 name "g" scope PARAMETER_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [102 110 0] } junction { id 112 position [23.5747 49.5747 7] chart 102 subviewer 102 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [102 0 0] } transition { id 113 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 112 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 102 dataLimits [21.175 25.975 14.625 42.575] subviewer 102 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [102 0 0] } instance { id 114 machine 1 name " /\n\n\n\n\n\n\n\n\n\n/\n\n\n\n\n\n\n" chart 102 } chart { id 115 machine 1 name " /3D Graphical Simulation/MATLAB Function" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 116 0 0] viewObj 115 ssIdHighWaterMark 5 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 11 disableImplicitCasting 1 eml { name "eigenaxis_ucart" } firstData 117 firstTransition 120 firstJunction 119 } state { id 116 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 115 treeNode [115 0 0 0] superState SUBCHART subviewer 115 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function y = eigenaxis_ucart(u)\n\n\nif abs(u(1))< 0.0001\n u(1) = 0.0001;\nend\n\nif abs(u(2)" ")< 0.0001\n u(2) = 0.0001;\nend\n\nif abs(u(3))< 0.0001\n u(3) = 0.0001;\nend\n\nu = [ -u(1); -u(2); u(3) " "];% [Pitch, Yaw, Roll] \n\nC11 = cos(u(2))*cos(u(3));\nC12 = cos(u(2))*sin(u(3));\nC13 = -sin(u(2));\nC21 = sin(" "u(1))*sin(u(2))*cos(u(3))-cos(u(1))*sin(u(3));\nC22 = sin(u(1))*sin(u(2))*sin(u(3))+cos(u(1))*cos(u(3));\nC23 = " "sin(u(1))*cos(u(2));\nC31 = cos(u(1))*sin(u(2))*cos(u(3))+sin(u(1))*sin(u(3));\nC32 = cos(u(1))*sin(u(2))*sin(u(" "3))-sin(u(1))*cos(u(3));\nC33 = cos(u(1))*cos(u(2));\n \ntheta = acos(0.5*(C11+C22+C33-1));\n\ne = [C23-C32; " "C31-C13; C12-C21]/(2*sin(theta));\n \ny = [e; theta];\n\n" editorLayout "100 M4x1[10 5 700 500]" } } data { id 117 ssIdNumber 4 name "u" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED } dataType "Inherit: Same as Simulink" linkNode [115 0 118] } data { id 118 ssIdNumber 5 name "y" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [115 117 0] } junction { id 119 position [23.5747 49.5747 7] chart 115 subviewer 115 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [115 0 0] } transition { id 120 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 119 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 115 dataLimits [21.175 25.975 14.625 42.575] subviewer 115 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [115 0 0] } instance { id 121 machine 1 name " /3D Graphical Simulation/MATLAB Function" chart 115 } chart { id 122 machine 1 name " /\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 123 0 0] viewObj 122 ssIdHighWaterMark 6 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 12 disableImplicitCasting 1 eml { name "angular_body_earth_conversion" } firstData 124 firstTransition 128 firstJunction 127 } state { id 123 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 122 treeNode [122 0 0 0] superState SUBCHART subviewer 122 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function euler_rates_IMU = angular_body_earth_conversion(gyro_reading, euler_angles_IMU)\n\nphi =" " euler_angles_IMU(1);\ntheta = euler_angles_IMU(2);\n\nAeb = [1, sin(phi)*tan(theta), cos(phi)*tan(theta); ...\n" " 0, cos(phi) , -sin(phi) ; ...\n 0, sin(phi)/cos(theta), cos(phi)/cos(theta)];\n" "\n \neuler_rates_IMU = Aeb * gyro_reading;\n " editorLayout "100 M4x1[10 5 700 500]" } } data { id 124 ssIdNumber 4 name "gyro_reading" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED } dataType "Inherit: Same as Simulink" linkNode [122 0 125] } data { id 125 ssIdNumber 5 name "euler_rates_IMU" scope OUTPUT_DATA machine 1 props { array { size "[3,1]" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [122 124 126] } data { id 126 ssIdNumber 6 name "euler_angles_IMU" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [122 125 0] } junction { id 127 position [23.5747 49.5747 7] chart 122 subviewer 122 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [122 0 0] } transition { id 128 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 127 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 122 dataLimits [21.175 25.975 14.625 42.575] subviewer 122 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [122 0 0] } instance { id 129 machine 1 name " /\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" chart 122 } chart { id 130 machine 1 name " /\n\n\n\n\n\n\n\n\n\n\n\n1" windowPosition [422 539.941 189 413] viewLimits [0 156.75 0 153.75] screen [1 1 3600 1200 1.180555555555556] treeNode [0 131 0 0] viewObj 130 ssIdHighWaterMark 10 decomposition CLUSTER_CHART type EML_CHART chartFileNumber 13 disableImplicitCasting 1 eml { name "getPitchAndRoll" } firstData 132 firstTransition 137 firstJunction 136 } state { id 131 labelString "eML_blk_kernel()" position [18 64.5 118 66] fontSize 12 chart 130 treeNode [130 0 0 0] superState SUBCHART subviewer 130 ssIdNumber 1 type FUNC_STATE decomposition CLUSTER_STATE eml { isEML 1 script "function [accel_pitch, accel_roll] = getPitchAndRoll(accel_reading, accel_roll_prev)\n\nmag = nor" "m(accel_reading);\n\nx_accel = accel_reading(1)/mag;\ny_accel = accel_reading(2)/mag;\nz_accel = accel_reading(3" ")/mag;\n\naccel_pitch = atan(x_accel/sqrt(y_accel^2 + z_accel^2));\n%unwrapped_pitch = unwrap([accel_pitch_prev " "accel_pitch]);\n%accel_pitch = unwrapped_pitch(2);\n\naccel_roll = atan2( -y_accel,(sign(-z_accel)*sqrt(z_accel^" "2 + (1/100)*x_accel^2)) );\nunwrapped_roll = unwrap([accel_roll_prev accel_roll]);\naccel_roll = unwrapped_roll(" "2); \n" editorLayout "100 M4x1[10 5 700 500]" } } data { id 132 ssIdNumber 4 name "accel_reading" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED } dataType "Inherit: Same as Simulink" linkNode [130 0 133] } data { id 133 ssIdNumber 5 name "accel_pitch" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [130 132 134] } data { id 134 ssIdNumber 6 name "accel_roll" scope OUTPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_NO } dataType "Inherit: Same as Simulink" linkNode [130 133 135] } data { id 135 ssIdNumber 7 name "accel_roll_prev" scope INPUT_DATA machine 1 props { array { size "-1" } type { method SF_INHERITED_TYPE primitive SF_DOUBLE_TYPE isSigned 1 wordLength "16" } complexity SF_COMPLEX_INHERITED frame SF_FRAME_INHERITED } dataType "Inherit: Same as Simulink" linkNode [130 134 0] } junction { id 136 position [23.5747 49.5747 7] chart 130 subviewer 130 ssIdNumber 3 type CONNECTIVE_JUNCTION linkNode [130 0 0] } transition { id 137 labelString "{eML_blk_kernel();}" labelPosition [28.125 13.875 102.544 14.964] fontSize 12 src { intersection [0 0 1 0 23.5747 14.625 0 0] } dst { id 136 intersection [1 0 -1 0 23.5747 42.5747 0 0] } midPoint [23.5747 24.9468] chart 130 dataLimits [21.175 25.975 14.625 42.575] subviewer 130 drawStyle SMART slide { sticky BOTH_STICK } executionOrder 1 ssIdNumber 2 linkNode [130 0 0] } instance { id 138 machine 1 name " /\n\n\n\n\n\n\n\n\n\n\n\n1" chart 130 } target { id 139 machine 1 name "sfun" description "Default Simulink S-Function Target." linkNode [1 0 0] } }