Model { Name "reg_mcl" Version 6.6 MdlSubVersion 0 GraphicalInterface { NumRootInports 0 NumRootOutports 0 ParameterArgumentNames "" ComputedModelVersion "1.329" NumModelReferences 0 NumTestPointedSignals 0 } SavedCharacterEncoding "iso-8859-2" PreLoadFcn "init" PostLoadFcn "figure(2); hold off\nfigure(1);\nsim('reg_mcl', 0);" " % show figures" SaveDefaultBlockParams on SampleTimeColors off LibraryLinkDisplay "none" WideLines off ShowLineDimensions on ShowPortDataTypes off ShowLoopsOnError on IgnoreBidirectionalLines off ShowStorageClass off ShowTestPointIcons on ShowViewerIcons on SortedOrder off ExecutionContextIcon off ShowLinearizationAnnotations on ScopeRefreshTime 0.035000 OverrideScopeRefreshTime on DisableAllScopes off DataTypeOverride "UseLocalSettings" MinMaxOverflowLogging "UseLocalSettings" MinMaxOverflowArchiveMode "Overwrite" BlockNameDataTip off BlockParametersDataTip off BlockDescriptionStringDataTip off ToolBar on StatusBar on BrowserShowLibraryLinks off BrowserLookUnderMasks off InitFcn "figure(2); hold off\nfigure(1);" Created "Thu Mar 29 23:35:11 2007" Creator "wsh" UpdateHistory "UpdateHistoryNever" ModifiedByFormat "%" LastModifiedBy "wsh" ModifiedDateFormat "%" LastModifiedDate "Wed Apr 30 07:42:20 2008" ModelVersionFormat "1.%" ConfigurationManager "None" SimulationMode "normal" LinearizationMsg "none" Profile off ParamWorkspaceSource "MATLABWorkspace" AccelSystemTargetFile "accel.tlc" AccelTemplateMakefile "accel_default_tmf" AccelMakeCommand "make_rtw" AccelVerboseBuild off TryForcingSFcnDF off RecordCoverage off CovPath "/" CovSaveName "covdata" CovMetricSettings "dw" CovNameIncrementing off CovHtmlReporting on covSaveCumulativeToWorkspaceVar on CovSaveSingleToWorkspaceVar on CovCumulativeVarName "covCumulativeData" CovCumulativeReport off CovReportOnPause on 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 off BufferReuse on ProdHWDeviceType "32-bit Generic" ShowModelReferenceBlockVersion off ShowModelReferenceBlockIO off Array { Type "Handle" Dimension 1 Simulink.ConfigSet { $ObjectID 1 Version "1.2.0" Array { Type "Handle" Dimension 7 Simulink.SolverCC { $ObjectID 2 Version "1.2.0" StartTime "0.0" StopTime "100" AbsTol "auto" FixedStep "0.05" InitialStep "auto" MaxNumMinSteps "-1" MaxOrder 5 ConsecutiveZCsStepRelTol "10*128*eps" MaxConsecutiveZCs "1000" ExtrapolationOrder 4 NumberNewtonIterations 1 MaxStep "auto" MinStep "auto" MaxConsecutiveMinStep "1" RelTol "1e-3" SolverMode "Auto" Solver "ode45" SolverName "ode45" ZeroCrossControl "UseLocalSettings" AlgebraicLoopSolver "TrustRegion" SolverResetMethod "Fast" PositivePriorityOrder off AutoInsertRateTranBlk off SampleTimeConstraint "Unconstrained" RateTranMode "Deterministic" } Simulink.DataIOCC { $ObjectID 3 Version "1.2.0" Decimation "1" ExternalInput "[t, u]" FinalStateName "xFinal" InitialState "xInitial" LimitDataPoints on MaxDataPoints "1000" LoadExternalInput off LoadInitialState off SaveFinalState off SaveFormat "Array" SaveOutput on SaveState off SignalLogging on InspectSignalLogs off SaveTime on StateSaveName "xout" TimeSaveName "tout" OutputSaveName "yout" SignalLoggingName "logsout" OutputOption "RefineOutputTimes" OutputTimes "[]" Refine "1" } Simulink.OptimizationCC { $ObjectID 4 Array { Type "Cell" Dimension 5 Cell "ZeroExternalMemoryAtStartup" Cell "ZeroInternalMemoryAtStartup" Cell "InitFltsAndDblsToZero" Cell "OptimizeModelRefInitCode" Cell "NoFixptDivByZeroProtection" PropName "DisabledProps" } Version "1.2.0" BlockReduction on BooleanDataType on ConditionallyExecuteInputs on InlineParams off InlineInvariantSignals off OptimizeBlockIOStorage on BufferReuse on EnforceIntegerDowncast on ExpressionFolding on ExpressionDepthLimit 2147483647 FoldNonRolledExpr on LocalBlockOutputs on RollThreshold 5 SystemCodeInlineAuto off StateBitsets off DataBitsets off UseTempVars off ZeroExternalMemoryAtStartup on ZeroInternalMemoryAtStartup on InitFltsAndDblsToZero on NoFixptDivByZeroProtection off EfficientFloat2IntCast off OptimizeModelRefInitCode off LifeSpan "inf" BufferReusableBoundary on } Simulink.DebuggingCC { $ObjectID 5 Version "1.2.0" RTPrefix "error" ConsistencyChecking "none" ArrayBoundsChecking "none" SignalInfNanChecking "none" ReadBeforeWriteMsg "UseLocalSettings" WriteAfterWriteMsg "UseLocalSettings" WriteAfterReadMsg "UseLocalSettings" AlgebraicLoopMsg "warning" ArtificialAlgebraicLoopMsg "warning" CheckSSInitialOutputMsg on CheckExecutionContextPreStartOutputMsg off CheckExecutionContextRuntimeOutputMsg off SignalResolutionControl "TryResolveAllWithWarning" BlockPriorityViolationMsg "warning" MinStepSizeMsg "warning" TimeAdjustmentMsg "none" MaxConsecutiveZCsMsg "error" SolverPrmCheckMsg "warning" InheritedTsInSrcMsg "warning" DiscreteInheritContinuousMsg "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" UnderSpecifiedDataTypeMsg "none" UnnecessaryDatatypeConvMsg "none" VectorMatrixConversionMsg "none" InvalidFcnCallConnMsg "error" FcnCallInpInsideContextMsg "Use local settings" SignalLabelMismatchMsg "none" UnconnectedInputMsg "warning" UnconnectedOutputMsg "warning" UnconnectedLineMsg "warning" SFcnCompatibilityMsg "none" UniqueDataStoreMsg "none" BusObjectLabelMismatch "warning" RootOutportRequireBusObject "warning" AssertControl "UseLocalSettings" EnableOverflowDetection off ModelReferenceIOMsg "none" ModelReferenceVersionMismatchMessage "none" ModelReferenceIOMismatchMessage "none" ModelReferenceCSMismatchMessage "none" ModelReferenceSimTargetVerbose off UnknownTsInhSupMsg "warning" ModelReferenceDataLoggingMessage "warning" ModelReferenceSymbolNameMessage "warning" ModelReferenceExtraNoncontSigs "error" StateNameClashWarn "warning" StrictBusMsg "Warning" } Simulink.HardwareCC { $ObjectID 6 Version "1.2.0" ProdBitPerChar 8 ProdBitPerShort 16 ProdBitPerInt 32 ProdBitPerLong 32 ProdIntDivRoundTo "Undefined" ProdEndianess "Unspecified" ProdWordSize 32 ProdShiftRightIntArith on ProdHWDeviceType "32-bit Generic" TargetBitPerChar 8 TargetBitPerShort 16 TargetBitPerInt 32 TargetBitPerLong 32 TargetShiftRightIntArith on TargetIntDivRoundTo "Undefined" TargetEndianess "Unspecified" TargetWordSize 32 TargetTypeEmulationWarnSuppressLevel 0 TargetPreprocMaxBitsSint 32 TargetPreprocMaxBitsUint 32 TargetHWDeviceType "Specified" TargetUnknown off ProdEqTarget on } Simulink.ModelReferenceCC { $ObjectID 7 Version "1.2.0" UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" CheckModelReferenceTargetMessage "error" ModelReferenceNumInstancesAllowed "Multi" ModelReferencePassRootInputsByReference on ModelReferenceMinAlgLoopOccurrences off } Simulink.RTWCC { $BackupClass "Simulink.RTWCC" $ObjectID 8 Array { Type "Cell" Dimension 1 Cell "IncludeHyperlinkInReport" PropName "DisabledProps" } Version "1.2.0" SystemTargetFile "grt.tlc" GenCodeOnly off MakeCommand "make_rtw" GenerateMakefile on TemplateMakefile "grt_default_tmf" GenerateReport off SaveLog off RTWVerbose on RetainRTWFile off ProfileTLC off TLCDebug off TLCCoverage off TLCAssert off ProcessScriptMode "Default" ConfigurationMode "Optimized" ConfigAtBuild off IncludeHyperlinkInReport off LaunchReport off TargetLang "C" IncludeBusHierarchyInRTWFileBlockHierarchyMap off IncludeERTFirstTime off Array { Type "Handle" Dimension 2 Simulink.CodeAppCC { $ObjectID 9 Array { Type "Cell" Dimension 16 Cell "IgnoreCustomStorageClasses" Cell "InsertBlockDesc" Cell "SFDataObjDesc" Cell "SimulinkDataObjDesc" Cell "DefineNamingRule" Cell "SignalNamingRule" Cell "ParamNamingRule" Cell "InlinedPrmAccess" Cell "CustomSymbolStr" Cell "CustomSymbolStrGlobalVar" Cell "CustomSymbolStrType" Cell "CustomSymbolStrField" Cell "CustomSymbolStrFcn" Cell "CustomSymbolStrBlkIO" Cell "CustomSymbolStrTmpVar" Cell "CustomSymbolStrMacro" PropName "DisabledProps" } Version "1.2.0" ForceParamTrailComments off GenerateComments on IgnoreCustomStorageClasses on IncHierarchyInIds off MaxIdLength 31 PreserveName off PreserveNameWithParent off ShowEliminatedStatement off IncAutoGenComments off SimulinkDataObjDesc off SFDataObjDesc off IncDataTypeInIds off PrefixModelToSubsysFcnNames on MangleLength 1 CustomSymbolStrGlobalVar "$R$N$M" CustomSymbolStrType "$N$R$M" CustomSymbolStrField "$N$M" CustomSymbolStrFcn "$R$N$M$F" CustomSymbolStrBlkIO "rtb_$N$M" CustomSymbolStrTmpVar "$N$M" CustomSymbolStrMacro "$R$N$M" DefineNamingRule "None" ParamNamingRule "None" SignalNamingRule "None" InsertBlockDesc off SimulinkBlockComments on EnableCustomComments off InlinedPrmAccess "Literals" ReqsInCode off } Simulink.GRTTargetCC { $BackupClass "Simulink.TargetCC" $ObjectID 10 Array { Type "Cell" Dimension 13 Cell "IncludeMdlTerminateFcn" Cell "CombineOutputUpdateFcns" Cell "SuppressErrorStatus" Cell "ERTCustomFileBanners" Cell "GenerateSampleERTMain" Cell "GenerateTestInterfaces" Cell "MultiInstanceERTCode" Cell "PurelyIntegerCode" Cell "SupportNonFinite" Cell "SupportComplex" Cell "SupportAbsoluteTime" Cell "SupportContinuousTime" Cell "SupportNonInlinedSFcns" PropName "DisabledProps" } Version "1.2.0" TargetFcnLib "ansi_tfl_tmw.mat" TargetLibSuffix "" TargetPreCompLibLocation "" GenFloatMathFcnCalls "ANSI_C" UtilityFuncGeneration "Auto" GenerateFullHeader on GenerateSampleERTMain off GenerateTestInterfaces off IsPILTarget off ModelReferenceCompliant on IncludeMdlTerminateFcn on CombineOutputUpdateFcns off SuppressErrorStatus off IncludeFileDelimiter "Auto" ERTCustomFileBanners off SupportAbsoluteTime on LogVarNameModifier "rt_" MatFileLogging on MultiInstanceERTCode off SupportNonFinite on SupportComplex on PurelyIntegerCode off SupportContinuousTime on SupportNonInlinedSFcns on EnableShiftOperators on ParenthesesLevel "Nominal" PortableWordSizes off ModelStepFunctionPrototypeControlCompliant off ExtMode off ExtModeStaticAlloc off ExtModeTesting off ExtModeStaticAllocSize 1000000 ExtModeTransport 0 ExtModeMexFile "ext_comm" ExtModeIntrfLevel "Level1" RTWCAPISignals off RTWCAPIParams off RTWCAPIStates off GenerateASAP2 off } PropName "Components" } } PropName "Components" } Name "Configuration" CurrentDlgPage "Solver" } PropName "ConfigurationSets" } Simulink.ConfigSet { $PropName "ActiveConfigurationSet" $ObjectID 1 } WSDataSource "M-Code" BlockDefaults { Orientation "right" ForegroundColor "black" BackgroundColor "white" DropShadow off NamePlacement "normal" FontName "Arial" FontSize 10 FontWeight "normal" FontAngle "normal" ShowName on } BlockParameterDefaults { Block { BlockType Clock DisplayTime off } Block { BlockType Constant Value "1" VectorParams1D on SamplingMode "Sample based" OutDataTypeMode "Inherit from 'Constant value'" OutDataType "sfix(16)" ConRadixGroup "Use specified scaling" OutScaling "2^0" SampleTime "inf" FramePeriod "inf" } Block { BlockType Demux Outputs "4" DisplayOption "none" BusSelectionMode off } Block { BlockType Display Format "short" Decimation "10" Floating off SampleTime "-1" } Block { BlockType EnablePort StatesWhenEnabling "held" ShowOutputPort off ZeroCross on } Block { BlockType Gain Gain "1" Multiplication "Element-wise(K.*u)" ParameterDataTypeMode "Same as input" ParameterDataType "sfix(16)" ParameterScalingMode "Best Precision: Matrix-wise" ParameterScaling "2^0" OutDataTypeMode "Same as input" OutDataType "sfix(16)" OutScaling "2^0" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType Ground } Block { BlockType HitCross HitCrossingOffset "0" HitCrossingDirection "either" ShowOutputPort on ZeroCross on SampleTime "-1" } Block { BlockType Inport Port "1" UseBusObject off BusObject "BusObject" BusOutputAsStruct off PortDimensions "-1" SampleTime "-1" DataType "auto" OutDataType "sfix(16)" OutScaling "2^0" SignalType "auto" SamplingMode "auto" LatchByDelayingOutsideSignal off LatchByCopyingInsideSignal off Interpolate on } Block { BlockType Integrator ExternalReset "none" InitialConditionSource "internal" InitialCondition "0" LimitOutput off UpperSaturationLimit "inf" LowerSaturationLimit "-inf" ShowSaturationPort off ShowStatePort off AbsoluteTolerance "auto" IgnoreLimit off ZeroCross on ContinuousStateAttributes "''" } Block { BlockType MATLABFcn MATLABFcn "sin" OutputDimensions "-1" OutputSignalType "auto" Output1D on SampleTime "-1" } Block { BlockType "M-S-Function" FunctionName "mlfile" DisplayMFileStacktrace on } Block { BlockType SignalViewerScope Floating off ModelBased off TickLabels "OneTimeTick" ZoomMode "on" Grid "on" TimeRange "auto" YMin "-5" YMax "5" SaveToWorkspace off SaveName "ScopeData" LimitDataPoints on MaxDataPoints "5000" Decimation "1" SampleInput off SampleTime "0" Disabled off ScrollMode on } Block { BlockType Mux Inputs "4" DisplayOption "none" UseBusObject off BusObject "BusObject" NonVirtualBus off } Block { BlockType Outport Port "1" UseBusObject off BusObject "BusObject" BusOutputAsStruct off PortDimensions "-1" SampleTime "-1" DataType "auto" OutDataType "sfix(16)" OutScaling "2^0" SignalType "auto" SamplingMode "auto" OutputWhenDisabled "held" InitialOutput "[]" } Block { BlockType RandomNumber Mean "0" Variance "1" Seed "0" SampleTime "-1" VectorParams1D on } Block { BlockType RateTransition Integrity on Deterministic on X0 "0" OutPortSampleTime "-1" } Block { BlockType RateLimiter RisingSlewLimit "1" FallingSlewLimit "-1" SampleTimeMode "continuous" InitialCondition "0" LinearizeAsGain on } Block { BlockType RelationalOperator Operator ">=" InputSameDT on LogicOutDataTypeMode "Logical (see Configuration Parameters: Optimiza" "tion)" LogicDataType "uint(8)" ZeroCross on SampleTime "-1" } Block { BlockType Saturate UpperLimit "0.5" LowerLimit "-0.5" LinearizeAsGain on ZeroCross on SampleTime "-1" } Block { BlockType Scope ModelBased off TickLabels "OneTimeTick" ZoomMode "on" Grid "on" TimeRange "auto" YMin "-5" YMax "5" SaveToWorkspace off SaveName "ScopeData" LimitDataPoints on MaxDataPoints "5000" Decimation "1" SampleInput off SampleTime "-1" } Block { BlockType Selector NumberOfDimensions "1" IndexMode "One-based" InputPortWidth "-1" SampleTime "-1" } Block { BlockType "S-Function" FunctionName "system" SFunctionModules "''" PortCounts "[]" } Block { BlockType SignalSpecification Dimensions "-1" SampleTime "-1" DataType "auto" OutDataType "sfix(16)" OutScaling "2^0" SignalType "auto" SamplingMode "auto" } Block { BlockType SubSystem ShowPortLabels "FromPortIcon" Permissions "ReadWrite" PermitHierarchicalResolution "All" TreatAsAtomicUnit off SystemSampleTime "-1" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" RTWMemSecDataInternal "Inherit from model" RTWMemSecDataParameters "Inherit from model" SimViewingDevice off DataTypeOverride "UseLocalSettings" MinMaxOverflowLogging "UseLocalSettings" } Block { BlockType Sum IconShape "rectangular" Inputs "++" CollapseMode "All dimensions" CollapseDim "1" InputSameDT on OutDataTypeMode "Same as first input" OutDataType "sfix(16)" OutScaling "2^0" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType Switch Criteria "u2 >= Threshold" Threshold "0" InputSameDT on OutDataTypeMode "Inherit via internal rule" RndMeth "Floor" SaturateOnIntegerOverflow on ZeroCross on SampleTime "-1" } Block { BlockType TriggerPort TriggerType "rising" StatesWhenEnabling "inherit" ShowOutputPort off OutputDataType "auto" SampleTimeType "triggered" SampleTime "1" ZeroCross on } Block { BlockType UnitDelay X0 "0" SampleTime "1" StateMustResolveToSignalObject off RTWStateStorageClass "Auto" } } AnnotationDefaults { HorizontalAlignment "center" VerticalAlignment "middle" ForegroundColor "black" BackgroundColor "white" DropShadow off FontName "Arial" FontSize 10 FontWeight "normal" FontAngle "normal" UseDisplayTextAsClickCallback off } LineDefaults { FontName "Arial" FontSize 9 FontWeight "normal" FontAngle "normal" } System { Name "reg_mcl" Location [118, 523, 973, 1000] Open on ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" ReportName "simulink-default.rpt" Block { BlockType SubSystem Name " " Ports [] Position [30, 14, 100, 48] OpenFcn "path=diag([area.w area.h])*rand(2,8)\nsim('reg_" "mcl',0) " MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off MaskDisplay "disp('Random path')" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" System { Name " " Location [433, 403, 931, 703] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" } } Block { BlockType SubSystem Name " 2" Ports [] Position [15, 54, 121, 89] Priority "0" MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off MaskDisplay "disp(sprintf('Sample time: %g', move_sample_tim" "e))" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" System { Name " 2" Location [433, 403, 931, 703] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" } } Block { BlockType Clock Name "Clock" Position [245, 55, 265, 75] Decimation "10" } Block { BlockType "S-Function" Name "Controller" Ports [2, 1] Position [175, 118, 235, 207] BackgroundColor "green" FunctionName "sf_posreg" Parameters "[2 2 10],move_sample_time" MaskDisplay "port_label('input', 1, 'ref pos')\nport_label('" "input', 2, 'measured pos')\nport_label('output', 1, '(v,w)')" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" } Block { BlockType Display Name "Display" Ports [1] Position [295, 51, 380, 79] Lockdown off } Block { BlockType "M-S-Function" Name "Estimated\nposition" Ports [2] Position [725, 308, 790, 352] ForegroundColor "blue" FunctionName "sfdrawrobot" Parameters "desc,'--b'" MaskDisplay "disp('Drawer')\nport_label('input', 1, 'x')\npo" "rt_label('input', 2, 'y')\n" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" } Block { BlockType SubSystem Name "Graphs" Ports [2] Position [725, 180, 825, 240] MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off System { Name "Graphs" Location [478, 120, 998, 439] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "Pos" Position [25, 108, 55, 122] IconDisplay "Port number" } Block { BlockType Inport Name "Est pos" Position [25, 223, 55, 237] Port "2" IconDisplay "Port number" } Block { BlockType Scope Name "Angle" Ports [1] Position [410, 109, 440, 141] Floating off Location [437, 630, 1088, 998] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "100" YMin "-1000" YMax "8000" SaveName "ScopeData1" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Gain Name "Gain" Position [295, 109, 330, 141] Gain "180/pi" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off Port { PortNumber 1 Name "Angle [deg]" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Mux Name "Mux" Ports [2, 1] Position [250, 46, 255, 84] ShowName off Inputs "2" DisplayOption "bar" Port { PortNumber 1 Name "Position [m]" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Mux Name "Mux1" Ports [2, 1] Position [250, 106, 255, 144] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Selector Name "Selector" Ports [1, 1] Position [110, 36, 150, 74] IndexOptions "Index vector (dialog)" Indices "[1 2]" OutputSizes "1" InputPortWidth "3" } Block { BlockType Selector Name "Selector1" Ports [1, 1] Position [110, 96, 150, 134] IndexOptions "Index vector (dialog)" Indices "3" OutputSizes "1" InputPortWidth "3" } Block { BlockType Selector Name "Selector2" Ports [1, 1] Position [110, 236, 150, 274] IndexOptions "Index vector (dialog)" Indices "3" OutputSizes "1" InputPortWidth "3" } Block { BlockType Selector Name "Selector3" Ports [1, 1] Position [110, 171, 150, 209] IndexOptions "Index vector (dialog)" Indices "[1 2]" OutputSizes "1" InputPortWidth "3" } Block { BlockType Scope Name "XY" Ports [1] Position [410, 49, 440, 81] Floating off Location [431, 91, 1074, 488] Open off NumInputPorts "1" ZoomMode "xonly" List { ListType AxesTitles axes1 "%" } TimeRange "100" YMin "-0.5" YMax "4" DataFormat "StructureWithTime" SampleTime "0" } Line { Name "Angle [deg]" Labels [0, 0] SrcBlock "Gain" SrcPort 1 DstBlock "Angle" DstPort 1 } Line { SrcBlock "Selector2" SrcPort 1 Points [80, 0] DstBlock "Mux1" DstPort 2 } Line { SrcBlock "Selector1" SrcPort 1 DstBlock "Mux1" DstPort 1 } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "Gain" DstPort 1 } Line { SrcBlock "Selector3" SrcPort 1 Points [40, 0; 0, -115] DstBlock "Mux" DstPort 2 } Line { Name "Position [m]" Labels [0, 0] SrcBlock "Mux" SrcPort 1 DstBlock "XY" DstPort 1 } Line { SrcBlock "Selector" SrcPort 1 DstBlock "Mux" DstPort 1 } Line { SrcBlock "Est pos" SrcPort 1 Points [0, -15; 15, 0] Branch { Points [0, 40] DstBlock "Selector2" DstPort 1 } Branch { Points [0, -25] DstBlock "Selector3" DstPort 1 } } Line { SrcBlock "Pos" SrcPort 1 Points [15, 0] Branch { DstBlock "Selector1" DstPort 1 } Branch { Points [0, -60] DstBlock "Selector" DstPort 1 } } } } Block { BlockType "S-Function" Name "MCL" Ports [2, 2] Position [215, 313, 395, 382] Orientation "left" BackgroundColor "green" ShowName off FunctionName "sf_mcl" Parameters "count, noise_xy, noise_angle, aeval_sigma" MaskPromptString "Number of samples|Move noise X,Y [m]|Move noise" " angle [rad]|Measure dispersion [rad]" MaskStyleString "edit,edit,edit,edit" MaskTunableValueString "off,on,on,on" MaskCallbackString "|||" MaskEnableString "on,on,on,on" MaskVisibilityString "on,on,on,on" MaskToolTipString "on,on,on,on" MaskVarAliasString ",,," MaskVariables "count=@1;noise_xy=@2;noise_angle=@3;aeval_sigma" "=@4;" MaskDisplay "port_label('input', 1, '(dx,dy,da)')\nport_labe" "l('input', 2, 'measurement')\nport_label('output', 1, 'est_pos=(x,y,a)')\npor" "t_label('output', 2, 'particle bitmap')\ndisp('MCL')" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" MaskValueString "3000|0.01|5/180*pi|10/180*pi" MaskTabNameString ",,," Port { PortNumber 1 Name "Estimated position" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Reference Name "Manual Switch" Ports [2, 1] Position [125, 167, 155, 203] SourceBlock "simulink/Signal\nRouting/Manual Switch" SourceType "Manual Switch" ShowPortLabels "FromPortIcon" SystemSampleTime "-1" FunctionWithSeparateData off RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" RTWMemSecDataInternal "Inherit from model" RTWMemSecDataParameters "Inherit from model" sw "1" action "0" varsize off } Block { BlockType Ground Name "No laser" Position [530, 220, 550, 240] } Block { BlockType Ground Name "No odometry" Position [470, 220, 490, 240] Orientation "left" } Block { BlockType RateTransition Name "Rate Transition1" Position [55, 309, 95, 351] Orientation "left" X0 "desc.initpos" } Block { BlockType RateTransition Name "Rate Transition2" Position [49, 230, 91, 270] Orientation "up" X0 "desc.initpos" } Block { BlockType "M-S-Function" Name "Real\nposition" Ports [2] Position [725, 94, 785, 141] BackgroundColor "cyan" FunctionName "sfdrawrobot" Parameters "desc,0" MaskDisplay "disp('Drawer')\nport_label('input', 1, 'x')\npo" "rt_label('input', 2, 'y')\n" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" } Block { BlockType "M-S-Function" Name "Reference\nposition" Ports [2] Position [725, 13, 790, 57] ForegroundColor "magenta" FunctionName "sfdrawrobot" Parameters "desc,'--m'" MaskDisplay "disp('Drawer')\nport_label('input', 1, 'x')\npo" "rt_label('input', 2, 'y')\n" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" } Block { BlockType SubSystem Name "Robot kinematics" Ports [1, 2] Position [260, 137, 385, 188] BackgroundColor "[0.912000, 0.763112, 0.484696]" MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off MaskDisplay "disp('Robot\\n\\n')\nport_label('input', 1, 'u=" "(w1,w2)')\nport_label('output', 1, 'x=(X,Y,th)')\nport_label('output', 2, 'od" "o=(dx,dy,da)')" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" Port { PortNumber 1 Name "Real robot position" PropagatedSignals "x,y,phi [m,m,rad]" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } System { Name "Robot kinematics" Location [4, 55, 1176, 412] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "In1" Position [20, 38, 50, 52] IconDisplay "Port number" Port { PortNumber 1 Name "(v,w)" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Selector Name "Angle" Ports [1, 1] Position [675, 151, 715, 189] IndexOptions "Index vector (dialog)" Indices "[3]" OutputSizes "1" InputPortWidth "3" } Block { BlockType Reference Name "Difference" Ports [1, 1] Position [670, 222, 715, 258] NamePlacement "alternate" SourceBlock "simulink/Discrete/Difference" SourceType "Difference" ShowPortLabels "FromPortIcon" SystemSampleTime "-1" FunctionWithSeparateData off RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" RTWMemSecDataInternal "Inherit from model" RTWMemSecDataParameters "Inherit from model" ICPrevInput "desc.initpos" OutputDataTypeScalingMode "Inherit via internal rule" OutDataType "sfix(16)" OutScaling "2^-10" LockScale off RndMeth "Floor" DoSatur off } Block { BlockType Gain Name "Gain" Position [815, 154, 850, 186] Gain "-1" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Integrator Name "Integrator" Ports [1, 1] Position [510, 40, 540, 70] InitialCondition "desc.initpos" LimitOutput on UpperSaturationLimit "[area.w area.h Inf]" LowerSaturationLimit "[0 0 -Inf]" IgnoreLimit off Port { PortNumber 1 Name "x,y,phi [m,m,rad]" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType SubSystem Name "Motors" Ports [1, 1] Position [210, 13, 310, 77] MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off Port { PortNumber 1 Name "(vl,vr)" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } System { Name "Motors" Location [194, 223, 649, 361] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "ref omega" Position [25, 43, 55, 57] IconDisplay "Port number" Port { PortNumber 1 Name "m/s" PropagatedSignals "(vl,vr)" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Reference Name "Manual Switch" Ports [2, 1] Position [345, 32, 375, 68] SourceBlock "simulink/Signal\nRouting/Manual Switch" SourceType "Manual Switch" ShowPortLabels "FromPortIcon" SystemSampleTime "-1" FunctionWithSeparateData off RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" RTWMemSecDataInternal "Inherit from model" RTWMemSecDataParameters "Inherit from model" sw "1" action "0" varsize off } Block { BlockType RateLimiter Name "acc limit" Position [260, 25, 290, 55] AttributesFormatString "<%,%" "> m/s^2" RisingSlewLimit "3" FallingSlewLimit "-3" SampleTimeMode "inherited" } Block { BlockType Saturate Name "speed limit" Position [175, 35, 205, 65] AttributesFormatString "<%,%> m/s" UpperLimit "2" LowerLimit "-2" } Block { BlockType Outport Name "(vl,vr)" Position [400, 43, 430, 57] IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "acc limit" SrcPort 1 DstBlock "Manual Switch" DstPort 1 } Line { SrcBlock "speed limit" SrcPort 1 Points [20, 0] Branch { Points [0, -10] DstBlock "acc limit" DstPort 1 } Branch { Points [0, 60; 100, 0] DstBlock "Manual Switch" DstPort 2 } } Line { SrcBlock "Manual Switch" SrcPort 1 DstBlock "(vl,vr)" DstPort 1 } Line { Name "m/s" Labels [1, 0] SrcBlock "ref omega" SrcPort 1 DstBlock "speed limit" DstPort 1 } } } Block { BlockType Mux Name "Mux1" Ports [2, 1] Position [360, 36, 365, 74] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux2" Ports [2, 1] Position [885, 211, 890, 249] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux3" Ports [2, 1] Position [1030, 221, 1035, 259] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType RateTransition Name "Rate Transition2" Position [589, 85, 631, 125] Orientation "down" X0 "desc.initpos" OutPortSampleTime "move_sample_time" } Block { BlockType MATLABFcn Name "Rotate XY" Ports [1, 1] Position [920, 213, 1005, 247] MATLABFcn "[cos(u(1)) -sin(u(1)); sin(u(1)) cos(u(1))]" "*[u(2); u(3)]" } Block { BlockType Selector Name "Selector" Ports [1, 1] Position [546, 85, 584, 125] Orientation "down" NamePlacement "alternate" IndexOptions "Index vector (dialog)" Indices "[3]" OutputSizes "1" InputPortWidth "3" Port { PortNumber 1 Name "angle" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Selector Name "Speed XY" Ports [1, 1] Position [760, 221, 800, 259] IndexOptions "Index vector (dialog)" Indices "[1 2]" OutputSizes "1" InputPortWidth "3" Port { PortNumber 1 Name "dx, dy" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Selector Name "Speed angle" Ports [1, 1] Position [760, 281, 800, 319] IndexOptions "Index vector (dialog)" Indices "3" OutputSizes "1" InputPortWidth "3" Port { PortNumber 1 Name "dangle" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType MATLABFcn Name "kinematics" Ports [1, 1] Position [410, 40, 470, 70] MATLABFcn "kinematics" } Block { BlockType MATLABFcn Name "speed2wheel" Ports [1, 1] Position [105, 30, 165, 60] MATLABFcn "[u(1)-robot.w/2*u(2); u(1)+robot.w/2*u(2)]" Port { PortNumber 1 Name "(vl,vr)" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Outport Name "Pos" Position [780, 48, 810, 62] IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "Odometry" Position [1090, 233, 1120, 247] Port "2" IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "kinematics" SrcPort 1 DstBlock "Integrator" DstPort 1 } Line { Name "x,y,phi [m,m,rad]" SrcBlock "Integrator" SrcPort 1 Points [20, 0] Branch { DstBlock "Selector" DstPort 1 } Branch { Points [45, 0] Branch { Labels [1, 1; 1, 0] DstBlock "Pos" DstPort 1 } Branch { DstBlock "Rate Transition2" DstPort 1 } } } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "kinematics" DstPort 1 } Line { Name "angle" Labels [0, 0] SrcBlock "Selector" SrcPort 1 Points [0, 15; -230, 0; 0, -80] DstBlock "Mux1" DstPort 2 } Line { Name "(vl,vr)" Labels [0, 0] SrcBlock "Motors" SrcPort 1 DstBlock "Mux1" DstPort 1 } Line { Name "(vl,vr)" Labels [0, 0] SrcBlock "speed2wheel" SrcPort 1 DstBlock "Motors" DstPort 1 } Line { Name "(v,w)" Labels [0, 0] SrcBlock "In1" SrcPort 1 DstBlock "speed2wheel" DstPort 1 } Line { SrcBlock "Gain" SrcPort 1 Points [0, 50] DstBlock "Mux2" DstPort 1 } Line { SrcBlock "Difference" SrcPort 1 Points [5, 0] Branch { DstBlock "Speed XY" DstPort 1 } Branch { Points [0, 60] DstBlock "Speed angle" DstPort 1 } } Line { Name "dx, dy" Labels [0, 0] SrcBlock "Speed XY" SrcPort 1 DstBlock "Mux2" DstPort 2 } Line { Name "dangle" Labels [0, 0] SrcBlock "Speed angle" SrcPort 1 Points [210, 0] DstBlock "Mux3" DstPort 2 } Line { SrcBlock "Mux3" SrcPort 1 DstBlock "Odometry" DstPort 1 } Line { SrcBlock "Rotate XY" SrcPort 1 DstBlock "Mux3" DstPort 1 } Line { SrcBlock "Mux2" SrcPort 1 DstBlock "Rotate XY" DstPort 1 } Line { SrcBlock "Angle" SrcPort 1 DstBlock "Gain" DstPort 1 } Line { SrcBlock "Rate Transition2" SrcPort 1 Points [0, 40] Branch { Points [0, 70] DstBlock "Difference" DstPort 1 } Branch { DstBlock "Angle" DstPort 1 } } } } Block { BlockType SubSystem Name "Rotating laser" Ports [1, 3] Position [425, 119, 570, 181] BackgroundColor "[0.912000, 0.763112, 0.484696]" MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off MaskPromptString "Rotations per second|Noise standard deviation [" "deg]|Zero-cross detection" MaskStyleString "edit,edit,checkbox" MaskTunableValueString "on,on,on" MaskCallbackString "||" MaskEnableString "on,on,on" MaskVisibilityString "on,on,on" MaskToolTipString "on,on,on" MaskVarAliasString ",," MaskVariables "rps=@1;noise_stdev=@2;zerocross=@3;" MaskDisplay "text(0.3,0.5, sprintf('RPS=%g\\nNoise=%g', rps," " noise_stdev))\nport_label('input', 1, 'Pos')\nport_label('output', 1, 'Ideal" "')\nport_label('output', 2, 'Immediate')\nport_label('output', 3, 'Buffered')" "\n" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "normalized" MaskValueString "3|0.01|on" MaskTabNameString ",," System { Name "Rotating laser" Location [651, 66, 1675, 656] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "Pos" Position [25, 33, 55, 47] IconDisplay "Port number" } Block { BlockType MATLABFcn Name "Beacon Angles" Ports [1, 1] Position [150, 25, 210, 55] MATLABFcn "mod(beacon_angles(u), 2*pi)" } Block { BlockType SubSystem Name "Beacon memory" Ports [1, 1, 0, 1] Position [510, 299, 565, 331] TreatAsAtomicUnit on MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off System { Name "Beacon memory" Location [401, 346, 899, 646] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "In1" Position [110, 103, 140, 117] IconDisplay "Port number" } Block { BlockType TriggerPort Name "Trigger" Ports [] Position [225, 20, 245, 40] StatesWhenEnabling "held" } Block { BlockType Outport Name "Out1" Position [360, 103, 390, 117] IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "In1" SrcPort 1 DstBlock "Out1" DstPort 1 } } } Block { BlockType SubSystem Name "Beacon memory1" Ports [1, 1, 0, 1] Position [510, 369, 565, 401] TreatAsAtomicUnit on MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off System { Name "Beacon memory1" Location [401, 346, 899, 646] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "In1" Position [110, 103, 140, 117] IconDisplay "Port number" } Block { BlockType TriggerPort Name "Trigger" Ports [] Position [225, 20, 245, 40] StatesWhenEnabling "held" } Block { BlockType Outport Name "Out1" Position [360, 103, 390, 117] IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "In1" SrcPort 1 DstBlock "Out1" DstPort 1 } } } Block { BlockType SubSystem Name "Beacon memory2" Ports [1, 1, 0, 1] Position [510, 439, 565, 471] TreatAsAtomicUnit on MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off System { Name "Beacon memory2" Location [401, 346, 899, 646] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "In1" Position [110, 103, 140, 117] IconDisplay "Port number" } Block { BlockType TriggerPort Name "Trigger" Ports [] Position [225, 20, 245, 40] StatesWhenEnabling "held" } Block { BlockType Outport Name "Out1" Position [360, 103, 390, 117] IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "In1" SrcPort 1 DstBlock "Out1" DstPort 1 } } } Block { BlockType SubSystem Name "Beacon memory3" Ports [1, 1, 0, 1] Position [510, 509, 565, 541] TreatAsAtomicUnit on MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off System { Name "Beacon memory3" Location [401, 346, 899, 646] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "In1" Position [110, 103, 140, 117] IconDisplay "Port number" } Block { BlockType TriggerPort Name "Trigger" Ports [] Position [225, 20, 245, 40] StatesWhenEnabling "held" } Block { BlockType Outport Name "Out1" Position [360, 103, 390, 117] IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "In1" SrcPort 1 DstBlock "Out1" DstPort 1 } } } Block { BlockType Clock Name "Clock" Position [740, 320, 760, 340] Decimation "10" } Block { BlockType Reference Name "Compare\nTo Constant" Ports [1, 1] Position [35, 164, 100, 196] Orientation "left" SourceBlock "simulink/Logic and Bit\nOperations/Compare" "\nTo Constant" SourceType "Compare To Constant" ShowPortLabels "FromPortIcon" SystemSampleTime "-1" FunctionWithSeparateData off RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" RTWMemSecDataInternal "Inherit from model" RTWMemSecDataParameters "Inherit from model" relop ">=" const "2*pi" LogicOutDataTypeMode "boolean" ZeroCross off } Block { BlockType Reference Name "Compare\nTo Zero" Ports [1, 1] Position [800, 315, 830, 345] SourceBlock "simulink/Logic and Bit\nOperations/Compare" "\nTo Zero" SourceType "Compare To Zero" ShowPortLabels "FromPortIcon" SystemSampleTime "-1" FunctionWithSeparateData off RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" RTWMemSecDataInternal "Inherit from model" RTWMemSecDataParameters "Inherit from model" relop ">" LogicOutDataTypeMode "uint8" ZeroCross off } Block { BlockType Constant Name "Constant1" Position [35, 239, 100, 271] NamePlacement "alternate" Value "rps*2*pi" } Block { BlockType Demux Name "Demux" Ports [1, 4] Position [346, 190, 399, 200] Orientation "down" BackgroundColor "black" NamePlacement "alternate" ShowName off DisplayOption "bar" } Block { BlockType Demux Name "Demux1" Ports [1, 4] Position [421, 190, 474, 200] Orientation "down" BackgroundColor "black" NamePlacement "alternate" ShowName off DisplayOption "bar" } Block { BlockType SubSystem Name "Do not produce\ndata at start. We\nhave to " "wait one turn." Ports [1, 1, 1] Position [825, 374, 925, 416] TreatAsAtomicUnit on MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off System { Name "Do not produce\ndata at start. We\nhave t" "o wait one turn." Location [421, 301, 919, 601] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "In1" Position [110, 103, 140, 117] IconDisplay "Port number" } Block { BlockType EnablePort Name "Enable" Ports [] Position [235, 20, 255, 40] } Block { BlockType Outport Name "Out1" Position [360, 103, 390, 117] IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "In1" SrcPort 1 DstBlock "Out1" DstPort 1 } } } Block { BlockType HitCross Name "Hit \nCrossing" Ports [1, 1] Position [320, 95, 350, 125] AttributesFormatString "ZC:%" HitCrossingDirection "rising" } Block { BlockType SubSystem Name "Individual output" Ports [1, 1, 0, 1] Position [745, 226, 800, 274] TreatAsAtomicUnit on MinAlgLoopOccurrences off RTWSystemCode "Auto" FunctionWithSeparateData off MaskHideContents off System { Name "Individual output" Location [401, 346, 899, 646] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] TiledPageScale 1 ShowPageBoundaries off ZoomFactor "100" Block { BlockType Inport Name "In1" Position [110, 103, 140, 117] IconDisplay "Port number" } Block { BlockType TriggerPort Name "Trigger" Ports [] Position [225, 20, 245, 40] StatesWhenEnabling "held" } Block { BlockType Outport Name "Out1" Position [360, 103, 390, 117] IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "In1" SrcPort 1 DstBlock "Out1" DstPort 1 } } } Block { BlockType Integrator Name "Integrator" Ports [2, 1, 0, 0, 1] Position [130, 238, 180, 307] ExternalReset "rising" ShowStatePort on IgnoreLimit off } Block { BlockType RandomNumber Name "Measurement noise" Position [475, 145, 505, 175] Orientation "left" NamePlacement "alternate" Variance "(noise_stdev/180*pi)^2" Seed "abs(floor(rand(4,1)*10000))" } Block { BlockType Mux Name "Mux" Ports [4, 1] Position [700, 354, 705, 436] ShowName off DisplayOption "bar" } Block { BlockType RateTransition Name "Rate Transition" Position [750, 374, 790, 416] OutPortSampleTime "1/rps" } Block { BlockType RateTransition Name "Rate Transition1" Position [735, 19, 775, 61] OutPortSampleTime "1/rps" } Block { BlockType Selector Name "Selector" Ports [1, 1] Position [585, 91, 625, 129] IndexOptions "Index vector (dialog)" Indices "[1 2 3 4]" OutputSizes "1" InputPortWidth "4" } Block { BlockType Sum Name "Subtract" Ports [2, 1] Position [270, 95, 300, 125] IconShape "round" Inputs "-+|" CollapseMode "All dimensions" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum" Ports [2, 1] Position [480, 240, 500, 260] ShowName off IconShape "round" Inputs "++|" CollapseMode "All dimensions" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [460, 305, 480, 325] ShowName off IconShape "round" Inputs "++|" CollapseMode "All dimensions" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum2" Ports [2, 1] Position [445, 375, 465, 395] ShowName off IconShape "round" Inputs "++|" CollapseMode "All dimensions" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum3" Ports [2, 1] Position [430, 445, 450, 465] ShowName off IconShape "round" Inputs "++|" CollapseMode "All dimensions" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum4" Ports [2, 1] Position [415, 515, 435, 535] ShowName off IconShape "round" Inputs "++|" CollapseMode "All dimensions" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum5" Ports [2, 1] Position [400, 30, 420, 50] ShowName off IconShape "round" Inputs "|++" CollapseMode "All dimensions" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Outport Name "Ideal" Position [855, 33, 885, 47] IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "Individual" Position [875, 243, 905, 257] Port "2" IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "Simultaneous" Position [965, 388, 995, 402] Port "3" IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "Demux1" SrcPort 1 DstBlock "Sum4" DstPort 1 } Line { SrcBlock "Demux1" SrcPort 2 DstBlock "Sum3" DstPort 1 } Line { SrcBlock "Demux1" SrcPort 3 DstBlock "Sum2" DstPort 1 } Line { SrcBlock "Demux" SrcPort 1 Points [0, 289] DstBlock "Beacon memory3" DstPort trigger } Line { SrcBlock "Demux" SrcPort 2 Points [0, 219] DstBlock "Beacon memory2" DstPort trigger } Line { SrcBlock "Demux" SrcPort 3 Points [0, 149] DstBlock "Beacon memory1" DstPort trigger } Line { SrcBlock "Demux" SrcPort 4 Points [0, 79] DstBlock "Beacon memory" DstPort trigger } Line { SrcBlock "Beacon memory3" SrcPort 1 Points [55, 0; 0, -100] DstBlock "Mux" DstPort 4 } Line { SrcBlock "Demux1" SrcPort 4 Points [0, 10] Branch { DstBlock "Sum1" DstPort 1 } Branch { Points [20, 0] DstBlock "Sum" DstPort 1 } } Line { SrcBlock "Sum4" SrcPort 1 DstBlock "Beacon memory3" DstPort 1 } Line { SrcBlock "Selector" SrcPort 1 Points [140, 0] DstBlock "Individual output" DstPort trigger } Line { SrcBlock "Beacon memory1" SrcPort 1 DstBlock "Mux" DstPort 2 } Line { SrcBlock "Integrator" SrcPort state Points [0, -53] DstBlock "Compare\nTo Constant" DstPort 1 } Line { SrcBlock "Constant1" SrcPort 1 DstBlock "Integrator" DstPort 1 } Line { SrcBlock "Compare\nTo Constant" SrcPort 1 Points [-15, 0; 0, 110] DstBlock "Integrator" DstPort 2 } Line { SrcBlock "Integrator" SrcPort 1 Points [20, 0] Branch { Labels [-1, 1] Points [0, -165] DstBlock "Subtract" DstPort 2 } Branch { Labels [1, 0] Points [0, -25] Branch { Points [0, 65] Branch { Points [0, 70] Branch { Points [0, 70] Branch { Points [0, 70] DstBlock "Sum4" DstPort 2 } Branch { DstBlock "Sum3" DstPort 2 } } Branch { DstBlock "Sum2" DstPort 2 } } Branch { DstBlock "Sum1" DstPort 2 } } Branch { DstBlock "Sum" DstPort 2 } } } Line { SrcBlock "Subtract" SrcPort 1 DstBlock "Hit \nCrossing" DstPort 1 } Line { SrcBlock "Hit \nCrossing" SrcPort 1 Points [15, 0] Branch { DstBlock "Selector" DstPort 1 } Branch { Points [0, 65] DstBlock "Demux" DstPort 1 } } Line { SrcBlock "Individual output" SrcPort 1 DstBlock "Individual" DstPort 1 } Line { SrcBlock "Beacon Angles" SrcPort 1 Points [70, 0] Branch { DstBlock "Subtract" DstPort 1 } Branch { DstBlock "Sum5" DstPort 1 } } Line { SrcBlock "Beacon memory" SrcPort 1 Points [40, 0; 0, 50] DstBlock "Mux" DstPort 1 } Line { SrcBlock "Beacon memory2" SrcPort 1 Points [40, 0; 0, -50] DstBlock "Mux" DstPort 3 } Line { SrcBlock "Pos" SrcPort 1 DstBlock "Beacon Angles" DstPort 1 } Line { SrcBlock "Mux" SrcPort 1 DstBlock "Rate Transition" DstPort 1 } Line { Labels [0, 0] SrcBlock "Rate Transition1" SrcPort 1 DstBlock "Ideal" DstPort 1 } Line { SrcBlock "Clock" SrcPort 1 DstBlock "Compare\nTo Zero" DstPort 1 } Line { SrcBlock "Rate Transition" SrcPort 1 DstBlock "Do not produce\ndata at start. We\nhave to " "wait one turn." DstPort 1 } Line { SrcBlock "Do not produce\ndata at start. We\nhave to " "wait one turn." SrcPort 1 DstBlock "Simultaneous" DstPort 1 } Line { SrcBlock "Compare\nTo Zero" SrcPort 1 Points [40, 0] DstBlock "Do not produce\ndata at start. We\nhave to " "wait one turn." DstPort enable } Line { SrcBlock "Sum" SrcPort 1 DstBlock "Individual output" DstPort 1 } Line { SrcBlock "Measurement noise" SrcPort 1 Points [-30, 0] Branch { Points [0, 15] DstBlock "Demux1" DstPort 1 } Branch { Points [-30, 0] DstBlock "Sum5" DstPort 2 } } Line { SrcBlock "Sum3" SrcPort 1 DstBlock "Beacon memory2" DstPort 1 } Line { SrcBlock "Sum2" SrcPort 1 DstBlock "Beacon memory1" DstPort 1 } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Beacon memory" DstPort 1 } Line { SrcBlock "Sum5" SrcPort 1 DstBlock "Rate Transition1" DstPort 1 } } } Block { BlockType "S-Function" Name "S-Function2" Ports [0, 1] Position [35, 124, 95, 156] BackgroundColor "green" NamePlacement "alternate" FunctionName "sf_trgen" Parameters "traj, initpos, constr, start" MaskPromptString "Trajectory|Initial position|Trajectory constrai" "nts|Start time" MaskStyleString "edit,edit,edit,edit" MaskTunableValueString "off,off,off,off" MaskCallbackString "|||" MaskEnableString "on,on,on,on" MaskVisibilityString "on,on,on,on" MaskToolTipString "on,on,on,on" MaskVarAliasString ",,," MaskVariables "traj=@1;initpos=@2;constr=@3;start=@4;" MaskDisplay "disp('Trajectory\\ngenerator')" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" MaskValueString "path|desc.initpos|desc.wayconstraints|3" MaskTabNameString ",,," } Block { BlockType Reference Name "Switch" Ports [2, 1] Position [567, 270, 603, 300] Orientation "down" NamePlacement "alternate" SourceBlock "simulink/Signal\nRouting/Manual Switch" SourceType "Manual Switch" ShowPortLabels "FromPortIcon" SystemSampleTime "-1" FunctionWithSeparateData off RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" RTWMemSecDataInternal "Inherit from model" RTWMemSecDataParameters "Inherit from model" sw "0" action "0" varsize off } Block { BlockType Reference Name "Switch1" Ports [2, 1] Position [412, 270, 448, 300] Orientation "down" SourceBlock "simulink/Signal\nRouting/Manual Switch" SourceType "Manual Switch" ShowPortLabels "FromPortIcon" SystemSampleTime "-1" FunctionWithSeparateData off RTWMemSecFuncInitTerm "Inherit from model" RTWMemSecFuncExecute "Inherit from model" RTWMemSecDataConstants "Inherit from model" RTWMemSecDataInternal "Inherit from model" RTWMemSecDataParameters "Inherit from model" sw "1" action "0" varsize off } Block { BlockType "M-S-Function" Name "draw probability bitmap" Ports [1] Position [725, 413, 815, 447] ForegroundColor "gray" BackgroundColor "black" NamePlacement "alternate" FunctionName "sfdrawbitmap" } Block { BlockType SignalViewerScope Name "Scope" Ports [] Position [20, 15, 60, 55] IOType "viewer" List { ListType IOSignalStrings set0ParseKeys "9" set0Sigs "Switch:o1" } Location [6, 641, 330, 998] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } ShowDataMarkers off ShowLegends off TimeRange "1.5" YMin "0" YMax "7" DataFormat "Array" MaxDataPoints "7500" RefreshTime 0.035000 Disabled off } Block { BlockType SignalViewerScope Name "Scope1" Ports [] Position [20, 15, 60, 55] IOType "viewer" Location [6, 760, 772, 999] Open off NumInputPorts "1" ZoomMode "yonly" List { ListType AxesTitles axes1 "%" } ShowDataMarkers off ShowLegends off TimeRange "1.8" YMin "-4" YMax "4" SaveName "ScopeData1" DataFormat "Array" MaxDataPoints "7500" RefreshTime 0.035000 Disabled off } Block { BlockType SignalViewerScope Name "Scope2" Ports [] Position [20, 15, 60, 55] IOType "viewer" List { ListType IOSignalStrings set0ParseKeys "13" set0Sigs "Controller:o1" } Location [501, 172, 825, 411] Open off NumInputPorts "1" ZoomMode "xonly" List { ListType AxesTitles axes1 "%" } ShowDataMarkers off ShowLegends on LegendLocations "186.25 162.125 118.5 45.62" "5" TimeRange "10" YMax "10" SaveName "ScopeData2" DataFormat "Array" MaxDataPoints "7500" RefreshTime 0.035000 Disabled off } Block { BlockType SignalViewerScope Name "Scope3" Ports [] Position [20, 15, 60, 55] IOType "viewer" List { ListType IOSignalStrings set0ParseKeys "31" set0Sigs "Robot kinematics/speed2wheel:o1" } Location [345, 294, 669, 533] Open off NumInputPorts "1" ZoomMode "xonly" List { ListType AxesTitles axes1 "%" } ShowDataMarkers off ShowLegends off TimeRange "10" YMin "-1" YMax "4" SaveName "ScopeData3" DataFormat "Array" MaxDataPoints "7500" RefreshTime 0.035000 Disabled off } Line { SrcBlock "Controller" SrcPort 1 DstBlock "Robot kinematics" DstPort 1 } Line { Name "Real robot position" SrcBlock "Robot kinematics" SrcPort 1 Points [10, 0] Branch { Labels [2, 0] Points [0, 135] DstBlock "Rate Transition2" DstPort 1 } Branch { Labels [2, 0] Points [0, -45; 300, 0] Branch { Points [0, 90] DstBlock "Graphs" DstPort 1 } Branch { DstBlock "Real\nposition" DstPort 1 } } Branch { DstBlock "Rotating laser" DstPort 1 } } Line { SrcBlock "Clock" SrcPort 1 DstBlock "Display" DstPort 1 } Line { SrcBlock "Manual Switch" SrcPort 1 DstBlock "Controller" DstPort 2 } Line { SrcBlock "Rate Transition1" SrcPort 1 Points [-20, 0; 0, -155] DstBlock "Manual Switch" DstPort 1 } Line { SrcBlock "MCL" SrcPort 2 Points [-75, 0; 0, 65] DstBlock "draw probability bitmap" DstPort 1 } Line { SrcBlock "S-Function2" SrcPort 1 Points [45, 0] Branch { DstBlock "Controller" DstPort 1 } Branch { Points [0, -115] DstBlock "Reference\nposition" DstPort 1 } } Line { SrcBlock "Switch1" SrcPort 1 Points [0, 25] DstBlock "MCL" DstPort 1 } Line { SrcBlock "No odometry" SrcPort 1 Points [-25, 0] DstBlock "Switch1" DstPort 2 } Line { SrcBlock "Rate Transition2" SrcPort 1 Points [0, -30] DstBlock "Manual Switch" DstPort 2 } Line { SrcBlock "Robot kinematics" SrcPort 2 Points [30, 0] DstBlock "Switch1" DstPort 1 } Line { Name "Estimated position" Labels [0, 0] SrcBlock "MCL" SrcPort 1 Points [-90, 0] Branch { DstBlock "Rate Transition1" DstPort 1 } Branch { Labels [3, 0] Points [0, 70; 580, 0; 0, -80] Branch { Points [0, -95] DstBlock "Graphs" DstPort 2 } Branch { DstBlock "Estimated\nposition" DstPort 1 } } } Line { SrcBlock "No laser" SrcPort 1 Points [20, 0] DstBlock "Switch" DstPort 1 } Line { SrcBlock "Switch" SrcPort 1 Points [0, 15] Branch { Points [0, 45] DstBlock "MCL" DstPort 2 } Branch { Points [65, 0; 0, -190] DstBlock "Real\nposition" DstPort 2 } } Line { SrcBlock "Rotating laser" SrcPort 2 Points [20, 0] DstBlock "Switch" DstPort 2 } } } # Finite State Machines # # Stateflow Version 6.6 (R2007a) dated Jan 30 2007, 01:07:16 # # Stateflow { machine { id 1 name "reg_mcl" created "29-Mar-2007 23:42:20" isLibrary 0 firstTarget 2 sfVersion 66014000 } target { id 2 name "sfun" description "Default Simulink S-Function Target." machine 1 linkNode [1 0 0] } }