Model { Name "vrcrane_joystick" Version 6.0 GraphicalInterface { NumRootInports 0 NumRootOutports 0 ParameterArgumentNames "" ComputedModelVersion "1.164" NumModelReferences 0 NumTestPointedSignals 0 } PostLoadFcn "Ra=2.6;\nLa=0.012;\nB=1e-1;\nKt=1e2;\nKv=3e-2;\nKg=" "1e-3;\nJ=0.1;\ng=9.80665;\nm_head=100;\nGamma=10;" 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 RecordCoverage off CovPath "/" CovSaveName "covdata" CovMetricSettings "dw" CovNameIncrementing off CovHtmlReporting on covSaveCumulativeToWorkspaceVar on CovSaveSingleToWorkspaceVar on CovCumulativeVarName "covCumulativeData" CovCumulativeReport off CovReportOnPause 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 Created "Tue Jan 20 18:26:50 2004" Creator "Danek" UpdateHistory "UpdateHistoryNever" ModifiedByFormat "%" LastModifiedBy "Danek" ModifiedDateFormat "%" LastModifiedDate "Wed Apr 14 13:18:07 2004" ModelVersionFormat "1.%" ConfigurationManager "None" LinearizationMsg "none" Profile off ParamWorkspaceSource "MATLABWorkspace" AccelSystemTargetFile "accel.tlc" AccelTemplateMakefile "accel_default_tmf" AccelMakeCommand "make_rtw" TryForcingSFcnDF off 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 BufferReuse on ProdHWDeviceType "32-bit Generic" ShowModelReferenceBlockVersion off ShowModelReferenceBlockIO off Array { Type "Handle" Dimension 1 Simulink.ConfigSet { $ObjectID 1 Version "1.0.4" Array { Type "Handle" Dimension 7 Simulink.SolverCC { $ObjectID 2 Version "1.0.4" StartTime "0.0" StopTime "inf" AbsTol "auto" FixedStep "auto" InitialStep "auto" MaxNumMinSteps "-1" MaxOrder 5 ExtrapolationOrder 4 NumberNewtonIterations 1 MaxStep "auto" MinStep "auto" RelTol "1e-3" SolverMode "Auto" Solver "ode45" ZeroCrossControl "UseLocalSettings" PositivePriorityOrder off AutoInsertRateTranBlk off SampleTimeConstraint "Unconstrained" RateTranMode "Deterministic" } Simulink.DataIOCC { $ObjectID 3 Version "1.0.4" 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 SaveTime on StateSaveName "xout" TimeSaveName "tout" OutputSaveName "yout" SignalLoggingName "logsOut" OutputOption "RefineOutputTimes" OutputTimes "[]" Refine "1" } Simulink.OptimizationCC { $ObjectID 4 Array { Type "Cell" Dimension 4 Cell "ZeroExternalMemoryAtStartup" Cell "ZeroInternalMemoryAtStartup" Cell "InitFltsAndDblsToZero" Cell "OptimizeModelRefInitCode" PropName "DisabledProps" } Version "1.0.4" BlockReduction on BooleanDataType on ConditionallyExecuteInputs on ConditionalExecOptimization "on_for_testing" InlineParams off InlineInvariantSignals on OptimizeBlockIOStorage on BufferReuse on EnforceIntegerDowncast on ExpressionFolding on FoldNonRolledExpr on LocalBlockOutputs on ParameterPooling on RollThreshold 5 SystemCodeInlineAuto off StateBitsets off DataBitsets off UseTempVars off ZeroExternalMemoryAtStartup on ZeroInternalMemoryAtStartup on InitFltsAndDblsToZero on NoFixptDivByZeroProtection off OptimizeModelRefInitCode off LifeSpan "inf" } Simulink.DebuggingCC { $ObjectID 5 Version "1.0.4" ConsistencyChecking "none" ArrayBoundsChecking "none" AlgebraicLoopMsg "warning" ArtificialAlgebraicLoopMsg "warning" CheckSSInitialOutputMsg on CheckExecutionContextPreStartOutputMsg on CheckExecutionContextRuntimeOutputMsg on SignalResolutionControl "TryResolveAllWithWarning" BlockPriorityViolationMsg "warning" MinStepSizeMsg "warning" SolverPrmCheckMsg "warning" InheritedTsInSrcMsg "warning" DiscreteInheritContinuousMsg "warning" MultiTaskRateTransMsg "error" SingleTaskRateTransMsg "none" TasksWithSamePriorityMsg "warning" CheckMatrixSingularityMsg "none" IntegerOverflowMsg "warning" Int32ToFloatConvMsg "warning" ParameterDowncastMsg "error" ParameterOverflowMsg "error" ParameterPrecisionLossMsg "warning" UnderSpecifiedDataTypeMsg "none" UnnecessaryDatatypeConvMsg "none" VectorMatrixConversionMsg "none" InvalidFcnCallConnMsg "error" SignalLabelMismatchMsg "none" UnconnectedInputMsg "warning" UnconnectedOutputMsg "warning" UnconnectedLineMsg "warning" SFcnCompatibilityMsg "none" UniqueDataStoreMsg "none" RootOutportRequireBusObject "warning" AssertControl "UseLocalSettings" EnableOverflowDetection off ModelReferenceIOMsg "none" ModelReferenceVersionMismatchMessage "none" ModelReferenceIOMismatchMessage "none" ModelReferenceCSMismatchMessage "none" ModelReferenceSimTargetVerbose off UnknownTsInhSupMsg "warning" ModelReferenceDataLoggingMessage "warning" ModelReferenceSymbolNameMessage "warning" } Simulink.HardwareCC { $ObjectID 6 Version "1.0.4" 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.0.4" UpdateModelReferenceTargets "IfOutOfDate" 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.0.4" SystemTargetFile "grt.tlc" GenCodeOnly off MakeCommand "make_rtw" 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 Array { Type "Handle" Dimension 2 Simulink.CodeAppCC { $ObjectID 9 Array { Type "Cell" Dimension 8 Cell "IgnoreCustomStorageClasses" Cell "InsertBlockDesc" Cell "SFDataObjDesc" Cell "SimulinkDataObjDesc" Cell "DefineNamingRule" Cell "SignalNamingRule" Cell "ParamNamingRule" Cell "InlinedPrmAccess" PropName "DisabledProps" } Version "1.0.4" 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 CustomSymbolStr "$R$N$M" MangleLength 1 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 15 Cell "IncludeMdlTerminateFcn" Cell "CombineOutputUpdateFcns" Cell "SuppressErrorStatus" Cell "ERTCustomFileBanners" Cell "GenerateSampleERTMain" Cell "MultiInstanceERTCode" Cell "PurelyIntegerCode" Cell "SupportNonFinite" Cell "SupportComplex" Cell "SupportAbsoluteTime" Cell "SupportContinuousTime" Cell "SupportNonInlinedSFcns" Cell "LifeSpan" Cell "NoFixptDivByZeroProtection" Cell "CustomSymbolStr" PropName "DisabledProps" } Version "1.0.4" TargetFcnLib "ansi_tfl_tmw.mat" GenFloatMathFcnCalls "ANSI_C" UtilityFuncGeneration "Auto" GenerateFullHeader on GenerateSampleERTMain 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 ExtMode off ExtModeStaticAlloc off ExtModeTesting off ExtModeStaticAllocSize 1000000 ExtModeTransport 0 ExtModeMexFile "ext_comm" RTWCAPISignals off RTWCAPIParams off RTWCAPIStates off GenerateASAP2 off } PropName "Components" } } PropName "Components" } Name "Configuration" SimulationMode "normal" CurrentDlgPage "Solver" } PropName "ConfigurationSets" } Simulink.ConfigSet { $PropName "ActiveConfigurationSet" $ObjectID 1 } BlockDefaults { Orientation "right" ForegroundColor "black" BackgroundColor "white" DropShadow off NamePlacement "normal" FontName "Helvetica" FontSize 10 FontWeight "normal" FontAngle "normal" ShowName on } BlockParameterDefaults { Block { BlockType Assignment InputType "Vector" IndexMode "One-based" IndexIsStartValue off ElementSrc "Internal" Elements "1" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" OutputDimensions "[1 1]" DiagnosticForDimensions "None" SampleTime "-1" } Block { BlockType Constant Value "1" VectorParams1D on OutDataTypeMode "Inherit from 'Constant value'" OutDataType "sfix(16)" ConRadixGroup "Use specified scaling" OutScaling "2^0" SampleTime "inf" } Block { BlockType DataTypeConversion OutDataTypeMode "Inherit via back propagation" OutDataType "sfix(16)" OutScaling "2^0" LockScale off ConvertRealWorld "Real World Value (RWV)" RndMeth "Zero" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType DeadZone LowerValue "-0.5" UpperValue "0.5" SaturateOnIntegerOverflow on LinearizeAsGain on ZeroCross on SampleTime "-1" } Block { BlockType Demux Outputs "4" DisplayOption "none" BusSelectionMode off } Block { BlockType Derivative LinearizePole "inf" } Block { BlockType Display Format "short" Decimation "10" Floating off SampleTime "-1" } Block { BlockType From IconDisplay "Tag" } Block { BlockType Fcn Expr "sin(u[1])" SampleTime "-1" } 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 Goto IconDisplay "Tag" } Block { BlockType Inport Port "1" BusObject "BusObject" BusOutputAsStruct off PortDimensions "-1" SampleTime "-1" DataType "auto" OutDataType "sfix(16)" OutScaling "2^0" SignalType "auto" SamplingMode "auto" Interpolate on } Block { BlockType Integrator ExternalReset "none" InitialConditionSource "internal" InitialCondition "0" LimitOutput off UpperSaturationLimit "inf" LowerSaturationLimit "-inf" ShowSaturationPort off ShowStatePort off AbsoluteTolerance "auto" ZeroCross on } Block { BlockType Outport Port "1" 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 Product Inputs "2" Multiplication "Element-wise(.*)" InputSameDT on OutDataTypeMode "Same as first input" OutDataType "sfix(16)" OutScaling "2^0" LockScale off RndMeth "Zero" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType Saturate UpperLimit "0.5" LowerLimit "-0.5" LinearizeAsGain on ZeroCross on SampleTime "-1" } Block { BlockType Selector InputType "Vector" IndexMode "One-based" ElementSrc "Internal" Elements "1" RowSrc "Internal" Rows "1" ColumnSrc "Internal" Columns "1" InputPortWidth "-1" IndexIsStartValue off OutputPortSize "1" } Block { BlockType "S-Function" FunctionName "system" PortCounts "[]" SFunctionModules "''" } Block { BlockType SubSystem ShowPortLabels on Permissions "ReadWrite" PermitHierarchicalResolution "All" SystemSampleTime "-1" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" SimViewingDevice off DataTypeOverride "UseLocalSettings" MinMaxOverflowLogging "UseLocalSettings" } Block { BlockType Sum IconShape "rectangular" Inputs "++" InputSameDT on OutDataTypeMode "Same as first input" OutDataType "sfix(16)" OutScaling "2^0" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType Terminator } Block { BlockType TransferFcn Numerator "[1]" Denominator "[1 2 1]" AbsoluteTolerance "auto" Realization "auto" } Block { BlockType TriggerPort TriggerType "rising" StatesWhenEnabling "inherit" ShowOutputPort off OutputDataType "auto" SampleTimeType "triggered" SampleTime "1" ZeroCross on } Block { BlockType Trigonometry Operator "sin" OutputSignalType "auto" SampleTime "-1" } Block { BlockType ZeroOrderHold SampleTime "1" } } AnnotationDefaults { HorizontalAlignment "center" VerticalAlignment "middle" ForegroundColor "black" BackgroundColor "white" DropShadow off FontName "Helvetica" FontSize 10 FontWeight "normal" FontAngle "normal" } LineDefaults { FontName "Helvetica" FontSize 9 FontWeight "normal" FontAngle "normal" } System { Name "vrcrane_joystick" Location [217, 187, 889, 676] Open on ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" ReportName "simulink-default.rpt" Block { BlockType Display Name "Acquired SetPoint" Ports [1] Position [45, 151, 130, 219] Orientation "left" Decimation "1" } Block { BlockType SubSystem Name "Crane Dynamics" Ports [1, 5] Position [260, 113, 360, 257] TreatAsAtomicUnit off MinAlgLoopOccurrences off PropExecContextAcrossSSBoundary on RTWSystemCode "Auto" System { Name "Crane Dynamics" Location [380, 211, 945, 549] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "SetPoint" Position [90, 163, 120, 177] IconDisplay "Port number" LatchInput off } Block { BlockType SubSystem Name "Cable_Dynamics" Ports [1, 1] Position [190, 158, 250, 182] TreatAsAtomicUnit off MinAlgLoopOccurrences off PropExecContextAcrossSSBoundary on RTWSystemCode "Auto" System { Name "Cable_Dynamics" Location [218, 210, 548, 303] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "SP_Y" Position [25, 33, 55, 47] IconDisplay "Port number" LatchInput off } Block { BlockType Integrator Name "Integrator" Ports [1, 1] Position [210, 25, 240, 55] ShowName off InitialCondition "14.6" LimitOutput on UpperSaturationLimit "14.6" LowerSaturationLimit "4.6" } Block { BlockType Sum Name "Sum" Ports [2, 1] Position [165, 30, 185, 50] ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Fcn Name "VRML Y<>L" Position [80, 28, 135, 52] Expr "14.6-u" SampleTime "0" } Block { BlockType Outport Name "L" Position [275, 33, 305, 47] IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "Sum" SrcPort 1 DstBlock "Integrator" DstPort 1 } Line { SrcBlock "VRML Y<>L" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { SrcBlock "Integrator" SrcPort 1 Points [0, 0; 10, 0] Branch { Points [0, 25] DstBlock "Sum" DstPort 2 } Branch { DstBlock "L" DstPort 1 } } Line { SrcBlock "SP_Y" SrcPort 1 DstBlock "VRML Y<>L" DstPort 1 } Annotation { Name "L" Position [267, 49] } } } Block { BlockType SubSystem Name "Crane_Dynamics_X" Ports [3, 2] Position [330, 26, 450, 104] TreatAsAtomicUnit off MinAlgLoopOccurrences off PropExecContextAcrossSSBoundary on RTWSystemCode "Auto" System { Name "Crane_Dynamics_X" Location [120, 79, 853, 304] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "Load Mass" Position [355, 33, 385, 47] IconDisplay "Port number" LatchInput off } Block { BlockType Inport Name "Cable Length" Position [330, 68, 360, 82] Port "2" IconDisplay "Port number" LatchInput off } Block { BlockType Inport Name "SetPoint_X" Position [40, 43, 70, 57] Port "3" IconDisplay "Port number" LatchInput off } Block { BlockType Reference Name "C1_P" Ports [1, 1] Position [75, 95, 105, 125] SourceBlock "simulink_extras/Additional\nLinear/PID " "Controller" SourceType "PID Controller" ShowPortLabels on P "-20" I "0" D "0" } Block { BlockType Reference Name "C2_PI" Ports [1, 1] Position [165, 95, 195, 125] SourceBlock "simulink_extras/Additional\nLinear/PID " "Controller" SourceType "PID Controller" ShowPortLabels on P "2.5" I "0" D "0" } Block { BlockType Reference Name "C3_P" Ports [1, 1] Position [270, 95, 300, 125] SourceBlock "simulink_extras/Additional\nLinear/PID " "Controller" SourceType "PID Controller" ShowPortLabels on P "5" I "0" D "0" } Block { BlockType SubSystem Name "Motor_Crane_X" Ports [3, 5] Position [445, 24, 545, 126] TreatAsAtomicUnit off MinAlgLoopOccurrences off PropExecContextAcrossSSBoundary on RTWSystemCode "Auto" System { Name "Motor_Crane_X" Location [44, 76, 958, 697] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "Load Mass" Position [25, 83, 55, 97] IconDisplay "Port number" LatchInput off } Block { BlockType Inport Name "Cable Length" Position [25, 138, 55, 152] Port "2" IconDisplay "Port number" LatchInput off } Block { BlockType Inport Name "VaX" Position [250, 653, 280, 667] Port "3" IconDisplay "Port number" LatchInput off } Block { BlockType From Name " " Position [95, 106, 145, 134] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "thdot2" } Block { BlockType Product Name " 1" Ports [2, 1] Position [110, 33, 125, 57] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "Divide" Ports [2, 1] Position [295, 432, 325, 463] ShowName off Inputs "*/" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "Divide1" Ports [3, 1] Position [710, 169, 740, 201] ShowName off Inputs "*//" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType From Name "From1" Position [170, 30, 230, 60] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "sincosth" } Block { BlockType From Name "From3" Position [95, 155, 155, 185] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "costheta" } Block { BlockType From Name "From4" Position [25, 25, 70, 55] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "sin2theta" } Block { BlockType From Name "From5" Position [400, 240, 460, 270] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "costheta" } Block { BlockType From Name "From6" Position [400, 146, 440, 174] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "sintheta" } Block { BlockType Gain Name "G1" Position [290, 590, 340, 625] Orientation "down" NamePlacement "alternate" ShowName off Gain "Kv/Kg" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "G2" Position [345, 644, 395, 676] ShowName off Gain "1/La" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "G3" Position [405, 695, 435, 725] Orientation "left" ShowName off Gain "Ra" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "G4" Position [535, 644, 585, 676] ShowName off Gain "Kt/Kg" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain" Position [765, 170, 795, 200] ShowName off Gain "-1" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain1" Position [770, 264, 850, 296] Orientation "left" ShowName off Gain "Gamma" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain5" Position [200, 522, 265, 558] Orientation "left" ShowName off Gain "B/Kg^2" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain6" Position [465, 144, 500, 176] ShowName off Gain "g" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Goto Name "Goto1" Position [1240, 214, 1305, 246] DialogController "Simulink.DDGSource" GotoTag "sin2theta" TagVisibility "local" } Block { BlockType Goto Name "Goto2" Position [1240, 168, 1305, 202] DialogController "Simulink.DDGSource" GotoTag "sintheta" TagVisibility "local" } Block { BlockType Goto Name "Goto3" Position [1245, 113, 1305, 147] DialogController "Simulink.DDGSource" GotoTag "sincosth" TagVisibility "local" } Block { BlockType Goto Name "Goto4" Position [1245, 65, 1305, 95] DialogController "Simulink.DDGSource" GotoTag "costheta" TagVisibility "local" } Block { BlockType Goto Name "Goto5" Position [1025, 109, 1075, 141] DialogController "Simulink.DDGSource" GotoTag "thdot2" TagVisibility "local" } Block { BlockType Product Name "M0" Ports [2, 1] Position [250, 44, 265, 66] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M1" Ports [2, 1] Position [325, 48, 340, 72] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M2" Ports [2, 1] Position [210, 113, 225, 137] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M3" Ports [2, 1] Position [210, 163, 225, 187] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M4" Ports [2, 1] Position [485, 239, 500, 261] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M6" Ports [2, 1] Position [430, 83, 445, 107] Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M7" Ports [2, 1] Position [555, 153, 570, 182] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "Product" Ports [2, 1] Position [1190, 312, 1205, 343] ShowName off InputSameDT off RndMeth "Floor" } Block { BlockType Sum Name "Sum" Ports [3, 1] Position [305, 650, 325, 670] ShowName off IconShape "round" Inputs "-+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [185, 360, 205, 380] ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum2" Ports [2, 1] Position [265, 140, 285, 160] ShowName off IconShape "round" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum3" Ports [2, 1] Position [150, 285, 170, 305] ShowName off IconShape "round" Inputs "++|" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum4" Ports [2, 1] Position [245, 360, 265, 380] ShowName off IconShape "round" Inputs "++|" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum5" Ports [2, 1] Position [70, 210, 90, 230] ShowName off IconShape "round" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum6" Ports [4, 1] Position [600, 153, 620, 197] ShowName off Inputs "++++" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum7" Ports [2, 1] Position [1210, 390, 1230, 410] ShowName off IconShape "round" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Trigonometry Name "TF1" Ports [1, 1] Position [1120, 170, 1150, 200] } Block { BlockType Trigonometry Name "TF2" Ports [1, 1] Position [1120, 65, 1150, 95] Operator "cos" } Block { BlockType Constant Name "g" Position [25, 175, 65, 205] Value "g" } Block { BlockType Integrator Name "ia" Ports [1, 1] Position [440, 645, 470, 675] } Block { BlockType Constant Name "m+J/kg2" Position [25, 278, 60, 312] Value "m_head+J/Kg^2" } Block { BlockType Product Name "sin2theta" Ports [2, 1] Position [1190, 212, 1205, 243] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "sincostheta" Ports [2, 1] Position [1190, 113, 1205, 142] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "thdot2" Ports [2, 1] Position [975, 107, 1005, 138] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Integrator Name "theta" Ports [1, 1] Position [1000, 170, 1030, 200] } Block { BlockType Integrator Name "theta dot" Ports [1, 1] Position [875, 170, 905, 200] } Block { BlockType Integrator Name "x dot" Ports [1, 1] Position [385, 435, 415, 465] } Block { BlockType Integrator Name "x_cat" Ports [1, 1] Position [505, 435, 535, 465] } Block { BlockType Outport Name "X_Head" Position [615, 488, 645, 502] IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "V_Head_X" Position [535, 533, 565, 547] Port "2" IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "ThetaX" Position [1125, 258, 1155, 272] Port "3" IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "DeltaX" Position [1240, 323, 1270, 337] Port "4" IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "X_Load" Position [1250, 393, 1280, 407] Port "5" IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "G1" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { SrcBlock "Sum" SrcPort 1 DstBlock "G2" DstPort 1 } Line { SrcBlock "G2" SrcPort 1 DstBlock "ia" DstPort 1 } Line { SrcBlock "ia" SrcPort 1 Points [0, 0; 55, 0] Branch { Points [-20, 0; 0, 50] DstBlock "G3" DstPort 1 } Branch { DstBlock "G4" DstPort 1 } } Line { SrcBlock "G3" SrcPort 1 Points [-85, 0] DstBlock "Sum" DstPort 3 } Line { SrcBlock "x dot" SrcPort 1 Points [0, 0; 40, 0] Branch { DstBlock "x_cat" DstPort 1 } Branch { Points [0, 90] Branch { Labels [1, 0] Points [-145, 0] Branch { DstBlock "G1" DstPort 1 } Branch { DstBlock "Gain5" DstPort 1 } } Branch { DstBlock "V_Head_X" DstPort 1 } } } Line { SrcBlock "theta" SrcPort 1 Points [70, 0; 0, -5] Branch { Points [0, 0] Branch { Points [0, 85] DstBlock "ThetaX" DstPort 1 } Branch { DstBlock "TF1" DstPort 1 } } Branch { DstBlock "TF2" DstPort 1 } } Line { SrcBlock "theta dot" SrcPort 1 Points [45, 0] Branch { DstBlock "theta" DstPort 1 } Branch { Points [0, -55] Branch { Points [0, 0] DstBlock "thdot2" DstPort 2 } Branch { Points [0, -15] DstBlock "thdot2" DstPort 1 } } Branch { Points [0, 95] DstBlock "Gain1" DstPort 1 } } Line { SrcBlock "G4" SrcPort 1 Points [10, 0; 0, 80; -470, 0; 0, -370] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "Divide" SrcPort 1 DstBlock "x dot" DstPort 1 } Line { SrcBlock "Gain5" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "sin2theta" SrcPort 1 DstBlock "Goto1" DstPort 1 } Line { SrcBlock "sincostheta" SrcPort 1 DstBlock "Goto3" DstPort 1 } Line { SrcBlock "From1" SrcPort 1 DstBlock "M0" DstPort 1 } Line { SrcBlock "Load Mass" SrcPort 1 Points [20, 0] Branch { Points [0, 0] Branch { DstBlock "Sum5" DstPort 1 } Branch { Points [155, 0] DstBlock "M0" DstPort 2 } } Branch { Points [0, -40] DstBlock " 1" DstPort 2 } } Line { SrcBlock "thdot2" SrcPort 1 DstBlock "Goto5" DstPort 1 } Line { SrcBlock "M0" SrcPort 1 Points [10, 0; 15, 0] Branch { DstBlock "M1" DstPort 1 } Branch { Points [0, -20; 110, 0; 0, 55] DstBlock "M6" DstPort 1 } } Line { SrcBlock " " SrcPort 1 DstBlock "M2" DstPort 1 } Line { SrcBlock "From3" SrcPort 1 DstBlock "M3" DstPort 1 } Line { SrcBlock "g" SrcPort 1 Points [125, 0] DstBlock "M3" DstPort 2 } Line { SrcBlock "M3" SrcPort 1 DstBlock "Sum2" DstPort 2 } Line { SrcBlock "Sum2" SrcPort 1 Points [10, 0; 0, -85] DstBlock "M1" DstPort 2 } Line { SrcBlock "From4" SrcPort 1 DstBlock " 1" DstPort 1 } Line { SrcBlock " 1" SrcPort 1 Points [30, 0] DstBlock "Sum3" DstPort 1 } Line { SrcBlock "Sum3" SrcPort 1 Points [100, 0] Branch { Points [360, 0; 0, -110] DstBlock "Divide1" DstPort 2 } Branch { Points [-5, 0; 0, 160] DstBlock "Divide" DstPort 2 } } Line { SrcBlock "Sum4" SrcPort 1 Points [10, 0] DstBlock "Divide" DstPort 1 } Line { SrcBlock "M1" SrcPort 1 Points [35, 0; 0, 180; -125, 0] DstBlock "Sum4" DstPort 1 } Line { SrcBlock "Sum1" SrcPort 1 Points [5, 0] Branch { DstBlock "Sum4" DstPort 2 } Branch { Points [0, -125] DstBlock "M4" DstPort 1 } } Line { SrcBlock "M2" SrcPort 1 Points [10, 0] Branch { DstBlock "Sum2" DstPort 1 } Branch { Points [0, -25] DstBlock "M6" DstPort 2 } } Line { SrcBlock "M6" SrcPort 1 Points [135, 0] DstBlock "Sum6" DstPort 1 } Line { SrcBlock "From5" SrcPort 1 DstBlock "M4" DstPort 2 } Line { SrcBlock "Sum5" SrcPort 1 Points [445, 0] DstBlock "M7" DstPort 2 } Line { SrcBlock "From6" SrcPort 1 DstBlock "Gain6" DstPort 1 } Line { SrcBlock "Gain6" SrcPort 1 DstBlock "M7" DstPort 1 } Line { SrcBlock "M7" SrcPort 1 DstBlock "Sum6" DstPort 2 } Line { SrcBlock "M4" SrcPort 1 Points [80, 0] DstBlock "Sum6" DstPort 3 } Line { SrcBlock "Sum6" SrcPort 1 DstBlock "Divide1" DstPort 1 } Line { SrcBlock "Cable Length" SrcPort 1 Points [105, 0] Branch { Points [30, 0] DstBlock "M2" DstPort 2 } Branch { Points [0, 80; 530, 0] Branch { DstBlock "Divide1" DstPort 3 } Branch { Points [0, 110] DstBlock "Product" DstPort 2 } } } Line { SrcBlock "Divide1" SrcPort 1 DstBlock "Gain" DstPort 1 } Line { SrcBlock "Gain" SrcPort 1 DstBlock "theta dot" DstPort 1 } Line { SrcBlock "x_cat" SrcPort 1 Points [60, 0] Branch { DstBlock "X_Head" DstPort 1 } Branch { Points [620, 0] DstBlock "Sum7" DstPort 2 } } Line { SrcBlock "VaX" SrcPort 1 DstBlock "Sum" DstPort 2 } Line { SrcBlock "m+J/kg2" SrcPort 1 Points [15, 0] Branch { DstBlock "Sum3" DstPort 2 } Branch { DstBlock "Sum5" DstPort 2 } } Line { SrcBlock "Product" SrcPort 1 Points [10, 0] Branch { DstBlock "DeltaX" DstPort 1 } Branch { DstBlock "Sum7" DstPort 1 } } Line { SrcBlock "TF2" SrcPort 1 Points [10, 0] Branch { DstBlock "Goto4" DstPort 1 } Branch { Points [0, 40] DstBlock "sincostheta" DstPort 1 } } Line { SrcBlock "TF1" SrcPort 1 Points [10, 0] Branch { DstBlock "Goto2" DstPort 1 } Branch { Points [0, -50] DstBlock "sincostheta" DstPort 2 } Branch { Points [0, 35] Branch { Points [0, 15] Branch { Points [0, 0] DstBlock "sin2theta" DstPort 2 } Branch { Points [0, 85] DstBlock "Product" DstPort 1 } } Branch { DstBlock "sin2theta" DstPort 1 } } } Line { SrcBlock "Sum7" SrcPort 1 DstBlock "X_Load" DstPort 1 } Line { SrcBlock "Gain1" SrcPort 1 Points [-200, 0; 0, -90] DstBlock "Sum6" DstPort 4 } Annotation { Name "i dot" Position [417, 670] } Annotation { Name "i = x5" Position [490, 671] } Annotation { Name "x = x1 = y1" Position [568, 435] } Annotation { Name "v = x2 = x dot" Position [452, 433] } Annotation { Name "theta = x3 = y3" Position [1076, 195] } Annotation { Name "theta dot = x4" Position [952, 194] } Annotation { Name "x dot dot" Position [350, 434] } Annotation { Name "th dot dot" Position [829, 191] } Annotation { Name "Damping" Position [739, 287] } } } Block { BlockType Saturate Name "Saturation" Position [390, 95, 420, 125] ShowName off UpperLimit "50" LowerLimit "-50" } Block { BlockType Sum Name "Sum" Ports [3, 1] Position [125, 100, 145, 120] NamePlacement "alternate" ShowName off IconShape "round" Inputs "+--" } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [220, 100, 240, 120] NamePlacement "alternate" ShowName off IconShape "round" Inputs "|+-" } Block { BlockType Terminator Name "Terminator" Position [565, 105, 585, 125] ShowName off } Block { BlockType Terminator Name "Terminator1" Position [565, 85, 585, 105] ShowName off } Block { BlockType Outport Name "Crane_X" Position [655, 28, 685, 42] IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "Theta_X" Position [655, 68, 685, 82] Port "2" IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "Motor_Crane_X" SrcPort 1 Points [0, 0; 65, 0] Branch { DstBlock "Crane_X" DstPort 1 } Branch { Points [0, 0; 0, 145; -480, 0] DstBlock "Sum" DstPort 3 } } Line { SrcBlock "Load Mass" SrcPort 1 DstBlock "Motor_Crane_X" DstPort 1 } Line { SrcBlock "Motor_Crane_X" SrcPort 2 Points [50, 0; 0, 105; -370, 0] DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Cable Length" SrcPort 1 DstBlock "Motor_Crane_X" DstPort 2 } Line { SrcBlock "Motor_Crane_X" SrcPort 3 Points [0, 0; 80, 0] Branch { DstBlock "Theta_X" DstPort 1 } Branch { Points [0, 0; 0, 115; -570, 0] DstBlock "C1_P" DstPort 1 } } Line { SrcBlock "Motor_Crane_X" SrcPort 4 DstBlock "Terminator1" DstPort 1 } Line { SrcBlock "Motor_Crane_X" SrcPort 5 DstBlock "Terminator" DstPort 1 } Line { SrcBlock "SetPoint_X" SrcPort 1 Points [60, 0] DstBlock "Sum" DstPort 1 } Line { SrcBlock "Sum" SrcPort 1 DstBlock "C2_PI" DstPort 1 } Line { SrcBlock "C2_PI" SrcPort 1 DstBlock "Sum1" DstPort 1 } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "C3_P" DstPort 1 } Line { SrcBlock "Saturation" SrcPort 1 DstBlock "Motor_Crane_X" DstPort 3 } Line { SrcBlock "C3_P" SrcPort 1 DstBlock "Saturation" DstPort 1 } Line { SrcBlock "C1_P" SrcPort 1 DstBlock "Sum" DstPort 2 } } } Block { BlockType SubSystem Name "Crane_Dynamics_Z" Ports [3, 2] Position [330, 221, 450, 299] TreatAsAtomicUnit off MinAlgLoopOccurrences off PropExecContextAcrossSSBoundary on RTWSystemCode "Auto" System { Name "Crane_Dynamics_Z" Location [147, 336, 923, 578] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "Load Mass" Position [350, 38, 380, 52] IconDisplay "Port number" LatchInput off } Block { BlockType Inport Name "Cable Length" Position [305, 73, 335, 87] Port "2" IconDisplay "Port number" LatchInput off } Block { BlockType Inport Name "SetPoint_Z" Position [40, 48, 70, 62] Port "3" IconDisplay "Port number" LatchInput off } Block { BlockType Gain Name "+Theta_Z in VRML\nrepresented by\nrotat" "ion about -X" Position [640, 65, 670, 95] Gain "-1" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Reference Name "C1_P" Ports [1, 1] Position [45, 100, 75, 130] SourceBlock "simulink_extras/Additional\nLinear/PID " "Controller" SourceType "PID Controller" ShowPortLabels on P "-20" I "0" D "0" } Block { BlockType Reference Name "C2_PI" Ports [1, 1] Position [160, 100, 190, 130] SourceBlock "simulink_extras/Additional\nLinear/PID " "Controller" SourceType "PID Controller" ShowPortLabels on P "2.5" I "0" D "0" } Block { BlockType Reference Name "C3_P" Ports [1, 1] Position [265, 100, 295, 130] SourceBlock "simulink_extras/Additional\nLinear/PID " "Controller" SourceType "PID Controller" ShowPortLabels on P "5" I "0" D "0" } Block { BlockType SubSystem Name "Motor_Crane_Z" Ports [3, 5] Position [405, 29, 505, 131] TreatAsAtomicUnit off MinAlgLoopOccurrences off PropExecContextAcrossSSBoundary on RTWSystemCode "Auto" System { Name "Motor_Crane_Z" Location [135, 79, 916, 692] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "Load Mass" Position [25, 83, 55, 97] IconDisplay "Port number" LatchInput off } Block { BlockType Inport Name "Cable Length" Position [25, 138, 55, 152] Port "2" IconDisplay "Port number" LatchInput off } Block { BlockType Inport Name "VaZ" Position [250, 653, 280, 667] Port "3" IconDisplay "Port number" LatchInput off } Block { BlockType From Name " " Position [95, 106, 145, 134] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "thdot2" } Block { BlockType Product Name " 1" Ports [2, 1] Position [110, 33, 125, 57] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "Divide" Ports [2, 1] Position [295, 432, 325, 463] ShowName off Inputs "*/" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "Divide1" Ports [3, 1] Position [710, 164, 740, 196] ShowName off Inputs "*//" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType From Name "From1" Position [170, 30, 230, 60] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "sincosth" } Block { BlockType From Name "From3" Position [95, 155, 155, 185] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "costheta" } Block { BlockType From Name "From4" Position [25, 25, 70, 55] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "sin2theta" } Block { BlockType From Name "From5" Position [400, 240, 460, 270] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "costheta" } Block { BlockType From Name "From6" Position [390, 140, 440, 170] ShowName off DialogController "Simulink.DDGSource" CloseFcn "tagdialog Close" GotoTag "sintheta" } Block { BlockType Gain Name "G1" Position [290, 590, 340, 625] Orientation "down" NamePlacement "alternate" ShowName off Gain "Kv/Kg" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "G2" Position [345, 644, 395, 676] ShowName off Gain "1/La" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "G3" Position [405, 695, 435, 725] Orientation "left" ShowName off Gain "Ra" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "G4" Position [535, 644, 585, 676] ShowName off Gain "Kt/Kg" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain" Position [765, 165, 795, 195] ShowName off Gain "-1" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain1" Position [820, 234, 900, 266] Orientation "left" ShowName off Gain "Gamma" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain5" Position [200, 522, 265, 558] Orientation "left" ShowName off Gain "B/Kg^2" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Gain6" Position [465, 139, 500, 171] ShowName off Gain "g" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Goto Name "Goto1" Position [1240, 214, 1305, 246] DialogController "Simulink.DDGSource" GotoTag "sin2theta" TagVisibility "local" } Block { BlockType Goto Name "Goto2" Position [1240, 163, 1305, 197] DialogController "Simulink.DDGSource" GotoTag "sintheta" TagVisibility "local" } Block { BlockType Goto Name "Goto3" Position [1245, 113, 1305, 147] DialogController "Simulink.DDGSource" GotoTag "sincosth" TagVisibility "local" } Block { BlockType Goto Name "Goto4" Position [1245, 65, 1305, 95] DialogController "Simulink.DDGSource" GotoTag "costheta" TagVisibility "local" } Block { BlockType Goto Name "Goto5" Position [1025, 109, 1075, 141] DialogController "Simulink.DDGSource" GotoTag "thdot2" TagVisibility "local" } Block { BlockType Product Name "M0" Ports [2, 1] Position [250, 44, 265, 66] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M1" Ports [2, 1] Position [325, 48, 340, 72] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M2" Ports [2, 1] Position [210, 113, 225, 137] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M3" Ports [2, 1] Position [210, 163, 225, 187] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M4" Ports [2, 1] Position [485, 239, 500, 261] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M6" Ports [2, 1] Position [430, 83, 445, 107] Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "M7" Ports [2, 1] Position [555, 148, 570, 177] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "Product" Ports [2, 1] Position [1190, 312, 1205, 343] ShowName off InputSameDT off RndMeth "Floor" } Block { BlockType Sum Name "Sum" Ports [3, 1] Position [305, 650, 325, 670] ShowName off IconShape "round" Inputs "-+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [185, 360, 205, 380] ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum2" Ports [2, 1] Position [265, 140, 285, 160] ShowName off IconShape "round" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum3" Ports [2, 1] Position [150, 285, 170, 305] ShowName off IconShape "round" Inputs "++|" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum4" Ports [2, 1] Position [245, 360, 265, 380] ShowName off IconShape "round" Inputs "++|" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum5" Ports [2, 1] Position [70, 210, 90, 230] ShowName off IconShape "round" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum6" Ports [4, 1] Position [595, 146, 615, 194] ShowName off Inputs "++++" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum7" Ports [2, 1] Position [1210, 390, 1230, 410] ShowName off IconShape "round" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Trigonometry Name "TF1" Ports [1, 1] Position [1120, 165, 1150, 195] } Block { BlockType Trigonometry Name "TF2" Ports [1, 1] Position [1120, 65, 1150, 95] Operator "cos" } Block { BlockType Constant Name "g" Position [25, 175, 65, 205] Value "g" } Block { BlockType Integrator Name "ia" Ports [1, 1] Position [440, 645, 470, 675] } Block { BlockType Constant Name "m+J/kg2" Position [25, 278, 60, 312] Value "m_head+J/Kg^2" } Block { BlockType Product Name "sin2theta" Ports [2, 1] Position [1190, 212, 1205, 243] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "sincostheta" Ports [2, 1] Position [1190, 113, 1205, 142] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Product Name "thdot2" Ports [2, 1] Position [975, 107, 1005, 138] ShowName off Inputs "**" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Integrator Name "theta" Ports [1, 1] Position [1000, 165, 1030, 195] } Block { BlockType Integrator Name "theta dot" Ports [1, 1] Position [875, 165, 905, 195] } Block { BlockType Integrator Name "x dot" Ports [1, 1] Position [385, 435, 415, 465] } Block { BlockType Integrator Name "x_cat" Ports [1, 1] Position [505, 435, 535, 465] } Block { BlockType Outport Name "Z_Head" Position [615, 488, 645, 502] IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "V_Head_Z" Position [535, 533, 565, 547] Port "2" IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "ThetaZ" Position [1125, 258, 1155, 272] Port "3" IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "DeltaZ" Position [1240, 323, 1270, 337] Port "4" IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "Z_Load" Position [1250, 393, 1280, 407] Port "5" IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "G1" SrcPort 1 DstBlock "Sum" DstPort 1 } Line { SrcBlock "Sum" SrcPort 1 DstBlock "G2" DstPort 1 } Line { SrcBlock "G2" SrcPort 1 DstBlock "ia" DstPort 1 } Line { SrcBlock "ia" SrcPort 1 Points [0, 0; 55, 0] Branch { Points [-20, 0; 0, 50] DstBlock "G3" DstPort 1 } Branch { DstBlock "G4" DstPort 1 } } Line { SrcBlock "G3" SrcPort 1 Points [-85, 0] DstBlock "Sum" DstPort 3 } Line { SrcBlock "x dot" SrcPort 1 Points [0, 0; 40, 0] Branch { DstBlock "x_cat" DstPort 1 } Branch { Points [0, 90] Branch { Labels [1, 0] Points [-145, 0] Branch { DstBlock "G1" DstPort 1 } Branch { DstBlock "Gain5" DstPort 1 } } Branch { DstBlock "V_Head_Z" DstPort 1 } } } Line { SrcBlock "theta" SrcPort 1 Points [70, 0] Branch { Points [0, 0] Branch { Points [0, 85] DstBlock "ThetaZ" DstPort 1 } Branch { DstBlock "TF1" DstPort 1 } } Branch { DstBlock "TF2" DstPort 1 } } Line { SrcBlock "theta dot" SrcPort 1 Points [0, 0; 45, 0] Branch { DstBlock "theta" DstPort 1 } Branch { Points [0, -50] Branch { Points [0, 0] DstBlock "thdot2" DstPort 2 } Branch { Points [0, -15] DstBlock "thdot2" DstPort 1 } } Branch { Points [0, 70] DstBlock "Gain1" DstPort 1 } } Line { SrcBlock "G4" SrcPort 1 Points [10, 0; 0, 80; -470, 0; 0, -370] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "Divide" SrcPort 1 DstBlock "x dot" DstPort 1 } Line { SrcBlock "Gain5" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "sin2theta" SrcPort 1 DstBlock "Goto1" DstPort 1 } Line { SrcBlock "sincostheta" SrcPort 1 DstBlock "Goto3" DstPort 1 } Line { SrcBlock "From1" SrcPort 1 DstBlock "M0" DstPort 1 } Line { SrcBlock "Load Mass" SrcPort 1 Points [20, 0] Branch { Points [0, 0] Branch { DstBlock "Sum5" DstPort 1 } Branch { Points [155, 0] DstBlock "M0" DstPort 2 } } Branch { Points [0, -40] DstBlock " 1" DstPort 2 } } Line { SrcBlock "thdot2" SrcPort 1 DstBlock "Goto5" DstPort 1 } Line { SrcBlock "M0" SrcPort 1 Points [10, 0; 15, 0] Branch { DstBlock "M1" DstPort 1 } Branch { Points [0, -20; 110, 0; 0, 55] DstBlock "M6" DstPort 1 } } Line { SrcBlock " " SrcPort 1 DstBlock "M2" DstPort 1 } Line { SrcBlock "From3" SrcPort 1 DstBlock "M3" DstPort 1 } Line { SrcBlock "g" SrcPort 1 Points [125, 0] DstBlock "M3" DstPort 2 } Line { SrcBlock "M3" SrcPort 1 DstBlock "Sum2" DstPort 2 } Line { SrcBlock "Sum2" SrcPort 1 Points [10, 0; 0, -85] DstBlock "M1" DstPort 2 } Line { SrcBlock "From4" SrcPort 1 DstBlock " 1" DstPort 1 } Line { SrcBlock " 1" SrcPort 1 Points [30, 0] DstBlock "Sum3" DstPort 1 } Line { SrcBlock "Sum3" SrcPort 1 Points [100, 0] Branch { Points [360, 0; 0, -115] DstBlock "Divide1" DstPort 2 } Branch { Points [-5, 0; 0, 160] DstBlock "Divide" DstPort 2 } } Line { SrcBlock "Sum4" SrcPort 1 Points [10, 0] DstBlock "Divide" DstPort 1 } Line { SrcBlock "M1" SrcPort 1 Points [35, 0; 0, 180; -125, 0] DstBlock "Sum4" DstPort 1 } Line { SrcBlock "Sum1" SrcPort 1 Points [5, 0] Branch { DstBlock "Sum4" DstPort 2 } Branch { Points [0, -125] DstBlock "M4" DstPort 1 } } Line { SrcBlock "M2" SrcPort 1 Points [10, 0] Branch { DstBlock "Sum2" DstPort 1 } Branch { Points [0, -25] DstBlock "M6" DstPort 2 } } Line { SrcBlock "M6" SrcPort 1 Points [130, 0] DstBlock "Sum6" DstPort 1 } Line { SrcBlock "From5" SrcPort 1 DstBlock "M4" DstPort 2 } Line { SrcBlock "Sum5" SrcPort 1 Points [445, 0] DstBlock "M7" DstPort 2 } Line { SrcBlock "From6" SrcPort 1 DstBlock "Gain6" DstPort 1 } Line { SrcBlock "Gain6" SrcPort 1 DstBlock "M7" DstPort 1 } Line { SrcBlock "M7" SrcPort 1 DstBlock "Sum6" DstPort 2 } Line { SrcBlock "M4" SrcPort 1 Points [70, 0; 0, -75] DstBlock "Sum6" DstPort 3 } Line { SrcBlock "Sum6" SrcPort 1 DstBlock "Divide1" DstPort 1 } Line { SrcBlock "Cable Length" SrcPort 1 Points [105, 0] Branch { Points [30, 0] DstBlock "M2" DstPort 2 } Branch { Points [0, 80; 530, 0] Branch { DstBlock "Divide1" DstPort 3 } Branch { Points [0, 110] DstBlock "Product" DstPort 2 } } } Line { SrcBlock "Divide1" SrcPort 1 DstBlock "Gain" DstPort 1 } Line { SrcBlock "Gain" SrcPort 1 DstBlock "theta dot" DstPort 1 } Line { SrcBlock "x_cat" SrcPort 1 Points [60, 0] Branch { DstBlock "Z_Head" DstPort 1 } Branch { Points [620, 0] DstBlock "Sum7" DstPort 2 } } Line { SrcBlock "VaZ" SrcPort 1 DstBlock "Sum" DstPort 2 } Line { SrcBlock "m+J/kg2" SrcPort 1 Points [15, 0] Branch { DstBlock "Sum3" DstPort 2 } Branch { DstBlock "Sum5" DstPort 2 } } Line { SrcBlock "Product" SrcPort 1 Points [10, 0] Branch { DstBlock "DeltaZ" DstPort 1 } Branch { DstBlock "Sum7" DstPort 1 } } Line { SrcBlock "TF2" SrcPort 1 Points [10, 0] Branch { DstBlock "Goto4" DstPort 1 } Branch { Points [0, 40] DstBlock "sincostheta" DstPort 1 } } Line { SrcBlock "TF1" SrcPort 1 Points [10, 0] Branch { DstBlock "Goto2" DstPort 1 } Branch { Points [0, -45] DstBlock "sincostheta" DstPort 2 } Branch { Points [0, 40] Branch { Points [0, 15] Branch { Points [0, 0] DstBlock "sin2theta" DstPort 2 } Branch { Points [0, 85] DstBlock "Product" DstPort 1 } } Branch { DstBlock "sin2theta" DstPort 1 } } } Line { SrcBlock "Sum7" SrcPort 1 DstBlock "Z_Load" DstPort 1 } Line { SrcBlock "Gain1" SrcPort 1 Points [-235, 0] DstBlock "Sum6" DstPort 4 } Annotation { Name "i dot" Position [417, 670] } Annotation { Name "i = x5" Position [490, 671] } Annotation { Name "x = x1 = y1" Position [568, 435] } Annotation { Name "v = x2 = x dot" Position [452, 433] } Annotation { Name "theta = x3 = y3" Position [1076, 195] } Annotation { Name "theta dot = x4" Position [952, 189] } Annotation { Name "x dot dot" Position [350, 434] } Annotation { Name "th dot dot" Position [829, 191] } Annotation { Name "Damping" Position [789, 257] } } } Block { BlockType Saturate Name "Saturation" Position [355, 100, 385, 130] ShowName off UpperLimit "50" LowerLimit "-50" } Block { BlockType Sum Name "Sum" Ports [3, 1] Position [115, 105, 135, 125] NamePlacement "alternate" ShowName off IconShape "round" Inputs "+--" } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [215, 105, 235, 125] NamePlacement "alternate" ShowName off IconShape "round" Inputs "|+-" } Block { BlockType Terminator Name "Terminator" Position [530, 110, 550, 130] ShowName off } Block { BlockType Terminator Name "Terminator1" Position [530, 90, 550, 110] ShowName off } Block { BlockType Outport Name "Crane_Z" Position [705, 33, 735, 47] IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "Theta_Z" Position [710, 73, 740, 87] Port "2" IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "Motor_Crane_Z" SrcPort 1 Points [0, 0; 75, 0] Branch { DstBlock "Crane_Z" DstPort 1 } Branch { Points [0, 150; -460, 0] DstBlock "Sum" DstPort 3 } } Line { SrcBlock "Load Mass" SrcPort 1 DstBlock "Motor_Crane_Z" DstPort 1 } Line { SrcBlock "Cable Length" SrcPort 1 DstBlock "Motor_Crane_Z" DstPort 2 } Line { SrcBlock "Motor_Crane_Z" SrcPort 3 Points [0, 0; 85, 0] Branch { DstBlock "+Theta_Z in VRML\nrepresented by\nrot" "ation about -X" DstPort 1 } Branch { Points [0, 130; -570, 0; 0, -95] DstBlock "C1_P" DstPort 1 } } Line { SrcBlock "Motor_Crane_Z" SrcPort 4 DstBlock "Terminator1" DstPort 1 } Line { SrcBlock "Motor_Crane_Z" SrcPort 5 DstBlock "Terminator" DstPort 1 } Line { SrcBlock "Saturation" SrcPort 1 DstBlock "Motor_Crane_Z" DstPort 3 } Line { SrcBlock "C3_P" SrcPort 1 DstBlock "Saturation" DstPort 1 } Line { SrcBlock "+Theta_Z in VRML\nrepresented by\nrotat" "ion about -X" SrcPort 1 DstBlock "Theta_Z" DstPort 1 } Line { SrcBlock "Motor_Crane_Z" SrcPort 2 Points [60, 0; 0, 105; -345, 0] DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Sum" SrcPort 1 DstBlock "C2_PI" DstPort 1 } Line { SrcBlock "C2_PI" SrcPort 1 DstBlock "Sum1" DstPort 1 } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "C3_P" DstPort 1 } Line { SrcBlock "C1_P" SrcPort 1 DstBlock "Sum" DstPort 2 } Line { SrcBlock "SetPoint_Z" SrcPort 1 Points [50, 0] DstBlock "Sum" DstPort 1 } } } Block { BlockType Demux Name "Demux" Ports [1, 3] Position [140, 137, 145, 203] BackgroundColor "black" ShowName off Outputs "3" DisplayOption "bar" } Block { BlockType Fcn Name "Load Height\nOffset " Position [370, 161, 425, 179] Expr "u-0.5" } Block { BlockType Constant Name "Load_Mass" Position [20, 33, 50, 47] Value "1000" } Block { BlockType Outport Name "Crane_X" Position [475, 38, 505, 52] IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "Crane_Z" Position [475, 233, 505, 247] Port "2" IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "Theta_X" Position [475, 78, 505, 92] Port "3" IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "Theta_Z" Position [475, 273, 505, 287] Port "4" IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "Cable_Length" Position [475, 163, 505, 177] Port "5" IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "Cable_Dynamics" SrcPort 1 Points [30, 0] Branch { Points [0, -105] DstBlock "Crane_Dynamics_X" DstPort 2 } Branch { Points [0, 90] DstBlock "Crane_Dynamics_Z" DstPort 2 } Branch { DstBlock "Load Height\nOffset " DstPort 1 } } Line { SrcBlock "Demux" SrcPort 2 DstBlock "Cable_Dynamics" DstPort 1 } Line { Labels [3, 0] SrcBlock "Demux" SrcPort 1 Points [5, 0; 0, -60] DstBlock "Crane_Dynamics_X" DstPort 3 } Line { SrcBlock "Load_Mass" SrcPort 1 Points [10, 0] Branch { Points [0, 195] DstBlock "Crane_Dynamics_Z" DstPort 1 } Branch { DstBlock "Crane_Dynamics_X" DstPort 1 } } Line { SrcBlock "SetPoint" SrcPort 1 DstBlock "Demux" DstPort 1 } Line { SrcBlock "Crane_Dynamics_X" SrcPort 1 DstBlock "Crane_X" DstPort 1 } Line { SrcBlock "Crane_Dynamics_X" SrcPort 2 DstBlock "Theta_X" DstPort 1 } Line { SrcBlock "Load Height\nOffset " SrcPort 1 DstBlock "Cable_Length" DstPort 1 } Line { SrcBlock "Crane_Dynamics_Z" SrcPort 1 DstBlock "Crane_Z" DstPort 1 } Line { SrcBlock "Crane_Dynamics_Z" SrcPort 2 DstBlock "Theta_Z" DstPort 1 } Line { SrcBlock "Demux" SrcPort 3 Points [5, 0; 0, 95] DstBlock "Crane_Dynamics_Z" DstPort 3 } } } Block { BlockType Constant Name "Load_Attached" Position [415, 268, 445, 282] } Block { BlockType SubSystem Name "Setting the\nSetPoint using Joystick\n(Joystick" " ID and Axes\nmust be set properly!)\n" Ports [0, 3] Position [35, 261, 135, 349] BackgroundColor "green" TreatAsAtomicUnit off MinAlgLoopOccurrences off PropExecContextAcrossSSBoundary on RTWSystemCode "Auto" System { Name "Setting the\nSetPoint using Joystick\n(Joysti" "ck ID and Axes\nmust be set properly!)\n" Location [165, 245, 935, 663] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType DataTypeConversion Name "Data Type Conversion" Position [375, 208, 420, 242] ShowName off OutDataTypeMode "boolean" RndMeth "Floor" SaturateOnIntegerOverflow off } Block { BlockType Integrator Name "Integrator3" Ports [1, 1] Position [380, 140, 410, 170] ShowName off InitialCondition "[0 0 0]" LimitOutput on UpperSaturationLimit "[20 10 20]" LowerSaturationLimit "[0 0 0]" } Block { BlockType DeadZone Name "Joystick\n0 Tolerance" Position [225, 140, 255, 170] LowerValue "-0.2" UpperValue "0.2" } Block { BlockType Reference Name "Joystick Input\n(Joystick ID and Axes\nmust" " be set properly!)" Ports [0, 3] Position [25, 121, 105, 329] SourceBlock "vrlib/Joystick Input" SourceType "Joystick Input" joyid "1" adjustports off forcefeed off } Block { BlockType Selector Name "Select\nButton1 - \nSP Trigger" Ports [1, 1] Position [210, 214, 255, 236] Elements "[1]" InputPortWidth "32" } Block { BlockType Selector Name "Select\nFirst 3 Axes\n(Joystick -dependent)" Ports [1, 1] Position [140, 143, 185, 167] Elements "[1 3 2]" InputPortWidth "8" } Block { BlockType Gain Name "Sensitivity /\nInverting Y \n(Joystick -dep" "endent)" Position [295, 140, 340, 170] Gain "[4 -4 4]" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Terminator Name "Terminator" Position [125, 285, 145, 305] ShowName off } Block { BlockType SubSystem Name "Triggered\nSetPoint" Ports [1, 1, 0, 1] Position [460, 135, 590, 175] NamePlacement "alternate" TreatAsAtomicUnit on MinAlgLoopOccurrences off PropExecContextAcrossSSBoundary on RTWSystemCode "Auto" System { Name "Triggered\nSetPoint" Location [459, 346, 849, 514] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "Fleeting\nSP" Position [60, 88, 90, 102] IconDisplay "Port number" LatchInput off } Block { BlockType TriggerPort Name "Trigger" Ports [] Position [175, 20, 195, 40] StatesWhenEnabling "held" } Block { BlockType ZeroOrderHold Name "Zero-Order\nHold" Position [170, 80, 205, 110] SampleTime "-1" } Block { BlockType Outport Name "Triggered\nSP" Position [290, 88, 320, 102] IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "Zero-Order\nHold" SrcPort 1 DstBlock "Triggered\nSP" DstPort 1 } Line { SrcBlock "Fleeting\nSP" SrcPort 1 DstBlock "Zero-Order\nHold" DstPort 1 } } } Block { BlockType Outport Name "Acquired SetPoint" Position [650, 148, 680, 162] IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "Fleeting SetPoint" Position [650, 78, 680, 92] Port "2" IconDisplay "Port number" BusOutputAsStruct off } Block { BlockType Outport Name "SetPoint Strobe" Position [650, 218, 680, 232] Port "3" IconDisplay "Port number" BusOutputAsStruct off } Line { SrcBlock "Triggered\nSetPoint" SrcPort 1 DstBlock "Acquired SetPoint" DstPort 1 } Line { SrcBlock "Joystick Input\n(Joystick ID and Axes\nmust" " be set properly!)" SrcPort 1 DstBlock "Select\nFirst 3 Axes\n(Joystick -dependent)" DstPort 1 } Line { SrcBlock "Select\nFirst 3 Axes\n(Joystick -dependent)" SrcPort 1 DstBlock "Joystick\n0 Tolerance" DstPort 1 } Line { SrcBlock "Joystick\n0 Tolerance" SrcPort 1 DstBlock "Sensitivity /\nInverting Y \n(Joystick -dep" "endent)" DstPort 1 } Line { SrcBlock "Joystick Input\n(Joystick ID and Axes\nmust" " be set properly!)" SrcPort 3 DstBlock "Terminator" DstPort 1 } Line { SrcBlock "Joystick Input\n(Joystick ID and Axes\nmust" " be set properly!)" SrcPort 2 DstBlock "Select\nButton1 - \nSP Trigger" DstPort 1 } Line { SrcBlock "Integrator3" SrcPort 1 Points [15, 0] Branch { Points [0, -70] DstBlock "Fleeting SetPoint" DstPort 1 } Branch { DstBlock "Triggered\nSetPoint" DstPort 1 } } Line { SrcBlock "Select\nButton1 - \nSP Trigger" SrcPort 1 DstBlock "Data Type Conversion" DstPort 1 } Line { SrcBlock "Sensitivity /\nInverting Y \n(Joystick -dep" "endent)" SrcPort 1 DstBlock "Integrator3" DstPort 1 } Line { SrcBlock "Data Type Conversion" SrcPort 1 Points [100, 0] Branch { DstBlock "SetPoint Strobe" DstPort 1 } Branch { DstBlock "Triggered\nSetPoint" DstPort trigger } } } } Block { BlockType Reference Name "VR Signal Expander" Ports [1, 1] Position [400, 236, 455, 254] ShowName off SourceBlock "vrlib/VR Signal Expander" SourceType "VR Signal Expander" ShowPortLabels on outwidth "3" outidx "[2]" } Block { BlockType Reference Name "VR Signal Expander1" Ports [1, 1] Position [400, 116, 455, 134] ShowName off SourceBlock "vrlib/VR Signal Expander" SourceType "VR Signal Expander" ShowPortLabels on outwidth "3" outidx "[1]" } Block { BlockType Reference Name "VR Signal Expander2" Ports [1, 1] Position [400, 146, 455, 164] ShowName off SourceBlock "vrlib/VR Signal Expander" SourceType "VR Signal Expander" ShowPortLabels on outwidth "3" outidx "[3]" } Block { BlockType Reference Name "VR Signal Expander3" Ports [1, 1] Position [400, 176, 455, 194] ShowName off SourceBlock "vrlib/VR Signal Expander" SourceType "VR Signal Expander" ShowPortLabels on outwidth "4" outidx "[4]" } Block { BlockType Reference Name "VR Signal Expander4" Ports [1, 1] Position [400, 206, 455, 224] ShowName off SourceBlock "vrlib/VR Signal Expander" SourceType "VR Signal Expander" ShowPortLabels on outwidth "4" outidx "[4]" } Block { BlockType Reference Name "VR Sink" Ports [8] Position [485, 115, 635, 345] SourceBlock "vrlib/VR Sink" SourceType "Virtual Reality Sink" SampleTime "0.1" ViewEnable on RemoteChange off RemoteView off FieldsWritten "Crane_X.translation.3.1.double#Crane_Z.translat" "ion.3.1.double#Parts_Rot_ZAxis.rotation.4.1.double#Parts_Rot_XAxis.rotation.4" ".1.double#CableUnit.scale.3.1.double#Load_Switch.whichChoice.1.1.double#SetPo" "int.translation.3.1.double#SP_Highlight.whichChoice.1.1.double" WorldFileName "portal_crane.wrl" WorldDescription "VR Portal Crane" AutoView on FigureProperties "{'Position', 'Name', 'Viewpoint', 'CameraBound'" ", 'CameraDirection', 'CameraPosition', 'CameraUpVector', 'ZoomFactor', 'Antia" "liasing', 'Headlight', 'Lighting', 'NavPanel', 'StatusBar', 'ToolBar', 'Textu" "res', 'Transparency', 'Wireframe', 'NavZones', 'NavMode', 'NavSpeed', 'Record" "2DCompressMethod', 'Record2DCompressQuality', 'Record2D', 'Record2DFileName';" " [6.0000000000000000e+000 7.0000000000000000e+001 5.7600000000000000e+002 " "3.8000000000000000e+002], 'VR Portal Crane', 'Overview', 'on', [0.00000000000" "00000e+000 0.0000000000000000e+000 -1.0000000000000000e+000], [0.00000000000" "00000e+000 0.0000000000000000e+000 0.0000000000000000e+000], [0.00000000000" "00000e+000 1.0000000000000000e+000 0.0000000000000000e+000], [1.00000000000" "00000e+000], 'off', 'on', 'on', 'halfbar', 'on', 'on', 'on', 'on', 'off', 'of" "f', 'examine', 'normal', 'auto', [7.5000000000000000e+001], 'off', '%f_anim_%" "n.avi'} " } Line { SrcBlock "Setting the\nSetPoint using Joystick\n(Joystick" " ID and Axes\nmust be set properly!)\n" SrcPort 1 Points [55, 0; 0, -90] Branch { DstBlock "Acquired SetPoint" DstPort 1 } Branch { DstBlock "Crane Dynamics" DstPort 1 } } Line { SrcBlock "Setting the\nSetPoint using Joystick\n(Joystick" " ID and Axes\nmust be set properly!)\n" SrcPort 2 DstBlock "VR Sink" DstPort 7 } Line { SrcBlock "Setting the\nSetPoint using Joystick\n(Joystick" " ID and Axes\nmust be set properly!)\n" SrcPort 3 DstBlock "VR Sink" DstPort 8 } Line { SrcBlock "Load_Attached" SrcPort 1 DstBlock "VR Sink" DstPort 6 } Line { SrcBlock "VR Signal Expander" SrcPort 1 DstBlock "VR Sink" DstPort 5 } Line { SrcBlock "VR Signal Expander1" SrcPort 1 DstBlock "VR Sink" DstPort 1 } Line { SrcBlock "VR Signal Expander2" SrcPort 1 DstBlock "VR Sink" DstPort 2 } Line { SrcBlock "VR Signal Expander3" SrcPort 1 DstBlock "VR Sink" DstPort 3 } Line { SrcBlock "VR Signal Expander4" SrcPort 1 DstBlock "VR Sink" DstPort 4 } Line { SrcBlock "Crane Dynamics" SrcPort 5 DstBlock "VR Signal Expander" DstPort 1 } Line { SrcBlock "Crane Dynamics" SrcPort 1 DstBlock "VR Signal Expander1" DstPort 1 } Line { SrcBlock "Crane Dynamics" SrcPort 3 DstBlock "VR Signal Expander3" DstPort 1 } Line { SrcBlock "Crane Dynamics" SrcPort 2 DstBlock "VR Signal Expander2" DstPort 1 } Line { SrcBlock "Crane Dynamics" SrcPort 4 DstBlock "VR Signal Expander4" DstPort 1 } Annotation { Name "Portal Crane with Joystick Control" Position [342, 57] FontName "Arial" FontSize 16 FontWeight "bold" } Annotation { Name "This example requires a Joystick connected to t" "he PC.\nUse Joystick first 3 axes to position the SetPoint, press Joystick bu" "tton 1 to start the crane." Position [34, 431] HorizontalAlignment "left" BackgroundColor "cyan" } } }