From 7200e73fe225e704fc26d46a959d03dc310a9db5 Mon Sep 17 00:00:00 2001 From: Andy Snawerdt <Andy Snawerdt> Date: Wed, 8 Feb 2017 12:08:00 -0600 Subject: [PATCH] Added a R2015A version of the development model --- controls/model/test_model_R2015A.mdl | 12335 +++++++++++++++++++++++++ 1 file changed, 12335 insertions(+) create mode 100644 controls/model/test_model_R2015A.mdl diff --git a/controls/model/test_model_R2015A.mdl b/controls/model/test_model_R2015A.mdl new file mode 100644 index 000000000..bdec86fe7 --- /dev/null +++ b/controls/model/test_model_R2015A.mdl @@ -0,0 +1,12335 @@ +Model { + Name "test_model_R2015A" + Version 8.5 + SavedCharacterEncoding "windows-1252" + GraphicalInterface { + NumRootInports 0 + NumRootOutports 0 + ParameterArgumentNames "" + ComputedModelVersion "1.1926" + 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 [0] + } + Array { + Type "Simulink.EditorInfo" + Dimension 2 + Object { + $ObjectID 5 + IsActive [0] + ViewObjType "SimulinkTopLevel" + LoadSaveID "0" + Extents [1755.0, 904.0] + ZoomFactor [1.25] + Offset [317.9000000000002, 148.73333824475606] + } + Object { + $ObjectID 6 + IsActive [1] + ViewObjType "SimulinkSubsys" + LoadSaveID "573" + Extents [1755.0, 904.0] + ZoomFactor [1.5] + Offset [135.31666666666638, 158.93095238095214] + } + PropName "EditorsInfo" + } + } + } + Created "Thu Nov 03 18:34:52 2016" + Creator "Andy" + UpdateHistory "UpdateHistoryNever" + ModifiedByFormat "%<Auto>" + LastModifiedBy "Andy" + ModifiedDateFormat "%<Auto>" + LastModifiedDate "Wed Feb 08 12:06:59 2017" + RTWModifiedTimeStamp 408456418 + ModelVersionFormat "1.%<AutoIncrement:1926>" + ConfigurationManager "none" + SampleTimeColors off + SampleTimeAnnotations off + LibraryLinkDisplay "disabled" + WideLines off + ShowLineDimensions on + 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_ "test_model_R2015A" + overrideMode_ [0.0] + Array { + Type "Cell" + Dimension 1 + Cell "test_model_R2015A" + PropName "logAsSpecifiedByModels_" + } + Array { + Type "Cell" + Dimension 1 + Cell [] + PropName "logAsSpecifiedByModelsSSIDs_" + } + } + 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 9 + Version "1.15.0" + Array { + Type "Handle" + Dimension 8 + Simulink.SolverCC { + $ObjectID 10 + Version "1.15.0" + StartTime "0.0" + StopTime "10" + 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 11 + 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 12 + 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 13 + Version "1.15.0" + RTPrefix "error" + ConsistencyChecking "none" + ArrayBoundsChecking "none" + SignalInfNanChecking "none" + SignalRangeChecking "none" + ReadBeforeWriteMsg "UseLocalSettings" + WriteAfterWriteMsg "UseLocalSettings" + WriteAfterReadMsg "UseLocalSettings" + AlgebraicLoopMsg "error" + 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 14 + 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 15 + 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 16 + 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 17 + 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 18 + 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 19 + 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 "Diagnostics" + ConfigPrmDlgPosition [ 195, 142, 1085, 882 ] + } + PropName "ConfigurationSets" + } + Simulink.ConfigSet { + $PropName "ActiveConfigurationSet" + $ObjectID 9 + } + Object { + $PropName "DataTransfer" + $ObjectID 21 + $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 DiscreteIntegrator + IntegratorMethod "Integration: Forward Euler" + gainval "1.0" + ExternalReset "none" + InitialConditionSource "internal" + InitialCondition "0" + InitialConditionSetting "Output" + SampleTime "1" + OutMin "[]" + OutMax "[]" + OutDataTypeStr "Inherit: Inherit via internal rule" + LockScale off + RndMeth "Floor" + SaturateOnIntegerOverflow off + LimitOutput off + UpperSaturationLimit "inf" + LowerSaturationLimit "-inf" + ShowSaturationPort off + ShowStatePort off + IgnoreLimit off + StateMustResolveToSignalObject off + RTWStateStorageClass "Auto" + } + 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 Saturate + UpperLimitSource "Dialog" + UpperLimit "0.5" + LowerLimitSource "Dialog" + LowerLimit "-0.5" + LinearizeAsGain on + ZeroCross on + SampleTime "-1" + OutMin "[]" + OutMax "[]" + OutDataTypeStr "Inherit: Same as input" + LockScale off + RndMeth "Floor" + } + 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 "test_model_R2015A" + 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" + ReportName "simulink-default.rpt" + SIDHighWatermark "864" + Block { + BlockType SubSystem + Name " Sensors " + SID "650" + Ports [6, 3] + Position [1300, 422, 1520, 658] + ZOrder 73 + ShowName off + Commented "on" + RequestExecContextInheritance off + Variant off + Object { + $PropName "MaskObject" + $ObjectID 22 + $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, '\\Theta_{filtered}', 'texmode', 'on');\nport_label('output', 2, 'd\\Theta_{gyro}/dt', 'texmode', 'on');\nport_" + "label('output', 3, '^{E}r_o', 'texmode', 'on');\ndisp('Sensors', 'texmode', 'on'); " + } + System { + Name " Sensors " + 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_Omega" + SID "651" + Position [1015, 678, 1045, 692] + ZOrder 265 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "euler_angles" + SID "652" + Position [1720, 1043, 1750, 1057] + ZOrder 266 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_vo" + SID "653" + Position [1015, 613, 1045, 627] + ZOrder 267 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "E_ro" + SID "654" + Position [1720, 963, 1750, 977] + ZOrder 268 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_vo_dot" + SID "655" + Position [1015, 548, 1045, 562] + ZOrder 269 + Port "5" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_g" + SID "656" + Position [1015, 743, 1045, 757] + ZOrder 273 + Port "6" + IconDisplay "Port number" + } + Block { + BlockType SubSystem + Name "3D Graphical Simulation" + SID "698" + Ports [2] + Position [2005, 1075, 2155, 1135] + ZOrder 287 + Commented "on" + RequestExecContextInheritance off + Variant off + Object { + $PropName "MaskObject" + $ObjectID 23 + $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 "100" + Block { + BlockType Inport + Name "Displacement" + SID "699" + Position [110, 218, 140, 232] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "Euler Angles" + SID "700" + Position [125, 108, 155, 122] + ZOrder -2 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType BusCreator + Name "Bus\nCreator" + SID "701" + 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 "702" + 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 "703" + 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 "704" + 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 "705" + Ports [1, 3] + Position [440, 183, 450, 267] + ZOrder -7 + BackgroundColor "black" + ShowName off + Outputs "3" + DisplayOption "bar" + } + Block { + BlockType Demux + Name "Demux1" + SID "706" + 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 "707" + 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 "708" + 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 "709" + 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 "710" + 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 "710::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "710::20" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 11 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "710::19" + Tag "Stateflow S-Function test_model_R2015A 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 "710::21" + Position [460, 241, 480, 259] + ZOrder 12 + } + Block { + BlockType Outport + Name "y" + SID "710::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 "711" + Position [755, 94, 795, 136] + ZOrder -13 + NamePlacement "alternate" + OutPortSampleTime "0.06" + } + Block { + BlockType RateTransition + Name "Rate Transition1" + SID "712" + Position [735, 210, 770, 250] + ZOrder -14 + OutPortSampleTime "0.06" + } + Block { + BlockType Reference + Name "VR Sink" + SID "713" + 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 "714" + Ports [2] + Position [2635, 815, 2785, 875] + ZOrder 290 + RequestExecContextInheritance off + Variant off + Object { + $PropName "MaskObject" + $ObjectID 24 + $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 "100" + Block { + BlockType Inport + Name "Euler Angles\n" + SID "715" + Position [180, 108, 210, 122] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "Displacement" + SID "716" + Position [180, 218, 210, 232] + ZOrder -2 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType BusCreator + Name "Bus\nCreator" + SID "717" + 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 "718" + 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 "719" + 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 "720" + 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 "721" + Ports [1, 3] + Position [440, 183, 450, 267] + ZOrder -7 + BackgroundColor "black" + ShowName off + Outputs "3" + DisplayOption "bar" + } + Block { + BlockType Demux + Name "Demux1" + SID "722" + 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 "723" + 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 "724" + 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 "725" + 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 "726" + 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 "726::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "726::20" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 11 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "726::19" + Tag "Stateflow S-Function test_model_R2015A 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 "726::21" + Position [460, 241, 480, 259] + ZOrder 12 + } + Block { + BlockType Outport + Name "y" + SID "726::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 "727" + Position [755, 94, 795, 136] + ZOrder -13 + NamePlacement "alternate" + OutPortSampleTime "0.06" + } + Block { + BlockType RateTransition + Name "Rate Transition1" + SID "728" + Position [735, 210, 770, 250] + ZOrder -14 + OutPortSampleTime "0.06" + } + Block { + BlockType Reference + Name "VR Sink" + SID "729" + 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 "Bus\nCreator2" + SrcPort 1 + DstBlock "Bus\nSelector" + DstPort 1 + } + Line { + ZOrder 2 + SrcBlock "Demux" + SrcPort 1 + Points [40, 0; 0, 40; 120, 0] + DstBlock "Bus\nCreator1" + DstPort 3 + } + Line { + ZOrder 3 + SrcBlock "Gain" + SrcPort 1 + Points [5, 0; 0, -25] + DstBlock "Bus\nCreator1" + DstPort 2 + } + Line { + ZOrder 4 + SrcBlock "Gain2" + SrcPort 1 + DstBlock "Bus\nCreator1" + DstPort 1 + } + Line { + ZOrder 5 + SrcBlock "Rate Transition1" + SrcPort 1 + Points [35, 0; 0, -35] + DstBlock "VR Sink" + DstPort 2 + } + Line { + ZOrder 6 + SrcBlock "Rate Transition" + SrcPort 1 + DstBlock "VR Sink" + DstPort 1 + } + Line { + ZOrder 7 + SrcBlock "Demux" + SrcPort 3 + DstBlock "Gain" + DstPort 1 + } + Line { + ZOrder 8 + SrcBlock "Demux" + SrcPort 2 + Points [80, 0] + DstBlock "Gain2" + DstPort 1 + } + Line { + ZOrder 9 + SrcBlock "Bus\nCreator1" + SrcPort 1 + DstBlock "Gain1" + DstPort 1 + } + Line { + Name "<phi>" + ZOrder 10 + Labels [0, 0] + SrcBlock "Bus\nSelector" + SrcPort 1 + Points [0, -10; 45, 0; 0, 60] + DstBlock "Bus\nCreator" + DstPort 3 + } + Line { + Name "<psi>" + ZOrder 11 + Labels [0, 0] + SrcBlock "Bus\nSelector" + SrcPort 3 + Points [0, -10; 75, 0] + DstBlock "Bus\nCreator" + DstPort 2 + } + Line { + Name "<theta>" + ZOrder 12 + Labels [0, 0] + SrcBlock "Bus\nSelector" + SrcPort 2 + Points [30, 0; 0, -25] + DstBlock "Bus\nCreator" + DstPort 1 + } + Line { + ZOrder 13 + SrcBlock "Gain1" + SrcPort 1 + DstBlock "Rate Transition1" + DstPort 1 + } + Line { + Name "psi" + ZOrder 14 + Labels [0, 0] + SrcBlock "Demux1" + SrcPort 3 + DstBlock "Bus\nCreator2" + DstPort 3 + } + Line { + Name "theta" + ZOrder 15 + Labels [0, 0] + SrcBlock "Demux1" + SrcPort 2 + DstBlock "Bus\nCreator2" + DstPort 2 + } + Line { + Name "phi" + ZOrder 16 + Labels [0, 0] + SrcBlock "Demux1" + SrcPort 1 + DstBlock "Bus\nCreator2" + DstPort 1 + } + Line { + ZOrder 17 + SrcBlock "Bus\nCreator" + SrcPort 1 + DstBlock "MATLAB Function" + DstPort 1 + } + Line { + ZOrder 18 + SrcBlock "MATLAB Function" + SrcPort 1 + DstBlock "Rate Transition" + DstPort 1 + } + Line { + ZOrder 19 + SrcBlock "Displacement" + SrcPort 1 + DstBlock "Demux" + DstPort 1 + } + Line { + ZOrder 20 + SrcBlock "Euler Angles\n" + SrcPort 1 + DstBlock "Demux1" + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Aeb\n\n\n\n\n\n\n\n\n\n" + SID "679" + Ports [2, 1] + Position [1470, 689, 1885, 811] + ZOrder 275 + ShowName off + 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, 'Gyroscope Reading', 'texmode', 'on');\nport_label('input', 2, '\\Theta_{IMU" + "}', 'texmode', 'on');\nport_label('output', 1, 'd\\Theta_{Gyro}/dt', 'texmode', 'on');\ndisp('A_{EB}', 'texmode'," + " 'on');" + } + System { + Name "Aeb\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 "679::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "euler_angles_IMU" + SID "679::22" + Position [20, 136, 40, 154] + ZOrder 13 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "679::24" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 15 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "679::23" + Tag "Stateflow S-Function test_model_R2015A 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 "679::25" + Position [460, 241, 480, 259] + ZOrder 16 + } + Block { + BlockType Outport + Name "euler_rates_IMU" + SID "679::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 "Calculate Pitch and Roll\n\n\n\n\n\n\n\n\n\n\n\n1" + SID "680" + Ports [2, 2] + Position [1480, 484, 1875, 631] + ZOrder 284 + ShowName off + 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('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 "Calculate Pitch and Roll\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 "680::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "accel_roll_prev" + SID "680::23" + Position [20, 136, 40, 154] + ZOrder 14 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "680::20" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 11 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "680::19" + Tag "Stateflow S-Function test_model_R2015A 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 "680::21" + Position [460, 241, 480, 259] + ZOrder 12 + } + Block { + BlockType Outport + Name "accel_pitch" + SID "680::5" + Position [460, 101, 480, 119] + ZOrder -5 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "accel_roll" + SID "680::22" + Position [460, 136, 480, 154] + ZOrder 13 + Port "2" + IconDisplay "Port number" + } + Line { + ZOrder 1 + SrcBlock "accel_reading" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + ZOrder 2 + SrcBlock "accel_roll_prev" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + Name "accel_pitch" + ZOrder 3 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "accel_pitch" + DstPort 1 + } + Line { + Name "accel_roll" + ZOrder 4 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 3 + DstBlock "accel_roll" + DstPort 1 + } + Line { + ZOrder 5 + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + ZOrder 6 + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Complimentary Filter\n\n\n\n\n\n\n\n" + SID "657" + Ports [3, 1] + Position [2025, 483, 2210, 787] + ZOrder 274 + ShowName off + 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, '\\theta_{accel}', 'texmode', 'on');\nport_label('input', 2, '\\phi_{accel}'" + ", 'texmode', 'on');\nport_label('input', 3, '\\Theta_{Gyro}', 'texmode', 'on');\n%port_label('input', 4, '\\Theta" + "_{IMU}', 'texmode', 'on');\nport_label('output', 1, '\\Theta_{IMU}', 'texmode', 'on');\ndisp('Complimentary Filte" + "r', 'texmode', 'on');" + } + System { + Name "Complimentary Filter\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 "34" + Block { + BlockType Inport + Name "accel_pitch" + SID "657::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "accel_roll" + SID "657::29" + Position [20, 136, 40, 154] + ZOrder 20 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "euler_angles_gyro" + SID "657::22" + Position [20, 171, 40, 189] + ZOrder 13 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "657::20" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 11 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "657::19" + Tag "Stateflow S-Function test_model_R2015A 9" + Ports [3, 2] + Position [180, 145, 230, 225] + ZOrder 10 + FunctionName "sf_sfun" + PortCounts "[3 2]" + SFunctionDeploymentMode off + EnableBusSupport on + Port { + PortNumber 2 + Name "euler_angles_IMU" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + } + Block { + BlockType Terminator + Name " Terminator " + SID "657::21" + Position [460, 241, 480, 259] + ZOrder 12 + } + Block { + BlockType Outport + Name "euler_angles_IMU" + SID "657::5" + Position [460, 101, 480, 119] + ZOrder -5 + IconDisplay "Port number" + } + Line { + ZOrder 58 + SrcBlock "accel_pitch" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + ZOrder 59 + SrcBlock "accel_roll" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + ZOrder 60 + SrcBlock "euler_angles_gyro" + SrcPort 1 + DstBlock " SFunction " + DstPort 3 + } + Line { + Name "euler_angles_IMU" + ZOrder 61 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "euler_angles_IMU" + DstPort 1 + } + Line { + ZOrder 62 + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + ZOrder 63 + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType Delay + Name "Delay1" + SID "731" + Ports [1, 1] + Position [1660, 638, 1695, 672] + ZOrder 285 + BlockMirror on + ForegroundColor "red" + InputPortMap "u0" + DelayLength "1" + InitialCondition "0" + SampleTime "5e-3" + } + Block { + BlockType Delay + Name "Delay2" + SID "772" + Ports [1, 1] + Position [1075, 538, 1110, 572] + ZOrder 304 + InputPortMap "u0" + DelayLength "1" + InitialCondition "0" + } + Block { + BlockType Demux + Name "Demux" + SID "732" + Ports [1, 3] + Position [1810, 1023, 1815, 1077] + ZOrder 294 + ShowName off + Outputs "3" + DisplayOption "bar" + } + Block { + BlockType Demux + Name "Demux1" + SID "733" + Ports [1, 2] + Position [2280, 605, 2285, 660] + ZOrder 300 + ShowName off + Outputs "2" + DisplayOption "bar" + } + Block { + BlockType Reference + Name "First-Order\nHold" + SID "734" + 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 "5e-3" + } + Block { + BlockType Reference + Name "First-Order\nHold1" + SID "735" + 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 "5e-3" + } + Block { + BlockType SubSystem + Name "IMU\n\n\n\n\n\n" + SID "658" + Ports [4, 2] + Position [1145, 520, 1340, 785] + ZOrder 272 + ShowName off + RequestExecContextInheritance off + Variant off + Object { + $PropName "MaskObject" + $ObjectID 28 + $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 "IMU\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 "659" + Position [110, 173, 140, 187] + ZOrder 17 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_vo" + SID "660" + Position [110, 208, 140, 222] + ZOrder 25 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_Omega" + SID "661" + Position [110, 243, 140, 257] + ZOrder 26 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_g" + SID "662" + Position [110, 278, 140, 292] + ZOrder 27 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType SubSystem + Name "\n\n\n\n\n\n\n" + SID "663" + 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 29 + $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 "663::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_vo" + SID "663::22" + Position [20, 136, 40, 154] + ZOrder 13 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_Omega" + SID "663::19" + Position [20, 171, 40, 189] + ZOrder 10 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_g" + SID "663::20" + Position [20, 206, 40, 224] + ZOrder 11 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "r_oc" + SID "663::23" + Position [20, 246, 40, 264] + ZOrder 14 + Port "5" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "663::25" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 16 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "663::24" + Tag "Stateflow S-Function test_model_R2015A 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 "663::26" + Position [460, 241, 480, 259] + ZOrder 17 + } + Block { + BlockType Outport + Name "accelReading" + SID "663::5" + Position [460, 101, 480, 119] + ZOrder -5 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "gyroReading" + SID "663::21" + Position [460, 136, 480, 154] + ZOrder 12 + Port "2" + IconDisplay "Port number" + } + Line { + ZOrder 1 + SrcBlock "B_vo_dot" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + ZOrder 2 + SrcBlock "B_vo" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + ZOrder 3 + SrcBlock "B_Omega" + SrcPort 1 + DstBlock " SFunction " + DstPort 3 + } + Line { + ZOrder 4 + SrcBlock "B_g" + SrcPort 1 + DstBlock " SFunction " + DstPort 4 + } + Line { + ZOrder 5 + SrcBlock "r_oc" + SrcPort 1 + DstBlock " SFunction " + DstPort 5 + } + Line { + Name "accelReading" + ZOrder 6 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "accelReading" + DstPort 1 + } + Line { + Name "gyroReading" + ZOrder 7 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 3 + DstBlock "gyroReading" + DstPort 1 + } + Line { + ZOrder 8 + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + ZOrder 9 + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType DiscreteIntegrator + Name "Discrete-Time\nIntegrator" + SID "835" + Ports [1, 1] + Position [725, 372, 760, 408] + ZOrder 30 + InitialConditionSetting "State (most efficient)" + SampleTime "-1" + ICPrevOutput "DiscIntNeverNeededParam" + ICPrevScaledInput "DiscIntNeverNeededParam" + } + Block { + BlockType DiscreteIntegrator + Name "Discrete-Time\nIntegrator1" + SID "837" + Ports [1, 1] + Position [910, 342, 945, 378] + ZOrder 32 + InitialConditionSetting "State (most efficient)" + SampleTime "-1" + ICPrevOutput "DiscIntNeverNeededParam" + ICPrevScaledInput "DiscIntNeverNeededParam" + } + Block { + BlockType DiscreteIntegrator + Name "Discrete-Time\nIntegrator2" + SID "839" + Ports [1, 1] + Position [950, 247, 985, 283] + ZOrder 34 + InitialConditionSetting "State (most efficient)" + SampleTime "-1" + ICPrevOutput "DiscIntNeverNeededParam" + ICPrevScaledInput "DiscIntNeverNeededParam" + } + Block { + BlockType DiscreteIntegrator + Name "Discrete-Time\nIntegrator3" + SID "841" + Ports [1, 1] + Position [575, 437, 610, 473] + ZOrder 36 + InitialConditionSetting "State (most efficient)" + SampleTime "-1" + ICPrevOutput "DiscIntNeverNeededParam" + ICPrevScaledInput "DiscIntNeverNeededParam" + } + Block { + BlockType Ground + Name "Ground" + SID "664" + Position [550, 340, 570, 360] + ZOrder 23 + } + Block { + BlockType Ground + Name "Ground1" + SID "665" + Position [550, 145, 570, 165] + ZOrder 24 + } + Block { + BlockType Integrator + Name "Integrator" + SID "844" + Ports [1, 1] + Position [240, 360, 270, 390] + ZOrder 39 + } + Block { + BlockType Scope + Name "Scope" + SID "836" + Ports [1] + Position [805, 374, 835, 406] + ZOrder 31 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData1 + YMin -0.0001 + YMax 0.00021 + 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 "838" + Ports [1] + Position [990, 344, 1020, 376] + ZOrder 33 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData2 + YMin -0.0001 + YMax 0.00021 + 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 [306 114 866 534] + } + Block { + BlockType Scope + Name "Scope2" + SID "840" + Ports [1] + Position [1030, 249, 1060, 281] + ZOrder 35 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData3 + YMin -1.00000 + YMax 1.00000 + 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 "Scope3" + SID "842" + Ports [1] + Position [655, 439, 685, 471] + ZOrder 37 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData4 + YMin -1.00000 + YMax 1.00000 + 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 [306 114 866 534] + } + Block { + BlockType Scope + Name "Scope4" + SID "843" + Ports [1] + Position [580, 389, 610, 421] + ZOrder 38 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData5 + YMin -0.00912 + YMax 0.01325 + 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 [306 114 866 534] + } + Block { + BlockType Scope + Name "Scope5" + SID "845" + Ports [1] + Position [295, 359, 325, 391] + ZOrder 40 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData6 + YMin -1.00000 + YMax 1.00000 + 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 [306 114 866 534] + } + Block { + BlockType Sum + Name "Sum" + SID "666" + 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 "667" + 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 "668" + 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 "669" + 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 "670" + 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 "5e-3" + } + Block { + BlockType Quantizer + Name "accelerometer_quantizer" + SID "671" + Position [770, 195, 800, 225] + ZOrder 9 + QuantizationInterval "2.4400e-04" + } + Block { + BlockType ZeroOrderHold + Name "accelerometer_sampling" + SID "672" + Position [495, 195, 530, 225] + ZOrder 15 + SampleTime "5e-3" + } + Block { + BlockType RandomNumber + Name "gyroscope_noise" + SID "673" + 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 "5e-3" + } + Block { + BlockType Quantizer + Name "gyroscope_qunatizer" + SID "674" + Position [770, 280, 800, 310] + ZOrder 10 + QuantizationInterval "1.1e-3" + } + Block { + BlockType ZeroOrderHold + Name "gyroscope_sampling" + SID "675" + Position [495, 280, 530, 310] + ZOrder 16 + SampleTime "5e-3" + } + Block { + BlockType Constant + Name "r_oc" + SID "676" + Position [30, 307, 95, 333] + ZOrder 28 + Value "zeros(3,1)" + } + Block { + BlockType Outport + Name "accelerometer" + SID "677" + Position [840, 203, 870, 217] + ZOrder 29 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "gyroscope" + SID "678" + Position [840, 288, 870, 302] + ZOrder 21 + Port "2" + IconDisplay "Port number" + } + Line { + ZOrder 3 + SrcBlock "accelerometer_noise" + SrcPort 1 + Points [35, 0] + DstBlock "Sum1" + DstPort 1 + } + Line { + ZOrder 4 + SrcBlock "Sum" + SrcPort 1 + Points [22, 0] + Branch { + ZOrder 39 + Points [0, 65] + DstBlock "Discrete-Time\nIntegrator1" + DstPort 1 + } + Branch { + ZOrder 38 + 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 8 + SrcBlock "gyroscope_noise" + SrcPort 1 + Points [28, 0] + Branch { + ZOrder 35 + Points [0, 60] + DstBlock "Discrete-Time\nIntegrator" + DstPort 1 + } + Branch { + ZOrder 34 + Points [7, 0] + DstBlock "Sum" + DstPort 2 + } + } + Line { + ZOrder 10 + SrcBlock "Sum1" + SrcPort 1 + DstBlock "accelerometer_quantizer" + DstPort 1 + } + Line { + ZOrder 11 + SrcBlock "gyroscope_sampling" + SrcPort 1 + Points [8, 0] + Branch { + ZOrder 45 + Points [0, -29; -1, 0] + Branch { + ZOrder 52 + Points [0, -1] + DstBlock "Discrete-Time\nIntegrator2" + DstPort 1 + } + Branch { + ZOrder 51 + Points [-81, 0; 0, 189; 72, 0] + Branch { + ZOrder 47 + Points [0, -50] + DstBlock "Scope4" + DstPort 1 + } + Branch { + ZOrder 46 + DstBlock "Discrete-Time\nIntegrator3" + DstPort 1 + } + } + } + Branch { + ZOrder 44 + 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 + Points [48, 0] + Branch { + ZOrder 50 + Points [0, 125] + DstBlock "Integrator" + DstPort 1 + } + Branch { + ZOrder 49 + 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 + } + Line { + ZOrder 30 + SrcBlock "\n\n\n\n\n\n\n" + SrcPort 2 + DstBlock "gyroscope_sampling" + DstPort 1 + } + Line { + ZOrder 31 + SrcBlock "\n\n\n\n\n\n\n" + SrcPort 1 + DstBlock "accelerometer_sampling" + DstPort 1 + } + Line { + ZOrder 36 + SrcBlock "Discrete-Time\nIntegrator" + SrcPort 1 + DstBlock "Scope" + DstPort 1 + } + Line { + ZOrder 37 + SrcBlock "Discrete-Time\nIntegrator1" + SrcPort 1 + DstBlock "Scope1" + DstPort 1 + } + Line { + ZOrder 40 + SrcBlock "Discrete-Time\nIntegrator2" + SrcPort 1 + DstBlock "Scope2" + DstPort 1 + } + Line { + ZOrder 43 + SrcBlock "Discrete-Time\nIntegrator3" + SrcPort 1 + DstBlock "Scope3" + DstPort 1 + } + Line { + ZOrder 48 + SrcBlock "Integrator" + SrcPort 1 + DstBlock "Scope5" + DstPort 1 + } + Line { + ZOrder 64 + SrcBlock "gyroscope_qunatizer" + SrcPort 1 + DstBlock "gyroscope" + DstPort 1 + } + Line { + ZOrder 65 + SrcBlock "accelerometer_quantizer" + SrcPort 1 + DstBlock "accelerometer" + DstPort 1 + } + } + } + Block { + BlockType Integrator + Name "Integrator" + SID "776" + Ports [1, 1] + Position [1945, 735, 1975, 765] + ZOrder 307 + } + Block { + BlockType Mux + Name "Mux" + SID "736" + Ports [3, 1] + Position [2455, 608, 2460, 682] + ZOrder 301 + ShowName off + Inputs "3" + DisplayOption "bar" + } + Block { + BlockType SubSystem + Name "OptiTrack Camera System\n\n " + SID "681" + Ports [2, 2] + Position [1990, 946, 2230, 1039] + ZOrder 299 + ShowName off + RequestExecContextInheritance off + Variant off + Object { + $PropName "MaskObject" + $ObjectID 30 + $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 "OptiTrack Camera System\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 "175" + Block { + BlockType Inport + Name "E_ro" + SID "682" + Position [295, 238, 325, 252] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "yaw" + SID "683" + Position [295, 338, 325, 352] + ZOrder 4 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType RandomNumber + Name "E_ro_noise" + SID "684" + 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 "5e-3" + } + Block { + BlockType Quantizer + Name "E_ro_quantizer" + SID "685" + Position [685, 230, 715, 260] + ZOrder 34 + QuantizationInterval "2.4400e-04" + } + Block { + BlockType ZeroOrderHold + Name "E_ro_sampling" + SID "686" + Position [410, 230, 445, 260] + ZOrder 38 + SampleTime "5e-3" + } + Block { + BlockType Ground + Name "Ground1" + SID "687" + Position [465, 180, 485, 200] + ZOrder 42 + } + Block { + BlockType Ground + Name "Ground2" + SID "688" + Position [465, 390, 485, 410] + ZOrder 56 + } + Block { + BlockType Sum + Name "Sum1" + SID "689" + 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 "690" + 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 "691" + 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 "692" + 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 "693" + Position [545, 365, 575, 395] + ZOrder 46 + Variance "1.0783e-9" + SampleTime "5e-3" + } + Block { + BlockType Quantizer + Name "yaw_quantizer" + SID "694" + Position [685, 330, 715, 360] + ZOrder 50 + QuantizationInterval "1.1e-3" + } + Block { + BlockType ZeroOrderHold + Name "yaw_sampling" + SID "695" + Position [410, 330, 445, 360] + ZOrder 54 + SampleTime "5e-3" + } + Block { + BlockType Outport + Name "E_ro_camera" + SID "696" + Position [800, 238, 830, 252] + ZOrder 43 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "yaw_camera" + SID "697" + Position [800, 338, 830, 352] + ZOrder 55 + Port "2" + IconDisplay "Port number" + } + 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 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 17 + SrcBlock "yaw" + SrcPort 1 + DstBlock "yaw_sampling" + DstPort 1 + } + Line { + ZOrder 18 + SrcBlock "E_ro" + SrcPort 1 + DstBlock "E_ro_sampling" + DstPort 1 + } + Line { + ZOrder 19 + SrcBlock "E_ro_quantizer" + SrcPort 1 + DstBlock "E_ro_camera" + DstPort 1 + } + Line { + ZOrder 20 + SrcBlock "yaw_quantizer" + SrcPort 1 + DstBlock "yaw_camera" + DstPort 1 + } + } + } + Block { + BlockType Scope + Name "Scope" + SID "737" + 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 -0.00277 + YMax 0.00209 + 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 "738" + 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 -2.04337 + YMax 0.22704 + 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 Scope + Name "Scope2" + SID "849" + Ports [1] + Position [2550, 534, 2580, 566] + ZOrder 308 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData7 + YMin -182.40701 + YMax 117.99145 + 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 "739" + 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 -0.05134 + YMax 0.44242 + 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 "740" + 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 -1.00000 + YMax 1.00000 + 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 Scope + Name "Scope7" + SID "741" + 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 -1.00000 + YMax 1.00000 + 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 "742" + 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 31 + $ClassName "Simulink.Mask" + Display "color('red')\ndisp('Soft Real Time')\n" + Object { + $PropName "Parameters" + $ObjectID 32 + $ClassName "Simulink.MaskParameter" + Type "edit" + Name "x" + Prompt "Time Scaling Factor" + Value "1" + } + } + } + Block { + BlockType Outport + Name "euler_angles_filtered" + SID "743" + Position [2535, 638, 2565, 652] + ZOrder 262 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "euler_rates" + SID "744" + Position [1395, 798, 1430, 812] + ZOrder 259 + ForegroundColor "red" + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "current_position" + SID "745" + Position [2335, 963, 2365, 977] + ZOrder 289 + Port "3" + IconDisplay "Port number" + } + Line { + ZOrder 1 + SrcBlock "IMU\n\n\n\n\n\n" + SrcPort 1 + Points [23, 0] + Branch { + ZOrder 2 + Points [0, -70] + DstBlock "Calculate Pitch and Roll\n\n\n\n\n\n\n\n\n\n\n\n1" + DstPort 1 + } + Branch { + ZOrder 3 + Points [0, 25] + DstBlock "Scope1" + DstPort 1 + } + } + Line { + ZOrder 4 + SrcBlock "IMU\n\n\n\n\n\n" + SrcPort 2 + Points [15, 0] + Branch { + ZOrder 5 + Points [0, -35] + DstBlock "Scope" + DstPort 1 + } + Branch { + ZOrder 6 + Points [19, 0] + Branch { + ZOrder 160 + Points [0, 85] + DstBlock "euler_rates" + DstPort 1 + } + Branch { + ZOrder 159 + DstBlock "Aeb\n\n\n\n\n\n\n\n\n\n" + DstPort 1 + } + } + } + Line { + ZOrder 8 + SrcBlock "B_vo" + SrcPort 1 + DstBlock "IMU\n\n\n\n\n\n" + DstPort 2 + } + Line { + ZOrder 9 + SrcBlock "B_Omega" + SrcPort 1 + DstBlock "IMU\n\n\n\n\n\n" + DstPort 3 + } + Line { + ZOrder 10 + SrcBlock "B_g" + SrcPort 1 + DstBlock "IMU\n\n\n\n\n\n" + DstPort 4 + } + Line { + ZOrder 11 + SrcBlock "Calculate Pitch and Roll\n\n\n\n\n\n\n\n\n\n\n\n1" + SrcPort 2 + Points [17, 0] + Branch { + ZOrder 12 + Points [0, 60] + DstBlock "Delay1" + DstPort 1 + } + Branch { + ZOrder 13 + Points [31, 0] + Branch { + ZOrder 14 + Points [82, 0] + DstBlock "Complimentary Filter\n\n\n\n\n\n\n\n" + DstPort 2 + } + Branch { + ZOrder 15 + Points [0, -35] + DstBlock "Scope7" + DstPort 1 + } + } + } + Line { + ZOrder 16 + SrcBlock "Calculate Pitch and Roll\n\n\n\n\n\n\n\n\n\n\n\n1" + SrcPort 1 + Points [47, 0] + Branch { + ZOrder 17 + Points [83, 0] + DstBlock "Complimentary Filter\n\n\n\n\n\n\n\n" + DstPort 1 + } + Branch { + ZOrder 18 + Points [0, -35] + DstBlock "Scope6" + DstPort 1 + } + } + Line { + ZOrder 25 + SrcBlock "Delay1" + SrcPort 1 + Points [-199, 0; 0, -60] + DstBlock "Calculate Pitch and Roll\n\n\n\n\n\n\n\n\n\n\n\n1" + DstPort 2 + } + Line { + ZOrder 26 + SrcBlock "euler_angles" + SrcPort 1 + Points [23, 0] + Branch { + ZOrder 27 + Points [0, 70] + DstBlock "3D Graphical Simulation" + DstPort 2 + } + Branch { + ZOrder 28 + DstBlock "Demux" + DstPort 1 + } + } + Line { + ZOrder 29 + SrcBlock "Complimentary Filter\n\n\n\n\n\n\n\n" + SrcPort 1 + Points [16, 0] + Branch { + ZOrder 77 + Points [0, 222; -789, 0; 0, -77] + DstBlock "Aeb\n\n\n\n\n\n\n\n\n\n" + DstPort 2 + } + Branch { + ZOrder 30 + DstBlock "Demux1" + DstPort 1 + } + Branch { + ZOrder 69 + Points [0, -85] + DstBlock "Scope3" + DstPort 1 + } + } + Line { + ZOrder 33 + SrcBlock "First-Order\nHold" + SrcPort 1 + Points [50, 0] + DstBlock "3D Graphical Simulation1" + DstPort 1 + } + Line { + ZOrder 34 + SrcBlock "E_ro" + SrcPort 1 + Points [196, 0] + Branch { + ZOrder 35 + Points [0, 120] + DstBlock "3D Graphical Simulation" + DstPort 1 + } + Branch { + ZOrder 36 + DstBlock "OptiTrack Camera System\n\n " + DstPort 1 + } + } + Line { + ZOrder 37 + SrcBlock "Demux" + SrcPort 3 + Points [23, 0; 0, -55] + DstBlock "OptiTrack Camera System\n\n " + DstPort 2 + } + Line { + ZOrder 38 + SrcBlock "First-Order\nHold1" + SrcPort 1 + Points [30, 0; 0, -30] + DstBlock "3D Graphical Simulation1" + DstPort 2 + } + Line { + ZOrder 39 + SrcBlock "Demux1" + SrcPort 1 + DstBlock "Mux" + DstPort 1 + } + Line { + ZOrder 40 + SrcBlock "Demux1" + SrcPort 2 + DstBlock "Mux" + DstPort 2 + } + Line { + ZOrder 41 + SrcBlock "OptiTrack Camera System\n\n " + SrcPort 2 + Points [195, 0; 0, -345] + DstBlock "Mux" + DstPort 3 + } + Line { + ZOrder 42 + SrcBlock "Mux" + SrcPort 1 + Points [31, 0] + Branch { + ZOrder 117 + Points [0, -95] + DstBlock "Scope2" + DstPort 1 + } + Branch { + ZOrder 98 + Points [0, 150] + DstBlock "First-Order\nHold" + DstPort 1 + } + Branch { + ZOrder 97 + DstBlock "euler_angles_filtered" + DstPort 1 + } + } + Line { + ZOrder 45 + SrcBlock "OptiTrack Camera System\n\n " + SrcPort 1 + Points [43, 0] + Branch { + ZOrder 100 + Points [0, -80] + DstBlock "First-Order\nHold1" + DstPort 1 + } + Branch { + ZOrder 99 + DstBlock "current_position" + DstPort 1 + } + } + Line { + ZOrder 62 + SrcBlock "B_vo_dot" + SrcPort 1 + DstBlock "Delay2" + DstPort 1 + } + Line { + ZOrder 63 + SrcBlock "Delay2" + SrcPort 1 + DstBlock "IMU\n\n\n\n\n\n" + DstPort 1 + } + Line { + ZOrder 73 + SrcBlock "Aeb\n\n\n\n\n\n\n\n\n\n" + SrcPort 1 + DstBlock "Integrator" + DstPort 1 + } + Line { + ZOrder 74 + SrcBlock "Integrator" + SrcPort 1 + Points [15, 0; 0, -15] + DstBlock "Complimentary Filter\n\n\n\n\n\n\n\n" + DstPort 3 + } + } + } + Block { + BlockType SubSystem + Name "Actuation" + SID "436" + Ports [1, 6] + Position [950, 426, 1200, 654] + ZOrder 71 + ShowName off + RequestExecContextInheritance off + Variant off + Object { + $PropName "MaskObject" + $ObjectID 33 + $ClassName "Simulink.Mask" + Display "port_label('input', 1, 'Rotor Duty Cycles', 'texmode', 'on');\nport_label('output', 1, '^{B}Omega', 'texmo" + "de', 'on');\nport_label('output', 2, '\\Theta', 'texmode', 'on');\nport_label('output', 3, '^{B}v_o', 'texmode', 'on'" + ");\nport_label('output', 4, '^{E}r_o', 'texmode', 'on');\nport_label('output', 5, '^{B}dv_o/dt', 'texmode', 'on');\np" + "ort_label('output', 6, '^{B}g', 'texmode', 'on');\ndisp('Actuation', 'texmode', 'on'); " + } + System { + Name "Actuation" + 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 "Rotor Duty Cycles" + SID "437" + Position [-20, 393, 10, 407] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType SubSystem + Name "Aeb\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + SID "446" + Ports [2, 1] + Position [1395, 303, 1630, 452] + ZOrder 81 + ShowName off + 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\\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 "Aeb\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 "446::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "euler_angles" + SID "446::22" + Position [20, 136, 40, 154] + ZOrder 13 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "446::24" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 15 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "446::23" + Tag "Stateflow S-Function test_model_R2015A 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 "446::25" + Position [460, 241, 480, 259] + ZOrder 16 + } + Block { + BlockType Outport + Name "euler_rates" + SID "446::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 Demux + Name "Demux1" + SID "449" + 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 "450" + 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 "451" + 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 "452" + 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 "453" + 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 SubSystem + Name "ESC System" + SID "442" + Ports [1, 1] + Position [55, 282, 290, 518] + ZOrder 36 + ShowName off + 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, 'Rotor Duty Cycle', 'texmode', 'on');\nport_label('output', 1, 'Vb_{eff}', '" + "texmode', 'on');\ndisp('ESC System');" + } + System { + Name "ESC System" + 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_duty_cycles" + SID "442::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "442::36" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 17 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "442::35" + Tag "Stateflow S-Function test_model_R2015A 4" + Ports [1, 2] + Position [180, 105, 230, 165] + ZOrder 16 + FunctionName "sf_sfun" + Parameters "Pmax,Pmin,Vb" + PortCounts "[1 2]" + SFunctionDeploymentMode off + EnableBusSupport on + Port { + PortNumber 2 + Name "Vb_eff" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + } + Block { + BlockType Terminator + Name " Terminator " + SID "442::37" + Position [460, 241, 480, 259] + ZOrder 18 + } + Block { + BlockType Outport + Name "Vb_eff" + SID "442::5" + Position [460, 101, 480, 119] + ZOrder -5 + IconDisplay "Port number" + } + Line { + ZOrder 34 + SrcBlock "rotor_duty_cycles" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + Name "Vb_eff" + ZOrder 35 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "Vb_eff" + DstPort 1 + } + Line { + ZOrder 36 + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + ZOrder 37 + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Gravity\n\n" + SID "443" + Ports [0, 1] + Position [335, 664, 485, 786] + ZOrder 96 + ShowName off + 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('output', 1, '^EF_g', 'texmode', 'on');\nfprintf('Gravity');\n" + } + System { + Name "Gravity\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 "443::28" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 19 + Outputs "1" + } + Block { + BlockType Ground + Name " Ground " + SID "443::30" + Position [20, 121, 40, 139] + ZOrder 21 + } + Block { + BlockType S-Function + Name " SFunction " + SID "443::27" + Tag "Stateflow S-Function test_model_R2015A 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 "443::29" + Position [460, 241, 480, 259] + ZOrder 20 + } + Block { + BlockType Outport + Name "E_Fg" + SID "443::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 Integrator + Name "Integrator" + SID "454" + Ports [1, 1] + Position [730, 340, 760, 370] + ZOrder 49 + InitialCondition "[omega_o, omega_o, omega_o, omega_o]" + } + Block { + BlockType Integrator + Name "Integrator1" + SID "455" + Ports [1, 1] + Position [1225, 445, 1255, 475] + ZOrder 53 + InitialCondition "[0; 0; 0]" + } + Block { + BlockType Integrator + Name "Integrator2" + SID "456" + Ports [1, 1] + Position [1225, 325, 1255, 355] + ZOrder 54 + InitialCondition "[0; 0; 0]" + } + Block { + BlockType Integrator + Name "Integrator3" + SID "457" + Ports [1, 1] + Position [1685, 590, 1715, 620] + ZOrder 98 + InitialCondition "[0; 0; 0]" + } + Block { + BlockType Integrator + Name "Integrator4" + SID "458" + Ports [1, 1] + Position [1685, 365, 1715, 395] + ZOrder 77 + InitialCondition "[0; 0; 0]" + ContinuousStateAttributes "['phi' 'theta' 'psi']" + } + Block { + BlockType SubSystem + Name "Lbe\n\n\n\n\n\n" + SID "444" + Ports [2, 1] + Position [1395, 499, 1630, 706] + ZOrder 75 + ShowName off + ErrorFcn "Stateflow.Translate.translate" + PermitHierarchicalResolution "ParametersOnly" + TreatAsAtomicUnit on + RequestExecContextInheritance off + SFBlockType "MATLAB Function" + Variant off + Object { + $PropName "MaskObject" + $ObjectID 37 + $ClassName "Simulink.Mask" + Display "port_label('input', 1, '^Bv_o', 'texmode', 'on');\nport_label('input', 2, '\\Theta', 'texmode', 'on" + "');\nport_label('output', 1, '^Ev_o', 'texmode', 'on');\ndisp('L_{EB}', 'texmode', 'on');" + } + System { + Name "Lbe\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 "444::24" + Position [20, 101, 40, 119] + ZOrder 15 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "euler_angles" + SID "444::28" + Position [20, 136, 40, 154] + ZOrder 19 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "444::30" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 21 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "444::29" + Tag "Stateflow S-Function test_model_R2015A 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 "444::31" + Position [460, 241, 480, 259] + ZOrder 22 + } + Block { + BlockType Outport + Name "E_ro" + SID "444::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 "Lbe\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + SID "447" + Ports [2, 2] + Position [600, 694, 770, 816] + ZOrder 97 + ShowName off + ErrorFcn "Stateflow.Translate.translate" + PermitHierarchicalResolution "ParametersOnly" + TreatAsAtomicUnit on + RequestExecContextInheritance off + SFBlockType "MATLAB Function" + Variant off + Object { + $PropName "MaskObject" + $ObjectID 38 + $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 "Lbe\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 "447::24" + Position [20, 101, 40, 119] + ZOrder 15 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "euler_angles" + SID "447::28" + Position [20, 136, 40, 154] + ZOrder 19 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "447::30" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 21 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "447::29" + Tag "Stateflow S-Function test_model_R2015A 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 "447::31" + Position [460, 241, 480, 259] + ZOrder 22 + } + Block { + BlockType Outport + Name "B_Fg" + SID "447::26" + Position [460, 101, 480, 119] + ZOrder 17 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "B_g" + SID "447::32" + Position [460, 136, 480, 154] + ZOrder 23 + Port "2" + IconDisplay "Port number" + } + Line { + ZOrder 1 + SrcBlock "E_Fg" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + ZOrder 2 + SrcBlock "euler_angles" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + Name "B_Fg" + ZOrder 3 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "B_Fg" + DstPort 1 + } + Line { + Name "B_g" + ZOrder 4 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 3 + DstBlock "B_g" + DstPort 1 + } + Line { + ZOrder 5 + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + ZOrder 6 + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Motor System" + SID "441" + Ports [2, 1] + Position [420, 280, 640, 520] + ZOrder 48 + ShowName off + ErrorFcn "Stateflow.Translate.translate" + PermitHierarchicalResolution "ParametersOnly" + TreatAsAtomicUnit on + RequestExecContextInheritance off + SFBlockType "MATLAB Function" + Variant off + Object { + $PropName "MaskObject" + $ObjectID 39 + $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 "Motor System" + 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 "35" + Block { + BlockType Inport + Name "Vb_eff" + SID "441::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "angular_velocity" + SID "441::35" + Position [20, 136, 40, 154] + ZOrder 20 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "441::32" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 17 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "441::31" + Tag "Stateflow S-Function test_model_R2015A 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 "441::33" + Position [460, 241, 480, 259] + ZOrder 18 + } + Block { + BlockType Outport + Name "angular_acceleration" + SID "441::23" + Position [460, 101, 480, 119] + ZOrder 14 + IconDisplay "Port number" + } + Line { + ZOrder 33 + SrcBlock "Vb_eff" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + ZOrder 34 + SrcBlock "angular_velocity" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + Name "angular_acceleration" + ZOrder 35 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "angular_acceleration" + DstPort 1 + } + Line { + ZOrder 36 + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + ZOrder 37 + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Rotor System\n\n\n\n\n\n\n\n" + SID "758" + Ports [5, 2] + Position [945, 281, 1145, 519] + ZOrder 122 + ShowName off + ErrorFcn "Stateflow.Translate.translate" + PermitHierarchicalResolution "ParametersOnly" + TreatAsAtomicUnit on + RequestExecContextInheritance off + SFBlockType "MATLAB Function" + Variant off + Object { + $PropName "MaskObject" + $ObjectID 40 + $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 "Rotor System\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 "758::27" + Position [20, 101, 40, 119] + ZOrder 18 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "angular_velocity" + SID "758::28" + Position [20, 136, 40, 154] + ZOrder 19 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_Fg" + SID "758::47" + Position [20, 171, 40, 189] + ZOrder 20 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_omega" + SID "758::25" + Position [20, 206, 40, 224] + ZOrder 16 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "B_vo" + SID "758::24" + Position [20, 246, 40, 264] + ZOrder 15 + Port "5" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "758::49" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 22 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "758::48" + Tag "Stateflow S-Function test_model_R2015A 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 "758::50" + Position [460, 241, 480, 259] + ZOrder 23 + } + Block { + BlockType Outport + Name "B_omega_dot" + SID "758::22" + Position [460, 101, 480, 119] + ZOrder 13 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "B_vo_dot" + SID "758::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 Scope + Name "Scope" + SID "459" + 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 5.92023 + YMax 7.92023 + 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 "460" + Ports [1] + Position [740, 229, 770, 261] + ZOrder 50 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends on + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData1 + YMin -10513.81558 + YMax 11401.07279 + 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 Scope + Name "Scope10" + SID "461" + 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 -60.66007~-1.00000~-1.00000 + YMax 18.5091~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 [1 76 1909 1039] + } + Block { + BlockType Scope + Name "Scope11" + SID "462" + 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 -3.00603~-1.00000~-1.00000 + YMax 4.56766~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 [1 76 1921 1039] + } + Block { + BlockType Scope + Name "Scope2" + SID "463" + 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 -88.20659 + YMax 679.8109 + 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 "464" + 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 "465" + 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 "466" + 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~-0.09265 + YMax 1.00000~1.00000~0.0667 + 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 "Scope7" + SID "467" + 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 "468" + 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 "469" + 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 -9.72639 + YMax 9.72632 + 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 Outport + Name "B_omega" + SID "471" + Position [1815, 238, 1845, 252] + ZOrder 61 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "euler_angles" + SID "472" + Position [1870, 373, 1900, 387] + ZOrder 91 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "B_vo" + SID "473" + Position [1815, 468, 1845, 482] + ZOrder 58 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "E_ro" + SID "474" + Position [1830, 598, 1860, 612] + ZOrder 88 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "B_vo_dot" + SID "475" + Position [1830, 718, 1860, 732] + ZOrder 103 + Port "5" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "B_g" + SID "476" + Position [1830, 778, 1860, 792] + ZOrder 104 + Port "6" + IconDisplay "Port number" + } + Line { + ZOrder 1 + SrcBlock "ESC System" + SrcPort 1 + Points [23, 0; 0, -59] + Branch { + ZOrder 2 + Points [2, 0; 0, -46] + DstBlock "Scope" + DstPort 1 + } + Branch { + ZOrder 3 + Points [0, -1] + DstBlock "Motor System" + DstPort 1 + } + } + Line { + ZOrder 4 + SrcBlock "Motor System" + SrcPort 1 + Points [40, 0; 0, -45] + Branch { + ZOrder 5 + DstBlock "Integrator" + DstPort 1 + } + Branch { + ZOrder 6 + Points [0, -45] + Branch { + ZOrder 101 + DstBlock "Rotor System\n\n\n\n\n\n\n\n" + DstPort 1 + } + Branch { + ZOrder 7 + Points [0, -65] + DstBlock "Scope1" + DstPort 1 + } + } + } + Line { + ZOrder 9 + SrcBlock "Integrator" + SrcPort 1 + Points [68, 0] + Branch { + ZOrder 290 + Points [0, 210; -473, 0; 0, -105] + DstBlock "Motor System" + DstPort 2 + } + Branch { + ZOrder 292 + DstBlock "Rotor System\n\n\n\n\n\n\n\n" + DstPort 2 + } + Branch { + ZOrder 291 + Points [0, -110] + DstBlock "Scope2" + DstPort 1 + } + } + Line { + ZOrder 103 + SrcBlock "Rotor System\n\n\n\n\n\n\n\n" + SrcPort 1 + Points [39, 0] + Branch { + ZOrder 15 + Points [0, -95] + DstBlock "Scope9" + DstPort 1 + } + Branch { + ZOrder 16 + DstBlock "Integrator2" + DstPort 1 + } + } + Line { + ZOrder 22 + SrcBlock "Integrator2" + SrcPort 1 + Points [55, 0] + Branch { + ZOrder 105 + Points [0, 252; -416, 0; 0, -147] + DstBlock "Rotor System\n\n\n\n\n\n\n\n" + DstPort 4 + } + Branch { + ZOrder 23 + Points [0, -95; 454, 0] + Branch { + ZOrder 24 + DstBlock "B_omega" + DstPort 1 + } + Branch { + ZOrder 25 + Points [0, -60] + DstBlock "Demux4" + DstPort 1 + } + } + Branch { + ZOrder 27 + DstBlock "Aeb\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + DstPort 1 + } + } + Line { + ZOrder 28 + SrcBlock "Aeb\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + SrcPort 1 + DstBlock "Integrator4" + DstPort 1 + } + Line { + ZOrder 29 + SrcBlock "Gravity\n\n" + SrcPort 1 + Points [7, 0] + Branch { + ZOrder 30 + Points [0, -65] + DstBlock "Scope7" + DstPort 1 + } + Branch { + ZOrder 31 + DstBlock "Lbe\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + DstPort 1 + } + } + Line { + ZOrder 32 + SrcBlock "Lbe\n\n\n\n\n\n" + SrcPort 1 + DstBlock "Integrator3" + DstPort 1 + } + Line { + ZOrder 33 + SrcBlock "Integrator3" + SrcPort 1 + Points [64, 0] + Branch { + ZOrder 34 + Points [0, -55] + DstBlock "Demux1" + DstPort 1 + } + Branch { + ZOrder 35 + DstBlock "E_ro" + DstPort 1 + } + } + Line { + ZOrder 36 + SrcBlock "Lbe\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + SrcPort 1 + Points [24, 0; 0, -1] + Branch { + ZOrder 107 + Points [82, 0; 0, -324] + DstBlock "Rotor System\n\n\n\n\n\n\n\n" + DstPort 3 + } + Branch { + ZOrder 106 + Points [0, -79] + DstBlock "Scope8" + DstPort 1 + } + } + Line { + ZOrder 39 + SrcBlock "Lbe\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 { + Name "y position" + ZOrder 45 + Labels [0, 0] + SrcBlock "Demux1" + SrcPort 2 + DstBlock "Scope6" + DstPort 2 + } + Line { + Name "x position" + ZOrder 46 + Labels [0, 0] + SrcBlock "Demux1" + SrcPort 1 + DstBlock "Scope6" + DstPort 1 + } + Line { + Name "z position" + ZOrder 47 + Labels [0, 0] + SrcBlock "Demux1" + SrcPort 3 + DstBlock "Scope6" + DstPort 3 + } + Line { + Name "Pitch" + ZOrder 57 + Labels [0, 0] + SrcBlock "Demux2" + SrcPort 2 + DstBlock "Scope10" + DstPort 2 + } + Line { + Name "Roll" + ZOrder 58 + Labels [0, 0] + SrcBlock "Demux2" + SrcPort 1 + DstBlock "Scope10" + DstPort 1 + } + Line { + Name "Yaw" + ZOrder 59 + Labels [0, 0] + SrcBlock "Demux2" + SrcPort 3 + DstBlock "Scope10" + DstPort 3 + } + Line { + Name "Body pitch velocity" + ZOrder 60 + Labels [0, 0] + SrcBlock "Demux4" + SrcPort 2 + DstBlock "Scope11" + DstPort 2 + } + Line { + Name "Body roll velocity" + ZOrder 61 + Labels [0, 0] + SrcBlock "Demux4" + SrcPort 1 + DstBlock "Scope11" + DstPort 1 + } + Line { + Name "Body yaw velocity" + ZOrder 62 + Labels [0, 0] + SrcBlock "Demux4" + SrcPort 3 + DstBlock "Scope11" + DstPort 3 + } + Line { + Name "Body y velocity" + ZOrder 63 + Labels [0, 0] + SrcBlock "Demux3" + SrcPort 2 + DstBlock "Scope3" + DstPort 2 + } + Line { + Name "Body x velocity" + ZOrder 64 + Labels [0, 0] + SrcBlock "Demux3" + SrcPort 1 + DstBlock "Scope3" + DstPort 1 + } + Line { + Name "Body z velocity" + ZOrder 65 + Labels [0, 0] + SrcBlock "Demux3" + SrcPort 3 + DstBlock "Scope3" + DstPort 3 + } + Line { + Name "Body y acceleration" + ZOrder 66 + Labels [0, 0] + SrcBlock "Demux5" + SrcPort 2 + DstBlock "Scope4" + DstPort 2 + } + Line { + Name "Body x acceleration" + ZOrder 67 + Labels [0, 0] + SrcBlock "Demux5" + SrcPort 1 + DstBlock "Scope4" + DstPort 1 + } + Line { + Name "Body z acceleration" + ZOrder 68 + Labels [0, 0] + SrcBlock "Demux5" + SrcPort 3 + DstBlock "Scope4" + DstPort 3 + } + Line { + ZOrder 69 + SrcBlock "Integrator1" + SrcPort 1 + Points [34, 0; 0, 90] + Branch { + ZOrder 104 + Points [-370, 0; 0, -60] + DstBlock "Rotor System\n\n\n\n\n\n\n\n" + DstPort 5 + } + Branch { + ZOrder 71 + Points [76, 0] + Branch { + ZOrder 72 + DstBlock "Lbe\n\n\n\n\n\n" + DstPort 1 + } + Branch { + ZOrder 73 + Points [0, -75; 401, 0] + Branch { + ZOrder 74 + Points [0, -45] + DstBlock "Demux3" + DstPort 1 + } + Branch { + ZOrder 75 + DstBlock "B_vo" + DstPort 1 + } + } + } + } + Line { + ZOrder 102 + SrcBlock "Rotor System\n\n\n\n\n\n\n\n" + SrcPort 2 + Points [27, 0] + Branch { + ZOrder 205 + Points [0, 265; 607, 0] + Branch { + ZOrder 201 + Points [0, -60] + DstBlock "Demux5" + DstPort 1 + } + Branch { + ZOrder 200 + DstBlock "B_vo_dot" + DstPort 1 + } + } + Branch { + ZOrder 198 + DstBlock "Integrator1" + DstPort 1 + } + } + Line { + ZOrder 48 + SrcBlock "Integrator4" + SrcPort 1 + Points [20, 0] + Branch { + ZOrder 277 + Points [60, 0] + Branch { + ZOrder 50 + Points [0, -55] + DstBlock "Demux2" + DstPort 1 + } + Branch { + ZOrder 51 + DstBlock "euler_angles" + DstPort 1 + } + } + Branch { + ZOrder 52 + Points [0, 502; -385, 0] + Branch { + ZOrder 352 + Points [0, -227] + Branch { + ZOrder 54 + DstBlock "Lbe\n\n\n\n\n\n" + DstPort 2 + } + Branch { + ZOrder 55 + Points [0, -240] + DstBlock "Aeb\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + DstPort 2 + } + } + Branch { + ZOrder 56 + Points [-787, 0; 0, -97] + DstBlock "Lbe\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + DstPort 2 + } + } + } + Line { + ZOrder 286 + SrcBlock "Rotor Duty Cycles" + SrcPort 1 + DstBlock "ESC System" + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Communication System" + SID "582" + Ports [0, 1] + Position [510, 432, 565, 478] + ZOrder 70 + RequestExecContextInheritance off + Variant off + Object { + $PropName "MaskObject" + $ObjectID 41 + $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 "583" + Position [925, 390, 955, 420] + ZOrder 32 + Time "0" + Before "[0; 0; 0; 0]" + After "[1; 0; 0; 0]" + SampleTime "0" + } + Block { + BlockType Outport + Name "setpoints" + SID "584" + Position [1050, 398, 1080, 412] + ZOrder 6 + IconDisplay "Port number" + } + Line { + ZOrder 1 + SrcBlock "Step" + SrcPort 1 + DstBlock "setpoints" + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Control System" + SID "573" + Ports [4, 1] + Position [645, 425, 900, 650] + ZOrder 69 + ShowName off + 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, 'Motor Commands', 'texmode', 'on');\ndisp('Control System', 'texmode', 'on');" + } + System { + Name "Control 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 "150" + Block { + BlockType Inport + Name "setpoints" + SID "574" + Position [230, 353, 260, 367] + ZOrder 2 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "euler_angles_filtered" + SID "575" + Position [230, 513, 260, 527] + ZOrder 9 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "euler_rates" + SID "576" + Position [215, 588, 245, 602] + ZOrder 11 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "current_position" + SID "577" + Position [215, 438, 245, 452] + ZOrder -1 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType SubSystem + Name "Controller" + SID "604" + Ports [13, 4] + Position [395, 307, 530, 633] + ZOrder 31 + RequestExecContextInheritance off + Variant off + Object { + $PropName "MaskObject" + $ObjectID 43 + $ClassName "Simulink.Mask" + Display "port_label('input', 1, '^{E}r_{x,setpoint}', 'texmode', 'on');\nport_label('input', 2, '^{E}r_{y,se" + "tpoint}', 'texmode', 'on');\nport_label('input', 3, '^{E}r_{z,setpoint}', 'texmode', 'on');\nport_label('input', " + "4, '\\psi_{setpoint}', 'texmode', 'on');\nport_label('input', 5, '^{E}r_x', 'texmode', 'on');\nport_label('input'" + ", 6, '^{E}r_y', 'texmode', 'on');\nport_label('input', 7, '^{E}r_z', 'texmode', 'on');\nport_label('input', 8, '\\" + "phi', 'texmode', 'on');\nport_label('input', 9, '\\theta', 'texmode', 'on');\nport_label('input', 10, '\\psi', 't" + "exmode', 'on');\nport_label('input', 11, 'd\\phi/dt', 'texmode', 'on');\nport_label('input', 12, 'd\\theta/dt', '" + "texmode', 'on');\nport_label('input', 13, 'd\\psi/dt', 'texmode', 'on');\nport_label('output', 1, 'u_T', 'texmode" + "', 'on');\nport_label('output', 2, 'u_A', 'texmode', 'on');\nport_label('output', 3, 'u_E', 'texmode', 'on');\npo" + "rt_label('output', 4, 'u_R', 'texmode', 'on');\ndisp('Controller', 'texmode', 'on');" + } + System { + Name "Controller" + 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 "x_setpoint" + SID "605" + Position [135, 403, 165, 417] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "y_setpoint" + SID "607" + Position [135, 248, 165, 262] + ZOrder 45 + ForegroundColor "gray" + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "z_setpoint" + SID "608" + Position [130, 128, 160, 142] + ZOrder 46 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "yaw_setpoint" + SID "632" + Position [130, 553, 160, 567] + ZOrder 103 + ForegroundColor "gray" + Port "4" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "x_position" + SID "622" + Position [165, 468, 195, 482] + ZOrder 60 + Port "5" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "y_position" + SID "623" + Position [165, 313, 195, 327] + ZOrder 61 + Port "6" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "z_position" + SID "624" + Position [160, 183, 190, 197] + ZOrder 62 + Port "7" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "roll" + SID "630" + Position [300, 313, 330, 327] + ZOrder 68 + Port "8" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "pitch" + SID "631" + Position [300, 468, 330, 482] + ZOrder 69 + Port "9" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "yaw" + SID "649" + Position [160, 608, 190, 622] + ZOrder 105 + Port "10" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "roll_rate" + SID "633" + Position [425, 313, 455, 327] + ZOrder 71 + Port "11" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "pitch_rate" + SID "634" + Position [425, 468, 455, 482] + ZOrder 72 + Port "12" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "yaw_rate" + SID "635" + Position [300, 608, 330, 622] + ZOrder 73 + Port "13" + IconDisplay "Port number" + } + Block { + BlockType Reference + Name "PID Controller1" + SID "590" + Ports [1, 1] + Position [260, 392, 300, 428] + ZOrder 32 + LibraryVersion "1.388" + SourceBlock "simulink/Continuous/PID Controller" + SourceType "PID 1dof" + ContentPreviewEnabled off + Controller "PID" + TimeDomain "Continuous-time" + SampleTime "-1" + IntegratorMethod "Forward Euler" + FilterMethod "Forward Euler" + Form "Parallel" + UseFilter on + ControllerParametersSource "internal" + P "-4.09881115615483" + I "-0.786626898521519" + D "-2.54021507170204" + N "2907.76761508735" + InitialConditionSource "internal" + InitialConditionForIntegrator "0" + InitialConditionForFilter "0" + ExternalReset "none" + IgnoreLimit off + ZeroCross on + LimitOutput off + UpperSaturationLimit "inf" + LowerSaturationLimit "-inf" + LinearizeAsGain on + AntiWindupMode "none" + Kb "1" + TrackingMode off + Kt "1" + RndMeth "Floor" + SaturateOnIntegerOverflow off + LockScale off + PParamMin "[]" + PParamMax "[]" + PParamDataTypeStr "Inherit: Inherit via internal rule" + IParamMin "[]" + IParamMax "[]" + IParamDataTypeStr "Inherit: Inherit via internal rule" + DParamMin "[]" + DParamMax "[]" + DParamDataTypeStr "Inherit: Inherit via internal rule" + NParamMin "[]" + NParamMax "[]" + NParamDataTypeStr "Inherit: Inherit via internal rule" + KbParamMin "[]" + KbParamMax "[]" + KbParamDataTypeStr "Inherit: Inherit via internal rule" + KtParamMin "[]" + KtParamMax "[]" + KtParamDataTypeStr "Inherit: Inherit via internal rule" + POutMin "[]" + POutMax "[]" + POutDataTypeStr "Inherit: Inherit via internal rule" + PGainOutDataTypeStr "Inherit: Inherit via internal rule" + PProdOutDataTypeStr "Inherit: Inherit via internal rule" + IOutMin "[]" + IOutMax "[]" + IOutDataTypeStr "Inherit: Inherit via internal rule" + IGainOutDataTypeStr "Inherit: Inherit via internal rule" + IProdOutDataTypeStr "Inherit: Inherit via internal rule" + DOutMin "[]" + DOutMax "[]" + DOutDataTypeStr "Inherit: Inherit via internal rule" + DGainOutDataTypeStr "Inherit: Inherit via internal rule" + DProdOutDataTypeStr "Inherit: Inherit via internal rule" + NOutMin "[]" + NOutMax "[]" + NOutDataTypeStr "Inherit: Inherit via internal rule" + NGainOutDataTypeStr "Inherit: Inherit via internal rule" + NProdOutDataTypeStr "Inherit: Inherit via internal rule" + KbOutMin "[]" + KbOutMax "[]" + KbOutDataTypeStr "Inherit: Inherit via internal rule" + KtOutMin "[]" + KtOutMax "[]" + KtOutDataTypeStr "Inherit: Inherit via internal rule" + IntegratorOutMin "[]" + IntegratorOutMax "[]" + IntegratorOutDataTypeStr "Inherit: Inherit via internal rule" + FilterOutMin "[]" + FilterOutMax "[]" + FilterOutDataTypeStr "Inherit: Inherit via internal rule" + SumOutMin "[]" + SumOutMax "[]" + SumOutDataTypeStr "Inherit: Inherit via internal rule" + SumI1OutMin "[]" + SumI1OutMax "[]" + SumI1OutDataTypeStr "Inherit: Inherit via internal rule" + SumI2OutMin "[]" + SumI2OutMax "[]" + SumI2OutDataTypeStr "Inherit: Inherit via internal rule" + SumI3OutMin "[]" + SumI3OutMax "[]" + SumI3OutDataTypeStr "Inherit: Inherit via internal rule" + SumDOutMin "[]" + SumDOutMax "[]" + SumDOutDataTypeStr "Inherit: Inherit via internal rule" + SumAccumDataTypeStr "Inherit: Inherit via internal rule" + SumI1AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI2AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI3AccumDataTypeStr "Inherit: Inherit via internal rule" + SumDAccumDataTypeStr "Inherit: Inherit via internal rule" + SaturationOutMin "[]" + SaturationOutMax "[]" + SaturationOutDataTypeStr "Inherit: Same as input" + IntegratorContinuousStateAttributes "''" + IntegratorStateMustResolveToSignalObject off + IntegratorRTWStateStorageClass "Auto" + FilterContinuousStateAttributes "''" + FilterStateMustResolveToSignalObject off + FilterRTWStateStorageClass "Auto" + DifferentiatorICPrevScaledInput "0" + DifferentiatorOutMin "[]" + DifferentiatorOutMax "[]" + DifferentiatorOutDataTypeStr "Inherit: Inherit via internal rule" + } + Block { + BlockType Reference + Name "PID Controller10" + SID "833" + Ports [1, 1] + Position [260, 542, 300, 578] + ZOrder 122 + LibraryVersion "1.388" + SourceBlock "simulink/Continuous/PID Controller" + SourceType "PID 1dof" + ContentPreviewEnabled off + Controller "PID" + TimeDomain "Continuous-time" + SampleTime "-1" + IntegratorMethod "Forward Euler" + FilterMethod "Forward Euler" + Form "Parallel" + UseFilter on + ControllerParametersSource "internal" + P "9.8515811170609" + I "10.3080265333453" + D "1.32394710402659" + N "7.32609641947859" + InitialConditionSource "internal" + InitialConditionForIntegrator "0" + InitialConditionForFilter "0" + ExternalReset "none" + IgnoreLimit off + ZeroCross on + LimitOutput off + UpperSaturationLimit "inf" + LowerSaturationLimit "-inf" + LinearizeAsGain on + AntiWindupMode "none" + Kb "1" + TrackingMode off + Kt "1" + RndMeth "Floor" + SaturateOnIntegerOverflow off + LockScale off + PParamMin "[]" + PParamMax "[]" + PParamDataTypeStr "Inherit: Inherit via internal rule" + IParamMin "[]" + IParamMax "[]" + IParamDataTypeStr "Inherit: Inherit via internal rule" + DParamMin "[]" + DParamMax "[]" + DParamDataTypeStr "Inherit: Inherit via internal rule" + NParamMin "[]" + NParamMax "[]" + NParamDataTypeStr "Inherit: Inherit via internal rule" + KbParamMin "[]" + KbParamMax "[]" + KbParamDataTypeStr "Inherit: Inherit via internal rule" + KtParamMin "[]" + KtParamMax "[]" + KtParamDataTypeStr "Inherit: Inherit via internal rule" + POutMin "[]" + POutMax "[]" + POutDataTypeStr "Inherit: Inherit via internal rule" + PGainOutDataTypeStr "Inherit: Inherit via internal rule" + PProdOutDataTypeStr "Inherit: Inherit via internal rule" + IOutMin "[]" + IOutMax "[]" + IOutDataTypeStr "Inherit: Inherit via internal rule" + IGainOutDataTypeStr "Inherit: Inherit via internal rule" + IProdOutDataTypeStr "Inherit: Inherit via internal rule" + DOutMin "[]" + DOutMax "[]" + DOutDataTypeStr "Inherit: Inherit via internal rule" + DGainOutDataTypeStr "Inherit: Inherit via internal rule" + DProdOutDataTypeStr "Inherit: Inherit via internal rule" + NOutMin "[]" + NOutMax "[]" + NOutDataTypeStr "Inherit: Inherit via internal rule" + NGainOutDataTypeStr "Inherit: Inherit via internal rule" + NProdOutDataTypeStr "Inherit: Inherit via internal rule" + KbOutMin "[]" + KbOutMax "[]" + KbOutDataTypeStr "Inherit: Inherit via internal rule" + KtOutMin "[]" + KtOutMax "[]" + KtOutDataTypeStr "Inherit: Inherit via internal rule" + IntegratorOutMin "[]" + IntegratorOutMax "[]" + IntegratorOutDataTypeStr "Inherit: Inherit via internal rule" + FilterOutMin "[]" + FilterOutMax "[]" + FilterOutDataTypeStr "Inherit: Inherit via internal rule" + SumOutMin "[]" + SumOutMax "[]" + SumOutDataTypeStr "Inherit: Inherit via internal rule" + SumI1OutMin "[]" + SumI1OutMax "[]" + SumI1OutDataTypeStr "Inherit: Inherit via internal rule" + SumI2OutMin "[]" + SumI2OutMax "[]" + SumI2OutDataTypeStr "Inherit: Inherit via internal rule" + SumI3OutMin "[]" + SumI3OutMax "[]" + SumI3OutDataTypeStr "Inherit: Inherit via internal rule" + SumDOutMin "[]" + SumDOutMax "[]" + SumDOutDataTypeStr "Inherit: Inherit via internal rule" + SumAccumDataTypeStr "Inherit: Inherit via internal rule" + SumI1AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI2AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI3AccumDataTypeStr "Inherit: Inherit via internal rule" + SumDAccumDataTypeStr "Inherit: Inherit via internal rule" + SaturationOutMin "[]" + SaturationOutMax "[]" + SaturationOutDataTypeStr "Inherit: Same as input" + IntegratorContinuousStateAttributes "''" + IntegratorStateMustResolveToSignalObject off + IntegratorRTWStateStorageClass "Auto" + FilterContinuousStateAttributes "''" + FilterStateMustResolveToSignalObject off + FilterRTWStateStorageClass "Auto" + DifferentiatorICPrevScaledInput "0" + DifferentiatorOutMin "[]" + DifferentiatorOutMax "[]" + DifferentiatorOutDataTypeStr "Inherit: Inherit via internal rule" + } + Block { + BlockType Reference + Name "PID Controller11" + SID "834" + Ports [1, 1] + Position [260, 117, 300, 153] + ZOrder 123 + LibraryVersion "1.388" + SourceBlock "simulink/Continuous/PID Controller" + SourceType "PID 1dof" + ContentPreviewEnabled off + Controller "PID" + TimeDomain "Continuous-time" + SampleTime "-1" + IntegratorMethod "Forward Euler" + FilterMethod "Forward Euler" + Form "Parallel" + UseFilter on + ControllerParametersSource "internal" + P "-5.58*5" + I "-0.323" + D "-15.5*0.6" + N "1/0.00106" + InitialConditionSource "internal" + InitialConditionForIntegrator "0" + InitialConditionForFilter "0" + ExternalReset "none" + IgnoreLimit off + ZeroCross on + LimitOutput off + UpperSaturationLimit "inf" + LowerSaturationLimit "-inf" + LinearizeAsGain on + AntiWindupMode "none" + Kb "1" + TrackingMode off + Kt "1" + RndMeth "Floor" + SaturateOnIntegerOverflow off + LockScale off + PParamMin "[]" + PParamMax "[]" + PParamDataTypeStr "Inherit: Inherit via internal rule" + IParamMin "[]" + IParamMax "[]" + IParamDataTypeStr "Inherit: Inherit via internal rule" + DParamMin "[]" + DParamMax "[]" + DParamDataTypeStr "Inherit: Inherit via internal rule" + NParamMin "[]" + NParamMax "[]" + NParamDataTypeStr "Inherit: Inherit via internal rule" + KbParamMin "[]" + KbParamMax "[]" + KbParamDataTypeStr "Inherit: Inherit via internal rule" + KtParamMin "[]" + KtParamMax "[]" + KtParamDataTypeStr "Inherit: Inherit via internal rule" + POutMin "[]" + POutMax "[]" + POutDataTypeStr "Inherit: Inherit via internal rule" + PGainOutDataTypeStr "Inherit: Inherit via internal rule" + PProdOutDataTypeStr "Inherit: Inherit via internal rule" + IOutMin "[]" + IOutMax "[]" + IOutDataTypeStr "Inherit: Inherit via internal rule" + IGainOutDataTypeStr "Inherit: Inherit via internal rule" + IProdOutDataTypeStr "Inherit: Inherit via internal rule" + DOutMin "[]" + DOutMax "[]" + DOutDataTypeStr "Inherit: Inherit via internal rule" + DGainOutDataTypeStr "Inherit: Inherit via internal rule" + DProdOutDataTypeStr "Inherit: Inherit via internal rule" + NOutMin "[]" + NOutMax "[]" + NOutDataTypeStr "Inherit: Inherit via internal rule" + NGainOutDataTypeStr "Inherit: Inherit via internal rule" + NProdOutDataTypeStr "Inherit: Inherit via internal rule" + KbOutMin "[]" + KbOutMax "[]" + KbOutDataTypeStr "Inherit: Inherit via internal rule" + KtOutMin "[]" + KtOutMax "[]" + KtOutDataTypeStr "Inherit: Inherit via internal rule" + IntegratorOutMin "[]" + IntegratorOutMax "[]" + IntegratorOutDataTypeStr "Inherit: Inherit via internal rule" + FilterOutMin "[]" + FilterOutMax "[]" + FilterOutDataTypeStr "Inherit: Inherit via internal rule" + SumOutMin "[]" + SumOutMax "[]" + SumOutDataTypeStr "Inherit: Inherit via internal rule" + SumI1OutMin "[]" + SumI1OutMax "[]" + SumI1OutDataTypeStr "Inherit: Inherit via internal rule" + SumI2OutMin "[]" + SumI2OutMax "[]" + SumI2OutDataTypeStr "Inherit: Inherit via internal rule" + SumI3OutMin "[]" + SumI3OutMax "[]" + SumI3OutDataTypeStr "Inherit: Inherit via internal rule" + SumDOutMin "[]" + SumDOutMax "[]" + SumDOutDataTypeStr "Inherit: Inherit via internal rule" + SumAccumDataTypeStr "Inherit: Inherit via internal rule" + SumI1AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI2AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI3AccumDataTypeStr "Inherit: Inherit via internal rule" + SumDAccumDataTypeStr "Inherit: Inherit via internal rule" + SaturationOutMin "[]" + SaturationOutMax "[]" + SaturationOutDataTypeStr "Inherit: Same as input" + IntegratorContinuousStateAttributes "''" + IntegratorStateMustResolveToSignalObject off + IntegratorRTWStateStorageClass "Auto" + FilterContinuousStateAttributes "''" + FilterStateMustResolveToSignalObject off + FilterRTWStateStorageClass "Auto" + DifferentiatorICPrevScaledInput "0" + DifferentiatorOutMin "[]" + DifferentiatorOutMax "[]" + DifferentiatorOutDataTypeStr "Inherit: Inherit via internal rule" + } + Block { + BlockType Reference + Name "PID Controller2" + SID "832" + Ports [1, 1] + Position [405, 541, 445, 579] + ZOrder 121 + LibraryVersion "1.388" + SourceBlock "simulink/Continuous/PID Controller" + SourceType "PID 1dof" + ContentPreviewEnabled off + Controller "P" + TimeDomain "Continuous-time" + SampleTime "-1" + IntegratorMethod "Forward Euler" + FilterMethod "Forward Euler" + Form "Parallel" + UseFilter on + ControllerParametersSource "internal" + P "-359098.201085257" + I "-77.7" + D "2.32" + N "1/0.0818" + InitialConditionSource "internal" + InitialConditionForIntegrator "0" + InitialConditionForFilter "0" + ExternalReset "none" + IgnoreLimit off + ZeroCross off + LimitOutput off + UpperSaturationLimit "inf" + LowerSaturationLimit "-inf" + LinearizeAsGain on + AntiWindupMode "none" + Kb "1" + TrackingMode off + Kt "1" + RndMeth "Floor" + SaturateOnIntegerOverflow off + LockScale off + PParamMin "[]" + PParamMax "[]" + PParamDataTypeStr "Inherit: Inherit via internal rule" + IParamMin "[]" + IParamMax "[]" + IParamDataTypeStr "Inherit: Inherit via internal rule" + DParamMin "[]" + DParamMax "[]" + DParamDataTypeStr "Inherit: Inherit via internal rule" + NParamMin "[]" + NParamMax "[]" + NParamDataTypeStr "Inherit: Inherit via internal rule" + KbParamMin "[]" + KbParamMax "[]" + KbParamDataTypeStr "Inherit: Inherit via internal rule" + KtParamMin "[]" + KtParamMax "[]" + KtParamDataTypeStr "Inherit: Inherit via internal rule" + POutMin "[]" + POutMax "[]" + POutDataTypeStr "Inherit: Inherit via internal rule" + PGainOutDataTypeStr "Inherit: Inherit via internal rule" + PProdOutDataTypeStr "Inherit: Inherit via internal rule" + IOutMin "[]" + IOutMax "[]" + IOutDataTypeStr "Inherit: Inherit via internal rule" + IGainOutDataTypeStr "Inherit: Inherit via internal rule" + IProdOutDataTypeStr "Inherit: Inherit via internal rule" + DOutMin "[]" + DOutMax "[]" + DOutDataTypeStr "Inherit: Inherit via internal rule" + DGainOutDataTypeStr "Inherit: Inherit via internal rule" + DProdOutDataTypeStr "Inherit: Inherit via internal rule" + NOutMin "[]" + NOutMax "[]" + NOutDataTypeStr "Inherit: Inherit via internal rule" + NGainOutDataTypeStr "Inherit: Inherit via internal rule" + NProdOutDataTypeStr "Inherit: Inherit via internal rule" + KbOutMin "[]" + KbOutMax "[]" + KbOutDataTypeStr "Inherit: Inherit via internal rule" + KtOutMin "[]" + KtOutMax "[]" + KtOutDataTypeStr "Inherit: Inherit via internal rule" + IntegratorOutMin "[]" + IntegratorOutMax "[]" + IntegratorOutDataTypeStr "Inherit: Inherit via internal rule" + FilterOutMin "[]" + FilterOutMax "[]" + FilterOutDataTypeStr "Inherit: Inherit via internal rule" + SumOutMin "[]" + SumOutMax "[]" + SumOutDataTypeStr "Inherit: Inherit via internal rule" + SumI1OutMin "[]" + SumI1OutMax "[]" + SumI1OutDataTypeStr "Inherit: Inherit via internal rule" + SumI2OutMin "[]" + SumI2OutMax "[]" + SumI2OutDataTypeStr "Inherit: Inherit via internal rule" + SumI3OutMin "[]" + SumI3OutMax "[]" + SumI3OutDataTypeStr "Inherit: Inherit via internal rule" + SumDOutMin "[]" + SumDOutMax "[]" + SumDOutDataTypeStr "Inherit: Inherit via internal rule" + SumAccumDataTypeStr "Inherit: Inherit via internal rule" + SumI1AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI2AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI3AccumDataTypeStr "Inherit: Inherit via internal rule" + SumDAccumDataTypeStr "Inherit: Inherit via internal rule" + SaturationOutMin "[]" + SaturationOutMax "[]" + SaturationOutDataTypeStr "Inherit: Same as input" + IntegratorContinuousStateAttributes "''" + IntegratorStateMustResolveToSignalObject off + IntegratorRTWStateStorageClass "Auto" + FilterContinuousStateAttributes "''" + FilterStateMustResolveToSignalObject off + FilterRTWStateStorageClass "Auto" + DifferentiatorICPrevScaledInput "0" + DifferentiatorOutMin "[]" + DifferentiatorOutMax "[]" + DifferentiatorOutDataTypeStr "Inherit: Inherit via internal rule" + } + Block { + BlockType Reference + Name "PID Controller4" + SID "854" + Ports [1, 1] + Position [405, 392, 445, 428] + ZOrder 128 + LibraryVersion "1.388" + SourceBlock "simulink/Continuous/PID Controller" + SourceType "PID 1dof" + ContentPreviewEnabled off + Controller "PD" + TimeDomain "Continuous-time" + SampleTime "-1" + IntegratorMethod "Forward Euler" + FilterMethod "Forward Euler" + Form "Parallel" + UseFilter on + ControllerParametersSource "internal" + P "49.9288564716647" + I "35.1207902652377" + D "1.71644717082694" + N "5320.80923448602" + InitialConditionSource "internal" + InitialConditionForIntegrator "0" + InitialConditionForFilter "0" + ExternalReset "none" + IgnoreLimit off + ZeroCross on + LimitOutput off + UpperSaturationLimit "inf" + LowerSaturationLimit "-inf" + LinearizeAsGain on + AntiWindupMode "none" + Kb "1" + TrackingMode off + Kt "1" + RndMeth "Floor" + SaturateOnIntegerOverflow off + LockScale off + PParamMin "[]" + PParamMax "[]" + PParamDataTypeStr "Inherit: Inherit via internal rule" + IParamMin "[]" + IParamMax "[]" + IParamDataTypeStr "Inherit: Inherit via internal rule" + DParamMin "[]" + DParamMax "[]" + DParamDataTypeStr "Inherit: Inherit via internal rule" + NParamMin "[]" + NParamMax "[]" + NParamDataTypeStr "Inherit: Inherit via internal rule" + KbParamMin "[]" + KbParamMax "[]" + KbParamDataTypeStr "Inherit: Inherit via internal rule" + KtParamMin "[]" + KtParamMax "[]" + KtParamDataTypeStr "Inherit: Inherit via internal rule" + POutMin "[]" + POutMax "[]" + POutDataTypeStr "Inherit: Inherit via internal rule" + PGainOutDataTypeStr "Inherit: Inherit via internal rule" + PProdOutDataTypeStr "Inherit: Inherit via internal rule" + IOutMin "[]" + IOutMax "[]" + IOutDataTypeStr "Inherit: Inherit via internal rule" + IGainOutDataTypeStr "Inherit: Inherit via internal rule" + IProdOutDataTypeStr "Inherit: Inherit via internal rule" + DOutMin "[]" + DOutMax "[]" + DOutDataTypeStr "Inherit: Inherit via internal rule" + DGainOutDataTypeStr "Inherit: Inherit via internal rule" + DProdOutDataTypeStr "Inherit: Inherit via internal rule" + NOutMin "[]" + NOutMax "[]" + NOutDataTypeStr "Inherit: Inherit via internal rule" + NGainOutDataTypeStr "Inherit: Inherit via internal rule" + NProdOutDataTypeStr "Inherit: Inherit via internal rule" + KbOutMin "[]" + KbOutMax "[]" + KbOutDataTypeStr "Inherit: Inherit via internal rule" + KtOutMin "[]" + KtOutMax "[]" + KtOutDataTypeStr "Inherit: Inherit via internal rule" + IntegratorOutMin "[]" + IntegratorOutMax "[]" + IntegratorOutDataTypeStr "Inherit: Inherit via internal rule" + FilterOutMin "[]" + FilterOutMax "[]" + FilterOutDataTypeStr "Inherit: Inherit via internal rule" + SumOutMin "[]" + SumOutMax "[]" + SumOutDataTypeStr "Inherit: Inherit via internal rule" + SumI1OutMin "[]" + SumI1OutMax "[]" + SumI1OutDataTypeStr "Inherit: Inherit via internal rule" + SumI2OutMin "[]" + SumI2OutMax "[]" + SumI2OutDataTypeStr "Inherit: Inherit via internal rule" + SumI3OutMin "[]" + SumI3OutMax "[]" + SumI3OutDataTypeStr "Inherit: Inherit via internal rule" + SumDOutMin "[]" + SumDOutMax "[]" + SumDOutDataTypeStr "Inherit: Inherit via internal rule" + SumAccumDataTypeStr "Inherit: Inherit via internal rule" + SumI1AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI2AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI3AccumDataTypeStr "Inherit: Inherit via internal rule" + SumDAccumDataTypeStr "Inherit: Inherit via internal rule" + SaturationOutMin "[]" + SaturationOutMax "[]" + SaturationOutDataTypeStr "Inherit: Same as input" + IntegratorContinuousStateAttributes "''" + IntegratorStateMustResolveToSignalObject off + IntegratorRTWStateStorageClass "Auto" + FilterContinuousStateAttributes "''" + FilterStateMustResolveToSignalObject off + FilterRTWStateStorageClass "Auto" + DifferentiatorICPrevScaledInput "0" + DifferentiatorOutMin "[]" + DifferentiatorOutMax "[]" + DifferentiatorOutDataTypeStr "Inherit: Inherit via internal rule" + } + Block { + BlockType Reference + Name "PID Controller5" + SID "594" + Ports [1, 1] + Position [405, 237, 445, 273] + ZOrder 36 + LibraryVersion "1.388" + SourceBlock "simulink/Continuous/PID Controller" + SourceType "PID 1dof" + ContentPreviewEnabled off + Controller "PD" + TimeDomain "Continuous-time" + SampleTime "-1" + IntegratorMethod "Forward Euler" + FilterMethod "Forward Euler" + Form "Parallel" + UseFilter on + ControllerParametersSource "internal" + P "0.718*5" + I "0" + D "2.15" + N "100" + InitialConditionSource "internal" + InitialConditionForIntegrator "0" + InitialConditionForFilter "0" + ExternalReset "none" + IgnoreLimit off + ZeroCross on + LimitOutput off + UpperSaturationLimit "inf" + LowerSaturationLimit "-inf" + LinearizeAsGain on + AntiWindupMode "none" + Kb "1" + TrackingMode off + Kt "1" + RndMeth "Floor" + SaturateOnIntegerOverflow off + LockScale off + PParamMin "[]" + PParamMax "[]" + PParamDataTypeStr "Inherit: Inherit via internal rule" + IParamMin "[]" + IParamMax "[]" + IParamDataTypeStr "Inherit: Inherit via internal rule" + DParamMin "[]" + DParamMax "[]" + DParamDataTypeStr "Inherit: Inherit via internal rule" + NParamMin "[]" + NParamMax "[]" + NParamDataTypeStr "Inherit: Inherit via internal rule" + KbParamMin "[]" + KbParamMax "[]" + KbParamDataTypeStr "Inherit: Inherit via internal rule" + KtParamMin "[]" + KtParamMax "[]" + KtParamDataTypeStr "Inherit: Inherit via internal rule" + POutMin "[]" + POutMax "[]" + POutDataTypeStr "Inherit: Inherit via internal rule" + PGainOutDataTypeStr "Inherit: Inherit via internal rule" + PProdOutDataTypeStr "Inherit: Inherit via internal rule" + IOutMin "[]" + IOutMax "[]" + IOutDataTypeStr "Inherit: Inherit via internal rule" + IGainOutDataTypeStr "Inherit: Inherit via internal rule" + IProdOutDataTypeStr "Inherit: Inherit via internal rule" + DOutMin "[]" + DOutMax "[]" + DOutDataTypeStr "Inherit: Inherit via internal rule" + DGainOutDataTypeStr "Inherit: Inherit via internal rule" + DProdOutDataTypeStr "Inherit: Inherit via internal rule" + NOutMin "[]" + NOutMax "[]" + NOutDataTypeStr "Inherit: Inherit via internal rule" + NGainOutDataTypeStr "Inherit: Inherit via internal rule" + NProdOutDataTypeStr "Inherit: Inherit via internal rule" + KbOutMin "[]" + KbOutMax "[]" + KbOutDataTypeStr "Inherit: Inherit via internal rule" + KtOutMin "[]" + KtOutMax "[]" + KtOutDataTypeStr "Inherit: Inherit via internal rule" + IntegratorOutMin "[]" + IntegratorOutMax "[]" + IntegratorOutDataTypeStr "Inherit: Inherit via internal rule" + FilterOutMin "[]" + FilterOutMax "[]" + FilterOutDataTypeStr "Inherit: Inherit via internal rule" + SumOutMin "[]" + SumOutMax "[]" + SumOutDataTypeStr "Inherit: Inherit via internal rule" + SumI1OutMin "[]" + SumI1OutMax "[]" + SumI1OutDataTypeStr "Inherit: Inherit via internal rule" + SumI2OutMin "[]" + SumI2OutMax "[]" + SumI2OutDataTypeStr "Inherit: Inherit via internal rule" + SumI3OutMin "[]" + SumI3OutMax "[]" + SumI3OutDataTypeStr "Inherit: Inherit via internal rule" + SumDOutMin "[]" + SumDOutMax "[]" + SumDOutDataTypeStr "Inherit: Inherit via internal rule" + SumAccumDataTypeStr "Inherit: Inherit via internal rule" + SumI1AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI2AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI3AccumDataTypeStr "Inherit: Inherit via internal rule" + SumDAccumDataTypeStr "Inherit: Inherit via internal rule" + SaturationOutMin "[]" + SaturationOutMax "[]" + SaturationOutDataTypeStr "Inherit: Same as input" + IntegratorContinuousStateAttributes "''" + IntegratorStateMustResolveToSignalObject off + IntegratorRTWStateStorageClass "Auto" + FilterContinuousStateAttributes "''" + FilterStateMustResolveToSignalObject off + FilterRTWStateStorageClass "Auto" + DifferentiatorICPrevScaledInput "0" + DifferentiatorOutMin "[]" + DifferentiatorOutMax "[]" + DifferentiatorOutDataTypeStr "Inherit: Inherit via internal rule" + } + Block { + BlockType Reference + Name "PID Controller7" + SID "596" + Ports [1, 1] + Position [545, 392, 585, 428] + ZOrder 133 + LibraryVersion "1.388" + SourceBlock "simulink/Continuous/PID Controller" + SourceType "PID 1dof" + ContentPreviewEnabled off + Controller "PD" + TimeDomain "Continuous-time" + SampleTime "-1" + IntegratorMethod "Forward Euler" + FilterMethod "Forward Euler" + Form "Parallel" + UseFilter on + ControllerParametersSource "internal" + P "18237.343549923" + I "1575.82088970639" + D "674.387075196541" + N "309.449971015086" + InitialConditionSource "internal" + InitialConditionForIntegrator "0" + InitialConditionForFilter "0" + ExternalReset "none" + IgnoreLimit off + ZeroCross on + LimitOutput off + UpperSaturationLimit "inf" + LowerSaturationLimit "-inf" + LinearizeAsGain on + AntiWindupMode "none" + Kb "1" + TrackingMode off + Kt "1" + RndMeth "Floor" + SaturateOnIntegerOverflow off + LockScale off + PParamMin "[]" + PParamMax "[]" + PParamDataTypeStr "Inherit: Inherit via internal rule" + IParamMin "[]" + IParamMax "[]" + IParamDataTypeStr "Inherit: Inherit via internal rule" + DParamMin "[]" + DParamMax "[]" + DParamDataTypeStr "Inherit: Inherit via internal rule" + NParamMin "[]" + NParamMax "[]" + NParamDataTypeStr "Inherit: Inherit via internal rule" + KbParamMin "[]" + KbParamMax "[]" + KbParamDataTypeStr "Inherit: Inherit via internal rule" + KtParamMin "[]" + KtParamMax "[]" + KtParamDataTypeStr "Inherit: Inherit via internal rule" + POutMin "[]" + POutMax "[]" + POutDataTypeStr "Inherit: Inherit via internal rule" + PGainOutDataTypeStr "Inherit: Inherit via internal rule" + PProdOutDataTypeStr "Inherit: Inherit via internal rule" + IOutMin "[]" + IOutMax "[]" + IOutDataTypeStr "Inherit: Inherit via internal rule" + IGainOutDataTypeStr "Inherit: Inherit via internal rule" + IProdOutDataTypeStr "Inherit: Inherit via internal rule" + DOutMin "[]" + DOutMax "[]" + DOutDataTypeStr "Inherit: Inherit via internal rule" + DGainOutDataTypeStr "Inherit: Inherit via internal rule" + DProdOutDataTypeStr "Inherit: Inherit via internal rule" + NOutMin "[]" + NOutMax "[]" + NOutDataTypeStr "Inherit: Inherit via internal rule" + NGainOutDataTypeStr "Inherit: Inherit via internal rule" + NProdOutDataTypeStr "Inherit: Inherit via internal rule" + KbOutMin "[]" + KbOutMax "[]" + KbOutDataTypeStr "Inherit: Inherit via internal rule" + KtOutMin "[]" + KtOutMax "[]" + KtOutDataTypeStr "Inherit: Inherit via internal rule" + IntegratorOutMin "[]" + IntegratorOutMax "[]" + IntegratorOutDataTypeStr "Inherit: Inherit via internal rule" + FilterOutMin "[]" + FilterOutMax "[]" + FilterOutDataTypeStr "Inherit: Inherit via internal rule" + SumOutMin "[]" + SumOutMax "[]" + SumOutDataTypeStr "Inherit: Inherit via internal rule" + SumI1OutMin "[]" + SumI1OutMax "[]" + SumI1OutDataTypeStr "Inherit: Inherit via internal rule" + SumI2OutMin "[]" + SumI2OutMax "[]" + SumI2OutDataTypeStr "Inherit: Inherit via internal rule" + SumI3OutMin "[]" + SumI3OutMax "[]" + SumI3OutDataTypeStr "Inherit: Inherit via internal rule" + SumDOutMin "[]" + SumDOutMax "[]" + SumDOutDataTypeStr "Inherit: Inherit via internal rule" + SumAccumDataTypeStr "Inherit: Inherit via internal rule" + SumI1AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI2AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI3AccumDataTypeStr "Inherit: Inherit via internal rule" + SumDAccumDataTypeStr "Inherit: Inherit via internal rule" + SaturationOutMin "[]" + SaturationOutMax "[]" + SaturationOutDataTypeStr "Inherit: Same as input" + IntegratorContinuousStateAttributes "''" + IntegratorStateMustResolveToSignalObject off + IntegratorRTWStateStorageClass "Auto" + FilterContinuousStateAttributes "''" + FilterStateMustResolveToSignalObject off + FilterRTWStateStorageClass "Auto" + DifferentiatorICPrevScaledInput "0" + DifferentiatorOutMin "[]" + DifferentiatorOutMax "[]" + DifferentiatorOutDataTypeStr "Inherit: Inherit via internal rule" + } + Block { + BlockType Reference + Name "PID Controller8" + SID "597" + Ports [1, 1] + Position [545, 237, 585, 273] + ZOrder 39 + LibraryVersion "1.388" + SourceBlock "simulink/Continuous/PID Controller" + SourceType "PID 1dof" + ContentPreviewEnabled off + Controller "P" + TimeDomain "Continuous-time" + SampleTime "-1" + IntegratorMethod "Forward Euler" + FilterMethod "Forward Euler" + Form "Parallel" + UseFilter on + ControllerParametersSource "internal" + P "20" + I "0" + D "0" + N "100" + InitialConditionSource "internal" + InitialConditionForIntegrator "0" + InitialConditionForFilter "0" + ExternalReset "none" + IgnoreLimit off + ZeroCross on + LimitOutput off + UpperSaturationLimit "inf" + LowerSaturationLimit "-inf" + LinearizeAsGain on + AntiWindupMode "none" + Kb "1" + TrackingMode off + Kt "1" + RndMeth "Floor" + SaturateOnIntegerOverflow off + LockScale off + PParamMin "[]" + PParamMax "[]" + PParamDataTypeStr "Inherit: Inherit via internal rule" + IParamMin "[]" + IParamMax "[]" + IParamDataTypeStr "Inherit: Inherit via internal rule" + DParamMin "[]" + DParamMax "[]" + DParamDataTypeStr "Inherit: Inherit via internal rule" + NParamMin "[]" + NParamMax "[]" + NParamDataTypeStr "Inherit: Inherit via internal rule" + KbParamMin "[]" + KbParamMax "[]" + KbParamDataTypeStr "Inherit: Inherit via internal rule" + KtParamMin "[]" + KtParamMax "[]" + KtParamDataTypeStr "Inherit: Inherit via internal rule" + POutMin "[]" + POutMax "[]" + POutDataTypeStr "Inherit: Inherit via internal rule" + PGainOutDataTypeStr "Inherit: Inherit via internal rule" + PProdOutDataTypeStr "Inherit: Inherit via internal rule" + IOutMin "[]" + IOutMax "[]" + IOutDataTypeStr "Inherit: Inherit via internal rule" + IGainOutDataTypeStr "Inherit: Inherit via internal rule" + IProdOutDataTypeStr "Inherit: Inherit via internal rule" + DOutMin "[]" + DOutMax "[]" + DOutDataTypeStr "Inherit: Inherit via internal rule" + DGainOutDataTypeStr "Inherit: Inherit via internal rule" + DProdOutDataTypeStr "Inherit: Inherit via internal rule" + NOutMin "[]" + NOutMax "[]" + NOutDataTypeStr "Inherit: Inherit via internal rule" + NGainOutDataTypeStr "Inherit: Inherit via internal rule" + NProdOutDataTypeStr "Inherit: Inherit via internal rule" + KbOutMin "[]" + KbOutMax "[]" + KbOutDataTypeStr "Inherit: Inherit via internal rule" + KtOutMin "[]" + KtOutMax "[]" + KtOutDataTypeStr "Inherit: Inherit via internal rule" + IntegratorOutMin "[]" + IntegratorOutMax "[]" + IntegratorOutDataTypeStr "Inherit: Inherit via internal rule" + FilterOutMin "[]" + FilterOutMax "[]" + FilterOutDataTypeStr "Inherit: Inherit via internal rule" + SumOutMin "[]" + SumOutMax "[]" + SumOutDataTypeStr "Inherit: Inherit via internal rule" + SumI1OutMin "[]" + SumI1OutMax "[]" + SumI1OutDataTypeStr "Inherit: Inherit via internal rule" + SumI2OutMin "[]" + SumI2OutMax "[]" + SumI2OutDataTypeStr "Inherit: Inherit via internal rule" + SumI3OutMin "[]" + SumI3OutMax "[]" + SumI3OutDataTypeStr "Inherit: Inherit via internal rule" + SumDOutMin "[]" + SumDOutMax "[]" + SumDOutDataTypeStr "Inherit: Inherit via internal rule" + SumAccumDataTypeStr "Inherit: Inherit via internal rule" + SumI1AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI2AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI3AccumDataTypeStr "Inherit: Inherit via internal rule" + SumDAccumDataTypeStr "Inherit: Inherit via internal rule" + SaturationOutMin "[]" + SaturationOutMax "[]" + SaturationOutDataTypeStr "Inherit: Same as input" + IntegratorContinuousStateAttributes "''" + IntegratorStateMustResolveToSignalObject off + IntegratorRTWStateStorageClass "Auto" + FilterContinuousStateAttributes "''" + FilterStateMustResolveToSignalObject off + FilterRTWStateStorageClass "Auto" + DifferentiatorICPrevScaledInput "0" + DifferentiatorOutMin "[]" + DifferentiatorOutMax "[]" + DifferentiatorOutDataTypeStr "Inherit: Inherit via internal rule" + } + Block { + BlockType Reference + Name "PID Controller9" + SID "829" + Ports [1, 1] + Position [260, 237, 300, 273] + ZOrder 120 + LibraryVersion "1.388" + SourceBlock "simulink/Continuous/PID Controller" + SourceType "PID 1dof" + ContentPreviewEnabled off + Controller "PID" + TimeDomain "Continuous-time" + SampleTime "-1" + IntegratorMethod "Forward Euler" + FilterMethod "Forward Euler" + Form "Parallel" + UseFilter on + ControllerParametersSource "internal" + P "0.7" + I "0.114" + D "0.596" + N "1/0.00195" + InitialConditionSource "internal" + InitialConditionForIntegrator "0" + InitialConditionForFilter "0" + ExternalReset "none" + IgnoreLimit off + ZeroCross on + LimitOutput off + UpperSaturationLimit "inf" + LowerSaturationLimit "-inf" + LinearizeAsGain on + AntiWindupMode "none" + Kb "1" + TrackingMode off + Kt "1" + RndMeth "Floor" + SaturateOnIntegerOverflow off + LockScale off + PParamMin "[]" + PParamMax "[]" + PParamDataTypeStr "Inherit: Inherit via internal rule" + IParamMin "[]" + IParamMax "[]" + IParamDataTypeStr "Inherit: Inherit via internal rule" + DParamMin "[]" + DParamMax "[]" + DParamDataTypeStr "Inherit: Inherit via internal rule" + NParamMin "[]" + NParamMax "[]" + NParamDataTypeStr "Inherit: Inherit via internal rule" + KbParamMin "[]" + KbParamMax "[]" + KbParamDataTypeStr "Inherit: Inherit via internal rule" + KtParamMin "[]" + KtParamMax "[]" + KtParamDataTypeStr "Inherit: Inherit via internal rule" + POutMin "[]" + POutMax "[]" + POutDataTypeStr "Inherit: Inherit via internal rule" + PGainOutDataTypeStr "Inherit: Inherit via internal rule" + PProdOutDataTypeStr "Inherit: Inherit via internal rule" + IOutMin "[]" + IOutMax "[]" + IOutDataTypeStr "Inherit: Inherit via internal rule" + IGainOutDataTypeStr "Inherit: Inherit via internal rule" + IProdOutDataTypeStr "Inherit: Inherit via internal rule" + DOutMin "[]" + DOutMax "[]" + DOutDataTypeStr "Inherit: Inherit via internal rule" + DGainOutDataTypeStr "Inherit: Inherit via internal rule" + DProdOutDataTypeStr "Inherit: Inherit via internal rule" + NOutMin "[]" + NOutMax "[]" + NOutDataTypeStr "Inherit: Inherit via internal rule" + NGainOutDataTypeStr "Inherit: Inherit via internal rule" + NProdOutDataTypeStr "Inherit: Inherit via internal rule" + KbOutMin "[]" + KbOutMax "[]" + KbOutDataTypeStr "Inherit: Inherit via internal rule" + KtOutMin "[]" + KtOutMax "[]" + KtOutDataTypeStr "Inherit: Inherit via internal rule" + IntegratorOutMin "[]" + IntegratorOutMax "[]" + IntegratorOutDataTypeStr "Inherit: Inherit via internal rule" + FilterOutMin "[]" + FilterOutMax "[]" + FilterOutDataTypeStr "Inherit: Inherit via internal rule" + SumOutMin "[]" + SumOutMax "[]" + SumOutDataTypeStr "Inherit: Inherit via internal rule" + SumI1OutMin "[]" + SumI1OutMax "[]" + SumI1OutDataTypeStr "Inherit: Inherit via internal rule" + SumI2OutMin "[]" + SumI2OutMax "[]" + SumI2OutDataTypeStr "Inherit: Inherit via internal rule" + SumI3OutMin "[]" + SumI3OutMax "[]" + SumI3OutDataTypeStr "Inherit: Inherit via internal rule" + SumDOutMin "[]" + SumDOutMax "[]" + SumDOutDataTypeStr "Inherit: Inherit via internal rule" + SumAccumDataTypeStr "Inherit: Inherit via internal rule" + SumI1AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI2AccumDataTypeStr "Inherit: Inherit via internal rule" + SumI3AccumDataTypeStr "Inherit: Inherit via internal rule" + SumDAccumDataTypeStr "Inherit: Inherit via internal rule" + SaturationOutMin "[]" + SaturationOutMax "[]" + SaturationOutDataTypeStr "Inherit: Same as input" + IntegratorContinuousStateAttributes "''" + IntegratorStateMustResolveToSignalObject off + IntegratorRTWStateStorageClass "Auto" + FilterContinuousStateAttributes "''" + FilterStateMustResolveToSignalObject off + FilterRTWStateStorageClass "Auto" + DifferentiatorICPrevScaledInput "0" + DifferentiatorOutMin "[]" + DifferentiatorOutMax "[]" + DifferentiatorOutDataTypeStr "Inherit: Inherit via internal rule" + } + Block { + BlockType Scope + Name "Scope" + SID "791" + Ports [1] + Position [410, 649, 440, 681] + ZOrder 97 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData1 + YMin -4.53199 + YMax 5.80666 + 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 "792" + Ports [1] + Position [235, 649, 265, 681] + ZOrder 106 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData2 + YMin -6.26281 + YMax 31.28638 + 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 "Scope2" + SID "795" + Ports [1] + Position [265, 174, 295, 206] + ZOrder 107 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData5 + YMin -1.20714 + YMax 0.22148 + 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 "797" + Ports [1] + Position [550, 334, 580, 366] + ZOrder 109 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData1 + YMin -0.13447 + YMax 1.21019 + 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 "Scope4" + SID "798" + Ports [1] + Position [365, 334, 395, 366] + ZOrder 110 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData2 + YMin -0.08847 + YMax 0.24078 + 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 "Scope5" + SID "799" + Ports [1] + Position [240, 334, 270, 366] + ZOrder 111 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData3 + YMin -0.14703 + YMax 1.31859 + 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 "Scope6" + SID "825" + Ports [1] + Position [550, 484, 580, 516] + ZOrder 117 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData1 + YMin -0.48276 + YMax 2.87086 + 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 "826" + Ports [1] + Position [365, 484, 395, 516] + ZOrder 118 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData2 + YMin -0.04704 + YMax 0.39309 + 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 "827" + Ports [1] + Position [245, 484, 275, 516] + ZOrder 119 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData3 + YMin -81.1648 + YMax 21.11528 + 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 Sum + Name "Sum" + SID "598" + Ports [2, 1] + Position [350, 550, 370, 570] + ZOrder 40 + ShowName off + IconShape "round" + Inputs "|+-" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Sum + Name "Sum1" + SID "599" + Ports [2, 1] + Position [340, 245, 360, 265] + ZOrder 41 + ShowName off + IconShape "round" + Inputs "|+-" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Sum + Name "Sum2" + SID "600" + Ports [2, 1] + Position [490, 245, 510, 265] + ZOrder 42 + ShowName off + IconShape "round" + Inputs "|+-" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Sum + Name "Sum3" + SID "602" + Ports [2, 1] + Position [335, 400, 355, 420] + ZOrder 43 + ShowName off + IconShape "round" + Inputs "|+-" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Sum + Name "Sum4" + SID "603" + Ports [2, 1] + Position [490, 400, 510, 420] + ZOrder 44 + ShowName off + IconShape "round" + Inputs "|+-" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Sum + Name "Sum5" + SID "618" + Ports [2, 1] + Position [215, 400, 235, 420] + ZOrder 56 + ShowName off + IconShape "round" + Inputs "|+-" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Sum + Name "Sum6" + SID "619" + Ports [2, 1] + Position [210, 245, 230, 265] + ZOrder 57 + ShowName off + IconShape "round" + Inputs "|+-" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Sum + Name "Sum7" + SID "620" + Ports [2, 1] + Position [210, 125, 230, 145] + ZOrder 58 + ShowName off + IconShape "round" + Inputs "|+-" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Sum + Name "Sum8" + SID "648" + Ports [2, 1] + Position [210, 550, 230, 570] + ZOrder 104 + ShowName off + IconShape "round" + Inputs "|+-" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Outport + Name "height_controlled" + SID "606" + Position [655, 128, 685, 142] + ZOrder -2 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "y_controlled" + SID "636" + Position [655, 248, 685, 262] + ZOrder 74 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "x_controlled" + SID "637" + Position [655, 403, 685, 417] + ZOrder 75 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "yaw_controlled" + SID "638" + Position [655, 553, 685, 567] + ZOrder 76 + Port "4" + IconDisplay "Port number" + } + Line { + ZOrder 283 + SrcBlock "Sum" + SrcPort 1 + DstBlock "PID Controller2" + DstPort 1 + } + Line { + ZOrder 43 + SrcBlock "pitch" + SrcPort 1 + Points [9, 0] + Branch { + ZOrder 233 + Points [0, 25] + DstBlock "Scope7" + DstPort 1 + } + Branch { + ZOrder 232 + Points [1, 0] + DstBlock "Sum3" + DstPort 2 + } + } + Line { + ZOrder 42 + SrcBlock "roll" + SrcPort 1 + Points [15, 0] + Branch { + ZOrder 218 + DstBlock "Scope4" + DstPort 1 + } + Branch { + ZOrder 215 + DstBlock "Sum1" + DstPort 2 + } + } + Line { + ZOrder 48 + SrcBlock "pitch_rate" + SrcPort 1 + Points [40, 0] + Branch { + ZOrder 229 + DstBlock "Sum4" + DstPort 2 + } + Branch { + ZOrder 228 + Points [0, 25] + DstBlock "Scope6" + DstPort 1 + } + } + Line { + ZOrder 47 + SrcBlock "roll_rate" + SrcPort 1 + Points [40, 0] + Branch { + ZOrder 123 + Points [0, 30] + DstBlock "Scope3" + DstPort 1 + } + Branch { + ZOrder 122 + DstBlock "Sum2" + DstPort 2 + } + } + Line { + ZOrder 49 + SrcBlock "yaw_rate" + SrcPort 1 + Points [25, 0] + Branch { + ZOrder 173 + Points [0, 50] + DstBlock "Scope" + DstPort 1 + } + Branch { + ZOrder 87 + DstBlock "Sum" + DstPort 2 + } + } + Line { + ZOrder 26 + SrcBlock "z_setpoint" + SrcPort 1 + DstBlock "Sum7" + DstPort 1 + } + Line { + ZOrder 28 + SrcBlock "y_setpoint" + SrcPort 1 + DstBlock "Sum6" + DstPort 1 + } + Line { + ZOrder 31 + SrcBlock "x_position" + SrcPort 1 + Points [25, 0] + Branch { + ZOrder 237 + DstBlock "Sum5" + DstPort 2 + } + Branch { + ZOrder 236 + Points [0, 25] + DstBlock "Scope8" + DstPort 1 + } + } + Line { + ZOrder 32 + SrcBlock "x_setpoint" + SrcPort 1 + DstBlock "Sum5" + DstPort 1 + } + Line { + ZOrder 33 + SrcBlock "y_position" + SrcPort 1 + Points [20, 0] + Branch { + ZOrder 241 + Points [0, 30] + DstBlock "Scope5" + DstPort 1 + } + Branch { + ZOrder 128 + DstBlock "Sum6" + DstPort 2 + } + } + Line { + ZOrder 34 + SrcBlock "z_position" + SrcPort 1 + Points [25, 0] + Branch { + ZOrder 108 + DstBlock "Scope2" + DstPort 1 + } + Branch { + ZOrder 107 + DstBlock "Sum7" + DstPort 2 + } + } + Line { + ZOrder 100 + SrcBlock "yaw" + SrcPort 1 + Points [25, 0] + Branch { + ZOrder 172 + DstBlock "Scope1" + DstPort 1 + } + Branch { + ZOrder 102 + DstBlock "Sum8" + DstPort 2 + } + } + Line { + ZOrder 98 + SrcBlock "yaw_setpoint" + SrcPort 1 + DstBlock "Sum8" + DstPort 1 + } + Line { + ZOrder 207 + SrcBlock "Sum1" + SrcPort 1 + DstBlock "PID Controller5" + DstPort 1 + } + Line { + ZOrder 212 + SrcBlock "Sum2" + SrcPort 1 + DstBlock "PID Controller8" + DstPort 1 + } + Line { + ZOrder 216 + SrcBlock "PID Controller5" + SrcPort 1 + DstBlock "Sum2" + DstPort 1 + } + Line { + ZOrder 243 + SrcBlock "PID Controller9" + SrcPort 1 + DstBlock "Sum1" + DstPort 1 + } + Line { + ZOrder 244 + SrcBlock "Sum6" + SrcPort 1 + DstBlock "PID Controller9" + DstPort 1 + } + Line { + ZOrder 247 + SrcBlock "Sum5" + SrcPort 1 + DstBlock "PID Controller1" + DstPort 1 + } + Line { + ZOrder 281 + SrcBlock "Sum7" + SrcPort 1 + DstBlock "PID Controller11" + DstPort 1 + } + Line { + ZOrder 285 + SrcBlock "Sum8" + SrcPort 1 + DstBlock "PID Controller10" + DstPort 1 + } + Line { + ZOrder 349 + SrcBlock "Sum3" + SrcPort 1 + DstBlock "PID Controller4" + DstPort 1 + } + Line { + ZOrder 388 + SrcBlock "Sum4" + SrcPort 1 + DstBlock "PID Controller7" + DstPort 1 + } + Line { + ZOrder 401 + SrcBlock "PID Controller10" + SrcPort 1 + DstBlock "Sum" + DstPort 1 + } + Line { + ZOrder 404 + SrcBlock "PID Controller7" + SrcPort 1 + DstBlock "x_controlled" + DstPort 1 + } + Line { + ZOrder 408 + SrcBlock "PID Controller4" + SrcPort 1 + DstBlock "Sum4" + DstPort 1 + } + Line { + ZOrder 409 + SrcBlock "PID Controller1" + SrcPort 1 + DstBlock "Sum3" + DstPort 1 + } + } + } + Block { + BlockType Demux + Name "Demux" + SID "586" + Ports [1, 4] + Position [300, 309, 305, 406] + ZOrder 13 + ShowName off + DisplayOption "bar" + } + Block { + BlockType Demux + Name "Demux1" + SID "639" + Ports [1, 3] + Position [300, 484, 305, 556] + ZOrder 32 + ShowName off + Outputs "3" + DisplayOption "bar" + } + Block { + BlockType Demux + Name "Demux2" + SID "588" + Ports [1, 3] + Position [285, 409, 290, 481] + ZOrder 15 + ShowName off + Outputs "3" + DisplayOption "bar" + } + Block { + BlockType Demux + Name "Demux4" + SID "640" + Ports [1, 3] + Position [275, 559, 280, 631] + ZOrder 33 + ShowName off + Outputs "3" + DisplayOption "bar" + } + Block { + BlockType SubSystem + Name "MATLAB Function" + SID "647" + Ports [4, 1] + Position [715, 308, 915, 632] + ZOrder 35 + 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 "27" + Block { + BlockType Inport + Name "height_controlled" + SID "647::1" + Position [20, 101, 40, 119] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "y_controlled" + SID "647::23" + Position [20, 136, 40, 154] + ZOrder 14 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "x_controlled" + SID "647::22" + Position [20, 171, 40, 189] + ZOrder 13 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "yaw_controlled" + SID "647::24" + Position [20, 206, 40, 224] + ZOrder 15 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "647::20" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 11 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "647::19" + Tag "Stateflow S-Function test_model_R2015A 14" + Ports [4, 2] + Position [180, 107, 230, 208] + ZOrder 10 + FunctionName "sf_sfun" + PortCounts "[4 2]" + SFunctionDeploymentMode off + EnableBusSupport on + Port { + PortNumber 2 + Name "motorCommands" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + } + Block { + BlockType Terminator + Name " Terminator " + SID "647::21" + Position [460, 241, 480, 259] + ZOrder 12 + } + Block { + BlockType Outport + Name "motorCommands" + SID "647::5" + Position [460, 101, 480, 119] + ZOrder -5 + IconDisplay "Port number" + } + Line { + ZOrder 105 + SrcBlock "height_controlled" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + ZOrder 106 + SrcBlock "y_controlled" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + ZOrder 107 + SrcBlock "x_controlled" + SrcPort 1 + DstBlock " SFunction " + DstPort 3 + } + Line { + ZOrder 108 + SrcBlock "yaw_controlled" + SrcPort 1 + DstBlock " SFunction " + DstPort 4 + } + Line { + Name "motorCommands" + ZOrder 109 + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "motorCommands" + DstPort 1 + } + Line { + ZOrder 110 + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + ZOrder 111 + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType Saturate + Name "Saturation" + SID "756" + Ports [1, 1] + Position [960, 455, 990, 485] + ZOrder 44 + InputPortMap "u0" + UpperLimit "Pmax*ones(4,1)" + LowerLimit "Pmin*ones(4,1)" + } + Block { + BlockType Scope + Name "Scope1" + SID "794" + Ports [1] + Position [1080, 564, 1110, 596] + ZOrder 46 + NumInputPorts "1" + Open off + TimeRange auto + TickLabels OneTimeTick + ShowLegends off + LimitDataPoints off + MaxDataPoints 5000 + SaveToWorkspace off + SaveName ScopeData4 + YMin 87500.00000 + YMax 212500.00000 + 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 Sum + Name "Sum" + SID "748" + Ports [2, 1] + Position [655, 340, 675, 360] + ZOrder 36 + ShowName off + IconShape "round" + Inputs "|++" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Sum + Name "Sum1" + SID "749" + Ports [2, 1] + Position [655, 420, 675, 440] + ZOrder 37 + ShowName off + IconShape "round" + Inputs "|++" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Sum + Name "Sum2" + SID "750" + Ports [2, 1] + Position [655, 500, 675, 520] + ZOrder 38 + ShowName off + IconShape "round" + Inputs "|++" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Sum + Name "Sum3" + SID "751" + Ports [2, 1] + Position [655, 580, 675, 600] + ZOrder 39 + ShowName off + IconShape "round" + Inputs "|++" + InputSameDT off + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Constant + Name "height_controlled_o" + SID "752" + Position [605, 375, 635, 405] + ZOrder 40 + Value "height_controlled_o" + } + Block { + BlockType Constant + Name "x_controlled_o" + SID "754" + Position [605, 535, 635, 565] + ZOrder 42 + Value "x_controlled_o" + } + Block { + BlockType Constant + Name "y_controlled_o" + SID "753" + Position [605, 455, 635, 485] + ZOrder 41 + Value "y_controlled_o" + } + Block { + BlockType Constant + Name "yaw_controlled_o" + SID "755" + Position [605, 620, 635, 650] + ZOrder 43 + Value "yaw_controlled_o" + } + Block { + BlockType Outport + Name "Motor Commands" + SID "578" + Position [1055, 463, 1085, 477] + ZOrder -2 + IconDisplay "Port number" + } + Line { + ZOrder 1 + SrcBlock "setpoints" + SrcPort 1 + DstBlock "Demux" + DstPort 1 + } + Line { + ZOrder 30 + SrcBlock "euler_angles_filtered" + SrcPort 1 + DstBlock "Demux1" + DstPort 1 + } + Line { + ZOrder 3 + SrcBlock "current_position" + SrcPort 1 + DstBlock "Demux2" + DstPort 1 + } + Line { + ZOrder 34 + SrcBlock "euler_rates" + SrcPort 1 + DstBlock "Demux4" + DstPort 1 + } + Line { + ZOrder 27 + SrcBlock "Demux" + SrcPort 1 + DstBlock "Controller" + DstPort 1 + } + Line { + ZOrder 28 + SrcBlock "Demux" + SrcPort 2 + DstBlock "Controller" + DstPort 2 + } + Line { + ZOrder 29 + SrcBlock "Demux" + SrcPort 3 + DstBlock "Controller" + DstPort 3 + } + Line { + ZOrder 40 + SrcBlock "Demux2" + SrcPort 1 + DstBlock "Controller" + DstPort 5 + } + Line { + ZOrder 41 + SrcBlock "Demux2" + SrcPort 2 + DstBlock "Controller" + DstPort 6 + } + Line { + ZOrder 42 + SrcBlock "Demux2" + SrcPort 3 + DstBlock "Controller" + DstPort 7 + } + Line { + ZOrder 68 + SrcBlock "Controller" + SrcPort 2 + DstBlock "Sum1" + DstPort 1 + } + Line { + ZOrder 69 + SrcBlock "Sum1" + SrcPort 1 + DstBlock "MATLAB Function" + DstPort 2 + } + Line { + ZOrder 71 + SrcBlock "Sum2" + SrcPort 1 + DstBlock "MATLAB Function" + DstPort 3 + } + Line { + ZOrder 72 + SrcBlock "Controller" + SrcPort 4 + DstBlock "Sum3" + DstPort 1 + } + Line { + ZOrder 73 + SrcBlock "Sum3" + SrcPort 1 + DstBlock "MATLAB Function" + DstPort 4 + } + Line { + ZOrder 74 + SrcBlock "Controller" + SrcPort 1 + DstBlock "Sum" + DstPort 1 + } + Line { + ZOrder 75 + SrcBlock "Sum" + SrcPort 1 + DstBlock "MATLAB Function" + DstPort 1 + } + Line { + ZOrder 77 + SrcBlock "y_controlled_o" + SrcPort 1 + Points [25, 0] + DstBlock "Sum1" + DstPort 2 + } + Line { + ZOrder 78 + SrcBlock "x_controlled_o" + SrcPort 1 + Points [25, 0] + DstBlock "Sum2" + DstPort 2 + } + Line { + ZOrder 79 + SrcBlock "yaw_controlled_o" + SrcPort 1 + Points [25, 0] + DstBlock "Sum3" + DstPort 2 + } + Line { + ZOrder 80 + SrcBlock "MATLAB Function" + SrcPort 1 + DstBlock "Saturation" + DstPort 1 + } + Line { + ZOrder 81 + SrcBlock "Saturation" + SrcPort 1 + Points [21, 0] + Branch { + ZOrder 122 + Points [0, 110] + DstBlock "Scope1" + DstPort 1 + } + Branch { + ZOrder 121 + DstBlock "Motor Commands" + DstPort 1 + } + } + Line { + ZOrder 84 + SrcBlock "Demux1" + SrcPort 1 + DstBlock "Controller" + DstPort 8 + } + Line { + ZOrder 86 + SrcBlock "Demux1" + SrcPort 2 + DstBlock "Controller" + DstPort 9 + } + Line { + ZOrder 90 + SrcBlock "Demux4" + SrcPort 1 + DstBlock "Controller" + DstPort 11 + } + Line { + ZOrder 91 + SrcBlock "Demux4" + SrcPort 2 + DstBlock "Controller" + DstPort 12 + } + Line { + ZOrder 93 + SrcBlock "Demux4" + SrcPort 3 + DstBlock "Controller" + DstPort 13 + } + Line { + ZOrder 94 + SrcBlock "Demux" + SrcPort 4 + DstBlock "Controller" + DstPort 4 + } + Line { + ZOrder 95 + SrcBlock "Demux1" + SrcPort 3 + DstBlock "Controller" + DstPort 10 + } + Line { + ZOrder 131 + SrcBlock "Controller" + SrcPort 3 + DstBlock "Sum2" + DstPort 1 + } + Line { + ZOrder 133 + SrcBlock "height_controlled_o" + SrcPort 1 + Points [25, 0] + DstBlock "Sum" + DstPort 2 + } + } + } + Line { + ZOrder 52 + SrcBlock "Control System" + SrcPort 1 + DstBlock "Actuation" + DstPort 1 + } + Line { + ZOrder 55 + SrcBlock "Communication System" + SrcPort 1 + DstBlock "Control System" + DstPort 1 + } + Line { + ZOrder 186 + SrcBlock "Actuation" + SrcPort 2 + Points [9, 0; 0, 192; -583, 0; 0, -162] + DstBlock "Control System" + DstPort 2 + } + Line { + ZOrder 187 + SrcBlock "Actuation" + SrcPort 1 + Points [2, 0; 0, 246; -590, 0; 0, -121] + DstBlock "Control System" + DstPort 3 + } + Line { + ZOrder 188 + SrcBlock "Actuation" + SrcPort 4 + Points [23, 0; 0, 140; -604, 0; 0, -80] + DstBlock "Control System" + DstPort 4 + } + } +} +#Finite State Machines +# +# Stateflow 80000010 +# +# +Stateflow { + machine { + id 1 + name "test_model_R2015A" + created "03-Nov-2016 18:34:53" + isLibrary 0 + sfVersion 80000006 + firstTarget 145 + } + chart { + id 2 + machine 1 + name "Actuation/Gravity\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 "Actuation/Gravity\n\n" + chart 2 + } + chart { + id 10 + machine 1 + name "Actuation/Lbe\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 "Actuation/Lbe\n\n\n\n\n\n" + chart 10 + } + chart { + id 18 + machine 1 + name " Sensors /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 " Sensors /3D Graphical Simulation1/MATLAB Function" + chart 18 + } + chart { + id 25 + machine 1 + name "Actuation/ESC System" + 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 33 + firstJunction 32 + } + 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_duty_cycles, Pmin, Pmax, Vb)\n\nrotor_0_duty_cycle = rotor_duty_cyc" + "les(1);\nrotor_1_duty_cycle = rotor_duty_cycles(2);\nrotor_2_duty_cycle = rotor_duty_cycles(3);\nrotor_3_duty_cy" + "cle = rotor_duty_cycles(4);\n\n% Define u_Pi for each of the rotors, limiting it to be greater than 0\n% u_P0 = " + "(rotor_0_duty_cycle/100 - Pmin) / (Pmax - Pmin);\n% u_P1 = (rotor_1_duty_cycle/100 - Pmin) / (Pmax - Pmin);\n% u" + "_P2 = (rotor_2_duty_cycle/100 - Pmin) / (Pmax - Pmin);\n% u_P3 = (rotor_3_duty_cycle/100 - Pmin) / (Pmax - Pmin)" + ";\nu_P0 = (rotor_0_duty_cycle - Pmin) / (Pmax - Pmin);\nu_P1 = (rotor_1_duty_cycle - Pmin) / (Pmax - Pmin);\nu_P" + "2 = (rotor_2_duty_cycle - Pmin) / (Pmax - Pmin);\nu_P3 = (rotor_3_duty_cycle - Pmin) / (Pmax - Pmin);\n\n\n% Det" + "ermine the effective battery voltage from each ESC\nVb_eff_0 = u_P0 * Vb;\nVb_eff_1 = u_P1 * Vb;\nVb_eff_2 = u_P" + "2 * 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_duty_cycles" + 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,4" + } + 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 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 28 30] + } + data { + id 30 + 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 29 31] + } + data { + id 31 + 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 30 0] + } + junction { + id 32 + position [23.5747 49.5747 7] + chart 25 + subviewer 25 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + linkNode [25 0 0] + } + transition { + id 33 + 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 32 + 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 34 + machine 1 + name "Actuation/ESC System" + chart 25 + } + chart { + id 35 + machine 1 + name "Actuation/Motor System" + windowPosition [422 539.941 189 413] + viewLimits [0 156.75 0 153.75] + screen [1 1 3600 1200 1.180555555555556] + treeNode [0 36 0 0] + viewObj 35 + ssIdHighWaterMark 16 + decomposition CLUSTER_CHART + type EML_CHART + chartFileNumber 5 + disableImplicitCasting 1 + eml { + name "motor" + } + firstData 37 + firstTransition 47 + firstJunction 46 + } + state { + id 36 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 35 + treeNode [35 0 0 0] + superState SUBCHART + subviewer 35 + 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% De" + "fine each motors effective battery voltage\nVb_eff_0 = Vb_eff(1);\nVb_eff_1 = Vb_eff(2);\nVb_eff_2 = Vb_eff(3);\n" + "Vb_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% w_0 = (-1 + sqrt(1 - " + "4*Rm*Kv*Kq*Kd*(Kv*Rm*If - Kv*Vb_eff_0)))/2*Rm*Kv*Kq*Kd;\n% w_1 = (-1 + sqrt(1 - 4*Rm*Kv*Kq*Kd*(Kv*Rm*If - Kv*Vb_" + "eff_1)))/2*Rm*Kv*Kq*Kd;\n% w_2 = (-1 + sqrt(1 - 4*Rm*Kv*Kq*Kd*(Kv*Rm*If - Kv*Vb_eff_2)))/2*Rm*Kv*Kq*Kd;\n% w_3 =" + " (-1 + sqrt(1 - 4*Rm*Kv*Kq*Kd*(Kv*Rm*If - Kv*Vb_eff_3)))/2*Rm*Kv*Kq*Kd;\n% angular_velocity = [w_0, w_1, w_2, w_" + "3];\n\n% Determine angular acceleration 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/(J" + "req*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_dot = 1/(Jreq*Rm*Kq) * Vb_eff_3 - 1/(Jreq*Rm*Kq*Kv) * w_3 - 1/(Jreq*Kq)*If - (Kd/Jreq)" + " * w_3^2;\n\n\n\nangular_acceleration = [w_0_dot, w_1_dot, w_2_dot, w_3_dot]; " + editorLayout "100 M4x1[10 5 700 500]" + } + } + data { + id 37 + 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 [35 0 38] + } + data { + id 38 + ssIdNumber 16 + 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 [35 37 39] + } + data { + id 39 + 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 [35 38 40] + } + data { + id 40 + 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 [35 39 41] + } + data { + id 41 + 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 [35 40 42] + } + data { + id 42 + 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 [35 41 43] + } + data { + id 43 + 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 [35 42 44] + } + data { + id 44 + 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 [35 43 45] + } + data { + id 45 + 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 [35 44 0] + } + junction { + id 46 + position [23.5747 49.5747 7] + chart 35 + subviewer 35 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + linkNode [35 0 0] + } + transition { + id 47 + 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 46 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 35 + dataLimits [21.175 25.975 14.625 42.575] + subviewer 35 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + linkNode [35 0 0] + } + instance { + id 48 + machine 1 + name "Actuation/Motor System" + chart 35 + } + chart { + id 49 + machine 1 + name "Actuation/Rotor System\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 50 0 0] + viewObj 49 + ssIdHighWaterMark 30 + decomposition CLUSTER_CHART + type EML_CHART + chartFileNumber 6 + disableImplicitCasting 1 + eml { + name "rotor" + } + firstData 51 + firstTransition 69 + firstJunction 68 + } + state { + id 50 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 49 + treeNode [49 0 0 0] + superState SUBCHART + subviewer 49 + 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 51 + 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 [49 0 52] + } + data { + id 52 + 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 [49 51 53] + } + data { + id 53 + 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 [49 52 54] + } + data { + id 54 + 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 [49 53 55] + } + data { + id 55 + 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 [49 54 56] + } + data { + id 56 + 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 [49 55 57] + } + data { + id 57 + 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 [49 56 58] + } + data { + id 58 + 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 [49 57 59] + } + data { + id 59 + 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 [49 58 60] + } + data { + id 60 + 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 [49 59 61] + } + data { + id 61 + 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 [49 60 62] + } + data { + id 62 + 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 [49 61 63] + } + data { + id 63 + 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 [49 62 64] + } + data { + id 64 + 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 [49 63 65] + } + data { + id 65 + 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 [49 64 66] + } + data { + id 66 + 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 [49 65 67] + } + data { + id 67 + 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 [49 66 0] + } + junction { + id 68 + position [23.5747 49.5747 7] + chart 49 + subviewer 49 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + linkNode [49 0 0] + } + transition { + id 69 + 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 68 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 49 + dataLimits [21.175 25.975 14.625 42.575] + subviewer 49 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + linkNode [49 0 0] + } + instance { + id 70 + machine 1 + name "Actuation/Rotor System\n\n\n\n\n\n\n\n" + chart 49 + } + chart { + id 71 + machine 1 + name "Actuation/Aeb\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 72 0 0] + viewObj 71 + ssIdHighWaterMark 6 + decomposition CLUSTER_CHART + type EML_CHART + chartFileNumber 7 + disableImplicitCasting 1 + eml { + name "angular_body_earth_conversion" + } + firstData 73 + firstTransition 77 + firstJunction 76 + } + state { + id 72 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 71 + treeNode [71 0 0 0] + superState SUBCHART + subviewer 71 + 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 73 + 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 [71 0 74] + } + data { + id 74 + 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 [71 73 75] + } + data { + id 75 + 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 [71 74 0] + } + junction { + id 76 + position [23.5747 49.5747 7] + chart 71 + subviewer 71 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + linkNode [71 0 0] + } + transition { + id 77 + 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 76 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 71 + dataLimits [21.175 25.975 14.625 42.575] + subviewer 71 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + linkNode [71 0 0] + } + instance { + id 78 + machine 1 + name "Actuation/Aeb\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + chart 71 + } + chart { + id 79 + machine 1 + name "Actuation/Lbe\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 80 0 0] + viewObj 79 + ssIdHighWaterMark 13 + decomposition CLUSTER_CHART + type EML_CHART + chartFileNumber 8 + disableImplicitCasting 1 + eml { + name "linear_earth_body_conversion" + } + firstData 81 + firstTransition 87 + firstJunction 86 + } + state { + id 80 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 79 + treeNode [79 0 0 0] + superState SUBCHART + subviewer 79 + 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 81 + 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 [79 0 82] + } + data { + id 82 + 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 [79 81 83] + } + data { + id 83 + 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 [79 82 84] + } + data { + id 84 + 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 [79 83 85] + } + data { + id 85 + 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 [79 84 0] + } + junction { + id 86 + position [23.5747 49.5747 7] + chart 79 + subviewer 79 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + linkNode [79 0 0] + } + transition { + id 87 + 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 86 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 79 + dataLimits [21.175 25.975 14.625 42.575] + subviewer 79 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + linkNode [79 0 0] + } + instance { + id 88 + machine 1 + name "Actuation/Lbe\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + chart 79 + } + chart { + id 89 + machine 1 + name " Sensors /Complimentary Filter\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 90 0 0] + viewObj 89 + ssIdHighWaterMark 16 + decomposition CLUSTER_CHART + type EML_CHART + chartFileNumber 9 + disableImplicitCasting 1 + eml { + name "complimentaryFilter" + } + firstData 91 + firstTransition 96 + firstJunction 95 + } + state { + id 90 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 89 + treeNode [89 0 0 0] + superState SUBCHART + subviewer 89 + ssIdNumber 1 + type FUNC_STATE + decomposition CLUSTER_STATE + eml { + isEML 1 + script "%function euler_angles_IMU = complimentaryFilter(accel_pitch, accel_roll, euler_angles_gyro, pre" + "v_euler_angles_IMU)\nfunction euler_angles_IMU = complimentaryFilter(accel_pitch, accel_roll, euler_angles_gyro" + ")\n\n% LOOP_TIME = 5*10^-3;\n% \n% prev_phi = prev_euler_angles_IMU(1);\n% prev_theta = prev_euler_angles_IMU(2)" + ";\n% \n% phi_dot_gyro = euler_angles_gyro(1);\n% theta_dot_gyro = euler_angles_gyro(2);\n\n% phi = 0.98 * ( prev" + "_phi + phi_dot_gyro * LOOP_TIME ) + 0.02 * accel_roll;\n% theta = 0.98 * ( prev_theta + theta_dot_gyro * LOOP_TI" + "ME) + 0.02 * accel_pitch;\nk_gyro = 1; \nk_accel = 1-k_gyro; \n\nphi = k_gyro * ( euler_angles_gyro(1) ) + k_acc" + "el * accel_roll;\ntheta = k_gyro * ( euler_angles_gyro(2) ) + k_accel * accel_pitch;\n\neuler_angles_IMU = [phi;" + " theta];\n" + editorLayout "100 M4x1[10 5 700 500]" + } + } + data { + id 91 + 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 [89 0 92] + } + data { + id 92 + 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 [89 91 93] + } + data { + id 93 + 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 [89 92 94] + } + data { + id 94 + 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 [89 93 0] + } + junction { + id 95 + position [23.5747 49.5747 7] + chart 89 + subviewer 89 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + linkNode [89 0 0] + } + transition { + id 96 + 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 95 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 89 + dataLimits [21.175 25.975 14.625 42.575] + subviewer 89 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + linkNode [89 0 0] + } + instance { + id 97 + machine 1 + name " Sensors /Complimentary Filter\n\n\n\n\n\n\n\n" + chart 89 + } + chart { + id 98 + machine 1 + name " Sensors /IMU\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 99 0 0] + viewObj 98 + ssIdHighWaterMark 15 + decomposition CLUSTER_CHART + type EML_CHART + chartFileNumber 10 + disableImplicitCasting 1 + eml { + name "idealIMU" + } + firstData 100 + firstTransition 109 + firstJunction 108 + } + state { + id 99 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 98 + treeNode [98 0 0 0] + superState SUBCHART + subviewer 98 + 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 100 + 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 [98 0 101] + } + data { + id 101 + 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 [98 100 102] + } + data { + id 102 + 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 [98 101 103] + } + data { + id 103 + 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 [98 102 104] + } + data { + id 104 + 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 [98 103 105] + } + data { + id 105 + 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 [98 104 106] + } + data { + id 106 + 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 [98 105 107] + } + data { + id 107 + 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 [98 106 0] + } + junction { + id 108 + position [23.5747 49.5747 7] + chart 98 + subviewer 98 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + linkNode [98 0 0] + } + transition { + id 109 + 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 108 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 98 + dataLimits [21.175 25.975 14.625 42.575] + subviewer 98 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + linkNode [98 0 0] + } + instance { + id 110 + machine 1 + name " Sensors /IMU\n\n\n\n\n\n/\n\n\n\n\n\n\n" + chart 98 + } + chart { + id 111 + machine 1 + name " Sensors /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 112 0 0] + viewObj 111 + ssIdHighWaterMark 5 + decomposition CLUSTER_CHART + type EML_CHART + chartFileNumber 11 + disableImplicitCasting 1 + eml { + name "eigenaxis_ucart" + } + firstData 113 + firstTransition 116 + firstJunction 115 + } + state { + id 112 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 111 + treeNode [111 0 0 0] + superState SUBCHART + subviewer 111 + 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 113 + 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 [111 0 114] + } + data { + id 114 + 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 [111 113 0] + } + junction { + id 115 + position [23.5747 49.5747 7] + chart 111 + subviewer 111 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + linkNode [111 0 0] + } + transition { + id 116 + 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 115 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 111 + dataLimits [21.175 25.975 14.625 42.575] + subviewer 111 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + linkNode [111 0 0] + } + instance { + id 117 + machine 1 + name " Sensors /3D Graphical Simulation/MATLAB Function" + chart 111 + } + chart { + id 118 + machine 1 + name " Sensors /Aeb\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 119 0 0] + viewObj 118 + ssIdHighWaterMark 6 + decomposition CLUSTER_CHART + type EML_CHART + chartFileNumber 12 + disableImplicitCasting 1 + eml { + name "angular_body_earth_conversion" + } + firstData 120 + firstTransition 124 + firstJunction 123 + } + state { + id 119 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 118 + treeNode [118 0 0 0] + superState SUBCHART + subviewer 118 + 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 120 + 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 [118 0 121] + } + data { + id 121 + 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 [118 120 122] + } + data { + id 122 + 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 [118 121 0] + } + junction { + id 123 + position [23.5747 49.5747 7] + chart 118 + subviewer 118 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + linkNode [118 0 0] + } + transition { + id 124 + 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 123 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 118 + dataLimits [21.175 25.975 14.625 42.575] + subviewer 118 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + linkNode [118 0 0] + } + instance { + id 125 + machine 1 + name " Sensors /Aeb\n\n\n\n\n\n\n\n\n\n" + chart 118 + } + chart { + id 126 + machine 1 + name " Sensors /Calculate Pitch and Roll\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 127 0 0] + viewObj 126 + ssIdHighWaterMark 10 + decomposition CLUSTER_CHART + type EML_CHART + chartFileNumber 13 + disableImplicitCasting 1 + eml { + name "getPitchAndRoll" + } + firstData 128 + firstTransition 133 + firstJunction 132 + } + state { + id 127 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 126 + treeNode [126 0 0 0] + superState SUBCHART + subviewer 126 + 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 128 + 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 [126 0 129] + } + data { + id 129 + 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 [126 128 130] + } + data { + id 130 + 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 [126 129 131] + } + data { + id 131 + 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 [126 130 0] + } + junction { + id 132 + position [23.5747 49.5747 7] + chart 126 + subviewer 126 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + linkNode [126 0 0] + } + transition { + id 133 + 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 132 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 126 + dataLimits [21.175 25.975 14.625 42.575] + subviewer 126 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + linkNode [126 0 0] + } + instance { + id 134 + machine 1 + name " Sensors /Calculate Pitch and Roll\n\n\n\n\n\n\n\n\n\n\n\n1" + chart 126 + } + chart { + id 135 + machine 1 + name "Control System/MATLAB Function" + windowPosition [422 539.941 189 413] + viewLimits [0 156.75 0 153.75] + screen [1 1 3600 1200 1.180555555555556] + treeNode [0 136 0 0] + viewObj 135 + ssIdHighWaterMark 11 + decomposition CLUSTER_CHART + type EML_CHART + chartFileNumber 14 + disableImplicitCasting 1 + eml { + name "signal_mixer" + } + firstData 137 + firstTransition 143 + firstJunction 142 + } + state { + id 136 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 135 + treeNode [135 0 0 0] + superState SUBCHART + subviewer 135 + ssIdNumber 1 + type FUNC_STATE + decomposition CLUSTER_STATE + eml { + isEML 1 + script "function motorCommands = signal_mixer(height_controlled, y_controlled, x_controlled, yaw_control" + "led)\n\ncontroller_outputs = [ height_controlled; x_controlled; y_controlled; yaw_controlled ];\nsignal_mixer = " + "[ 1, -1, -1, -1; ... \n 1, 1, -1, 1; ...\n 1, -1, 1, 1; ...\n " + " 1, 1, 1, -1 ];\n\n% signal_mixer = [ 1, 1, -1, -1; ... \n% 1, -1, -1, 1; ...\n% " + " 1, 1, 1, 1; ...\n% 1, -1, 1, -1 ];\n\nmotorCommands = signal_mixer * controller_out" + "puts;\n" + editorLayout "100 M4x1[10 5 700 500]" + } + } + data { + id 137 + ssIdNumber 4 + name "height_controlled" + 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 [135 0 138] + } + data { + id 138 + ssIdNumber 7 + name "y_controlled" + 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 [135 137 139] + } + data { + id 139 + ssIdNumber 5 + name "motorCommands" + 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 [135 138 140] + } + data { + id 140 + ssIdNumber 6 + name "x_controlled" + 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 [135 139 141] + } + data { + id 141 + ssIdNumber 8 + name "yaw_controlled" + 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 [135 140 0] + } + junction { + id 142 + position [23.5747 49.5747 7] + chart 135 + subviewer 135 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + linkNode [135 0 0] + } + transition { + id 143 + 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 142 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 135 + dataLimits [21.175 25.975 14.625 42.575] + subviewer 135 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + linkNode [135 0 0] + } + instance { + id 144 + machine 1 + name "Control System/MATLAB Function" + chart 135 + } + target { + id 145 + machine 1 + name "sfun" + description "Default Simulink S-Function Target." + linkNode [1 0 0] + } +} -- GitLab